-<BOTH,SCRIPT,EXPRESSION>"]" { RTOKEN(']');}
-<BOTH,SCRIPT,EXPRESSION>"[" { RTOKEN('[');}
-<BOTH,SCRIPT,EXPRESSION>"<<=" { RTOKEN(LSHIFTEQ);}
-<BOTH,SCRIPT,EXPRESSION>">>=" { RTOKEN(RSHIFTEQ);}
-<BOTH,SCRIPT,EXPRESSION>"||" { RTOKEN(OROR);}
-<BOTH,SCRIPT,EXPRESSION>"==" { RTOKEN(EQ);}
-<BOTH,SCRIPT,EXPRESSION>"!=" { RTOKEN(NE);}
-<BOTH,SCRIPT,EXPRESSION>">=" { RTOKEN(GE);}
-<BOTH,SCRIPT,EXPRESSION>"<=" { RTOKEN(LE);}
-<BOTH,SCRIPT,EXPRESSION>"<<" { RTOKEN(LSHIFT);}
-<BOTH,SCRIPT,EXPRESSION>">>" { RTOKEN(RSHIFT);}
-<BOTH,SCRIPT,EXPRESSION>"+=" { RTOKEN(PLUSEQ);}
-<BOTH,SCRIPT,EXPRESSION>"-=" { RTOKEN(MINUSEQ);}
-<BOTH,SCRIPT,EXPRESSION>"*=" { RTOKEN(MULTEQ);}
-<BOTH,SCRIPT,EXPRESSION>"/=" { RTOKEN(DIVEQ);}
-<BOTH,SCRIPT,EXPRESSION>"&=" { RTOKEN(ANDEQ);}
-<BOTH,SCRIPT,EXPRESSION>"|=" { RTOKEN(OREQ);}
-<BOTH,SCRIPT,EXPRESSION>"&&" { RTOKEN(ANDAND);}
-<BOTH,SCRIPT,EXPRESSION>">" { RTOKEN('>');}
-<MRI,BOTH,SCRIPT,EXPRESSION>"," { RTOKEN(',');}
-<BOTH,SCRIPT,EXPRESSION>"&" { RTOKEN('&');}
-<BOTH,SCRIPT,EXPRESSION>"|" { RTOKEN('|');}
-<BOTH,SCRIPT,EXPRESSION>"~" { RTOKEN('~');}
-<BOTH,SCRIPT,EXPRESSION>"!" { RTOKEN('!');}
-<BOTH,SCRIPT,EXPRESSION>"?" { RTOKEN('?');}
-<BOTH,SCRIPT,EXPRESSION>"*" { RTOKEN('*');}
-<BOTH,SCRIPT,EXPRESSION>"+" { RTOKEN('+');}
-<BOTH,SCRIPT,EXPRESSION>"-" { RTOKEN('-');}
-<BOTH,SCRIPT,EXPRESSION>"/" { RTOKEN('/');}
-<BOTH,SCRIPT,EXPRESSION>"%" { RTOKEN('%');}
-<BOTH,SCRIPT,EXPRESSION>"<" { RTOKEN('<');}
-<BOTH,SCRIPT,EXPRESSION>">" { RTOKEN('>');}
-<MRI,BOTH,SCRIPT,EXPRESSION>"=" { RTOKEN('=');}
-<BOTH,SCRIPT,EXPRESSION>"}" { RTOKEN('}') ; }
-<BOTH,SCRIPT,EXPRESSION>"{" { RTOKEN('{'); }
-<BOTH,SCRIPT,EXPRESSION>")" { RTOKEN(')');}
-<BOTH,SCRIPT,EXPRESSION>"(" { RTOKEN('(');}
-<BOTH,SCRIPT,EXPRESSION>"]" { RTOKEN(']');}
-<BOTH,SCRIPT,EXPRESSION>"[" { RTOKEN('[');}
-<BOTH,SCRIPT,EXPRESSION>":" { RTOKEN(':'); }
-<BOTH,SCRIPT,EXPRESSION>";" { RTOKEN(';');}
-<BOTH,SCRIPT,EXPRESSION>"-" { RTOKEN('-');}
-<BOTH,SCRIPT,EXPRESSION>"/" { RTOKEN('/');}
-<BOTH,SCRIPT>"MEMORY" { RTOKEN(MEMORY);}
-<BOTH,SCRIPT>"ORIGIN" { RTOKEN(ORIGIN);}
-<BOTH,SCRIPT>"BLOCK" { RTOKEN(BLOCK);}
-<BOTH,SCRIPT>"LENGTH" { RTOKEN(LENGTH);}
-<EXPRESSION,BOTH,SCRIPT>"ALIGN" { RTOKEN(ALIGN_K);}
-<EXPRESSION,BOTH,SCRIPT>"ADDR" { RTOKEN(ADDR);}
+<BOTH,SCRIPT,EXPRESSION,MRI>"]" { RTOKEN(']');}
+<BOTH,SCRIPT,EXPRESSION,MRI>"[" { RTOKEN('[');}
+<BOTH,SCRIPT,EXPRESSION,MRI>"<<=" { RTOKEN(LSHIFTEQ);}
+<BOTH,SCRIPT,EXPRESSION,MRI>">>=" { RTOKEN(RSHIFTEQ);}
+<BOTH,SCRIPT,EXPRESSION,MRI>"||" { RTOKEN(OROR);}
+<BOTH,SCRIPT,EXPRESSION,MRI>"==" { RTOKEN(EQ);}
+<BOTH,SCRIPT,EXPRESSION,MRI>"!=" { RTOKEN(NE);}
+<BOTH,SCRIPT,EXPRESSION,MRI>">=" { RTOKEN(GE);}
+<BOTH,SCRIPT,EXPRESSION,MRI>"<=" { RTOKEN(LE);}
+<BOTH,SCRIPT,EXPRESSION,MRI>"<<" { RTOKEN(LSHIFT);}
+<BOTH,SCRIPT,EXPRESSION,MRI>">>" { RTOKEN(RSHIFT);}
+<BOTH,SCRIPT,EXPRESSION,MRI>"+=" { RTOKEN(PLUSEQ);}
+<BOTH,SCRIPT,EXPRESSION,MRI>"-=" { RTOKEN(MINUSEQ);}
+<BOTH,SCRIPT,EXPRESSION,MRI>"*=" { RTOKEN(MULTEQ);}
+<BOTH,SCRIPT,EXPRESSION,MRI>"/=" { RTOKEN(DIVEQ);}
+<BOTH,SCRIPT,EXPRESSION,MRI>"&=" { RTOKEN(ANDEQ);}
+<BOTH,SCRIPT,EXPRESSION,MRI>"|=" { RTOKEN(OREQ);}
+<BOTH,SCRIPT,EXPRESSION,MRI>"&&" { RTOKEN(ANDAND);}
+<BOTH,SCRIPT,EXPRESSION,MRI>">" { RTOKEN('>');}
+<BOTH,SCRIPT,EXPRESSION,MRI,INPUTLIST>"," { RTOKEN(',');}
+<BOTH,SCRIPT,EXPRESSION,MRI>"&" { RTOKEN('&');}
+<BOTH,SCRIPT,EXPRESSION,MRI>"|" { RTOKEN('|');}
+<BOTH,SCRIPT,EXPRESSION,MRI>"~" { RTOKEN('~');}
+<BOTH,SCRIPT,EXPRESSION,MRI>"!" { RTOKEN('!');}
+<BOTH,SCRIPT,EXPRESSION,MRI>"?" { RTOKEN('?');}
+<BOTH,SCRIPT,EXPRESSION,MRI>"*" { RTOKEN('*');}
+<BOTH,SCRIPT,EXPRESSION,MRI>"+" { RTOKEN('+');}
+<BOTH,SCRIPT,EXPRESSION,MRI>"-" { RTOKEN('-');}
+<BOTH,SCRIPT,EXPRESSION,MRI>"/" { RTOKEN('/');}
+<BOTH,SCRIPT,EXPRESSION,MRI>"%" { RTOKEN('%');}
+<BOTH,SCRIPT,EXPRESSION,MRI>"<" { RTOKEN('<');}
+<BOTH,SCRIPT,EXPRESSION,MRI>"=" { RTOKEN('=');}
+<BOTH,SCRIPT,EXPRESSION,MRI>"}" { RTOKEN('}') ; }
+<BOTH,SCRIPT,EXPRESSION,MRI>"{" { RTOKEN('{'); }
+<BOTH,SCRIPT,EXPRESSION,MRI,INPUTLIST>")" { RTOKEN(')');}
+<BOTH,SCRIPT,EXPRESSION,MRI,INPUTLIST>"(" { RTOKEN('(');}
+<BOTH,SCRIPT,EXPRESSION,MRI>":" { RTOKEN(':'); }
+<BOTH,SCRIPT,EXPRESSION,MRI>";" { RTOKEN(';');}
+<BOTH,SCRIPT>"MEMORY" { RTOKEN(MEMORY);}
+<BOTH,SCRIPT>"REGION_ALIAS" { RTOKEN(REGION_ALIAS);}
+<BOTH,SCRIPT>"LD_FEATURE" { RTOKEN(LD_FEATURE);}
+<BOTH,SCRIPT,EXPRESSION>"ORIGIN" { RTOKEN(ORIGIN);}
+<BOTH,SCRIPT>"VERSION" { RTOKEN(VERSIONK);}
+<EXPRESSION,BOTH,SCRIPT>"BLOCK" { RTOKEN(BLOCK);}
+<EXPRESSION,BOTH,SCRIPT>"BIND" { RTOKEN(BIND);}
+<BOTH,SCRIPT,EXPRESSION>"LENGTH" { RTOKEN(LENGTH);}
+<EXPRESSION,BOTH,SCRIPT>"ALIGN" { RTOKEN(ALIGN_K);}
+<EXPRESSION,BOTH,SCRIPT>"DATA_SEGMENT_ALIGN" { RTOKEN(DATA_SEGMENT_ALIGN);}
+<EXPRESSION,BOTH,SCRIPT>"DATA_SEGMENT_RELRO_END" { RTOKEN(DATA_SEGMENT_RELRO_END);}
+<EXPRESSION,BOTH,SCRIPT>"DATA_SEGMENT_END" { RTOKEN(DATA_SEGMENT_END);}
+<EXPRESSION,BOTH,SCRIPT>"ADDR" { RTOKEN(ADDR);}
+<EXPRESSION,BOTH,SCRIPT>"LOADADDR" { RTOKEN(LOADADDR);}
+<EXPRESSION,BOTH,SCRIPT>"ALIGNOF" { RTOKEN(ALIGNOF); }
+<EXPRESSION,BOTH>"MAX" { RTOKEN(MAX_K); }
+<EXPRESSION,BOTH>"MIN" { RTOKEN(MIN_K); }
+<EXPRESSION,BOTH>"LOG2CEIL" { RTOKEN(LOG2CEIL); }
+<EXPRESSION,BOTH,SCRIPT>"ASSERT" { RTOKEN(ASSERT_K); }