public static void main(String[] args) {
String code =
"int x;\n" +
"A b;\n";
ANTLRInputStream input = new ANTLRInputStream(code);
LangLexer lexer = new LangLexer(input);
CommonTokenStream tokens = new CommonTokenStream(lexer);
LangParser parser = new LangParser(tokens);
ParseTree tree = parser.file(); // start up
System.out.println(tree.toStringTree(parser));
ParseTreeWalker walker = new ParseTreeWalker();
Gen listener = new Gen();
walker.walk(listener, tree);
System.out.println(listener.file.toString());
}
java类org.antlr.v4.runtime.tree.ParseTreeWalker的实例源码
Trans.java 文件源码
项目:cs652
阅读 15
收藏 0
点赞 0
评论 0
Candle.java 文件源码
项目:Candle
阅读 17
收藏 0
点赞 0
评论 0
/**
* Processes an {@link org.antlr.v4.runtime.ANTLRInputStream}.
*
* @param inputStream The input stream.
* @return The document.
*
* @throws com.torchmind.candle.api.error.CandleException when lexing or parsing fails.
*/
@Nonnull
protected Candle read (@Nonnull ANTLRInputStream inputStream) throws CandleException {
try {
CandleLexer lexer = new CandleLexer (inputStream);
lexer.addErrorListener (new LexerErrorListener ());
CommonTokenStream tokenStream = new CommonTokenStream (lexer);
CandleParser parser = new CandleParser (tokenStream);
parser.setErrorHandler (new ParserErrorStrategy ());
ParseTreeWalker walker = new ParseTreeWalker ();
CandleListener listener = new CandleListener (this);
this.clear ();
walker.walk (listener, parser.candle ());
return this;
} catch (RuntimeException ex) {
if (ex.getCause () instanceof CandleException) { throw ((CandleException) ex.getCause ()); }
throw ex;
}
}
LanguageImpl.java 文件源码
项目:srclib-basic
阅读 20
收藏 0
点赞 0
评论 0
@Override
protected void parse(File sourceFile) throws ParseException {
try {
GrammarConfiguration configuration = LanguageBase.createGrammarConfiguration(this,
sourceFile,
CPP14Lexer.class,
CPP14Parser.class,
new DefaultErrorListener(sourceFile));
((CPP14Lexer) configuration.lexer).setSupport(this);
ParseTree tree = ((CPP14Parser) configuration.parser).translationunit();
ParseTreeWalker walker = new ParseTreeWalker();
walker.walk(new CPPParseTreeListener(this), tree);
} catch (Exception e) {
throw new ParseException(e);
}
}
LanguageImpl.java 文件源码
项目:srclib-basic
阅读 21
收藏 0
点赞 0
评论 0
@Override
protected void parse(File sourceFile) throws ParseException {
try {
GrammarConfiguration configuration = LanguageBase.createGrammarConfiguration(this,
sourceFile,
ObjCLexer.class,
ObjCParser.class,
new DefaultErrorListener(sourceFile));
ParseTree tree = ((ObjCParser) configuration.parser).translation_unit();
ParseTreeWalker walker = new ParseTreeWalker();
walker.walk(new ObjCParseTreeListener(this), tree);
} catch (Exception e) {
throw new ParseException(e);
}
}
LanguageImpl.java 文件源码
项目:srclib-basic
阅读 23
收藏 0
点赞 0
评论 0
@Override
public void graph() {
// first pass to extract defs
super.graph();
// second pass to extract refs
firstPass = false;
for (Map.Entry<File, ParseTree> entry : trees.entrySet()) {
processingPath.push(PathUtil.relativizeCwd(entry.getKey().toPath()));
LOGGER.info("Extracting refs from {}", getCurrentFile());
try {
ParseTreeWalker walker = new ParseTreeWalker();
walker.walk(new SwiftParseTreeListener(this), entry.getValue());
} catch (Exception e) {
LOGGER.error("Failed to process {} - unexpected error", getCurrentFile(), e);
} finally {
processingPath.pop();
}
}
}
LanguageImpl.java 文件源码
项目:srclib-basic
阅读 22
收藏 0
点赞 0
评论 0
@Override
protected void parse(File sourceFile) throws ParseException {
try {
GrammarConfiguration configuration = LanguageBase.createGrammarConfiguration(
this,
sourceFile,
SwiftLexer.class,
SwiftParser.class,
new DefaultErrorListener(sourceFile));
ParseTree tree = ((SwiftParser) configuration.parser).top_level();
ParseTreeWalker walker = new ParseTreeWalker();
walker.walk(new SwiftParseTreeListener(this), tree);
trees.put(sourceFile, tree);
} catch (Exception e) {
throw new ParseException(e);
}
}
DOMBuilder.java 文件源码
项目:isetools
阅读 23
收藏 0
点赞 0
评论 0
/**
* Fire off the full parse of the input and return the resulting DOM object.
* Any errors encountered during the parse will be logged in the Log class.
* <p>
* @see Log
* <p>
* @return the DOM built by parsing the string or file.
*/
@Override
public DOM build() {
ParserErrorListener parserListener = new ParserErrorListener(dom);
ISELexer lexer = new ISELexer(ais);
lexer.removeErrorListeners();
lexer.addErrorListener(parserListener);
CommonTokenStream tokenStream = new CommonTokenStream(lexer);
ISEParser parser = new ISEParser(tokenStream);
parser.removeErrorListeners();
parser.addErrorListener(parserListener);
ParseTreeWalker ptw = new ParseTreeWalker();
tokens = parser.getTokenStream();
ParseTree pt = parser.document();
ptw.walk(this, pt);
dom.index();
return dom;
}
QueryParserImpl.java 文件源码
项目:perspective-backend
阅读 30
收藏 0
点赞 0
评论 0
@Override
public void parse(String sql) throws SQLSyntaxErrorException {
try {
CharStream input = new CaseInsensitiveInputStream(sql);
ANTLRErrorListener errorListener = new InternalErrorListener();
SQLLexer sqlLexer = new SQLLexer(input);
sqlLexer.removeErrorListeners();
sqlLexer.addErrorListener(errorListener);
CommonTokenStream commonTokenStream = new CommonTokenStream(sqlLexer);
SQLParser sqlParser = new SQLParser(commonTokenStream);
sqlParser.removeErrorListeners();
sqlParser.addErrorListener(errorListener);
ParseTree parseTree = sqlParser.query();
ParseTreeWalker walker = new ParseTreeWalker();
walker.walk(this, parseTree);
} catch (ParseException e) {
errors.add(e.getMessage());
}
if (!errors.isEmpty()) {
String message = errors.stream().collect(Collectors.joining("; "));
throw new SQLSyntaxErrorException(message);
}
}
PlaceholderConfigurer.java 文件源码
项目:perspective-backend
阅读 111
收藏 0
点赞 0
评论 0
public List<String> getQueries() throws SQLDataException {
CharStream input = new ANTLRInputStream(sqlWithPlaceholders);
ANTLRErrorListener errorListener = new InternalErrorListener();
ParametersLexer parametersLexer = new ParametersLexer(input);
parametersLexer.removeErrorListeners();
parametersLexer.addErrorListener(errorListener);
CommonTokenStream commonTokenStream = new CommonTokenStream(parametersLexer);
ParametersParser parametersParser = new ParametersParser(commonTokenStream);
parametersParser.removeErrorListeners();
parametersParser.addErrorListener(errorListener);
ParseTree parseTree = parametersParser.queries();
ParseTreeWalker walker = new ParseTreeWalker();
walker.walk(this, parseTree);
if (exception.isPresent()) {
throw exception.get();
}
return preparedQueries;
}
ADLParser.java 文件源码
项目:archie
阅读 19
收藏 0
点赞 0
评论 0
public Archetype parse(CharStream stream) {
errors = new ADLParserErrors();
errorListener = new ADLErrorListener(errors);
lexer = new AdlLexer(stream);
lexer.addErrorListener(errorListener);
parser = new AdlParser(new CommonTokenStream(lexer));
parser.addErrorListener(errorListener);
tree = parser.adl(); // parse
//System.out.println(tree.toStringTree(parser));
ADLListener listener = new ADLListener(errors);
walker= new ParseTreeWalker();
walker.walk(listener, tree);
Archetype result = listener.getArchetype();
if(modelConstraintImposer != null && result.getDefinition() != null) {
modelConstraintImposer.imposeConstraints(result.getDefinition());
}
return result;
}