ag: fuer ub10 angabe angepasst. mal testfaelle schreiben ;)
[uebersetzerbau-ss10.git] / ag / scanner.lex
index 049cdd2c1e54245ce7aad3a3f12b63dd65da5130..c104d0fc7d822d8e45f03841a7edbc8eef882d30 100644 (file)
@@ -4,7 +4,6 @@
        #include "parser.h"
 
 KEYWORD struct|end|method|var|if|then|else|while|do|return|not|or|this
-SPECIAL_CHAR \;|\(|\)|\:=|\.|\-|\*|\<|\=|\,
 IDENTIFIER [a-zA-Z_][0-9a-zA-Z_]*
 NUMBER_HEX 0x[0-9A-Fa-f]+
 NUMBER_DEC [0-9]+
@@ -41,12 +40,21 @@ not return(NOT);
 or return(OR);
 this return(THIS);
 
-{IDENTIFIER} return(IDENT);
+{IDENTIFIER} return(IDENT); @{ @IDENT.name@ = strdup(yytext); @}
 
 {NUMBER_DEC} return(NUM);
 {NUMBER_HEX} return(NUM);
 
-{SPECIAL_CHAR} return(*yytext);
+\:= return(ASSIGN);
+\; return(';');
+\( return('(');
+\) return(')');
+\. return('.');
+\- return('-');
+\* return('*');
+\< return('<');
+\= return('=');
+\, return(',');
 
 {WHITESPACE} /* ignore */