使用 JFLEX 从 eof 访问命令行参数

Accessing command line arguments from eof with JFLEX

我正在编写一个小型词法分析器,它需要将一些输出写入文件。一旦我完成扫描,我就会创建一个输出文件 PrintWriter writer = new PrintWriter(args[0].substring(0,4)+"output.txt");

所以本质上我是在尝试使用我的输入文件的前缀作为我的输出文件的前缀。此语句位于 %eof{ %eof}

error: cannot find symbol 
PrintWriter writer = new PrintWriter(args[0].substring(0,4)+"output.txt");
                                     ^ 
symbol: variable args 
location: class classname

但是我看不到 eof 部分的 args。我如何从 jflex 中的 eof 访问命令行参数?

问题出在 %standalone 选项上。它正在生成一个 main 方法,自动将 argv 列表置于范围之外。

删除这个选项并定义我自己的 main 方法就成功了,尽管我还必须定义我自己的文件 reader 并以这种方式处理错误