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