diff options
author | Benedikt Spranger <b.spranger@pengutronix.de> | 2005-06-07 14:40:54 +0000 |
---|---|---|
committer | Benedikt Spranger <b.spranger@pengutronix.de> | 2005-06-07 14:40:54 +0000 |
commit | c5d9f22a589c0067c872a1f7de2da6b2e3a5b2eb (patch) | |
tree | 5079f8920fdc91e33ec443d50a4269746fded419 | |
parent | 1121651dc9049233a93a0ca90e8133c4eeb460a4 (diff) | |
download | memedit-c5d9f22a589c0067c872a1f7de2da6b2e3a5b2eb.tar.gz memedit-c5d9f22a589c0067c872a1f7de2da6b2e3a5b2eb.tar.xz |
Blame Bene: position does matter...
-rw-r--r-- | memedit.l | 10 | ||||
-rw-r--r-- | memedit.y | 6 |
2 files changed, 10 insertions, 6 deletions
@@ -87,8 +87,8 @@ rl_input (char *buf, int *result, int max) %} DIGIT [0-9] -FILE [a-z_/][a-z0-9_/]* VAR [a-z_][a-z0-9_]* +FILE [a-z_/.][a-z0-9_/.]* HEX [0-9a-z] OCT [0-7] BIN [01] @@ -222,20 +222,20 @@ unmap { return UNMAP; } -{FILE} { +{VAR} { yylval.tptr = malloc(sizeof(yytext)); if (yylval.tptr) strcpy(yylval.tptr, yytext); else printf ("no mem in %s", __FUNCTION__); if (debug > 4) printf ("FILE: >%s<\n", yytext); - return FILENAME; + return VARNAME; } -{VAR} { +{FILE} { yylval.tptr = malloc(sizeof(yytext)); if (yylval.tptr) strcpy(yylval.tptr, yytext); else printf ("no mem in %s", __FUNCTION__); if (debug > 4) printf ("VAR: >%s<\n", yytext); - return VARNAME; + return FILENAME; } {DIGIT}+ { @@ -74,6 +74,7 @@ char *tptr; %right <val> CR %type <val> num +%type <val> filename %% /* FPGAedit Grammar */ @@ -119,7 +120,7 @@ line: CR ; open: OPEN { printf ("open <filename>\n"); } - | OPEN FILENAME { + | OPEN filename { if (fd>=0) close (fd); fd = open($2, O_RDWR | O_SYNC); @@ -130,6 +131,9 @@ open: OPEN { printf ("open <filename>\n"); } } ; +filename: FILENAME + | VARNAME + close: CLOSE { if (fd>0) { close (fd); fd = -1; |