我最近开始使用JFlex,并发现需要从一个特定order.When中的多个输入文件中读取,它完成了我希望Jflex继续当前状态的第一个文件,以及从新文件中继续使用的扫描器。
到目前为止,当我只有一个输入文件时,一切正常:
br = new BufferedReader(new FileReader("input1"));
Flexer scanner = new Flexer(br);
scanner.yylex();
br.close();
//lame attempt for second input(not working)
br = new BufferedReader(new FileReader("input2"));
scanner.yylex();
br.close();发布于 2015-01-16 00:45:48
JFlex似乎不支持yywrap(),这就是在lex和flex中是如何做到这一点的,但是这样做的简单方法如下:
InputStream in = new SequenceInputStream(...);
BufferedReader br = new BufferedReader(new InputStreamReader(in, "UTF-8"));
Flexer scanner = new Flexer(br);其中,...提供了几种方法来指定输入文件,无论是作为Enumeration<? extends InputStream>还是作为一对InputStreams:,注意,您可以递归地使用后者。
new SequenceInputStream(s1, new SequenceInputStream(s2,s3));https://stackoverflow.com/questions/27973907
复制相似问题