org.antlr.runtime.Parser类的使用及代码示例

x33g5p2x  于2022-01-26 转载在 其他  
字(10.7k)|赞(0)|评价(0)|浏览(171)

本文整理了Java中org.antlr.runtime.Parser类的一些代码示例,展示了Parser类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Parser类的具体详情如下:
包路径:org.antlr.runtime.Parser
类名称:Parser

Parser介绍

[英]A parser for TokenStreams. "parser grammars" result in a subclass of this.
[中]令牌流的解析器。“语法分析器”产生了这个类的一个子类。

代码示例

代码示例来源:origin: JesusFreke/smali

  1. public String getErrorMessage(RecognitionException e,
  2. String[] tokenNames) {
  3. if (verboseErrors) {
  4. List stack = getRuleInvocationStack(e, this.getClass().getName());
  5. String msg = null;
  6. if (e instanceof NoViableAltException) {
  7. NoViableAltException nvae = (NoViableAltException)e;
  8. msg = " no viable alt; token="+getTokenErrorDisplay(e.token)+
  9. " (decision="+nvae.decisionNumber+
  10. " state "+nvae.stateNumber+")"+
  11. " decision=<<"+nvae.grammarDecisionDescription+">>";
  12. } else {
  13. msg = super.getErrorMessage(e, tokenNames);
  14. }
  15. return stack + " " + msg;
  16. } else {
  17. return super.getErrorMessage(e, tokenNames);
  18. }
  19. }

代码示例来源:origin: protostuff/protostuff

  1. /**
  2. * Creates the error/warning message that we need to show users/IDEs when ANTLR has found a parsing error, has
  3. * recovered from it and is now telling us that a parsing exception occurred.
  4. *
  5. * @param tokenNames
  6. * token names as known by ANTLR (which we ignore)
  7. * @param e
  8. * The exception that was thrown
  9. */
  10. @Override
  11. public void displayRecognitionError(String[] tokenNames, RecognitionException e)
  12. {
  13. // This is just a place holder that shows how to override this method
  14. //
  15. super.displayRecognitionError(tokenNames, e);
  16. }

代码示例来源:origin: org.antlr/antlr4

  1. public String getParserErrorMessage(Parser parser, RecognitionException e) {
  2. String msg;
  3. if ( e instanceof NoViableAltException) {
  4. String name = parser.getTokenErrorDisplay(e.token);
  5. msg = name+" came as a complete surprise to me";
  6. }
  7. else if ( e instanceof v4ParserException) {
  8. msg = ((v4ParserException)e).msg;
  9. }
  10. else {
  11. msg = parser.getErrorMessage(e, parser.getTokenNames());
  12. }
  13. return msg;
  14. }

代码示例来源:origin: antlr/stringtemplate4

  1. protected void reportMessageAndThrowSTException(TokenStream tokens, Token templateToken,
  2. Parser parser, RecognitionException re)
  3. {
  4. if ( re.token.getType() == STLexer.EOF_TYPE ) {
  5. String msg = "premature EOF";
  6. group.errMgr.compileTimeError(ErrorType.SYNTAX_ERROR, templateToken, re.token, msg);
  7. }
  8. else if ( re instanceof NoViableAltException) {
  9. String msg = "'"+re.token.getText()+"' came as a complete surprise to me";
  10. group.errMgr.compileTimeError(ErrorType.SYNTAX_ERROR, templateToken, re.token, msg);
  11. }
  12. else if ( tokens.index() == 0 ) { // couldn't parse anything
  13. String msg = "this doesn't look like a template: \""+tokens+"\"";
  14. group.errMgr.compileTimeError(ErrorType.SYNTAX_ERROR, templateToken, re.token, msg);
  15. }
  16. else if ( tokens.LA(1) == STLexer.LDELIM ) { // couldn't parse expr
  17. String msg = "doesn't look like an expression";
  18. group.errMgr.compileTimeError(ErrorType.SYNTAX_ERROR, templateToken, re.token, msg);
  19. }
  20. else {
  21. String msg = parser.getErrorMessage(re, parser.getTokenNames());
  22. group.errMgr.compileTimeError(ErrorType.SYNTAX_ERROR, templateToken, re.token, msg);
  23. }
  24. throw new STException(); // we have reported the error, so just blast out
  25. }

代码示例来源:origin: org.netbeans.modules/org-netbeans-modules-cnd-modelimpl

  1. public void reportError(RecognitionException re) {
  2. super.reportError(re);
  3. hasErrorOccurred = true;
  4. }

代码示例来源:origin: com.ning.billing/killbill-osgi-bundles-analytics

  1. protected Object getMissingSymbol(IntStream input,
  2. RecognitionException e,
  3. int expectedTokenType,
  4. BitSet follow)
  5. {
  6. String tokenText = null;
  7. if ( expectedTokenType==Token.EOF ) tokenText = "<missing EOF>";
  8. else tokenText = "<missing "+getTokenNames()[expectedTokenType]+">";
  9. CommonToken t = new CommonToken(expectedTokenType, tokenText);
  10. Token current = ((TokenStream)input).LT(1);
  11. if ( current.getType() == Token.EOF ) {
  12. current = ((TokenStream)input).LT(-1);
  13. }
  14. t.line = current.getLine();
  15. t.charPositionInLine = current.getCharPositionInLine();
  16. t.channel = DEFAULT_TOKEN_CHANNEL;
  17. return t;
  18. }

