首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >100个使用Antlr4的Java编译错误

100个使用Antlr4的Java编译错误
EN

Stack Overflow用户
提问于 2020-10-16 19:18:16
回答 1查看 559关注 0票数 1

我刚开始使用ANTLR4,在编译过程中遇到了一些问题(使用Ubuntu)。我使用下面的语法"Expr":

代码语言:javascript
运行
复制
grammar Expr;       
prog:   (expr NEWLINE)* ;
expr:   expr ('*'|'/') expr
    |   expr ('+'|'-') expr
    |   INT
    |   '(' expr ')'
    ;
NEWLINE : [\r\n]+ ;
INT     : [0-9]+ ;

当我运行命令"antlr4 Expr.g4“..没有错误..然而,当我尝试使用“javac Expr*.java”进行编译时,我得到了一个包含100个错误的列表:

代码语言:javascript
运行
复制
ExprBaseListener.java:3: error: package org.antlr.v4.runtime does not exist
import org.antlr.v4.runtime.ParserRuleContext;
                           ^
ExprBaseListener.java:4: error: package org.antlr.v4.runtime.tree does not exist
import org.antlr.v4.runtime.tree.ErrorNode;
                                ^
ExprBaseListener.java:5: error: package org.antlr.v4.runtime.tree does not exist
import org.antlr.v4.runtime.tree.TerminalNode;
                                ^
ExprListener.java:2: error: package org.antlr.v4.runtime.tree does not exist
import org.antlr.v4.runtime.tree.ParseTreeListener;
                                ^
ExprListener.java:8: error: cannot find symbol
public interface ExprListener extends ParseTreeListener {
                                      ^
  symbol: class ParseTreeListener
ExprParser.java:3: error: package org.antlr.v4.runtime.dfa does not exist
import org.antlr.v4.runtime.dfa.DFA;
                               ^
ExprParser.java:12: error: cannot find symbol
public class ExprParser extends Parser {
                                ^
  symbol: class Parser
ExprParser.java:90: error: cannot find symbol
    public static class ProgContext extends ParserRuleContext {
                                            ^
  symbol:   class ParserRuleContext
  location: class ExprParser
ExprParser.java:151: error: cannot find symbol
    public static class ExprContext extends ParserRuleContext {
                                            ^
  symbol:   class ParserRuleContext
  location: class ExprParser
ExprBaseListener.java:43: error: cannot find symbol
    @Override public void enterEveryRule(ParserRuleContext ctx) { }
                                         ^
  symbol:   class ParserRuleContext
  location: class ExprBaseListener
ExprBaseListener.java:49: error: cannot find symbol
    @Override public void exitEveryRule(ParserRuleContext ctx) { }
                                        ^
  symbol:   class ParserRuleContext
  location: class ExprBaseListener
ExprBaseListener.java:55: error: cannot find symbol
    @Override public void visitTerminal(TerminalNode node) { }
                                        ^
  symbol:   class TerminalNode
  location: class ExprBaseListener
ExprBaseListener.java:61: error: cannot find symbol
    @Override public void visitErrorNode(ErrorNode node) { }
                                         ^
  symbol:   class ErrorNode
  location: class ExprBaseListener
ExprParser.java:152: error: cannot find symbol
        public TerminalNode INT() { return getToken(ExprParser.INT, 0); }
               ^
  symbol:   class TerminalNode
  location: class ExprContext
ExprParser.java:159: error: cannot find symbol
        public ExprContext(ParserRuleContext parent, int invokingState) {
                           ^
  symbol:   class ParserRuleContext
  location: class ExprContext
ExprParser.java:164: error: cannot find symbol
        public void enterRule(ParseTreeListener listener) {
                              ^
  symbol:   class ParseTreeListener
  location: class ExprContext
ExprParser.java:168: error: cannot find symbol
        public void exitRule(ParseTreeListener listener) {
                             ^
  symbol:   class ParseTreeListener
  location: class ExprContext
ExprParser.java:97: error: cannot find symbol
        public List<TerminalNode> NEWLINE() { return getTokens(ExprParser.NEWLINE); }
                    ^
  symbol:   class TerminalNode
  location: class ProgContext
ExprParser.java:98: error: cannot find symbol
        public TerminalNode NEWLINE(int i) {
               ^
  symbol:   class TerminalNode
  location: class ProgContext
ExprParser.java:101: error: cannot find symbol
        public ProgContext(ParserRuleContext parent, int invokingState) {
                           ^
  symbol:   class ParserRuleContext
  location: class ProgContext
ExprParser.java:106: error: cannot find symbol
        public void enterRule(ParseTreeListener listener) {
                              ^
  symbol:   class ParseTreeListener
  location: class ProgContext
ExprParser.java:110: error: cannot find symbol
        public void exitRule(ParseTreeListener listener) {
                             ^
  symbol:   class ParseTreeListener
  location: class ProgContext
ExprParser.java:15: error: cannot find symbol
    protected static final DFA[] _decisionToDFA;
                           ^
  symbol:   class DFA
  location: class ExprParser
ExprParser.java:16: error: cannot find symbol
    protected static final PredictionContextCache _sharedContextCache =
                           ^
  symbol:   class PredictionContextCache
  location: class ExprParser
ExprParser.java:41: error: cannot find symbol
    public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES);
                        ^
  symbol:   class Vocabulary
  location: class ExprParser
ExprParser.java:70: error: cannot find symbol
    public Vocabulary getVocabulary() {
           ^
  symbol:   class Vocabulary
  location: class ExprParser
ExprParser.java:84: error: cannot find symbol
    public ATN getATN() { return _ATN; }
           ^
  symbol:   class ATN
  location: class ExprParser
ExprParser.java:86: error: cannot find symbol
    public ExprParser(TokenStream input) {
                      ^
  symbol:   class TokenStream
  location: class ExprParser
ExprParser.java:115: error: cannot find symbol
    public final ProgContext prog() throws RecognitionException {
                                           ^
  symbol:   class RecognitionException
  location: class ExprParser
ExprParser.java:173: error: cannot find symbol
    public final ExprContext expr() throws RecognitionException {
                                           ^
  symbol:   class RecognitionException
  location: class ExprParser
ExprParser.java:177: error: cannot find symbol
    private ExprContext expr(int _p) throws RecognitionException {
                                            ^
  symbol:   class RecognitionException
  location: class ExprParser
ExprParser.java:283: error: cannot find symbol
    public boolean sempred(RuleContext _localctx, int ruleIndex, int predIndex) {
                           ^
  symbol:   class RuleContext
  location: class ExprParser
ExprParser.java:311: error: cannot find symbol
    public static final ATN _ATN =
                        ^
  symbol:   class ATN
  location: class ExprParser
ExprParser.java:2: error: package org.antlr.v4.runtime.atn does not exist
import org.antlr.v4.runtime.atn.*;
^
ExprParser.java:4: error: package org.antlr.v4.runtime does not exist
import org.antlr.v4.runtime.*;
^
ExprParser.java:5: error: package org.antlr.v4.runtime.misc does not exist
import org.antlr.v4.runtime.misc.*;
^
ExprParser.java:6: error: package org.antlr.v4.runtime.tree does not exist
import org.antlr.v4.runtime.tree.*;
^
ExprLexer.java:2: error: package org.antlr.v4.runtime does not exist
import org.antlr.v4.runtime.Lexer;
                           ^
ExprLexer.java:3: error: package org.antlr.v4.runtime does not exist
import org.antlr.v4.runtime.CharStream;
                           ^
ExprLexer.java:4: error: package org.antlr.v4.runtime does not exist
import org.antlr.v4.runtime.Token;
                           ^
ExprLexer.java:5: error: package org.antlr.v4.runtime does not exist
import org.antlr.v4.runtime.TokenStream;
                           ^
ExprLexer.java:8: error: package org.antlr.v4.runtime.dfa does not exist
import org.antlr.v4.runtime.dfa.DFA;
                               ^
ExprLexer.java:12: error: cannot find symbol
public class ExprLexer extends Lexer {
                               ^
  symbol: class Lexer
ExprLexer.java:15: error: cannot find symbol
    protected static final DFA[] _decisionToDFA;
                           ^
  symbol:   class DFA
  location: class ExprLexer
ExprLexer.java:16: error: cannot find symbol
    protected static final PredictionContextCache _sharedContextCache =
                           ^
  symbol:   class PredictionContextCache
  location: class ExprLexer
ExprLexer.java:47: error: cannot find symbol
    public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES);
                        ^
  symbol:   class Vocabulary
  location: class ExprLexer
ExprLexer.java:76: error: cannot find symbol
    public Vocabulary getVocabulary() {
           ^
  symbol:   class Vocabulary
  location: class ExprLexer
ExprLexer.java:81: error: cannot find symbol
    public ExprLexer(CharStream input) {
                     ^
  symbol:   class CharStream
  location: class ExprLexer
ExprLexer.java:102: error: cannot find symbol
    public ATN getATN() { return _ATN; }
           ^
  symbol:   class ATN
  location: class ExprLexer
ExprLexer.java:117: error: cannot find symbol
    public static final ATN _ATN =
                        ^
  symbol:   class ATN
  location: class ExprLexer
ExprLexer.java:6: error: package org.antlr.v4.runtime does not exist
import org.antlr.v4.runtime.*;
^
ExprLexer.java:7: error: package org.antlr.v4.runtime.atn does not exist
import org.antlr.v4.runtime.atn.*;
^
ExprLexer.java:9: error: package org.antlr.v4.runtime.misc does not exist
import org.antlr.v4.runtime.misc.*;
^
ExprBaseListener.java:43: error: method does not override or implement a method from a supertype
    @Override public void enterEveryRule(ParserRuleContext ctx) { }
    ^
ExprBaseListener.java:49: error: method does not override or implement a method from a supertype
    @Override public void exitEveryRule(ParserRuleContext ctx) { }
    ^
ExprBaseListener.java:55: error: method does not override or implement a method from a supertype
    @Override public void visitTerminal(TerminalNode node) { }
    ^
ExprBaseListener.java:61: error: method does not override or implement a method from a supertype
    @Override public void visitErrorNode(ErrorNode node) { }
    ^
ExprParser.java:13: error: cannot find symbol
    static { RuntimeMetaData.checkVersion("4.7.2", RuntimeMetaData.VERSION); }
                                                   ^
  symbol:   variable RuntimeMetaData
  location: class ExprParser
ExprParser.java:13: error: cannot find symbol
    static { RuntimeMetaData.checkVersion("4.7.2", RuntimeMetaData.VERSION); }
             ^
  symbol:   variable RuntimeMetaData
  location: class ExprParser
ExprParser.java:17: error: cannot find symbol
        new PredictionContextCache();
            ^
  symbol:   class PredictionContextCache
  location: class ExprParser
ExprParser.java:41: error: cannot find symbol
    public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES);
                                                    ^
  symbol:   class VocabularyImpl
  location: class ExprParser
ExprParser.java:62: error: method does not override or implement a method from a supertype
    @Override
    ^
ExprParser.java:68: error: method does not override or implement a method from a supertype
    @Override
    ^
ExprParser.java:74: error: method does not override or implement a method from a supertype
    @Override
    ^
ExprParser.java:77: error: method does not override or implement a method from a supertype
    @Override
    ^
ExprParser.java:80: error: method does not override or implement a method from a supertype
    @Override
    ^
ExprParser.java:83: error: method does not override or implement a method from a supertype
    @Override
    ^
ExprParser.java:88: error: cannot find symbol
        _interp = new ParserATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache);
        ^
  symbol:   variable _interp
  location: class ExprParser
ExprParser.java:88: error: cannot find symbol
        _interp = new ParserATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache);
                      ^
  symbol:   class ParserATNSimulator
  location: class ExprParser
ExprParser.java:92: error: cannot find symbol
            return getRuleContexts(ExprContext.class);
                   ^
  symbol:   method getRuleContexts(Class<ExprContext>)
  location: class ProgContext
ExprParser.java:95: error: cannot find symbol
            return getRuleContext(ExprContext.class,i);
                   ^
  symbol:   method getRuleContext(Class<ExprContext>,int)
  location: class ProgContext
ExprParser.java:97: error: cannot find symbol
        public List<TerminalNode> NEWLINE() { return getTokens(ExprParser.NEWLINE); }
                                                     ^
  symbol:   method getTokens(int)
  location: class ProgContext
ExprParser.java:99: error: cannot find symbol
            return getToken(ExprParser.NEWLINE, i);
                   ^
  symbol:   method getToken(int,int)
  location: class ProgContext
ExprParser.java:104: error: method does not override or implement a method from a supertype
        @Override public int getRuleIndex() { return RULE_prog; }
        ^
ExprParser.java:105: error: method does not override or implement a method from a supertype
        @Override
        ^
ExprParser.java:109: error: method does not override or implement a method from a supertype
        @Override
        ^
ExprParser.java:116: error: cannot find symbol
        ProgContext _localctx = new ProgContext(_ctx, getState());
                                                ^
  symbol:   variable _ctx
  location: class ExprParser
ExprParser.java:116: error: cannot find symbol
        ProgContext _localctx = new ProgContext(_ctx, getState());
                                                      ^
  symbol:   method getState()
  location: class ExprParser
ExprParser.java:117: error: cannot find symbol
        enterRule(_localctx, 0, RULE_prog);
        ^
  symbol:   method enterRule(ProgContext,int,int)
  location: class ExprParser
ExprParser.java:120: error: cannot find symbol
            enterOuterAlt(_localctx, 1);
            ^
  symbol:   method enterOuterAlt(ProgContext,int)
  location: class ExprParser
ExprParser.java:122: error: cannot find symbol
            setState(9);
            ^
  symbol:   method setState(int)
  location: class ExprParser
ExprParser.java:123: error: cannot find symbol
            _errHandler.sync(this);
            ^
  symbol:   variable _errHandler
  location: class ExprParser
ExprParser.java:124: error: cannot find symbol
            _la = _input.LA(1);
                  ^
  symbol:   variable _input
  location: class ExprParser
ExprParser.java:128: error: cannot find symbol
                setState(4);
                ^
  symbol:   method setState(int)
  location: class ExprParser
ExprParser.java:130: error: cannot find symbol
                setState(5);
                ^
  symbol:   method setState(int)
  location: class ExprParser
ExprParser.java:131: error: cannot find symbol
                match(NEWLINE);
                ^
  symbol:   method match(int)
  location: class ExprParser
ExprParser.java:134: error: cannot find symbol
                setState(11);
                ^
  symbol:   method setState(int)
  location: class ExprParser
ExprParser.java:135: error: cannot find symbol
                _errHandler.sync(this);
                ^
  symbol:   variable _errHandler
  location: class ExprParser
ExprParser.java:136: error: cannot find symbol
                _la = _input.LA(1);
                      ^
  symbol:   variable _input
  location: class ExprParser
ExprParser.java:140: error: cannot find symbol
        catch (RecognitionException re) {
               ^
  symbol:   class RecognitionException
  location: class ExprParser
ExprParser.java:141: error: cannot find symbol
            _localctx.exception = re;
                     ^
  symbol:   variable exception
  location: variable _localctx of type ProgContext
ExprParser.java:142: error: cannot find symbol
            _errHandler.reportError(this, re);
            ^
  symbol:   variable _errHandler
  location: class ExprParser
ExprParser.java:143: error: cannot find symbol
            _errHandler.recover(this, re);
            ^
  symbol:   variable _errHandler
  location: class ExprParser
ExprParser.java:146: error: cannot find symbol
            exitRule();
            ^
  symbol:   method exitRule()
  location: class ExprParser
ExprParser.java:152: error: cannot find symbol
        public TerminalNode INT() { return getToken(ExprParser.INT, 0); }
                                           ^
  symbol:   method getToken(int,int)
  location: class ExprContext
ExprParser.java:154: error: cannot find symbol
            return getRuleContexts(ExprContext.class);
                   ^
  symbol:   method getRuleContexts(Class<ExprContext>)
  location: class ExprContext
ExprParser.java:157: error: cannot find symbol
            return getRuleContext(ExprContext.class,i);
                   ^
  symbol:   method getRuleContext(Class<ExprContext>,int)
  location: class ExprContext
ExprParser.java:162: error: method does not override or implement a method from a supertype
        @Override public int getRuleIndex() { return RULE_expr; }
        ^
ExprParser.java:163: error: method does not override or implement a method from a supertype
        @Override
        ^
ExprParser.java:167: error: method does not override or implement a method from a supertype
        @Override
        ^
100 errors

似乎这个错误持续地出现在我运行的任何文件中,任何帮助都将不胜感激!

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2020-10-16 22:07:48

您的问题与此问题类似:

Compiling sample ANTRL4 output

你必须检查你的类路径,这是一种在你的设备上执行install ANTLR Run-time的方法,但请注意,当你下载antlr时,你必须将http改为https。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64388126

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档