Java CommonTokenStream类使用实例

发布时间:2025-12-09 11:47:22 浏览次数:2

实例1: parse

import org.antlr.v4.runtime.CommonTokenStream; //导入依赖的package包/类/** * @throws InvalidQueryException if the given query contains invalid characters or is incomplete */public SqlGrammarParser.SelectStatementContext parse(String query) {    log.trace("About to parse [{}]", query);    long now = currentTimeMillis();    CharStream input = CharStreams.fromString(query);    SqlGrammarLexer lexer = new SqlGrammarLexer(input);    TokenStream tokenStream = new CommonTokenStream(lexer);    SqlGrammarParser parser = new SqlGrammarParser(tokenStream);    parser.removeErrorListeners();    parser.addErrorListener(new RaiseExceptionErrorListener());    SqlGrammarParser.SelectStatementContext result = parser.selectStatement();    log.trace("Successfully parsed [{}] into [{}] in [{}ms]",            query, result.toStringTree(parser), currentTimeMillis() - now);    return result;} 

实例2: parseString

import org.antlr.v4.runtime.CommonTokenStream; //导入依赖的package包/类@Overridepublic SortedMap<Integer, String> parseString(String fieldString) {    CharStream is = CharStreams.fromString(fieldString);    DrawGrammarLexer lex = new DrawGrammarLexer(is);    CommonTokenStream tokens = new CommonTokenStream(lex);    DrawGrammarParser parser = new DrawGrammarParser(tokens);    palette = Palette.makeDefaultPalette("DarkSpectrum");    final SortedMap<Integer, String> resultMap;    try {        resultMap = parser.root().map;    } catch (RecognitionException | NullPointerException | StringIndexOutOfBoundsException | RasterFormatException re) {        //Something wrong with the parsing do not update.        return null;    }    return resultMap;} 

实例3: main

import org.antlr.v4.runtime.CommonTokenStream; //导入依赖的package包/类/** * @param args the command line arguments * @throws java.io.IOException * @throws java.net.URISyntaxException */public static void main(String[] args) throws IOException, URISyntaxException {    final String entryPoint;    final URL res;    switch (args.length) {    case 2:        res = Paths.get(args[0]).toUri().toURL();        entryPoint = args[1];        break;    default:        System.err.println("Supply two parameters in the following order:\n- file name of the main function\n- name of the main function\n\nFor example: hello.ct main:argc:argv");        return;    }    final CharStream inp = CharStreams.fromStream(res.openStream());    final GrammarLexer lex = new GrammarLexer(inp);    final TokenStream toks = new CommonTokenStream(lex);    final GrammarParser parser = new GrammarParser(toks);    System.out.println(new Translator(res.toURI()).generate(parser.program(), entryPoint));} 

实例4: generateAST

import org.antlr.v4.runtime.CommonTokenStream; //导入依赖的package包/类private BooleanExpListNode generateAST(String code) {    FormalPropertyDescriptionLexer l = new FormalPropertyDescriptionLexer(new ANTLRInputStream(code));    CommonTokenStream ts = new CommonTokenStream(l);    FormalPropertyDescriptionParser p = new FormalPropertyDescriptionParser(ts);    BooleanExpScope declaredVars = new BooleanExpScope();    preAndPostConditionsDescription.getSymbolicVariableList().forEach((v) -> {        declaredVars.addTypeForId(v.getId(), v.getInternalTypeContainer());    });    return translator.generateFromSyntaxTree(            p.booleanExpList(),            electionDescription.getInputType().getType(),            electionDescription.getOutputType().getType(),            declaredVars);} 
tokenstream
需要做网站?需要网络推广?欢迎咨询客户经理 13272073477