forked from jasder/antlr
Pull error reporting outside of try/finally to ensure errors are not hidden
This commit is contained in:
parent
ea7037dd2d
commit
ea434982fb
|
@ -358,37 +358,39 @@ public abstract class BaseTest {
|
||||||
System.out.println("dir "+tmpdir);
|
System.out.println("dir "+tmpdir);
|
||||||
mkdir(tmpdir);
|
mkdir(tmpdir);
|
||||||
writeFile(tmpdir, fileName, grammarStr);
|
writeFile(tmpdir, fileName, grammarStr);
|
||||||
|
ErrorQueue equeue = new ErrorQueue();
|
||||||
|
final List<String> options = new ArrayList<String>();
|
||||||
|
Collections.addAll(options, extraOptions);
|
||||||
|
options.add("-o");
|
||||||
|
options.add(tmpdir);
|
||||||
|
options.add("-lib");
|
||||||
|
options.add(tmpdir);
|
||||||
|
options.add(new File(tmpdir,grammarFileName).toString());
|
||||||
try {
|
try {
|
||||||
final List<String> options = new ArrayList<String>();
|
|
||||||
Collections.addAll(options, extraOptions);
|
|
||||||
options.add("-o");
|
|
||||||
options.add(tmpdir);
|
|
||||||
options.add("-lib");
|
|
||||||
options.add(tmpdir);
|
|
||||||
options.add(new File(tmpdir,grammarFileName).toString());
|
|
||||||
final String[] optionsA = new String[options.size()];
|
final String[] optionsA = new String[options.size()];
|
||||||
options.toArray(optionsA);
|
options.toArray(optionsA);
|
||||||
ErrorQueue equeue = new ErrorQueue();
|
|
||||||
Tool antlr = newTool(optionsA);
|
Tool antlr = newTool(optionsA);
|
||||||
antlr.addListener(equeue);
|
antlr.addListener(equeue);
|
||||||
antlr.processGrammarsOnCommandLine();
|
antlr.processGrammarsOnCommandLine();
|
||||||
if ( equeue.errors.size()>0 ) {
|
|
||||||
allIsWell = false;
|
|
||||||
System.err.println("antlr reports errors from "+options);
|
|
||||||
for (int i = 0; i < equeue.errors.size(); i++) {
|
|
||||||
ANTLRMessage msg = equeue.errors.get(i);
|
|
||||||
System.err.println(msg);
|
|
||||||
}
|
|
||||||
System.out.println("!!!\ngrammar:");
|
|
||||||
System.out.println(grammarStr);
|
|
||||||
System.out.println("###");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
catch (Exception e) {
|
catch (Exception e) {
|
||||||
allIsWell = false;
|
allIsWell = false;
|
||||||
System.err.println("problems building grammar: "+e);
|
System.err.println("problems building grammar: "+e);
|
||||||
e.printStackTrace(System.err);
|
e.printStackTrace(System.err);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ( equeue.errors.size()>0 ) {
|
||||||
|
allIsWell = false;
|
||||||
|
System.err.println("antlr reports errors from "+options);
|
||||||
|
for (int i = 0; i < equeue.errors.size(); i++) {
|
||||||
|
ANTLRMessage msg = equeue.errors.get(i);
|
||||||
|
System.err.println(msg);
|
||||||
|
}
|
||||||
|
System.out.println("!!!\ngrammar:");
|
||||||
|
System.out.println(grammarStr);
|
||||||
|
System.out.println("###");
|
||||||
|
}
|
||||||
|
|
||||||
return allIsWell;
|
return allIsWell;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue