diff options
Diffstat (limited to 'src/main.cpp')
| -rw-r--r-- | src/main.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
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);
|
