4 #include "TocLexer.h"
\r
5 #include "TocParser.h"
\r
9 #include "repr_get.h"
\r
11 using namespace antlr4;
\r
14 int main(int argc, const char * argv[]) {
\r
15 std::ifstream ifs("test.toc");
\r
17 ANTLRInputStream input(ifs);
\r
19 TocLexer lexer(&input);
\r
20 CommonTokenStream tokens(&lexer);
\r
22 TocParser parser(&tokens);
\r
23 TocParser::ProgContext * prog = parser.prog();
\r
24 tree::ParseTree * tree = prog;
\r
26 if (parser.getNumberOfSyntaxErrors() > 0) {
\r
27 std::cerr << "Parsing error" << std::endl;
\r
31 std::string s = tree->toStringTree(&parser) + "\n";
\r
33 //std::cout << "Parse Tree: " << s << std::endl;
\r
35 Program prg = getProgram(prog);
\r
36 std::cout << "Variables:\n";
\r
37 for (auto v : prg.variables)
\r
38 std::cout << " " << v.name << endl;
\r
39 std::cout << "Functions:\n";
\r
40 for (auto f : prg.functions)
\r
41 std::cout << " " << f.name << endl;
\r
43 tocProgram(std::cout, prg);
\r
45 //std::ofstream ofs("output.c");
\r
46 //tocProg(ofs, prg);
\r