Main = String. LogicAJ = PCD_List EOF. PCD : Sim | Com . Sim : Within | Target | This | Call | Execution | Withincode extends PCD. Within = "within" "(" TypePat ")" extends Sim. Target = "target" "(" TypePat ")" extends Sim. This = "this" "(" TypePat ")" extends Sim. Call = "call" "(" MethodPat ")" extends Sim. Execution = "execution" "(" MethodPat ")" extends Sim. Withincode = "withincode" "(" MethodPat ")" extends Sim. Com = "(" O PCD_List ")" extends PCD. O : Inter | Uni | Compl . Inter = "&&" extends O. Uni = "||" extends O. Compl = "!" extends O. LMV = "?" Ident extends ModifierPart. LMV1 = LMV extends MethodName. LMV2 = LMV extends NPat. LMV3 = LMV. LLMV = "??" Ident extends Arguments. MethodPat = ModifierPart TypePat TypePat "." MethodName "(" Arguments ")". ModifierPart : ModifierPat | LMV . ModifierPat = "public" extends ModifierPart. MethodName : NamePat | LMV1 . Arguments : TypePat | LLMV | ListWildCard . ListWildCard = ".." extends Arguments. TypePat : Simple | Compound extends Arguments. Simple = NPat [ SubTypes]extends TypePat. SubTypes = "+". NPat : LMV2 | NamePat2 . NamePat : WildCard | Name extends MethodName. NamePat2 = NamePat extends NPat. WildCard = "*" extends NamePat. Name = Ident extends NamePat. Compound = "(" Op TypePat_List ")" extends TypePat. Op : Intersection | Union | Complement . Intersection = "&" extends Op. Union = "|" extends Op. Complement = "!" extends Op. notparsed visitor PrintVisitor = int boolean extends UniversalVisitor. notparsed visitor CopyVisitor = derived Object extends UniversalVisitor. notparsed visitor SubgraphVisitor = boolean init {{ true }} extends UniversalVisitor. notparsed visitor EqualVisitor = boolean init {{ true }} extends UniversalVisitor. notparsed visitor DisplayVisitor = int extends UniversalVisitor. notparsed visitor TraceVisitor = int extends UniversalVisitor. notparsed visitor UniversalVisitor : . PCD_List = [ Nonempty_PCD_List]. TypePat_List = [ Nonempty_TypePat_List]. Nonempty_PCD_List = PCD [ Nonempty_PCD_List]. Nonempty_TypePat_List = TypePat [ Nonempty_TypePat_List].