1

我在 jFlex 中有一些从 yytext() 生成 BufferedReader 的用户代码,然后将其推入流堆栈。

但是,似乎 javac 无法识别 yypushStream()、yypopStream()、yymoreStreams() 方法,并且每当从用户代码中调用这些方法时都会触发“找不到符号”错误。

例如:

public void toStream(String a){

InputStream fstream= new ByteArrayInputStream(a.getBytes());
BufferedReader freader = new BufferedReader(new  InputStreamReader(fstream));
yypushStream(freader);

    }

返回以下输出:

symbol: method yypushStream(BufferedReader)
Yylex.java:389: error: cannot find symbol
yypushStream(freader);
^

我也试过了Yylex.yyPopStream();%public没有效果。

是那些方法不能在用户代码中使用吗?

谢谢

4

1 回答 1

1

如果您仔细阅读Jflex 手册,就会发现方法yyPushStream()yyPopStream()并且yyMoreStreams()仅在名为 的骨架文件中可用skeleton.nested,您可以在 src 文件夹中找到该文件。所以你不应该使用它或在用户代码中调用它。

于 2015-02-03T13:09:50.837 回答