GHC=stack ghc --

all:
	bnfc SRL.cf
	bnfc RL.cf
	bnfc ESRL.cf
	bnfc ERL.cf

	happy -gca ParSRL.y
	alex -g LexSRL.x
	$(GHC) --make TestSRL.hs -o TestSRL

	happy -gca ParRL.y
	alex -g LexRL.x
	$(GHC) --make TestSRL.hs -o TestRL

	happy -gca ParESRL.y
	alex -g LexESRL.x
	$(GHC) --make TestESRL.hs -o TestESRL

	happy -gca ParERL.y
	alex -g LexERL.x
	$(GHC) --make TestESRL.hs -o TestERL

clean:
	-rm -f *.log *.aux *.hi *.o *.dvi

distclean: clean
	-rm -f DocSRL.* LexSRL.* ParSRL.* LayoutSRL.* SkelSRL.* PrintSRL.* TestSRL.* AbsSRL.* TestSRL ErrM.* SharedString.* ComposOp.* SRL.dtd XMLSRL.*
	-rm -f DocRL.* LexRL.* ParRL.* LayoutRL.* SkelRL.* PrintRL.* TestRL.* AbsRL.* TestRL
	-rm -f DocESRL.* LexESRL.* ParESRL.* LayoutESRL.* SkelESRL.* PrintESRL.* TestESRL.* AbsESRL.* TestESRL
	-rm -f DocERL.* LexERL.* ParERL.* LayoutERL.* SkelERL.* PrintERL.* TestERL.* AbsERL.* TestERL
