// Class dictionary (cd-print) for printing D__demeter_in = D__input . D__input : D__cd_graph *common* . D__cd_graph = D__adjacency_nlist [ "*terminal_sets*" D__vertex_comma_list "." ] . D__adjacency = D__vertex D__neighbors [ "(firstset" D__ll1setelement_comma_list ")" ] "." . D__neighbors : D__neighbors_wc | D__repetit_n *common* . D__neighbors_wc : D__construct_ns | D__alternat_ns *common* . D__construct_ns = "=" D__any_vertex_List . D__alternat_ns = ":" D__term_bar_list [ D__common ] D__any_vertex_List . D__common = "*common*" . D__repetit_n = "~" D__kernel_sandwich . D__kernel = [ D__term ] "{" D__term_sandwich "}" . D__any_vertex : D__opt_labeled_term | D__optional_term | D__syntax_vertex | D__inherit_term *common* . D__vertex = D__ident . D__syntax_vertex : D__regular_syntax | D__print_command *common* . D__regular_syntax = D__string . D__print_command : D__print_indent | D__print_unindent | D__print_skip | D__print_space *common* . D__print_indent = "+" . D__print_unindent = "-" . D__print_skip = "*l" . D__print_space = "*s" . D__opt_labeled_term : D__labeled | D__regular *common* . D__regular = D__term . D__labeled = "<" D__ident ">" D__term . D__inherit_term = "*inherit*" D__term_comma_list . D__term : D__normal | D__cppTerm *common* . D__normal = D__vertex D__termRef [ "(D__normalFirstset" D__ll1setelement_comma_list ")" ] . D__cppTerm = "$" D__vertex D__termRef [ "(D__normalFirstset" D__ll1setelement_comma_list ")" ] . D__termRef : D__localRef | D__moduleRef *common* . D__moduleRef : D__compRef | D__libRef *common* . D__localRef = . D__compRef = "@" D__ident . D__libRef = "@@" D__ident . D__optional_term = "[" D__opt_labeled_term_sandwich "]" . D__ident = DemIdent . D__string = DemString . D__ll1setelement = [ D__string ] [ D__tepsilon ] [ D__tclassterminal ] . D__tepsilon = "*epsilon*" . D__tclassterminal = "*classterminal*" D__ident . D__Obj_graph = D__Inst_or_adj_comma_list . D__Inst_or_adj : D__Named_adjacency | D__Part_adjacency *common* . D__Named_adjacency = D__ident [ D__Part_adjacency ] . D__Part_adjacency = ":" D__Vertex D__Constituents . D__Constituents : D__None | D__Construction_parts | D__Repetition_parts | D__Terminal_value *common* . D__None = . D__Construction_parts = "(" + D__Labeled_adjacency_List - ")" . D__Repetition_parts = "{" [ *l + D__Inst_or_adj_comma_list - ] "}" . D__Terminal_value = D__string . D__Labeled_adjacency = D__Label D__Inst_or_adj . D__Label = "<" D__ident ">" . D__Vertex = D__ident . D__Renames = "*rename*" D__Conversion_comma_list . D__Conversion = D__Name "=>" D__Name . D__Name = D__ident . D__adjacency_nlist ~ D__adjacency { D__adjacency } . D__vertex_comma_list ~ D__vertex { "," D__vertex } . D__ll1setelement_comma_list ~ D__ll1setelement { "," D__ll1setelement } . D__any_vertex_List ~ { D__any_vertex } . D__term_bar_list ~ D__term { "|" D__term } . D__kernel_sandwich = D__syntax_vertex_List D__kernel D__syntax_vertex_List [ "(sandwichFirstset" D__ll1setelement_comma_list ")" ] . D__term_sandwich = D__syntax_vertex_List D__term D__syntax_vertex_List [ "(sandwichFirstset" D__ll1setelement_comma_list ")" ] . D__term_comma_list ~ D__term { "," D__term } . D__opt_labeled_term_sandwich = D__syntax_vertex_List D__opt_labeled_term D__syntax_vertex_List [ "(sandwichFirstset" D__ll1setelement_comma_list ")" ] . D__Inst_or_adj_comma_list ~ D__Inst_or_adj { "," *l D__Inst_or_adj } . D__Labeled_adjacency_List ~ { *l D__Labeled_adjacency } . D__Conversion_comma_list ~ D__Conversion { "," D__Conversion } . D__syntax_vertex_List ~ { D__syntax_vertex } . *terminal_sets* DemText , DemReal , DemString , DemIdent , DemNumber .