我在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
都没有效果。
是不是那些方法不能在用户代码中使用?
谢谢
如果你仔细阅读 Jflex 手册,它写道,方法 yyPushStream()
、 yyPopStream()
和 yyMoreStreams()
仅在名为 skeleton.nested
的框架文件中可用,该文件位于 src 文件夹中。因此,您不应该在用户代码中使用它或调用它。