Demeter_in = Input. Input : Cd_graph *common*. Ll1SetElement = [ DemString] [ TEpsilon] [ TClassTerminal] [ TEndOfFile]. Cd_graph = < adjacencies > Nlist(Adjacency) [ "*dfs_n*" DemNumber ] [ "*current_component*" DemNumber ] . Vertices_With_Same_Fset = "*pool*" List(Vertex). Adjacency = < source > Vertex ["(" < parameters> Comma_list(Vertex) ")"] < ns > Neighbors ["*treated*" DemNumber] ["*imm_ancester*" Vertex ] ["*inherited_Any_vertex*" List(Any_vertex) ] ["*expanded_common_parts*" List(Common_parts) ] ["*associated*" List(Adjacency) "." ] [ "*dfs*" DemNumber ] [ "*high*" DemNumber ] [ "*scc*" DemNumber ] [ "( firstset" Comma_list(Ll1SetElement) ")"] [ "( followset" Comma_list(Ll1SetElement) ")"] "." . Common_parts = "*common parts*" Adjacency "*is*" List(Any_vertex). Neighbors : Neighbors_wc | Repetit_n *common*. Neighbors_wc : Construct_ns | Alternat_ns *common* < construct_ns > List(Any_vertex). Construct_ns = "=". Alternat_ns = ":" < alternat_ns > Bar_list(Term) [ Common] ["*emptycommon*" DemNumber]. Common = "*common*". Repetit_n = "~" Sandwich(Kernel). Kernel = [ Term ] "{" Sandwich(Term) "}". Any_vertex : Opt_labeled_term | Optional_term | Syntax_vertex | Inherit_term *common* [ "*origin*" Adjacency "." ]. Vertex = < vertex_name > DemIdent . Syntax_vertex : Regular_syntax | Print_command *common*. Regular_syntax = < string > DemString . Print_command : Print_indent | Print_unindent | Print_skip | Print_space *common*. Print_indent = "+" . Print_unindent = "-" . Print_skip = "*l" . Print_space = "*s" . Opt_labeled_term : Labeled | Regular *common* [StaticSpec] [AccessorSpec] Term. StaticSpec = "*static*" . AccessorSpec : ReadOnlyAcc | PrivateAcc *common* . ReadOnlyAcc = "*read-only*" . PrivateAcc = "*private*" . Regular = . Labeled = "<" < label_name > DemIdent ">" . Inherit_term = "*inherit*" Comma_list(Term). Term : Normal | CppTerm *common* Vertex TermRef ["*adjacency*" Adjacency "." ] ["(" Comma_list(Term) ")" ] [ "(firstset" Comma_list(Ll1SetElement) ")"] [ "(followset" Comma_list(Ll1SetElement) ")"] . CppTerm = "$" . Normal = . TermRef : LocalRef | ModuleRef. ModuleRef : CompRef | LibRef *common* DemIdent. LocalRef = . CompRef = "@". LibRef = "@@". Optional_term = "[" Sandwich(Opt_labeled_term) "]". TEpsilon = "*epsilon*" . TEndOfFile = "*eof*" . TClassTerminal = "*classterminal*" DemIdent . List(S) ~ {S}. Nlist(S) ~ S {S}. Bar_list(S) ~ S {"|" S}. Comma_list(S) ~ S {"," S}. Sandwich(S) = List(Syntax_vertex) S List(Syntax_vertex) [ "( firstset" Comma_list(Ll1SetElement) ")"] [ "( followset" Comma_list(Ll1SetElement) ")"] .