jFlex 方法 (yypushStream,yypopStream..) 在用户代码中触发"cannot find symbol"错误



我在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 文件夹中。因此,您不应该在用户代码中使用它或调用它。

相关内容

  • 没有找到相关文章

最新更新