public static Forest generate(String code) throws SyntaxError {
Java8Lexer lexer = new Java8Lexer(CharStreams.fromString(code));
CommonTokenStream tokens = new CommonTokenStream(lexer);
Java8Parser parser = new Java8Parser(tokens);
Java8Parser.CompilationUnitContext ast = parser.compilationUnit();
if(parser.getNumberOfSyntaxErrors() > 0) {
throw new SyntaxError();
}
Forest forest = new Forest();
TreeViewListener treeViewListener = new TreeViewListener(forest);
ParseTreeWalker.DEFAULT.walk(treeViewListener, ast);
return forest;
}
java类org.antlr.v4.runtime.CharStreams的实例源码
TreeViewGenerator.java 文件源码
项目:Blindfold
阅读 22
收藏 0
点赞 0
评论 0
CombinerLogicInterface.java 文件源码
项目:bitbox
阅读 17
收藏 0
点赞 0
评论 0
static long getResult(String equationString) throws LogicGrammarParsingException {
CharStream is = CharStreams.fromString(equationString);
LogicGrammarLexer lex = new LogicGrammarLexer(is);
CommonTokenStream tokens = new CommonTokenStream(lex);
LogicGrammarParser parser = new LogicGrammarParser(tokens);
System.out.println("Parsing equation: " + equationString);
long final_result;
try {
final_result = parser.root().result;
} catch (RecognitionException | NumberFormatException nfe) {
throw new LogicGrammarParsingException();
}
return final_result;
}
BaseProcessor.java 文件源码
项目:ETUmulator
阅读 32
收藏 0
点赞 0
评论 0
private void execute(String instruction) {
ProcessorLexer lexer = new ProcessorLexer(CharStreams.fromString(instruction));
CommonTokenStream tokens = new CommonTokenStream(lexer);
ProcessorParser parser = new ProcessorParser(tokens);
ProcessorParser.ProgContext tree = parser.prog();
this.visit(tree);
}
Assembler.java 文件源码
项目:ETUmulator
阅读 24
收藏 0
点赞 0
评论 0
/**
* Assembles the given code in to an {@link ExecutableCode}.
*
* @param code T code to be assembled.
*
* @return The executable code.
*
* @throws SyntaxError If the code contains syntax error(s).
* @throws LabelError If an undefined label used or duplicate labels exist.
* @see ExecutableCode
*
*/
public ExecutableCode assemble(String code) throws SyntaxError, LabelError {
AssemblerLexer lexer = new AssemblerLexer(CharStreams.fromString(code));
CommonTokenStream tokens = new CommonTokenStream(lexer);
AssemblerParser parser = new AssemblerParser(tokens);
parser.prog();
if(parser.getNumberOfSyntaxErrors() > 0) {
throw new SyntaxError("You have error(s) in your code.");
}
ConstantValidator.validate(code);
ExecutableCode executableCode = linker.link(code);
loader.load(executableCode);
return executableCode;
}
ConstantValidator.java 文件源码
项目:ETUmulator
阅读 17
收藏 0
点赞 0
评论 0
public static void validate(String code) {
ConstantValidator constantValidator = new ConstantValidator();
AssemblerLexer lexer = new AssemblerLexer(CharStreams.fromString(code));
CommonTokenStream tokens = new CommonTokenStream(lexer);
AssemblerParser parser = new AssemblerParser(tokens);
AssemblerParser.ProgContext program = parser.prog();
constantValidator.visit(program);
}
Main.java 文件源码
项目:planless
阅读 19
收藏 0
点赞 0
评论 0
private static void run(String expr) throws Exception {
//构建流CodePointCharStream(4.7版本ANTLRInputStream标记为deprecated)
CodePointCharStream in = CharStreams.fromString(expr);
//词法分析
LionLexer lexer = new LionLexer(in);
//token流
CommonTokenStream tokens = new CommonTokenStream(lexer);
//语法分析器
LionParser parser = new LionParser(tokens);
//验证
parser.prog();
}
Antlr4OboParserTestBase.java 文件源码
项目:ontolib
阅读 23
收藏 0
点赞 0
评论 0
/**
* Build and return {@link Antlr4OboParser} for a given <code>text</code>.
*
* @param text String with the text to parse.
* @param mode Name of the mode to use.
* @return {@link Antlr4OboParser}, readily setup for parsing the OBO file.
*/
protected Antlr4OboParser buildParser(String text, String mode) {
final CodePointCharStream inputStream = CharStreams.fromString(text);
final OboLexer l = new OboLexer(inputStream);
for (int i = 0; i < l.getModeNames().length; ++i) {
if (mode.equals(l.getModeNames()[i])) {
l.mode(i);
}
}
Antlr4OboParser p = new Antlr4OboParser(new CommonTokenStream(l));
p.addErrorListener(new BaseErrorListener() {
@Override
public void syntaxError(Recognizer<?, ?> recognizer, Object offendingSymbol, int line,
int charPositionInLine, String msg, RecognitionException e) {
throw new IllegalStateException("failed to parse at line " + line + " due to " + msg, e);
}
});
p.addErrorListener(new DiagnosticErrorListener());
p.addParseListener(outerListener);
return p;
}
Pattern.java 文件源码
项目:simple-text-search-library
阅读 78
收藏 0
点赞 0
评论 0
public static Matcher compile(String query) {
try {
CodePointCharStream input = CharStreams.fromReader(new StringReader(query));
ExprLexer lexer = new ExprLexer(input);
CommonTokenStream tokens = new CommonTokenStream(lexer);
ExprParser parser = new ExprParser(tokens);
ParseTree tree = parser.expr();
Visitor visitor = new Visitor();
visitor.visit(tree);
return visitor.expression().normalize();
} catch (IOException e) {
throw new RuntimeException(e.getLocalizedMessage(), e);
}
}
StringTemplate.java 文件源码
项目:rest-modeling-framework
阅读 22
收藏 0
点赞 0
评论 0
public static StringTemplate of(final String template) {
final StringTemplateLexer lexer = new StringTemplateLexer(CharStreams.fromString(template));
final CommonTokenStream tokenStream = new CommonTokenStream(lexer);
final StringTemplateParser.StringTemplateContext stringTemplateContext =
new StringTemplateParser(tokenStream).stringTemplate();
final List<StringTemplate.Part> parts = new StringTemplateVisitor().visitStringTemplate(stringTemplateContext);
return of(parts);
}
StructuredQueryParser.java 文件源码
项目:graphflow
阅读 19
收藏 0
点赞 0
评论 0
public StructuredQuery parse(String query) throws ParseCancellationException {
GraphflowLexer lexer = new GraphflowLexer(CharStreams.fromString(query));
lexer.removeErrorListeners(); // Remove default listeners first.
lexer.addErrorListener(ErrorListener.INSTANCE);
GraphflowParser parser = new GraphflowParser(new CommonTokenStream(lexer));
parser.removeErrorListeners(); // Remove default listeners first.
parser.addErrorListener(ErrorListener.INSTANCE);
try {
ParseTree tree = parser.graphflow();
GraphflowVisitor visitor = new GraphflowVisitor();
return (StructuredQuery) visitor.visit(tree);
} catch (Exception e) {
throw new ParseCancellationException(e.getMessage());
}
}