| # uses JFlex >= 1.3.2, and CUP >= 0.10j |
| # |
| # targets: |
| # |
| # make all |
| # generates lexer, and parser, and compiles all *.java files |
| # |
| # make run (or just: make) |
| # starts the program on a test example |
| # |
| |
| |
| |
| .SUFFIXES: $(SUFFIXES) .class .java |
| |
| .java.class: |
| javac $*.java |
| |
| FILE= Yylex.java parser.java sym.java \ |
| SymTab.java AST.java \ |
| Tnumber.java Tident.java Texp.java \ |
| Tfun.java Texpinfix.java Tuminus.java \ |
| Tboolexp.java Tifthenelse.java \ |
| Tdekl.java Tdekllist.java \ |
| Tparlist.java Texplist.java Tprogram.java \ |
| Main.java \ |
| SymtabEntry.java STEfun.java STEvar.java |
| |
| |
| run: all |
| java Main < example.as |
| |
| all: Yylex.java parser.java $(FILE:java=class) |
| |
| clean: |
| rm -f *.class *~ *.bak Yylex.java parser.java sym.java |
| |
| Yylex.java: scanner.flex |
| jflex scanner.flex |
| |
| parser.java: parser.cup |
| java java_cup.Main -interface < parser.cup |