为什么我不能使用javacc工具解析一个简单的表达式

为什么我不能使用javacc工具解析一个简单的表达式,java,compiler-construction,javacc,Java,Compiler Construction,Javacc,我是使用工具的初学者,我制作了一个类Expression.jj,其中我使用了以下语法 expr->expr+term|term term->term*fact|fact fact->(expr)|num 这是源代码 PARSER_BEGIN(Expression) public class Expression { public static void main(String s[]) { try { new Expressi

我是使用工具的初学者,我制作了一个类
Expression.jj
,其中我使用了以下语法

expr->expr+term|term
term->term*fact|fact
fact->(expr)|num
这是源代码

PARSER_BEGIN(Expression)

public class Expression
{
   public static void main(String s[])
   {
     try
     {
        new Expression(new java.io.StringReader(args[0])).StartSymbol();
        System.out.println("Syntex checking successfull");
     }
     catch(Throwable e) 
     {
        System.out.println("Syntex checking failed");   
        e.getMessage();
     }
  }
}

PARSER_END(Expression)

SKIP:{"" | "\t" | "\n" | "\r" }

TOKEN:{"(" | ")" | "+" | "*" |<NUM: (["0"-"9"])+>}

void StartSymbol():
{
    (Expr())*
    <EOF>
}

void Expr():
{
    Term() ("+" Term())*
}

void Term():
{
    Factor() ("*" Factor())*
}

void Factor():
{
  <NUM> | "(" Expr() ")"
}
@编辑

当我使用此命令时,它正在运行:

C:\javaccprog>java -cp C:\javacc5.0\javacc-5.0\bin\lib\javacc.jar javacc Expression.jj 
而不是:

C:\java -cp C:\javacc5.0\javacc-5.0\bin\lib\javacc.jar javacc C:\compilerprog\Expression.jj

错误:无法打开文件Expression.java进行写入。
表示无法写入“Expression.java”,请更改您的工作目录。

我没有java文件,这怎么可能?即使更改后仍会出现相同的错误。另外,我有一个windows驱动器,其他驱动器是mac驱动器。因此它在那里没有权限。也许您不应该在
C:\
中运行
java
,因为在新的windows系统中,您不能使用普通用户权限将文件写入
C:\
。请重新格式化此难以辨认的文件。
C:\java -cp C:\javacc5.0\javacc-5.0\bin\lib\javacc.jar javacc C:\compilerprog\Expression.jj