package qlProject.main; import java.io.File; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.Map; import java.util.Set; import org.antlr.v4.runtime.ANTLRInputStream; import org.antlr.v4.runtime.CommonTokenStream; import org.antlr.v4.runtime.tree.ParseTree; import org.apache.commons.io.FileUtils; import qlProject.ast.Questionnaire; import qlProject.ast.value.Value; import qlProject.grammar.ParserToASTVisitor; import qlProject.grammar.qlGrammarLexer; import qlProject.grammar.qlGrammarParser; import qlProject.gui.GuiManager; import qlProject.typeChecking.TypeCheckManager; import qlProject.util.QuestionDetails; public class Main { public static ParseTree createParseTreeFromInput(String s){ ANTLRInputStream inputStream = new ANTLRInputStream(s); qlGrammarLexer lexer = new qlGrammarLexer(inputStream); CommonTokenStream tokens = new CommonTokenStream( lexer ); qlGrammarParser parser = new qlGrammarParser( tokens ); return parser.form(); } public static void main(String[] args) { Map<String, QuestionDetails> questionsDetails = new LinkedHashMap<String, QuestionDetails>(); Map<String,Set<String>> dependencies = new HashMap<String,Set<String>>(); Map<String,Set<String>> awaitingCalculationIds = new HashMap<String,Set<String>>(); Map<String, Value> valuesEnvironment = new HashMap<String, Value>(); try { File f = new File("E:/tstst.txt"); String input = FileUtils.readFileToString(f); ParseTree tree = createParseTreeFromInput(input); Questionnaire q = (Questionnaire)tree.accept(new ParserToASTVisitor()); new TypeCheckManager(q, questionsDetails, valuesEnvironment, dependencies ,awaitingCalculationIds).manageTypeChecking(); new GuiManager(questionsDetails, valuesEnvironment, dependencies, awaitingCalculationIds).manageGUI(q); } // TODO tostring expressions questions? catch (Exception exc) { System.err.println(exc.getMessage()); } } }