private static ParseTree parseSQL(String sql) {
CharStream charStream = new ANTLRInputStream(sql);
RQLLexer lexer = new RQLLexer(charStream);
lexer.setTokenFactory(new CommonTokenFactory(true));
TokenStream tokenStream = new UnbufferedTokenStream<CommonToken>(lexer);
RQLParser parser = new RQLParser(tokenStream);
parser.setErrorHandler(new BailErrorStrategy());
return parser.root();
}
java类org.antlr.v4.runtime.BailErrorStrategy的实例源码
IndexRQL.java 文件源码
项目:indexr
阅读 26
收藏 0
点赞 0
评论 0
StringTemplateCSSHelper.java 文件源码
项目:JavaCSS
阅读 16
收藏 0
点赞 0
评论 0
protected void initialize(String input)
{
StringTemplateCSSLexer lexer = new StringTemplateCSSLexer(new ANTLRInputStream(input));
CommonTokenStream tokens = new CommonTokenStream(lexer);
StringTemplateCSSParser parser = new StringTemplateCSSParser(tokens);
parser.setErrorHandler(new BailErrorStrategy());
ParseTree tree = parser.css();
Collection<ParseTree> selectorCombinations = XPath.findAll(tree, "//selectorCombination", parser);
final StringUtils stringUtils = StringUtils.getInstance();
this.selectors = new ArrayList<List<String>>(selectorCombinations.size());
this.properties = new HashMap<List<String>, Map<String, String>>();
for (ParseTree selectorCombination : selectorCombinations) {
List<String> currentSelectors = new ArrayList<String>(selectorCombination.getChildCount());
this.selectors.add(currentSelectors);
for (int index = 0; index < selectorCombination.getChildCount(); index++) {
String text = selectorCombination.getChild(index).getText();
currentSelectors.add(text);
}
Map<String, String> block = retrieveProperties(selectorCombination, stringUtils);
this.properties.put(currentSelectors, block);
}
}
SQLiteParserUtils.java 文件源码
项目:Android-Orma
阅读 17
收藏 0
点赞 0
评论 0
@NonNull
public static SQLiteParser createParser(@NonNull String sql) {
CharStream source = new ANTLRInputStream(sql);
Lexer lexer = new SQLiteLexer(source);
TokenStream tokenStream = new CommonTokenStream(lexer);
SQLiteParser parser = new SQLiteParser(tokenStream);
parser.setErrorHandler(new BailErrorStrategy());
return parser;
}
CoreQueryParser.java 文件源码
项目:heroic
阅读 15
收藏 0
点赞 0
评论 0
private QueryListener parse(Function<HeroicQueryParser, ParserRuleContext> op, String input) {
final HeroicQueryLexer lexer = new HeroicQueryLexer(new ANTLRInputStream(input));
final CommonTokenStream tokens = new CommonTokenStream(lexer);
final HeroicQueryParser parser = new HeroicQueryParser(tokens);
parser.removeErrorListeners();
parser.setErrorHandler(new BailErrorStrategy());
final ParserRuleContext context;
try {
context = op.apply(parser);
} catch (final ParseCancellationException e) {
if (!(e.getCause() instanceof RecognitionException)) {
throw e;
}
throw toParseException((RecognitionException) e.getCause());
}
final QueryListener listener = new QueryListener();
ParseTreeWalker.DEFAULT.walk(listener, context);
final Token last = lexer.getToken();
if (last.getType() != Token.EOF) {
throw new ParseException(
String.format("garbage at end of string: '%s'", last.getText()), null,
last.getLine(), last.getCharPositionInLine());
}
return listener;
}
PropositionalParser.java 文件源码
项目:LogicNG
阅读 15
收藏 0
点赞 0
评论 0
/**
* Constructs a new parser.
* @param f the formula factory
*/
public PropositionalParser(final FormulaFactory f) {
super(f);
this.lexer = new PropositionalLexer(null);
CommonTokenStream tokens = new CommonTokenStream(this.lexer);
this.parser = new LogicNGPropositionalParser(tokens);
this.parser.setFormulaFactory(f);
this.lexer.removeErrorListeners();
this.parser.removeErrorListeners();
this.parser.setErrorHandler(new BailErrorStrategy());
}
PseudoBooleanParser.java 文件源码
项目:LogicNG
阅读 18
收藏 0
点赞 0
评论 0
/**
* Constructs a new parser for pseudo boolean formulas.
* @param f the formula factory
*/
public PseudoBooleanParser(final FormulaFactory f) {
super(f);
this.lexer = new PseudoBooleanLexer(null);
CommonTokenStream tokens = new CommonTokenStream(this.lexer);
this.parser = new LogicNGPseudoBooleanParser(tokens);
this.parser.setFormulaFactory(f);
this.lexer.removeErrorListeners();
this.parser.removeErrorListeners();
this.parser.setErrorHandler(new BailErrorStrategy());
}
JsonPathCompiler.java 文件源码
项目:JsonSurfer
阅读 18
收藏 0
点赞 0
评论 0
public static JsonPath compile(String path) {
JsonPathLexer lexer = new JsonPathLexer(CharStreams.fromString(path));
CommonTokenStream tokens = new CommonTokenStream(lexer);
JsonPathParser parser = new JsonPathParser(tokens);
parser.setErrorHandler(new BailErrorStrategy());
JsonPathParser.PathContext tree = parser.path();
JsonPathCompiler compiler = new JsonPathCompiler();
compiler.visit(tree);
return compiler.pathBuilder.build();
}
ForceUtils.java 文件源码
项目:datacollector
阅读 16
收藏 0
点赞 0
评论 0
public static SOQLParser.StatementContext getStatementContext(String query) {
SOQLLexer lexer = new SOQLLexer(new ANTLRInputStream(query));
CommonTokenStream tokens = new CommonTokenStream(lexer);
SOQLParser parser = new SOQLParser(tokens);
parser.setErrorHandler(new BailErrorStrategy());
return parser.statement();
}
TreeTemplate.java 文件源码
项目:Koral
阅读 15
收藏 0
点赞 0
评论 0
private ParserRuleContext parseQuery (String q) {
// TODO replace AqlLexer with lexer for your Antlr4 grammar!
Lexer qlLexer = new AqlLexer((CharStream) null);
ParserRuleContext tree = null;
// Like p. 111
try {
// Tokenize input data
ANTLRInputStream input = new ANTLRInputStream(q);
qlLexer.setInputStream(input);
CommonTokenStream tokens = new CommonTokenStream(qlLexer);
// TODO replace AqlParser with parser for your Antlr4
// grammar!
parser = new AqlParser(tokens);
// Don't throw out erroneous stuff
parser.setErrorHandler(new BailErrorStrategy());
parser.removeErrorListeners();
// Get starting rule from parser
// TODO replace AqlParser with parser for your Antlr4
// grammar!
Method startRule = AqlParser.class.getMethod("start");
tree = (ParserRuleContext) startRule
.invoke(parser, (Object[]) null);
}
// Some things went wrong ...
catch (Exception e) {
System.err.println(e.getMessage());
}
// Return the generated tree
return tree;
}
AnnisQueryProcessor.java 文件源码
项目:Koral
阅读 15
收藏 0
点赞 0
评论 0
private ParserRuleContext parseAnnisQuery (String query) {
Lexer lexer = new AqlLexer((CharStream) null);
ParserRuleContext tree = null;
Antlr4DescriptiveErrorListener errorListener = new Antlr4DescriptiveErrorListener(
query);
// Like p. 111
try {
// Tokenize input data
ANTLRInputStream input = new ANTLRInputStream(query);
lexer.setInputStream(input);
CommonTokenStream tokens = new CommonTokenStream(lexer);
parser = new AqlParser(tokens);
// Don't throw out erroneous stuff
parser.setErrorHandler(new BailErrorStrategy());
lexer.removeErrorListeners();
lexer.addErrorListener(errorListener);
parser.removeErrorListeners();
parser.addErrorListener(errorListener);
// Get starting rule from parser
Method startRule = AqlParser.class.getMethod("start");
tree = (ParserRuleContext) startRule.invoke(parser,
(Object[]) null);
}
// Some things went wrong ...
catch (Exception e) {
log.error("Could not parse query. "
+ "Please make sure it is well-formed.");
log.error(errorListener.generateFullErrorMsg().toString());
addError(errorListener.generateFullErrorMsg());
}
return tree;
}