Demeter_in = Input. Input : Cd_graph *common*. Cd_graph = < adjacencies > Nlist(Adjacency) ["*terminal_sets*" Comma_list(Vertex) "."] . Adjacency = < source > Vertex < ns > Neighbors ["*inherits_from*" Comma_list(Term)] "." . Neighbors_wc : Construct_ns | Alternat_ns *common* < construct_ns > List(Any_vertex). Neighbors : Neighbors_wc | Repetit_n | Intermediate_ns *common*. Intermediate_ns : Repetit | Non_repetit *common* . Non_repetit : Instantiable | Abstract *common* List(Int_part). Instantiable = "instantiable=". Repetit = "repetition=" Term [ Non_empty]. Non_empty = "*non_empty*". Abstract = "abstract=". Int_part : Required_int_part | Optional_int_part *common* [StaticSpec] [AccessorSpec] Labeled. Required_int_part = "*required*". Optional_int_part = "*optional*". Construct_ns = "=". Alternat_ns = ":" < alternat_ns > Bar_list(Term) [ Common]. Common = "*common*". Repetit_n = "~" Sandwich(Kernel). Kernel = [ Term ] "{" Sandwich(Term) "}". Any_vertex : Opt_labeled_term | Optional_term | Syntax_vertex | Inherit_term *common*. 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 ">" . Optional_term = "[" Sandwich(Opt_labeled_term) "]". Inherit_term = "*inherit*" Comma_list(Term). //; //; 11/5/92 Update term to contain component and external terms //; Term : Normal | CppTerm *common* Vertex TermRef ["(" Comma_list(Term) ")" ]. CppTerm = "$" . Normal = . TermRef : LocalRef | ModuleRef. ModuleRef : CompRef | LibRef *common* DemIdent. LocalRef = . CompRef = "@". LibRef = "@@". 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).