jFlex 方法(yypushStream、yypopStream..)在用户代码中触发 "cannot find symbol" 错误
jFlex methods (yypushStream,yypopStream..) trigger "cannot find symbol" error in user code
我在 jFlex 中有一些用户代码从 yytext() 生成 BufferedReader,然后将其推入流堆栈。
但是,yypushStream()、yypopStream()、yymoreStreams() 方法似乎无法被 javac 识别,并且每当从用户代码中调用这些方法时都会触发 "cannot find symbol" 错误。
例如:
public void toStream(String a){
InputStream fstream= new ByteArrayInputStream(a.getBytes());
BufferedReader freader = new BufferedReader(new InputStreamReader(fstream));
yypushStream(freader);
}
Returns 输出如下:
symbol: method yypushStream(BufferedReader)
Yylex.java:389: error: cannot find symbol
yypushStream(freader);
^
我也试过Yylex.yyPopStream();
和%public
都没有效果。
是不是那些方法不能在用户代码中使用?
谢谢
如果你仔细阅读Jflex Manual,上面写着方法yyPushStream()
、yyPopStream()
和yyMoreStreams()
仅在名为[=13=的骨架文件中可用],您可以在 src 文件夹中找到它。
所以你不应该在用户代码中使用或调用它。
我在 jFlex 中有一些用户代码从 yytext() 生成 BufferedReader,然后将其推入流堆栈。
但是,yypushStream()、yypopStream()、yymoreStreams() 方法似乎无法被 javac 识别,并且每当从用户代码中调用这些方法时都会触发 "cannot find symbol" 错误。
例如:
public void toStream(String a){
InputStream fstream= new ByteArrayInputStream(a.getBytes());
BufferedReader freader = new BufferedReader(new InputStreamReader(fstream));
yypushStream(freader);
}
Returns 输出如下:
symbol: method yypushStream(BufferedReader)
Yylex.java:389: error: cannot find symbol
yypushStream(freader);
^
我也试过Yylex.yyPopStream();
和%public
都没有效果。
是不是那些方法不能在用户代码中使用?
谢谢
如果你仔细阅读Jflex Manual,上面写着方法yyPushStream()
、yyPopStream()
和yyMoreStreams()
仅在名为[=13=的骨架文件中可用],您可以在 src 文件夹中找到它。
所以你不应该在用户代码中使用或调用它。