summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenedikt Spranger <b.spranger@pengutronix.de>2005-06-07 14:40:54 +0000
committerBenedikt Spranger <b.spranger@pengutronix.de>2005-06-07 14:40:54 +0000
commitc5d9f22a589c0067c872a1f7de2da6b2e3a5b2eb (patch)
tree5079f8920fdc91e33ec443d50a4269746fded419
parent1121651dc9049233a93a0ca90e8133c4eeb460a4 (diff)
downloadmemedit-c5d9f22a589c0067c872a1f7de2da6b2e3a5b2eb.tar.gz
memedit-c5d9f22a589c0067c872a1f7de2da6b2e3a5b2eb.tar.xz
Blame Bene: position does matter...
-rw-r--r--memedit.l10
-rw-r--r--memedit.y6
2 files changed, 10 insertions, 6 deletions
diff --git a/memedit.l b/memedit.l
index 8739c7e..338bc1d 100644
--- a/memedit.l
+++ b/memedit.l
@@ -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}+ {
diff --git a/memedit.y b/memedit.y
index ebbcadd..4e450ed 100644
--- a/memedit.y
+++ b/memedit.y
@@ -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;