X-Git-Url: https://gitweb.ps.run/toc/blobdiff_plain/c4231c6faf4e1b4650b075c641b0bb8c053739e4..66a27d2fc7c1ad4e97de76d4982168a0fed9920a:/src/main.cpp?ds=sidebyside diff --git a/src/main.cpp b/src/main.cpp index 5b53b10..bd9a2b2 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -17,27 +17,36 @@ int main(int argc, const char * argv[]) { std::ifstream ifs("test/test.toc"); + // create ANTLR input from filestream ANTLRInputStream input(ifs); + // lex input TocLexer lexer(&input); CommonTokenStream tokens(&lexer); + // parse TocParser parser(&tokens); + + // get Prog (root node) TocParser::ProgContext * prog = parser.prog(); - tree::ParseTree * tree = prog; + // dont continue on parse error if (parser.getNumberOfSyntaxErrors() > 0) { std::cerr << "Parsing error" << std::endl; return 1; } + // print raw parse tree + //tree::ParseTree * tree = prog; //std::string s = tree->toStringTree(&parser) + "\n"; //std::cout << "Parse Tree: " << s << std::endl; + // generate IR from tree and instantiate generics Program prg = getProgram(prog, nullptr); instantiateGenerics(prg); + // print to cout and file try { tocProgram(std::cout, prg);