代码示例来源:origin: org.daisy.libs/jstyleparser

  1. /**
  2. * Recovers and logs error, using custom follow set,
  3. * prepares tree part replacement
  4. */
  5. public Object invalidFallbackGreedy(int ttype, String ttext, BitSet follow, RecognitionException re) {
  6. parser.reportError(re);
  7. if ( state.lastErrorIndex==input.index() ) {
  8. // uh oh, another error at same token index; must be a case
  9. // where LT(1) is in the recovery token set so nothing is
  10. // consumed; consume a single token so at least to prevent
  11. // an infinite loop; this is a failsafe.
  12. input.consume();
  13. }
  14. state.lastErrorIndex = input.index();
  15. parser.beginResync();
  16. consumeUntilGreedy(input, follow);
  17. parser.endResync();
  18. return invalidReplacement(ttype, ttext);
  19. }

代码示例来源:origin: org.daisy.libs/jstyleparser

  1. /**
  2. * Recovers and logs error, prepares tree part replacement
  3. */
  4. public Object invalidFallback(int ttype, String ttext, RecognitionException re) {
  5. parser.reportError(re);
  6. parser.recover(input, re);
  7. return invalidReplacement(ttype, ttext);
  8. }

代码示例来源:origin: antlr/antlr3

  1. /** Set the token stream and reset the parser */
  2. public void setTokenStream(TokenStream input) {
  3. this.input = null;
  4. reset();
  5. this.input = input;
  6. }

代码示例来源:origin: org.apache.servicemix.bundles/org.apache.servicemix.bundles.antlr-runtime

  1. public Parser(TokenStream input) {
  2. super(); // highlight that we go to super to set state object
  3. setTokenStream(input);
  4. }

代码示例来源:origin: uk.co.nichesolutions/antlr4

  1. public String getParserErrorMessage(Parser parser, RecognitionException e) {
  2. String msg;
  3. if ( e instanceof NoViableAltException) {
  4. String name = parser.getTokenErrorDisplay(e.token);
  5. msg = name+" came as a complete surprise to me";
  6. }
  7. else if ( e instanceof v4ParserException) {
  8. msg = ((v4ParserException)e).msg;
  9. }
  10. else {
  11. msg = parser.getErrorMessage(e, parser.getTokenNames());
  12. }
  13. return msg;
  14. }

代码示例来源:origin: org.antlr/ST4

  1. protected void reportMessageAndThrowSTException(TokenStream tokens, Token templateToken,
  2. Parser parser, RecognitionException re)
  3. {
  4. if ( re.token.getType() == STLexer.EOF_TYPE ) {
  5. String msg = "premature EOF";
  6. group.errMgr.compileTimeError(ErrorType.SYNTAX_ERROR, templateToken, re.token, msg);
  7. }
  8. else if ( re instanceof NoViableAltException) {
  9. String msg = "'"+re.token.getText()+"' came as a complete surprise to me";
  10. group.errMgr.compileTimeError(ErrorType.SYNTAX_ERROR, templateToken, re.token, msg);
  11. }
  12. else if ( tokens.index() == 0 ) { // couldn't parse anything
  13. String msg = "this doesn't look like a template: \""+tokens+"\"";
  14. group.errMgr.compileTimeError(ErrorType.SYNTAX_ERROR, templateToken, re.token, msg);
  15. }
  16. else if ( tokens.LA(1) == STLexer.LDELIM ) { // couldn't parse expr
  17. String msg = "doesn't look like an expression";
  18. group.errMgr.compileTimeError(ErrorType.SYNTAX_ERROR, templateToken, re.token, msg);
  19. }
  20. else {
  21. String msg = parser.getErrorMessage(re, parser.getTokenNames());
  22. group.errMgr.compileTimeError(ErrorType.SYNTAX_ERROR, templateToken, re.token, msg);
  23. }
  24. throw new STException(); // we have reported the error, so just blast out
  25. }

代码示例来源:origin: net.rapture/CodeGenLib

  1. @Override
  2. public void reportError(RecognitionException e) {
  3. super.reportError(e);
  4. throw new IllegalArgumentException("Failed");
  5. }
  6. }

代码示例来源:origin: antlr/antlr3

  1. @Override
  2. protected Object getMissingSymbol(IntStream input,
  3. RecognitionException e,
  4. int expectedTokenType,
  5. BitSet follow)
  6. {
  7. String tokenText;
  8. if ( expectedTokenType==Token.EOF ) tokenText = "<missing EOF>";
  9. else tokenText = "<missing "+getTokenNames()[expectedTokenType]+">";
  10. CommonToken t = new CommonToken(expectedTokenType, tokenText);
  11. Token current = ((TokenStream)input).LT(1);
  12. if ( current.getType() == Token.EOF ) {
  13. current = ((TokenStream)input).LT(-1);
  14. }
  15. t.line = current.getLine();
  16. t.charPositionInLine = current.getCharPositionInLine();
  17. t.channel = DEFAULT_TOKEN_CHANNEL;
  18. t.input = current.getInputStream();
  19. return t;
  20. }

