projects
/
uebersetzerbau-ss10.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
codea: weitere optimierung fuer sub/add
[uebersetzerbau-ss10.git]
/
scanner
/
scanner.lex
diff --git
a/scanner/scanner.lex
b/scanner/scanner.lex
index b86baaf732824b3f43bb0529f92c461d331ce960..07b162e1d3580e03ed393a3bc58e6c625447bc14 100644
(file)
--- a/
scanner/scanner.lex
+++ b/
scanner/scanner.lex
@@
-3,7
+3,7
@@
#include <string.h>
KEYWORD struct|end|method|var|if|then|else|while|do|return|not|or|this
#include <string.h>
KEYWORD struct|end|method|var|if|then|else|while|do|return|not|or|this
-SPECIAL_CHAR \;|\(|\)|\:=|\.|\-|\*|\<|\=|\
.
+SPECIAL_CHAR \;|\(|\)|\:=|\.|\-|\*|\<|\=|\
,
IDENTIFIER [a-zA-Z_][0-9a-zA-Z_]*
NUMBER_HEX 0x[0-9A-Fa-f]+
NUMBER_DEC [0-9]+
IDENTIFIER [a-zA-Z_][0-9a-zA-Z_]*
NUMBER_HEX 0x[0-9A-Fa-f]+
NUMBER_DEC [0-9]+
@@
-20,11
+20,12
@@
COMMENT_END \*\/
<COMMENT>{COMMENT_END} BEGIN(INITIAL);
<COMMENT>{COMMENT_END} BEGIN(INITIAL);
-<COMMENT><<EOF>> { (void) fprintf(stderr, "kommentar nicht geschlossen\n"); exit(1); }
-
-<COMMENT>{WHITESPACE} /* ignorieren */
+<COMMENT><<EOF>> {
+ fprintf(stderr, "Kommentar nicht geschlossen\n");
+ exit(1);
+}
-<COMMENT>
.
/* alles im kommentar wird ignoriert */
+<COMMENT>
(.|\n)
/* alles im kommentar wird ignoriert */
{KEYWORD} printf("%s\n", yytext);
{KEYWORD} printf("%s\n", yytext);
@@
-34,17
+35,14
@@
COMMENT_END \*\/
{NUMBER_DEC} printf("num %lx\n", strtol(yytext, (char **)NULL, 10));
{NUMBER_DEC} printf("num %lx\n", strtol(yytext, (char **)NULL, 10));
-{NUMBER_HEX} {
-#if 0
- char *copy=strdup(yytext);
- copy[strlen(copy)-1]='\0';
-#endif
- printf("num %lx\n", strtol(yytext, (char **)NULL, 16));
-}
+{NUMBER_HEX} printf("num %lx\n", strtol(yytext, (char **)NULL, 16));
{WHITESPACE} /* ignorieren */
{WHITESPACE} /* ignorieren */
-. { (void) fprintf(stderr, "Lexikalischer fehler auf Zeile %i\n", yylineno); exit(1); }
+. {
+ fprintf(stderr, "Lexikalischer Fehler auf Zeile %i\n", yylineno);
+ exit(1);
+}
%%
%%