all:	ag

scanner.c: oxout.l parser.c
	flex -oscanner.c oxout.l

scanner.o: scanner.c
	gcc -g -ansi -c scanner.c

ag: scanner.o parser.o symbol_table.o
	gcc -o ag parser.o scanner.o symbol_table.o -ll

symbol_table.o: symbol_table.c
	gcc -g -ansi -c symbol_table.c

parser.o: parser.c
	gcc -g -ansi -c parser.c

parser.c: oxout.y
	yacc -d oxout.y -o parser.c

oxout.y oxout.l: parser.y scanner.lex 
	ox parser.y scanner.lex

clean:
	rm -f ag symbol_table.o scanner.o scanner.c parser.o parser.c oxout.y oxout.l

