.SUFFIXES: .class .java .lex

JLEX_CP = /home/nystrom/java

DIR=Iota/util/grammar

CLASS = \
	Yylex.class \
	Yytoken.class \
	Parse.class \
	Expr.class \
	Symbol.class \
	Terminal.class \
	Nonterminal.class \
	Star.class \
	Plus.class \
	Question.class \
	Rule.class \
	Grammar.class \
	LLAnalyze.class

JAVA = \
	$(DIR)/Expr.java \
	$(DIR)/Grammar.java \
	$(DIR)/LLAnalyze.java \
	$(DIR)/Nonterminal.java \
	$(DIR)/Parse.java \
	$(DIR)/Plus.java \
	$(DIR)/Question.java \
	$(DIR)/Rule.java \
	$(DIR)/Star.java \
	$(DIR)/Symbol.java \
	$(DIR)/Terminal.java \
	$(DIR)/Yytoken.java

all: $(CLASS) ../../../llanalyze.jar ../../../llanalyze_src.jar

test:
	java -classpath ../../../llanalyze.jar:$$CLASSPATH Iota.util.grammar.LLAnalyze < pa2_grammar.txt
	java -classpath ../../../llanalyze.jar:$$CLASSPATH Iota.util.grammar.LLAnalyze < pa2_grammar.dos

../../../llanalyze.jar: $(CLASS)
	(cd ../../..; jar cvf llanalyze.jar $(DIR)/*.class)

../../../llanalyze_src.jar: $(notdir $(JAVA)) Yylex Makefile pa2_grammar.txt pa2_grammar.dos README
	(cd ../../..; jar cvf llanalyze_src.jar $(JAVA) $(DIR)/Yylex $(DIR)/Makefile $(DIR)/pa2_grammar.txt $(DIR)/pa2_grammar.dos $(DIR)/README)

Yylex.java: Yylex
	java -classpath $(JLEX_CP):$$CLASSPATH JLex.Main Yylex

.java.class:
	(cd ../../..; javac $(DIR)/$<)

clean:
	rm -f *.class Yylex.java core
