package ql;
import java.io.FileInputStream;
import java.io.IOException;
import org.antlr.v4.runtime.ANTLRInputStream;
import org.antlr.v4.runtime.CommonTokenStream;
import org.antlr.v4.runtime.tree.ParseTree;
import ql.ast.ASTVisitor;
import ql.ast.Questionnaire;
import antlr4.TestLexer;
import antlr4.TestParser;
/**
* Test class to instantiate Test expression and do stuff.
*/
public class Test {
public static void main(String[] args) throws IOException {
// Create input stream from in.txt
FileInputStream in = new FileInputStream("src/in.txt");
ANTLRInputStream input = new ANTLRInputStream(in);
// Create lexer from input
TestLexer lexer = new TestLexer(input);
// Create tokens from lexer
CommonTokenStream tokens = new CommonTokenStream(lexer);
// Create parser from tokens
TestParser parser = new TestParser(tokens);
// Create tree from init rule
ParseTree tree = parser.questionnare();
// Print tree. Tada.
System.out.println("PARSE TREE:\n" + tree.toStringTree(parser));
// Create parsetree visitor, generate AST
ASTVisitor eval = new ASTVisitor();
Questionnaire q = (Questionnaire) eval.visit(tree);
System.out.println("At the root level, amount of statements found was " + q.getForm(0).countStatements());
}
}