(yywrap): Define as function if not defined as a macro.
authorKen Raeburn <raeburn@cygnus>
Thu, 5 May 1994 22:51:27 +0000 (22:51 +0000)
committerKen Raeburn <raeburn@cygnus>
Thu, 5 May 1994 22:51:27 +0000 (22:51 +0000)
binutils/syslex.l [new file with mode: 0644]

diff --git a/binutils/syslex.l b/binutils/syslex.l
new file mode 100644 (file)
index 0000000..e1fd85c
--- /dev/null
@@ -0,0 +1,51 @@
+%{
+#include "y.tab.h"
+char *word;
+int number;
+int unit;
+
+#ifndef yywrap
+static int yywrap () { return 1; }
+#endif
+%}
+%%
+"(" { return '(';}
+")" { return ')';}
+"[" { return '[';}
+"]" { return ']';}
+" " { ; }
+";".* { ; } 
+"\t" { ; }
+"\n" { ; }
+"\""[^\"]*"\"" {
+yylval.s = malloc(strlen (yytext));
+strcpy(yylval.s, yytext+1);
+yylval.s[strlen(yylval.s)-1] = 0;
+        return NAME;
+       }
+
+0x[0-9a-f]+ {
+        yylval.i = strtol(yytext,0,16);
+       return  NUMBER;
+       }
+
+[0-9]+ {
+        yylval.i = atoi(yytext);
+       return  NUMBER;
+       }
+
+
+"bits" { yylval.i =1 ;return UNIT;}
+"bit" { yylval.i = 1; return UNIT;}
+"bytes" { yylval.i= 8; return UNIT;}
+"byte" { yylval.i = 8; return UNIT;}
+
+"int" { yylval.s = "INT"; return TYPE;}
+"barray" { yylval.s = "BARRAY"; return TYPE;}
+"chars" { yylval.s = "CHARS"; return TYPE;}
+"variable" { yylval.i = 0; return NUMBER;}
+"counted" { yylval.i = -4; return NUMBER;}
+"addrsize" { yylval.i = -2; return NUMBER; }
+"segsize" { yylval.i = -1; return NUMBER; }
+"cond" { return COND;}
+"repeat" { return REPEAT;}