added skeleton Makefile, jlc.lex, jlc.y

git-svn-id: svn://anubis/misc/llvm@64 bd8a9e45-a331-0410-811e-c64571078777
This commit is contained in:
josh 2008-11-04 15:51:26 +00:00
parent 5b2b22ee47
commit b33303d296
3 changed files with 63 additions and 0 deletions

17
jlc/Makefile Normal file
View File

@ -0,0 +1,17 @@
FLEX := flex
BISON := bison
all: jlc
jlc: lex.yy.c jl.tab.c
$(CC) -o $@ $^
jl.tab.c jl.tab.h: jl.y
$(BISON) -d $<
lex.yy.c: jl.lex
$(FLEX) $<
clean:
-rm -f lex.yy.c jl.tab.c jl.tab.h *~ *.o jlc

13
jlc/jl.lex Normal file
View File

@ -0,0 +1,13 @@
%{
#include "jl.tab.h"
%}
%%
0b[01]+ return BIN_NUMBER;
0x[0-9A-Fa-f] return HEX_NUMBER;
0[0-9]* return OCT_NUMBER;
[1-9][0-9]* return DEC_NUMBER;
\n /* ignore newlines */
[ \t\v] /* ignore whitespace */
%%

33
jlc/jl.y Normal file
View File

@ -0,0 +1,33 @@
%{
#include <stdio.h>
void yyerror(const char * str)
{
fprintf(stderr, "error: %s\n", str);
}
int yywrap()
{
return 1;
}
main()
{
yyparse();
}
%}
%token BIN_NUMBER OCT_NUMBER DEC_NUMBER HEX_NUMBER
%%
number: BIN_NUMBER
| OCT_NUMBER
| DEC_NUMBER
| HEX_NUMBER
{
printf("Saw a number\n");
}
;