我在jFlex中有一些用户代码从yytext()生成BufferedReader,然后将其推送到流堆栈中。
然而,似乎jypac无法识别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
无效。
这些方法是否不能在用户代码中使用?
由于
答案 0 :(得分:1)
如果您仔细阅读Jflex Manual,则会写出方法yyPushStream()
,yyPopStream()
和yyMoreStreams()
仅在名为skeleton.nested
的骨架文件中可用,你在src文件夹中找到的。
所以你不应该使用它或在用户代码中调用它。