通过javacc解析一组输入文件

时间:2015-04-17 15:51:05

标签: javacc

我可以使用javacc来解析单个文件:

BufferedReader br = new BufferedReader(new FileReader(
                        pathFile));
if (parser == null)
    parser = new MaNouvGrammaire(br);
else
    MaNouvGrammaire.ReInit(br);

我的问题是:"我如何解析几个输入文件?"

1 个答案:

答案 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的类的静态成员。

两者都应该有用。如上所述,非静态解析器的初始化稍微简单一些。非静态解析器也可以使用多线程用法和递归用法(例如递归读取包含文件)。