因此,在编译代码之后,我希望它从文件中读取输入,而不是从命令行读取输入。
因此,与其这样做:
javacc Ex.jj
javac *.java
java Ex "x+2"我想这么做:
javacc Ex.jj
javac *.java
java test.txttest.txt在其中包含了以下内容:
"x+4"发布于 2022-05-03 13:59:06
可以在语法文件中使用main方法声明类:
options {
STATIC = false;
IGNORE_CASE = false;
}
PARSER_BEGIN(Ex)
import java.io.InputStream;
import java.io.FileInputStream;
import java.io.IOException;
public class Ex {
public static void main(String[] args) {
try (InputStream in = new FileInputStream(args[0])) {
Ex parser = new Ex(in, "UTF-8");
double r = parser.expr();
System.out.println("Result: " + r);
} catch (ParseException e) {
e.printStackTrace();
}
}
}
PARSER_END(Ex)
...
SKIP : { " " | "\r" | "\n" | "\t" }
TOKEN: {
...
}
double expr(): {
}
{
...
}https://stackoverflow.com/questions/72073625
复制相似问题