abouttreesummaryrefslogcommitdiff
path: root/src/main.cpp
diff options
context:
space:
mode:
authorPatrick Schönberger2021-08-12 10:32:51 +0200
committerPatrick Schönberger2021-08-12 10:32:51 +0200
commit66a27d2fc7c1ad4e97de76d4982168a0fed9920a (patch)
treeca3f0e5d740214bc7ecd85949a278e64e49898b7 /src/main.cpp
parentc4231c6faf4e1b4650b075c641b0bb8c053739e4 (diff)
downloadtoc-66a27d2fc7c1ad4e97de76d4982168a0fed9920a.tar.gz
toc-66a27d2fc7c1ad4e97de76d4982168a0fed9920a.zip
comments
Diffstat (limited to 'src/main.cpp')
-rw-r--r--src/main.cpp11
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);