----- GENERATED PART STARTS HERE. DO NOT EDIT ON OR BEYOND THIS LINE ----- -------------------------------------------------------------------------- -- presentationSheet -- -------------------------------------------------------------------------- imports { import ScannerSheetHS as Lex } WRAPPER Root { -- type PresentationSheet doc enr node clip token = -- enr -> doc -> FocusDoc -> WhitespaceMap -> IDPCounter -> -- (WhitespaceMap, IDPCounter, Presentation doc node clip token) presentationSheet :: PresentationSheet Document EnrichedDoc Node ClipDoc UserToken presentationSheet enrichedDoc document focusD whitespaceMap pIdC = let (Syn_EnrichedDoc pIdC' pres self whitespaceMap') = wrap_EnrichedDoc (sem_EnrichedDoc enrichedDoc) (Inh_EnrichedDoc document focusD pIdC [] whitespaceMap) in (whitespaceMap', pIdC', pres) {- A type error here means that extra attributes were declared on EnrichedDoc The attribute signature for EnrichedDoc should be: EnrichedDoc [ focusD : FocusDoc path : Path | pIdC : Int layoutMap : WhitespaceMap | pres : Presentation_ EnrichedDoc ] -} } -------------------------------------------------------------------------- -- AG data type -- -------------------------------------------------------------------------- DATA EnrichedDoc | RootEnr root:Root | HoleEnrichedDoc | ParseErrEnrichedDoc error:{(ParseError Document EnrichedDoc Node ClipDoc UserToken)} DATA Root | Root graph:Graph caption:String label:String probtables:List_Probtable title:String sections:List_Section | HoleRoot | ParseErrRoot error:{(ParseError Document EnrichedDoc Node ClipDoc UserToken)} DATA Section | Section title:String paragraphs:List_Paragraph subsections:List_Subsection | HoleSection | ParseErrSection error:{(ParseError Document EnrichedDoc Node ClipDoc UserToken)} DATA Subsection | Subsection title:String paragraphs:List_Paragraph subsubsections:List_Subsubsection | HoleSubsection | ParseErrSubsection error:{(ParseError Document EnrichedDoc Node ClipDoc UserToken)} DATA Subsubsection | Subsubsection title:String paragraphs:List_Paragraph | HoleSubsubsection | ParseErrSubsubsection error:{(ParseError Document EnrichedDoc Node ClipDoc UserToken)} DATA Paragraph | Paragraph words:List_Word | SubgraphPara subgraph:Subgraph caption:String label:String | ProbtablePara probtable:Probtable | HoleParagraph | ParseErrParagraph error:{(ParseError Document EnrichedDoc Node ClipDoc UserToken)} DATA Word | Word idp:IDP word:String | NodeRef nodeName:NodeName | Label label:String | LabelRef label:String | HoleWord | ParseErrWord error:{(ParseError Document EnrichedDoc Node ClipDoc UserToken)} DATA NodeName | NodeName name:String | HoleNodeName | ParseErrNodeName error:{(ParseError Document EnrichedDoc Node ClipDoc UserToken)} DATA Graph | Graph dirty:Dirty vertices:List_Vertex edges:List_Edge | HoleGraph | ParseErrGraph error:{(ParseError Document EnrichedDoc Node ClipDoc UserToken)} DATA Vertex | Vertex name:String shape:Shape id:Int x:Int y:Int | HoleVertex | ParseErrVertex error:{(ParseError Document EnrichedDoc Node ClipDoc UserToken)} DATA Shape | Circle | Square | HoleShape | ParseErrShape error:{(ParseError Document EnrichedDoc Node ClipDoc UserToken)} DATA Edge | Edge from:Int to:Int | HoleEdge | ParseErrEdge error:{(ParseError Document EnrichedDoc Node ClipDoc UserToken)} DATA Subgraph | Subgraph dirty:Dirty vertices:List_Vertex edges:List_Edge | HoleSubgraph | ParseErrSubgraph error:{(ParseError Document EnrichedDoc Node ClipDoc UserToken)} DATA Dirty | Dirty | Clean | HoleDirty | ParseErrDirty error:{(ParseError Document EnrichedDoc Node ClipDoc UserToken)} DATA Probtable | Probtable id:Int values:List_Value table:Table | HoleProbtable | ParseErrProbtable error:{(ParseError Document EnrichedDoc Node ClipDoc UserToken)} DATA Value | Value val:String | HoleValue | ParseErrValue error:{(ParseError Document EnrichedDoc Node ClipDoc UserToken)} DATA Table | Table parents:{[Int]} axes:List_Axis probs:List_Probability | HoleTable | ParseErrTable error:{(ParseError Document EnrichedDoc Node ClipDoc UserToken)} DATA Axis | Axis values:List_Value | HoleAxis | ParseErrAxis error:{(ParseError Document EnrichedDoc Node ClipDoc UserToken)} DATA Probability | Probability prob:String | HoleProbability | ParseErrProbability error:{(ParseError Document EnrichedDoc Node ClipDoc UserToken)} DATA List_Probtable | List_Probtable elts:ConsList_Probtable | HoleList_Probtable | ParseErrList_Probtable error:{(ParseError Document EnrichedDoc Node ClipDoc UserToken)} DATA List_Section | List_Section elts:ConsList_Section | HoleList_Section | ParseErrList_Section error:{(ParseError Document EnrichedDoc Node ClipDoc UserToken)} DATA List_Paragraph | List_Paragraph elts:ConsList_Paragraph | HoleList_Paragraph | ParseErrList_Paragraph error:{(ParseError Document EnrichedDoc Node ClipDoc UserToken)} DATA List_Subsection | List_Subsection elts:ConsList_Subsection | HoleList_Subsection | ParseErrList_Subsection error:{(ParseError Document EnrichedDoc Node ClipDoc UserToken)} DATA List_Subsubsection | List_Subsubsection elts:ConsList_Subsubsection | HoleList_Subsubsection | ParseErrList_Subsubsection error:{(ParseError Document EnrichedDoc Node ClipDoc UserToken)} DATA List_Word | List_Word elts:ConsList_Word | HoleList_Word | ParseErrList_Word error:{(ParseError Document EnrichedDoc Node ClipDoc UserToken)} DATA List_Vertex | List_Vertex elts:ConsList_Vertex | HoleList_Vertex | ParseErrList_Vertex error:{(ParseError Document EnrichedDoc Node ClipDoc UserToken)} DATA List_Edge | List_Edge elts:ConsList_Edge | HoleList_Edge | ParseErrList_Edge error:{(ParseError Document EnrichedDoc Node ClipDoc UserToken)} DATA List_Value | List_Value elts:ConsList_Value | HoleList_Value | ParseErrList_Value error:{(ParseError Document EnrichedDoc Node ClipDoc UserToken)} DATA List_Axis | List_Axis elts:ConsList_Axis | HoleList_Axis | ParseErrList_Axis error:{(ParseError Document EnrichedDoc Node ClipDoc UserToken)} DATA List_Probability | List_Probability elts:ConsList_Probability | HoleList_Probability | ParseErrList_Probability error:{(ParseError Document EnrichedDoc Node ClipDoc UserToken)} DATA ConsList_Probtable | Cons_Probtable head:Probtable tail:ConsList_Probtable | Nil_Probtable DATA ConsList_Section | Cons_Section head:Section tail:ConsList_Section | Nil_Section DATA ConsList_Paragraph | Cons_Paragraph head:Paragraph tail:ConsList_Paragraph | Nil_Paragraph DATA ConsList_Subsection | Cons_Subsection head:Subsection tail:ConsList_Subsection | Nil_Subsection DATA ConsList_Subsubsection | Cons_Subsubsection head:Subsubsection tail:ConsList_Subsubsection | Nil_Subsubsection DATA ConsList_Word | Cons_Word head:Word tail:ConsList_Word | Nil_Word DATA ConsList_Vertex | Cons_Vertex head:Vertex tail:ConsList_Vertex | Nil_Vertex DATA ConsList_Edge | Cons_Edge head:Edge tail:ConsList_Edge | Nil_Edge DATA ConsList_Value | Cons_Value head:Value tail:ConsList_Value | Nil_Value DATA ConsList_Axis | Cons_Axis head:Axis tail:ConsList_Axis | Nil_Axis DATA ConsList_Probability | Cons_Probability head:Probability tail:ConsList_Probability | Nil_Probability -------------------------------------------------------------------------- -- Attr declarations -- -------------------------------------------------------------------------- ATTR EnrichedDoc Root Section Subsection Subsubsection Paragraph Word NodeName Graph Vertex Shape Edge Subgraph Dirty Probtable Value Table Axis Probability List_Probtable List_Section List_Paragraph List_Subsection List_Subsubsection List_Word List_Vertex List_Edge List_Value List_Axis List_Probability ConsList_Probtable ConsList_Section ConsList_Paragraph ConsList_Subsection ConsList_Subsubsection ConsList_Word ConsList_Vertex ConsList_Edge ConsList_Value ConsList_Axis ConsList_Probability [ doc : Document focusD : FocusDoc path : Path | pIdC : Int whitespaceMap : WhitespaceMap | ] ATTR EnrichedDoc Root Section Subsection Subsubsection Paragraph Word NodeName Graph Vertex Shape Edge Subgraph Dirty Probtable Value Table Axis Probability List_Probtable List_Section List_Paragraph List_Subsection List_Subsubsection List_Word List_Vertex List_Edge List_Value List_Axis List_Probability [ | | pres : Presentation_ ] ATTR Root Section Subsection Subsubsection Paragraph Word NodeName Graph Vertex Shape Edge Subgraph Dirty Probtable Value Table Axis Probability List_Probtable List_Section List_Paragraph List_Subsection List_Subsubsection List_Word List_Vertex List_Edge List_Value List_Axis List_Probability ConsList_Probtable ConsList_Section ConsList_Paragraph ConsList_Subsection ConsList_Subsubsection ConsList_Word ConsList_Vertex ConsList_Edge ConsList_Value ConsList_Axis ConsList_Probability [ ix : Int | | parseErrors USE {++} {[]} : {[ParseErrorMessage]} ] ATTR Root Section Subsection Subsubsection Paragraph Word NodeName Graph Vertex Shape Edge Subgraph Dirty Probtable Value Table Axis Probability List_Probtable List_Section List_Paragraph List_Subsection List_Subsubsection List_Word List_Vertex List_Edge List_Value List_Axis List_Probability [ | | ix : Int path : Path presXML : Presentation_ presTree : Presentation_ ] ATTR List_Probtable List_Section List_Paragraph List_Subsection List_Subsubsection List_Word List_Vertex List_Edge List_Value List_Axis List_Probability ConsList_Probtable ConsList_Section ConsList_Paragraph ConsList_Subsection ConsList_Subsubsection ConsList_Word ConsList_Vertex ConsList_Edge ConsList_Value ConsList_Axis ConsList_Probability [ | | press : {[Presentation_]} ] ATTR ConsList_Probtable ConsList_Section ConsList_Paragraph ConsList_Subsection ConsList_Subsubsection ConsList_Word ConsList_Vertex ConsList_Edge ConsList_Value ConsList_Axis ConsList_Probability [ | | pressXML : {[Presentation_]} pressTree : {[Presentation_]} ] -------------------------------------------------------------------------- -- General sem functions -- -------------------------------------------------------------------------- SEM EnrichedDoc | RootEnr root.pIdC = @lhs.pIdC + 0 lhs.pIdC = @root.pIdC root.path = @lhs.path++[0] | RootEnr root.ix = 0 | RootEnr lhs.pres = loc (Node_RootEnr @self @lhs.path) $ presentFocus @lhs.focusD @lhs.path @pres `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) | HoleEnrichedDoc lhs.pres = presHole @lhs.focusD "EnrichedDoc" (Node_HoleEnrichedDoc @self @lhs.path) @lhs.path `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) | ParseErrEnrichedDoc lhs.pres = presParseErr (Node_ParseErrEnrichedDoc @self @lhs.path) @error `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) SEM Root | Root graph.pIdC = @lhs.pIdC + 0 probtables.pIdC = @graph.pIdC sections.pIdC = @probtables.pIdC lhs.pIdC = @sections.pIdC graph.path = @lhs.path++[0] probtables.path = @lhs.path++[3] sections.path = @lhs.path++[5] | Root graph.ix = 0 probtables.ix = 3 sections.ix = 5 | Root lhs.pres = loc (Node_Root @self @lhs.path) $ presentFocus @lhs.focusD @lhs.path @pres `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) | HoleRoot lhs.pres = presHole @lhs.focusD "Root" (Node_HoleRoot @self @lhs.path) @lhs.path `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) | ParseErrRoot lhs.pres = presParseErr (Node_ParseErrRoot @self @lhs.path) @error `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) lhs.parseErrors = getErrorMessages @error SEM Section | Section paragraphs.pIdC = @lhs.pIdC + 0 subsections.pIdC = @paragraphs.pIdC lhs.pIdC = @subsections.pIdC paragraphs.path = @lhs.path++[1] subsections.path = @lhs.path++[2] | Section paragraphs.ix = 1 subsections.ix = 2 | Section lhs.pres = loc (Node_Section @self @lhs.path) $ presentFocus @lhs.focusD @lhs.path @pres `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) | HoleSection lhs.pres = presHole @lhs.focusD "Section" (Node_HoleSection @self @lhs.path) @lhs.path `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) | ParseErrSection lhs.pres = presParseErr (Node_ParseErrSection @self @lhs.path) @error `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) lhs.parseErrors = getErrorMessages @error SEM Subsection | Subsection paragraphs.pIdC = @lhs.pIdC + 0 subsubsections.pIdC = @paragraphs.pIdC lhs.pIdC = @subsubsections.pIdC paragraphs.path = @lhs.path++[1] subsubsections.path = @lhs.path++[2] | Subsection paragraphs.ix = 1 subsubsections.ix = 2 | Subsection lhs.pres = loc (Node_Subsection @self @lhs.path) $ presentFocus @lhs.focusD @lhs.path @pres `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) | HoleSubsection lhs.pres = presHole @lhs.focusD "Subsection" (Node_HoleSubsection @self @lhs.path) @lhs.path `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) | ParseErrSubsection lhs.pres = presParseErr (Node_ParseErrSubsection @self @lhs.path) @error `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) lhs.parseErrors = getErrorMessages @error SEM Subsubsection | Subsubsection paragraphs.pIdC = @lhs.pIdC + 0 lhs.pIdC = @paragraphs.pIdC paragraphs.path = @lhs.path++[1] | Subsubsection paragraphs.ix = 1 | Subsubsection lhs.pres = loc (Node_Subsubsection @self @lhs.path) $ presentFocus @lhs.focusD @lhs.path @pres `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) | HoleSubsubsection lhs.pres = presHole @lhs.focusD "Subsubsection" (Node_HoleSubsubsection @self @lhs.path) @lhs.path `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) | ParseErrSubsubsection lhs.pres = presParseErr (Node_ParseErrSubsubsection @self @lhs.path) @error `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) lhs.parseErrors = getErrorMessages @error SEM Paragraph | Paragraph words.pIdC = @lhs.pIdC + 0 lhs.pIdC = @words.pIdC words.path = @lhs.path++[0] | SubgraphPara subgraph.pIdC = @lhs.pIdC + 0 lhs.pIdC = @subgraph.pIdC subgraph.path = @lhs.path++[0] | ProbtablePara probtable.pIdC = @lhs.pIdC + 0 lhs.pIdC = @probtable.pIdC probtable.path = @lhs.path++[0] | Paragraph words.ix = 0 | SubgraphPara subgraph.ix = 0 | ProbtablePara probtable.ix = 0 | Paragraph lhs.pres = loc (Node_Paragraph @self @lhs.path) $ presentFocus @lhs.focusD @lhs.path @pres `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) | SubgraphPara lhs.pres = loc (Node_SubgraphPara @self @lhs.path) $ presentFocus @lhs.focusD @lhs.path @pres `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) | ProbtablePara lhs.pres = loc (Node_ProbtablePara @self @lhs.path) $ presentFocus @lhs.focusD @lhs.path @pres `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) | HoleParagraph lhs.pres = presHole @lhs.focusD "Paragraph" (Node_HoleParagraph @self @lhs.path) @lhs.path `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) | ParseErrParagraph lhs.pres = presParseErr (Node_ParseErrParagraph @self @lhs.path) @error `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) lhs.parseErrors = getErrorMessages @error SEM Word | Word lhs.pIdC = @lhs.pIdC + 1 | NodeRef nodeName.pIdC = @lhs.pIdC + 0 lhs.pIdC = @nodeName.pIdC nodeName.path = @lhs.path++[0] | Label lhs.pIdC = @lhs.pIdC + 0 | LabelRef lhs.pIdC = @lhs.pIdC + 0 | Word | NodeRef nodeName.ix = 0 | Label | LabelRef | Word lhs.pres = loc (Node_Word @self @lhs.path) $ presentFocus @lhs.focusD @lhs.path @pres `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) | NodeRef lhs.pres = loc (Node_NodeRef @self @lhs.path) $ presentFocus @lhs.focusD @lhs.path @pres `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) | Label lhs.pres = loc (Node_Label @self @lhs.path) $ presentFocus @lhs.focusD @lhs.path @pres `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) | LabelRef lhs.pres = loc (Node_LabelRef @self @lhs.path) $ presentFocus @lhs.focusD @lhs.path @pres `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) | HoleWord lhs.pres = presHole @lhs.focusD "Word" (Node_HoleWord @self @lhs.path) @lhs.path `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) | ParseErrWord lhs.pres = presParseErr (Node_ParseErrWord @self @lhs.path) @error `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) lhs.parseErrors = getErrorMessages @error SEM NodeName | NodeName lhs.pIdC = @lhs.pIdC + 0 | NodeName | NodeName lhs.pres = loc (Node_NodeName @self @lhs.path) $ presentFocus @lhs.focusD @lhs.path @pres `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) | HoleNodeName lhs.pres = presHole @lhs.focusD "NodeName" (Node_HoleNodeName @self @lhs.path) @lhs.path `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) | ParseErrNodeName lhs.pres = presParseErr (Node_ParseErrNodeName @self @lhs.path) @error `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) lhs.parseErrors = getErrorMessages @error SEM Graph | Graph dirty.pIdC = @lhs.pIdC + 0 vertices.pIdC = @dirty.pIdC edges.pIdC = @vertices.pIdC lhs.pIdC = @edges.pIdC dirty.path = @lhs.path++[0] vertices.path = @lhs.path++[1] edges.path = @lhs.path++[2] | Graph dirty.ix = 0 vertices.ix = 1 edges.ix = 2 | Graph lhs.pres = loc (Node_Graph @self @lhs.path) $ presentFocus @lhs.focusD @lhs.path @pres `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) | HoleGraph lhs.pres = presHole @lhs.focusD "Graph" (Node_HoleGraph @self @lhs.path) @lhs.path `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) | ParseErrGraph lhs.pres = presParseErr (Node_ParseErrGraph @self @lhs.path) @error `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) lhs.parseErrors = getErrorMessages @error SEM Vertex | Vertex shape.pIdC = @lhs.pIdC + 0 lhs.pIdC = @shape.pIdC shape.path = @lhs.path++[1] | Vertex shape.ix = 1 | Vertex lhs.pres = loc (Node_Vertex @self @lhs.path) $ presentFocus @lhs.focusD @lhs.path @pres `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) | HoleVertex lhs.pres = presHole @lhs.focusD "Vertex" (Node_HoleVertex @self @lhs.path) @lhs.path `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) | ParseErrVertex lhs.pres = presParseErr (Node_ParseErrVertex @self @lhs.path) @error `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) lhs.parseErrors = getErrorMessages @error SEM Shape | Circle lhs.pIdC = @lhs.pIdC + 0 | Square lhs.pIdC = @lhs.pIdC + 0 | Circle | Square | Circle lhs.pres = loc (Node_Circle @self @lhs.path) $ presentFocus @lhs.focusD @lhs.path @pres `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) | Square lhs.pres = loc (Node_Square @self @lhs.path) $ presentFocus @lhs.focusD @lhs.path @pres `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) | HoleShape lhs.pres = presHole @lhs.focusD "Shape" (Node_HoleShape @self @lhs.path) @lhs.path `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) | ParseErrShape lhs.pres = presParseErr (Node_ParseErrShape @self @lhs.path) @error `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) lhs.parseErrors = getErrorMessages @error SEM Edge | Edge lhs.pIdC = @lhs.pIdC + 0 | Edge | Edge lhs.pres = loc (Node_Edge @self @lhs.path) $ presentFocus @lhs.focusD @lhs.path @pres `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) | HoleEdge lhs.pres = presHole @lhs.focusD "Edge" (Node_HoleEdge @self @lhs.path) @lhs.path `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) | ParseErrEdge lhs.pres = presParseErr (Node_ParseErrEdge @self @lhs.path) @error `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) lhs.parseErrors = getErrorMessages @error SEM Subgraph | Subgraph dirty.pIdC = @lhs.pIdC + 0 vertices.pIdC = @dirty.pIdC edges.pIdC = @vertices.pIdC lhs.pIdC = @edges.pIdC dirty.path = @lhs.path++[0] vertices.path = @lhs.path++[1] edges.path = @lhs.path++[2] | Subgraph dirty.ix = 0 vertices.ix = 1 edges.ix = 2 | Subgraph lhs.pres = loc (Node_Subgraph @self @lhs.path) $ presentFocus @lhs.focusD @lhs.path @pres `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) | HoleSubgraph lhs.pres = presHole @lhs.focusD "Subgraph" (Node_HoleSubgraph @self @lhs.path) @lhs.path `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) | ParseErrSubgraph lhs.pres = presParseErr (Node_ParseErrSubgraph @self @lhs.path) @error `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) lhs.parseErrors = getErrorMessages @error SEM Dirty | Dirty lhs.pIdC = @lhs.pIdC + 0 | Clean lhs.pIdC = @lhs.pIdC + 0 | Dirty | Clean | Dirty lhs.pres = loc (Node_Dirty @self @lhs.path) $ presentFocus @lhs.focusD @lhs.path @pres `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) | Clean lhs.pres = loc (Node_Clean @self @lhs.path) $ presentFocus @lhs.focusD @lhs.path @pres `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) | HoleDirty lhs.pres = presHole @lhs.focusD "Dirty" (Node_HoleDirty @self @lhs.path) @lhs.path `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) | ParseErrDirty lhs.pres = presParseErr (Node_ParseErrDirty @self @lhs.path) @error `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) lhs.parseErrors = getErrorMessages @error SEM Probtable | Probtable values.pIdC = @lhs.pIdC + 0 table.pIdC = @values.pIdC lhs.pIdC = @table.pIdC values.path = @lhs.path++[1] table.path = @lhs.path++[2] | Probtable values.ix = 1 table.ix = 2 | Probtable lhs.pres = loc (Node_Probtable @self @lhs.path) $ presentFocus @lhs.focusD @lhs.path @pres `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) | HoleProbtable lhs.pres = presHole @lhs.focusD "Probtable" (Node_HoleProbtable @self @lhs.path) @lhs.path `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) | ParseErrProbtable lhs.pres = presParseErr (Node_ParseErrProbtable @self @lhs.path) @error `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) lhs.parseErrors = getErrorMessages @error SEM Value | Value lhs.pIdC = @lhs.pIdC + 0 | Value | Value lhs.pres = loc (Node_Value @self @lhs.path) $ presentFocus @lhs.focusD @lhs.path @pres `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) | HoleValue lhs.pres = presHole @lhs.focusD "Value" (Node_HoleValue @self @lhs.path) @lhs.path `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) | ParseErrValue lhs.pres = presParseErr (Node_ParseErrValue @self @lhs.path) @error `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) lhs.parseErrors = getErrorMessages @error SEM Table | Table axes.pIdC = @lhs.pIdC + 0 probs.pIdC = @axes.pIdC lhs.pIdC = @probs.pIdC axes.path = @lhs.path++[1] probs.path = @lhs.path++[2] | Table axes.ix = 1 probs.ix = 2 | Table lhs.pres = loc (Node_Table @self @lhs.path) $ presentFocus @lhs.focusD @lhs.path @pres `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) | HoleTable lhs.pres = presHole @lhs.focusD "Table" (Node_HoleTable @self @lhs.path) @lhs.path `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) | ParseErrTable lhs.pres = presParseErr (Node_ParseErrTable @self @lhs.path) @error `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) lhs.parseErrors = getErrorMessages @error SEM Axis | Axis values.pIdC = @lhs.pIdC + 0 lhs.pIdC = @values.pIdC values.path = @lhs.path++[0] | Axis values.ix = 0 | Axis lhs.pres = loc (Node_Axis @self @lhs.path) $ presentFocus @lhs.focusD @lhs.path @pres `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) | HoleAxis lhs.pres = presHole @lhs.focusD "Axis" (Node_HoleAxis @self @lhs.path) @lhs.path `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) | ParseErrAxis lhs.pres = presParseErr (Node_ParseErrAxis @self @lhs.path) @error `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) lhs.parseErrors = getErrorMessages @error SEM Probability | Probability lhs.pIdC = @lhs.pIdC + 0 | Probability | Probability lhs.pres = loc (Node_Probability @self @lhs.path) $ presentFocus @lhs.focusD @lhs.path @pres `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) | HoleProbability lhs.pres = presHole @lhs.focusD "Probability" (Node_HoleProbability @self @lhs.path) @lhs.path `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) | ParseErrProbability lhs.pres = presParseErr (Node_ParseErrProbability @self @lhs.path) @error `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) lhs.parseErrors = getErrorMessages @error SEM List_Probtable | List_Probtable lhs.press = map ( loc (Node_List_Probtable @self @lhs.path) . presentFocus @lhs.focusD @lhs.path ) @elts.press -- parent is reponsible for setting parsing/structural elts.pIdC = @lhs.pIdC + 100 -- NOT RIGHT, should be taken from document type def. lhs.pIdC = @elts.pIdC elts.path = @lhs.path elts.ix = 0 | HoleList_Probtable lhs.press = [] | ParseErrList_Probtable lhs.press = [] | List_Probtable lhs.pres = loc (Node_List_Probtable @self @lhs.path) $ presentFocus @lhs.focusD @lhs.path $ @pres `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) | ParseErrList_Probtable lhs.pres = presParseErr (Node_ParseErrList_Probtable @self @lhs.path) @error `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) lhs.parseErrors = getErrorMessages @error | HoleList_Probtable lhs.pres = presHole @lhs.focusD "Probtable" (Node_HoleList_Probtable @self @lhs.path) @lhs.path `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) SEM List_Section | List_Section lhs.press = map ( loc (Node_List_Section @self @lhs.path) . presentFocus @lhs.focusD @lhs.path ) @elts.press -- parent is reponsible for setting parsing/structural elts.pIdC = @lhs.pIdC + 100 -- NOT RIGHT, should be taken from document type def. lhs.pIdC = @elts.pIdC elts.path = @lhs.path elts.ix = 0 | HoleList_Section lhs.press = [] | ParseErrList_Section lhs.press = [] | List_Section lhs.pres = loc (Node_List_Section @self @lhs.path) $ presentFocus @lhs.focusD @lhs.path $ @pres `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) | ParseErrList_Section lhs.pres = presParseErr (Node_ParseErrList_Section @self @lhs.path) @error `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) lhs.parseErrors = getErrorMessages @error | HoleList_Section lhs.pres = presHole @lhs.focusD "Section" (Node_HoleList_Section @self @lhs.path) @lhs.path `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) SEM List_Paragraph | List_Paragraph lhs.press = map ( loc (Node_List_Paragraph @self @lhs.path) . presentFocus @lhs.focusD @lhs.path ) @elts.press -- parent is reponsible for setting parsing/structural elts.pIdC = @lhs.pIdC + 100 -- NOT RIGHT, should be taken from document type def. lhs.pIdC = @elts.pIdC elts.path = @lhs.path elts.ix = 0 | HoleList_Paragraph lhs.press = [] | ParseErrList_Paragraph lhs.press = [] | List_Paragraph lhs.pres = loc (Node_List_Paragraph @self @lhs.path) $ presentFocus @lhs.focusD @lhs.path $ @pres `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) | ParseErrList_Paragraph lhs.pres = presParseErr (Node_ParseErrList_Paragraph @self @lhs.path) @error `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) lhs.parseErrors = getErrorMessages @error | HoleList_Paragraph lhs.pres = presHole @lhs.focusD "Paragraph" (Node_HoleList_Paragraph @self @lhs.path) @lhs.path `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) SEM List_Subsection | List_Subsection lhs.press = map ( loc (Node_List_Subsection @self @lhs.path) . presentFocus @lhs.focusD @lhs.path ) @elts.press -- parent is reponsible for setting parsing/structural elts.pIdC = @lhs.pIdC + 100 -- NOT RIGHT, should be taken from document type def. lhs.pIdC = @elts.pIdC elts.path = @lhs.path elts.ix = 0 | HoleList_Subsection lhs.press = [] | ParseErrList_Subsection lhs.press = [] | List_Subsection lhs.pres = loc (Node_List_Subsection @self @lhs.path) $ presentFocus @lhs.focusD @lhs.path $ @pres `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) | ParseErrList_Subsection lhs.pres = presParseErr (Node_ParseErrList_Subsection @self @lhs.path) @error `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) lhs.parseErrors = getErrorMessages @error | HoleList_Subsection lhs.pres = presHole @lhs.focusD "Subsection" (Node_HoleList_Subsection @self @lhs.path) @lhs.path `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) SEM List_Subsubsection | List_Subsubsection lhs.press = map ( loc (Node_List_Subsubsection @self @lhs.path) . presentFocus @lhs.focusD @lhs.path ) @elts.press -- parent is reponsible for setting parsing/structural elts.pIdC = @lhs.pIdC + 100 -- NOT RIGHT, should be taken from document type def. lhs.pIdC = @elts.pIdC elts.path = @lhs.path elts.ix = 0 | HoleList_Subsubsection lhs.press = [] | ParseErrList_Subsubsection lhs.press = [] | List_Subsubsection lhs.pres = loc (Node_List_Subsubsection @self @lhs.path) $ presentFocus @lhs.focusD @lhs.path $ @pres `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) | ParseErrList_Subsubsection lhs.pres = presParseErr (Node_ParseErrList_Subsubsection @self @lhs.path) @error `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) lhs.parseErrors = getErrorMessages @error | HoleList_Subsubsection lhs.pres = presHole @lhs.focusD "Subsubsection" (Node_HoleList_Subsubsection @self @lhs.path) @lhs.path `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) SEM List_Word | List_Word lhs.press = map ( loc (Node_List_Word @self @lhs.path) . presentFocus @lhs.focusD @lhs.path ) @elts.press -- parent is reponsible for setting parsing/structural elts.pIdC = @lhs.pIdC + 100 -- NOT RIGHT, should be taken from document type def. lhs.pIdC = @elts.pIdC elts.path = @lhs.path elts.ix = 0 | HoleList_Word lhs.press = [] | ParseErrList_Word lhs.press = [] | List_Word lhs.pres = loc (Node_List_Word @self @lhs.path) $ presentFocus @lhs.focusD @lhs.path $ @pres `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) | ParseErrList_Word lhs.pres = presParseErr (Node_ParseErrList_Word @self @lhs.path) @error `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) lhs.parseErrors = getErrorMessages @error | HoleList_Word lhs.pres = presHole @lhs.focusD "Word" (Node_HoleList_Word @self @lhs.path) @lhs.path `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) SEM List_Vertex | List_Vertex lhs.press = map ( loc (Node_List_Vertex @self @lhs.path) . presentFocus @lhs.focusD @lhs.path ) @elts.press -- parent is reponsible for setting parsing/structural elts.pIdC = @lhs.pIdC + 100 -- NOT RIGHT, should be taken from document type def. lhs.pIdC = @elts.pIdC elts.path = @lhs.path elts.ix = 0 | HoleList_Vertex lhs.press = [] | ParseErrList_Vertex lhs.press = [] | List_Vertex lhs.pres = loc (Node_List_Vertex @self @lhs.path) $ presentFocus @lhs.focusD @lhs.path $ @pres `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) | ParseErrList_Vertex lhs.pres = presParseErr (Node_ParseErrList_Vertex @self @lhs.path) @error `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) lhs.parseErrors = getErrorMessages @error | HoleList_Vertex lhs.pres = presHole @lhs.focusD "Vertex" (Node_HoleList_Vertex @self @lhs.path) @lhs.path `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) SEM List_Edge | List_Edge lhs.press = map ( loc (Node_List_Edge @self @lhs.path) . presentFocus @lhs.focusD @lhs.path ) @elts.press -- parent is reponsible for setting parsing/structural elts.pIdC = @lhs.pIdC + 100 -- NOT RIGHT, should be taken from document type def. lhs.pIdC = @elts.pIdC elts.path = @lhs.path elts.ix = 0 | HoleList_Edge lhs.press = [] | ParseErrList_Edge lhs.press = [] | List_Edge lhs.pres = loc (Node_List_Edge @self @lhs.path) $ presentFocus @lhs.focusD @lhs.path $ @pres `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) | ParseErrList_Edge lhs.pres = presParseErr (Node_ParseErrList_Edge @self @lhs.path) @error `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) lhs.parseErrors = getErrorMessages @error | HoleList_Edge lhs.pres = presHole @lhs.focusD "Edge" (Node_HoleList_Edge @self @lhs.path) @lhs.path `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) SEM List_Value | List_Value lhs.press = map ( loc (Node_List_Value @self @lhs.path) . presentFocus @lhs.focusD @lhs.path ) @elts.press -- parent is reponsible for setting parsing/structural elts.pIdC = @lhs.pIdC + 100 -- NOT RIGHT, should be taken from document type def. lhs.pIdC = @elts.pIdC elts.path = @lhs.path elts.ix = 0 | HoleList_Value lhs.press = [] | ParseErrList_Value lhs.press = [] | List_Value lhs.pres = loc (Node_List_Value @self @lhs.path) $ presentFocus @lhs.focusD @lhs.path $ @pres `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) | ParseErrList_Value lhs.pres = presParseErr (Node_ParseErrList_Value @self @lhs.path) @error `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) lhs.parseErrors = getErrorMessages @error | HoleList_Value lhs.pres = presHole @lhs.focusD "Value" (Node_HoleList_Value @self @lhs.path) @lhs.path `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) SEM List_Axis | List_Axis lhs.press = map ( loc (Node_List_Axis @self @lhs.path) . presentFocus @lhs.focusD @lhs.path ) @elts.press -- parent is reponsible for setting parsing/structural elts.pIdC = @lhs.pIdC + 100 -- NOT RIGHT, should be taken from document type def. lhs.pIdC = @elts.pIdC elts.path = @lhs.path elts.ix = 0 | HoleList_Axis lhs.press = [] | ParseErrList_Axis lhs.press = [] | List_Axis lhs.pres = loc (Node_List_Axis @self @lhs.path) $ presentFocus @lhs.focusD @lhs.path $ @pres `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) | ParseErrList_Axis lhs.pres = presParseErr (Node_ParseErrList_Axis @self @lhs.path) @error `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) lhs.parseErrors = getErrorMessages @error | HoleList_Axis lhs.pres = presHole @lhs.focusD "Axis" (Node_HoleList_Axis @self @lhs.path) @lhs.path `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) SEM List_Probability | List_Probability lhs.press = map ( loc (Node_List_Probability @self @lhs.path) . presentFocus @lhs.focusD @lhs.path ) @elts.press -- parent is reponsible for setting parsing/structural elts.pIdC = @lhs.pIdC + 100 -- NOT RIGHT, should be taken from document type def. lhs.pIdC = @elts.pIdC elts.path = @lhs.path elts.ix = 0 | HoleList_Probability lhs.press = [] | ParseErrList_Probability lhs.press = [] | List_Probability lhs.pres = loc (Node_List_Probability @self @lhs.path) $ presentFocus @lhs.focusD @lhs.path $ @pres `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) | ParseErrList_Probability lhs.pres = presParseErr (Node_ParseErrList_Probability @self @lhs.path) @error `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) lhs.parseErrors = getErrorMessages @error | HoleList_Probability lhs.pres = presHole @lhs.focusD "Probability" (Node_HoleList_Probability @self @lhs.path) @lhs.path `withLocalPopupMenuItems` (mkPopupItemsFromDocUpdates $ menuD (PathD @lhs.path) @lhs.doc) SEM ConsList_Probtable | Cons_Probtable head.path = @lhs.path++[@lhs.ix] tail.path = @lhs.path lhs.press = @head.pres : @tail.press head.pIdC = @lhs.pIdC + 30 -- NOT RIGHT, should be taken from document type def. tail.pIdC = @head.pIdC lhs.pIdC = @tail.pIdC tail.ix = @lhs.ix + 1 | Nil_Probtable lhs.press = [] SEM ConsList_Section | Cons_Section head.path = @lhs.path++[@lhs.ix] tail.path = @lhs.path lhs.press = @head.pres : @tail.press head.pIdC = @lhs.pIdC + 30 -- NOT RIGHT, should be taken from document type def. tail.pIdC = @head.pIdC lhs.pIdC = @tail.pIdC tail.ix = @lhs.ix + 1 | Nil_Section lhs.press = [] SEM ConsList_Paragraph | Cons_Paragraph head.path = @lhs.path++[@lhs.ix] tail.path = @lhs.path lhs.press = @head.pres : @tail.press head.pIdC = @lhs.pIdC + 30 -- NOT RIGHT, should be taken from document type def. tail.pIdC = @head.pIdC lhs.pIdC = @tail.pIdC tail.ix = @lhs.ix + 1 | Nil_Paragraph lhs.press = [] SEM ConsList_Subsection | Cons_Subsection head.path = @lhs.path++[@lhs.ix] tail.path = @lhs.path lhs.press = @head.pres : @tail.press head.pIdC = @lhs.pIdC + 30 -- NOT RIGHT, should be taken from document type def. tail.pIdC = @head.pIdC lhs.pIdC = @tail.pIdC tail.ix = @lhs.ix + 1 | Nil_Subsection lhs.press = [] SEM ConsList_Subsubsection | Cons_Subsubsection head.path = @lhs.path++[@lhs.ix] tail.path = @lhs.path lhs.press = @head.pres : @tail.press head.pIdC = @lhs.pIdC + 30 -- NOT RIGHT, should be taken from document type def. tail.pIdC = @head.pIdC lhs.pIdC = @tail.pIdC tail.ix = @lhs.ix + 1 | Nil_Subsubsection lhs.press = [] SEM ConsList_Word | Cons_Word head.path = @lhs.path++[@lhs.ix] tail.path = @lhs.path lhs.press = @head.pres : @tail.press head.pIdC = @lhs.pIdC + 30 -- NOT RIGHT, should be taken from document type def. tail.pIdC = @head.pIdC lhs.pIdC = @tail.pIdC tail.ix = @lhs.ix + 1 | Nil_Word lhs.press = [] SEM ConsList_Vertex | Cons_Vertex head.path = @lhs.path++[@lhs.ix] tail.path = @lhs.path lhs.press = @head.pres : @tail.press head.pIdC = @lhs.pIdC + 30 -- NOT RIGHT, should be taken from document type def. tail.pIdC = @head.pIdC lhs.pIdC = @tail.pIdC tail.ix = @lhs.ix + 1 | Nil_Vertex lhs.press = [] SEM ConsList_Edge | Cons_Edge head.path = @lhs.path++[@lhs.ix] tail.path = @lhs.path lhs.press = @head.pres : @tail.press head.pIdC = @lhs.pIdC + 30 -- NOT RIGHT, should be taken from document type def. tail.pIdC = @head.pIdC lhs.pIdC = @tail.pIdC tail.ix = @lhs.ix + 1 | Nil_Edge lhs.press = [] SEM ConsList_Value | Cons_Value head.path = @lhs.path++[@lhs.ix] tail.path = @lhs.path lhs.press = @head.pres : @tail.press head.pIdC = @lhs.pIdC + 30 -- NOT RIGHT, should be taken from document type def. tail.pIdC = @head.pIdC lhs.pIdC = @tail.pIdC tail.ix = @lhs.ix + 1 | Nil_Value lhs.press = [] SEM ConsList_Axis | Cons_Axis head.path = @lhs.path++[@lhs.ix] tail.path = @lhs.path lhs.press = @head.pres : @tail.press head.pIdC = @lhs.pIdC + 30 -- NOT RIGHT, should be taken from document type def. tail.pIdC = @head.pIdC lhs.pIdC = @tail.pIdC tail.ix = @lhs.ix + 1 | Nil_Axis lhs.press = [] SEM ConsList_Probability | Cons_Probability head.path = @lhs.path++[@lhs.ix] tail.path = @lhs.path lhs.press = @head.pres : @tail.press head.pIdC = @lhs.pIdC + 30 -- NOT RIGHT, should be taken from document type def. tail.pIdC = @head.pIdC lhs.pIdC = @tail.pIdC tail.ix = @lhs.ix + 1 | Nil_Probability lhs.press = [] -------------------------------------------------------------------------- -- Synthesized path rules -- -------------------------------------------------------------------------- SEM Root | Root lhs.path = @lhs.path SEM Section | Section lhs.path = @lhs.path SEM Subsection | Subsection lhs.path = @lhs.path SEM Subsubsection | Subsubsection lhs.path = @lhs.path SEM Paragraph | Paragraph lhs.path = @lhs.path | SubgraphPara lhs.path = @lhs.path | ProbtablePara lhs.path = @lhs.path SEM Word | Word lhs.path = @lhs.path | NodeRef lhs.path = @lhs.path | Label lhs.path = @lhs.path | LabelRef lhs.path = @lhs.path SEM NodeName | NodeName lhs.path = @lhs.path SEM Graph | Graph lhs.path = @lhs.path SEM Vertex | Vertex lhs.path = @lhs.path SEM Shape | Circle lhs.path = @lhs.path | Square lhs.path = @lhs.path SEM Edge | Edge lhs.path = @lhs.path SEM Subgraph | Subgraph lhs.path = @lhs.path SEM Dirty | Dirty lhs.path = @lhs.path | Clean lhs.path = @lhs.path SEM Probtable | Probtable lhs.path = @lhs.path SEM Value | Value lhs.path = @lhs.path SEM Table | Table lhs.path = @lhs.path SEM Axis | Axis lhs.path = @lhs.path SEM Probability | Probability lhs.path = @lhs.path SEM List_Probtable | List_Probtable lhs.path = @lhs.path SEM List_Section | List_Section lhs.path = @lhs.path SEM List_Paragraph | List_Paragraph lhs.path = @lhs.path SEM List_Subsection | List_Subsection lhs.path = @lhs.path SEM List_Subsubsection | List_Subsubsection lhs.path = @lhs.path SEM List_Word | List_Word lhs.path = @lhs.path SEM List_Vertex | List_Vertex lhs.path = @lhs.path SEM List_Edge | List_Edge lhs.path = @lhs.path SEM List_Value | List_Value lhs.path = @lhs.path SEM List_Axis | List_Axis lhs.path = @lhs.path SEM List_Probability | List_Probability lhs.path = @lhs.path -------------------------------------------------------------------------- -- Sem functions for XML presentation -- -------------------------------------------------------------------------- SEM Root | Root lhs.presXML = presentElementXML @lhs.focusD (Node_Root @self @lhs.path) @lhs.path "Root" [ @graph.presXML, presentPrimXMLString @caption, presentPrimXMLString @label, @probtables.presXML, presentPrimXMLString @title, @sections.presXML ] | HoleRoot lhs.presXML = presHole @lhs.focusD "Root" (Node_HoleRoot @self @lhs.path) @lhs.path | ParseErrRoot lhs.presXML = presParseErr (Node_ParseErrRoot @self @lhs.path) @error SEM Section | Section lhs.presXML = presentElementXML @lhs.focusD (Node_Section @self @lhs.path) @lhs.path "Section" [ presentPrimXMLString @title, @paragraphs.presXML, @subsections.presXML ] | HoleSection lhs.presXML = presHole @lhs.focusD "Section" (Node_HoleSection @self @lhs.path) @lhs.path | ParseErrSection lhs.presXML = presParseErr (Node_ParseErrSection @self @lhs.path) @error SEM Subsection | Subsection lhs.presXML = presentElementXML @lhs.focusD (Node_Subsection @self @lhs.path) @lhs.path "Subsection" [ presentPrimXMLString @title, @paragraphs.presXML, @subsubsections.presXML ] | HoleSubsection lhs.presXML = presHole @lhs.focusD "Subsection" (Node_HoleSubsection @self @lhs.path) @lhs.path | ParseErrSubsection lhs.presXML = presParseErr (Node_ParseErrSubsection @self @lhs.path) @error SEM Subsubsection | Subsubsection lhs.presXML = presentElementXML @lhs.focusD (Node_Subsubsection @self @lhs.path) @lhs.path "Subsubsection" [ presentPrimXMLString @title, @paragraphs.presXML ] | HoleSubsubsection lhs.presXML = presHole @lhs.focusD "Subsubsection" (Node_HoleSubsubsection @self @lhs.path) @lhs.path | ParseErrSubsubsection lhs.presXML = presParseErr (Node_ParseErrSubsubsection @self @lhs.path) @error SEM Paragraph | Paragraph lhs.presXML = presentElementXML @lhs.focusD (Node_Paragraph @self @lhs.path) @lhs.path "Paragraph" [ @words.presXML ] | SubgraphPara lhs.presXML = presentElementXML @lhs.focusD (Node_SubgraphPara @self @lhs.path) @lhs.path "SubgraphPara" [ @subgraph.presXML, presentPrimXMLString @caption, presentPrimXMLString @label ] | ProbtablePara lhs.presXML = presentElementXML @lhs.focusD (Node_ProbtablePara @self @lhs.path) @lhs.path "ProbtablePara" [ @probtable.presXML ] | HoleParagraph lhs.presXML = presHole @lhs.focusD "Paragraph" (Node_HoleParagraph @self @lhs.path) @lhs.path | ParseErrParagraph lhs.presXML = presParseErr (Node_ParseErrParagraph @self @lhs.path) @error SEM Word | Word lhs.presXML = presentElementXML @lhs.focusD (Node_Word @self @lhs.path) @lhs.path "Word" [ presentPrimXMLString @word ] | NodeRef lhs.presXML = presentElementXML @lhs.focusD (Node_NodeRef @self @lhs.path) @lhs.path "NodeRef" [ @nodeName.presXML ] | Label lhs.presXML = presentElementXML @lhs.focusD (Node_Label @self @lhs.path) @lhs.path "Label" [ presentPrimXMLString @label ] | LabelRef lhs.presXML = presentElementXML @lhs.focusD (Node_LabelRef @self @lhs.path) @lhs.path "LabelRef" [ presentPrimXMLString @label ] | HoleWord lhs.presXML = presHole @lhs.focusD "Word" (Node_HoleWord @self @lhs.path) @lhs.path | ParseErrWord lhs.presXML = presParseErr (Node_ParseErrWord @self @lhs.path) @error SEM NodeName | NodeName lhs.presXML = presentElementXML @lhs.focusD (Node_NodeName @self @lhs.path) @lhs.path "NodeName" [ presentPrimXMLString @name ] | HoleNodeName lhs.presXML = presHole @lhs.focusD "NodeName" (Node_HoleNodeName @self @lhs.path) @lhs.path | ParseErrNodeName lhs.presXML = presParseErr (Node_ParseErrNodeName @self @lhs.path) @error SEM Graph | Graph lhs.presXML = presentElementXML @lhs.focusD (Node_Graph @self @lhs.path) @lhs.path "Graph" [ @dirty.presXML, @vertices.presXML, @edges.presXML ] | HoleGraph lhs.presXML = presHole @lhs.focusD "Graph" (Node_HoleGraph @self @lhs.path) @lhs.path | ParseErrGraph lhs.presXML = presParseErr (Node_ParseErrGraph @self @lhs.path) @error SEM Vertex | Vertex lhs.presXML = presentElementXML @lhs.focusD (Node_Vertex @self @lhs.path) @lhs.path "Vertex" [ presentPrimXMLString @name, @shape.presXML, presentPrimXMLInt @id, presentPrimXMLInt @x, presentPrimXMLInt @y ] | HoleVertex lhs.presXML = presHole @lhs.focusD "Vertex" (Node_HoleVertex @self @lhs.path) @lhs.path | ParseErrVertex lhs.presXML = presParseErr (Node_ParseErrVertex @self @lhs.path) @error SEM Shape | Circle lhs.presXML = presentElementXML @lhs.focusD (Node_Circle @self @lhs.path) @lhs.path "Circle" [ ] | Square lhs.presXML = presentElementXML @lhs.focusD (Node_Square @self @lhs.path) @lhs.path "Square" [ ] | HoleShape lhs.presXML = presHole @lhs.focusD "Shape" (Node_HoleShape @self @lhs.path) @lhs.path | ParseErrShape lhs.presXML = presParseErr (Node_ParseErrShape @self @lhs.path) @error SEM Edge | Edge lhs.presXML = presentElementXML @lhs.focusD (Node_Edge @self @lhs.path) @lhs.path "Edge" [ presentPrimXMLInt @from, presentPrimXMLInt @to ] | HoleEdge lhs.presXML = presHole @lhs.focusD "Edge" (Node_HoleEdge @self @lhs.path) @lhs.path | ParseErrEdge lhs.presXML = presParseErr (Node_ParseErrEdge @self @lhs.path) @error SEM Subgraph | Subgraph lhs.presXML = presentElementXML @lhs.focusD (Node_Subgraph @self @lhs.path) @lhs.path "Subgraph" [ @dirty.presXML, @vertices.presXML, @edges.presXML ] | HoleSubgraph lhs.presXML = presHole @lhs.focusD "Subgraph" (Node_HoleSubgraph @self @lhs.path) @lhs.path | ParseErrSubgraph lhs.presXML = presParseErr (Node_ParseErrSubgraph @self @lhs.path) @error SEM Dirty | Dirty lhs.presXML = presentElementXML @lhs.focusD (Node_Dirty @self @lhs.path) @lhs.path "Dirty" [ ] | Clean lhs.presXML = presentElementXML @lhs.focusD (Node_Clean @self @lhs.path) @lhs.path "Clean" [ ] | HoleDirty lhs.presXML = presHole @lhs.focusD "Dirty" (Node_HoleDirty @self @lhs.path) @lhs.path | ParseErrDirty lhs.presXML = presParseErr (Node_ParseErrDirty @self @lhs.path) @error SEM Probtable | Probtable lhs.presXML = presentElementXML @lhs.focusD (Node_Probtable @self @lhs.path) @lhs.path "Probtable" [ presentPrimXMLInt @id, @values.presXML, @table.presXML ] | HoleProbtable lhs.presXML = presHole @lhs.focusD "Probtable" (Node_HoleProbtable @self @lhs.path) @lhs.path | ParseErrProbtable lhs.presXML = presParseErr (Node_ParseErrProbtable @self @lhs.path) @error SEM Value | Value lhs.presXML = presentElementXML @lhs.focusD (Node_Value @self @lhs.path) @lhs.path "Value" [ presentPrimXMLString @val ] | HoleValue lhs.presXML = presHole @lhs.focusD "Value" (Node_HoleValue @self @lhs.path) @lhs.path | ParseErrValue lhs.presXML = presParseErr (Node_ParseErrValue @self @lhs.path) @error SEM Table | Table lhs.presXML = presentElementXML @lhs.focusD (Node_Table @self @lhs.path) @lhs.path "Table" [ presentPrimXMLList_Int @parents, @axes.presXML, @probs.presXML ] | HoleTable lhs.presXML = presHole @lhs.focusD "Table" (Node_HoleTable @self @lhs.path) @lhs.path | ParseErrTable lhs.presXML = presParseErr (Node_ParseErrTable @self @lhs.path) @error SEM Axis | Axis lhs.presXML = presentElementXML @lhs.focusD (Node_Axis @self @lhs.path) @lhs.path "Axis" [ @values.presXML ] | HoleAxis lhs.presXML = presHole @lhs.focusD "Axis" (Node_HoleAxis @self @lhs.path) @lhs.path | ParseErrAxis lhs.presXML = presParseErr (Node_ParseErrAxis @self @lhs.path) @error SEM Probability | Probability lhs.presXML = presentElementXML @lhs.focusD (Node_Probability @self @lhs.path) @lhs.path "Probability" [ presentPrimXMLString @prob ] | HoleProbability lhs.presXML = presHole @lhs.focusD "Probability" (Node_HoleProbability @self @lhs.path) @lhs.path | ParseErrProbability lhs.presXML = presParseErr (Node_ParseErrProbability @self @lhs.path) @error SEM List_Probtable | List_Probtable lhs.presXML = loc (Node_List_Probtable @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ col @elts.pressXML | ParseErrList_Probtable lhs.presXML = loc (Node_List_Probtable @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ presParseErr (Node_ParseErrList_Probtable @self @lhs.path) @error | HoleList_Probtable lhs.presXML = loc (Node_List_Probtable @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ presHole @lhs.focusD "List_Probtable" (Node_HoleList_Probtable @self @lhs.path) @lhs.path SEM List_Section | List_Section lhs.presXML = loc (Node_List_Section @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ col @elts.pressXML | ParseErrList_Section lhs.presXML = loc (Node_List_Section @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ presParseErr (Node_ParseErrList_Section @self @lhs.path) @error | HoleList_Section lhs.presXML = loc (Node_List_Section @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ presHole @lhs.focusD "List_Section" (Node_HoleList_Section @self @lhs.path) @lhs.path SEM List_Paragraph | List_Paragraph lhs.presXML = loc (Node_List_Paragraph @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ col @elts.pressXML | ParseErrList_Paragraph lhs.presXML = loc (Node_List_Paragraph @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ presParseErr (Node_ParseErrList_Paragraph @self @lhs.path) @error | HoleList_Paragraph lhs.presXML = loc (Node_List_Paragraph @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ presHole @lhs.focusD "List_Paragraph" (Node_HoleList_Paragraph @self @lhs.path) @lhs.path SEM List_Subsection | List_Subsection lhs.presXML = loc (Node_List_Subsection @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ col @elts.pressXML | ParseErrList_Subsection lhs.presXML = loc (Node_List_Subsection @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ presParseErr (Node_ParseErrList_Subsection @self @lhs.path) @error | HoleList_Subsection lhs.presXML = loc (Node_List_Subsection @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ presHole @lhs.focusD "List_Subsection" (Node_HoleList_Subsection @self @lhs.path) @lhs.path SEM List_Subsubsection | List_Subsubsection lhs.presXML = loc (Node_List_Subsubsection @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ col @elts.pressXML | ParseErrList_Subsubsection lhs.presXML = loc (Node_List_Subsubsection @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ presParseErr (Node_ParseErrList_Subsubsection @self @lhs.path) @error | HoleList_Subsubsection lhs.presXML = loc (Node_List_Subsubsection @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ presHole @lhs.focusD "List_Subsubsection" (Node_HoleList_Subsubsection @self @lhs.path) @lhs.path SEM List_Word | List_Word lhs.presXML = loc (Node_List_Word @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ col @elts.pressXML | ParseErrList_Word lhs.presXML = loc (Node_List_Word @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ presParseErr (Node_ParseErrList_Word @self @lhs.path) @error | HoleList_Word lhs.presXML = loc (Node_List_Word @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ presHole @lhs.focusD "List_Word" (Node_HoleList_Word @self @lhs.path) @lhs.path SEM List_Vertex | List_Vertex lhs.presXML = loc (Node_List_Vertex @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ col @elts.pressXML | ParseErrList_Vertex lhs.presXML = loc (Node_List_Vertex @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ presParseErr (Node_ParseErrList_Vertex @self @lhs.path) @error | HoleList_Vertex lhs.presXML = loc (Node_List_Vertex @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ presHole @lhs.focusD "List_Vertex" (Node_HoleList_Vertex @self @lhs.path) @lhs.path SEM List_Edge | List_Edge lhs.presXML = loc (Node_List_Edge @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ col @elts.pressXML | ParseErrList_Edge lhs.presXML = loc (Node_List_Edge @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ presParseErr (Node_ParseErrList_Edge @self @lhs.path) @error | HoleList_Edge lhs.presXML = loc (Node_List_Edge @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ presHole @lhs.focusD "List_Edge" (Node_HoleList_Edge @self @lhs.path) @lhs.path SEM List_Value | List_Value lhs.presXML = loc (Node_List_Value @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ col @elts.pressXML | ParseErrList_Value lhs.presXML = loc (Node_List_Value @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ presParseErr (Node_ParseErrList_Value @self @lhs.path) @error | HoleList_Value lhs.presXML = loc (Node_List_Value @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ presHole @lhs.focusD "List_Value" (Node_HoleList_Value @self @lhs.path) @lhs.path SEM List_Axis | List_Axis lhs.presXML = loc (Node_List_Axis @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ col @elts.pressXML | ParseErrList_Axis lhs.presXML = loc (Node_List_Axis @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ presParseErr (Node_ParseErrList_Axis @self @lhs.path) @error | HoleList_Axis lhs.presXML = loc (Node_List_Axis @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ presHole @lhs.focusD "List_Axis" (Node_HoleList_Axis @self @lhs.path) @lhs.path SEM List_Probability | List_Probability lhs.presXML = loc (Node_List_Probability @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ col @elts.pressXML | ParseErrList_Probability lhs.presXML = loc (Node_List_Probability @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ presParseErr (Node_ParseErrList_Probability @self @lhs.path) @error | HoleList_Probability lhs.presXML = loc (Node_List_Probability @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ presHole @lhs.focusD "List_Probability" (Node_HoleList_Probability @self @lhs.path) @lhs.path SEM ConsList_Probtable | Cons_Probtable lhs.pressXML = @head.presXML : @tail.pressXML | Nil_Probtable lhs.pressXML = [] SEM ConsList_Section | Cons_Section lhs.pressXML = @head.presXML : @tail.pressXML | Nil_Section lhs.pressXML = [] SEM ConsList_Paragraph | Cons_Paragraph lhs.pressXML = @head.presXML : @tail.pressXML | Nil_Paragraph lhs.pressXML = [] SEM ConsList_Subsection | Cons_Subsection lhs.pressXML = @head.presXML : @tail.pressXML | Nil_Subsection lhs.pressXML = [] SEM ConsList_Subsubsection | Cons_Subsubsection lhs.pressXML = @head.presXML : @tail.pressXML | Nil_Subsubsection lhs.pressXML = [] SEM ConsList_Word | Cons_Word lhs.pressXML = @head.presXML : @tail.pressXML | Nil_Word lhs.pressXML = [] SEM ConsList_Vertex | Cons_Vertex lhs.pressXML = @head.presXML : @tail.pressXML | Nil_Vertex lhs.pressXML = [] SEM ConsList_Edge | Cons_Edge lhs.pressXML = @head.presXML : @tail.pressXML | Nil_Edge lhs.pressXML = [] SEM ConsList_Value | Cons_Value lhs.pressXML = @head.presXML : @tail.pressXML | Nil_Value lhs.pressXML = [] SEM ConsList_Axis | Cons_Axis lhs.pressXML = @head.presXML : @tail.pressXML | Nil_Axis lhs.pressXML = [] SEM ConsList_Probability | Cons_Probability lhs.pressXML = @head.presXML : @tail.pressXML | Nil_Probability lhs.pressXML = [] -------------------------------------------------------------------------- -- Sem functions for tree presentation -- -------------------------------------------------------------------------- SEM Root | Root lhs.presTree = presentElementTree @lhs.focusD (Node_Root @self @lhs.path) @lhs.path "Root" [ @graph.presTree, presentPrimXMLString @caption, presentPrimXMLString @label, @probtables.presTree, presentPrimXMLString @title, @sections.presTree ] | HoleRoot lhs.presTree = presHole @lhs.focusD "Root" (Node_HoleRoot @self @lhs.path) @lhs.path | ParseErrRoot lhs.presTree = presParseErr (Node_ParseErrRoot @self @lhs.path) @error SEM Section | Section lhs.presTree = presentElementTree @lhs.focusD (Node_Section @self @lhs.path) @lhs.path "Section" [ presentPrimXMLString @title, @paragraphs.presTree, @subsections.presTree ] | HoleSection lhs.presTree = presHole @lhs.focusD "Section" (Node_HoleSection @self @lhs.path) @lhs.path | ParseErrSection lhs.presTree = presParseErr (Node_ParseErrSection @self @lhs.path) @error SEM Subsection | Subsection lhs.presTree = presentElementTree @lhs.focusD (Node_Subsection @self @lhs.path) @lhs.path "Subsection" [ presentPrimXMLString @title, @paragraphs.presTree, @subsubsections.presTree ] | HoleSubsection lhs.presTree = presHole @lhs.focusD "Subsection" (Node_HoleSubsection @self @lhs.path) @lhs.path | ParseErrSubsection lhs.presTree = presParseErr (Node_ParseErrSubsection @self @lhs.path) @error SEM Subsubsection | Subsubsection lhs.presTree = presentElementTree @lhs.focusD (Node_Subsubsection @self @lhs.path) @lhs.path "Subsubsection" [ presentPrimXMLString @title, @paragraphs.presTree ] | HoleSubsubsection lhs.presTree = presHole @lhs.focusD "Subsubsection" (Node_HoleSubsubsection @self @lhs.path) @lhs.path | ParseErrSubsubsection lhs.presTree = presParseErr (Node_ParseErrSubsubsection @self @lhs.path) @error SEM Paragraph | Paragraph lhs.presTree = presentElementTree @lhs.focusD (Node_Paragraph @self @lhs.path) @lhs.path "Paragraph" [ @words.presTree ] | SubgraphPara lhs.presTree = presentElementTree @lhs.focusD (Node_SubgraphPara @self @lhs.path) @lhs.path "SubgraphPara" [ @subgraph.presTree, presentPrimXMLString @caption, presentPrimXMLString @label ] | ProbtablePara lhs.presTree = presentElementTree @lhs.focusD (Node_ProbtablePara @self @lhs.path) @lhs.path "ProbtablePara" [ @probtable.presTree ] | HoleParagraph lhs.presTree = presHole @lhs.focusD "Paragraph" (Node_HoleParagraph @self @lhs.path) @lhs.path | ParseErrParagraph lhs.presTree = presParseErr (Node_ParseErrParagraph @self @lhs.path) @error SEM Word | Word lhs.presTree = presentElementTree @lhs.focusD (Node_Word @self @lhs.path) @lhs.path "Word" [ presentPrimXMLString @word ] | NodeRef lhs.presTree = presentElementTree @lhs.focusD (Node_NodeRef @self @lhs.path) @lhs.path "NodeRef" [ @nodeName.presTree ] | Label lhs.presTree = presentElementTree @lhs.focusD (Node_Label @self @lhs.path) @lhs.path "Label" [ presentPrimXMLString @label ] | LabelRef lhs.presTree = presentElementTree @lhs.focusD (Node_LabelRef @self @lhs.path) @lhs.path "LabelRef" [ presentPrimXMLString @label ] | HoleWord lhs.presTree = presHole @lhs.focusD "Word" (Node_HoleWord @self @lhs.path) @lhs.path | ParseErrWord lhs.presTree = presParseErr (Node_ParseErrWord @self @lhs.path) @error SEM NodeName | NodeName lhs.presTree = presentElementTree @lhs.focusD (Node_NodeName @self @lhs.path) @lhs.path "NodeName" [ presentPrimXMLString @name ] | HoleNodeName lhs.presTree = presHole @lhs.focusD "NodeName" (Node_HoleNodeName @self @lhs.path) @lhs.path | ParseErrNodeName lhs.presTree = presParseErr (Node_ParseErrNodeName @self @lhs.path) @error SEM Graph | Graph lhs.presTree = presentElementTree @lhs.focusD (Node_Graph @self @lhs.path) @lhs.path "Graph" [ @dirty.presTree, @vertices.presTree, @edges.presTree ] | HoleGraph lhs.presTree = presHole @lhs.focusD "Graph" (Node_HoleGraph @self @lhs.path) @lhs.path | ParseErrGraph lhs.presTree = presParseErr (Node_ParseErrGraph @self @lhs.path) @error SEM Vertex | Vertex lhs.presTree = presentElementTree @lhs.focusD (Node_Vertex @self @lhs.path) @lhs.path "Vertex" [ presentPrimXMLString @name, @shape.presTree, presentPrimXMLInt @id, presentPrimXMLInt @x, presentPrimXMLInt @y ] | HoleVertex lhs.presTree = presHole @lhs.focusD "Vertex" (Node_HoleVertex @self @lhs.path) @lhs.path | ParseErrVertex lhs.presTree = presParseErr (Node_ParseErrVertex @self @lhs.path) @error SEM Shape | Circle lhs.presTree = presentElementTree @lhs.focusD (Node_Circle @self @lhs.path) @lhs.path "Circle" [ ] | Square lhs.presTree = presentElementTree @lhs.focusD (Node_Square @self @lhs.path) @lhs.path "Square" [ ] | HoleShape lhs.presTree = presHole @lhs.focusD "Shape" (Node_HoleShape @self @lhs.path) @lhs.path | ParseErrShape lhs.presTree = presParseErr (Node_ParseErrShape @self @lhs.path) @error SEM Edge | Edge lhs.presTree = presentElementTree @lhs.focusD (Node_Edge @self @lhs.path) @lhs.path "Edge" [ presentPrimXMLInt @from, presentPrimXMLInt @to ] | HoleEdge lhs.presTree = presHole @lhs.focusD "Edge" (Node_HoleEdge @self @lhs.path) @lhs.path | ParseErrEdge lhs.presTree = presParseErr (Node_ParseErrEdge @self @lhs.path) @error SEM Subgraph | Subgraph lhs.presTree = presentElementTree @lhs.focusD (Node_Subgraph @self @lhs.path) @lhs.path "Subgraph" [ @dirty.presTree, @vertices.presTree, @edges.presTree ] | HoleSubgraph lhs.presTree = presHole @lhs.focusD "Subgraph" (Node_HoleSubgraph @self @lhs.path) @lhs.path | ParseErrSubgraph lhs.presTree = presParseErr (Node_ParseErrSubgraph @self @lhs.path) @error SEM Dirty | Dirty lhs.presTree = presentElementTree @lhs.focusD (Node_Dirty @self @lhs.path) @lhs.path "Dirty" [ ] | Clean lhs.presTree = presentElementTree @lhs.focusD (Node_Clean @self @lhs.path) @lhs.path "Clean" [ ] | HoleDirty lhs.presTree = presHole @lhs.focusD "Dirty" (Node_HoleDirty @self @lhs.path) @lhs.path | ParseErrDirty lhs.presTree = presParseErr (Node_ParseErrDirty @self @lhs.path) @error SEM Probtable | Probtable lhs.presTree = presentElementTree @lhs.focusD (Node_Probtable @self @lhs.path) @lhs.path "Probtable" [ presentPrimXMLInt @id, @values.presTree, @table.presTree ] | HoleProbtable lhs.presTree = presHole @lhs.focusD "Probtable" (Node_HoleProbtable @self @lhs.path) @lhs.path | ParseErrProbtable lhs.presTree = presParseErr (Node_ParseErrProbtable @self @lhs.path) @error SEM Value | Value lhs.presTree = presentElementTree @lhs.focusD (Node_Value @self @lhs.path) @lhs.path "Value" [ presentPrimXMLString @val ] | HoleValue lhs.presTree = presHole @lhs.focusD "Value" (Node_HoleValue @self @lhs.path) @lhs.path | ParseErrValue lhs.presTree = presParseErr (Node_ParseErrValue @self @lhs.path) @error SEM Table | Table lhs.presTree = presentElementTree @lhs.focusD (Node_Table @self @lhs.path) @lhs.path "Table" [ presentPrimXMLList_Int @parents, @axes.presTree, @probs.presTree ] | HoleTable lhs.presTree = presHole @lhs.focusD "Table" (Node_HoleTable @self @lhs.path) @lhs.path | ParseErrTable lhs.presTree = presParseErr (Node_ParseErrTable @self @lhs.path) @error SEM Axis | Axis lhs.presTree = presentElementTree @lhs.focusD (Node_Axis @self @lhs.path) @lhs.path "Axis" [ @values.presTree ] | HoleAxis lhs.presTree = presHole @lhs.focusD "Axis" (Node_HoleAxis @self @lhs.path) @lhs.path | ParseErrAxis lhs.presTree = presParseErr (Node_ParseErrAxis @self @lhs.path) @error SEM Probability | Probability lhs.presTree = presentElementTree @lhs.focusD (Node_Probability @self @lhs.path) @lhs.path "Probability" [ presentPrimXMLString @prob ] | HoleProbability lhs.presTree = presHole @lhs.focusD "Probability" (Node_HoleProbability @self @lhs.path) @lhs.path | ParseErrProbability lhs.presTree = presParseErr (Node_ParseErrProbability @self @lhs.path) @error SEM List_Probtable | List_Probtable lhs.presTree = loc (Node_List_Probtable @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ col @elts.pressTree | ParseErrList_Probtable lhs.presTree = loc (Node_List_Probtable @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ presParseErr (Node_ParseErrList_Probtable @self @lhs.path) @error | HoleList_Probtable lhs.presTree = loc (Node_List_Probtable @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ presHole @lhs.focusD "List_Probtable" (Node_HoleList_Probtable @self @lhs.path) @lhs.path SEM List_Section | List_Section lhs.presTree = loc (Node_List_Section @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ col @elts.pressTree | ParseErrList_Section lhs.presTree = loc (Node_List_Section @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ presParseErr (Node_ParseErrList_Section @self @lhs.path) @error | HoleList_Section lhs.presTree = loc (Node_List_Section @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ presHole @lhs.focusD "List_Section" (Node_HoleList_Section @self @lhs.path) @lhs.path SEM List_Paragraph | List_Paragraph lhs.presTree = loc (Node_List_Paragraph @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ col @elts.pressTree | ParseErrList_Paragraph lhs.presTree = loc (Node_List_Paragraph @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ presParseErr (Node_ParseErrList_Paragraph @self @lhs.path) @error | HoleList_Paragraph lhs.presTree = loc (Node_List_Paragraph @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ presHole @lhs.focusD "List_Paragraph" (Node_HoleList_Paragraph @self @lhs.path) @lhs.path SEM List_Subsection | List_Subsection lhs.presTree = loc (Node_List_Subsection @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ col @elts.pressTree | ParseErrList_Subsection lhs.presTree = loc (Node_List_Subsection @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ presParseErr (Node_ParseErrList_Subsection @self @lhs.path) @error | HoleList_Subsection lhs.presTree = loc (Node_List_Subsection @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ presHole @lhs.focusD "List_Subsection" (Node_HoleList_Subsection @self @lhs.path) @lhs.path SEM List_Subsubsection | List_Subsubsection lhs.presTree = loc (Node_List_Subsubsection @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ col @elts.pressTree | ParseErrList_Subsubsection lhs.presTree = loc (Node_List_Subsubsection @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ presParseErr (Node_ParseErrList_Subsubsection @self @lhs.path) @error | HoleList_Subsubsection lhs.presTree = loc (Node_List_Subsubsection @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ presHole @lhs.focusD "List_Subsubsection" (Node_HoleList_Subsubsection @self @lhs.path) @lhs.path SEM List_Word | List_Word lhs.presTree = loc (Node_List_Word @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ col @elts.pressTree | ParseErrList_Word lhs.presTree = loc (Node_List_Word @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ presParseErr (Node_ParseErrList_Word @self @lhs.path) @error | HoleList_Word lhs.presTree = loc (Node_List_Word @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ presHole @lhs.focusD "List_Word" (Node_HoleList_Word @self @lhs.path) @lhs.path SEM List_Vertex | List_Vertex lhs.presTree = loc (Node_List_Vertex @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ col @elts.pressTree | ParseErrList_Vertex lhs.presTree = loc (Node_List_Vertex @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ presParseErr (Node_ParseErrList_Vertex @self @lhs.path) @error | HoleList_Vertex lhs.presTree = loc (Node_List_Vertex @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ presHole @lhs.focusD "List_Vertex" (Node_HoleList_Vertex @self @lhs.path) @lhs.path SEM List_Edge | List_Edge lhs.presTree = loc (Node_List_Edge @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ col @elts.pressTree | ParseErrList_Edge lhs.presTree = loc (Node_List_Edge @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ presParseErr (Node_ParseErrList_Edge @self @lhs.path) @error | HoleList_Edge lhs.presTree = loc (Node_List_Edge @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ presHole @lhs.focusD "List_Edge" (Node_HoleList_Edge @self @lhs.path) @lhs.path SEM List_Value | List_Value lhs.presTree = loc (Node_List_Value @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ col @elts.pressTree | ParseErrList_Value lhs.presTree = loc (Node_List_Value @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ presParseErr (Node_ParseErrList_Value @self @lhs.path) @error | HoleList_Value lhs.presTree = loc (Node_List_Value @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ presHole @lhs.focusD "List_Value" (Node_HoleList_Value @self @lhs.path) @lhs.path SEM List_Axis | List_Axis lhs.presTree = loc (Node_List_Axis @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ col @elts.pressTree | ParseErrList_Axis lhs.presTree = loc (Node_List_Axis @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ presParseErr (Node_ParseErrList_Axis @self @lhs.path) @error | HoleList_Axis lhs.presTree = loc (Node_List_Axis @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ presHole @lhs.focusD "List_Axis" (Node_HoleList_Axis @self @lhs.path) @lhs.path SEM List_Probability | List_Probability lhs.presTree = loc (Node_List_Probability @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ col @elts.pressTree | ParseErrList_Probability lhs.presTree = loc (Node_List_Probability @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ presParseErr (Node_ParseErrList_Probability @self @lhs.path) @error | HoleList_Probability lhs.presTree = loc (Node_List_Probability @self @lhs.path) $ structural $ presentFocus @lhs.focusD @lhs.path $ presHole @lhs.focusD "List_Probability" (Node_HoleList_Probability @self @lhs.path) @lhs.path SEM ConsList_Probtable | Cons_Probtable lhs.pressTree = @head.presTree : @tail.pressTree | Nil_Probtable lhs.pressTree = [] SEM ConsList_Section | Cons_Section lhs.pressTree = @head.presTree : @tail.pressTree | Nil_Section lhs.pressTree = [] SEM ConsList_Paragraph | Cons_Paragraph lhs.pressTree = @head.presTree : @tail.pressTree | Nil_Paragraph lhs.pressTree = [] SEM ConsList_Subsection | Cons_Subsection lhs.pressTree = @head.presTree : @tail.pressTree | Nil_Subsection lhs.pressTree = [] SEM ConsList_Subsubsection | Cons_Subsubsection lhs.pressTree = @head.presTree : @tail.pressTree | Nil_Subsubsection lhs.pressTree = [] SEM ConsList_Word | Cons_Word lhs.pressTree = @head.presTree : @tail.pressTree | Nil_Word lhs.pressTree = [] SEM ConsList_Vertex | Cons_Vertex lhs.pressTree = @head.presTree : @tail.pressTree | Nil_Vertex lhs.pressTree = [] SEM ConsList_Edge | Cons_Edge lhs.pressTree = @head.presTree : @tail.pressTree | Nil_Edge lhs.pressTree = [] SEM ConsList_Value | Cons_Value lhs.pressTree = @head.presTree : @tail.pressTree | Nil_Value lhs.pressTree = [] SEM ConsList_Axis | Cons_Axis lhs.pressTree = @head.presTree : @tail.pressTree | Nil_Axis lhs.pressTree = [] SEM ConsList_Probability | Cons_Probability lhs.pressTree = @head.presTree : @tail.pressTree | Nil_Probability lhs.pressTree = []