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:
parent
5b2b22ee47
commit
b33303d296
17
jlc/Makefile
Normal file
17
jlc/Makefile
Normal 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
13
jlc/jl.lex
Normal 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
33
jlc/jl.y
Normal 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");
|
||||
}
|
||||
;
|
Loading…
x
Reference in New Issue
Block a user