我可以使用javacc来解析单个文件:
BufferedReader br = new BufferedReader(new FileReader(
pathFile));
if (parser == null)
parser = new MaNouvGrammaire(br);
else
MaNouvGrammaire.ReInit(br);
我的问题是:"我如何解析几个输入文件?"
答案 0 :(得分:1)
如果使用STATIC = false选项,则执行此操作。 使用循环:
while( <there are more files> ) {
File pathFile = <next file> ;
BufferedReader br = new BufferedReader(new FileReader(pathFile));
MaNouvGrammaire parser = new MaNouvGrammaire(br);
paser.start() ; // or whatever your start nonterminal is
}
使用STATIC = true选项,我认为它就像你拥有的那样
while( <there are more files> ) {
File pathFile = <next file> ;
BufferedReader br = new BufferedReader(new FileReader(pathFile));
if (parser == null)
parser = new MaNouvGrammaire(br);
else
MaNouvGrammaire.ReInit(br);
parser.start() ; // or whatever your start nonterminal is
}
此外,请确保将parser
声明为初始化为null
的类的静态成员。
两者都应该有用。如上所述,非静态解析器的初始化稍微简单一些。非静态解析器也可以使用多线程用法和递归用法(例如递归读取包含文件)。