LEX=flex
YACC=bison -y
CC=gcc

all: 1.1 1.2 2.1 2.2 3.1 3.2

1.1: 1.1.o
	gcc -o $@ $< -lfl

1.2: 1.2.o
	gcc -o $@ $< -lfl

2.2.o: 2.2.c
	gcc -c -DSTANDALONE -o $@ $<

2.2: 2.2.o
	gcc -o $@ $< -lfl

3.1: 3.1.tab.o 3.1.scanner.o
	gcc -o $@ 3.1.tab.o 3.1.scanner.o -lfl -ly -lm

3.1.scanner.o: 3.1.tab.h 3.scanner.c
	gcc -c -o $@ 3.scanner.c -DPARSER_HEADER=\"$<\"

3.1.tab.c: 3.1.y
	bison 3.1.y

3.1.tab.h: 3.1.y
	bison -d 3.1.y

3.2: 3.2.tab.o 3.2.scanner.o
	gcc -o $@ 3.2.tab.o 3.2.scanner.o -lfl -ly -lm

3.2.scanner.o: 3.2.tab.h 3.scanner.c
	gcc -c -o $@ 3.scanner.c -DPARSER_HEADER=\"$<\"

3.2.tab.c: 3.2.y
	bison 3.2.y

3.2.tab.h: 3.2.y
	bison -d 3.2.y
