SYMBOL Procedure INHERITS VP_Form COMPUTE SYNT.VP_OptDrawing=ADDROF(ProcedureDrawing); END; SYMBOL ProcedureHead INHERITS VP_TextTerminal, VP_ContainerSSS COMPUTE SYNT.VP_OblContainerName="head"; SYNT.VP_OptText=INCLUDING Procedure.persName; SYNT.VP_OptDefault="Unnamed NSD-Procedure"; END; SYMBOL ProcedureBody INHERITS VP_Container COMPUTE SYNT.VP_OblContainerName="body"; END; SYMBOL Stmts INHERITS VP_SimpleList COMPUTE SYNT.VP_OptMinWidth1=30; SYNT.VP_OptAlignInWidth=VisAlignScale; SYNT.VP_OptAlignInLength=VisAlignScale; END; SYMBOL _List_Stmt INHERITS VP_ListContext END; SYMBOL Stmt INHERITS VP_ListNode END; /* If */ SYMBOL IfStmt INHERITS VP_Form COMPUTE SYNT.VP_OptDrawing=ADDROF(IfDrawing); END; SYMBOL IfTrue INHERITS VP_Container COMPUTE SYNT.VP_OblContainerName="true-case"; END; SYMBOL IfFalse INHERITS VP_Container COMPUTE SYNT.VP_OblContainerName="false-case"; END; SYMBOL IfExpr INHERITS VP_Container COMPUTE SYNT.VP_OblContainerName="expr"; END; /* While */ SYMBOL WhileStmt INHERITS VP_Form COMPUTE SYNT.VP_OptDrawing=ADDROF(LoopDrawing); END; SYMBOL WhileBody INHERITS VP_Container COMPUTE SYNT.VP_OblContainerName="body"; END; SYMBOL WhileExpr INHERITS VP_Container COMPUTE SYNT.VP_OblContainerName="expr"; END; /* Terminale */ SYMBOL Command INHERITS VP_TextTerminal COMPUTE SYNT.VP_OptText=THIS.persCommand; SYNT.VP_OptTextAttr="persCommand"; SYNT.VP_OptDefault="STATEMENT"; SYNT.VP_OptFill="red"; SYNT.VP_OptFrameDrawing=NEW(FrameDrawing("",5)); END; SYMBOL Expr INHERITS VP_TextTerminal COMPUTE /* SYNT.VP_OptText=INCLUDING (CaseBranch.persExpr, WhileStmt.persExpr, CaseStmt.persExpr, IfStmt.persExpr); SYNT.VP_VisualContext = INCLUDING (CaseBranch.VP_VisualContext, WhileStmt.VP_VisualContext, CaseStmt.VP_VisualContext, IfStmt.VP_VisualContext); */ SYNT.VP_OptText = THIS.persExpr; SYNT.VP_VisualContext = _currn; SYNT.VP_OptTextAttr="persExpr"; SYNT.VP_OptDefault="EXPR"; SYNT.VP_OptFill="blue"; SYNT.VP_OptFrameDrawing=NEW(FrameDrawing("-outline {}",5)); END; /* Case */ SYMBOL CaseStmt INHERITS VP_RecursiveList COMPUTE SYNT.VP_OblRoot=ADDROF(CaseRootDrawing); SYNT.VP_OblRec=ADDROF(CaseRecDrawing); SYNT.VP_OblTerm=ADDROF(CaseTermDrawing); END; SYMBOL CaseBranch INHERITS VP_Form COMPUTE SYNT.VP_OptDrawing=ADDROF(CaseBranchDrawing); END; SYMBOL _List_CaseBranch INHERITS VP_ListContext END; SYMBOL CaseExpr INHERITS VP_Container COMPUTE SYNT.VP_OblContainerName="Expr"; END; SYMBOL CaseDefault INHERITS VP_Container COMPUTE SYNT.VP_OblContainerName="Default"; END; SYMBOL CaseBranchExpr INHERITS VP_Container COMPUTE SYNT.VP_OblContainerName="Expr"; END; SYMBOL CaseBranchStmts INHERITS VP_Container COMPUTE SYNT.VP_OblContainerName="Stmts"; END;