package nl.uva.softwcons.ql; import java.io.IOException; import java.io.InputStream; import nl.uva.softwcons.generated.QLLexer; import nl.uva.softwcons.generated.QLParser; import nl.uva.softwcons.ql.ast.ASTBuilderQL; import nl.uva.softwcons.ql.ast.form.Form; import org.antlr.v4.runtime.ANTLRInputStream; import org.antlr.v4.runtime.CommonTokenStream; import org.antlr.v4.runtime.tree.ParseTree; public final class FormBuilder { private FormBuilder() { } public static Form build(final String input) { return parseForm(new ANTLRInputStream(input)); } public static Form build(final InputStream input) throws IOException { return parseForm(new ANTLRInputStream(input)); } private static Form parseForm(final ANTLRInputStream input) { final QLLexer lexer = new QLLexer(input); final QLParser parser = new QLParser(new CommonTokenStream(lexer)); final ParseTree tree = parser.form(); return (Form) new ASTBuilderQL().visit(tree); } }