Main = String. ClassGraph = Adjacency_List. Adjacency = ClassName Body ".". Body : Construction | Alternation common [Common] PartOrToken_List. Construction = "=". Alternation = ":" ClassName ClassName_BL. PartOrToken : Part | SyntaxToken. SyntaxToken = String. Part : Required | Optional. Required = [ LabelName ] ClassName. Optional = "[" Required "]". Common = "common". ClassName = Ident. LabelName = "<" Ident ">". Adjacency_List : NAL | EAL. EAL = . NAL = Adjacency Adjacency_List. PartOrToken_List : NPTL | EPTL. EPTL = . NPTL = PartOrToken PartOrToken_List. ClassName_BL : NCBL | ECBL. ECBL = . NCBL = "|" ClassName ClassName_BL.