diff options
-rw-r--r-- | c_compiler/src/parser_main.cpp | 4 | ||||
-rw-r--r-- | makefile | 33 |
2 files changed, 33 insertions, 4 deletions
diff --git a/c_compiler/src/parser_main.cpp b/c_compiler/src/parser_main.cpp index 9626334..02dcfeb 100644 --- a/c_compiler/src/parser_main.cpp +++ b/c_compiler/src/parser_main.cpp @@ -5,11 +5,7 @@ int main(int argc, char *argv[]) { ast_Top *ast = parseAST(); - std::cout << "<?xml version=\"1.0\"?>" << std::endl << "<Program>" << std::endl; - ast->print(); - - std::cout << "</Program>" << std::endl; return 0; } @@ -11,6 +11,10 @@ PARINC := -Ic_parser/include PARBUILDDIR := c_parser/build PARSRCDIR := c_parser/src +COMPINC := -Ic_compiler/include +COMPBUILDDIR := c_compiler/build +COMPSRCDIR := c_compiler/src + all : bin/c_lexer bin/c_parser # Make the c_lexer @@ -62,6 +66,35 @@ $(PARSRCDIR)/c_parser.tab.cpp $(PARSRCDIR)/c_parser.tab.hpp : $(PARSRCDIR)/c_par @echo "Creating yacc..." @echo " bison -v -d $< -o $(PARSRCDIR)/c_parser.tab.cpp"; bison -v -d $< -o $(PARSRCDIR)/c_parser.tab.cpp +# Make the c_parser +bin/c_compiler : $(COMPBUILDDIR)/parser_main.o $(COMPBUILDDIR)/c_parser.tab.o $(COMPBUILDDIR)/c_lexer.yy.o + @echo "Linking..." + @echo " mkdir -p bin"; mkdir -p bin + @echo " $(CC) $^ -o bin/c_parser"; $(CC) $^ -o bin/c_parser + +$(COMPBUILDDIR)/%.o : $(COMPSRCDIR)/%.cpp + @echo "Building sources..." + @echo " mkdir -p $(COMPBUILDDIR)"; mkdir -p $(COMPBUILDDIR) + @echo " $(CC) $(CFLAGS) $(COMPINC) -c -o $@ $<"; $(CC) $(CFLAGS) $(COMPINC) -c -o $@ $< + +$(COMPBUILDDIR)/%.yy.o : $(COMPSRCDIR)/%.yy.cpp + @echo "Building lex..." + @echo " mkdir -p $(COMPBUILDDIR)"; mkdir -p $(COMPBUILDDIR) + @echo " $(CC) $(CFLAGS) $(COMPINC) -c -o $@ $<"; $(CC) $(CFLAGS) $(COMPINC) -c -o $@ $< + +$(COMPBUILDDIR)/c_parser.tab.o : $(COMPSRCDIR)/c_parser.tab.cpp + @echo "Building yacc..." + @echo " mkdir -p $(COMPBUILDDIR)"; mkdir -p $(COMPBUILDDIR) + @echo " $(CC) $(CFLAGS) $(COMPINC) -c -o $@ $<"; $(CC) $(CFLAGS) $(COMPINC) -c -o $@ $< + +$(COMPSRCDIR)/c_lexer.yy.cpp : $(COMPSRCDIR)/c_lexer.flex + @echo "Creating lex..." + @echo " flex -o $@ $<"; flex -o $@ $< + +$(COMPSRCDIR)/c_parser.tab.cpp $(COMPSRCDIR)/c_parser.tab.hpp : $(COMPSRCDIR)/c_parser.y + @echo "Creating yacc..." + @echo " bison -v -d $< -o $(COMPSRCDIR)/c_parser.tab.cpp"; bison -v -d $< -o $(COMPSRCDIR)/c_parser.tab.cpp + clean : @echo "Cleaning..." @echo " rm -r $(LEXBUILDDIR) bin $(LEXSRCDIR)/c_lexer.yy.cpp"; rm -r bin $(LEXBUILDDIR) $(LEXSRCDIR)/c_lexer.yy.cpp $(PARBUILDDIR) $(PARSRCDIR)/c_lexer.yy.cpp $(PARSRCDIR)/c_parser.tab.cpp $(PARSRCDIR)/c_parser.tab.hpp $(PARSRCDIR)/c_parser.output |