(@ import java.io.*; import java.util.*; import demeter.*; import java.lang.*; @) Root = "[" Ident RootClass "]". RootClass : Non_Empty_RootClass | Empty_RootClass. Non_Empty_RootClass = "{" Ident SubClass1 "}". Empty_RootClass = . SubClass1 : Non_Empty_SubClass1 | Empty_SubClass1. Non_Empty_SubClass1 = "(" Ident SubClass2 ")". Empty_SubClass1 = . SubClass2 : Non_Empty_SubClass2 | Empty_SubClass2. Non_Empty_SubClass2 = "*" Ident "*". Empty_SubClass2 = . Expected = List(Expected_Wrapper). List(S) ~ "(" S {"<" S} ")". Expected_Wrapper = Ident. Main = . AppendVisitor = Names. ExpectedVisitor = Names. Names = *extends* Vector. //Ident