jFlex方法(yypushStream,yypopStream ..)在用户代码中触发“无法找到符号”错误

时间:2015-01-30 19:17:57

标签: jflex

我在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无效。

这些方法是否不能在用户代码中使用?

由于

1 个答案:

答案 0 :(得分:1)

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