LispProg = Exp . Exp(F,G) : Simple(F,G) | Compound(F,G) . Simple = DemNumber . Compound ="(" Op Exp_List ")". Exp_List ~ { Exp }. Op(G,J,H) : MulSym(G,J,H) | AddSym(G,J,H) | SubSym(G,J,H). MulSym ~ {Main}. AddSym = "+". SubSym = "-" . Main = . // Here is the output for the second phase J - S E M - C H E C K 2 Checking that every alternative of a parameterized alternation class has all its formal parameters in the same order ... Alternatives[Simple, F, G] Exp() : Simple() passed ... Alternatives[Compound, F, G] Exp() : Compound() passed ... Alternatives[MulSym, G, J, H] Op() : MulSym() passed ... Alternatives[AddSym, G, J, H] Op() : AddSym() passed ... Alternatives[SubSym, G, J, H] Op() : SubSym() passed ... Checking that all alternatives are defined as either construction classes or alternation classes that will eventually be defined by construction classes ... but can't defined as repetition classes SubSym passed... AddSym passed... MulSym passed... Compound passed... Simple passed...