From: khooyp Date: Thu, 10 Feb 2011 01:59:02 +0000 (+0000) Subject: Clean up the build system for src/parser. X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=7c5a2ca456fcec6a49891f67cadce2af2ebe2648;p=francis%2Fstp.git Clean up the build system for src/parser. - Rename files consistently to be usable in pattern rules, and use patterns rules for flex/bison. git-svn-id: https://stp-fast-prover.svn.sourceforge.net/svnroot/stp-fast-prover/trunk/stp@1138 e59a4935-1847-0410-ae03-e826735625c1 --- diff --git a/src/parser/Makefile b/src/parser/Makefile index f2f7053..5e33139 100644 --- a/src/parser/Makefile +++ b/src/parser/Makefile @@ -3,9 +3,9 @@ include $(TOP)/scripts/Makefile.common #`From the flex manual>: -Cfe' is often a good compromise between speed and size for production scanners. LEX=flex -Cfe -YACC=bison -d -y --debug -v +YACC=bison --debug -v -SRCS = lexCVC.cpp parseCVC.cpp parseSMT.cpp lexSMT.cpp LetMgr.cpp parse2SMT.cpp lex2SMT.cpp +SRCS = $(foreach foo,cvc smt smt2,lex$(foo).cpp parse$(foo).cpp) LetMgr.cpp OBJS = $(SRCS:.cpp=.o) @@ -13,36 +13,15 @@ libparser.a: $(OBJS) $(RM) $@ $(AR) qcs $@ $^ -lexCVC.cpp: cvclib.lex parseCVC_defs.h ../AST/AST.h - $(LEX) -olexCVC.cpp -Pcvc cvclib.lex +lex%.cpp: %.lex parse%.hpp ../AST/AST.h + $(LEX) -o$@ -P$* $< -#For rules with multiple targets. Make runs the rule once for each -#target. These rules are "pattern rules" which only run once (rather -#than twice). +parse%.cpp parse%.hpp: %.y + $(YACC) -o parse$*.cpp -d -p $* $< -parseCV%_defs.h parseCV%.cpp: cvclib.y - $(YACC) -o cvc.tab.c -p cvc cvclib.y - @cp cvc.tab.c parseCVC.cpp - @cp cvc.tab.h parseCVC_defs.h - -lexSMT.cpp: parseSMT_defs.h smtlib.lex ../AST/AST.h - $(LEX) -olexSMT.cpp -Psmt smtlib.lex - -parseSM%_defs.h parseSM%.cpp:smtlib.y - $(YACC) -o smt.tab.c -p smt smtlib.y - @cp smt.tab.c parseSMT.cpp - @cp smt.tab.h parseSMT_defs.h - -lex2SMT.cpp: parse2SMT_defs.h smtlib2.lex ../AST/AST.h - $(LEX) -olex2SMT.cpp -Psmt2 smtlib2.lex - -parse2SM%_defs.h parse2SM%.cpp:smtlib2.y - $(YACC) -o smt2.tab.c -p smt2 smtlib2.y - @cp smt2.tab.c parse2SMT.cpp - @cp smt2.tab.h parse2SMT_defs.h clean: - $(RM) *.o parseCVC_defs.h parseSMT_defs.h *~ lexSMT.cpp parseSMT.cpp lexCVC.cpp parseCVC.cpp *.output smt.tab.* smt2.tab.* cvc.tab.* lex.yy.c libparser.a parse2SMT.cpp parse2SMT_defs.h lex2SMT.cpp .#* + $(RM) *.o *~ *.a .#* depend lex*.cpp parse*.cpp parse*.hpp *.output ifeq (,$(filter clean configclean distclean,$(MAKECMDGOALS))) depend: $(SRCS) diff --git a/src/parser/cvclib.lex b/src/parser/cvc.lex similarity index 99% rename from src/parser/cvclib.lex rename to src/parser/cvc.lex index fc26be2..e9089a9 100644 --- a/src/parser/cvclib.lex +++ b/src/parser/cvc.lex @@ -9,7 +9,7 @@ #include #include "parser.h" -#include "parseCVC_defs.h" +#include "parsecvc.hpp" #include "ParserInterface.h" using namespace std; diff --git a/src/parser/cvclib.y b/src/parser/cvc.y similarity index 100% rename from src/parser/cvclib.y rename to src/parser/cvc.y diff --git a/src/parser/smtlib.lex b/src/parser/smt.lex similarity index 99% rename from src/parser/smtlib.lex rename to src/parser/smt.lex index 4326f44..4fa24b7 100644 --- a/src/parser/smtlib.lex +++ b/src/parser/smt.lex @@ -35,7 +35,7 @@ // -*- c++ -*- #include #include "parser.h" -#include "parseSMT_defs.h" +#include "parsesmt.hpp" #include "ParserInterface.h" using namespace std; diff --git a/src/parser/smtlib.y b/src/parser/smt.y similarity index 100% rename from src/parser/smtlib.y rename to src/parser/smt.y diff --git a/src/parser/smtlib2.lex b/src/parser/smt2.lex similarity index 99% rename from src/parser/smtlib2.lex rename to src/parser/smt2.lex index 411e9e7..510b455 100644 --- a/src/parser/smtlib2.lex +++ b/src/parser/smt2.lex @@ -43,7 +43,7 @@ ********************************************************************/ // -*- c++ -*-L #include "parser.h" -#include "parse2SMT_defs.h" +#include "parsesmt2.hpp" #include "ParserInterface.h" extern char *smt2text; diff --git a/src/parser/smtlib2.y b/src/parser/smt2.y similarity index 100% rename from src/parser/smtlib2.y rename to src/parser/smt2.y