set yyin, add default program rule

git-svn-id: svn://anubis/misc/llvm@65 bd8a9e45-a331-0410-811e-c64571078777
This commit is contained in:
josh 2008-11-04 17:07:41 +00:00
parent b33303d296
commit 88735f6e40
2 changed files with 12 additions and 3 deletions

View File

@ -5,8 +5,8 @@
%% %%
0b[01]+ return BIN_NUMBER; 0b[01]+ return BIN_NUMBER;
0x[0-9A-Fa-f] return HEX_NUMBER; 0x[0-9A-Fa-f]+ return HEX_NUMBER;
0[0-9]* return OCT_NUMBER; 0[0-7]* return OCT_NUMBER;
[1-9][0-9]* return DEC_NUMBER; [1-9][0-9]* return DEC_NUMBER;
\n /* ignore newlines */ \n /* ignore newlines */
[ \t\v] /* ignore whitespace */ [ \t\v] /* ignore whitespace */

View File

@ -2,6 +2,8 @@
%{ %{
#include <stdio.h> #include <stdio.h>
extern FILE * yyin;
void yyerror(const char * str) void yyerror(const char * str)
{ {
fprintf(stderr, "error: %s\n", str); fprintf(stderr, "error: %s\n", str);
@ -12,8 +14,12 @@ int yywrap()
return 1; return 1;
} }
main() int main(int argc, char * argv[])
{ {
if (argc > 0)
{
yyin = fopen(argv[1], "r");
}
yyparse(); yyparse();
} }
@ -23,6 +29,9 @@ main()
%% %%
program: /* empty */
| number program { printf("Saw a number\n"); }
number: BIN_NUMBER number: BIN_NUMBER
| OCT_NUMBER | OCT_NUMBER
| DEC_NUMBER | DEC_NUMBER