package org.uva.ql.main; import java.io.IOException; import org.antlr.v4.runtime.ANTLRFileStream; import org.antlr.v4.runtime.CommonTokenStream; import org.antlr.v4.runtime.tree.ParseTree; import org.uva.ql.antlr.QLImplErrorListener; import org.uva.ql.antlr.QLLexer; import org.uva.ql.antlr.QLParser; import org.uva.ql.ast.builder.QLImplVisitor; import org.uva.ql.ast.questionnaire.Questionnaire; import org.uva.ql.typechecker.TypeChecker; import org.uva.ql.view.GUIVisitor; public class Main { public static void main(String[] args) throws IOException { QLImplErrorListener errorListener = new QLImplErrorListener(); ANTLRFileStream input = new ANTLRFileStream("scripts/ql/quest1.ql"); QLLexer lexer = new QLLexer(input); CommonTokenStream tokens = new CommonTokenStream(lexer); QLParser parser = new QLParser(tokens); parser.addErrorListener(errorListener); ParseTree tree = parser.questionnaire(); QLImplVisitor visitor = new QLImplVisitor(); Questionnaire questionnaire = (Questionnaire) tree.accept(visitor); TypeChecker typeChecker = new TypeChecker(); if (questionnaire.accept(typeChecker)) { GUIVisitor guiVisitor = new GUIVisitor(); questionnaire.accept(guiVisitor); } typeChecker.printMessages(); } }