package tests.parseTreeToAST; import org.antlr.v4.runtime.ANTLRInputStream; import org.antlr.v4.runtime.tree.ParseTree; import parsing.FunctionParser; import parsing.TokenSubStream; import parsing.C.Functions.ANTLRCFunctionParserDriver; import antlr.C.FunctionLexer; import ast.ASTNode; public class FunctionContentTestUtil { public static ASTNode parseAndWalk(String input) { ANTLRCFunctionParserDriver driver = new ANTLRCFunctionParserDriver(); FunctionParser parser = new FunctionParser(driver); TokenSubStream tokens = tokenStreamFromString(input); parser.parseAndWalkTokenStream(tokens); return parser.getParser().builderStack.peek().getItem(); } static ParseTree parse(String input) { ANTLRCFunctionParserDriver driver = new ANTLRCFunctionParserDriver(); FunctionParser parser = new FunctionParser(driver); return parser.parseString(input); } private static TokenSubStream tokenStreamFromString(String input) { ANTLRInputStream inputStream = new ANTLRInputStream(input); FunctionLexer lex = new FunctionLexer(inputStream); TokenSubStream tokens = new TokenSubStream(lex); return tokens; } }