java类org.antlr.v4.runtime.CharStreams的实例源码

TreeViewGenerator.java 文件源码 项目:Blindfold 阅读 22 收藏 0 点赞 0 评论 0
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;
}
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());
    }
}


问题


面经


文章

微信
公众号

扫码关注公众号