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

Grammar.java 文件源码 项目:codebuff 阅读 32 收藏 0 点赞 0 评论 0
public LexerInterpreter createLexerInterpreter(CharStream input) {
    if (this.isParser()) {
        throw new IllegalStateException("A lexer interpreter can only be created for a lexer or combined grammar.");
    }

    if (this.isCombined()) {
        return implicitLexer.createLexerInterpreter(input);
    }

    char[] serializedAtn = ATNSerializer.getSerializedAsChars(atn);
    ATN deserialized = new ATNDeserializer().deserialize(serializedAtn);
    return new LexerInterpreter(fileName, getVocabulary(), Arrays.asList(getRuleNames()), ((LexerGrammar)this).modes.keySet(), deserialized, input);
}
Grammar.java 文件源码 项目:codebuff 阅读 33 收藏 0 点赞 0 评论 0
/** @since 4.5.1 */
public GrammarParserInterpreter createGrammarParserInterpreter(TokenStream tokenStream) {
    if (this.isLexer()) {
        throw new IllegalStateException("A parser interpreter can only be created for a parser or combined grammar.");
    }
    char[] serializedAtn = ATNSerializer.getSerializedAsChars(atn);
    ATN deserialized = new ATNDeserializer().deserialize(serializedAtn);
    return new GrammarParserInterpreter(this, deserialized, tokenStream);
}
Grammar.java 文件源码 项目:codebuff 阅读 35 收藏 0 点赞 0 评论 0
public ParserInterpreter createParserInterpreter(TokenStream tokenStream) {
    if (this.isLexer()) {
        throw new IllegalStateException("A parser interpreter can only be created for a parser or combined grammar.");
    }

    char[] serializedAtn = ATNSerializer.getSerializedAsChars(atn);
    ATN deserialized = new ATNDeserializer().deserialize(serializedAtn);
    return new ParserInterpreter(fileName, getVocabulary(), Arrays.asList(getRuleNames()), deserialized, tokenStream);
}
SerializedATN.java 文件源码 项目:codebuff 阅读 23 收藏 0 点赞 0 评论 0
public SerializedATN(OutputModelFactory factory, ATN atn) {
        super(factory);
        IntegerList data = ATNSerializer.getSerialized(atn);
        serialized = new ArrayList<String>(data.size());
        for (int c : data.toArray()) {
            String encoded = factory.getGenerator().getTarget().encodeIntAsCharEscape(c == -1 ? Character.MAX_VALUE : c);
            serialized.add(encoded);
        }
//      System.out.println(ATNSerializer.getDecoded(factory.getGrammar(), atn));
    }
ParserInterpreterData.java 文件源码 项目:goworks 阅读 21 收藏 0 点赞 0 评论 0
public static ParserInterpreterData buildFromSnapshot(DocumentSnapshot snapshot) {
    LexerInterpreterData lexerInterpreterData = LexerInterpreterData.buildFromSnapshot(snapshot);
    if (lexerInterpreterData == null) {
        return null;
    }

    List<SyntaxError> syntaxErrors = new ArrayList<>();
    Tool tool = new CustomTool(snapshot);
    tool.errMgr = new CustomErrorManager(tool);
    tool.addListener(new ErrorListener(snapshot, tool, syntaxErrors));
    tool.libDirectory = new File(snapshot.getVersionedDocument().getFileObject().getPath()).getParent();

    ANTLRStringStream stream = new ANTLRStringStream(snapshot.getText());
    stream.name = snapshot.getVersionedDocument().getFileObject().getNameExt();
    GrammarRootAST ast = tool.parse(stream.name, stream);
    Grammar grammar = tool.createGrammar(ast);
    if (grammar instanceof LexerGrammar) {
        return null;
    }

    tool.process(grammar, false);

    ParserInterpreterData data = new ParserInterpreterData();

    // start by filling in the lexer data
    data.lexerInterpreterData = lexerInterpreterData;

    // then fill in the parser data
    data.grammarFileName = grammar.fileName;
    data.serializedAtn = ATNSerializer.getSerializedAsString(grammar.atn, Arrays.asList(grammar.getRuleNames()));
    data.vocabulary = grammar.getVocabulary();
    data.ruleNames = new ArrayList<>(grammar.rules.keySet());

    return data;
}
ParserInterpreterData.java 文件源码 项目:antlrworks2 阅读 27 收藏 0 点赞 0 评论 0
public static ParserInterpreterData buildFromSnapshot(DocumentSnapshot snapshot) {
    LexerInterpreterData lexerInterpreterData = LexerInterpreterData.buildFromSnapshot(snapshot);
    if (lexerInterpreterData == null) {
        return null;
    }

    List<SyntaxError> syntaxErrors = new ArrayList<>();
    Tool tool = new CustomTool(snapshot);
    tool.errMgr = new CustomErrorManager(tool);
    tool.addListener(new ErrorListener(snapshot, tool, syntaxErrors));
    tool.libDirectory = new File(snapshot.getVersionedDocument().getFileObject().getPath()).getParent();

    ANTLRStringStream stream = new ANTLRStringStream(snapshot.getText());
    stream.name = snapshot.getVersionedDocument().getFileObject().getNameExt();
    GrammarRootAST ast = tool.parse(stream.name, stream);
    Grammar grammar = tool.createGrammar(ast);
    if (grammar instanceof LexerGrammar) {
        return null;
    }

    tool.process(grammar, false);

    ParserInterpreterData data = new ParserInterpreterData();

    // start by filling in the lexer data
    data.lexerInterpreterData = lexerInterpreterData;

    // then fill in the parser data
    data.grammarFileName = grammar.fileName;
    data.serializedAtn = ATNSerializer.getSerializedAsString(grammar.atn, Arrays.asList(grammar.getRuleNames()));
    data.vocabulary = grammar.getVocabulary();
    data.ruleNames = new ArrayList<>(grammar.rules.keySet());

    return data;
}
PreviewParser.java 文件源码 项目:intellij-plugin-v4 阅读 58 收藏 0 点赞 0 评论 0
public PreviewParser(Grammar g, TokenStream input) {
    this(g, new ATNDeserializer().deserialize(ATNSerializer.getSerializedAsChars(g.getATN())), input);
}


问题


面经


文章

微信
公众号

扫码关注公众号