代码示例来源:origin: org.daisy.libs/jstyleparser

  1. /**
  2. * Recovers and logs error inside a function, using custom follow set,
  3. * prepares tree part replacement
  4. */
  5. public Object invalidFallback(int ttype, String ttext, BitSet follow, CSSLexerState.RecoveryMode mode, CSSLexerState ls, RecognitionException re) {
  6. parser.reportError(re);
  7. if ( state.lastErrorIndex==input.index() ) {
  8. // uh oh, another error at same token index; must be a case
  9. // where LT(1) is in the recovery token set so nothing is
  10. // consumed; consume a single token so at least to prevent
  11. // an infinite loop; this is a failsafe.
  12. input.consume();
  13. }
  14. state.lastErrorIndex = input.index();
  15. parser.beginResync();
  16. consumeUntil(input, follow, mode, ls);
  17. parser.endResync();
  18. return invalidReplacement(ttype, ttext);
  19. }

代码示例来源:origin: antlr/antlr3

  1. /** Set the token stream and reset the parser */
  2. public void setTokenStream(TokenStream input) {
  3. this.input = null;
  4. reset();
  5. this.input = input;
  6. }

代码示例来源:origin: com.impetus.fabric/fabric-jdbc-driver-shaded

  1. public Parser(TokenStream input) {
  2. super(); // highlight that we go to super to set state object
  3. setTokenStream(input);
  4. }

代码示例来源:origin: apache/phoenix

  1. @Override
  2. public String getErrorMessage(RecognitionException e, String[] tokenNames) {
  3. if (e instanceof MismatchedTokenException) {
  4. MismatchedTokenException mte = (MismatchedTokenException)e;
  5. String txt = mte.token.getText();
  6. String p = mte.token.getType() == -1 ? "EOF" : PARAPHRASE[mte.token.getType()];
  7. String expecting = (mte.expecting < PARAPHRASE.length && mte.expecting >= 0) ? PARAPHRASE[mte.expecting] : null;
  8. if (expecting == null) {
  9. return "unexpected token (" + line(mte.token) + "," + column(mte.token) + "): " + (txt != null ? txt : p);
  10. } else {
  11. return "expecting " + expecting +
  12. ", found '" + (txt != null ? txt : p) + "'";
  13. }
  14. } else if (e instanceof NoViableAltException) {
  15. //NoViableAltException nvae = (NoViableAltException)e;
  16. return "unexpected token: (" + line(e.token) + "," + column(e.token) + ")" + getTokenErrorDisplay(e.token);
  17. }
  18. return super.getErrorMessage(e, tokenNames);
  19. }

代码示例来源:origin: com.tunnelvisionlabs/antlr4

  1. public String getParserErrorMessage(Parser parser, RecognitionException e) {
  2. String msg;
  3. if ( e instanceof NoViableAltException) {
  4. String name = parser.getTokenErrorDisplay(e.token);
  5. msg = name+" came as a complete surprise to me";
  6. }
  7. else if ( e instanceof v4ParserException) {
  8. msg = ((v4ParserException)e).msg;
  9. }
  10. else {
  11. msg = parser.getErrorMessage(e, parser.getTokenNames());
  12. }
  13. return msg;
  14. }

代码示例来源:origin: org.antlr/stringtemplate

  1. protected void reportMessageAndThrowSTException(TokenStream tokens, Token templateToken,
  2. Parser parser, RecognitionException re)
  3. {
  4. if ( re.token.getType() == STLexer.EOF_TYPE ) {
  5. String msg = "premature EOF";
  6. group.errMgr.compileTimeError(ErrorType.SYNTAX_ERROR, templateToken, re.token, msg);
  7. }
  8. else if ( re instanceof NoViableAltException) {
  9. String msg = "'"+re.token.getText()+"' came as a complete surprise to me";
  10. group.errMgr.compileTimeError(ErrorType.SYNTAX_ERROR, templateToken, re.token, msg);
  11. }
  12. else if ( tokens.index() == 0 ) { // couldn't parse anything
  13. String msg = "this doesn't look like a template: \""+tokens+"\"";
  14. group.errMgr.compileTimeError(ErrorType.SYNTAX_ERROR, templateToken, re.token, msg);
  15. }
  16. else if ( tokens.LA(1) == STLexer.LDELIM ) { // couldn't parse expr
  17. String msg = "doesn't look like an expression";
  18. group.errMgr.compileTimeError(ErrorType.SYNTAX_ERROR, templateToken, re.token, msg);
  19. }
  20. else {
  21. String msg = parser.getErrorMessage(re, parser.getTokenNames());
  22. group.errMgr.compileTimeError(ErrorType.SYNTAX_ERROR, templateToken, re.token, msg);
  23. }
  24. throw new STException(); // we have reported the error, so just blast out
  25. }

相关文章