protected void setRootRule(GrammarRuleKey ruleKey) { p.setRootRule(p.getGrammar().rule(ruleKey)); } }
/** * Re-parses a query that was retrieved as a String. * * @param astNode The String's node. * @return The query as a new QUERY_EXPRESSION node. */ public static AstNode parseQuery(AstNode astNode) { AstNode parsedQuery = null; try { String string = astNode.getTokenOriginalValue(); String queryAsString = StringUtils.substringBetween(string, "'", "'"); Parser<Grammar> queryParser = ApexParser.create(new ApexConfiguration(Charsets.UTF_8)); queryParser.setRootRule(queryParser.getGrammar().rule(ApexGrammarRuleKey.QUERY_EXPRESSION)); parsedQuery = queryParser.parse(queryAsString); } catch (Exception e) { ChecksLogger.logCheckError(CLASS_TO_LOG, METHOD_TO_LOG, e.toString()); } return parsedQuery; } }
@Test public void ok() { p.getGrammar().rule(PerlGrammar.ATOM).mock(); assertThat(p).matches("ATOM"); assertThat(p).matches("ATOM ATOM"); assertThat(p).matches("\n"); assertThat(p).matches("ATOM\nATOM"); }