0
我使用的lex/yacc的編寫彙編萊克斯優先級標記操作碼優先
我有例如某些操作碼
ORA [Oo][Rr][Aa]
AND [Aa][Nn][Dd]
EOR [Ee][Oo][Rr]
和規則
{ORA} { yylval.iValue = ora; return OPCODE; }
{AND} { yylval.iValue = and; return OPCODE; }
{EOR} { yylval.iValue = eor; return OPCODE; }
我也有一個標籤規則
[A-Za-z_][A-Za-z0-9_]*: { yylval.sIndex = AddSymbol(yytext); return SYMBOL; }
[A-Za-z_][A-Za-z0-9_]* { yylval.sIndex = AddSymbol(yytext); return SYMBOL; }
labels in the syntax can be
ldx #$FF
loop:
sta $5535,X
dex
bne loop
問題是它會匹配標籤而不是操作碼。 第一個標籤規則由於':'而起作用,但第二個標籤規則需要主持操作碼規則。
有沒有辦法讓我第二個案例的標籤工作(雙向循環)?
在此先感謝。
我對lex相當陌生。