public Program parse(String preprocessedSource, String className) {
SmalltalkLexer smalltalkLexer = lexorOn(preprocessedSource);
SmalltalkParser smalltalkParser = parserUsing(smalltalkLexer);
try {
Program program = smalltalkParser.program();
if (!ignoreParseErrors && smalltalkParser.getNumberOfSyntaxErrors() > 0)
throw new RuntimeException("Smalltalk Syntax error(s) detected in '" + className + "'.");
return program;
} catch (RecognitionException e) {
throw new RuntimeException(e);