ANTLR - 调试时未找到测试类错误

时间:2011-10-06 07:29:49

标签: antlr

我收到错误的Test class not found错误,即使我是通过命令

创建的
  

java org.antlr.Tool something.g

通过ANTLRworks进行调试时。我一直在网上搜索这个,但没有成功。你知道吗,如何解决我的问题?

由于

编辑 - 语法:

grammar Expr;

prog    :   stat+ ;

stat    :   expr NEWLINE
    |   ID '=' expr NEWLINE
    |   NEWLINE
    ;

    expr    : multExpr (('+' |'-' ) multExpr)*;

    multExpr: atom ('*' atom)*
        ;

    atom    : INT
        | ID
        | '(' expr ')'
        ;

    ID : ('a'..'z' |'A'..'Z' )+ ;
    INT : '0'..'9' + ;
    NEWLINE:'\r' ? '\n' ;
    WS : (' ' |'\t' |'\n' |'\r' )+ {skip();} ;

错误讯息:

使用输入文本3 * 4进行调试时输出 - “错误:无法找到或加载主类测试”而在子文件夹/输出中生成测试。 ..

1 个答案:

答案 0 :(得分:1)

由于您在评论中评论说从控制台运行测试类也失败了,这是一个有效的方法:

import org.antlr.runtime.*;

public class Main {
  public static void main(String[] args) throws Exception {
    ExprLexer lex = new ExprLexer(new ANTLRStringStream("1 + 2 - 3 * 4 - E\n"));
    CommonTokenStream tokens = new CommonTokenStream(lex);
    ExprParser parser = new ExprParser(tokens);
    parser.prog();
  }
}

现在将您的ANTLR JAR(我的示例中为v3.3)放在与Main.javaExpr.g相同的目录中,并从控制台运行主类,如下所示:

java -cp antlr-3.3.jar org.antlr.Tool Expr.g
javac -cp antlr-3.3.jar *.java
java -cp .;antlr-3.3.jar Main

事实上,没有任何内容打印到您的控制台意味着解析没有任何问题。