|
|
@@ -2,15 +2,17 @@
|
|
|
#include <stdio.h>
|
|
|
#include "y.tab.h"
|
|
|
%}
|
|
|
+arg \$[a-zA-Z0-9\.]+
|
|
|
|
|
|
%%
|
|
|
|
|
|
-[a-z0-9$._]+: { yylval.sval = yytext; return LABEL; } /* Label */
|
|
|
-\$[a-z0-9._] { yylval.sval = yytext; return ARG; } /* Arg of instr */
|
|
|
-^[a-z.]+ { yylval.sval = yytext; return INSTR; } /* Instruction */
|
|
|
+#[^\n]* { yylval.sval = yytext; return COMMENT; } /* Comment */
|
|
|
+[a-zA-Z0-9$\.]+: { yylval.sval = yytext; return LABEL; } /* Label */
|
|
|
+{arg} { yylval.sval = yytext; return ARG; } /* Arg of instr */
|
|
|
+[0-9]+(\({arg}\))? { yylval.sval = yytext; return ARG; } /* Arg of instr */
|
|
|
\.[^\n]* { yylval.sval = yytext; return DIRECTIVE; } /* Assembly */
|
|
|
+[a-z\.]+ { yylval.sval = yytext; return INSTR; } /* Instruction */
|
|
|
[,] { return COMMA; } /* Comma */
|
|
|
-#[^\n]* { yylval.sval = yytext; return COMMENT; } /* Comment */
|
|
|
[\n] { return NL; } /* New line */
|
|
|
|
|
|
-[\s\t]+ { ; } /* Ignore whitespace */
|
|
|
+[ \t]+ { ; } /* Ignore whitespace */
|