%! %% Copyright (C) 1989, Digital Equipment Corporation %% All rights reserved. %% See the file COPYRIGHT for a full description. %% %%Title: m3poster.txt %%Creator: Bill Kalsow %%CreationDate: Fri Oct 23 13:21:27 1987 by kalsow %%EditDate: Last modified on Fri Oct 4 23:00:48 1991 by kalsow %%EditDate: modified on Fri Nov 3 16:32:18 1989 by muller %% %% a Modula-3 poster %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Select the 11x17 page size if possible statusdict /11x17tray known {statusdict begin 11x17tray end} {11 17 div dup scale 0 0 moveto 792 0 lineto 792 1224 lineto 0 1224 lineto closepath clip} ifelse %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % railroad primitives /SCALE 7.4 def % sizing parameter /XSHRINK 0.92 def % x fudge factor /YSHRINK 0.95 def % y fudge factor #include "railroad.h" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 500 dict begin % local Modula-3 dictionary #include "m3grammar.h" /MaxY 10.5 inches def /MinY 0.1 inches def /MaxX 17 inches def /StartColumn { /LastY MaxY def } def /ColumnOne { /BaseX 0 def StartColumn } def /ColumnTwo { /BaseX MaxX 0.20 mul def StartColumn } def /ColumnThree { /BaseX MaxX 0.55 mul def StartColumn } def /ColumnFour { /BaseX MaxX 0.75 mul def StartColumn } def /Landscape { 270 rotate 16.75 neg inches 0 translate } def /ResetGraphics { Landscape SCALE 10 div setlinewidth } def /ShowPage { showpage ResetGraphics } def /FlushPage { ShowPage ColumnOne } def /CheckBottom { LastY MinY lt { FlushPage } if } def /DoIt { % rule indent CheckBottom % rule indent 5 SCALE mul mul % rule 5*S*indent BaseX add % rule 5*S*indent+Col LastY % rule 5*S*indent+Col LastY 3 -1 roll % 5*S*indent+Col LastY rule DrawProduction % height LastY sub neg % LastY-height BOXHgt sub % LastY-height-BOXHgt /LastY exch def % } def % DoIt /Place { % prod x y SCALE mul YSHRINK mul exch % prod y*S x SCALE mul XSHRINK mul exch % prod x*S y*S 3 -1 roll % x*S y*S prod DrawProduction % height pop % } def % Place /Grid { /gridStep exch SCALE mul def 0 gridStep MaxY { newpath dup 0 exch moveto MaxX exch lineto stroke } for 0 gridStep MaxX { newpath dup 0 moveto MaxY lineto stroke } for } def % Grid ResetGraphics %%% 10 Grid CompilationUnit 0 105 Place Interface 22 105 Place Module 0 96 Place GenericInterface 0 89 Place GenericModule 0 86 Place GenericHead 72 93 Place InterfaceBody 22 100 Place ModuleBody 46 100 Place Import 46 95 Place Block 30 82 Place Declaration 0 82 Place ConstDeclaration 30 76 Place VariableDeclaration 64 75 Place ProcedureHeading 59 80 Place TypeDeclaration 30 71 Place ExceptionDeclaration 68 84 Place Revelation 47 71 Place Signature 31 66 Place formal 0 60 Place StatementSequence 0 42 Place AssignmentStatement 22 41 Place CallStatement 71 35 Place CaseStatement 21 35 Place case 22 28 Place DecStatement 21 8 Place ExitStatement 45 41 Place EvalStatement 55 41 Place ForStatement 21 20 Place IfStatement 21 15 Place IncStatement 52 8 Place LockStatement 90 41 Place LoopStatement 72 41 Place % NewStatement 80 8 Place RaiseStatement 120 10 Place RepeatStatement 96 35 Place ReturnStatement 60 28 Place TryFinallyStatement 80 28 Place TryStatement 120 42 Place handler 130 35 Place TypeCaseStatement 110 27 Place tcase 145 20 Place WhileStatement 80 20 Place WithStatement 110 20 Place actual 90 11 Place Type 110 105 Place ArrayType 125 105 Place SetType 150 105 Place ObjectType 125 98 Place Brand 88 92 Place methodList 125 91 Place method 140 93 Place overrideList 127 85 Place ProcedureType 103 82 Place RecordType 150 88 Place RefType 116 77 Place PackedType 143 77 Place EnumerationType 153 72 Place SubrangeType 116 71 Place fields 87 86 Place field 85 78 Place ConstExpression 76 58 Place Expression 86 65 Place e1 101 65 Place e2 117 65 Place e3 129 65 Place e4 93 59 Place e5 98 50 Place e6 120 59 Place e8 153 59 Place Constructor 40 58 Place setCons 38 50 Place recordCons 60 50 Place arrayCons 79 50 Place ExceptionID 0 48 Place TypeID 17 50 Place % % draw the title % /Times-Bold findfont SCALE 9.5 mul scalefont setfont 65 SCALE mul XSHRINK mul 99 SCALE mul YSHRINK mul moveto (Modula-3) show FlushPage end % Modula-3 dictionary