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

ParserFactory.java 文件源码 项目:goworks 阅读 24 收藏 0 点赞 0 评论 0
@NonNull
public CodeCompletionGoParser getParser(@NonNull TokenStream input) {
    CodeCompletionGoParser parser = createParser(input);

    parser.removeErrorListeners();
    parser.setBuildParseTree(false);
    parser.setErrorHandler(new DefaultErrorStrategy());
    parser.getInterpreter().setPredictionMode(PredictionMode.LL);
    parser.getInterpreter().force_global_context = false;
    parser.getInterpreter().always_try_local_context = true;

    parser.setCheckPackageNames(false);
    parser.setPackageNames(Collections.<String>emptyList());

    return parser;
}
CompletionParserATNSimulator.java 文件源码 项目:goworks 阅读 16 收藏 0 点赞 0 评论 0
@Override
public int adaptivePredict(TokenStream input, int decision, ParserRuleContext outerContext) {
    if (decision == QID_DECISION && QID_DECISION >= 0) {
        if (input.LA(1) == GoParser.IDENTIFIER) {
            if (input.LA(2) == GoParser.Dot) {
                if (input.LA(3) == GoParser.IDENTIFIER) {
                    return qidPredicate.eval(parser, outerContext) ? 1 : 2;
                } else if (input.LA(3) != CaretToken.CARET_TOKEN_TYPE) {
                    return 2;
                }
            } else if (input.LA(2) != CaretToken.CARET_TOKEN_TYPE) {
                return 2;
            }
        }
    }

    return super.adaptivePredict(input, decision, outerContext);
}
AbstractParserCache.java 文件源码 项目:goworks 阅读 18 收藏 0 点赞 0 评论 0
public T getParser(TokenStream input) {
    T parser = null;
    synchronized (parsers) {
        while (parser == null && !parsers.isEmpty()) {
            parser = parsers.poll().get();
        }
    }

    if (parser != null) {
        parser.setInputStream(input);
    } else {
        parser = createParser(input);
    }

    return parser;
}
ThrowExceptionErrorListener.java 文件源码 项目:criteria 阅读 17 收藏 0 点赞 0 评论 0
@Override
public final void syntaxError(final Recognizer<?, ?> recognizer,
    final Object offendingSymbol, final int line,
    final int charPositionInLine, final String msg,
    final RecognitionException e) {
  String input;
  if (recognizer instanceof Lexer) {
    final CharStream cs = ((Lexer) recognizer).getInputStream();
    input = cs.getText(new Interval(0, cs.size()));
  } else if (recognizer instanceof Parser) {
    final TokenStream tokens = ((Parser) recognizer).getInputStream();
    if (tokens != null) {
      input = tokens.getText();
    } else {
      input = "<unknown input>";
    }
  } else {
    input = "<unknown input>";
  }
  throw new AntlrParseException(input, line, charPositionInLine, msg);
}
Pql2Compiler.java 文件源码 项目:pinot 阅读 21 收藏 0 点赞 0 评论 0
@Override
public TransformExpressionTree compileToExpressionTree(String expression) {
  CharStream charStream = new ANTLRInputStream(expression);
  PQL2Lexer lexer = new PQL2Lexer(charStream);
  lexer.setTokenFactory(new CommonTokenFactory(true));
  TokenStream tokenStream = new UnbufferedTokenStream<CommonToken>(lexer);
  PQL2Parser parser = new PQL2Parser(tokenStream);
  parser.setErrorHandler(new BailErrorStrategy());

  // Parse
  ParseTree parseTree = parser.expression();

  ParseTreeWalker walker = new ParseTreeWalker();
  Pql2AstListener listener = new Pql2AstListener(expression, _splitInClause);
  walker.walk(listener, parseTree);

  final AstNode rootNode = listener.getRootNode();
  return TransformExpressionTree.buildTree(rootNode);
}
ParserUtils.java 文件源码 项目:antlr-denter 阅读 23 收藏 0 点赞 0 评论 0
public static <P extends Parser> P getParser(Class<? extends Lexer> lexerClass, Class<P> parserClass, String source) {
  Lexer lexer = getLexer(lexerClass, source);
  TokenStream tokens = new CommonTokenStream(lexer);

  P parser;
  try {
    parser = parserClass.getConstructor(TokenStream.class).newInstance(tokens);
  } catch (Exception e) {
    throw new IllegalArgumentException("couldn't invoke parser constructor", e);
  }
  parser.getInterpreter().setPredictionMode(PredictionMode.LL_EXACT_AMBIG_DETECTION);
  parser.removeErrorListeners(); // don't spit to stderr
  parser.addErrorListener(new DiagnosticErrorListener());
  parser.addErrorListener(new AntlrFailureListener());

  return parser;
}
GrammarPredicates.java 文件源码 项目:beakerx 阅读 19 收藏 0 点赞 0 评论 0
public static boolean isClassName(TokenStream _input) {
  try {
    int i=1;
    Token token = _input.LT(i);
    while (token!=null && i < _input.size() && _input.LT(i+1).getType() == GroovyParser.DOT) {
      i = i + 2;
      token = _input.LT(i);
    }
    if(token==null)
      return false;
    // TODO here
    return Character.isUpperCase(Character.codePointAt(token.getText(), 0));
  } catch(Exception e) {
    e.printStackTrace();
  }

  return false;
}
ProfilerPanel.java 文件源码 项目:intellij-plugin-v4 阅读 22 收藏 0 点赞 0 评论 0
public Token addDecisionEventHighlighter(PreviewState previewState, MarkupModel markupModel,
                                         DecisionEventInfo info, Color errorStripeColor,
                                         EffectType effectType) {
    TokenStream tokens = previewState.parsingResult.parser.getInputStream();
    Token startToken = tokens.get(info.startIndex);
    Token stopToken = tokens.get(info.stopIndex);
    TextAttributes textAttributes =
        new TextAttributes(JBColor.BLACK, JBColor.WHITE, errorStripeColor,
                           effectType, Font.PLAIN);
    textAttributes.setErrorStripeColor(errorStripeColor);
    final RangeHighlighter rangeHighlighter =
        markupModel.addRangeHighlighter(
            startToken.getStartIndex(), stopToken.getStopIndex()+1,
            HighlighterLayer.ADDITIONAL_SYNTAX, textAttributes,
            HighlighterTargetArea.EXACT_RANGE);
    rangeHighlighter.putUserData(DECISION_EVENT_INFO_KEY, info);
    rangeHighlighter.setErrorStripeMarkColor(errorStripeColor);
    return startToken;
}
AbstractParserCache.java 文件源码 项目:antlrworks2 阅读 16 收藏 0 点赞 0 评论 0
public T getParser(TokenStream input) {
    T parser = null;
    synchronized (parsers) {
        while (parser == null && !parsers.isEmpty()) {
            parser = parsers.poll().get();
        }
    }

    if (parser != null) {
        parser.setInputStream(input);
    } else {
        parser = createParser(input);
    }

    return parser;
}
Bibitem.java 文件源码 项目:bibrarian 阅读 16 收藏 0 点赞 0 评论 0
/**
 * Parse.
 * @param text Text to parse
 * @return Map of tags
 * @throws BibSyntaxException If fails
 */
private static Map<String, String> parse(final String text)
    throws BibSyntaxException {
    final BibLexer lexer = new BibLexer(new ANTLRInputStream(text));
    final TokenStream tokens = new CommonTokenStream(lexer);
    final BibParser parser = new BibParser(tokens);
    final Errors errors = new Errors();
    lexer.addErrorListener(errors);
    parser.addErrorListener(errors);
    final Map<String, String> map;
    try {
        map = parser.tags().map;
    } catch (final RecognitionException ex) {
        throw new BibSyntaxException(ex);
    }
    if (!Iterables.isEmpty(errors)) {
        throw new BibSyntaxException(
            Joiner.on("; ").join(errors)
        );
    }
    return map;
}


问题


面经


文章

微信
公众号

扫码关注公众号