package me.ivanyu.compiler; import me.ivanyu.RuleSetGrammarLexer; import me.ivanyu.RuleSetGrammarParser; import me.ivanyu.pojos.RuleSet; import org.antlr.v4.runtime.ANTLRInputStream; import org.antlr.v4.runtime.CommonTokenStream; import org.antlr.v4.runtime.TokenStream; public class Compiler { public RuleSet compile(String inputString) { ANTLRInputStream input = new ANTLRInputStream(inputString); RuleSetGrammarLexer lexer = new RuleSetGrammarLexer(input); TokenStream tokens = new CommonTokenStream(lexer); RuleSetGrammarParser parser = new RuleSetGrammarParser(tokens); TreeBuilder treeBuilder = new TreeBuilder(); parser.addParseListener(treeBuilder); parser.setErrorHandler(new ExceptionThrowingErrorHandler()); parser.rule_set(); return treeBuilder.getRuleSet(); } }