@=~ ~p typesetter = texinfo ~p maximum_input_line_length = infinity ~O~~{ #include "pascal.drawings.h" ~} ~O~~{ #ifndef PASCAL_DRAWINGS_H #define PASCAL_DRAWINGS_H #include "VisAutoPatternCode.h" DECL_VECTORDRAWING(Solid3DRectangleDrawing) DECL_VECTORDRAWING(ProgramDrawing) DECL_VECTORDRAWING(IntegerVarDeclDrawing) DECL_VECTORDRAWING(StmtGroupDrawing) DECL_VECTORDRAWING(WhileStmtDrawing) DECL_VECTORDRAWING(IfStmtDrawing) DECL_VECTORDRAWING(AssignmentDrawing) DECL_VECTORDRAWING(AddDrawing) DECL_VECTORDRAWING(SubDrawing) DECL_VECTORDRAWING(MulDrawing) DECL_VECTORDRAWING(DivDrawing) DECL_VECTORDRAWING(CompGTDrawing) DECL_VECTORDRAWING(CompLTDrawing) DECL_VECTORDRAWING(CompEQDrawing) #endif ~} ~O~~{ #include "pascal.drawings.h" IMPL_VECTORDRAWING(Solid3DRectangleDrawing) { figure(2,"solid3DRectangle",""); point(-5, -5); point(25,25); container("default", 0,0,20,20,VisAlignCenter, VisAlignCenter); stretchX(0,20); stretchY(0,20); } IMPL_VECTORDRAWING(ProgramDrawing) { figure(2,"solid3DRectangle",""); point(-5, -5); point(25,16); container("ProgramVarDeclList", 0,0,20,1,VisAlignLeft, VisAlignCenter); container("ProgramStmtList", 0,10,20,11,VisAlignLeft, VisAlignCenter); stretchX(0,20); stretchY(0,1); stretchY(10,11); } IMPL_VECTORDRAWING(IntegerVarDeclDrawing) { figure(2,"solid3DRectangle",""); point(-5, -5); point(95,25); figure(1,"text","-text INTEGER -anchor w"); point(5,10); container("IntegerVarDeclDefIdentList", 70,0,90,20,VisAlignCenter, VisAlignCenter); stretchX(70,90); stretchY(0,20); } IMPL_VECTORDRAWING(StmtGroupDrawing) { figure(2,"solid3DRectangle",""); point(-5, -5); point(35,45); figure(1,"text","-text begin -anchor w"); point(0,10); figure(1,"text","-text end -anchor w"); point(0,30); container("StmtGroupStmtList", 0,20,30,21,VisAlignLeft, VisAlignCenter); stretchX(0,30); stretchY(20,21); } IMPL_VECTORDRAWING(WhileStmtDrawing) { figure(2,"solid3DRectangle",""); point(-5, -5); point(85,55); figure(1,"text","-text while -anchor w"); point(5,10); figure(1,"text","-text do -anchor w"); point(65,10); container("WhileExpr", 40,0,60,20,VisAlignCenter, VisAlignCenter); container("WhileBody", 20,30,80,50,VisAlignLeft, VisAlignCenter); stretchX(40,60); stretchX(79,80); stretchY(0,20); stretchY(30,50); } IMPL_VECTORDRAWING(IfStmtDrawing) { figure(2,"solid3DRectangle",""); point(-5, -5); point(85,95); figure(1,"text","-text if -anchor w"); point(5,10); figure(1,"text","-text then -anchor w"); point(45,10); figure(1,"text","-text else -anchor w"); point(5,60); container("IfExpr", 20,0,40,20,VisAlignCenter, VisAlignCenter); container("IfTrueBranch", 20,30,80,50,VisAlignLeft, VisAlignCenter); container("IfFalseBranch", 20,70,80,90,VisAlignLeft, VisAlignCenter); stretchX(30,50); stretchX(79,80); stretchY(0,20); stretchY(30,50); stretchY(70,90); } IMPL_VECTORDRAWING(AssignmentDrawing) { figure(2,"solid3DRectangle",""); point(-5, -5); point(65,25); figure(1,"text","-text \":=\" -anchor c"); point(30,10); container("AssignmentTarget", 0,0,20,20,VisAlignCenter, VisAlignCenter); container("AssignmentSource", 40,0,60,20,VisAlignCenter, VisAlignCenter); stretchX(0,20); stretchX(40,60); stretchY(0,20); } IMPL_VECTORDRAWING(AddDrawing) { figure(2,"solid3DRectangle",""); point(-5, -5); point(65,25); figure(1,"text","-text \"+\" -anchor c"); point(30,10); container("AddOpr1", 0,0,20,20,VisAlignCenter, VisAlignCenter); container("AddOpr2", 40,0,60,20,VisAlignCenter, VisAlignCenter); stretchX(0,20); stretchX(40,60); stretchY(0,20); } IMPL_VECTORDRAWING(SubDrawing) { figure(2,"solid3DRectangle",""); point(-5, -5); point(65,25); figure(1,"text","-text \"-\" -anchor c"); point(30,10); container("SubOpr1", 0,0,20,20,VisAlignCenter, VisAlignCenter); container("SubOpr2", 40,0,60,20,VisAlignCenter, VisAlignCenter); stretchX(0,20); stretchX(40,60); stretchY(0,20); } IMPL_VECTORDRAWING(MulDrawing) { figure(2,"solid3DRectangle",""); point(-5, -5); point(65,25); figure(1,"text","-text \"*\" -anchor c"); point(30,10); container("MulOpr1", 0,0,20,20,VisAlignCenter, VisAlignCenter); container("MulOpr2", 40,0,60,20,VisAlignCenter, VisAlignCenter); stretchX(0,20); stretchX(40,60); stretchY(0,20); } IMPL_VECTORDRAWING(DivDrawing) { figure(2,"solid3DRectangle",""); point(-5, -5); point(65,25); figure(1,"text","-text \"/\" -anchor c"); point(30,10); container("DivOpr1", 0,0,20,20,VisAlignCenter, VisAlignCenter); container("DivOpr2", 40,0,60,20,VisAlignCenter, VisAlignCenter); stretchX(0,20); stretchX(40,60); stretchY(0,20); } IMPL_VECTORDRAWING(CompGTDrawing) { figure(2,"solid3DRectangle",""); point(-5, -5); point(65,25); figure(1,"text","-text \">\" -anchor c"); point(30,10); container("CompGTOpr1", 0,0,20,20,VisAlignCenter, VisAlignCenter); container("CompGTOpr2", 40,0,60,20,VisAlignCenter, VisAlignCenter); stretchX(0,20); stretchX(40,60); stretchY(0,20); } IMPL_VECTORDRAWING(CompLTDrawing) { figure(2,"solid3DRectangle",""); point(-5, -5); point(65,25); figure(1,"text","-text \"<\" -anchor c"); point(30,10); container("CompLTOpr1", 0,0,20,20,VisAlignCenter, VisAlignCenter); container("CompLTOpr2", 40,0,60,20,VisAlignCenter, VisAlignCenter); stretchX(0,20); stretchX(40,60); stretchY(0,20); } IMPL_VECTORDRAWING(CompEQDrawing) { figure(2,"solid3DRectangle",""); point(-5, -5); point(65,25); figure(1,"text","-text \"=\" -anchor c"); point(30,10); container("CompEQOpr1", 0,0,20,20,VisAlignCenter, VisAlignCenter); container("CompEQOpr2", 40,0,60,20,VisAlignCenter, VisAlignCenter); stretchX(0,20); stretchX(40,60); stretchY(0,20); } ~}