parser.compilation_unit();
final PackageDescr pack = parser.getPackageDescr();
assertEquals( 1,
pack.getRules().size() );
final RuleDescr rule = (RuleDescr) pack.getRules().get( 0 );
assertEquals( 1,
rule.getLhs().getDescrs().size() );
assertEquals( 1,
rule.getLhs().getDescrs().size() );
final OrDescr or = (OrDescr) rule.getLhs().getDescrs().get( 0 );
assertEquals( 2,
or.getDescrs().size() );
//first fact
final PatternDescr firstFact = (PatternDescr) or.getDescrs().get( 0 );
assertEquals( "Person",
firstFact.getObjectType() );
assertEquals( "foo",
firstFact.getIdentifier() );
//second "option"
final PatternDescr secondFact = (PatternDescr) or.getDescrs().get( 0 );
assertEquals( "Person",
secondFact.getObjectType() );
assertEquals( "foo",
secondFact.getIdentifier() );
assertEqualsIgnoreWhitespace( "System.out.println( \"Mark and Michael\" + bar );",
(String) rule.getConsequence() );
assertFalse( parser.hasErrors() );
}