COMPILATION LISTING OF SEGMENT: >spec>install>1212>RACINE.pascal Compiled by: Grenoble University Multics Pascal Compiler, Release 8.03 of February the 15th, 1986 Compiled at: Honeywell Multics Op. - System M Compiled on: 11/12/86 1731.3 mst Wed options: map no_table full_extensions private_storage no_io_warnings no_interactive 1 (* ************************************************************************* 2* * * 3* * Copyright (c) 1980 by Centre Interuniversitaire de Calcul de Grenoble * 4* * and Institut National de Recherche en Informatique et Automatique * 5* * * 6* ************************************************************************* *) 7 8 9 10 11 (* HISTORY COMMENTS: 12* 1) change(86-09-11,JMAthane), approve(86-09-11,MCR7521), 13* audit(86-09-15,JPFauche), install(86-11-12,MR12.0-1212): 14* Release 8.03 for MR12 15* END HISTORY COMMENTS *) 16 17 18 (* ****************************************************************************************** 19* * * 20* * MULTICS PASCAL COMPILER * 21* * _________________________ * 22* * * 23* * This compiler is the result of a team work . * 24* * Three people Jean.Michel Athane ( C.I.C.G ), Jean.Pierre Fauche (CRISS-IREP) * 25* * Bernard Huc (C.S.L./C.T.G. ) * 26* * during one year,(some nights and week-ends ...) worked together for this * 27* * result. If you are not happy with this compiler,you can (must) see one of these * 28* * three people. For this reason, their addresses are not given here. * 29* * We hope anyway ,you don't have any trouble with this fine,sophisticated compiler. * 30* * * 31* * Some of data structures used in some places are derived from the original CDC compiler * 32* * issued in Zurich in 1972 by N. Wirth and his team. * 33* * The experience of CRISS on Pascal compilers is also included here, as well as the ideas * 34* * taken (judiciously chosen) in the SFER Pascal compiler. * 35* * It is obvious that the authors have developped here their personal ideas. * 36* * Sorry for this.... * 37* * * 38* * at GRENOBLE (FRANCE) on August,28th 1980. * 39* * sincerely yours, * 40* * the authors * 41* * * 42* ****************************************************************************************** *) 43 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM *** ON 11/12/86 *** PAGE 2 44 45 $OPTIONS switch trace := true ; switch security := true ; t - $ 46 PROGRAM racine (mpcogerr, mpcogin, mpcogout) ; 47 $IMPORT 48 (* LIST OF IMPORTED PROCEDURES *) 49 'UNIQUE (pascal)' : 50 displaysymbols, 51 heaperror, 52 initclasse, 53 initialise, 54 progdecl, 55 prterrmeans, 56 statistiques ; 57 'DECLARE (pascal)' : 58 body ; 59 'CONTEXTTABLE (pascal)' : 60 create_dummyclass_box, 61 create_vars_box ; 62 'STATE (pascal)' : 63 freeallregisters ; 64 'EXPR (pascal)' : 65 expression ; 66 'MODATTR (pascal)' : 67 initattrvarbl ; 68 'GENERE (pascal)' : 69 genlongprofileref, 70 genprofileref, 71 inser ; 72 'optimized_procedures (alm)' : 73 search, 74 srchrec ; 75 'pascal (pl1)' : 76 listhead ; 77 (* LIST OF IMPORTED VARIABLES *) 78 'STATE (pascal)' : 79 asscheck, 80 divcheck, 81 errorctp, 82 gattr, 83 inputctp, 84 inxcheck, 85 outputctp, 86 stattrace ; 87 'DECLARE (pascal)' : 88 building_from_schema, 89 decltrace, 90 externallistheader, 91 filpts, 92 filtop, 93 forbidden_id_list, 94 hdrfile, 95 hdrindex, 96 hdrlength, 97 hdrline, 98 lc, 99 lkc, 100 symbtabl ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 3 101 'GENERE (pascal)' : 102 fichinter, 103 genetrace, 104 ic, 105 illegal_generation, 106 outcode, 107 writecode ; 108 (* FROM PL/1 *) 109 'pascal_build_object$pascal_build_object (pl1)' : buildobject ; 110 'pascal_sources_management_$init_source (pl1)' : initsource ; 111 'pascal_sources_management_$begin_source (pl1)' : beginsource ; 112 'pascal_sources_management_$end_source (pl1)' : endsource ; 113 'pascal_sources_management_$display_sources (pl1)' : displaysources ; 114 'pascal_statement_map_$return_map_ptr (pl1)' : getmapptr ; 115 'pascal_statement_map_$return_prof_ptr (pl1)' : getprofptr ; 116 'pascal_convert_real$pascal_convert_real (pl1)' : convertreal ; 117 'pascal_gen_io_ref_ (pl1)' : geninput, genoutput, genentree, gensortie, generror, generreur 118 $ 119 120 $EXPORT 121 122 alfaptr, 123 anytrace, 124 aval, 125 boolptr, 126 boxheader, 127 bufval, 128 ch8flag, 129 charptr, 130 chnix, 131 cl, 132 codelist, 133 conint, 134 conreel, 135 crealfabox, 136 ctptr, 137 currentnode, 138 declarationpart, 139 display, 140 disx, 141 environt, 142 envstandard, 143 errcl, 144 error, 145 errorflag, 146 errorsfound, 147 errtotal, 148 exportablecode, 149 extcalltrapplace, 150 check_id, 151 fastoperator, 152 firstcond, 153 forbidden_id, 154 init_fsb_trap_flag, 155 init_fsb_trap_info_place, 156 init_fsb_trap_links_place, 157 init_fsb_trap_number_of_files, *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 4 158 generrorlink, 159 geninputlink, 160 genoutputlink, 161 inconst, 162 initracine, 163 inputflag, 164 inserundlab, 165 insymbol, 166 interactive, 167 intptr, 168 iowarnings, 169 ival, 170 lamptr, 171 lastproc, 172 level, 173 liglues, 174 linkswordcount, 175 listyes, 176 longchaine, 177 longprofile, 178 longstring, 179 majmin, 180 mapswitch, 181 maxstring_ptr, 182 mpcogerr, 183 mpcogin, 184 mpcogout, 185 nameisref, 186 next, 187 nextline, 188 nextpage, 189 nilptr, 190 no, 191 no_compilation_warnings, 192 outputflag, 193 pageserrors, 194 pascalfrench, 195 pnumptr, 196 poweroftwo, 197 profilewordcount, 198 profptr, 199 progname, 200 programnode, 201 realptr, 202 recadre, 203 returnstop, 204 rval, 205 selectivetable, 206 skip, 207 skipextd, 208 skiptochapter, 209 sourceindex, 210 sourcenbr, 211 startic, 212 statement_begins, 213 statement_ends, 214 staticswordcount, *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 5 215 statnbr, 216 string_ptr, 217 sttfile, 218 sttindex, 219 sttline, 220 sup, 221 symbolfile, 222 symbolindex, 223 symbolline, 224 symbolmap, 225 textfilectp, 226 top, 227 undecptr, 228 undlab, 229 usednames, 230 version, 231 warning, 232 xc, 233 xrefneed $ 234 235 236 237 LABEL 100 ; (* END OF THE COMPILATION *) 238 239 240 241 242 243 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 6 244 245 $INCLUDE 'CONSTTYPE' $(* BEGIN INCLUDE FILE CONSTTYPE.incl.pascal *) 1 2 1 3 (* HISTORY COMMENTS: 1 4* 1) change(86-09-11,JMAthane), approve(86-09-11,MCR7521), 1 5* audit(86-09-15,JPFauche), install(86-11-12,MR12.0-1212): 1 6* Release 8.03 for MR12 1 7* END HISTORY COMMENTS *) 1 8 1 9 CONST (* VERSION 7.05 *) 1 10 (* ARRAY'S BOUNDS *) 1 11 1 12 minno = 0 ; (* MIN VALUE FOR NO ; SEE TYPE NORANGE *) 1 13 maxno = 63 ; (* MAX VALUE FORNO ; " " " *) { Modified for SimOne } 1 14 ptlimit = 20 ; (* MAX FOR PTLIST 0 ..PTLIMIT *) 1 15 displimit = 30 ; (* " " DISPLAY ..DISPLIMIT *) 1 16 maxlabs = 50 ; (* " " LABTAB ..MAXLABS *) 1 17 fillimit = 50 ; (* " " FILPTS .. FILLIMIT *) 1 18 maxlevel = 20 ; (* SEE LEVRANGE TYPE *) 1 19 maxerrline = 16 ; (* MAX FOR ERRINX *) 1 20 maxerpg = 2 ; (* MAX FOR ERRORSFOUND, PAGESERRORS 0.. *) 1 21 undmax = 1000 ; (* " " UNDLAB 1.. *) 1 22 longalfbox = 16 ; (* SEE ALFAVALUE TYPE *) 1 23 lgparm = 100 ; (* PARMLIST IN $PARM *) 1 24 lgparm1 = lgparm - 1 ; (* LGPARM - 1 *) 1 25 maxpredef = 99 ; (* INITNAME 0 .. MAXPREDEF *) 1 26 maxident = 32 ; (* LENGTH MAX FOR AN ID. *) 1 27 (* DONT MODIFY WITHOUT MODIFY maxident *) 1 28 (* IN optimized_procedures.alm *) 1 29 maxnbofkeywords = 49 ; { Modified for SimOne } 1 30 1 31 maxkeylength = 12 ; (* LENGTH MAX FOR A KEY-WORD *) { Modified for SimOne } 1 32 maxexternname = 168 ; (* length max for an external name *) 1 33 maxval = 256 ; (* LENGTH MAX FOR A STRING *) 1 34 maxstring = 256 ; (* MAX LENGTH FOR A STRING (STAND) <= MAXVAL *) 1 35 alfaleng = 8 ; (* SIZE OF ALFA TYPE *) 1 36 maxfich = 50000 ; (* FOR FICHINTER *) 1 37 longboxlist = 20 ; (* MAX. NB. OF REG. BOXES *) 1 38 maxref = 25 ; 1 39 maxfield = 25 ; 1 40 1 41 1 42 maxnewsize = 261094 ; (* MAX WORD SIZE FOR NEW *) 1 43 1 44 (* POWERS OF 2 *) 1 45 twoto4 = 2 * 2 * 2 * 2 ; 1 46 twoto6 = twoto4 * 2 * 2 ; 1 47 twoto8 = twoto6 * 2 * 2 ; 1 48 twoto8m1 = twoto8 - 1 ; 1 49 twoto9 = twoto8 * 2 ; 1 50 twoto10 = twoto9 * 2 ; 1 51 twoto12 = twoto10 * 2 * 2 ; 1 52 twoto14 = twoto6 * twoto8 ; 1 53 twoto15 = twoto14 * 2 ; 1 54 twoto16 = twoto15 * 2 ; 1 55 twoto17 = twoto16 * 2 ; 1 56 twoto17m1 = twoto17 - 1 ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 7 1 57 twoto18 = twoto17 * 2 ; 1 58 twoto18m1 = twoto18 - 1 ; 1 59 twoto27 = twoto18 * twoto9 ; 1 60 1 61 (* COMPUTER'S DESCRIPTION *) 1 62 1 63 bitsinbyte = 9 ; 1 64 bytesinword = 4 ; 1 65 bytesinhword = bytesinword DIV 2 ; 1 66 bytesindword = bytesinword * 2 ; 1 67 1 68 wordsinpage = twoto10 ; 1 69 pagesinsegment = twoto8 - 1 ; 1 70 wordsinsegment = wordsinpage * pagesinsegment ; 1 71 maxglobsize = twoto18 * bytesinword ; (* MAX SIZE FOR GLOBALS IN BYTES *) 1 72 maxstacksize = twoto15 * bytesinword ; (* MAX SIZE FOR A STACK FRAME IN BYTES *) 1 73 maxwseg = wordsinsegment ; (* MAX NBR OF WORDS IN SEGMENT = 255 * 1024 *) 1 74 1 75 nilleft = '1FFFC0023'x ; (* VALUE FOR LEFT WORD OF THE "NIL" ITS *) 1 76 nilright = '40000'x ; (* VALUE FOR RIGHT WORD OF THE "NIL" ITS *) 1 77 packednil = '007777000001'o ; (* MULTICS PACKED NIL PTR *) 1 78 bitsinword = bitsinbyte * bytesinword ; 1 79 bitsinhword = bitsinbyte * bytesinhword ; 1 80 bitsindword = 2 * bitsinword ; 1 81 byteinbyte = 1 ; 1 82 byteshift = 512 ; (* USED TO SHIFT AN INTEGER BY MULTIPLICATION *) 1 83 (* AND SUBSEQUENT VALUES *) 1 84 maxint = 34359738367 ; (* MAX. INTEGER *) 1 85 (* maxreal = 1.701411834604692317e38 ; *) 1 86 (* minreal = 1.469367938527859386e-39 ; *) 1 87 racmaxint = 131072 ; (* USED TO AVOID OVERFLOW *) 1 88 (* IN INTEGER MULTIPLICATION *) 1 89 ntwotobyte = twoto8 - 1 ; (* MAX. NUM. VALUE IN A BYTE *) 1 90 ntwotohword = twoto17 - 1 ; (* MAX. NUM. VALUE IN A HALF. WORD *) 1 91 stwotobyte = twoto9 - 1 ; (* MAX. SCAL. VALUE IN A BYTE *) 1 92 setrange = 8 * bitsinword ; (* SIZE OF STANDARD SETS : 8 WORDS MAX *) 1 93 maxset = setrange - 1 ; (* SETRANGE -1 *) 1 94 maxerrnum = 3 * setrange - 1 ; (* 3*SETRANGE -1 *) 1 95 maxpage = maxerrnum ; 1 96 maxchar = 127 ; (* < MAXSET *) 1 97 1 98 (* IN LISTING *) 1 99 maxpageline = 59 ; (* MAX NUMBER OF LINES ON A LISTING'S PAGE *) 1 100 maxlinepascal = 400 ; 1 101 maxsliceline = 136 ; 1 102 lgprint = maxsliceline - 10 ; (* SLICE OF PRINTED LINES *) 1 103 1 104 (* COMPILATION'S RETURN CODE *) 1 105 1 106 errorcond = 8 ; 1 107 noerrorcond = 0 ; 1 108 1 109 wordsforset = 8 ; 1 110 bytesforset = wordsforset * bytesinword ; (* MAX. NUM. OF BYTES IN A SET *) 1 111 bitsforset = wordsforset * bitsinword ; (* MAX. NUM. OF BITS IN A SET *) 1 112 bornesupset = wordsforset - 1 ; 1 113 psrinbytes = 32 ; (* SIZE OF PSR REG. IN BYTES *) *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 8 1 114 (* AND EXTERNAL CONSTRAINTS *) 1 115 maxdig = bitsinword DIV 3 ; (* MAX. NUMBER OF DIGITS IN OCTAL *) 1 116 maxexpon = 1000 ; (* TO AVOID OVERFLOW WITH EXPONENTS *) 1 117 maxhexdi = bitsinword DIV 4 ; (* MAX. NUMBER OF HEXA CHARS *) 1 118 max10 = 3435973835 ; (* TO AVOID OVERFLOW IN INTEGER CST *) 1 119 maxexp = 39 ; (* MAX. SCALING FACTOR ALLOWED *) 1 120 minexp = -38 ; (* MIN. SCALING FACTOR ALLOWED *) 1 121 maxdigitsinteger = 12 ; 1 122 maxdigitsreal = 20 ; 1 123 maxintegerstring = '+3435973836700000000' ; 1 124 maxrealstring = '+1701411834604692317' ; 1 125 minrealstring = '+1469367938527859386' ; 1 126 1 127 (* GENERATION CONSTRAINTS AND CONSTANTS *) 1 128 stackboundary = 16 * bytesinword ; (* BOUNDARY FOR A STACK FRAME *) 1 129 maxrel = 132 ; (* LENGTH OF PHYSICAL LINE *) 1 130 pascdebstacklocal = 384 ; (* BYTES DISP. OF FIRST FREE ST. IN PASCAL FRAME *) 1 131 simdebstacklocal = 448 ; (* BYTES DISP. OF FIRST FREE ST. IN SIMONE FRAME *) { Modified for SimOne } 1 132 procparmsize = 24 ; (* SIZE FOR FORMAL PROCEDURE PARAMETERS *) 1 133 mathworksizew = 32 ; (* SIZE OF WORK AREA FOR MATH OPS *) 1 134 modulinitsize = 48 ; { Inserted for SimOne } 1 135 monitorinitsize = 88 ; { Inserted for SimOne } 1 136 1 137 (* USEFUL TOOLS *) 1 138 blank = ' ' ; 1 139 longblank = ' ' ; 1 140 1 141 (* ALM GENERATION CONSTANTS *) 1 142 bit29 = 64 ; (* USE OF POINTER REGISTER BIT (BIT 29) *) 1 143 inhibit = 128 ; (* INTERRUPT INHIBITION BIT (BIT28) *) 1 144 o41 = 33 ; (* ITS *) 1 145 o43 = 35 ; (* ITP *) 1 146 1 147 1 148 (* ENTRY POINTS OF OPERATORS *) 1 149 1 150 log10switch = 6 ; 1 151 (* Used in UNIQUE for predefinition of log10 *) 1 152 (* and in EXPR for scientific subroutines *) 1 153 1 154 mainentryplace = 79 ; 1 155 extentryplace = 88 ; 1 156 checkbeforeeolnplace = 66 ; 1 157 checkbeforeeofplace = 67 ; 1 158 checkbeforetextreferenceplace = 68 ; 1 159 gotoexitextplace = 3 ; 1 160 intentryplace = 89 ; 1 161 scientplace = 80 ; 1 162 resetplace = 11 ; 1 163 rewriteplace = 12 ; 1 164 closeplace = 13 ; 1 165 readtextplace = 14 ; 1 166 readseqplace = 15 ; 1 167 readlnplace = 16 ; 1 168 writetextplace = 17 ; 1 169 writeseqplace = 18 ; 1 170 writelnplace = 19 ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 9 1 171 pageplace = 20 ; 1 172 puttextplace = 21 ; 1 173 putseqplace = 22 ; 1 174 gettextplace = 23 ; 1 175 getseqplace = 24 ; 1 176 gotoexitplace = 25 ; 1 177 newplace = 26 ; 1 178 disposeplace = 27 ; 1 179 resetheapplace = 28 ; 1 180 truncplace = 63 ; 1 181 roundplace = 64 ; 1 182 rafltplace = 31 ; 1 183 rqfltplace = 32 ; 1 184 putdirplace = 33 ; 1 185 getdirplace = 34 ; 1 186 fupdtplace = 35 ; 1 187 fcloseplace = 37 ; 1 188 connectplace = 36 ; 1 189 exceptcodeplace = 38 ; 1 190 intreturnplace = 39 ; 1 191 extreturnplace = 40 ; 1 192 returnzeroplace = 87 ; 1 193 intcallplace = 42 ; 1 194 extcallplace = 43 ; 1 195 initfsballocplace = 72 ; 1 196 dateopplace = 47 ; 1 197 timeopplace = 48 ; 1 198 clockopplace = 49 ; 1 199 longprofileplace = 50 ; 1 200 flushplace = 65 ; 1 201 fappendplace = 82 ; 1 202 freopenplace = 81 ; 1 203 argcshortplace = 69 ; 1 204 argcplace = 70 ; 1 205 argcextplace = 71 ; 1 206 argvshortplace = 73 ; 1 207 argvplace = 74 ; 1 208 argvextplace = 75 ; 1 209 stopshortplace = 76 ; 1 210 stopplace = 77 ; 1 211 stopextplace = 78 ; 1 212 sreadcharplace = 90 ; 1 213 sreadintegerplace = 91 ; 1 214 sreadrealplace = 92 ; 1 215 swritecharplace = 93 ; 1 216 swritestringplace = 94 ; 1 217 swritesubstringplace = 95 ; 1 218 swritebooleanplace = 96 ; 1 219 swriteintegerplace = 97 ; 1 220 swriterealeplace = 98 ; 1 221 swriterealdplace = 99 ; 1 222 swriteenumplace = 100 ; 1 223 parmproccheckplace = 101 ; 1 224 functionvaluesetplace = 102 ; 1 225 functionvaluecheckplace = 103 ; 1 226 extend_stack_op_place = 104 ; 1 227 reset_stack_end_op_place = 105 ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 10 1 228 1 229 (* CONST USED WITH OPERATORS *) 1 230 transoptvptr = 40 ; (* DISP / PR7 OF TRANSFER VECTOR *) 1 231 lotptrdep = 22 ; (* DISP / PR7 LOT-PTR *) 1 232 pascoperatorsdep = 8 ; (* PASCAL OPERATORS *) 1 233 (* EXECUTION BITS FOR STACK FRAME *) 1 234 mainbit = 131072 ; (* bit 18 *) 1 235 fastbit = 65536 ; (* bit 19 *) 1 236 checkbit = 32768 ; (* bit 20 *) 1 237 interactivebit = 16384 ; (* bit 21 *) 1 238 iowarningsbit = 8192 ; (* bit 22 *) 1 239 solstandardbit = 32 ; (* bit 30 *) 1 240 french_bit = 4 ; (* bit 31 *) 1 241 1 242 (* PASCAL ERRORS CODES *) 1 243 1 244 inxerrcode = 1 ; (* INDEX *) 1 245 chrerrcode = 2 ; (* FCT CHR *) 1 246 prderrcode = 3 ; (* FCT PRED *) 1 247 sucerrcode = 4 ; (* FCT SUCC *) 1 248 forerricode = 5 ; (* FOR INF *) 1 249 forerrscode = 6 ; (* FOR SUP *) 1 250 asserrcode = 7 ; (* ASSIGN *) 1 251 diverrcode = 8 ; (* DIV BY 0 *) 1 252 parerrcode = 9 ; (* PARAM. *) 1 253 caserrcode = 10 ; (* CASE *) 1 254 pckerrcode = 11 ; (* PACK/UNPK *) 1 255 seterrcode = 12 ; (* SET EXP *) 1 256 mlterrcode = 13 ; (* INTEGER MULT OVERFLOW *) 1 257 eofeolnerrcode = 14 ; (* Is eof or eoln meaningsfull *) 1 258 randinterrcode = 15 ; (* BAD BOUNDS FOR RANDINT *) 1 259 stringlength_range_error = 16 ; 1 260 stringlength_assignment_error = 17 ; 1 261 substring_offset_error = 18 ; 1 262 substring_negative_length_error = 19 ; 1 263 substring_too_long_error = 20 ; 1 264 delete_offset_error = 21 ; 1 265 delete_negative_length_error = 22 ; 1 266 delete_too_long_error = 23 ; 1 267 insert_overflow_error = 24 ; 1 268 bad_string_index = 25 ; 1 269 bad_date_time_parameter = 26 ; 1 270 1 271 (* ** FOR CONFORMANT ARRAY *) 1 272 1 273 confdimw = 4 ; (* FOUR ITS IN PARAMETERS LIST *) 1 274 dopevectorsize = 12 ; 1 275 (* LO HI SIZE SUBSIZE *) 1 276 confdimsize = confdimw * bytesinword ; (* SAME IN BYTES *) 1 277 1 278 (* STACK FRAME DISPL. *) 1 279 1 280 argptw = 26 ; (* SAVE ARG POINTER ENTRY *) 1 281 next_sp_place = 18 ; (* MULTIC STACK_FRAME NEXT_SP *) 1 282 pr4depw = 36 ; (* SAVE PR4 HERE *) 1 283 psrdepw = 56 ; (* PSEUDO REGISTER FOR SET *) 1 284 psrdepb = 224 ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 11 1 285 dlkdepw = 32 ; (* DYNAMIC LINK *) 1 286 fctdeplw = 34 ; (* RETURNED VALUE FOR A FUNCTION *) 1 287 fctdepl = 136 ; 1 288 evareaw = 38 ; (* WORKING EVEN STORAGE *) 1 289 fsbadrw = 68 ; (* FSB STORED HERE FOR I/0 OPERATORS *) 1 290 valplacew = 70 ; (* VALUE TO BE WRITTEN OR POINTER ON IT *) 1 291 longplacew = 73 ; (* REQUESTED LENGTH *) 1 292 scaleplacew = 74 ; (* FOR REAL SCALING FACTOR *) 1 293 longstplacew = 74 ; (* REAL LENGTH FOR STRINGS *) 1 294 1 295 (* INIT ZONE FOR LINKAGE SECTION *) 1 296 (* 8 WORDS HEADER *) 1 297 1 298 firstglobal = 8 ; (* WORD OFFSET OF FIRST GLOBAL (EVEN) *) 1 299 1 300 (* FSB DISPLACEMENTS *) 1 301 1 302 lgfilename = 32 ; 1 303 iotextbuffersize = 400 ; 1 304 fdescsize = 152 ; 1 305 fsbpointersize = 8 ; 1 306 fstatusw = 7 ; 1 307 fposw = 21 ; 1 308 fsizew = 22 ; 1 309 fllengthw = 23 ; 1 310 fstatusb = 28 ; 1 311 fposb = 84 ; 1 312 fsizeb = 88 ; 1 313 fllengthb = 92 ; 1 314 eofw = 4 ; (* WORD BOOLEAN EOF *) 1 315 eofb = 16 ; 1 316 eolnw = 27 ; (* WORD BOOLEAN EOLN *) 1 317 eolnb = 108 ; 1 318 1 319 (* PROFILE *) 1 320 1 321 pclength = 2 ; (* PROFILE COUNTER LENGTH IN WORDS *) 1 322 lpclength = 4 ; (* LONG PROFILE COUNTER LENGTH IN WORDS *) 1 323 phl = 0 ; (* PROFILE HEADER LENGTH *) 1 324 lphl = 13 ; (* LONG PROFILE HEADER LENGTH IN WORDS *) 1 325 1 326 (* RELOCATION CODES *) 1 327 1 328 link18 = '900000000'x ; (* "10010"b *) 1 329 link15 = 'A00000000'x ; (* "10100"b *) 1 330 int18 = 'C00000000'x ; (* "11000"b *) 1 331 self_rel = '880000000'x ; (* "10001"b *) 1 332 int15 = 'C80000000'x ; (* "11001"b *) 1 333 prof = 'D00000000'x ; (* "11010"b *) 1 334 absl = '000000000'x ; (* "0"b *) 1 335 symb = 'B00000000'x ; (* "10110"b *) 1 336 1 337 (* CONSTANTES USED BY SIMONE COMPILER *) { Inserted for SimOne } 1 338 maxchar8 = 255 ; 1 339 mofatherdisp = 1 ; (* DIFFERENCE BETWEEN ADDR OF FATHER WHOSE TYPE IS MONORMOD *) { Inserted for SimOne } 1 340 procfatherdisp = 0 ; (* OR WHOSE TYPE IS PROC *) { Inserted for SimOne } 1 341 procmodlkw = 104 ; { Inserted for SimOne } *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 12 1 342 modynlk = 0 ; { Inserted for SimOne } 1 343 condcounterplace = 16 ; (* BYTES DIP. OF CONDITION COUNTER *) { Inserted for SimOne } 1 344 moarglistw = 6 ; (* DEPLACEMENT OF ARGLIST IN MONITOR OR MODULE PSEUDO_STACK *) { Inserted for SimOne } 1 345 baseprocessdplmt = 100 ; { Inserted for SimOne } 1 346 executionmodplmt = 106 ; { Inserted for SimOne } 1 347 maindplmt = 0 ; 1 348 processlocaldplmt = 96 ; 1 349 (* ENTRY POINTS OF OPERATORS *) { Inserted for SimOne } 1 350 { Inserted for SimOne } 1 351 simainentryplace = -1 ; { Inserted for SimOne } 1 352 simintentryplace = -2 ; { Inserted for SimOne } 1 353 simintreturnplace = -3 ; { Inserted for SimOne } 1 354 processentryplace = -4 ; { Inserted for SimOne } 1 355 settinginactivequeueplace = -5 ; { Inserted for SimOne } 1 356 waitsonsplace = -6 ; { Inserted for SimOne } 1 357 processreturnplace = -7 ; { Inserted for SimOne } 1 358 holdplace = -8 ; { Inserted for SimOne } 1 359 savearglistplace = -9 ; { Inserted for SimOne } 1 360 modulentryplace = -10 ; { Inserted for SimOne } 1 361 monitorentryplace = -11 ; { Inserted for SimOne } 1 362 initcondplace = -12 ; { Inserted for SimOne } 1 363 askforexclusionplace = -13 ; { Inserted for SimOne } 1 364 freeexclusionplace = -14 ; { Inserted for SimOne } 1 365 signalplace = -15 ; { Inserted for SimOne } 1 366 waitplace = -16 ; { Inserted for SimOne } 1 367 emptyplace = -17 ; { Inserted for SimOne } 1 368 lengthplace = -18 ; { Inserted for SimOne } 1 369 priorityplace = -19 ; { Inserted for SimOne } 1 370 vtimeplace = -20 ; { Inserted for SimOne } 1 371 terminateplace = -21 ; { Inserted for SimOne } 1 372 mowaitsonsplace = -22 ; { Inserted for SimOne } 1 373 uniformplace = -23 ; { Inserted for SimOne } 1 374 normalplace = -24 ; { Inserted for SimOne } 1 375 negexpplace = -25 ; { Inserted for SimOne } 1 376 randintplace = -26 ; { Inserted for SimOne } 1 377 pureentryplace = -27 ; 1 378 simextentryplace = -28 ; 1 379 exitplace = -29 ; 1 380 restorprevmoplace = -30 ; 1 381 { Inserted for SimOne } 1 382 lcprocess = 96 ; (* BYTES SIZE OF THE LOCAL VARIABLES IN THE STACK OF A PROCESS *) { Inserted for SimOne } 1 383 { Inserted for SimOne } 1 384 { Inserted for SimOne } 1 385 emptyindex = 4 ; { Inserted for SimOne } 1 386 { Inserted for SimOne } 1 387 (* DEFAULT LENGTH FOR EDITION *) 1 388 deflreal = 24 ; 1 389 deflnum = 12 ; 1 390 deflbool = 4 ; 1 391 deflchar = 1 ; 1 392 1 393 1 394 1 395 (*$PAGE *) 1 396 TYPE 1 397 numberstring = PACKED ARRAY [1..maxdigitsreal] OF char ; 1 398 alfa = PACKED ARRAY [1..alfaleng] OF char ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 13 1 399 alfaid = PACKED ARRAY [1..maxident] OF char ; 1 400 externid = PACKED ARRAY [1..maxexternname] OF char ; 1 401 alfalistptr = ^alfalist ; 1 402 alfalist = RECORD 1 403 previous, next : alfalistptr ; 1 404 name : alfaid 1 405 END ; 1 406 idkinds = (actual, formal, arraybound, exportable, imported) ; 1 407 1 408 (* ACTUAL MEANS STANDARD PASCAL PROC/VARS 1 409* FORMAL USED FOR VAR PARAMETERS 1 410* EXPORTABLE 'DEF' PROC/VARS 1 411* IMPORTED APPEARS IN EXTERNAL LIST. MUST BE REDEFINED *) 1 412 typform = (reel, numeric, scalar, pointer, power, arrays, records, monormod, { Modified for SimOne } 1 413 condition, files, aliastype) ; { Modified for SimOne } 1 414 { Modified for SimOne } 1 415 idklass = (schema, types, konst, proc, vars, field, tagfield, dummyclass) ; 1 416 consttype = (wordconst, dwordconst, alfaconst) ; 1 417 idprocdef = (standdef, forwdef, extdef, initdef, finitdef) ; { Modified for SimOne } 1 418 levrange = 0..maxlevel ; 1 419 alfapt = @alfavalue ; 1 420 alfavalue = RECORD 1 421 nextval : alfapt ; (* NEXT VALUE BOX FOR SAME STRING *) 1 422 alfaval : PACKED ARRAY [1..longalfbox] OF char ; 1 423 longfill : integer ; (* USED PART OF ALFAVAL IN THIS BOX *) 1 424 END ; 1 425 refptr = @reflist ; 1 426 reflist = RECORD 1 427 nextref : refptr ; 1 428 refnbr : integer ; 1 429 refs : ARRAY [1..maxref] OF RECORD 1 430 filen, linen, sttmapind, place : integer ; 1 431 END ; 1 432 END ; 1 433 ctp = @contexttable ; 1 434 setofno = SET OF minno..maxno ; 1 435 stdkind = (stdpure, stdcompiler, stdsol, stdextend, stdcomputer) ; 1 436 typusednames = ARRAY [1..6] OF alfaid ; 1 437 filelocation = (notafile, permanentfile, workfile, localfile, standardfile) ; 1 438 1 439 proclocation = (notpredef, instdpure, instdcompiler, instdsol, 1 440 instdextend, instdcomputer, instdsimone) ; { Modified for SimOne } 1 441 externalitemtype = (extnotresolved, externalarea, exportvar, importvar, 1 442 exportproc, importproc, localproc, mainprogram, remanentfile, 1 443 requiredfile, runtimeentry) ; 1 444 ptexternalitem = ^ externalitem ; 1 445 externalitem = RECORD 1 446 extname : alfaid ; 1 447 extsegname, extgenerator, extentryname : alfaid ; 1 448 extnext : ptexternalitem ; 1 449 extrfile1, extrline1, extrfile2, extrline2 : integer ; 1 450 extdecl : ctp ; 1 451 extitemtype : externalitemtype ; 1 452 extkind : idkinds ; 1 453 extpltdisp : integer ; 1 454 extareadisp : integer ; 1 455 extlong : integer ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 14 1 456 extwantdescs : boolean ; 1 457 END ; 1 458 (* TYPES USED BY SIMONE COMPILER *) { Inserted for SimOne } 1 459 motypes = (module, monitor) ; { Inserted for SimOne } 1 460 objaccessibles = (modul, monit, condit) ; { Inserted for SimOne } 1 461 ensaccessible = SET OF objaccessibles ; { Inserted for SimOne } 1 462 incbloc = (monitormodule, subroutine) ; { Inserted for SimOne } 1 463 { Inserted for SimOne } 1 464 nodeptr = @node ; { Inserted for SimOne } 1 465 { Inserted for SimOne } 1 466 node = RECORD { USED FOR SPACE COMPUTATION } { Inserted for SimOne } 1 467 inthelist, compiled, recursive : boolean ; { Inserted for SimOne } 1 468 sizemax : integer ; { Inserted for SimOne } 1 469 proce : ctp ; { Inserted for SimOne } 1 470 END ; { Inserted for SimOne } 1 471 nodelistptr = @nodelistelem ; { Inserted for SimOne } 1 472 { Inserted for SimOne } 1 473 nodelistelem = RECORD { Inserted for SimOne } 1 474 previousnode, nextnode : nodelistptr ; { Inserted for SimOne } 1 475 elem : nodeptr ; { Inserted for SimOne } 1 476 END ; { Inserted for SimOne } 1 477 { Inserted for SimOne } 1 478 exitptr = @exitelem ; { Inserted for SimOne } 1 479 exitelem = RECORD (* ONE FOR EACH EXIT STATEMENT *) { Inserted for SimOne } 1 480 nextexitelem : exitptr ; { Inserted for SimOne } 1 481 exitdplmt : integer ; { Inserted for SimOne } 1 482 END ; { Inserted for SimOne } 1 483 1 484 ftp = ^schema_token ; 1 485 schema_status = RECORD 1 486 on : boolean ; 1 487 schema_ptr : ctp ; 1 488 current_token : ftp ; 1 489 current_parameter : ctp ; 1 490 END ; 1 491 schema_token_kind = (symbol_token, name_token, int_const_token, char_const_token, real_const_token) ; 1 492 schema_token = RECORD 1 493 next : ftp ; 1 494 CASE kind : schema_token_kind OF 1 495 symbol_token : (tno, tcl : integer) ; 1 496 name_token : (taval : alfaid) ; 1 497 int_const_token : (t_int_value : integer) ; 1 498 real_const_token : (t_real_value : real) ; 1 499 char_const_token : (t_char_value : char) ; 1 500 END ; 1 501 1 502 (* DONT MODIFY CONTEXTABLE DECLARATION 1 503* WITHOUT CHECKING : 1 504* nameplaceincontextable 1 505* AND nxtelplaceincontextable 1 506* IN optimized_procedures.alm *) 1 507 contexttable = RECORD 1 508 name : alfaid ; 1 509 nxtel : ctp ; 1 510 alfathread : ctp ; 1 511 deffile, defline : integer ; 1 512 references : refptr ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 15 1 513 symbolplace : integer ; (* PCK PTR TO SYMBOL NODE IN SYMB TB *) 1 514 symbtablerefs : integer ; (* BACKWARD THREAD OF REFS IN TEXT TO SYMBOL TABLE *) 1 515 CASE klass : idklass OF 1 516 schema : ( 1 517 top_for_schema : integer ; (* CONTEXT AT SHEMA DECLARATION TIME *) 1 518 next_for_schema : ctp ; 1 519 formal_parameter_list : ctp ; 1 520 parameter_count : integer ; 1 521 token_list : ftp ; 1 522 type_description : ctp) ; 1 523 types : ( 1 524 size, cadrage : integer ; 1 525 pack : boolean ; 1 526 tlevel : levrange ; 1 527 objaccedes : ensaccessible ; { TO ALLOW VARIABLES ' DECLARATIONS } { Inserted for SimOne } 1 528 (* *** BEGIN SCHEMA INFO *** *) 1 529 father_schema : ctp ; 1 530 actual_parameter_list : ctp ; 1 531 desc_vector_references : integer ; 1 532 (* *** END SCHEMA INFO *** *) 1 533 CASE form : typform OF 1 534 reel : () ; 1 535 numeric : (npksize, nmin, nmax : integer) ; 1 536 scalar : (spksize : integer ; 1 537 CASE subrng : boolean OF 1 538 false : (fconst, sptcstepw : ctp) ; 1 539 true : (smin, smax : integer ; 1 540 typset : ctp) ;) ; 1 541 pointer : (ptpksize : integer ; 1 542 domain, eltype : ctp) ; 1 543 power : (ppksize : integer ; 1 544 elset : ctp ; 1 545 setlength : integer) ; 1 546 arrays : (aeltype, inxtype : ctp ; 1 547 1 548 CASE conformant : boolean OF 1 549 false : (lo, hi, opt2, subsize : integer) ; 1 550 true : ( 1 551 pthigh, ptlow : ctp ; 1 552 ) ; 1 553 ) ; 1 554 records : (recvar, fstfld : ctp) ; 1 555 files : (feltype : ctp ; 1 556 ) ; 1 557 monormod : (motype : motypes ; { Inserted for SimOne } 1 558 niveau : levrange ; { Inserted for SimOne } 1 559 moaddr, nbparmo : integer ; { Inserted for SimOne } 1 560 ptpar, ptvarloc, ptentr : ctp ; { Inserted for SimOne } 1 561 initmoproc, finitmoproc, blocenglob : ctp) ; { Inserted for SimOne } 1 562 condition : () ; { Inserted for SimOne } 1 563 aliastype : (realtype : ctp) ;) ; 1 564 konst : ( 1 565 succ, contype : ctp ; 1 566 CASE typofconst : consttype OF 1 567 wordconst : (values : integer) ; 1 568 dwordconst : (valreel : real) ; 1 569 alfaconst : (alfadeb : alfapt ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 16 1 570 alfalong, alfalevel, unddeb : integer) ;) ; 1 571 proc : (proctype, formals : ctp ; 1 572 prockind : idkinds ; 1 573 proclevel : levrange ; 1 574 procaddr, segsize, nbparproc, locincode : integer ; 1 575 procisassigned, predefproc, procinscope, pisrefincode : boolean ; 1 576 phasdescriptor : boolean ; (* TRUE IF HAS CONF ARRAY PARAMETERS *) 1 577 ploc : proclocation ; 1 578 procextitem : ptexternalitem ; 1 579 ptypesymbolplace : integer ; (* PACKED PTR TO TYPE BOX IN SYMBOL TB *) 1 580 recur : integer ; { Inserted for SimOne } 1 581 procaccesslevel : levrange ; { Inserted for SimOne } 1 582 processus, pure : boolean ; { Inserted for SimOne } 1 583 chaineentree : ctp ; { Inserted for SimOne } 1 584 procnode : nodeptr ; { Inserted for SimOne } 1 585 procincbloc : incbloc ; (* BLOC CONTAINING THIS PROC *) { Inserted for SimOne } 1 586 procfirstexit : exitptr ; (* TO CHAIN EXIT STATEMENT *) { Inserted for SimOne } 1 587 procfirsttofinit : ctp ; (* FIRST VAR TO BE FINALIZED IN THIS PROCESS, ALWAYS NIL FOR A PROCEDURE *) { Inserted for SimO ne } 1 588 procstackinitsize : integer ; { Inserted for SimOne } 1 589 procwasforwarddef : boolean ; { Inserted for SimOne } 1 590 procdef : idprocdef ; 1 591 pwantdescs : boolean ; (* TRUE IF PROC WAS DECLARED EXT DESCRIPTORS *) 1 592 pdescsaddrplace : integer ; (* PLACE IN STATICS OF PTR TO DESCRS VECTOR - IF PREV. TRUE *) 1 593 procisactive : boolean ; (* TRUE IF COMPILER IS ANALYZING BODY OF THIS PROC *) 1 594 pextcalltrapinfoplace : integer ; (* WORD OFFSET OF TRAP INFO FOR EXT CALL - ONLY IF DESCS *) 1 595 pwantspl1descriptors : boolean) ; (* TRUE IF PL1 DESCRIPTORS NEEDED *) 1 596 vars : (vtype : ctp ; 1 597 vkind : idkinds ; 1 598 vfilelocation : filelocation ; 1 599 vaddr : integer ; 1 600 vdispl, vdescaddr : integer ; 1 601 vlevel : levrange ; 1 602 vlink_is_generated : boolean ; 1 603 visused, visset, visreadonly, varparam, visrefincode : boolean ; 1 604 vnexttofinit : ctp ; (* TO CHAIN VAR TO BE FINIT *) { Inserted for SimOne } 1 605 varmo : boolean ; (* TRUE IF VAR IS DECLARE IN A MONITOR OR A MODULE *) { Inserted for SimOne } 1 606 vfather : ctp ; (* PTR ON THE MONITOR OR THE MODULE CONTAINING VAR *) { Inserted for SimOne } 1 607 vptextitem : ptexternalitem) ; 1 608 field : (fldtype : ctp ; 1 609 fldaddr, bytwidth : integer) ; 1 610 tagfield : (casesize : integer ; 1 611 variants : ctp ; 1 612 CASE tagval : boolean OF 1 613 false : (casetype : ctp ; selectorfield : ctp) ; 1 614 true : (caseval : integer ; firstfield : ctp) ;) ; 1 615 dummyclass : () ; 1 616 END ; (* RECORD CONTEXTTABLE *) 1 617 (* NOW OTHER TYPES *) 1 618 1 619 shrtint = -twoto17..twoto17m1 ; 1 620 bytint = -twoto8..twoto8m1 ; 1 621 norange = minno..maxno ; 1 622 where = (block, cwith, vwith) ; (* USED TO DESCRIBE AN IDENTIFIER *) 1 623 contexte = (data, code, linkage, definition, deccode) ; { Modified for SimOne } 1 624 levtrace = (none, low, medium, high) ; 1 625 (* DONT MODIFY RECIDSCOPE DECLARATION *) *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 17 1 626 withreflist = RECORD 1 627 nbr : 0..maxfield ; 1 628 symbolp : ARRAY [1..maxfield] OF ctp 1 629 END ; 1 630 (* WITHOUT CHECK : *) 1 631 (* recidscopelength IN optimized_procedures.alm *) 1 632 recidscope = RECORD (* ELEMENT OF DISPLAY *) 1 633 fname : ctp ; 1 634 CASE occur : where OF 1 635 block : () ; 1 636 cwith : (creflist : withreflist ; clevel : levrange ; cdspl : integer) ; 1 637 vwith : (vreflist : withreflist ; vdspl : integer ; vpack : boolean) ; 1 638 END (* REC-ID-SCOPE *) ; 1 639 blocknodeptr = @blocknode ; 1 640 labelblockptr = ^labelblock ; (* BOXES FOR LABELS *) 1 641 labelblock = RECORD 1 642 number : integer ; (* LABEL ID *) 1 643 locinbytes : integer ; (* LOCATION IN TEXT SECTION (BYTES) *) 1 644 next : labelblockptr ; (* NEXT IN LABELS LIST *) 1 645 brother : labelblockptr ; (* THREAD FOR LABELS OF SAME BLOCK *) 1 646 procnode : blocknodeptr ; (* PTR TO PROCEDURE NODE *) 1 647 dclfile, dclline : integer ; (* FILE, LINE FOR DECLARATION *) 1 648 deffile, defline : integer ; (* FILE, LINE OF LOCATION *) 1 649 references : refptr ; (* PTR TO REFERENCES BOX(ES) *) 1 650 ref_allowed : RECORD 1 651 ic_from, ic_to : integer 1 652 END ; 1 653 next_in_block : labelblockptr ; 1 654 END ; 1 655 label_pdl_element = RECORD 1 656 previous, next : ^label_pdl_element ; 1 657 first : labelblockptr ; 1 658 END ; 1 659 labdescr = RECORD (* ELEMENT OF LABTAB *) 1 660 labval, lablev, labexit, labch1, labdef : integer ; 1 661 labbox : labelblockptr ; 1 662 END (* REC *) ; 1 663 lab_pdl_ptr = ^lab_pdl_element ; 1 664 lab_pdl_element = RECORD 1 665 previous, next : lab_pdl_ptr ; 1 666 first_in_block : labelblockptr ; 1 667 start : integer 1 668 END ; 1 669 typofsymb = (irrelsy, begsy, endsy) ; 1 670 occurence = RECORD (* ELEMENT OF UNDLAB *) 1 671 succ, place : shrtint ; 1 672 END (* REC *) ; 1 673 (* TYPES USED IN CODE GENERATION *) 1 674 1 675 (* ALM INSTRUCTIONS , I+MNEMONIC. INSTRUCTIONS ARE GROUPED BY FUNCTIONS. IN 1 676* EACH FUNCTION, THE ORDER IS THE ONE OF THE AL39 MANUAL EXCEPT FOR EIS 1 677* MULTIWORD. IN THIS LAST GROUP, THE ORDER MAKES EASIER THE CODE GENERATION *) 1 678 (* FIXED-POINT STANDARD INSTRUCTIONS ****** *) 1 679 instword = (ieaa, ieaq, ieax0, ieax1, ieax2, ieax3, ieax4, ieax5, 1 680 ieax6, ieax7, ilca, ilcaq, ilcq, ilcx0, ilcx1, ilcx2, 1 681 ilcx3, ilcx4, ilcx5, ilcx6, ilcx7, ilda, ildac, ildaq, 1 682 ildi, ildq, ildqc, ildx0, ildx1, ildx2, ildx3, ildx4, *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 18 1 683 ildx5, ildx6, ildx7, ilreg, ilxl0, ilxl1, ilxl2, ilxl3, 1 684 ilxl4, ilxl5, ilxl6, ilxl7, isreg, ista, istac, istacq, 1 685 istaq, istc1, istc2, istcd, isti, istq, istt, istx0, 1 686 istx1, istx2, istx3, istx4, istx5, istx6, istx7, istz, 1 687 isxl0, isxl1, isxl2, isxl3, isxl4, isxl5, isxl6, isxl7, 1 688 ialr, ials, iarl, iars, illr, ills, ilrl, ilrs, 1 689 iqlr, iqls, iqrl, iqrs, iada, iadaq, iadl, iadla, 1 690 iadlaq, iadlq, iadlx0, iadlx1, iadlx2, iadlx3, iadlx4, iadlx5, 1 691 iadlx6, iadlx7, iadq, iadx0, iadx1, iadx2, iadx3, iadx4, 1 692 iadx5, iadx6, iadx7, iaos, iasa, iasq, iasx0, iasx1, 1 693 iasx2, iasx3, iasx4, iasx5, iasx6, iasx7, iawca, iawcq, 1 694 isba, isbaq, isbla, isblaq, isblq, isblx0, isblx1, isblx2, 1 695 isblx3, isblx4, isblx5, isblx6, isblx7, isbq, isbx0, isbx1, 1 696 isbx2, isbx3, isbx4, isbx5, isbx6, isbx7, issa, issq, 1 697 issx0, issx1, issx2, issx3, issx4, issx5, issx6, issx7, 1 698 iswca, iswcq, impf, impy, idiv, idvf, ineg, inegl, 1 699 icmg, icmk, icmpa, icmpaq, icmpq, icmpx0, icmpx1, icmpx2, 1 700 icmpx3, icmpx4, icmpx5, icmpx6, icmpx7, icwl, iszn, isznc, 1 701 (* FLOATING-POINT INSTRUCTIONS ************* *) 1 702 idfld, ifld, idfst, idfstr, ifst, ifstr, idfad, idufa, 1 703 ifad, iufa, idfsb, idufs, ifsb, iufs, idfmp, idufm, 1 704 ifmp, iufm, idfdi, idfdv, ifdi, ifdv, ifneg, ifno, 1 705 idfrd, ifrd, idfcmg, idfcmp, ifcmg, ifcmp, iade, ifszn, 1 706 ilde, iste, 1 707 (* BOOLEAN INSTRUCTIONS ******************** *) 1 708 iana, ianaq, ianq, iansa, iansq, iansx0, iansx1, iansx2, 1 709 iansx3, iansx4, iansx5, iansx6, iansx7, ianx0, ianx1, ianx2, 1 710 ianx3, ianx4, ianx5, ianx6, ianx7, iora, ioraq, iorq, 1 711 iorsa, iorsq, iorsx0, iorsx1, iorsx2, iorsx3, iorsx4, iorsx5, 1 712 iorsx6, iorsx7, iorx0, iorx1, iorx2, iorx3, iorx4, iorx5, 1 713 iorx6, iorx7, iera, ieraq, ierq, iersa, iersq, iersx0, 1 714 iersx1, iersx2, iersx3, iersx4, iersx5, iersx6, iersx7, ierx0, 1 715 ierx1, ierx2, ierx3, ierx4, ierx5, ierx6, ierx7, icana, 1 716 icanaq, icanq, icanx0, icanx1, icanx2, icanx3, icanx4, icanx5, 1 717 icanx6, icanx7, icnaa, icnaaq, icnaq, icnax0, icnax1, icnax2, 1 718 icnax3, icnax4, icnax5, icnax6, icnax7, 1 719 (* POINTER REGISTERS INSTRUCTIONS ********** *) 1 720 ieasp0, ieasp1, ieasp2, ieasp3, ieasp4, ieasp5, ieasp6, ieasp7, 1 721 ieawp0, ieawp1, ieawp2, ieawp3, ieawp4, ieawp5, ieawp6, ieawp7, 1 722 iepbp0, iepbp1, iepbp2, iepbp3, iepbp4, iepbp5, iepbp6, iepbp7, 1 723 iepp0, iepp1, iepp2, iepp3, iepp4, iepp5, iepp6, iepp7, 1 724 ilpri, ilprp0, ilprp1, ilprp2, ilprp3, ilprp4, ilprp5, ilprp6, 1 725 ilprp7, ispbp0, ispbp1, ispbp2, ispbp3, ispbp4, ispbp5, ispbp6, 1 726 ispbp7, ispri, ispri0, ispri1, ispri2, ispri3, ispri4, ispri5, 1 727 ispri6, ispri7, isprp0, isprp1, isprp2, isprp3, isprp4, isprp5, 1 728 isprp6, isprp7, iadwp0, iadwp1, iadwp2, iadwp3, iadwp4, iadwp5, 1 729 iadwp6, iadwp7, iepaq, 1 730 (* TRANSFER INSTRUCTIONS ******************* *) 1 731 icall6, iret, irtcd, iteo, iteu, itmi, itmoz, itnc, 1 732 itnz, itov, itpl, itpnz, itra, itrc, itrtf, itrtn, 1 733 itsp0, itsp1, itsp2, itsp3, itsp4, itsp5, itsp6, itsp7, 1 734 itss, itsx0, itsx1, itsx2, itsx3, itsx4, itsx5, itsx6, 1 735 itsx7, ittf, ittn, itze, 1 736 (* MISCELLANEOUS INSTRUCTIONS ************** *) 1 737 irccl, idrl, ixec, ixed, imme, imme2, imme3, imme4, 1 738 inop, ipuls1, ipuls2, isra, isbar, ibcd, igtb, 1 739 (* PRIVILEGED INSTRUCTIONS ***************** *) *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 19 1 740 ilbar, ilcpr, ildbr, ildt, ilptp, ilptr, ilra, ilsdp, 1 741 ilsdr, ircu, iscpr, iscu, isdbr, isptp, isptr, issdp, 1 742 issdr, icamp, icams, irmcm, irscr, irsw, icioc, ismcm, 1 743 ismic, isscr, iabsa, idis, 1 744 (* SINGLE WORD EIS INSTRUCTIONS ************ *) 1 745 iaar0, iaar1, iaar2, iaar3, iaar4, iaar5, iaar6, iaar7, 1 746 ilar0, ilar1, ilar2, ilar3, ilar4, ilar5, ilar6, ilar7, 1 747 ilareg, ilpl, inar0, inar1, inar2, inar3, inar4, inar5, 1 748 inar6, inar7, iara0, iara1, iara2, iara3, iara4, iara5, 1 749 iara6, iara7, iarn0, iarn1, iarn2, iarn3, iarn4, iarn5, 1 750 iarn6, iarn7, isar0, isar1, isar2, isar3, isar4, isar5, 1 751 isar6, isar7, isareg, ispl, ia4bd, ia6bd, ia9bd, iabd, 1 752 iawd, is4bd, is6bd, is9bd, isbd, iswd, 1 753 (* MULTI-WORDS EIS INSTRUCTIONS ************ *) 1 754 itct, itctr, icmpc, iscm, iscmr, imlr, imrl, imvt, 1 755 icsl, icsr, isztl, isztr, iscd, iscdr, icmpn, imvn, 1 756 icmpb, ibtd, idtb, iad2d, isb2d, imp2d, idv2d, imve, 1 757 imvne, iad3d, isb3d, imp3d, idv3d, 1 758 (* REPEAT INSTRUCTIONS ********************* *) 1 759 irpd, irpl, irpt, 1 760 (* STBA, STBQ ,STCA AND STCB INSTRUCTIONS ** *) 1 761 istba, istbq, istca, istcq) ; 1 762 (* ADDRESS MODIFICATIONS , *) 1 763 (* T+MNEMONIC AND Y USED FOR * , *) 1 764 (* TZ = ILLEGAL MODIFIER *) 1 765 (* BINARY CODE IS OBTAINED WITH THE ORD FUNCTION *) 1 766 tag = (tn, tau, tqu, tdu, tic, tal, tql, tdl, (* R MOD *) 1 767 tx0, tx1, tx2, tx3, tx4, tx5, tx6, tx7, 1 768 tny, tauy, tquy, tz23, ticy, taly, tqly, tz27, (* RI MOD *) 1 769 tx0y, tx1y, tx2y, tx3y, tx4y, tx5y, tx6y, tx7y, 1 770 tf1, titp, tz42, tits, tsd, tscr, tf2, tf3, (* IT MOD *) 1 771 tci, ti, tsc, tad, tdi, tdic, tid, tidc, 1 772 tz60, tyau, tyqu, tydu, tyic, tyal, tyql, tydl, (* IR MOD *) 1 773 tyx0, tyx1, tyx2, tyx3, tyx4, tyx5, tyx6, tyx7) ; 1 774 register = (nreg, pr1, pr2, pr5, pr7, pr3, pr0, prstatic, prlink, pr6, 1 775 nxreg, x0, x1, x2, x3, x4, x5, x6, x7, 1 776 xbidon, ra, rq, raq, reaq, psr, re, ri) ; (* USED REGISTERS *) 1 777 preg = nreg..pr6 ; (* POINTER REGISTERS - SUBRANGE OF REGISTER *) 1 778 mreg = tn..tx7 ; (* ADDRESS MODIFICATIONS WITHOUT INDIRECTION *) 1 779 (* - SUBRANGE OF TAG *) 1 780 (* SUBRANGES OF INSTWORD USED IN CODE GENERATION *) 1 781 istand = ieaa..iswd ; (* STANDARD INSTRUCTIONS *) 1 782 ieism = icmpc..idv3d ; (* EIS MULTIWORD INSTRUCTIONS *) 1 783 irept = irpd..irpt ; (* REPEAT INSTRUCTIONS *) 1 784 istobc = istba..istcq ; (* STORE BYTES OR CHARACTERS INSTRUCTIONS *) 1 785 lgcar = (l4, l6, l9) ; (* CHARACTER DATA TYPE - NUMBER = LENGTH IN BITS *) 1 786 typsig = (flls, fxls, fxts, fxns) ; (* SIGN AND DECIMAL TYPES,FL=FLOATING-POINT, *) 1 787 (* FX=FIXED-POINT,LS= LEADING SIGN *) 1 788 (* TS= TRAILING SIGN *) 1 789 (* NS= NO SIGN *) 1 790 (* BIT VALUES FOR CODE GENERATION *) 1 791 zptr = (p0t0r0, p0t0r1, p0t1r0, p0t1r1, p1t0r0, p1t0r1, p1t1r0, p1t1r1) ; (* BITS 0,9 *) 1 792 (* AND 10 OF EIS MULTIWORD INSTRUCTIONS *) 1 793 (* P=SIGN OR FILL BIT , T=TRUNCATION BIT , *) 1 794 (* R=ROUNDING FLAG BIT *) 1 795 zabc = (a0b0c0, a0b0c1, a1b0c0, a1b0c1, a0b1c0, a0b1c1, a1b1c0, a1b1c1) ; (* BITS 8,9 *) 1 796 (* AND 10 OF REPEAT INSTRUCTIONS *) *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 20 1 797 (* A AND B = USE OF DELTA FIELD , *) 1 798 (* C = USE OF X0 REGISTER *) 1 799 zari = (a0r0i0, a0r0i1, a0r1i0, a0r1i1, a1r0i0, a1r0i1, a1r1i0, a1r1i1) ; (* BITS 0,1 *) 1 800 (* AND 2 OF EIS MODIFICATION FIELDS *) 1 801 (* A=USE OF ADDRESS REGISTER , *) 1 802 (* R = OPERAND LENGTH FIELD GIVES A REGISTER *) 1 803 (* I= USE OF INDIRECTION FOR *) 1 804 (* THE OPERAND DESCRIPTOR *) 1 805 1 806 (* USED ONLY IN CONDITIONNAL COMPILATION FOR COMPILER'S CONTROLS *) 1 807 forset = (s0, s1, s2, s3, s4, s5) ; (* USED TO GIVE FORBIDDEN TAGS/PTR FOR ISTAND/ *) 1 808 (* IEISM *) 1 809 halfword = integer ; (* USED FOR FICHINTER *) 1 810 binartype = PACKED ARRAY [1..maxfich] OF halfword ; (* FICHINTER *) 1 811 binartypeptr = ^binartype ; 1 812 attrkind = (varbl, lcond, lval, chain, sval) ; 1 813 attraccess = (direct, pointee, pointable, encode) ; 1 814 destination = (inacc, inq, inaq, inpsr, inpr, out) ; 1 815 setarray = ARRAY [0..bornesupset] OF integer ; 1 816 regpt = @regbox ; 1 817 regbox = RECORD (* BOX DESCRIBING A LOADED REGISTER *) 1 818 (* AND MEMORIZING SAVING INFORMATIONS *) 1 819 sregister : register ; (* LOADED REGISTER *) 1 820 saveplace : integer ; (* BYTES DISP. /PR6 OF SAVING STORAGE *) 1 821 nextbloc : regpt ; (* POINTS PREVIOUS BLOC.(NOT NEXT.) *) 1 822 predbloc : regpt ; (* POINTS NEXT BLOC. (NOT PRED.) *) 1 823 END ; (* REGBOX *) 1 824 wcstpt = @iunresolv ; 1 825 rcstpt = @runresolv ; 1 826 lcstpt = @liunresolv ; 1 827 llcstpt = @lliunresolv ; 1 828 iunresolv = RECORD 1 829 valu : integer ; 1 830 cstplace : integer ; (* ENTRY IN UNDLAB *) 1 831 cstnext : wcstpt ; (* LINKAGE OF WORD CSTES *) 1 832 END ; 1 833 runresolv = RECORD 1 834 rvalu : real ; 1 835 rplace : integer ; (* ENTRY IN UNDLAB *) 1 836 rnext : rcstpt ; (* LINKAGE OF REAL CSTES *) 1 837 END ; 1 838 liunresolv = RECORD 1 839 lvalu : setarray ; 1 840 lplace : integer ; (* ENTRY IN UNDLAB *) 1 841 lnext : lcstpt ; (* LINKAGE OF LONG CSTES *) 1 842 END ; 1 843 lliunresolv = RECORD 1 844 llvalu : setarray ; (* SET CSTE *) 1 845 llplace : integer ; (* ENTRY ON UNDLAB *) 1 846 llnext : llcstpt ; (* LINKAGE OF SET CSTES *) 1 847 END ; 1 848 1 849 attr = RECORD 1 850 1 851 typtr : ctp ; (* TYPE OF DESCRIBED ITEM *) 1 852 CASE kind : attrkind OF 1 853 *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 21 1 854 varbl : ( (* ITEM IS ANYWHERE IN STORAGE *) 1 855 vlev : levrange ; (* DEFINITION LEVEL *) 1 856 basereg : preg ; (* BASIS TO ACCES ITEM, *) 1 857 (* OR ITS TO ITEM IF POINTABLE *) 1 858 basebloc : regpt ; 1 859 (* POINTS THE BOX DESCRIBING BASEREG; *) 1 860 (* NIL FOR PR4,PR6 *) 1 861 dplmt : integer ; (* BYTES DISPLACEMENT TO ADD AT FINAL ADDRESS *) 1 862 inxreg : register ; (* MODIFICATION REGISTER CONTAINING WORDS DISP *) 1 863 (* RA ==> A 18..35 USED *) 1 864 (* RQ ==> Q 18..35 USED *) 1 865 (* XI ==> INDEX REGISTER *) 1 866 (* NXREG NO MODIFIER *) 1 867 inxbloc : regpt ; (* POINTS BOX DESCRIBING INXREG *) 1 868 inxmem : integer ; (* BYTES DISPLACEMENT/PR6 OF A STORAGE WORD *) 1 869 (* CONT. IN BITS 18..35 A WORD OFFSET SIGNED *) 1 870 inxmemrw : boolean ; (* TRUE IF INXMEM CAN BE WRITTEN *) 1 871 access : attraccess ; 1 872 1 873 (* DIRECT ITEM=[[BASIS]+[INDEX]+DPLMT+[INXMEM]] BASIS=PR4/PR6 1 874* POINTEE SAME BUT BASIS= ANY POINTER REGISTER 1 875* POINTABLE ITEM=[[[BASIS]+ITSDPLMT]+[INDEX]+DPLMT+[INXMEM]] 1 876* ENCODE ITEM GENERATEA IN CODE *) 1 877 itsdplmt : integer ; (* BYTES DISP OF AN ITS EVEN BOUNDARY *) 1 878 pckd : boolean ; (* TRUE IF CONTAINING STRUCTURE WAS PACKED *) 1 879 nameaddr : ctp ; (* PTR TO NAME OF CONCERNED VAR OR FIELD *) 1 880 descreg : preg ; (* PTR TO DESCRIPTOR *) 1 881 descbloc : regpt ; (* BOX FOR THIS POINTER *) 1 882 vmo : boolean ; (* TRUE IF INTERNAL VAR OF MONITOR OR MODULE ACCESS BY PR5 *) { Inserted for SimOne } 1 883 temporary : boolean ; (* TRUE IF THIS VARIABLE IS THE RESULT OF AN EXPRESSION, 1 884* ALLOCATED IN STACK (USED FOR RESULT OF STRING EXPRESSIONS *) 1 885 ) ; (* END VARBL *) 1 886 1 887 lval : ( (* ITEM IS LOADED IN A *) 1 888 (* REGISTER RA,RQ,RAQ,REAQ,PSR *) 1 889 ldreg : register ; (* LOADED REGISTER *) 1 890 ldregbloc : regpt ; (* POINTS THE BOX DESCRIBING LDREG *) 1 891 psrsize : integer ; (* SIZE MEANINGSFULL IN BYTES OF PSR IF LOADED *) 1 892 ) ; (* END LVAL *) 1 893 1 894 chain : ( (* ITEM DESCRIBED IS A CHARACTER STRING CONSTANT *) 1 895 (* GENERATED AT THE END OF CODE *) 1 896 (* (WORD BOUNDARY ALIGNED) *) 1 897 alfactp : ctp ; (* POINTS THE (KONST,ALFACONST) BOX ASSOCIATED *) 1 898 ) ; (* END CHAIN *) 1 899 1 900 sval : ( (* ITEM DESCRIBED IS A COMPUTABLE VALUE *) 1 901 (* BY THE COMPILER *) 1 902 val : integer ; (* WORD CONSTANT *) 1 903 rsval : real ; (* FLOAT CONSTANT *) 1 904 valpw : setarray ; (* SET CONSTANT *) 1 905 longv : integer ; (* BYTES LENGTH MEANINGSFULL IN VALPW *) 1 906 ) ; (* END SVAL *) 1 907 1 908 lcond : ( (* ITED DESCRIBED IS A BOOLEAN EITHER LOADED OR *) 1 909 (* KNOWN ONLY BY THE SETTING OF INDICATORD *) 1 910 accbloc : regpt ; (* POINTS BOX DESCRIBING RA IF USED *) *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 22 1 911 accbool : boolean ; (* TRUE <==> RA IS USED TO KEEP LCOND *) 1 912 transf : integer ; (* GIVES THE SUITABLE INDICATORS TESTING *) 1 913 ) ; (* END LCOND *) 1 914 1 915 END ; (* RECORD ATTR *) 1 916 1 917 typepr = (epp, spri, lprp) ; (* FOR PR. INST *) 1 918 typix = (adlx, adx, sxl, lxl) ; (* FOR XI INST *) 1 919 typeofop = (load, sub, shiftl, add, neg, cmp, stor) ; (* FOR A,Q,AQ,EAQ INST *) 1 920 statearray = ARRAY [register] OF boolean ; (* STATE OF REGISTERS *) 1 921 1 922 (* STATEMENT MAP *) 1 923 1 924 sttmapptr = @sttmap ; 1 925 sttmap = ARRAY [1..30000] OF 1 926 RECORD 1 927 word1 : integer ; 1 928 word2 : integer 1 929 END ; 1 930 1 931 (* PROFILE COUNTERS AREA *) 1 932 1 933 profareaptr = @profarea ; 1 934 profarea = ARRAY [0..60000] OF integer ; 1 935 1 936 (* BLOCK NODE *) 1 937 1 938 blocktype = (procblock, withblock) ; 1 939 vararea = (statics, locals) ; 1 940 blocknode = RECORD 1 941 father, brother, son : blocknodeptr ; (* BLOCKS TREE *) 1 942 codebegin, codeend : integer ; (* OFFSETS IN STATEMENT MAP *) 1 943 first : ctp ; (* PTR TO FIRST DECLARED SYMBOL *) 1 944 CASE blocktp : blocktype OF 1 945 procblock : ( 1 946 blockbox : ctp ; (* SYMBOL BLOCK FOR PROCEDURE *) 1 947 structureplace : integer ; (* OFFSET OF ENTRY STRUCTURE *) 1 948 firstlabel : labelblockptr ; (* PTR TO FIRST LABEL *) 1 949 nextproc : blocknodeptr ; (* NEXT BLOCK *) 1 950 hdrfil, hdrind, hdrlen, hdrlin : integer ; (* SOURCE OF HEADER *) 1 951 ) ; 1 952 withblock : ( 1 953 wbase : vararea ; 1 954 wdispl : integer ; (* OFFSET *) 1 955 windirect : boolean ; 1 956 wstrfile, wstrindex, wstrlength : integer ; 1 957 recordptr : ctp ; 1 958 ) ; 1 959 END ; 1 960 1 961 (* CONDITIONNAL COMPILATION MECHANISM *) 1 962 1 963 condaddr = ^condbox ; 1 964 condbox = RECORD 1 965 condname : alfaid ; 1 966 nextcond : condaddr ; 1 967 active, activated, setinargs : boolean *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 23 1 968 END ; 1 969 1 970 1 971 (* ARRAY OF POINTERS TO USED NAMES - FOR "-list" OPTION *) 1 972 1 973 usednamesarray = PACKED ARRAY [0..maxwseg] OF ctp ; 1 974 usednamesptr = @usednamesarray ; 1 975 1 976 1 977 (* END INCLUDE FILE CONSTTYPE.incl.pascal *) 1 978 246 247 248 249 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 24 250 251 VAR 252 (* REDEFINE IMPORTED VARIABLES *) 253 (* FROM STATE *) 254 asscheck : boolean ; 255 divcheck : boolean ; 256 errorctp : ctp ; 257 gattr : attr ; 258 inputctp : ctp ; 259 inxcheck : boolean ; 260 outputctp : ctp ; 261 stattrace : levtrace ; 262 (* FROM DECLARE *) 263 building_from_schema : schema_status ; 264 decltrace : levtrace ; 265 externallistheader : ptexternalitem ; 266 forbidden_id_list : alfalistptr ; 267 hdrfile : integer ; 268 hdrindex : integer ; 269 hdrlength : integer ; 270 hdrline : integer ; 271 filpts : ARRAY [0..fillimit] OF ctp ; 272 filtop : integer ; 273 lc : integer ; 274 lkc : integer ; 275 symbtabl : boolean ; 276 (* FROM GENERE *) 277 fichinter : ^binartype ; 278 genetrace : levtrace ; 279 ic : integer ; 280 illegal_generation : boolean ; 281 outcode : boolean ; 282 writecode : boolean ; 283 284 (* DEFINE EXPORTABLE VARIABLES *) 285 alfaptr : ctp ; (* CHAR'S STRINGS TYPE POINTER *) 286 anytrace : levtrace ; 287 aval : alfaid ; (* OUTPUT OF INSYM BOL *) 288 boolptr : ctp ; (* BOOLEAN TYPE POINTER *) 289 boxheader : PACKED ARRAY [1..120] OF char ; (* USED TO PRINT *) 290 (* BOXES IN TRACE ENVIRONEMENT *) 291 bufval : ARRAY [1..maxval] OF char ; (* OUTPUT OF INSYMBOL *) 292 ch8flag : boolean ; 293 check_id : boolean ; 294 charptr : ctp ; (* CHAR TYPE POINTER *) 295 chnix : integer ; (* POINTS THE HEAD OF *) 296 (* FREE LIST IN UNDLAB *) 297 cl : integer ; (* OUTPUT OF INSYMBOL *) 298 codelist : boolean ; (* TRUE IF "-list" OPTION *) 299 conint : integer ; (* OUTPUT OF INSYMBOL *) 300 conreel : real ; (* " " " *) 301 ctptr : ctp ; (* OUTPUT OF SRCHREC AND SEARCH *) 302 currentnode : blocknodeptr ; (* PTR TO CURRENT PROC NODE *) 303 declarationpart : boolean ; 304 display : ARRAY [0..displimit] OF recidscope ; 305 306 (* EACH ENTRY (0..TOP) IS THE BEGINNING OF A LIST OF *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 25 307* IDENTIFIERS IN CONTEXTTABLE. 308* EACH LIST CORRESPONDS 309* EITHER AT A LEVEL ( PROC NESTED) 310* EITHER AT A SCOPE DUE TO A WITH 311* THE ORDER OF SCANNING GIVES THE PASCAL SCOPE *) 312 disx : integer ; (* FIRST FREE ENTRY IN DISPLAY *) 313 (* TO DECIDE BETWEEN DIGIT.. *) 314 (* OR DIGIT.DIGIT IN INSYMBOL *) 315 environt : contexte ; 316 (* DATA, CODE , AND SO ON.. *) 317 envstandard : stdkind ; 318 errcl : ARRAY [norange] OF typofsymb ; 319 (* ERROR RECOVERY IN PASCAL PROGRAM *) 320 (* (NOT IN TYPE PART) *) 321 errorflag : ptexternalitem ; 322 errorsfound : ARRAY [0..maxerpg] OF SET OF 0..maxset ; 323 (* SUMMARY OF ENCOUNTERED ERRORS *) 324 (* DURING THETOTAL COMPILATION *) 325 errtotal : integer ; 326 (* GIVES TOTAL NUMBER OF *) 327 (* ENCOUNTERED ERRORS *) 328 exportablecode : boolean ; 329 extcalltrapplace : integer ; (* IF NON NULL BYTE DISP IN LINK OF LINK TO EXT CALL TRAP PROC *) 330 fastoperator : boolean ; (* INIT IN CARTEEXEC. *) 331 (* FORCES FAST OPERATORS TO BE CALLED *) 332 (* USED IN GENERE *) 333 firstcond : condaddr ; (* PRT TO FIRST CONDITIONNAL VARIABLE BOX *) 334 forbidden_id : alfaid ; (* IDENTIFIER FORBIDDEN IF CHECK_ID IS TRUE *) 335 init_fsb_trap_flag : boolean ; (* TRUE IF FSB INITIALIZED BY F.REF. TRAP *) 336 init_fsb_trap_info_place, (* BYTE DISP IN TEXT OF OINFO FOR THIS TRAP *) 337 init_fsb_trap_links_place, (* BYTE DISP IN LINK OF LINKS FOR THIS TRAP *) 338 init_fsb_trap_number_of_files : integer ; (* NBR OF FILES INIT. BY THIS TRAP *) 339 inputflag : ptexternalitem ; (* #0 IF INPUT IS IN PRG. PARAM. *) 340 interactive : boolean ; (* TRUE IF INTERACTIVE MODE *) 341 intptr : ctp ; (* INTEGER TYPE POINTER *) 342 iowarnings : boolean ; (* TRUE IF IO WARNINGS WANTED (DEFAULT) *) 343 ival : integer ; (* OUTPUT OF INSYMBOL *) 344 lamptr : ctp ; (* POINTS EMPTY SET TYPE *) 345 lastproc : blocknodeptr ; (* PTR TO NODE FOR LAST GENERATED PROC *) 346 level : levrange ; 347 liglues : integer ; (* TOTAL READ LINES COUNTER *) 348 349 linkswordcount : integer ; (* WORD COUNT FOR LINKS GENERATION *) 350 listyes : boolean ; (* TRUE IF LISTING REQUE STED *) 351 longchaine : integer ; (* LGTH USED IN BUFVAL *) 352 longprofile : boolean ; (* TRUE IF LONG_PROFILE OPTION *) 353 longstring : integer ; (* LENGTH OF STRING IN CONALFA *) 354 majmin : ARRAY [0..127] OF integer ; 355 mapswitch : boolean ; (* TRUE IF STATEMEMNT MAP NEEDED *) 356 maxstring_ptr : ctp ; (* PTR TO MAXSTRING PREDEFINED CONSTANT *) 357 mpcogerr, mpcogin, mpcogout : text ; 358 next : ctp ; (* LAST ITEM IN CONTTEXTTABLE *) 359 (* (NOT ALLWAYS) *) 360 nilptr : ctp ; (* NIL POINTER TYPE POINTER *) 361 no : integer ; (* OUTPUT OF IN SYMBOL *) 362 no_compilation_warnings : boolean ; 363 outputflag : ptexternalitem ; (* #0 IF OUTPUT IS IN PRG. PARAM. *) *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 26 364 pageserrors : ARRAY [0..maxerpg] OF SET OF 0..maxset ; (* TO KEEP PAGES *) 365 pascalfrench : boolean ; 366 pnumptr : ctp ; (* NUM. SET TYPE POINTER *) (* WHERE ARE ERRS *) 367 profilewordcount : integer ; (* TOTAL PROFILE COUNTERS WORD COUNT *) 368 profptr : profareaptr ; (* PTR TO PROFILE COUNTERS GENERATION AREA *) 369 progname : alfaid ; (* NAME OF PRG.; FILLED IN PROGDECL *) 370 programnode : blocknodeptr ; (* PTR TO FIRST NODE OF PROGRAM *) 371 realptr : ctp ; (* REAL TYPE POINTER *) 372 rval : real ; (* OUTPUT OF INSYMBOL *) 373 selectivetable : boolean ; (* TRUE IF SOME SYMBOL TABLES REQUIRED *) 374 sourceindex : integer ; (* INDEX IN SOURCE STRING *) 375 sourcenbr : integer ; (* CURRENT SOURCE NO *) 376 startic : integer ; (* INDEX OF FIRST NON PROFILE INSTR OF CURR STTMT *) 377 staticswordcount : integer ; (* TOTAL STATICS WORD COUNT *) 378 statnbr : integer ; (* TOTAL NBR OF STATEMENTS IN STT MAP *) 379 string_ptr : ctp ; (* PTR TO STANDARD STRING FORMAT *) 380 sttfile : integer ; (* FILE NO OF CURR STTMT *) 381 sttindex : integer ; (* INDEX IN SOURCE OF CURR STTMT *) 382 sttline : integer ; (* LINE NO OF CURR STTMT *) 383 sttplace : integer ; (* LOC FOR CURRENT STATEMENT *) 384 symbolfile : integer ; (* SOURCE FILE OF CURRENT SYMBOL *) 385 symbolindex : integer ; (* INDEX IN SOURCE OF CURR SYMBOL *) 386 symbolline : integer ; (* SOURCE LINE OF CURRENT SYMBOL *) 387 symbolmap : boolean ; (* TRUE IF SYMBOLS MAP REQUESTED *) 388 textfilectp : ctp ; (* TEXT FILE TYPE POINTER *) 389 top : integer ; (* LAST USED ENTRY IN DISPLAY *) 390 undecptr : ctp ; (* FOR UNDEFINED VARS *) 391 undlab : ARRAY [1..undmax] OF occurence ; 392 (* USED TO KEEP SEVERAL LISTS *) 393 (* OF UNRESOLVED REFERENCES *) 394 usednames : typusednames ; 395 version : integer ; (* CURRENT RELEASE OF THE COMPILER *) 396 xc : integer ; (* COUNTER FOR GLOBALS *) 397 xrefneed : boolean ; (* TRUE IF CROSS REFERENCES USED *) 398 399 (* DEFINE INTERNALLY USED VARIABLES *) 400 adrligic : integer ; 401 adrliglc : integer ; 402 (* USED IN ORDER TO PRINT COUNTERS *) 403 (* AT BEGINNING OF EACH LINE *) 404 beginline : boolean ; (* TRUE IF READING BEGINNING OF SOURCE LINE *) 405 brieftable : boolean ; (* TRUE IF BRIEF TABLE NEEDED *) 406 bufold, bufnew : PACKED ARRAY [1..maxsliceline] OF char ; 407 ch : char ; (* OUTPUT OF NEXTCH, INPUT OF INSYMBOL *) 408 chcnt : integer ; (* COLUMN NUMBER IN A SOURCE LINE *) 409 checks : boolean ; (* INIT IN CARTEEXEC OR IN MAIN *) 410 column : integer ; (* CURRENT COLUMN IN SOURCE LINE *) 411 compencours : boolean ; 412 currdate : alfa ; (* CURRENT DATE DD**MM**YY *) 413 cursttmap : sttmapptr ; (* PTR TO CURRENT STT MAP STRUCTURE *) 414 digits : SET OF char ; (* 0..9 *) 415 dpoint : boolean ; 416 end_statement : boolean ; (* TRUE IF STTMAP HAS BEEN GENERATED FOR CURR STT *) 417 erredited : ARRAY [0..maxerpg] OF SET OF 0..maxset ; 418 errinx : integer ; 419 errlist : ARRAY [1..maxerrline] OF 420 RECORD *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 27 421 pos, nmr : integer ; (* TO KEEP ERR NUMBERS AND POSITIONS *) 422 END ; 423 err257 : boolean ; 424 (* FLAG FOR A LINE TOO LONG *) 425 err149 : boolean ; (* FLAG *) 426 filetoprint : integer ; (* FILE NBR TO PRINT AT THE BEGINNING OF A SOURCE LINE *) 427 iligne : integer ; (* COUNTER OF LINES ON A PAGE *) 428 instring : boolean ; (* TRUE IF IN A STRING *) 429 (* IN INSYMBOL AND NEXTCH *) 430 incomment : boolean ; (* TRUE IF IN A COMMENT *) 431 lastfile : integer ; (* FILE OF LAST EDITED LINE ON ERROR FILE *) 432 lastlig : integer ; (* LAST EDITED LINE ON ERROR FILE *) 433 letters : SET OF char ; 434 linetoprint : integer ; (* LINE NBR TO PRINT AT THE BEGINNING OF A SOURCE LINE *) 435 longpad : integer ; (* '' " IN BUFVAL *) 436 mapptr : sttmapptr ; (* PTR TO STATEMENT MAP GENERATION AREA *) 437 nbccond : integer ; (* NESTED CONDITIONAL COMP *) 438 oldfile : integer ; (* FILE OF PREVIOUS STATEMENT *) 439 oldic : integer ; (* IC OF PREVIOUS STATEMENT *) 440 oldindex : integer ; (* INDEX OF OLD STATEMENT MAP *) 441 oldline : integer ; (* LINE OF PREVIOUS STATEMENT *) 442 pagelength : integer ; (* INIT BY MAXPAGELINE OR CARTEEXEC *) 443 pageno : integer ; (* NUMBER OF CURRENT PAGE *) 444 pos1 : integer ; (* LAST ERROR'S POSITION IN LINE *) 445 prevfile : integer ; (* FILE OF PREVIOUS LINE *) 446 prevlig : integer ; (* LIEN NO OF PREVIOUS LINE *) 447 profile : boolean ; (* TRUE IF PROFILE OPTION *) 448 pt : ctp ; (* WORK POINTER *) 449 skipcode : boolean ; (* IF TRUE THEN DONT COMPILE SOURCE *) 450 skippage : boolean ; (* TRUE ALTER $PAGE *) 451 452 sourcectx : char ; (* '*' if line begins in a comment, ' 'otherwise *) 453 sttinline : integer ; (* NBR OF STATEMENT IN LINE *) 454 symbline : PACKED ARRAY [0..maxlinepascal] OF char ; (* CHARS OF A SOURCE LINE *) 455 symbol_listing : boolean ; (* TRUE IF CROSS REFERENCE OF SYMBOLS ON LISTING *) 456 symcl : ARRAY [0..127] OF integer ; (* CL FOR EACH PASCAL 0..127 *) 457 symno : ARRAY [0..127] OF integer ; (* NO " " " " *) 458 rversion : integer ; (* VERSION OF RACINE *) 459 tsetinargs : boolean ; (* TRUE IF T OPTION SET AT COMMAND LEVEL *) 460 usednamesa, 461 usednamesf : typusednames ; 462 wcl, 463 wcla, 464 wclf : ARRAY [0..maxnbofkeywords] OF integer ; 465 wd, 466 wda, 467 wdf : ARRAY [0..maxnbofkeywords] OF alfaid ; 468 wkextpt : ptexternalitem ; 469 wl1, 470 wl1a, 471 wl1f : ARRAY [1..maxkeylength] OF integer ; 472 wl2, 473 wl2a, 474 wl2f : ARRAY [1..maxkeylength] OF integer ; 475 wno, 476 wnoa, 477 wnof : ARRAY [0..maxnbofkeywords] OF integer ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 28 478 wnoset : setofno ; 479 wdsetinargs : boolean ; (* TRUE IF WD OPTION SET AT COMMAND LEVEL *) 480 wgsetinargs : boolean ; (* TRUE IF WG OPTION SET AT COMMAND LEVEL *) 481 wssetinargs : boolean ; (* TRUE IF WS OPTION SET AT COMMAND LEVEL *) 482 483 (* KEY-WORD XXX IS IN WD AT ENTRY "N" OF LENGTH I 484* WNO[N],WCL[N] ARE ASSOCIATED NO AND CL 485* ALL KEY WORDS OF LENGTH I ARE IN WD BETWEEN ENTRIES 486* WL1[I] .. WL2[I] 487* *) 488 489 490 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 29 491 492 $VALUE 493 errcl = (16 * irrelsy, 494 endsy, (* 16 ; *) 495 4 * irrelsy, 496 begsy, (* 21 BEGIN *) 497 endsy, (* 22 END *) 498 begsy, (* 23 IF *) 499 irrelsy, (* THEN *) 500 endsy, (* 25 ELSE *) 501 begsy, (* 26 CASE *) 502 irrelsy, (* OF *) 503 begsy, (* 28 REPEAT *) 504 endsy, (* 29 until *) 505 begsy, (* 30 WHILE *) 506 irrelsy, (* DO *) 507 begsy, (* 32 FOR *) 508 2 * irrelsy, (* TO DOWNTO *) 509 begsy, (* 35 GOTO *) 510 irrelsy, (* 36 nil *) 511 endsy, (* 37 TYPE *) 512 irrelsy, (* 38 array record file set *) 513 irrelsy, (* 39 .. *) 514 2 * endsy, (* 40 LABEL 41 CONST *) 515 irrelsy, (* PACKED *) 516 3 * endsy, (* 43 VAR 44 FUNCTION 45 PROCEDURE *) 517 2 * irrelsy, 518 begsy, (* 48 WITH *) 519 irrelsy, 520 endsy, (* 50 PROGRAM *) 521 7 * endsy) (* 51 $RENAME 52 $IMPORT 53 $EXPORT 54 $VALUE 55 $ *) ; 522 majmin = (0, 1, 2, 3, 4, 5, 6, 7, 8, 32 (* SPACE *), 10, 11, 12, 13, 14, 15, 523 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 524 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 525 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 526 (* MAJ TO MIN *) 527 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 528 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 529 118, 119, 120, 121, 122, 530 (* now same order *) 531 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 532 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 533 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127) ; 534 symcl = (35 * 0, 5, 6 * 0, 1, 1, 0, 2, 0, 2, 12 * 0, 1, 6, 4, 65 * 0) ; 535 symno = (35 * 0, 8, 4 * 0, 9, 10, 6, 7, 15, 7, 17, 6, 10 * 0, 536 19, 16, 3 * 8, 0, 18, 26 * 0, 11, 0, 12, 18, 537 33 * 0) ; 538 usednamesa = ('input', 'output', 'error', 'forward', 'external', 'otherwise' 539 ) ; 540 usednamesf = ('entree', 'sortie', 'erreur', 'plusloin', 'externe', 'autrement' 541 ) ; 542 wcla = (0, 543 0, 0, 1, 0, 7, 3, 544 0, 0, 0, 4, 5, 0, 545 3, 1, 4, 546 0, 0, 0, 0, 0, 0, 547 3, *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 30 548 0, 0, 0, 1, 549 0, 0, 550 0, 2, 2, 0, 0, 551 0, 0, 0, 0, 552 0, 0, 0, 553 0) ; 554 wclf = ( 555 0, 556 0, 3, 3, 0, 557 2, 0, 4, 0, 5, 0, 1, 0, 558 0, 7, 1, 0, 0, 559 0, 0, 0, 0, 0, 560 0, 0, 0, 561 2, 3, 0, 1, 0, 0, 0, 562 4, 0, 0, 0, 0, 0, 563 0, 0, 0 564 ) ; 565 wda = ('$ ', 566 'if ', 'do ', 'to ', 'of ', 'in ', 'or ', 567 'end ', 'nil ', 'for ', 'div ', 'mod ', 'var ', 568 'and ', 'not ', 'set ', 569 'then ', 'else ', 'goto ', 'case ', 'with ', 'type ', 570 'file ', 571 'begin ', 'until ', 'while ', 'array ', 572 'const ', 'label ', 573 'repeat ', 'downto ', 'record ', 'packed ', '$value ', 574 'program ', '$rename ', '$import ', '$export', 575 'function', '$include', '$options', 576 'procedure') ; 577 wdf = ( 578 '$ ', 579 'de', 'et', 'ou', 'si', 580 'bas', 'cas', 'div', 'fin', 'mod', 'nil', 'non', 'var', 581 'avec', 'dans', 'haut', 'pour', 'type', 582 'alors', 'const', 'debut', 'faire', 'sinon', 583 'allera', 'jusque', 'paquet', 584 'article', 'fichier', 'repeter', 'tableau', 'tantque', '$valeur', '$rename', 585 'ensemble', 'fonction', '$exporte', '$importe', '$include', '$options', 586 'etiquette', 'procedure', 'programme' 587 ) ; 588 wl1a = (0, 1, 7, 16, 23, 29, 34, 38, 41) ; 589 wl1f = (0, 1, 5, 13, 18, 23, 26, 33, 39) ; 590 wl2a = (0, 6, 15, 22, 28, 33, 37, 40, 41) ; 591 wl2f = (0, 4, 12, 17, 22, 25, 32, 38, 41) ; 592 wnoa = (55, 593 23, 31, 33, 27, 8, 7, 594 22, 36, 32, 6, 6, 43, 595 6, 5, 38, 596 24, 25, 35, 26, 48, 37, 597 38, 598 21, 29, 30, 38, 599 41, 40, 600 28, 33, 38, 42, 54, 601 50, 51, 52, 53, 602 44, 56, 57, 603 45) ; 604 wnof = ( *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 31 605 55, 606 27, 6, 7, 23, 607 33, 26, 6, 22, 6, 36, 5, 43, 608 48, 8, 33, 32, 37, 609 24, 41, 21, 31, 25, 610 35, 29, 42, 611 38, 38, 28, 38, 30, 54, 51, 612 38, 44, 53, 52, 56, 57, 613 40, 45, 50 614 ) $ 615 616 617 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 32 618 619 (* IMPORTED FROM "UNIQUE" *) 620 PROCEDURE initialise ; EXTERNAL ; 621 PROCEDURE progdecl ; EXTERNAL ; 622 PROCEDURE initclasse ; EXTERNAL ; 623 PROCEDURE heaperror ; EXTERNAL ; 624 PROCEDURE prterrmeans (VAR ff : text ; numerr : integer) ; EXTERNAL ; 625 PROCEDURE statistiques ; EXTERNAL ; 626 PROCEDURE displaysymbols ; EXTERNAL ; 627 628 (* IMPORTED FROM "DECLARE" *) 629 PROCEDURE body (surrptr, firstentry : ctp) ; EXTERNAL ; 630 631 (* IMPORTED FROM CONTEXTTABLE *) 632 633 PROCEDURE create_vars_box (VAR fvbox : ctp ; fname : alfaid) ; EXTERNAL ; 634 PROCEDURE create_dummyclass_box (VAR fvbox : ctp ; fname : alfaid) ; EXTERNAL ; 635 636 637 (* IMPORTED FORM "GENERE" *) 638 PROCEDURE genprofileref ; EXTERNAL ; 639 PROCEDURE genlongprofileref ; EXTERNAL ; 640 PROCEDURE inser (fcb, fplace : integer) ; EXTERNAL ; 641 PROCEDURE listhead ; EXTERNAL ; 642 643 644 (* IMPORTED FROM STATE *) 645 PROCEDURE freeallregisters ; EXTERNAL ; 646 647 (* IMPORTED FROM EXPR *) 648 PROCEDURE expression ; EXTERNAL ; 649 650 (* IMPORTED FROM MODATTR *) 651 PROCEDURE initattrvarbl (VAR fattr : attr) ; EXTERNAL ; 652 653 (* IMPORTED FROM PL1 *) 654 655 PROCEDURE buildobject ; EXTERNAL ; 656 PROCEDURE initsource ; EXTERNAL ; 657 PROCEDURE beginsource 658 (filename : externid ; stringdeb : alfaid ; ldeb : integer ; stringfin : alfaid ; lfin : integer) ; EXTERNAL ; 659 PROCEDURE endsource ; EXTERNAL ; 660 PROCEDURE displaysources ; EXTERNAL ; 661 (* FROM PL1 *) 662 PROCEDURE geninput (pr4disp : integer ; VAR fret : integer) ; EXTERNAL ; 663 PROCEDURE genoutput (pr4disp : integer ; VAR fret : integer) ; EXTERNAL ; 664 PROCEDURE generror (pr4disp : integer ; VAR fret : integer) ; EXTERNAL ; 665 PROCEDURE genentree (pr4disp : integer ; VAR fret : integer) ; EXTERNAL ; 666 PROCEDURE gensortie (pr4disp : integer ; VAR fret : integer) ; EXTERNAL ; 667 PROCEDURE generreur (pr4disp : integer ; VAR fret : integer) ; EXTERNAL ; 668 669 PROCEDURE getmapptr (VAR mapptr : sttmapptr) ; EXTERNAL ; 670 PROCEDURE getprofptr (VAR profptr : profareaptr) ; EXTERNAL ; 671 PROCEDURE convertreal (string : numberstring ; exp : integer ; VAR reel : real) ; EXTERNAL ; 672 673 674 PROCEDURE geninputlink (pr4disp : integer ; VAR fret : integer) ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 33 675 676 BEGIN 677 IF pascalfrench THEN 678 genentree (pr4disp, fret) ELSE 679 geninput (pr4disp, fret) ; 680 END ; 681 682 683 PROCEDURE genoutputlink (pr4disp : integer ; VAR fret : integer) ; 684 685 BEGIN 686 IF pascalfrench THEN 687 gensortie (pr4disp, fret) ELSE 688 genoutput (pr4disp, fret) ; 689 END ; 690 691 692 PROCEDURE generrorlink (pr4disp : integer ; VAR fret : integer) ; 693 694 BEGIN 695 IF pascalfrench THEN 696 generreur (pr4disp, fret) ELSE 697 generror (pr4disp, fret) ; 698 END ; 699 700 701 (* ********************************************************** NEXTPAGE ******* *) 702 703 PROCEDURE nextpage ; FORWARD ; 704 705 706 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 34 707 708 (* ************************************* INITRACINE *********************** *) 709 710 PROCEDURE initracine ; 711 712 (* C THIS PROCEDURE IS USED TO INITIALIZE THE GLOBALS OF RACINE AND IS 713* CALLED IN THE MODULE UNIQUE (PROCEDURE INITILALISE) C *) 714 VAR 715 it : integer ; 716 BEGIN (* INITRACINE *) 717 adrligic := 0 ; adrliglc := 0 ; 718 anytrace := none ; 719 beginline := false ; 720 bufold := ' ' ; bufnew := ' ' ; 721 rewrite (mpcogerr) ; 722 reset (mpcogin) ; 723 initsource ; 724 brieftable := false ; 725 ch := ' ' ; 726 chcnt := 0 ; 727 check_id := false ; 728 chnix := 1 ; 729 codelist := false ; 730 column := 0 ; 731 compencours := true ; 732 cursttmap := NIL ; 733 date (currdate) ; 734 declarationpart := true ; 735 digits := ['0'..'9'] ; 736 FOR it := 0 TO displimit DO 737 display [it].fname := NIL ; (* FOR SECURITY *) 738 dpoint := false ; 739 end_statement := true ; 740 environt := data ; 741 errinx := 0 ; fastoperator := false ; 742 errorflag := NIL ; 743 exportablecode := false ; 744 extcalltrapplace := 0 ; 745 FOR it := 0 TO maxerpg DO 746 BEGIN 747 pageserrors [it] := [] ; 748 errorsfound [it] := [] ; 749 erredited [it] := [] ; 750 END ; 751 errtotal := 0 ; 752 err257 := false ; 753 filetoprint := 0 ; 754 (* firstcond IS SET IN pascal COMMAND BEFORE CALL TO racine *) 755 iligne := 0 ; 756 init_fsb_trap_flag := false ; 757 init_fsb_trap_info_place := 0 ; 758 init_fsb_trap_links_place := 0 ; 759 init_fsb_trap_number_of_files := 0 ; 760 inputflag := NIL ; 761 interactive := false ; 762 iowarnings := true ; 763 envstandard := stdpure ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 35 764 instring := false ; 765 lastfile := 0 ; 766 lastlig := 0 ; 767 lastproc := NIL ; 768 letters := ['a'..'z', 'A'..'Z'] ; 769 incomment := false ; 770 liglues := 1 ; 771 linetoprint := 1 ; 772 next := NIL ; 773 level := 0 ; 774 longpad := maxval ; 775 longprofile := false ; 776 mapptr := NIL ; 777 mapswitch := false ; 778 maxstring_ptr := NIL ; 779 nbccond := 0 ; 780 oldfile := -1 ; 781 oldindex := 0 ; 782 oldline := 0 ; 783 outputflag := NIL ; 784 pageno := 0 ; pagelength := maxpageline ; (* DEFAULT *) 785 pascalfrench := false ; 786 pos1 := 0 ; 787 prevfile := 0 ; 788 prevlig := 0 ; 789 profile := false ; 790 profilewordcount := 0 ; 791 profptr := NIL ; 792 progname := blank ; 793 programnode := NIL ; 794 rversion := 0 ; 795 selectivetable := false ; 796 string_ptr := NIL ; 797 sourceindex := -1 ; 798 version := rversion ; 799 skipcode := false ; skippage := false ; 800 sourcectx := ' ' ; 801 sourcenbr := 0 ; 802 startic := -1 ; 803 statnbr := 0 ; 804 symbol_listing := false ; 805 symbolmap := false ; 806 top := 0 ; 807 FOR it := 1 TO undmax - 1 DO 808 undlab [it].succ := it + 1 ; 809 undlab [undmax].succ := 0 ; 810 wnoset := [5, 6, 7, 8, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 40, 41, 42, 43, 44, 45, 48, 50] ; 811 wdsetinargs := false ; 812 wgsetinargs := false ; 813 wssetinargs := false ; 814 xc := firstglobal * bytesinword ; 815 xrefneed := false ; 816 FOR it := 1 TO 120 DO boxheader [it] := '*' ; 817 END (* INITRACINE *) ; 818 819 *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 36 820 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 37 821 822 (* *************************************NEXTLINE******************************* *) 823 824 PROCEDURE nextline ; 825 826 (* C PRINTS THE CURRENT LINE (WRITELN) 827* BUFFER OF OUTPUT MUST BE FILLED BEFORE C *) 828 BEGIN 829 IF listyes THEN writeln (mpcogout) ; 830 iligne := iligne + 1 ; (* NUMBER OF LINES IN CURRENT PAGE *) 831 IF skippage OR (iligne >= pagelength) THEN nextpage ; 832 END (* NEXTLINE *) ; 833 834 835 836 837 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 38 838 839 (* ******************************************************* RETURNSTOP ****** *) 840 841 PROCEDURE returnstop ; 842 843 (* C THIS PROCEDURE IS CALLED BY HEAPERROR (IN UNIQUE) IN ORDER TO STOP 844* THE COMPILATION C *) 845 BEGIN 846 GOTO 100 ; (* END OF COMPILATION. HEAP IS FULL *) 847 END (* RETURNSTOP *) ; 848 849 850 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 39 851 852 (* *********************************************************ERROR************** *) 853 854 PROCEDURE error (errno : integer) ; 855 856 (* C ENTERS .NEW ERROR IN ERRLIST (FOR EACH LINE) 857* .NEW ERROR IN ERRORSFOUND (FOR END OF COMPILATION MEANINGS) 858* .LISTING'S PAGE NUMBER IN PAGEERRORS C *) 859 (* E ERRORS DETECTED 860* 255: TOO MANY ERRORS ON THIS LINE 861* 381: ERROR NUMBER EXCEED HIGH BOUND 862* 382: PAGE NUMBER " " " E *) 863 BEGIN 864 $OPTIONS compile = trace $ 865 IF anytrace > none THEN 866 BEGIN 867 write (mpcogout, ' @@@ DEBUT ERROR WITH ERRNO ', errno : 5) ; nextline ; 868 IF anytrace = high THEN 869 BEGIN 870 write (mpcogout, ' ERRINX,POS1,COLUMN ', errinx, pos1, column) ; nextline ; 871 END 872 END ; 873 $OPTIONS compile = true $ 874 IF errinx = (maxerrline - 1) THEN 875 errno := 255 ; (* TOO MANY ERRORS *) 876 IF errinx < maxerrline THEN 877 BEGIN 878 IF column > pos1 THEN pos1 := column ; 879 errinx := errinx + 1 ; 880 WITH errlist [errinx] DO 881 BEGIN pos := pos1 ; nmr := errno ; 882 END ; 883 pos1 := pos1 + 1 ; 884 $OPTIONS compile = security $ 885 IF errno > maxerrnum THEN error (381) ELSE 886 $OPTIONS compile = true $ 887 errorsfound [errno DIV setrange] := errorsfound [errno DIV setrange] + 888 [errno MOD setrange] ; 889 $OPTIONS compile = security $ 890 IF pageno > maxpage THEN error (382) ELSE 891 $OPTIONS compile = true $ 892 pageserrors [pageno DIV setrange] := pageserrors [pageno DIV setrange] + 893 [pageno MOD setrange] ; 894 errtotal := errtotal + 1 ; 895 END ; 896 $OPTIONS compile = trace $ 897 IF anytrace > low THEN 898 BEGIN 899 IF anytrace = high THEN 900 BEGIN 901 write (mpcogout, ' NOW ERRINX, POS1 ARE ', errinx, pos1) ; nextline ; 902 END ; 903 write (mpcogout, ' @@@ FIN ERROR @@@ ') ; nextline ; 904 END ; 905 $OPTIONS compile = true $ 906 END (* ERROR *) ; 907 *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 40 908 909 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 41 910 911 (* ******************************************* WARNING ************** *) 912 913 PROCEDURE warning (errno : integer) ; 914 915 (* C ENTERS .NEW WARNING IN ERRLIST (FOR EACH LINE) 916* .NEW WARNING IN ERRORSFOUND (FOR END OF COMPILATION MEANINGS) 917* .LISTING'S PAGE NUMBER IN PAGEERRORS 918* 919* EXACTLY THE CONTENTS OF the procedure ERROR , EXCEPT 920* ERRTOTAL' INCREMENT . 921* C *) 922 (* E ERRORS DETECTED 923* 255: TOO MANY ERRORS ON THIS LINE 924* 381: ERROR NUMBER EXCEED HIGH BOUND 925* 382: PAGE NUMBER " " " E *) 926 BEGIN 927 $OPTIONS compile = trace $ 928 IF anytrace > none THEN 929 BEGIN 930 write (mpcogout, ' @@@ DEBUT WARNING WITH ERRNO ', errno : 5) ; nextline ; 931 IF anytrace = high THEN 932 BEGIN 933 write (mpcogout, ' ERRINX,POS1,COLUMN ', errinx, pos1, column) ; nextline ; 934 END 935 END ; 936 $OPTIONS compile = true $ 937 938 IF NOT no_compilation_warnings THEN 939 BEGIN 940 IF errinx = (maxerrline - 1) THEN 941 errno := 255 ; (* TOO MANY ERRORS *) 942 IF errinx < maxerrline THEN 943 BEGIN 944 IF column > pos1 THEN pos1 := column ; 945 errinx := errinx + 1 ; 946 WITH errlist [errinx] DO 947 BEGIN pos := pos1 ; nmr := errno ; 948 END ; 949 pos1 := pos1 + 1 ; 950 $OPTIONS compile = trace $ 951 IF errno > maxerrnum THEN error (381) ELSE 952 $OPTIONS compile = true $ 953 errorsfound [errno DIV setrange] := errorsfound [errno DIV setrange] + 954 [errno MOD setrange] ; 955 $OPTIONS compile = trace $ 956 IF pageno > maxpage THEN error (382) ELSE 957 $OPTIONS compile = true $ 958 pageserrors [pageno DIV setrange] := pageserrors [pageno DIV setrange] + 959 [pageno MOD setrange] ; 960 (* NO INCREMENT OF ERRTOTAL *) 961 END ; 962 END ; 963 $OPTIONS compile = trace $ 964 IF anytrace > low THEN 965 BEGIN 966 IF anytrace = high THEN *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 42 967 BEGIN 968 write (mpcogout, ' NOW ERRINX, POS1 ARE ', errinx, pos1) ; nextline ; 969 END ; 970 write (mpcogout, ' @@@ FIN WARNING @@@ ') ; nextline ; 971 END ; 972 $OPTIONS compile = true $ 973 END (* WARNING *) ; 974 975 976 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 43 977 978 (* ***********************************************NEXTPAGE********************* *) 979 980 PROCEDURE nextpage ; 981 982 (* C NEXTLINE ON OUTPUT BEGINS AT BEGINNING OF A NEW PAGE ON LISTING 983* INCREMENTS PAGENO; 984* PRINTS PAGE NUMBER 985* C *) 986 (* E ERRORS DETECTED 987* 383: MAX NUMBER OF LISTING'S PAGES EXCEEDED E *) 988 BEGIN 989 skippage := false ; 990 pageno := pageno + 1 ; 991 $OPTIONS compile = trace $ 992 IF pageno > maxpage THEN error (383) ; 993 $OPTIONS compile = true $ 994 IF listyes THEN page (mpcogout) ; (* NEXT LINE ON A NEW PAGE(MPCOGOUT) *) 995 (* WRITE PAGE NUMBER *) 996 IF listyes THEN 997 write (mpcogout, '*** MULTICS PASCAL COMPILER - V8.0', version : 1, 998 ' **** PROGRAM ', progname : 32, 999 ' *** ON ', currdate, ' *** ', ' ' : 11, 1000 'PAGE ', pageno : 5) ; 1001 iligne := 0 ; 1002 nextline ; 1003 (* DUMMY SPACE LINE *) 1004 nextline ; 1005 (* INIT COUNTER FOR ALLOWED LINES *) 1006 (* ON A PAGE *) 1007 END (* NEXTPAGE *) ; 1008 1009 1010 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 44 1011 1012 (* ***********************************************(FCT) SUP******************** *) 1013 1014 FUNCTION sup (fval1, fval2 : integer) : integer ; 1015 1016 (* C SUP IS THE GREATEST VALUE BETWEEN FVAL1 AND FVAL2 C *) 1017 BEGIN 1018 IF fval1 > fval2 THEN 1019 sup := fval1 ELSE 1020 sup := fval2 ; 1021 END (* SUP *) ; 1022 1023 1024 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 45 1025 1026 (* ************************************ FCT. POWEROFTWO *********************** *) 1027 FUNCTION poweroftwo (fval : integer) : integer ; 1028 1029 (* C RETURNS N IF FVAL=2**N 1030* -1 IF FVAL <=0 1031* 0 IF FVAL= 1 1032* C *) 1033 LABEL 1034 10 ; (* EXIT LOOP *) 1035 VAR 1036 lvalu, it : integer ; 1037 BEGIN (* POWEROFTWO *) 1038 IF fval <= 0 THEN 1039 (* <==== *) lvalu := -1 ELSE 1040 FOR it := 0 TO bitsinword - 2 DO 1041 IF fval = 1 THEN 1042 BEGIN 1043 (* <==== *) lvalu := it ; GOTO 10 ; (* EXITLOOP *) 1044 END (* FVAL=1 *) ELSE 1045 IF odd (fval) THEN 1046 BEGIN 1047 (* <==== *) lvalu := -1 ; GOTO 10 ; (* EXIT LOOP *) 1048 END (* ODD *) ELSE 1049 fval := fval DIV 2 ; 1050 10 : (* EXIT LOOP *) 1051 poweroftwo := lvalu ; 1052 $OPTIONS compile = trace $ 1053 IF anytrace > none THEN 1054 BEGIN 1055 write (mpcogout, '@@@ DEBUT-FIN POWEROFTWO @@@ WITH FVAL, COMPUTED VALUE', 1056 fval, lvalu) ; 1057 nextline ; 1058 END ; 1059 $OPTIONS compile = true $ 1060 END (* POWEROFTWO *) ; 1061 1062 1063 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 46 1064 1065 (* ************************************ INSERUNDLAB *************************** *) 1066 1067 PROCEDURE inserundlab (fcb, fdebchain : integer) ; 1068 1069 (* C "FCB" IS A BYTES DISPLACEMENT IN THE CODE FOR THE ACTUAL PROCEDURE. 1070* "FDEBCHAIN" IS THE BEGINNING IN UNDLAB OF A LIST OF UNRESOLVED 1071* REFERENCES USING THIS VALUE OF "FCB". 1072* EACH ITEM OF THE LIST IS 1073* .THE PLACE IN CODE( IN FICHINTER) OF INCOMPLETE INSTRUCTION 1074* .THE POINTER ON THE NEXT LIST'S ITEM 1075* C *) 1076 (* E ERRORS DETECTED 1077* 407 FDEBCHAIN MUST NOT BE 0 (EMPTY LIST) 1078* E *) 1079 LABEL 1 ; (* EXIT IF COMPILER'S ERROR *) 1080 VAR 1081 it : integer ; 1082 BEGIN (* INSERUNDLAB *) 1083 $OPTIONS compile = trace $ 1084 IF stattrace > none THEN 1085 BEGIN 1086 write (mpcogout, '@@@ DEBUT INSERUNDLAB @@@ WITH FCB,FDEBCHAIN', fcb, fdebchain : 6) ; 1087 nextline ; 1088 END ; 1089 $OPTIONS compile = true $ 1090 IF fdebchain = 0 THEN 1091 BEGIN 1092 IF errtotal = 0 THEN error (407) ; 1093 GOTO 1 ; 1094 END ; 1095 it := fdebchain ; 1096 WHILE undlab [it].succ # 0 DO 1097 BEGIN 1098 inser (fcb, undlab [it].place) ; 1099 it := undlab [it].succ ; 1100 END ; 1101 (* NOW THE LAST *) 1102 inser (fcb, undlab [it].place) ; 1103 (* NOW GIVE THIS RESOLVED LIST *) 1104 (* AT FREE LIST *) 1105 undlab [it].succ := chnix ; 1106 chnix := fdebchain ; 1107 $OPTIONS compile = trace $ 1108 IF stattrace > low THEN 1109 BEGIN 1110 write (mpcogout, '@@@ FIN INSERUNDLAB @@@ WITH CHNIX:', chnix : 6) ; nextline ; 1111 END ; 1112 $OPTIONS compile = true $ 1113 1 : (* COMES HERE IF ERROR(407) *) 1114 END (* INSERUNDLAB *) ; 1115 1116 1117 1118 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 47 1119 1120 (* *********************************************************(FCT) RECADRE****** *) 1121 1122 FUNCTION recadre (fnumber, fmod : integer) : integer ; 1123 1124 (* C RETURNS THE FIRST FMOD-MULTIPLE OF FNUMBER C *) 1125 (* E ERRORS DETECTED 1126* 350 : RECADRE CALLED WITH FMOD <=0 1127* E *) 1128 VAR 1129 lmod : integer ; 1130 BEGIN 1131 $OPTIONS compile = security $ 1132 IF fmod <= 0 THEN 1133 error (350) ELSE 1134 BEGIN 1135 $OPTIONS compile = true $ 1136 lmod := fnumber MOD fmod ; 1137 IF lmod = 0 THEN 1138 recadre := fnumber ELSE 1139 recadre := fnumber + fmod - lmod ; 1140 $OPTIONS compile = security $ 1141 END ; 1142 $OPTIONS compile = true $ 1143 END (* RECADRE *) ; 1144 1145 1146 1147 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 48 1148 1149 (* ***********************************************SRCHREC********************** *) 1150 1151 PROCEDURE srchrec (fbegsearch : ctp) ; EXTERNAL ; (* THIS PROCEDURE HAS BEEN OPTIMIZED *) 1152 1153 { 1154* OOPROCEDURE DEF SRCHREC ( FBEGSEARCH:CTP ); 1155* 1156* CC(*C SEARCHS A BOX WITH NAME= AVAL . RETURNS CTPTR = NIL OR FOUND BOX 1157* SEARCH BEGINS IN CONTEXTTABLE AT FBEGSEARCH AND STOPS AT NIL 1158* C*) 1159* BBLABEL 1160* 1 ; (* EXIT WHILE FOR EFFICIENCY*) 1161* GGBEGIN 1162* CTPTR := FBEGSEARCH; 1163* WHILE CTPTR # NIL DO 1164* IF CTPTR@.NAME = AVAL THEN 1165* GOTO 1 ELSE 1166* CTPTR := CTPTR@.NXTEL; 1167* 111: (* CTPTR HERE NIL OR OK *) 1168* DDEND (*SRCHREC*) ; 1169*} 1170 1171 1172 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 49 1173 1174 (* ***********************************************SEARCH*********************** *) 1175 1176 PROCEDURE search ; EXTERNAL ; (* THIS PROCEDURE HAS BEEN OPTIMIZED *) 1177 1178 { 1179* OOPROCEDURE DEF SEARCH; 1180* 1181* CC(*C THE ARRAY 'DISPLAY' FROM 0 TO TOP CONTAINS EACH LEVEL'S LIST'S 1182* BEGINNING. 1183* THIS PROC SEARCHS A BOX WITH NAME 'AVAL' 1184* RETURNS CTPTR = NIL OR FOUND BOX 1185* DISX = INDEX IN DISPLAY WHERE BOX WAS FOUND 1186* CAN BE 0 => PREDEF OR NOT FOUND 1187* C*) 1188* BBLABEL 1189* 1; (* EXIT LOOP FOR EFFICIENCY *) 1190* RRVAR 1191* I:INTEGER ; 1192* GGBEGIN 1193* FOR I:= TOP DOWNTO 0 DO 1194* BEGIN 1195* CTPTR := DISPLAY[I].FNAME; (* BEGINNING OF LIST *) 1196* WHILE CTPTR # NIL DO 1197* IF CTPTR@.NAME = AVAL THEN 1198* BEGIN 1199* DISX :=I; GOTO 1; 1200* END ELSE 1201* CTPTR := CTPTR@.NXTEL; 1202* END;(*FOR I *) 1203* DISX := 0; 1204* 111: (* HERE CTPTR AND DISX OK FOR CALLER *) 1205* DDEND (*SEARCH *); 1206*} 1207 1208 1209 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 50 1210 1211 (* *************************************CREALFABOX***************************** *) 1212 1213 PROCEDURE crealfabox (VAR fkonstbox : ctp) ; 1214 1215 (* C .BUFVAL IS LOADED FOR 1 TO LONGSTRING WITH THE STRING VALUE 1216* .THIS PROC CREATES THE BOXES ASSOCIATED WITH THIS VALUE 1217* AND ASSIGNS FKONSTBOX@.ALFADEB AND FKONSTBOX@.ALFALONG 1218* C *) 1219 (* E ERRORS DETECTED 1220* HEAPERROR 1221* E *) 1222 VAR 1223 localfpt, nxtal : alfapt ; 1224 nboxes, it, j, longlast, debbuf : integer ; 1225 1226 1227 (* ***********************************************PRINTALFABOX < CREALFABOX**** *) 1228 1229 $OPTIONS compile = trace $ 1230 PROCEDURE printalfabox (ptalfabox : alfapt) ; 1231 1232 (* C USED IN CONDITIONAL COMPILATION TO PRINT THE CONTENT OF 1233* AN ALFABOX (TYPE=ALFAVALUE). PTALFABOX POINTS THE BOX C *) 1234 VAR 1235 it : integer ; 1236 BEGIN 1237 nextline ; write (mpcogout, boxheader) ; nextline ; 1238 IF ptalfabox = NIL THEN 1239 BEGIN 1240 write (mpcogout, '* ALFABOX REQUESTED IS NIL. TRACE STOPS') ; nextline ; 1241 END ELSE 1242 BEGIN 1243 write (mpcogout, '* ALFABOX FOLLOWING IS AT @', ord (ptalfabox)) ; nextline ; 1244 WITH ptalfabox@ DO 1245 BEGIN 1246 write (mpcogout, 1247 '* NEXTVAL IS : ', ord (nextval), ' USED SIZE IS ', longfill : 4) ; 1248 nextline ; 1249 write (mpcogout, '* ALFAVAL IS : @') ; 1250 FOR it := 1 TO longfill DO write (mpcogout, alfaval [it]) ; 1251 write (mpcogout, '@') ; 1252 nextline ; 1253 END ; (* WITH PTALFABOX@ *) 1254 END ; (* PTALFABOX # NIL *) 1255 write (mpcogout, boxheader) ; nextline ; nextline ; 1256 END (* PRINTALFABOX *) ; 1257 $OPTIONS compile = true $ 1258 1259 1260 BEGIN (* CREALFABOX *) 1261 $OPTIONS compile = trace $ 1262 IF decltrace > none THEN 1263 BEGIN 1264 write (mpcogout, '@@@ DEBUT CREALFABOX @@@ ', 'V. FKONSTBOX ', ord (fkonstbox)) ; 1265 nextline ; 1266 END ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 51 1267 $OPTIONS compile = true $ 1268 nboxes := longstring DIV longalfbox ; (* NB. OF FULL BOXES *) 1269 longlast := longstring MOD longalfbox ; (* LENGTH OF LAST BOX OR ZERO *) 1270 nxtal := NIL ; 1271 debbuf := 0 ; 1272 FOR it := 0 TO nboxes - 1 DO (* FOR FULL BOXES *) 1273 BEGIN 1274 new (localfpt) ; IF localfpt = NIL THEN heaperror ; (* EXIT COMP *) 1275 IF nxtal = NIL THEN 1276 fkonstbox@.alfadeb := localfpt ELSE nxtal@.nextval := localfpt ; 1277 nxtal := localfpt ; 1278 WITH localfpt@ DO 1279 BEGIN nextval := NIL ; 1280 FOR j := 1 TO longalfbox DO 1281 alfaval [j] := bufval [debbuf + j] ; 1282 debbuf := debbuf + longalfbox ; 1283 longfill := longalfbox ; 1284 END ; 1285 $OPTIONS compile = trace $ 1286 IF decltrace > none THEN 1287 BEGIN 1288 write (mpcogout, ' ALFA BOX CREATED AT ', ord (localfpt)) ; nextline ; 1289 IF decltrace = high THEN 1290 printalfabox (localfpt) ; 1291 END ; 1292 $OPTIONS compile = true $ 1293 END ; (* FOR IT *) 1294 fkonstbox@.alfalong := longstring ; 1295 IF longlast # 0 THEN (* FILL LAST BOX *) 1296 BEGIN 1297 new (localfpt) ; IF localfpt = NIL THEN heaperror ; (* EXIT COMP *) 1298 IF nxtal = NIL THEN 1299 fkonstbox@.alfadeb := localfpt ELSE nxtal@.nextval := localfpt ; 1300 WITH localfpt@ DO 1301 BEGIN 1302 nextval := NIL ; longfill := longlast ; 1303 FOR j := 1 TO longlast DO 1304 alfaval [j] := bufval [debbuf + j] ; 1305 END (* WITH *) ; 1306 $OPTIONS compile = trace $ 1307 IF decltrace > none THEN 1308 BEGIN 1309 write (mpcogout, ' ALFA BOX CREATED AT ', ord (localfpt)) ; nextline ; 1310 IF decltrace = high THEN 1311 printalfabox (localfpt) ; 1312 END ; 1313 $OPTIONS compile = true $ 1314 END ; (* LONGLAST #0 *) 1315 $OPTIONS compile = trace $ 1316 IF decltrace > low THEN 1317 BEGIN 1318 IF decltrace = high THEN 1319 BEGIN 1320 write (mpcogout, ' STRING TO BE GENERATED ON ', longstring : 3, ' CHARS WAS') ; 1321 nextline ; 1322 FOR it := 1 TO longstring DO write (mpcogout, bufval [it]) ; nextline ; 1323 END ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 52 1324 write (mpcogout, ' @@@ FIN CREALFABOX @@@') ; nextline ; 1325 END ; 1326 $OPTIONS compile = true $ 1327 END (* CREALFABOX *) ; 1328 1329 1330 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 53 1331 1332 (* *******************************************************************PRINTERR* *) 1333 1334 PROCEDURE printerr ; 1335 1336 (* C AFTER COMPILATION OF EACH PASCAL SOURCE LINE ,THIS PROCEDURE IS CALLED 1337* IN ORDER TO FLAG THE COLUMN(S) WHERE IS(ARE) ERROR(S) 1338* ERRINX POINTS THE LAST ENTRY USED IN ERRLIST WHERE NUMBER AND POSITION OF 1339* EACH ERROR IS KEPT C *) 1340 VAR 1341 it, errdeb, errmax, errptr, errnumb : integer ; 1342 BEGIN (* PRINTERR *) 1343 errptr := 1 ; (* POINTS THE NEXT ERROR *) 1344 (* TO BE PROCESSED *) 1345 errmax := 0 ; (* POINTS THE LAST COLUMN *) 1346 (* REACHED ON A LINE *) 1347 (* WRITES TWO LAST LINES *) 1348 IF (lastlig <> prevlig) OR (lastfile <> prevfile) THEN 1349 IF prevfile = 0 THEN writeln (mpcogerr, ' ', prevlig : 5, ' ', bufold) 1350 ELSE writeln (mpcogerr, prevfile : 3, ' ', prevlig : 5, ' ', bufold) ; 1351 IF filetoprint = 0 THEN writeln (mpcogerr, ' ', linetoprint : 5, ' ', bufnew) 1352 ELSE writeln (mpcogerr, filetoprint : 3, ' ', linetoprint : 5, ' ', bufnew) ; 1353 lastfile := filetoprint ; lastlig := linetoprint ; 1354 WHILE errptr <= errinx DO 1355 BEGIN 1356 errmax := errmax + lgprint ; 1357 IF errlist [errptr].pos <= errmax THEN 1358 BEGIN 1359 IF chcnt <= lgprint THEN 1360 BEGIN write (mpcogout, '*********') ; 1361 write (mpcogerr, '*********') ; 1362 END ELSE 1363 BEGIN write (mpcogout, '***', (errmax DIV lgprint) : 3, '***') ; 1364 write (mpcogerr, '***', (errmax DIV lgprint) : 3, '***') ; 1365 END ; 1366 errdeb := errptr ; (* FIRST ERROR ON THE LINE PRINTED *) 1367 FOR it := errmax - lgprint TO errmax DO 1368 IF errptr <= errinx THEN 1369 BEGIN 1370 IF errlist [errptr].pos = it THEN 1371 BEGIN 1372 write (mpcogout, '"') ; write (mpcogerr, '"') ; 1373 errptr := errptr + 1 ; 1374 END ELSE 1375 BEGIN write (mpcogout, ' ') ; write (mpcogerr, ' ') ; 1376 END ; 1377 END ELSE 1378 BEGIN write (mpcogout, ' ') ; write (mpcogerr, ' ') ; 1379 END ; 1380 nextline ; writeln (mpcogerr) ; 1381 END ; (* ERROR(S) ON THE LINE *) 1382 END ; (* LOOP ON THE LINES *) 1383 write (mpcogout, ' ERROR(S) NR :') ; 1384 write (mpcogerr, ' ERROR(S) NR :') ; 1385 FOR it := 1 TO errinx DO 1386 BEGIN 1387 write (mpcogout, errlist [it].nmr : 4) ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 54 1388 write (mpcogerr, errlist [it].nmr : 4) 1389 END ; 1390 nextline ; writeln (mpcogerr) ; 1391 FOR it := 1 TO errinx DO 1392 1393 BEGIN 1394 errnumb := errlist [it].nmr ; 1395 IF NOT (errnumb MOD maxset IN erredited [errnumb DIV maxset]) THEN 1396 BEGIN 1397 prterrmeans (mpcogerr, errnumb) ; writeln (mpcogerr) ; 1398 erredited [errnumb DIV maxset] := erredited [errnumb DIV maxset] + 1399 [errnumb MOD maxset] ; 1400 END 1401 END ; 1402 writeln (mpcogerr) ; 1403 errinx := 0 ; 1404 pos1 := 0 ; 1405 END (* PRINTERR *) ; 1406 1407 1408 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 55 1409 1410 (* ***********************************************NEXTCH*********************** *) 1411 1412 PROCEDURE nextch ; 1413 1414 (* C .GIVES TO INSYMBOL THE NEXT RELEVANT CHARACTER OF SOURCE. 1415* .AT EOLN PRINTS LAST LINE 1416* .AT EOF EXITS COMPIL. 1417* C *) 1418 (* E ERRORS DETECTED 1419* 18: ' EXPECTED 1420* 22: EOF ON FILE INPUT =SOURCE 1421* 257: SOURCE LINE IS TOO LONG 1422* E *) 1423 LABEL 1424 1, 2 ; (* EXIT OF LOOP FOR CH#' ' *) 1425 VAR 1426 caract : char ; 1427 it, startit, chprint, index, ll : integer ; 1428 listingline : PACKED ARRAY [1..maxsliceline] OF char ; 1429 ch1 : char ; 1430 liststatus : boolean ; 1431 BEGIN (* NEXTCH *) 1432 2 : 1433 IF beginline THEN BEGIN 1434 beginline := false ; 1435 IF incomment OR skipcode THEN sourcectx := '*' ELSE sourcectx := ' ' 1436 END ; 1437 IF eoln (mpcogin) THEN (* END OF CURRENT LINE *) 1438 IF NOT eof (mpcogin) THEN 1439 BEGIN 1440 IF listyes OR (errinx > 0) THEN (* L+ OR ERROR(S) ON LINE *) 1441 BEGIN (* PRINTS THIS LINE *) 1442 liststatus := listyes ; listyes := true ; 1443 IF instring AND (envstandard <> stdextend) THEN 1444 BEGIN error (18) ; instring := false ; END ; 1445 (* PRINTS FILE NO, LINE NO *) 1446 IF filetoprint = 0 THEN ll := swrite (listingline, 1, ' ', linetoprint : 5, sourcectx) 1447 ELSE ll := swrite (listingline, 1, filetoprint : 3, ' ', linetoprint : 5, sourcectx) ; 1448 (* NOW PRINTS SOURCE . *) 1449 (* 'LGPRINT' CHARS ON A LINE, *) 1450 (* SEVERAL LINES ALLOWED *) 1451 startit := 2 ; it := 1 ; chprint := 0 ; 1452 WHILE it <= chcnt DO 1453 BEGIN 1454 caract := symbline [it] ; 1455 IF caract = ' ' THEN (* TAB *) 1456 chprint := ((chprint + 10) DIV 10) * 10 1457 ELSE 1458 chprint := chprint + 1 ; 1459 IF chprint >= lgprint THEN 1460 BEGIN 1461 ll := swrite (listingline, ll, symbline : 2 + it - startit : startit) ; 1462 startit := it + 2 ; 1463 write (mpcogout, listingline : ll - 1) ; 1464 nextline ; 1465 ll := swrite (listingline, 1, ' ') ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 56 1466 chprint := 0 ; 1467 END ; 1468 it := it + 1 ; 1469 END ; 1470 IF chprint <> 0 THEN 1471 ll := swrite (listingline, ll, symbline : 1 + it - startit : startit) ; 1472 write (mpcogout, listingline : ll - 1) ; 1473 nextline ; 1474 IF errinx > 0 THEN printerr ; 1475 listyes := liststatus ; 1476 END (* LISTING *) ; 1477 bufold := bufnew ; bufnew := ' ' ; 1478 chcnt := -1 ; (* SYMBLINE[0] = SPACE DUMMY *) 1479 (* DUE TO EOLN *) 1480 beginline := true ; 1481 prevfile := filetoprint ; 1482 prevlig := linetoprint ; 1483 column := -1 ; 1484 liglues := liglues + 1 ; (* LINES' COUNTER *) 1485 (* AT BEGINNING OF NEXT PRINTED LINE *) 1486 err257 := false ; (* TO AVOID SEVERAL ERROR(257) *) 1487 (* ON THE SAME LINE *) 1488 filetoprint := sourcenbr ; 1489 linetoprint := liglues ; 1490 END (* EOLN *) ; 1491 IF eof (mpcogin) THEN 1492 IF sourcenbr = 0 THEN 1493 BEGIN 1494 IF compencours THEN error (22) ; 1495 GOTO 100 ; (* GOTO END OF COMPILER *) 1496 END 1497 ELSE 1498 BEGIN 1499 endsource ; (* END OF INCLUDE FILE *) 1500 GOTO 2 ; 1501 END ; 1502 (* HERE VITAL PART *) 1503 (* ==> ASSIGNS CH FOR INSYMBOL *) 1504 REPEAT 1505 ch1 := ch ; 1506 read (mpcogin, ch) ; (* SPACE RETURNED IF EOLN(MPCOGIN) *) 1507 sourceindex := sourceindex + 1 ; 1508 IF chcnt < maxlinepascal THEN 1509 BEGIN 1510 chcnt := chcnt + 1 ; 1511 symbline [chcnt] := ch ; IF chcnt < maxsliceline THEN bufnew [chcnt] := ch ; 1512 IF ch = ' ' THEN (* TAB *) 1513 BEGIN 1514 IF column = -1 THEN column := 0 ; 1515 column := ((column + 10) DIV 10) * 10 1516 END 1517 ELSE column := column + 1 ; 1518 END ELSE 1519 IF NOT err257 THEN 1520 BEGIN error (257) ; 1521 err257 := true ; 1522 END ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 57 1523 IF (ch # ' ') OR (ch1 # ' ') THEN GOTO 1 ; (* EXIT REPEAT *) 1524 UNTIL eoln (mpcogin) OR instring OR eof (mpcogin) ; 1525 1 : 1526 IF NOT instring THEN ch := chr (majmin [ord (ch)]) ; 1527 END (* NEXTCH *) ; 1528 1529 1530 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 58 1531 1532 (* ***********************************************TRACELEVEL******************* *) 1533 1534 PROCEDURE tracelevel (VAR whichtrace : levtrace ; charfound : char) ; 1535 1536 (* C A TRACE COMMAND WAS FOUND; THE CHAR GIVING WANTED LEVEL ALSO. 1537* C *) 1538 (* E ERRORS DETECTED 1539* 25: INVALID TRACE OPTIONS IN COMPILER PARMLIST 1540* E *) 1541 BEGIN 1542 whichtrace := none ; (* DEFAULT *) 1543 IF charfound = '0' THEN whichtrace := none ELSE 1544 IF charfound = '1' THEN whichtrace := low ELSE 1545 IF charfound = '2' THEN whichtrace := medium ELSE 1546 IF charfound = '3' THEN whichtrace := high ELSE 1547 error (25) ; 1548 anytrace := decltrace ; 1549 IF anytrace < stattrace THEN anytrace := stattrace ; 1550 IF anytrace < genetrace THEN anytrace := genetrace ; 1551 END (* TRACELEVEL *) ; 1552 1553 1554 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 59 1555 1556 PROCEDURE traiteinclude ; FORWARD ; 1557 PROCEDURE traiteoptions ; FORWARD ; 1558 1559 (* *******************************************************************INSYMBOL* *) 1560 1561 PROCEDURE insymbol ; 1562 1563 (* C .ASSIGNS A CODE (NO,CL) TO EACH ITEM 1564* .RETURNS VALUE IN IVAL,RVAL,BUFVAL 1565* .SKIPS COMMENT AND COMPIL. COND. 1566* .DECODE OPTIONS 1567* 1568* INSYMBOL'S OUTPUT SUMMARY 1569* 1570* *NO*CL*****ITEM***SYNONYMS*******OUTPUTS*******||||**NO**CL***ITEM************ 1571* 1572* . 1 LG ID. AVAL 21 BEGIN 1573* . 2 1 CST. INT IVAL 22 END 1574* . 2 . REAL RVAL 23 IF 1575* . 3 . ALFA BUFVAL LONGCHAINE 24 THEN 1576* . 4 . CHAR IVAL 25 ELSE 1577* . 26 CASE 1578* . 5 1 NOT 27 OF 1579* 28 REPEAT 1580* . 6 1 * 29 UNTIL 1581* . 2 / 30 WHILE 1582* . 3 AND 31 DO 1583* . 4 DIV 32 FOR 1584* . 5 MOD 33 1 TO 1585* . 2 DOWNTO 1586* . 7 1 + 1587* . 2 - 35 GOTO 1588* . 3 OR 36 NIL 1589* 37 TYPE 1590* . 8 1 < 38 1 ARRAY 1591* . 2 <= 2 RECORD 1592* . 3 >= 3 FILE 1593* . 4 > 4 CLASS 1594* . 5 <> # 5 SET 1595* . 6 = 39 ...SEE CHAR.. 1596* . 7 IN 40 LABEL 1597* . 41 CONST 1598* . 42 PACKED 1599* . 9 ( 43 VAR 1600* . 10 ) 44 FUNCTION 1601* . 11 [ (. 45 PROCEDURE 1602* . 12 ] .) 46 .... CF SKIP ... 1603* . 55 $ 47 VALUE 1604* . 56 $include 1605* . 15 , 48 WITH 1606* . 16 ; 49 ...SEE CHAR.. 1607* . 17 . 50 PROGRAM 1608* . 18 @ ^ 1609* . 19 : 1610* . 20 := 1611* . 39 .. *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 60 1612* . 49 -> 1613* C *) 1614 (* E 1615* 32 OCTAL NUMBER IS NOT STANDARD 1616* 33 HEXADECIMAL,BINARY NUMBER IS NOT STANDARD 1617* 70 OBSOLETE CONDITIONNAL COMPILATION MECHANISM 1618* 200 CHARACTER NOT ALLOWED IN PASCAL TEXT 1619* 201 ERROR IN REAL CONSTANT DIGIT EXPECTED 1620* 202 ERROR IN EXPONENT OF REAL CONSTANT 1621* 203 INTEGER CONSTANT OUT OF RANGE 1622* 204 ILLEGAL DIGIT IN OCTAL CONSTANT 1623* 205 EXPONENT OUT OF RANGE 1624* 206 DECIMAL CONSTANT IS TOO LONG 1625* 207 OCTAL CONSTANT IS TOO LONG 1626* 208 ILLEGAL NESTING OF ( / AND / ) 1627* 209 CHARACTERS' STRING IS TOO LONG 1628* 210 HEXADECIMAL VALUE IS TOO LONG 1629* 211 ILLEGAL DIGIT IN HEXADECIMAL CONSTANT 1630* 212 ERROR IN COMPILATION'S OPTIONS 1631* 215 Too many digits 1632* 216 Only 0 ou 1 allowed 1633* 217 REAL > MAXREAL 1634* 218 REAL < MINREAL 1635* 219 TOO MANY PRECISION DIGITS FOR A REAL 1636* 220 Empty string not allowed 1637* 222 1638* 223 Invalid number separator 1639* 224 REFERENCE TO THIS IDENTIFIER IS NOT ALLOWED HERE. 1640* E *) 1641 LABEL 1, (* BEGINNING OF INSYMBOL *) 1642 3, (* EXIT WHEN KEY-WORD IS FOUND *) 1643 4, 1644 5 ; (* COMMENT *) 1645 VAR 1646 it, k, scale, exp, valhex : integer ; 1647 sign, combraces, option, fin : boolean ; 1648 locvalue : integer ; 1649 locsomme : integer ; 1650 ch1 : char ; 1651 nbrstring : numberstring ; 1652 1653 BEGIN (* INSYMBOL *) 1654 IF building_from_schema.on THEN 1655 WITH building_from_schema DO 1656 BEGIN 1657 WITH current_token^ DO 1658 CASE kind OF 1659 symbol_token : BEGIN no := tno ; cl := tcl END ; 1660 name_token : BEGIN aval := taval ; no := 1 END ; 1661 int_const_token : BEGIN no := 2 ; cl := 1 ; ival := t_int_value END ; 1662 real_const_token : BEGIN no := 2 ; cl := 2 ; rval := t_real_value END ; 1663 char_const_token : BEGIN no := 2 ; cl := 4 ; ival := ord (t_char_value) END ; 1664 END ; 1665 current_token := current_token^.next ; 1666 IF current_token = NIL THEN on := false ; 1667 END 1668 ELSE *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 61 1669 BEGIN 1670 1 : IF dpoint THEN (* INTEGER.. AT LAST CALL *) (* .. *) 1671 BEGIN 1672 dpoint := false ; no := 39 ; 1673 nextch ; 1674 END ELSE 1675 BEGIN (* NOT DPOINT *) 1676 4 : 1677 WHILE ch = ' ' DO nextch ; (* CH IS CHECKED BY NEXTCH *) 1678 symbolindex := sourceindex ; 1679 symbolline := liglues ; 1680 symbolfile := sourcenbr ; 1681 IF ch IN ['a'..'z', '$'] THEN 1682 BEGIN 1683 IF ch = '$' THEN 1684 IF envstandard = stdpure THEN 1685 BEGIN 1686 error (200) ; 1687 nextch ; 1688 IF NOT (ch IN ['a'..'z']) THEN GOTO 4 1689 END ; 1690 k := 0 ; aval := blank ; 1691 IF envstandard <> stdextend THEN 1692 REPEAT 1693 IF k < maxident THEN 1694 BEGIN 1695 k := k + 1 ; aval [k] := ch ; 1696 END ; 1697 nextch ; 1698 UNTIL NOT (ch IN ['a'..'z', '0'..'9']) 1699 ELSE 1700 REPEAT 1701 IF k < maxident THEN 1702 BEGIN 1703 k := k + 1 ; aval [k] := ch ; 1704 END ; 1705 nextch ; 1706 UNTIL NOT (ch IN ['a'..'z', '0'..'9', '_']) ; (* UNDERSCORE IS ALLOWED IN NO STANDARD *) 1707 (* KEY-WORDS *) 1708 IF k <= maxkeylength THEN 1709 FOR it := wl1 [k] TO wl2 [k] DO (* KEY-WORD *) 1710 IF aval = wd [it] THEN 1711 BEGIN 1712 no := wno [it] ; cl := wcl [it] ; GOTO 3 ; (* EXIT LOOP ,KEY-WORD FOUND *) 1713 END ; 1714 no := 1 ; cl := k ; 1715 IF check_id THEN 1716 IF aval = forbidden_id THEN error (224) 1717 ELSE 1718 BEGIN 1719 IF forbidden_id_list^.next = NIL THEN 1720 BEGIN 1721 new (forbidden_id_list^.next) ; 1722 WITH forbidden_id_list^.next^ DO 1723 BEGIN 1724 previous := forbidden_id_list ; 1725 next := NIL *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 62 1726 END 1727 END ; 1728 forbidden_id_list := forbidden_id_list^.next ; 1729 forbidden_id_list^.name := aval ; 1730 END ; 1731 (* if aval[1] = '$' then error(200) ; *) 1732 3 : 1733 IF no = 56 THEN (* $include founded *) 1734 BEGIN 1735 traiteinclude ; 1736 GOTO 1 1737 END ; 1738 IF no = 57 THEN 1739 1740 IF NOT skipcode THEN 1741 BEGIN 1742 traiteoptions ; 1743 GOTO 1 ; 1744 END ; 1745 END (* letter *) ELSE 1746 IF ch IN digits THEN 1747 BEGIN (* NUMBER *) 1748 no := 2 ; cl := 1 ; 1749 it := 1 ; ival := 0 ; nbrstring := '+0000000000000000000' ; 1750 WHILE ch = '0' DO nextch ; (* SKIP LEADING ZEROES *) 1751 WHILE ch IN digits DO 1752 BEGIN 1753 it := it + 1 ; 1754 IF it <= maxdigitsinteger THEN 1755 nbrstring [it] := ch ; 1756 nextch 1757 END ; 1758 IF ch IN letters THEN 1759 IF ch <> 'E' THEN 1760 IF ch <> 'e' THEN 1761 error (223) ; 1762 IF (it > maxdigitsinteger) OR 1763 ((it = maxdigitsinteger) AND (nbrstring > maxintegerstring)) 1764 THEN 1765 BEGIN 1766 error (203) ; 1767 it := 1 1768 END 1769 ELSE 1770 FOR k := 2 TO it DO 1771 ival := (ival * 10) + (ord (nbrstring [k]) - ord ('0')) ; 1772 exp := it - 1 ; 1773 1774 IF ch = '.' THEN 1775 BEGIN 1776 nextch ; 1777 IF ch = '.' THEN dpoint := true ELSE 1778 IF ch = ')' THEN ch := ']' ELSE 1779 BEGIN 1780 rval := ival ; cl := 2 ; (* REAL *) 1781 IF NOT (ch IN digits) THEN error (201) ELSE 1782 BEGIN *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 63 1783 IF it = 1 THEN 1784 WHILE ch = '0' DO 1785 BEGIN 1786 exp := exp - 1 ; 1787 nextch 1788 END ; 1789 WHILE ch IN digits DO 1790 BEGIN 1791 it := it + 1 ; 1792 IF it <= maxdigitsreal THEN nbrstring [it] := ch ; 1793 nextch 1794 END ; 1795 IF it > maxdigitsreal THEN warning (219) 1796 END 1797 END 1798 END (* ch = '.' *) ; 1799 1800 IF ch = 'e' THEN 1801 BEGIN 1802 nextch ; 1803 rval := ival ; cl := 2 ; scale := exp ; exp := 0 ; (* REAL *) 1804 sign := false ; 1805 IF ch = '+' THEN nextch 1806 ELSE 1807 IF ch = '-' THEN 1808 BEGIN 1809 nextch ; sign := true ; 1810 END ; 1811 IF NOT (ch IN digits) THEN error (201) 1812 ELSE 1813 REPEAT 1814 IF exp < maxexpon THEN 1815 exp := (exp * 10) + (ord (ch) - ord ('0')) ; 1816 nextch 1817 UNTIL NOT (ch IN digits) ; 1818 IF sign THEN exp := scale - exp 1819 ELSE exp := scale + exp ; 1820 END (* CH = 'E' *) ; 1821 1822 IF cl = 2 THEN (* CHECK BOUNDS AND CONVERT REAL *) 1823 IF it = 1 THEN rval := 0 (* MANTISSA IS ZERO *) 1824 ELSE 1825 IF (exp > maxexp) 1826 OR ((exp = maxexp) AND (nbrstring > maxrealstring)) THEN error (217) 1827 ELSE 1828 IF (exp < minexp) 1829 OR ((exp = minexp) AND (nbrstring < minrealstring)) THEN error (218) 1830 ELSE 1831 BEGIN 1832 exp := exp - 19 ; 1833 convertreal (nbrstring, exp, rval) 1834 END ; 1835 1836 END (* CH IN DIGITS *) ELSE 1837 BEGIN (* SPECIAL CHARACTER *) 1838 IF ch = '''' THEN (* ALFA OR CHAR *) 1839 BEGIN *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 64 1840 no := 2 ; longchaine := 0 ; instring := true ; 1841 REPEAT 1842 IF eoln (mpcogin) THEN 1843 BEGIN 1844 IF envstandard <> stdextend THEN error (231) ; 1845 nextch ; ch := chr (10) ; (* ASCII NEW-LINE *) 1846 END ELSE 1847 nextch ; 1848 IF ch = '''' THEN (* ' *) 1849 BEGIN 1850 instring := false ; (* TO OBTAIN A PASCAL CHAR *) 1851 nextch ; 1852 instring := ch = '''' ; 1853 END ELSE 1854 IF ch = chr (92) THEN 1855 IF envstandard = stdsol THEN 1856 BEGIN 1857 nextch ; 1858 IF ch IN ['N', 'n', 'Z', 'z', 'T', 't', 'R', 'r', 'V', 'A'..'F', 'a'..'f', 1859 '0'..'9'] THEN 1860 BEGIN 1861 CASE ch OF 1862 'N', 'n' : ch := chr (10) ; (* ASCII NEWLINE *) 1863 'Z', 'z' : ch := chr (0) ; 1864 'T', 't' : ch := chr (9) ; (* HORIZONTAL TABULATION *) 1865 'R', 'r' : ch := chr (13) ; (* CARRIAGE RETURN *) 1866 'V' : ch := chr (92) ; (* ASCII ANTISLASH *) 1867 '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 1868 'A', 'B', 'C', 'D', 'E', 'F', 1869 'a', 'b', 'c', 'd', 'e', 'f' : BEGIN (* HEXADECIMAL DIGIT *) 1870 locvalue := 0 ; 1871 IF ch IN ['0'..'9'] THEN 1872 locvalue := ord (ch) - ord ('0') ELSE 1873 IF ch IN ['A'..'F'] THEN 1874 locvalue := ord (ch) - ord ('A') + 10 ELSE 1875 locvalue := ord (ch) - ord ('a') + 10 ; 1876 locsomme := locvalue * 16 ; (* FIRST DIGIT HEXA *) 1877 nextch ; 1878 IF ch IN ['0'..'9'] THEN 1879 locvalue := ord (ch) - ord ('0') ELSE 1880 IF ch IN ['A'..'F'] THEN 1881 locvalue := ord (ch) - ord ('A') + 10 ELSE 1882 locvalue := ord (ch) - ord ('a') + 10 ; 1883 locsomme := locsomme + locvalue ; 1884 1885 IF locsomme <= maxchar THEN 1886 ch := chr (locsomme) ELSE 1887 error (303) ; 1888 1889 END (* HEXADECIMAL DIGIT *) ; 1890 END (* case CH *) ; 1891 END ; 1892 END (* chr (92 *) ; 1893 IF instring THEN 1894 BEGIN 1895 longchaine := longchaine + 1 ; 1896 IF longchaine <= maxval THEN bufval [longchaine] := ch ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 65 1897 END ; 1898 UNTIL NOT instring ; 1899 IF envstandard <> stdextend THEN 1900 IF longchaine = 0 THEN 1901 error (220) ; 1902 IF ch = 'x' THEN (* HEXA *) (* HEXADECIMAL *) 1903 BEGIN 1904 IF envstandard = stdpure THEN 1905 error (33) ; 1906 nextch ; 1907 cl := 1 ; (* CODE FOR INTEGER *) 1908 ival := 0 ; 1909 IF longchaine > maxhexdi THEN error (210) ELSE 1910 FOR it := 1 TO longchaine DO 1911 BEGIN 1912 IF bufval [it] IN digits 1913 THEN valhex := ord (bufval [it]) - ord ('0') 1914 ELSE 1915 1916 IF bufval [it] IN ['A'..'F'] THEN 1917 valhex := ord (bufval [it]) - ord ('A') + 10 ELSE 1918 IF bufval [it] IN ['a'..'f'] THEN 1919 valhex := ord (bufval [it]) - ord ('a') + 10 ELSE 1920 BEGIN 1921 error (211) ; valhex := 0 ; 1922 END ; 1923 append_ (ival, 4, valhex) ; 1924 END ; 1925 END (* HEXA *) ELSE 1926 1927 IF ch = 'o' THEN (* octal number *) 1928 BEGIN 1929 IF envstandard = stdpure THEN 1930 error (32) ; 1931 nextch ; cl := 1 ; (* integer *) ival := 0 ; no := 2 ; 1932 IF longchaine > maxdig + 1 THEN error (207) ELSE 1933 FOR it := 1 TO longchaine DO 1934 BEGIN 1935 valhex := ord (bufval [it]) - ord ('0') ; 1936 IF NOT (valhex IN [0..7]) THEN 1937 BEGIN error (204) ; valhex := 0 ; 1938 END ; 1939 append_ (ival, 3, valhex) ; 1940 END (* for it *) ; 1941 END (* octal number *) ELSE 1942 IF ch = 'b' THEN (* binary *) 1943 BEGIN 1944 nextch ; cl := 1 ; (* integer *) ; ival := 0 ; no := 2 ; 1945 IF envstandard = stdpure THEN 1946 error (33) ; 1947 IF longchaine > bitsinword THEN error (215) ELSE 1948 FOR it := 1 TO longchaine DO 1949 BEGIN 1950 valhex := ord (bufval [it]) - ord ('0') ; 1951 IF NOT (valhex IN [0..1]) THEN 1952 BEGIN error (216) ; valhex := 0 ; 1953 END ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 66 1954 append_ (ival, 1, valhex) ; 1955 END ; (* FOR IT *) 1956 END ELSE 1957 IF longchaine = 1 THEN (* CHAR *) (* CHAR *) 1958 BEGIN 1959 cl := 4 ; ival := ord (bufval [1]) ; 1960 END (* CHAR *) ELSE (* STRING *) 1961 BEGIN (* ALFA *) 1962 cl := 3 ; 1963 IF longchaine > maxval THEN 1964 BEGIN 1965 error (209) ; longchaine := maxval ; 1966 END ; 1967 END ; (* ALFA *) 1968 IF longchaine >= longpad THEN longpad := longchaine ELSE 1969 REPEAT (* PADDING WITH SPACES *) 1970 bufval [longpad] := ' ' ; longpad := longpad - 1 ; 1971 UNTIL longpad = longchaine ; 1972 END (* ALFA OR CHAR *) ELSE 1973 BEGIN (* OTHER CHARS *) 1974 no := symno [ord (ch)] ; (* SINGLE CHAR *) 1975 cl := symcl [ord (ch)] ; 1976 ival := 0 ; 1977 IF NOT (eof (mpcogin) AND (sourcenbr = 0)) THEN 1978 BEGIN 1979 ch1 := ch ; 1980 nextch ; 1981 (* TEST FOR DOUBLE CHARS *) 1982 IF ch1 = ':' THEN 1983 BEGIN 1984 IF ch = '=' THEN (* := *) 1985 BEGIN 1986 no := 20 ; nextch ; 1987 END ; 1988 END ELSE 1989 IF ch1 = '.' THEN 1990 BEGIN 1991 IF ch = '.' THEN (* .. *) 1992 BEGIN 1993 no := 39 ; nextch ; 1994 END ELSE 1995 IF ch = ')' THEN (* .) *) 1996 BEGIN 1997 no := 12 ; nextch ; 1998 END ; 1999 END ELSE 2000 IF ch1 = '-' THEN 2001 BEGIN 2002 IF envstandard = stdextend THEN 2003 IF ch = '>' THEN (* CRISS EXTENSION *) 2004 BEGIN 2005 no := 49 ; cl := 0 ; nextch ; 2006 END ; 2007 END ELSE 2008 IF ch1 = '<' THEN 2009 BEGIN 2010 IF ch = '=' THEN (* <= *) *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 67 2011 BEGIN (* NO=8 *) 2012 cl := 2 ; nextch ; 2013 END ELSE 2014 IF ch = '>' THEN (* <> *) 2015 BEGIN 2016 cl := 5 ; nextch ; 2017 END ; 2018 END ELSE 2019 IF ch1 = '>' THEN 2020 BEGIN 2021 IF ch = '=' THEN (* >= *) 2022 BEGIN (* NO=8 *) 2023 cl := 3 ; nextch ; 2024 END ; 2025 END ELSE 2026 IF ch1 = '/' THEN 2027 BEGIN 2028 IF (ch = ')') THEN (* NS *) (* / ) *) 2029 BEGIN 2030 error (70) ; 2031 nextch ; 2032 GOTO 1 ; (* FOLLOWING MECHANISM IS OBSOLETE AND SKIPPED *) 2033 IF envstandard <> stdextend THEN error (70) ; 2034 nextch ; 2035 IF nbccond = 0 THEN error (208) 2036 ELSE nbccond := nbccond - 1 ; 2037 GOTO 1 ; (* BEGINNING OF INSYMBOL *) 2038 END ; 2039 END ELSE 2040 IF ch1 = '(' THEN 2041 BEGIN 2042 IF ch = '.' THEN 2043 BEGIN (* (. *) 2044 no := 11 ; nextch ; 2045 END ELSE 2046 IF ch = '*' THEN 2047 BEGIN (* (* *) 2048 nextch ; 2049 combraces := false ; 2050 incomment := true ; 2051 END ; 2052 END ELSE 2053 IF ch1 = '{' THEN (* COMMENT WITH BRACE *) 2054 BEGIN 2055 combraces := true ; 2056 (* NEXTCH HAS BEEN DONE *) 2057 5 : incomment := true ; 2058 END ; (* COMMENT *) 2059 END ; (* OTHER CHARS *) 2060 END (* NOT EOF(MPCOGIN) *) 2061 END ; (* SPECIAL CHARS *) 2062 END ; (* NOT DPOINT *) 2063 2064 IF incomment THEN 2065 BEGIN 2066 IF envstandard = stdpure THEN 2067 REPEAT *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 68 2068 WHILE NOT (ch IN ['}', '*']) DO nextch ; 2069 fin := ch = '}' ; 2070 IF NOT fin THEN 2071 BEGIN 2072 nextch ; fin := ch = ')' 2073 END 2074 UNTIL fin 2075 ELSE 2076 IF combraces THEN (* COMMENT WITH BRACES *) 2077 WHILE ch <> '}' DO nextch 2078 ELSE 2079 REPEAT 2080 WHILE ch <> '*' DO nextch ; 2081 nextch ; fin := ch = ')' ; 2082 UNTIL fin ; 2083 incomment := false ; 2084 nextch ; 2085 GOTO 1 ; (* RESTART INSYMBOL *) 2086 END ; 2087 END ; 2088 2089 $OPTIONS compile = trace $ 2090 IF anytrace > low THEN 2091 BEGIN 2092 write (mpcogout, ' @@@ RETOUR INSYMBOL @@@ WITH NO,CL', no : 4, cl : 4) ; nextline ; 2093 END ; 2094 $OPTIONS compile = true $ 2095 END (* INSYMBOL *) ; 2096 2097 2098 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 69 2099 2100 PROCEDURE skip (nosymb : integer) ; FORWARD ; 2101 PROCEDURE skipextd (nosymb : setofno) ; FORWARD ; 2102 2103 (* *************************************************** TRAITEINCLUDE ******************** *) 2104 2105 PROCEDURE traiteinclude ; 2106 2107 (* c CALLED BY INSYMBOL WHEN $INCLUDE DIRECTIVE HAS BEEN ENCOUNTERED C *) 2108 2109 (* E 2110* 35 : MAX LENGTH FOR EXTERNAL IS 168 CHARS 2111* 38 : ',' OR '$' EXPECTED 2112* 39 : STRING OR '*' EXPECTED 2113* 40 : '$' EXPECTED 2114* 41 : THIS STRING CANNOT BE > 32 CHARS E *) 2115 2116 LABEL 2117 10 ; (* EXIT ON ERROR *) 2118 2119 VAR 2120 filename : externid ; (* NAME OF INCLUDE FILE *) 2121 stringdeb, stringfin : alfaid ; (* OPTIONAL BEGIN AND END STRINGS *) 2122 it, ldeb, lfin : integer ; 2123 2124 BEGIN (* TRAITEINCLUDE *) 2125 $OPTIONS compile = trace $ 2126 IF anytrace > low THEN 2127 BEGIN 2128 write (mpcogout, ' @@@ DEBUT TRAITEINCLUDE @@@') ; nextline ; 2129 END ; 2130 $OPTIONS compile = true $ 2131 insymbol ; (* FILENAME STRING *) 2132 IF NOT ((no = 2) AND (cl = 3)) THEN 2133 BEGIN 2134 error (19) ; 2135 skip (55) ; 2136 GOTO 10 2137 END ; 2138 IF longchaine > maxexternname THEN 2139 BEGIN 2140 error (35) ; 2141 longchaine := maxexternname 2142 END ; 2143 filename := ' ' ; 2144 FOR it := 1 TO longchaine DO 2145 filename [it] := bufval [it] ; 2146 stringdeb := ' ' ; 2147 stringfin := ' ' ; 2148 (* CHECK FOR OPTIONNAL STRINGS *) 2149 WHILE ch = ' ' DO nextch ; 2150 IF ch = '$' THEN 2151 BEGIN 2152 stringdeb := '* ' ; ldeb := 1 ; 2153 stringfin := '* ' ; lfin := 1 2154 END 2155 ELSE *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 70 2156 BEGIN 2157 insymbol ; 2158 IF no <> 15 THEN 2159 BEGIN 2160 error (38) ; 2161 skip (55) ; 2162 GOTO 10 2163 END ; 2164 insymbol ; (* '*' OR STRING EXPECTED *) 2165 IF (no = 6) AND (cl = 1) THEN (* '*' *) 2166 BEGIN 2167 stringdeb := '* ' ; 2168 ldeb := 1 2169 END 2170 ELSE 2171 BEGIN 2172 IF NOT ((no = 2) AND (cl = 3)) THEN 2173 BEGIN 2174 error (39) ; 2175 skip (55) ; 2176 GOTO 10 2177 END ; 2178 IF longchaine > maxident THEN 2179 BEGIN 2180 error (41) ; 2181 longchaine := maxident 2182 END ; 2183 FOR it := 1 TO longchaine DO 2184 stringdeb [it] := bufval [it] ; 2185 ldeb := longchaine ; 2186 END ; 2187 WHILE ch = ' ' DO nextch ; 2188 IF ch = '$' THEN 2189 BEGIN 2190 stringfin := '* ' ; 2191 lfin := 1 2192 END 2193 ELSE 2194 BEGIN 2195 insymbol ; 2196 IF no <> 15 THEN 2197 BEGIN 2198 error (38) ; 2199 skip (55) ; 2200 GOTO 10 2201 END ; 2202 insymbol ; (* '*' OR STRING EXPECTED *) 2203 IF (no = 6) AND (cl = 1) THEN (* '*' *) 2204 BEGIN 2205 stringfin := '* ' ; 2206 lfin := 1 2207 END 2208 ELSE 2209 BEGIN 2210 IF NOT ((no = 2) AND (cl = 3)) THEN 2211 BEGIN 2212 error (39) ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 71 2213 skip (55) ; 2214 GOTO 10 2215 END ; 2216 IF longchaine > maxident THEN 2217 BEGIN 2218 error (41) ; 2219 longchaine := maxident 2220 END ; 2221 FOR it := 1 TO longchaine DO 2222 stringfin [it] := bufval [it] ; 2223 lfin := longchaine ; 2224 END ; 2225 WHILE ch = ' ' DO nextch ; 2226 IF ch <> '$' THEN 2227 BEGIN 2228 error (40) ; 2229 skip (55) ; 2230 GOTO 10 2231 END 2232 END 2233 END ; 2234 beginsource (filename, stringdeb, ldeb, stringfin, lfin) ; (* BEGIN INCLUDE FILE *) 2235 reset (mpcogin) ; 2236 nextch ; 2237 10 : 2238 $OPTIONS compile = trace $ 2239 IF anytrace > low THEN 2240 BEGIN 2241 write (mpcogout, ' @@@ FIN TRAITEINCLUDE @@@') ; nextline ; 2242 END ; 2243 $OPTIONS compile = true $ 2244 END (* TRAITEINCLUDE *) ; 2245 2246 2247 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 72 2248 2249 (* ***************************************** TRAITEOPTIONS ************************************** *) 2250 2251 PROCEDURE traiteoptions ; 2252 2253 (* C CALLED BY INSYMBOL WHEN "$OPTIONS" DIRECTIVE IS ENCOUNTERED C *) 2254 2255 (* E ERRORS DETECTED ARE : 2256* 2257* 47 : OPTION IDENTIFIER EXPECTED 2258* 16 : "=" EXPECTED 2259* 50 : "$" OR ";" EXPECTED 2260* 49 : "+" OR "-" EXPECTED 2261* 34 : CONDITION IDENTIFIER EXPECTED 2262* 35 : "," OR ";" OR "$" EXPECTED 2263* 48 : UNKNOWN OPTION 2264* 15 : INTEGER EXPECTED 2265* 2266* E *) 2267 2268 LABEL 2269 1, 3, 4, 5, 10 ; 2270 2271 VAR 2272 ch : char ; 2273 flag : boolean ; 2274 work : condaddr ; 2275 2276 (* ************************************************* SKIPOPTION < TRAITEOPTIONS ************************* *) 2277 2278 PROCEDURE skipoption (errno : integer) ; 2279 2280 BEGIN (* SKIPOPTION *) 2281 error (errno) ; 2282 IF no = 55 THEN GOTO 10 ; 2283 IF no = 16 THEN GOTO 1 ; 2284 skipextd ([16, 55]) ; 2285 IF no = 55 THEN GOTO 10 2286 ELSE GOTO 1 ; 2287 END (* SKIPOPTION *) ; 2288 2289 (* ************************************************ CHECKPLUSMINUS < TRAITEOPTIONS ********************** *) 2290 2291 FUNCTION checkplusminus : boolean ; 2292 2293 BEGIN (* CHECKPLUSMINUS *) 2294 insymbol ; 2295 checkplusminus := false ; 2296 IF (no = 7) AND (cl = 1) THEN checkplusminus := true 2297 ELSE IF NOT ((no = 7) AND (cl = 2)) THEN skipoption (49) ; 2298 END (* CHECKPLUSMINUS *) ; 2299 2300 (* ******************************************* FINDCOND < TRAITEOPTIONS ******************** *) 2301 2302 PROCEDURE findcond ; 2303 2304 LABEL 5 ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 73 2305 2306 BEGIN 2307 work := firstcond ; 2308 5 : 2309 IF work <> NIL THEN 2310 IF work^.condname <> aval THEN 2311 BEGIN 2312 work := work^.nextcond ; 2313 GOTO 5 ; 2314 END ; 2315 END ; (* findcond *) 2316 2317 (* ****************************** CHECKVALUE < TRAITEOPTIONS ******************* *) 2318 2319 FUNCTION checkvalue : boolean ; 2320 2321 VAR 2322 invert : boolean ; 2323 BEGIN 2324 insymbol ; 2325 IF no <> 1 THEN 2326 IF NOT ((no = 5) AND (cl = 1)) THEN skipoption (314) 2327 ELSE 2328 BEGIN 2329 invert := true ; 2330 insymbol ; 2331 IF no <> 1 THEN skipoption (316) 2332 END 2333 ELSE invert := false ; 2334 IF aval = 'true' THEN checkvalue := true 2335 ELSE IF aval = 'false' THEN checkvalue := false 2336 ELSE BEGIN 2337 findcond ; 2338 IF work = NIL THEN skipoption (315) ; 2339 checkvalue := work^.active ; 2340 END ; 2341 IF invert THEN checkvalue := NOT checkvalue ; 2342 END (* CHECKVALUE *) ; 2343 2344 (* ******************************* CREATECOND < TRAITEOPTIONS ***************************** *) 2345 2346 PROCEDURE createcond ; 2347 2348 BEGIN 2349 new (work) ; 2350 IF work = NIL THEN heaperror ; 2351 WITH work^ DO 2352 BEGIN 2353 nextcond := firstcond ; 2354 condname := aval ; 2355 setinargs := false ; 2356 active := false ; 2357 activated := false ; 2358 END ; 2359 firstcond := work ; 2360 2361 END (* CREATECOND *) ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 74 2362 2363 BEGIN (* TRAITEOPTION *) 2364 2365 $OPTIONS compile = trace $ 2366 IF anytrace > low THEN 2367 BEGIN 2368 write (mpcogout, ' @@@ DEBUT TRAITEOPTIONS @@@') ; nextline ; 2369 END ; 2370 $OPTIONS compile = true $ 2371 2372 1 : 2373 insymbol ; 2374 IF no <> 1 THEN skipoption (47) ; 2375 ch := aval [1] ; 2376 IF NOT (ch IN ['w', 'l', 't', 'e', 'c', 'p', 'd', 's']) THEN skipoption (48) ; 2377 CASE ch OF 2378 'w' : BEGIN 2379 IF cl <> 3 THEN skipoption (48) ; 2380 IF NOT (aval [2] IN ['d', 's', 'g']) THEN skipoption (48) ; 2381 IF NOT (aval [3] IN ['0'..'3']) THEN skipoption (48) ; 2382 CASE aval [2] OF 2383 'd' : IF (NOT wdsetinargs) THEN tracelevel (decltrace, aval [3]) ; 2384 's' : IF (NOT wssetinargs) THEN tracelevel (stattrace, aval [3]) ; 2385 'g' : IF (NOT wgsetinargs) THEN BEGIN 2386 tracelevel (genetrace, aval [3]) ; 2387 outcode := writecode OR (genetrace > none) ; 2388 END ; 2389 END (* CASE *) ; 2390 insymbol ; 2391 END ; 2392 'l' : IF aval = 'l ' THEN 2393 BEGIN 2394 flag := checkplusminus ; 2395 IF NOT skipcode THEN 2396 BEGIN 2397 listyes := flag ; 2398 writecode := writecode AND listyes ; 2399 outcode := writecode OR (genetrace > none) ; 2400 END ; 2401 insymbol ; 2402 END 2403 ELSE 2404 IF aval = 'll' THEN 2405 BEGIN 2406 insymbol ; 2407 IF NOT ((no = 8) AND (cl = 6)) THEN skipoption (16) ; 2408 insymbol ; 2409 IF NOT ((no = 2) AND (cl = 1)) THEN skipoption (15) ; 2410 (* WARNING : LL INEFFECTIVE *) 2411 warning (222) ; 2412 insymbol ; 2413 END 2414 ELSE IF aval = 'listing' THEN 2415 BEGIN 2416 insymbol ; 2417 IF NOT ((no = 8) AND (cl = 6)) THEN skipoption (16) ; 2418 listyes := checkvalue ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 75 2419 writecode := writecode AND listyes ; 2420 outcode := writecode OR (genetrace > none) ; 2421 insymbol 2422 END 2423 ELSE skipoption (48) ; 2424 't' : IF aval = 't ' THEN 2425 BEGIN 2426 flag := checkplusminus ; 2427 IF (NOT skipcode) AND (NOT tsetinargs) THEN 2428 BEGIN 2429 divcheck := flag ; 2430 asscheck := divcheck ; 2431 inxcheck := divcheck ; 2432 END ; 2433 insymbol ; 2434 END 2435 ELSE skipoption (48) ; 2436 'p' : IF aval = 'page' THEN 2437 BEGIN 2438 IF NOT skipcode THEN skippage := true ; 2439 insymbol ; 2440 END 2441 ELSE IF aval = 'p ' THEN 2442 BEGIN 2443 flag := checkplusminus ; 2444 (* WARNING : P INEFFECTIVE *) 2445 warning (222) ; 2446 insymbol ; 2447 END 2448 ELSE skipoption (48) ; 2449 'e' : IF aval = 'ec' THEN 2450 BEGIN 2451 flag := checkplusminus ; 2452 (* WARNING : EC INEFFECTIVE *) 2453 warning (222) ; 2454 insymbol ; 2455 END 2456 ELSE skipoption (48) ; 2457 'c' : IF aval = 'cond' THEN 2458 BEGIN 2459 insymbol ; 2460 IF NOT ((no = 8) AND (cl = 6)) THEN skipoption (16) ; 2461 3 : 2462 insymbol ; 2463 IF no <> 1 THEN 2464 IF NOT (no IN wnoset) THEN skipoption (34) 2465 ELSE 2466 IF ((no = 6) AND (NOT (cl IN [3, 4, 5]))) 2467 OR ((no = 7) AND (cl <> 3)) 2468 OR ((no = 8) AND (cl <> 7)) THEN skipoption (34) ; 2469 findcond ; 2470 IF work = NIL THEN 2471 createcond ; 2472 flag := checkplusminus ; 2473 WITH work^ DO 2474 IF NOT setinargs THEN active := flag ; 2475 insymbol ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 76 2476 IF NOT (no IN [15, 16, 55]) THEN skipoption (35) ; 2477 IF no = 15 THEN GOTO 3 ; 2478 END 2479 ELSE IF aval = 'cc' THEN 2480 BEGIN 2481 insymbol ; 2482 IF NOT ((no = 8) AND (cl = 6)) THEN skipoption (16) ; 2483 4 : 2484 insymbol ; 2485 IF no <> 1 THEN 2486 IF NOT (no IN wnoset) THEN skipoption (34) 2487 ELSE 2488 IF ((no = 6) AND (NOT (cl IN [3, 4, 5]))) 2489 OR ((no = 7) AND (cl <> 3)) 2490 OR ((no = 8) AND (cl <> 7)) THEN skipoption (34) ; 2491 findcond ; 2492 IF work = NIL THEN 2493 createcond ; 2494 work^.activated := checkplusminus ; 2495 insymbol ; 2496 IF NOT (no IN [15, 16, 55]) THEN skipoption (35) ; 2497 IF no = 15 THEN GOTO 4 ; 2498 work := firstcond ; 2499 skipcode := false ; 2500 WHILE work <> NIL DO 2501 BEGIN 2502 skipcode := skipcode OR ((NOT work^.active) AND work^.activated) ; 2503 work := work^.nextcond ; 2504 END ; 2505 END 2506 ELSE IF aval = 'compile' THEN 2507 BEGIN 2508 insymbol ; 2509 IF NOT ((no = 8) AND (cl = 6)) THEN skipoption (16) ; 2510 skipcode := NOT checkvalue ; 2511 insymbol ; 2512 END 2513 ELSE skipoption (48) ; 2514 's' : IF aval = 'switch' THEN 2515 BEGIN 2516 5 : 2517 insymbol ; 2518 IF no <> 1 THEN skipoption (316) ; 2519 findcond ; 2520 IF work = NIL THEN createcond ; 2521 insymbol ; 2522 IF no = 20 THEN (* := *) 2523 BEGIN 2524 flag := checkvalue ; 2525 insymbol ; 2526 END 2527 ELSE flag := false ; (* default *) 2528 WITH work^ DO 2529 IF NOT setinargs THEN active := flag ; 2530 IF NOT (no IN [15, 16, 55]) THEN skipoption (36) ; 2531 IF no = 15 THEN GOTO 5 ; 2532 END *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 77 2533 ELSE skipoption (48) ; 2534 'd' : IF aval = 'debug' THEN 2535 BEGIN 2536 insymbol ; (* = *) 2537 IF NOT ((no = 8) AND (cl = 6)) THEN skipoption (16) ; 2538 flag := checkvalue ; 2539 IF (NOT tsetinargs) THEN 2540 BEGIN 2541 divcheck := flag ; 2542 asscheck := divcheck ; 2543 inxcheck := divcheck ; 2544 END ; 2545 2546 insymbol ; 2547 END 2548 ELSE skipoption (48) ; 2549 END (* CASE *) ; 2550 IF no = 16 THEN GOTO 1 ; 2551 IF no <> 55 THEN skipoption (50) ; 2552 10 : 2553 IF skipcode THEN 2554 BEGIN 2555 REPEAT 2556 insymbol ; 2557 UNTIL (no = 57) ; 2558 GOTO 1 ; 2559 END ; 2560 2561 $OPTIONS compile = trace $ 2562 IF anytrace > low THEN 2563 BEGIN 2564 write (mpcogout, ' @@@ FIN TRAITEOPTIONS @@@') ; nextline ; 2565 END ; 2566 $OPTIONS compile = true $ 2567 2568 END (* TRAITEOPTION *) ; 2569 2570 2571 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 78 2572 2573 (* **************************** STATEMENT BEGINS **************************** *) 2574 2575 PROCEDURE statement_begins (genp : boolean) ; 2576 2577 BEGIN 2578 IF ic <> startic THEN 2579 BEGIN 2580 sttplace := ic ; 2581 IF genp THEN 2582 IF profile THEN genprofileref 2583 ELSE IF longprofile THEN genlongprofileref ; 2584 END ; 2585 sttindex := symbolindex ; 2586 sttline := symbolline ; 2587 sttfile := symbolfile ; 2588 startic := ic ; 2589 end_statement := false ; 2590 END (* STATEMENT BEGINS *) ; 2591 2592 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 79 2593 2594 (* ****************************** STATEMENT ENDS **************************** *) 2595 2596 PROCEDURE statement_ends (sttlength : integer) ; 2597 2598 VAR 2599 locic : integer ; 2600 2601 BEGIN 2602 IF NOT end_statement THEN 2603 IF ic <> startic THEN 2604 BEGIN 2605 statnbr := statnbr + 1 ; 2606 WITH mapptr^[statnbr] DO 2607 BEGIN 2608 IF (oldline = sttline) 2609 AND (oldic <> ic) 2610 AND (oldfile = sttfile) 2611 AND (oldindex <> sttindex) THEN 2612 sttinline := sttinline + 1 2613 ELSE 2614 BEGIN 2615 sttinline := 1 ; 2616 oldfile := sttfile ; 2617 oldline := sttline ; 2618 END ; 2619 oldic := ic ; 2620 oldindex := sttindex ; 2621 word1 := (sttfile * twoto10) + (sttline DIV twoto4) ; 2622 locic := sttplace DIV bytesinword ; 2623 insert_ (locic, 18, word1) ; 2624 word2 := (sttinline * twoto27) + (sttindex * twoto9) + (sttlength MOD 256) ; 2625 insert_ ((sttline MOD twoto4), 32, word2) ; 2626 END ; 2627 end_statement := true ; 2628 END ; 2629 END (* STATEMENT ENDS *) ; 2630 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 80 2631 2632 (* *************************************************** NAMEISREF ************************ *) 2633 2634 PROCEDURE nameisref (box : ctp ; fil, lin : integer) ; 2635 2636 (* C FILLS REF STRUCTURE WHEN NAME IS REFERENCED C *) 2637 2638 VAR 2639 refbox : refptr ; 2640 2641 BEGIN 2642 IF NOT building_from_schema.on THEN 2643 WITH box^ DO 2644 BEGIN 2645 IF klass = vars THEN visrefincode := (NOT declarationpart) 2646 ELSE IF klass = proc THEN pisrefincode := (NOT declarationpart) AND (NOT procisactive) ; 2647 refbox := references ; 2648 IF refbox <> NIL THEN BEGIN 2649 IF refbox^.refnbr = maxref THEN BEGIN 2650 new (refbox) ; 2651 WITH refbox^ DO 2652 BEGIN 2653 nextref := references ; 2654 references := refbox ; 2655 refnbr := 1 2656 END ; 2657 END 2658 ELSE 2659 WITH refbox^ DO 2660 refnbr := refnbr + 1 ; 2661 WITH refbox^ DO 2662 WITH refs [refnbr] DO BEGIN 2663 filen := fil ; 2664 linen := lin ; 2665 IF (environt = code) AND (NOT declarationpart) THEN sttmapind := statnbr * 2 2666 ELSE IF lin < 0 THEN sttmapind := -1 2667 ELSE sttmapind := -2 ; 2668 END ; 2669 END ; 2670 END ; 2671 2672 END (* NAMEISREF *) ; 2673 2674 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 81 2675 2676 (* ***********************************************SKIP************************* *) 2677 2678 PROCEDURE skip ; 2679 2680 (* C THIS PROCEDURE IS USED FOR ERROR'S RECOVERY MECHANISM. 2681* SKIPS ALL IRRELEVANT SYMBOLS DEFINED IN ERRCL 2682* STOPS ON BEGSYMBOL, ENDSYMBOL OR SPECIFIED 'NOSYMB' 2683* C *) 2684 BEGIN 2685 $OPTIONS compile = trace $ 2686 IF anytrace > none THEN 2687 BEGIN 2688 write (mpcogout, ' @@@ DEBUT SKIP @@@ WITH NOSYMB= ', nosymb : 4) ; nextline ; 2689 END ; 2690 $OPTIONS compile = true $ 2691 WHILE (errcl [no] = irrelsy) AND (nosymb # no) AND NOT eof (mpcogin) DO 2692 IF (no = 38) AND (cl = 2) (* RECORD *) THEN 2693 BEGIN 2694 REPEAT 2695 insymbol ; skip (46) ; (* NON ASSIGNED VALUE *) 2696 UNTIL NOT (no IN [16, 26]) ; (* ; CASE *) 2697 IF no = 22 (* END *) THEN 2698 insymbol ; 2699 END ELSE 2700 insymbol ; 2701 $OPTIONS compile = trace $ 2702 IF anytrace > low THEN 2703 BEGIN 2704 write (mpcogout, ' @@@ FIN SKIP @@@ ') ; nextline ; 2705 END ; 2706 $OPTIONS compile = true $ 2707 END (* SKIP *) ; 2708 2709 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 82 2710 2711 (* *********************************************** SKIPEXTD *) 2712 2713 PROCEDURE skipextd ; 2714 2715 (* C THIS PROCEDURE IS USED FOR ERROR'S RECOVERY MECHANISM. 2716* SKIPS ALL IRRELEVANT SYMBOLS DEFINED IN ERRCL 2717* STOPS ON BEGSYMBOL, ENDSYMBOL OR SPECIFIED 'NOSYMB'S 2718* C *) 2719 VAR 2720 it : integer ; 2721 2722 BEGIN (* SKIPEXTD *) 2723 $OPTIONS compile = trace $ 2724 IF anytrace > none THEN 2725 BEGIN 2726 write (mpcogout, ' @@@ DEBUT SKIPEXTD @@@ WITH NOSYMB= ') ; 2727 FOR it := minno TO maxno DO 2728 IF it IN nosymb THEN 2729 write (mpcogout, it : 4) ; 2730 nextline ; 2731 END ; 2732 $OPTIONS compile = true $ 2733 WHILE (errcl [no] = irrelsy) AND NOT (no IN nosymb) DO 2734 IF (no = 38) AND (cl = 2) (* RECORD *) THEN 2735 BEGIN 2736 REPEAT 2737 insymbol ; skip (46) ; (* NON ASSIGNED VALUE *) 2738 UNTIL NOT (no IN [16, 26]) ; (* ; CASE *) 2739 IF no = 22 (* END *) THEN 2740 insymbol ; 2741 END ELSE 2742 insymbol ; 2743 $OPTIONS compile = trace $ 2744 IF anytrace > low THEN 2745 BEGIN 2746 write (mpcogout, ' @@@ FIN SKIPEXTD @@@ with NO', no : 4) ; nextline ; 2747 END ; 2748 $OPTIONS compile = true $ 2749 END (* SKIPEXTD *) ; 2750 2751 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 83 2752 2753 (* *********************************************** SKIPTOCHAPTER *** *) 2754 2755 PROCEDURE skiptochapter ; 2756 2757 (* C THIS PROCEDURE IS USED FOR ERROR'S RECOVERY MECHANISM. 2758* SKIPS ALL IRRELEVANT SYMBOLS 2759* STOPS ON PROGRAM $RENAME $IMPORT $EXPORT LABEL CONST 2760* TYPE VAR $VALUE PROCEDURE FUNCTION BEGIN 2761* C *) 2762 BEGIN (* SKIPTOCHAPTER *) 2763 $OPTIONS compile = trace $ 2764 IF anytrace > none THEN 2765 BEGIN 2766 write (mpcogout, ' @@@ DEBUT SKIPTOCHAPTER @@@ ') ; nextline ; 2767 END ; 2768 $OPTIONS compile = true $ 2769 WHILE NOT (no IN [50, 51, 52, 53, 40, 41, 37, 43, 54, 44, 45, 21]) DO 2770 insymbol ; 2771 $OPTIONS compile = trace $ 2772 IF anytrace > low THEN 2773 BEGIN 2774 write (mpcogout, ' @@@ FIN SKIPTOCHAPTER @@@ ') ; nextline ; 2775 END ; 2776 $OPTIONS compile = true $ 2777 END (* SKIPTOCHAPTER *) ; 2778 2779 2780 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 84 2781 2782 (* ***********************************************INCONST********************** *) 2783 2784 PROCEDURE inconst (VAR code : integer ; VAR restype : ctp ; fnxt : ctp ; expression_allowed : boolean) ; 2785 2786 (* C THIS PROCEDURE IS CALLED IN ORDER TO ANALYSE A CONSTANTE 2787* .CODE IS A CODE FOR THE CONSTANTE 2788* 1 VALUE IN "CONINT" 5:SCALAR 2789* 2 VALUE IN "CONREEL" 0:ERROR 2790* 3 VALUE IN "BUFVAL" WITH LENGTH "LONGSTRING" 2791* 4 VALUE IN "CONINT" (CHARPTR) 2792* .RESTYPE TYPE OF CONSTANTE 2793* .FNXT IS CTP BEGINNING OF SEARCH IN CONTEXTTABLE C *) 2794 (* E 50 ERROR IN CONSTANT 2795* 60 OR NOT ALLOWED AS MONADIC OPERATOR 2796* 103 IDENTIFIER IS NOT OF APPROPRIATE CLASS 2797* 104 IDENTIFIER NOT DECLARED 2798* 144 : ILLEGAL TYPE OF EXPRESSION 2799* 225 : THIS EXPRESSION CANNOT BE EVALUATED HERE : IT NEEDS CODE GENERATION 2800* 105 SIGN NOT ALLOWED E *) 2801 VAR 2802 sign, isno7 : boolean ; 2803 savectptr : ctp ; 2804 it, jt : integer ; 2805 curbox : alfapt ; 2806 whattrace : levtrace ; 2807 BEGIN 2808 $OPTIONS compile = trace $ 2809 IF decltrace > stattrace THEN whattrace := decltrace ELSE 2810 whattrace := stattrace ; 2811 IF whattrace > none THEN 2812 BEGIN 2813 write (mpcogout, ' @@@ DEBUT INCONST @@@ FNXT IS ', ord (fnxt)) ; nextline ; 2814 IF whattrace = high THEN 2815 BEGIN 2816 write (mpcogout, ' GLOBALS NO,CL,IVAL,RVAL ARE ', no : 4, cl : 4, ival, rval) ; 2817 nextline ; 2818 END ; 2819 END ; 2820 $OPTIONS compile = true $ 2821 restype := NIL ; (* DEFAULT = ERROR *) 2822 IF expression_allowed AND (envstandard = stdextend) THEN 2823 BEGIN 2824 illegal_generation := false ; 2825 initattrvarbl (gattr) ; freeallregisters ; 2826 expression ; 2827 IF illegal_generation THEN error (225) ; 2828 WITH gattr DO 2829 IF (NOT (kind IN [sval, chain])) OR (typtr = NIL) THEN 2830 BEGIN 2831 IF (NOT illegal_generation) AND (typtr <> NIL) THEN error (225) ; 2832 restype := NIL ; conint := 0 2833 END 2834 ELSE 2835 IF kind = sval THEN 2836 BEGIN 2837 IF (typtr = intptr) OR *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 85 2838 (typtr^.form = scalar) OR 2839 (typtr = charptr) THEN 2840 BEGIN 2841 restype := typtr ; conint := val 2842 END ELSE 2843 IF typtr = realptr THEN 2844 BEGIN 2845 restype := realptr ; conreel := rsval 2846 END ELSE 2847 BEGIN 2848 error (144) ; 2849 restype := NIL ; conint := 0 2850 END 2851 END ELSE 2852 BEGIN 2853 restype := alfaptr ; 2854 longstring := 0 ; 2855 IF alfactp <> NIL THEN 2856 WITH alfactp^ DO 2857 BEGIN 2858 curbox := alfadeb ; longstring := 0 ; 2859 FOR it := 1 TO alfalong DIV longalfbox DO 2860 BEGIN 2861 FOR jt := 1 TO longalfbox DO 2862 BEGIN 2863 bufval [longstring + jt] := curbox^.alfaval [jt] ; 2864 END ; 2865 longstring := longstring + longalfbox ; 2866 curbox := curbox^.nextval ; 2867 END ; 2868 FOR it := 1 TO alfalong MOD longalfbox DO 2869 BEGIN 2870 longstring := longstring + 1 ; 2871 bufval [longstring] := curbox^.alfaval [it] ; 2872 END ; 2873 END 2874 END 2875 END 2876 ELSE 2877 BEGIN (* NOT EXPRESSION *) 2878 IF no = 7 (* + - OR *) THEN 2879 BEGIN 2880 sign := cl = 2 ; 2881 IF cl = 3 THEN error (60) ; 2882 isno7 := true ; 2883 insymbol ; 2884 END ELSE 2885 BEGIN 2886 sign := false ; 2887 isno7 := false ; 2888 END ; 2889 IF no = 2 THEN (* EXPLICIT CONST *) 2890 BEGIN 2891 IF (cl > 2) AND isno7 THEN error (105) ; 2892 CASE cl OF 2893 1 : BEGIN 2894 restype := intptr ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 86 2895 IF sign THEN conint := -ival ELSE conint := ival ; 2896 END ; 2897 2 : BEGIN 2898 restype := realptr ; 2899 IF sign THEN conreel := -rval ELSE conreel := rval ; 2900 END ; 2901 3 : BEGIN 2902 restype := alfaptr ; 2903 longstring := longchaine ; 2904 END ; 2905 4 : BEGIN 2906 restype := charptr ; 2907 conint := ival ; 2908 END ; 2909 END (* CASE *) ; 2910 insymbol ; 2911 END (* NO=2 *) ELSE 2912 IF no = 1 (* CONSTANT IDENTIFIER *) THEN 2913 BEGIN 2914 savectptr := ctptr ; 2915 srchrec (fnxt) ; 2916 IF ctptr = NIL THEN search ; 2917 IF ctptr = NIL THEN error (104) ELSE 2918 BEGIN 2919 IF symbolmap THEN nameisref (ctptr, symbolfile, symbolline) ; 2920 WITH ctptr@ DO 2921 BEGIN (* IDENTIFIER FOUND IN CONTEXTABLE *) 2922 IF klass # konst THEN error (103) ELSE 2923 BEGIN 2924 restype := contype ; 2925 IF restype = intptr THEN 2926 IF sign THEN conint := -values ELSE conint := values 2927 ELSE 2928 IF restype = realptr THEN 2929 IF sign THEN conreel := -valreel ELSE conreel := valreel 2930 ELSE 2931 BEGIN (* CHAR,SCALAR OR ALFA CONST *) 2932 IF isno7 THEN error (105) ; 2933 IF restype = alfaptr THEN 2934 BEGIN 2935 curbox := alfadeb ; longstring := 0 ; 2936 FOR it := 1 TO alfalong DIV longalfbox DO 2937 BEGIN 2938 FOR jt := 1 TO longalfbox DO 2939 BEGIN 2940 bufval [longstring + jt] := curbox@.alfaval [jt] ; 2941 END ; 2942 longstring := longstring + longalfbox ; 2943 curbox := curbox@.nextval ; 2944 END ; 2945 FOR it := 1 TO alfalong MOD longalfbox DO 2946 BEGIN 2947 longstring := longstring + 1 ; 2948 bufval [longstring] := curbox@.alfaval [it] ; 2949 END ; 2950 END (* ALFA *) ELSE (* CHAR OR SCALAR *) 2951 conint := values ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 87 2952 END ; (* CHAR,SCALAR OR ALFA *) 2953 END ; (* KONST *) 2954 END ; (* WITH CTPTR *) 2955 END ; 2956 ctptr := savectptr ; (* RESTORE CTPTR *) 2957 insymbol ; 2958 END (* IDENTIFIER *) ELSE 2959 error (50) ; 2960 END (* NOT EXPRESSION *) ; 2961 IF restype = NIL THEN code := 0 ELSE 2962 IF restype = intptr THEN code := 1 ELSE 2963 IF restype = realptr THEN code := 2 ELSE 2964 IF restype = alfaptr THEN code := 3 ELSE 2965 IF restype = charptr THEN code := 4 ELSE 2966 code := 5 ; 2967 $OPTIONS compile = trace $ 2968 IF whattrace > low THEN 2969 BEGIN 2970 IF whattrace = high THEN 2971 BEGIN 2972 write (mpcogout, 'GLOBALS CONINT,CONREEL ,LONGSTRING ARE', conint, conreel, 2973 longstring) ; nextline ; 2974 END ; 2975 write (mpcogout, ' @@@ FIN INCONST @@@ WITH V.CODE,V.RESTYPE = ', code : 3, 2976 ord (restype)) ; nextline ; 2977 END ; 2978 $OPTIONS compile = true $ 2979 END (* INCONST *) ; 2980 2981 2982 2983 2984 2985 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 88 2986 2987 (* ***********************************************CARTEEXEC ******************* *) 2988 2989 PROCEDURE carteexec ; 2990 2991 (* C MUST BE CALLED AFTER INITIALISE ; BEFORE FIRST INSYMBOL; 2992* SCANS $PARM IN ORDER TO 2993* ASSIGN TRACE'S VARIABLES 2994* STANDARD 2995* NOTRACE 2996* SYMBTABL 2997* XREFNEED C *) 2998 CONST 2999 count = 100 ; 3000 VAR 3001 lfound : boolean ; 3002 lch : char ; 3003 lastread : integer ; 3004 parmlist : PACKED ARRAY [1..count] OF char ; 3005 3006 3007 (* *************************************SCANPARM < CARTEEXEC ****************** *) 3008 3009 PROCEDURE scanparm (fstring : alfa ; flong : integer ; VAR strisfound : boolean ; 3010 VAR nextchar : char) ; 3011 3012 (* C SCANS IN PARMLIST ON 'FSTRING' ON'FLONG' CHARS; 3013* IF FOUND RETURNS 'STRISFOUND ' TRUE AND THE NEXTCHAR 3014* IF NOT RETURNS FALSE 3015* C *) 3016 LABEL 3017 1 ; (* EXIT LOOP FOR *) 3018 VAR 3019 i, j : integer ; 3020 lalf : alfa ; 3021 BEGIN 3022 (* DEFAULT VALUES *) 3023 strisfound := false ; nextchar := ' ' ; 3024 lalf := blank ; 3025 FOR i := 0 TO count - flong DO 3026 BEGIN 3027 FOR j := 1 TO flong DO 3028 lalf [j] := parmlist [i + j - 1] ; 3029 IF lalf = fstring THEN 3030 BEGIN 3031 strisfound := true ; 3032 IF i <= (count - flong) THEN 3033 BEGIN lastread := i + flong ; 3034 nextchar := parmlist [lastread] ; 3035 END ; 3036 GOTO 1 ; (* EXIT LOOP(S) *) 3037 END ; 3038 END ; 3039 1 : (* EXIT LOOP FOR *) 3040 END (* SCANPARM *) ; 3041 3042 *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 89 3043 BEGIN (* CARTEEXEC *) 3044 checks := true ; 3045 argv (1, parmlist) ; 3046 scanparm ('FAST ', 4, lfound, lch) ; 3047 IF lfound THEN fastoperator := true ; 3048 scanparm ('PRCODE ', 6, lfound, lch) ; 3049 IF lfound THEN codelist := true ; 3050 scanparm ('REFS ', 4, lfound, lch) ; 3051 IF lfound THEN symbolmap := true ; 3052 scanparm ('LIST ', 4, lfound, lch) ; 3053 IF lfound THEN 3054 BEGIN 3055 listyes := true ; 3056 symbolmap := true ; 3057 symbol_listing := true ; 3058 mapswitch := true 3059 END ; 3060 scanparm ('SKIPCODE', 8, lfound, lch) ; 3061 IF lfound THEN 3062 skipcode := true ; (* CONDITIONAL COMPILATION *) 3063 scanparm ('NOCHECKS', 8, lfound, lch) ; 3064 IF lfound THEN 3065 BEGIN 3066 checks := false ; 3067 tsetinargs := true ; 3068 END ; 3069 scanparm ('NOSTAND ', 7, lfound, lch) ; 3070 IF lfound THEN 3071 envstandard := stdextend ; 3072 scanparm ('STDSOL', 6, lfound, lch) ; 3073 IF lfound THEN 3074 BEGIN 3075 envstandard := stdsol ; 3076 END ; 3077 scanparm ('STRACE= ', 7, lfound, lch) ; 3078 IF lfound THEN 3079 BEGIN 3080 tracelevel (stattrace, lch) ; 3081 wssetinargs := true ; 3082 END ; 3083 scanparm ('DTRACE= ', 7, lfound, lch) ; 3084 IF lfound THEN 3085 BEGIN 3086 tracelevel (decltrace, lch) ; 3087 wdsetinargs := true ; 3088 END ; 3089 scanparm ('INTER', 5, lfound, lch) ; 3090 IF lfound THEN 3091 interactive := true ; 3092 scanparm ('NOIOW', 5, lfound, lch) ; 3093 IF lfound THEN 3094 iowarnings := false ; 3095 scanparm ('GTRACE= ', 7, lfound, lch) ; 3096 IF lfound THEN 3097 BEGIN 3098 tracelevel (genetrace, lch) ; 3099 wgsetinargs := true ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 90 3100 END ; 3101 scanparm ('FRENC', 5, lfound, lch) ; 3102 IF lfound THEN 3103 BEGIN 3104 pascalfrench := true ; 3105 wd := wdf ; wno := wnof ; wcl := wclf ; wl1 := wl1f ; wl2 := wl2f ; 3106 usednames := usednamesf ; 3107 END ELSE 3108 BEGIN 3109 pascalfrench := false ; 3110 wd := wda ; wno := wnoa ; wcl := wcla ; wl1 := wl1a ; wl2 := wl2a ; 3111 usednames := usednamesa ; 3112 END ; 3113 scanparm ('TABLE ', 5, lfound, lch) ; 3114 IF lfound THEN 3115 BEGIN 3116 symbtabl := true ; 3117 mapswitch := true 3118 END ; 3119 scanparm ('BRIEFTB ', 7, lfound, ch) ; 3120 IF lfound THEN 3121 BEGIN 3122 brieftable := true ; 3123 mapswitch := true 3124 END ; 3125 scanparm ('LONGPROF', 8, lfound, ch) ; 3126 IF lfound THEN 3127 BEGIN 3128 longprofile := true ; 3129 mapswitch := true 3130 END ; 3131 scanparm ('PROFILE ', 7, lfound, ch) ; 3132 IF lfound THEN 3133 BEGIN 3134 profile := true ; 3135 mapswitch := true 3136 END ; 3137 scanparm ('BRIEFMAP', 8, lfound, ch) ; 3138 IF lfound THEN 3139 BEGIN 3140 listyes := true ; 3141 mapswitch := true 3142 END ; 3143 scanparm ('LP ', 2, lfound, lch) ; 3144 IF lfound THEN 3145 BEGIN (* 2 DIGITS COMING NOW *) 3146 pagelength := (ord (lch) - ord ('0')) * 10 ; 3147 pagelength := pagelength + ord (parmlist [lastread + 1]) - ord ('0') ; 3148 END ; 3149 scanparm ('XREF ', 4, lfound, lch) ; 3150 IF lfound THEN 3151 xrefneed := true ; 3152 outcode := writecode OR (genetrace > none) ; 3153 $OPTIONS compile = trace $ 3154 IF decltrace > none THEN 3155 BEGIN 3156 write (mpcogout, 'SKIPCODE,STATTRACE,DECLTRACE,GENETRACE,SYMBTABL,XREF', *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 91 3157 skipcode, ord (stattrace), ord (decltrace), ord (genetrace), 3158 symbtabl, xrefneed) ; 3159 nextline 3160 END ; 3161 $OPTIONS compile = true $ 3162 END (* CARTEEXEC *) ; 3163 3164 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 92 3165 3166 (* ********************************************************** VERIFCOHERENCE ** *) 3167 3168 $OPTIONS compile = security $ 3169 PROCEDURE verifcoherence ; 3170 3171 (* C 3172* On verifie que les relations qui doivent exister entre les constantes 3173* se maintiennent de VERSION en VERSION. 3174* C *) 3175 3176 (* E ERRORS DETECTED 3177* 439 Premier groupe 3178* 440 Second " 3179* 441 Troisieme " 3180* E *) 3181 BEGIN 3182 IF (confdimsize <> confdimw * bytesinword) OR 3183 (eofb <> eofw * bytesinword) OR 3184 (eolnb <> eolnw * bytesinword) OR 3185 (lgparm <> lgparm1 + 1) THEN error (439) ; 3186 IF (maxset + 1 <> setrange) OR 3187 (maxchar > maxset) OR 3188 (maxerrnum <> 3 * setrange - 1) OR 3189 (maxpage <> maxerrnum) OR 3190 (maxerpg + 1 < (maxpage DIV setrange)) THEN error (440) ; 3191 IF (bitsforset <> bytesforset * bitsinbyte) OR 3192 (bytesforset <> wordsforset * bytesinword) OR 3193 (wordsforset <> bornesupset + 1) THEN error (441) ; 3194 3195 END ; 3196 3197 $OPTIONS compile = true $ 3198 3199 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 93 3200 3201 (* *************************************COMPILER'S MAIN*********************** *) 3202 3203 BEGIN (* MAIN *) 3204 listyes := false ; 3205 new (fichinter) ; IF fichinter = NIL THEN heaperror ; 3206 rewrite (mpcogout) ; 3207 initialise ; 3208 carteexec ; 3209 IF mapswitch THEN BEGIN 3210 getmapptr (mapptr) ; 3211 getprofptr (profptr) ; 3212 IF profile THEN profilewordcount := phl ; 3213 IF longprofile THEN profilewordcount := lphl ; 3214 END ; 3215 (* IF symbtabl THEN *) lkc := lkc + (2 * bytesinword) ; 3216 IF listyes THEN 3217 BEGIN 3218 listhead ; 3219 pageno := pageno + 1 ; 3220 iligne := 9 ; 3221 nextline ; 3222 END ; 3223 asscheck := checks ; divcheck := checks ; inxcheck := checks ; 3224 IF eof (mpcogin) THEN 3225 BEGIN 3226 error (22) ; GOTO 100 ; 3227 END ELSE nextch ; 3228 $OPTIONS compile = security $ 3229 verifcoherence ; 3230 $OPTIONS compile = true $ 3231 progdecl ; (* BEFORE CALL OF INITCLASS *) 3232 initclasse ; 3233 (* display[0].fname := next; In INITCLASSE *) 3234 3235 lc := xc ; 3236 WITH display [1] DO 3237 BEGIN 3238 fname := NIL ; occur := block ; 3239 END ; 3240 top := 1 ; 3241 level := 0 ; 3242 create_dummyclass_box (pt, blank) ; 3243 next := NIL ; 3244 IF inputflag # NIL THEN 3245 BEGIN 3246 create_vars_box (inputctp, usednames [1]) ; 3247 WITH inputctp^ DO 3248 BEGIN 3249 vtype := textfilectp ; vkind := imported ; vlevel := 0 ; 3250 vaddr := -1 ; vptextitem := inputflag ; 3251 visused := true ; vfilelocation := standardfile ; visset := true ; 3252 deffile := inputflag^.extrfile1 ; defline := inputflag^.extrline1 ; 3253 IF symbolmap THEN 3254 IF inputflag^.extrline2 <> 0 THEN 3255 nameisref (inputctp, inputflag^.extrfile2, inputflag^.extrline2) ; 3256 END ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 94 3257 next := inputctp ; filtop := filtop + 1 ; 3258 inputflag^.extdecl := inputctp ; 3259 filpts [filtop] := inputctp ; 3260 END (* INPUTFLAG *) ; 3261 IF outputflag # NIL THEN 3262 BEGIN 3263 create_vars_box (outputctp, usednames [2]) ; 3264 WITH outputctp^ DO 3265 BEGIN 3266 vtype := textfilectp ; vkind := imported ; vlevel := 0 ; 3267 vaddr := -1 ; vptextitem := outputflag ; 3268 visused := true ; vfilelocation := standardfile ; 3269 deffile := outputflag^.extrfile1 ; defline := outputflag^.extrline1 ; 3270 IF symbolmap THEN 3271 IF outputflag^.extrline2 <> 0 THEN 3272 nameisref (outputctp, outputflag^.extrfile2, outputflag^.extrline2) ; 3273 END ; 3274 next := outputctp ; filtop := filtop + 1 ; 3275 outputflag^.extdecl := outputctp ; 3276 filpts [filtop] := outputctp ; 3277 END (* OUTPUTFLAG *) ; 3278 IF errorflag # NIL THEN 3279 BEGIN 3280 create_vars_box (errorctp, usednames [3]) ; 3281 WITH errorctp^ DO 3282 BEGIN 3283 vtype := textfilectp ; vkind := imported ; vlevel := 0 ; 3284 vaddr := -1 ; vptextitem := errorflag ; 3285 visused := true ; vfilelocation := standardfile ; 3286 deffile := errorflag^.extrfile1 ; defline := errorflag^.extrline1 ; 3287 IF symbolmap THEN 3288 IF errorflag^.extrline2 <> 0 THEN 3289 nameisref (errorctp, errorflag^.extrfile2, errorflag^.extrline2) ; 3290 END ; 3291 next := errorctp ; filtop := filtop + 1 ; 3292 errorflag^.extdecl := errorctp ; 3293 filpts [filtop] := errorctp ; 3294 END (* ERRORFLAG *) ; 3295 3296 3297 3298 new (programnode, procblock) ; (* ROOTNODE *) 3299 currentnode := programnode ; 3300 WITH programnode^ DO BEGIN 3301 father := NIL ; 3302 brother := NIL ; 3303 son := NIL ; 3304 nextproc := NIL ; 3305 blockbox := NIL ; 3306 codebegin := 0 ; 3307 codeend := 0 ; 3308 structureplace := 0 ; 3309 first := NIL ; 3310 firstlabel := NIL ; 3311 blocktp := procblock ; 3312 hdrlin := hdrline ; 3313 hdrfil := hdrfile ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 95 3314 hdrlen := hdrlength ; 3315 hdrind := hdrindex ; 3316 END ; 3317 3318 (* ********************************* 3319* * *) 3320 3321 body (NIL, pt) ; 3322 IF no # 17 THEN error (24) ; 3323 3324 (* * 3325* ********************************* *) 3326 3327 compencours := false ; 3328 REPEAT 3329 nextch ; 3330 UNTIL compencours ; (* ARTIFICIAL EXIT VIA *) 3331 (* GOTO 100 IN NEXTCH *) 3332 100 : (* END OF COMPILATION *) 3333 IF mapswitch THEN 3334 statement_ends (0) ; 3335 wkextpt := externallistheader ; 3336 err149 := false ; 3337 WHILE wkextpt <> NIL DO 3338 BEGIN 3339 3340 IF wkextpt^.extdecl = NIL THEN 3341 IF wkextpt^.extitemtype IN [extnotresolved, remanentfile] THEN 3342 BEGIN 3343 IF NOT err149 THEN 3344 BEGIN 3345 err149 := true ; 3346 error (149) ; printerr ; 3347 END ; 3348 IF listyes THEN write (mpcogout, ' NOT REDEFINED EXTERNAL NAME(S) :', 3349 wkextpt^.extname : maxident + 1) ; nextline ; 3350 writeln (mpcogerr, ' NOT REDEFINED EXTERNAL NAME(S) :', 3351 wkextpt^.extname : maxident + 1) ; 3352 END ; 3353 wkextpt := wkextpt^.extnext ; 3354 END ; 3355 IF programnode <> NIL THEN 3356 programnode^.codeend := statnbr * 2 ; 3357 IF nbccond # 0 THEN error (208) ; 3358 IF errinx > 0 THEN 3359 printerr ; 3360 statistiques ; 3361 linkswordcount := lkc DIV bytesinword ; 3362 IF mapswitch THEN BEGIN (* END STATEMENT MAP *) 3363 statnbr := statnbr + 1 ; 3364 WITH mapptr^[statnbr] DO 3365 BEGIN 3366 word1 := twoto18 - 1 ; 3367 insert_ (ic DIV bytesinword, 18, word1) ; 3368 word2 := 0 ; 3369 insert_ (-1, 27, word2) ; 3370 END ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 96 3371 IF profile THEN BEGIN 3372 insert_ ((statnbr - 1) * 2, 18, profptr^[profilewordcount]) ; 3373 profilewordcount := profilewordcount + pclength 3374 END ; 3375 END ; 3376 IF errtotal = 0 THEN buildobject ; 3377 IF errtotal <> 0 THEN 3378 BEGIN 3379 IF mapswitch THEN 3380 displaysources ; 3381 IF symbol_listing THEN 3382 IF programnode <> NIL THEN displaysymbols ; 3383 END ; 3384 reset (fichinter) ; 3385 stop (errtotal) ; (* RETURN CODE #0 IF COMP ERRORS *) 3386 END (* END OF MAIN PROGRAM FOR PASCAL COMPILER ********************* *). *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM racine *** ON 11/12/86 *** PAGE 97 NO COMPILATION ERROR STORAGE REQUIREMENTS FOR OBJECT SEGMENT Object Text Defs Links Static Symbol Start 0 0 24344 27316 27326 34416 Length 36356 24344 2751 5100 4257 1724 STORAGE REQUIREMENTS FOR PRIVATE_STORAGE SEGMENT Object Text Defs Links Static Symbol Start 0 0 0 1044 1054 11714 Length 12221 0 1043 10650 10640 271 SOURCE FILES USED IN THIS COMPILATION NUMBER DATE MODIFIED PATHNAME 0 11/12/86 1607.4 >spec>install>1212>RACINE.pascal 1 11/12/86 1528.2 >spec>install>1212>CONSTTYPE.incl.pascal NAMES DECLARED AND REFERENCED activated field disp:54, size:4 ; boolean ; DEF: 1-967 ; REF: 2357* 2494* 2502 active field disp:50, size:4 ; boolean ; DEF: 1-967 ; REF: 2339 2356* 2474* 2502 2529* adrligic var global, loc:11, size:4 ; integer ; DEF: 400 ; REF: 717* adrliglc var global, loc:12, size:4 ; integer ; DEF: 401 ; REF: 717* alfa type packed array of (char) ; DEF: 1-398 ; REF: 412 3009 3020 alfaconst const scalar, ord=2 ; DEF: 1-416 ; REF: 1-569 alfactp field disp:20, size:10 ; pointer ; DEF: 1-897 ; REF: 2855 2856 alfadeb field disp:150, size:10 ; pointer ; DEF: 1-569 ; REF: 1276* 1299* 2858 2935 alfaid type packed array of (char) ; DEF: 1-399 ; REF: 1-404 1-436 1-446 1-447 1-496 1-508 1-965 287 334 369 467 633 634 658 658 2121 alfaleng const numeric ; DEF: 1-35 ; REF: 1-398 alfalist type record ; DEF: 1-402 ; REF: 1-401 alfalistptr type pointer ; DEF: 1-401 ; REF: 1-403 266 alfalong field disp:160, size:4 ; integer ; DEF: 1-570 ; REF: 1294* 2859 2868 2936 2945 alfapt type pointer ; DEF: 1-419 ; REF: 1-421 1-569 1223 1230 2805 alfaptr var global exportable, size:10 ; pointer ; DEF: 285 ; REF: 122 2853 2902 2933 2964 alfaval field disp:10, size:20 ; array of (char) ; DEF: 1-422 ; REF: 1250 1281* 1304* 2863 2871 2940 2948 alfavalue type record ; DEF: 1-420 ; REF: 1-419 aliastype const scalar, ord=10 ; DEF: 1-413 ; REF: 1-563 anytrace var global exportable, size:4 ; scalar ; DEF: 286 ; REF: 123 718* 865 868 897 899 928 931 964 966 1053 1548* 1549 1549* 1550 1550* 2090 2126 2239 2366 2562 2686 2702 2724 2744 2764 2772 arrays const scalar, ord=5 ; DEF: 1-412 ; REF: 1-546 asscheck var global imported, size:4 ; boolean ; DEF: 254 ; REF: 79 2430* 2542* 3223* attr type record ; DEF: 1-849 ; REF: 257 651 attraccess type scalar ; DEF: 1-813 ; REF: 1-871 attrkind type scalar ; DEF: 1-812 ; REF: 1-852 aval var global exportable, size:40 ; packed array of (char) ; DEF: 287 ; REF: 124 1660* 1690* 1695* 1703* 1710 1716 1729 2310 2334 2335 2354 2375 2380 2381 2382 2383 2384 2386 2392 2404 2414 2424 2436 2441 2449 2457 2479 2506 2514 2534 beginline var global, loc:13, size:4 ; boolean ; DEF: 404 ; REF: 719* 1433 1434* 1480* beginsource proc level 0, imported ; DEF: 657 ; REF: 111 2234 begsy const scalar, ord=1 ; DEF: 1-669 ; REF: 496 498 501 503 505 507 509 518 binartype type packed array of (integer) ; DEF: 1-810 ; REF: 1-811 1-811 277 277 bitsforset const numeric ; DEF: 1-111 ; REF: 3191 bitsinbyte const numeric ; DEF: 1-63 ; REF: 1-78 1-79 3191 bitsinword const numeric ; DEF: 1-78 ; REF: 1-80 1-92 1-111 1-115 1-117 1040 1947 blank const alphanumeric, 8 char(s) ; DEF: 1-138 ; REF: 792 1690 3024 3242 block const scalar, ord=0 ; DEF: 1-622 ; REF: 1-635 3238 blockbox field disp:60, size:10 ; pointer ; DEF: 1-946 ; REF: 3305* blocknode type record ; DEF: 1-940 ; REF: 1-639 blocknodeptr type pointer ; DEF: 1-639 ; REF: 1-646 1-941 1-949 302 345 370 blocktp field disp:50, size:4 ; scalar ; DEF: 1-944 ; REF: 3311* blocktype type scalar ; DEF: 1-938 ; REF: 1-944 body proc level 0, imported ; DEF: 629 ; REF: 58 3321 bornesupset const numeric ; DEF: 1-112 ; REF: 1-815 3193 box var parameter of nameisref, size:10 ; pointer ; DEF: 2634 ; REF: 2643 boxheader var global exportable, size:170 ; array of (char) ; DEF: 289 ; REF: 126 816* 1237 1255 brieftable var global, loc:14, size:4 ; boolean ; DEF: 405 ; REF: 724* 3122* brother field disp:10, size:10 ; pointer ; DEF: 1-941 ; REF: 3302* bufnew var global, loc:57, size:210 ; array of (char) ; DEF: 406 ; REF: 720* 1351 1352 1477 1477* 1511* bufold var global, loc:15, size:210 ; array of (char) ; DEF: 406 ; REF: 720* 1349 1350 1477* bufval var global exportable, size:2000 ; array of (char) ; DEF: 291 ; REF: 127 1281 1304 1322 1896* 1912 1913 1916 1917 1918 1919 1935 1950 1959 1970* 2145 2184 2222 2863* 2871* 2940* 2948* building_from_schema var global imported, size:40 ; record ; DEF: 263 ; REF: 88 1654 1655 1657 1665* 1665 1666 1666* 2642 buildobject proc level 0, imported ; DEF: 655 ; REF: 109 3376 bytesforset const numeric ; DEF: 1-110 ; REF: 3191 3192 bytesinhword const numeric ; DEF: 1-65 ; REF: 1-79 bytesinword const numeric ; DEF: 1-64 ; REF: 1-65 1-66 1-71 1-72 1-78 1-110 1-128 1-276 814 2622 3182 3183 3184 3192 3215 3361 3367 caract var local to nextch, loc:140, size:4 ; char ; DEF: 1426 ; REF: 1454* 1455 carteexec proc level 0 ; DEF: 2989 ; REF: 3208 ch var global, loc:121, size:4 ; char ; DEF: 407 ; REF: 725* 1505 1506* 1511 1511 1512 1523 1526* 1526 1677 1681 1683 1688 1695 1698 1703 1706 1746 1750 1751 1755 1758 1759 1760 1774 1777 1778 1778* 1781 1784 1789 1792 1800 1805 1807 1811 1815 1817 1838 1845* 1848 1852 1854 1858 1861 1862* 1863* 1864* 1865* 1866* 1871 1872 1873 1874 1875 1878 1879 1880 1881 1882 1886* 1896 1902 1927 1942 1974 1975 1979 1984 1991 1995 2003 2010 2014 2021 2028 2042 2046 2068 2069 2072 2077 2080 2081 2149 2150 2187 2188 2225 2226 3119* 3125* 3131* 3137* ch var local to traiteoptions, loc:140, size:4 ; char ; DEF: 2272 ; REF: 2375* 2376 2377 ch1 var local to insymbol, loc:153, size:4 ; char ; DEF: 1650 ; REF: 1979* 1982 1989 2000 2008 2019 2026 2040 2053 ch1 var local to nextch, loc:210, size:4 ; char ; DEF: 1429 ; REF: 1505* 1523 chain const scalar, ord=3 ; DEF: 1-812 ; REF: 1-894 2829 char_const_token const scalar, ord=3 ; DEF: 1-491 ; REF: 1-499 1663 charfound var parameter of tracelevel, size:4 ; char ; DEF: 1534 ; REF: 1543 1544 1545 1546 charptr var global exportable, size:10 ; pointer ; DEF: 294 ; REF: 129 2839 2906 2965 chcnt var global, loc:122, size:4 ; integer ; DEF: 408 ; REF: 726* 1359 1452 1478* 1508 1510* 1510 1511 1511 1511 check_id var global exportable, size:4 ; boolean ; DEF: 293 ; REF: 150 727* 1715 checkplusminus funct of traiteoptions ; boolean ; DEF: 2291 ; REF: 2295* 2296* 2394 2426 2443 2451 2472 2494 checks var global, loc:123, size:4 ; boolean ; DEF: 409 ; REF: 3044* 3066* 3223 3223 3223 checkvalue funct of traiteoptions ; boolean ; DEF: 2319 ; REF: 2334* 2335* 2339* 2341* 2341 2418 2510 2524 2538 chnix var global exportable, size:4 ; integer ; DEF: 295 ; REF: 130 728* 1105 1106* 1110 chprint var local to nextch, loc:143, size:4 ; integer ; DEF: 1427 ; REF: 1451* 1456* 1456 1458* 1458 1459 1466* 1470 cl var global exportable, size:4 ; integer ; DEF: 297 ; REF: 131 1659* 1661* 1662* 1663* 1712* 1714* 1748* 1780* 1803* 1822 1907* 1931* 1944* 1959* 1962* 1975* 2005* 2012* 2016* 2023* 2092 2132 2165 2172 2203 2210 2296 2297 2326 2379 2407 2409 2417 2460 2466 2467 2468 2482 2488 2489 2490 2509 2537 2692 2734 2816 2880 2881 2891 2892 code const scalar, ord=1 ; DEF: 1-623 ; REF: 2665 code var var parameter of inconst, size:4 ; integer ; DEF: 2784 ; REF: 2961* 2962* 2963* 2964* 2965* 2966* 2975 codebegin field disp:30, size:4 ; integer ; DEF: 1-942 ; REF: 3306* codeend field disp:34, size:4 ; integer ; DEF: 1-942 ; REF: 3307* 3356* codelist var global exportable, size:4 ; boolean ; DEF: 298 ; REF: 132 729* 3049* column var global, loc:124, size:4 ; integer ; DEF: 410 ; REF: 730* 870 878 878 933 944 944 1483* 1514 1514* 1515* 1515 1517* 1517 combraces var local to insymbol, loc:146, size:4 ; boolean ; DEF: 1647 ; REF: 2049* 2055* 2076 compencours var global, loc:125, size:4 ; boolean ; DEF: 411 ; REF: 731* 1494 3327* 3330 condaddr type pointer ; DEF: 1-963 ; REF: 1-966 333 2274 condbox type record ; DEF: 1-964 ; REF: 1-963 condition const scalar, ord=8 ; DEF: 1-413 ; REF: 1-562 condname field disp:0, size:40 ; packed array of (char) ; DEF: 1-965 ; REF: 2310 2354* confdimsize const numeric ; DEF: 1-276 ; REF: 3182 confdimw const numeric ; DEF: 1-273 ; REF: 1-276 3182 conint var global exportable, size:4 ; integer ; DEF: 299 ; REF: 133 2832* 2841* 2849* 2895* 2895* 2907* 2926* 2926* 2951* 2972 conreel var global exportable, size:10 ; real ; DEF: 300 ; REF: 134 2845* 2899* 2899* 2929* 2929* 2972 consttype type scalar ; DEF: 1-416 ; REF: 1-566 contexte type scalar ; DEF: 1-623 ; REF: 315 contexttable type record ; DEF: 1-507 ; REF: 1-433 contype field disp:130, size:10 ; pointer ; DEF: 1-565 ; REF: 2924 convertreal proc level 0, imported ; DEF: 671 ; REF: 116 1833 count const numeric ; DEF: 2999 ; REF: 3004 3025 3032 create_dummyclass_box proc level 0, imported ; DEF: 634 ; REF: 60 3242 create_vars_box proc level 0, imported ; DEF: 633 ; REF: 61 3246 3263 3280 createcond proc of traiteoptions ; DEF: 2346 ; REF: 2471 2493 2520 ctp type pointer ; DEF: 1-433 ; REF: 1-450 1-469 1-487 1-489 1-509 1-510 1-518 1-519 1-522 1-529 1-530 1-538 1-540 1-542 1-544 1-546 1-551 1-554 1-555 1-560 1-561 1-563 1-565 1-571 1-583 1-587 1-596 1-604 1-606 1-608 1-611 1-613 1-613 1-614 1-628 1-633 1-851 1-879 1-897 1-943 1-946 1-957 1-973 256 258 260 271 285 288 294 301 341 344 356 358 360 366 371 379 388 390 448 629 633 634 1151 1213 2634 2784 2784 2803 ctptr var global exportable, size:10 ; pointer ; DEF: 301 ; REF: 136 2914 2916 2917 2919 2920 2956* curbox var local to inconst, loc:156, size:10 ; pointer ; DEF: 2805 ; REF: 2858* 2863 2866* 2866 2871 2935* 2940 2943* 2943 2948 currdate var global, loc:126, size:10 ; packed array of (char) ; DEF: 412 ; REF: 733* 999 current_token field disp:20, size:10 ; pointer ; DEF: 1-488 ; REF: 1657 1665* 1665 1666 currentnode var global exportable, size:10 ; pointer ; DEF: 302 ; REF: 137 3299* cursttmap var global, loc:130, size:10 ; pointer ; DEF: 413 ; REF: 732* cwith const scalar, ord=1 ; DEF: 1-622 ; REF: 1-636 data const scalar, ord=0 ; DEF: 1-623 ; REF: 740 debbuf var local to crealfabox, loc:152, size:4 ; integer ; DEF: 1224 ; REF: 1271* 1281 1282* 1282 1304 declarationpart var global exportable, size:4 ; boolean ; DEF: 303 ; REF: 138 734* 2645 2646 2665 decltrace var global imported, size:4 ; scalar ; DEF: 264 ; REF: 89 1262 1286 1289 1307 1310 1316 1318 1548 2383* 2809 2809 3086* 3154 3157 deffile field disp:60, size:4 ; integer ; DEF: 1-511 ; REF: 3252* 3269* 3286* defline field disp:64, size:4 ; integer ; DEF: 1-511 ; REF: 3252* 3269* 3286* digits var global, loc:132, size:40 ; set of (char) ; DEF: 414 ; REF: 735* 1746 1751 1781 1789 1811 1817 1913 display var global exportable, size:16030 ; array of (record) ; DEF: 304 ; REF: 139 737* 3236 3238* 3238* displaysources proc level 0, imported ; DEF: 660 ; REF: 113 3380 displaysymbols proc level 0, imported ; DEF: 626 ; REF: 50 3382 displimit const numeric ; DEF: 1-15 ; REF: 304 736 divcheck var global imported, size:4 ; boolean ; DEF: 255 ; REF: 80 2429* 2430 2431 2541* 2542 2543 3223* dpoint var global, loc:142, size:4 ; boolean ; DEF: 415 ; REF: 738* 1670 1672* 1777* dummyclass const scalar, ord=7 ; DEF: 1-415 ; REF: 1-615 dwordconst const scalar, ord=1 ; DEF: 1-416 ; REF: 1-568 end_statement var global, loc:143, size:4 ; boolean ; DEF: 416 ; REF: 739* 2589* 2602 2627* endsource proc level 0, imported ; DEF: 659 ; REF: 112 1499 endsy const scalar, ord=2 ; DEF: 1-669 ; REF: 494 497 500 504 511 514 516 520 521 ensaccessible type set of (scalar) ; DEF: 1-461 ; REF: 1-527 environt var global exportable, size:4 ; scalar ; DEF: 315 ; REF: 141 740* 2665 envstandard var global exportable, size:4 ; scalar ; DEF: 317 ; REF: 142 763* 1443 1684 1691 1844 1855 1899 1904 1929 1945 2002 2033 2066 2822 3071* 3075* eofb const numeric ; DEF: 1-315 ; REF: 3183 eofw const numeric ; DEF: 1-314 ; REF: 3183 eolnb const numeric ; DEF: 1-317 ; REF: 3184 eolnw const numeric ; DEF: 1-316 ; REF: 3184 err149 var global, loc:236, size:4 ; boolean ; DEF: 425 ; REF: 3336* 3343 3345* err257 var global, loc:235, size:4 ; boolean ; DEF: 423 ; REF: 752* 1486* 1519 1521* errcl var global exportable, size:400 ; array of (scalar) ; DEF: 318 ; REF: 143 493* 2691 2733 errdeb var local to printerr, loc:141, size:4 ; integer ; DEF: 1341 ; REF: 1366* erredited var global, loc:144, size:140 ; array of (set of (numeric 0..287)) ; DEF: 417 ; REF: 749* 1395 1398* 1398 errinx var global, loc:174, size:4 ; integer ; DEF: 418 ; REF: 741* 870 874 876 879* 879 880 901 933 940 942 945* 945 946 968 1354 1368 1385 1391 1403* 1440 1474 3358 errlist var global, loc:175, size:200 ; array of (record) ; DEF: 419 ; REF: 880 881* 881* 946 947* 947* 1357 1370 1387 1388 1394 errmax var local to printerr, loc:142, size:4 ; integer ; DEF: 1341 ; REF: 1345* 1356* 1356 1357 1363 1364 1367 1367 errno var parameter of skipoption, size:4 ; integer ; DEF: 2278 ; REF: 2281 errno var parameter of warning, size:4 ; integer ; DEF: 913 ; REF: 930 941* 947 951 953 953 954 errno var parameter of error, size:4 ; integer ; DEF: 854 ; REF: 867 875* 881 885 887 887 888 errnumb var local to printerr, loc:144, size:4 ; integer ; DEF: 1341 ; REF: 1394* 1395 1395 1397 1398 1398 1399 error proc level 0, exportable ; DEF: 854 ; REF: 144 885 890 951 956 992 1092 1133 1444 1494 1520 1547 1686 1716 1761 1766 1781 1811 1826 1829 1844 1887 1901 1905 1909 1921 1930 1932 1937 1946 1947 1952 1965 2030 2033 2035 2134 2140 2160 2174 2180 2198 2212 2218 2228 2281 2827 2831 2848 2881 2891 2917 2922 2932 2959 3185 3190 3193 3226 3322 3346 3357 errorctp var global imported, size:10 ; pointer ; DEF: 256 ; REF: 81 3280* 3281 3289 3291 3292 3293 errorflag var global exportable, size:10 ; pointer ; DEF: 321 ; REF: 145 742* 3278 3284 3286 3286 3288 3289 3289 3292 errorsfound var global exportable, size:140 ; array of (set of (numeric 0..287)) ; DEF: 322 ; REF: 146 748* 887* 887 953* 953 errptr var local to printerr, loc:143, size:4 ; integer ; DEF: 1341 ; REF: 1343* 1354 1357 1366 1368 1370 1373* 1373 errtotal var global exportable, size:4 ; integer ; DEF: 325 ; REF: 147 751* 894* 894 1092 3376 3377 3385 exitelem type record ; DEF: 1-479 ; REF: 1-478 exitptr type pointer ; DEF: 1-478 ; REF: 1-480 1-586 exp var local to insymbol, loc:143, size:4 ; integer ; DEF: 1646 ; REF: 1772* 1786* 1786 1803 1803* 1814 1815* 1815 1818* 1819 1819* 1819 1825 1826 1828 1829 1832* 1832 1833 exportablecode var global exportable, size:4 ; boolean ; DEF: 328 ; REF: 148 743* expression proc level 0, imported ; DEF: 648 ; REF: 65 2826 expression_allowed var parameter of inconst, size:4 ; boolean ; DEF: 2784 ; REF: 2822 extcalltrapplace var global exportable, size:4 ; integer ; DEF: 329 ; REF: 149 744* extdecl field disp:230, size:10 ; pointer ; DEF: 1-450 ; REF: 3258* 3275* 3292* 3340 externalitem type record ; DEF: 1-445 ; REF: 1-444 externalitemtype type scalar ; DEF: 1-441 ; REF: 1-451 externallistheader var global imported, size:10 ; pointer ; DEF: 265 ; REF: 90 3335 externid type packed array of (char) ; DEF: 1-400 ; REF: 658 2120 extitemtype field disp:240, size:4 ; scalar ; DEF: 1-451 ; REF: 3341 extname field disp:0, size:40 ; packed array of (char) ; DEF: 1-446 ; REF: 3349 3351 extnext field disp:200, size:10 ; pointer ; DEF: 1-448 ; REF: 3353 extnotresolved const scalar, ord=0 ; DEF: 1-441 ; REF: 3341 extrfile1 field disp:210, size:4 ; integer ; DEF: 1-449 ; REF: 3252 3269 3286 extrfile2 field disp:220, size:4 ; integer ; DEF: 1-449 ; REF: 3255 3272 3289 extrline1 field disp:214, size:4 ; integer ; DEF: 1-449 ; REF: 3252 3269 3286 extrline2 field disp:224, size:4 ; integer ; DEF: 1-449 ; REF: 3254 3255 3271 3272 3288 3289 fastoperator var global exportable, size:4 ; boolean ; DEF: 330 ; REF: 151 741* 3047* father field disp:0, size:10 ; pointer ; DEF: 1-941 ; REF: 3301* fcb var parameter of inserundlab, size:4 ; integer ; DEF: 1067 ; REF: 1086 1098 1102 fdebchain var parameter of inserundlab, size:4 ; integer ; DEF: 1067 ; REF: 1086 1090 1095 1106 fichinter var global imported, size:10 ; pointer ; DEF: 277 ; REF: 102 3205* 3205 3384* field const scalar, ord=5 ; DEF: 1-415 ; REF: 1-608 fil var parameter of nameisref, size:4 ; integer ; DEF: 2634 ; REF: 2663 filelocation type scalar ; DEF: 1-437 ; REF: 1-598 filen field disp:0, size:4 ; integer ; DEF: 1-430 ; REF: 2663* filename var local to traiteinclude, loc:140, size:250 ; packed array of (char) ; DEF: 2120 ; REF: 2143* 2145* 2234 files const scalar, ord=9 ; DEF: 1-413 ; REF: 1-555 filetoprint var global, loc:237, size:4 ; integer ; DEF: 426 ; REF: 753* 1351 1352 1353 1446 1447 1481 1488* fillimit const numeric ; DEF: 1-17 ; REF: 271 filpts var global imported, size:630 ; array of (pointer) ; DEF: 271 ; REF: 91 3259* 3276* 3293* filtop var global imported, size:4 ; integer ; DEF: 272 ; REF: 92 3257* 3257 3259 3274* 3274 3276 3291* 3291 3293 fin var local to insymbol, loc:150, size:4 ; boolean ; DEF: 1647 ; REF: 2069* 2070 2072* 2075 2081* 2082 findcond proc of traiteoptions ; DEF: 2302 ; REF: 2337 2469 2491 2519 first field disp:40, size:10 ; pointer ; DEF: 1-943 ; REF: 3309* firstcond var global exportable, size:10 ; pointer ; DEF: 333 ; REF: 152 2307 2353 2359* 2498 firstglobal const numeric ; DEF: 1-298 ; REF: 814 firstlabel field disp:100, size:10 ; pointer ; DEF: 1-948 ; REF: 3310* fkonstbox var var parameter of crealfabox, size:10 ; pointer ; DEF: 1213 ; REF: 1264 1276 1294 1299 flag var local to traiteoptions, loc:141, size:4 ; boolean ; DEF: 2273 ; REF: 2394* 2397 2426* 2429 2443* 2451* 2472* 2474 2524* 2527* 2529 2538* 2541 flong var parameter of scanparm, size:4 ; integer ; DEF: 3009 ; REF: 3025 3027 3032 3033 fmod var parameter of recadre, size:4 ; integer ; DEF: 1122 ; REF: 1132 1136 1139 fname field disp:0, size:10 ; pointer ; DEF: 1-633 ; REF: 737* 3238* fnumber var parameter of recadre, size:4 ; integer ; DEF: 1122 ; REF: 1136 1138 1139 fnxt var parameter of inconst, size:10 ; pointer ; DEF: 2784 ; REF: 2813 2915 forbidden_id var global exportable, size:40 ; packed array of (char) ; DEF: 334 ; REF: 153 1716 forbidden_id_list var global imported, size:10 ; pointer ; DEF: 266 ; REF: 93 1719 1721 1722 1724 1728* 1728 1729 form field disp:174, size:4 ; scalar ; DEF: 1-533 ; REF: 2838 freeallregisters proc level 0, imported ; DEF: 645 ; REF: 63 2825 fret var var parameter of generrorlink, size:4 ; integer ; DEF: 692 ; REF: 696* 697* fret var var parameter of genoutputlink, size:4 ; integer ; DEF: 683 ; REF: 687* 688* fret var var parameter of geninputlink, size:4 ; integer ; DEF: 674 ; REF: 678* 679* fstring var parameter of scanparm, size:10 ; packed array of (char) ; DEF: 3009 ; REF: 3029 ftp type pointer ; DEF: 1-484 ; REF: 1-488 1-493 1-521 fval var parameter of poweroftwo, size:4 ; integer ; DEF: 1027 ; REF: 1038 1041 1045 1049* 1049 1056 fval1 var parameter of sup, size:4 ; integer ; DEF: 1014 ; REF: 1018 1019 fval2 var parameter of sup, size:4 ; integer ; DEF: 1014 ; REF: 1018 1020 gattr var global imported, size:150 ; record ; DEF: 257 ; REF: 82 2825* 2828 2829 2829 2831 2835 2837 2838 2839 2841 2841 2843 2845 2855 2856 genentree proc level 0, imported ; DEF: 665 ; REF: 117 678 generreur proc level 0, imported ; DEF: 667 ; REF: 117 696 generror proc level 0, imported ; DEF: 664 ; REF: 117 697 genetrace var global imported, size:4 ; scalar ; DEF: 278 ; REF: 103 1550 1550 2386* 2387 2399 2420 3098* 3152 3157 geninput proc level 0, imported ; DEF: 662 ; REF: 117 679 genlongprofileref proc level 0, imported ; DEF: 639 ; REF: 69 2583 genoutput proc level 0, imported ; DEF: 663 ; REF: 117 688 genp var parameter of statement_begins, size:4 ; boolean ; DEF: 2575 ; REF: 2581 genprofileref proc level 0, imported ; DEF: 638 ; REF: 70 2582 gensortie proc level 0, imported ; DEF: 666 ; REF: 117 687 getmapptr proc level 0, imported ; DEF: 669 ; REF: 114 3210 getprofptr proc level 0, imported ; DEF: 670 ; REF: 115 3211 halfword type integer ; DEF: 1-809 ; REF: 1-810 hdrfil field disp:120, size:4 ; integer ; DEF: 1-950 ; REF: 3313* hdrfile var global imported, size:4 ; integer ; DEF: 267 ; REF: 94 3313 hdrind field disp:124, size:4 ; integer ; DEF: 1-950 ; REF: 3315* hdrindex var global imported, size:4 ; integer ; DEF: 268 ; REF: 95 3315 hdrlen field disp:130, size:4 ; integer ; DEF: 1-950 ; REF: 3314* hdrlength var global imported, size:4 ; integer ; DEF: 269 ; REF: 96 3314 hdrlin field disp:134, size:4 ; integer ; DEF: 1-950 ; REF: 3312* hdrline var global imported, size:4 ; integer ; DEF: 270 ; REF: 97 3312 heaperror proc level 0, imported ; DEF: 623 ; REF: 51 1274 1297 2350 3205 high const scalar, ord=3 ; DEF: 1-624 ; REF: 868 899 931 966 1289 1310 1318 1546 2814 2970 i var local to scanparm, loc:150, size:4 ; integer ; DEF: 3019 ; REF: 3025* 3028 3032 3033 ic var global imported, size:4 ; integer ; DEF: 279 ; REF: 104 2578 2580 2588 2603 2609 2619 3367 icmpc const scalar, ord=513 ; DEF: 1-754 ; REF: 1-782 idkinds type scalar ; DEF: 1-406 ; REF: 1-452 1-572 1-597 idklass type scalar ; DEF: 1-415 ; REF: 1-515 idprocdef type scalar ; DEF: 1-417 ; REF: 1-590 idv3d const scalar, ord=539 ; DEF: 1-757 ; REF: 1-782 ieaa const scalar, ord=0 ; DEF: 1-679 ; REF: 1-781 iligne var global, loc:240, size:4 ; integer ; DEF: 427 ; REF: 755* 830* 830 831 1001* 3220* illegal_generation var global imported, size:4 ; boolean ; DEF: 280 ; REF: 105 2824* 2827 2831 imported const scalar, ord=4 ; DEF: 1-406 ; REF: 3249 3266 3283 incbloc type scalar ; DEF: 1-462 ; REF: 1-585 incomment var global, loc:242, size:4 ; boolean ; DEF: 430 ; REF: 769* 1435 2050* 2057* 2064 2083* init_fsb_trap_flag var global exportable, size:4 ; boolean ; DEF: 335 ; REF: 154 756* init_fsb_trap_info_place var global exportable, size:4 ; integer ; DEF: 336 ; REF: 155 757* init_fsb_trap_links_place var global exportable, size:4 ; integer ; DEF: 337 ; REF: 156 758* init_fsb_trap_number_of_files var global exportable, size:4 ; integer ; DEF: 338 ; REF: 157 759* initattrvarbl proc level 0, imported ; DEF: 651 ; REF: 67 2825 initclasse proc level 0, imported ; DEF: 622 ; REF: 52 3232 initialise proc level 0, imported ; DEF: 620 ; REF: 53 3207 initsource proc level 0, imported ; DEF: 656 ; REF: 110 723 inputctp var global imported, size:10 ; pointer ; DEF: 258 ; REF: 83 3246* 3247 3255 3257 3258 3259 inputflag var global exportable, size:10 ; pointer ; DEF: 339 ; REF: 163 760* 3244 3250 3252 3252 3254 3255 3255 3258 inser proc level 0, imported ; DEF: 640 ; REF: 71 1098 1102 instring var global, loc:241, size:4 ; boolean ; DEF: 428 ; REF: 764* 1443 1444* 1524 1526 1840* 1850* 1852* 1893 1898 instword type scalar ; DEF: 1-679 ; REF: 1-781 1-782 1-783 1-784 insymbol proc level 0, exportable ; DEF: 1561 ; REF: 165 2131 2157 2164 2195 2202 2294 2324 2330 2373 2390 2401 2406 2408 2412 2416 2421 2433 2439 2446 2454 2459 2462 2475 2481 2484 2495 2508 2511 2517 2521 2525 2536 2546 2556 2695 2698 2700 2737 2740 2742 2770 2883 2910 2957 int_const_token const scalar, ord=2 ; DEF: 1-491 ; REF: 1-497 1661 interactive var global exportable, size:4 ; boolean ; DEF: 340 ; REF: 166 761* 3091* intptr var global exportable, size:10 ; pointer ; DEF: 341 ; REF: 167 2837 2894 2925 2962 invert var local to checkvalue, loc:142, size:4 ; boolean ; DEF: 2322 ; REF: 2329* 2333* 2341 inxcheck var global imported, size:4 ; boolean ; DEF: 259 ; REF: 84 2431* 2543* 3223* iowarnings var global exportable, size:4 ; boolean ; DEF: 342 ; REF: 168 762* 3094* irpd const scalar, ord=540 ; DEF: 1-759 ; REF: 1-783 irpt const scalar, ord=542 ; DEF: 1-759 ; REF: 1-783 irrelsy const scalar, ord=0 ; DEF: 1-669 ; REF: 493 495 499 502 506 508 510 512 513 515 517 519 2691 2733 isno7 var local to inconst, loc:151, size:4 ; boolean ; DEF: 2802 ; REF: 2882* 2887* 2891 2932 istba const scalar, ord=543 ; DEF: 1-761 ; REF: 1-784 istcq const scalar, ord=546 ; DEF: 1-761 ; REF: 1-784 iswd const scalar, ord=510 ; DEF: 1-752 ; REF: 1-781 it var local to inconst, loc:154, size:4 ; integer ; DEF: 2804 ; REF: 2859* 2868* 2871 2936* 2945* 2948 it var local to skipextd, loc:142, size:4 ; integer ; DEF: 2720 ; REF: 2727* 2728 2729 it var local to traiteinclude, loc:232, size:4 ; integer ; DEF: 2122 ; REF: 2144* 2145 2145 2183* 2184 2184 2221* 2222 2222 it var local to insymbol, loc:140, size:4 ; integer ; DEF: 1646 ; REF: 1709* 1710 1712 1712 1749* 1753* 1753 1754 1755 1762 1763 1767* 1770 1772 1783 1791* 1791 1792 1792 1795 1823 1910* 1912 1913 1916 1917 1918 1919 1933* 1935 1948* 1950 it var local to nextch, loc:141, size:4 ; integer ; DEF: 1427 ; REF: 1451* 1452 1454 1461 1462 1468* 1468 1471 it var local to printerr, loc:140, size:4 ; integer ; DEF: 1341 ; REF: 1367* 1370 1385* 1387 1388 1391* 1394 it var local to crealfabox, loc:147, size:4 ; integer ; DEF: 1224 ; REF: 1272* 1322* 1322 it var local to printalfabox, loc:142, size:4 ; integer ; DEF: 1235 ; REF: 1250* 1250 it var local to inserundlab, loc:144, size:4 ; integer ; DEF: 1081 ; REF: 1095* 1096 1098 1099* 1099 1102 1105 it var local to poweroftwo, loc:145, size:4 ; integer ; DEF: 1036 ; REF: 1040* 1043 it var local to initracine, loc:140, size:4 ; integer ; DEF: 715 ; REF: 736* 737 745* 747 748 749 807* 808 808 816* 816 iunresolv type record ; DEF: 1-828 ; REF: 1-824 ival var global exportable, size:4 ; integer ; DEF: 343 ; REF: 169 1661* 1663* 1749* 1771* 1771 1780 1803 1908* 1923* 1931* 1939* 1944* 1954* 1959* 1976* 2816 2895 2895 2907 j var local to scanparm, loc:151, size:4 ; integer ; DEF: 3019 ; REF: 3027* 3028 3028 j var local to crealfabox, loc:150, size:4 ; integer ; DEF: 1224 ; REF: 1280* 1281 1281 1303* 1304 1304 jt var local to inconst, loc:155, size:4 ; integer ; DEF: 2804 ; REF: 2861* 2863 2863 2938* 2940 2940 k var local to insymbol, loc:141, size:4 ; integer ; DEF: 1646 ; REF: 1690* 1693 1695* 1695 1695 1701 1703* 1703 1703 1708 1709 1709 1714 1770* 1771 kind field disp:10, size:4 ; scalar ; DEF: 1-494 ; REF: 1658 kind field disp:10, size:4 ; scalar ; DEF: 1-852 ; REF: 2829 2835 klass field disp:110, size:4 ; scalar ; DEF: 1-515 ; REF: 2645 2646 2922 konst const scalar, ord=2 ; DEF: 1-415 ; REF: 1-564 2922 lab_pdl_element type record ; DEF: 1-664 ; REF: 1-663 lab_pdl_ptr type pointer ; DEF: 1-663 ; REF: 1-665 label_pdl_element type record ; DEF: 1-655 ; REF: 1-656 labelblock type record ; DEF: 1-641 ; REF: 1-640 labelblockptr type pointer ; DEF: 1-640 ; REF: 1-644 1-645 1-653 1-657 1-661 1-666 1-948 lalf var local to scanparm, loc:152, size:10 ; packed array of (char) ; DEF: 3020 ; REF: 3024* 3028* 3029 lastfile var global, loc:243, size:4 ; integer ; DEF: 431 ; REF: 765* 1348 1353* lastlig var global, loc:244, size:4 ; integer ; DEF: 432 ; REF: 766* 1348 1353* lastproc var global exportable, size:10 ; pointer ; DEF: 345 ; REF: 171 767* lastread var local to carteexec, loc:142, size:4 ; integer ; DEF: 3003 ; REF: 3033* 3034 3147 lc var global imported, size:4 ; integer ; DEF: 273 ; REF: 98 3235* lch var local to carteexec, loc:141, size:4 ; char ; DEF: 3002 ; REF: 3046* 3048* 3050* 3052* 3060* 3063* 3069* 3072* 3077* 3080 3083* 3086 3089* 3092* 3095* 3098 3101* 3113* 3143* 3146 3149* lcond const scalar, ord=1 ; DEF: 1-812 ; REF: 1-908 lcstpt type pointer ; DEF: 1-826 ; REF: 1-841 ldeb var local to traiteinclude, loc:233, size:4 ; integer ; DEF: 2122 ; REF: 2152* 2168* 2185* 2234 letters var global, loc:246, size:40 ; set of (char) ; DEF: 433 ; REF: 768* 1758 level var global exportable, size:4 ; numeric 0..20 ; DEF: 346 ; REF: 172 773* 3241* levrange type numeric 0..20 ; DEF: 1-418 ; REF: 1-526 1-558 1-573 1-581 1-601 1-636 1-855 346 levtrace type scalar ; DEF: 1-624 ; REF: 261 264 278 286 1534 2806 lfin var local to traiteinclude, loc:234, size:4 ; integer ; DEF: 2122 ; REF: 2153* 2191* 2206* 2223* 2234 lfound var local to carteexec, loc:140, size:4 ; boolean ; DEF: 3001 ; REF: 3046* 3047 3048* 3049 3050* 3051 3052* 3053 3060* 3061 3063* 3064 3069* 3070 3072* 3073 3077* 3078 3083* 3084 3089* 3090 3092* 3093 3095* 3096 3101* 3102 3113* 3114 3119* 3120 3125* 3126 3131* 3132 3137* 3138 3143* 3144 3149* 3150 lgparm const numeric ; DEF: 1-23 ; REF: 1-24 3185 lgparm1 const numeric ; DEF: 1-24 ; REF: 3185 lgprint const numeric ; DEF: 1-102 ; REF: 1356 1359 1363 1364 1367 1459 liglues var global exportable, size:4 ; integer ; DEF: 347 ; REF: 173 770* 1484* 1484 1489 1679 lin var parameter of nameisref, size:4 ; integer ; DEF: 2634 ; REF: 2664 2666 linen field disp:4, size:4 ; integer ; DEF: 1-430 ; REF: 2664* linetoprint var global, loc:256, size:4 ; integer ; DEF: 434 ; REF: 771* 1351 1352 1353 1446 1447 1482 1489* linkswordcount var global exportable, size:4 ; integer ; DEF: 349 ; REF: 174 3361* listhead proc level 0, imported ; DEF: 641 ; REF: 76 3218 listingline var local to nextch, loc:146, size:210 ; array of (char) ; DEF: 1428 ; REF: 1446* 1447* 1461* 1463 1465* 1471* 1472 liststatus var local to nextch, loc:211, size:4 ; boolean ; DEF: 1430 ; REF: 1442* 1475 listyes var global exportable, size:4 ; boolean ; DEF: 350 ; REF: 175 829 994 996 1440 1442 1442* 1475* 2397* 2398 2418* 2419 3055* 3140* 3204* 3216 3348 liunresolv type record ; DEF: 1-838 ; REF: 1-825 lkc var global imported, size:4 ; integer ; DEF: 274 ; REF: 99 3215* 3215 3361 ll var local to nextch, loc:145, size:4 ; integer ; DEF: 1427 ; REF: 1446* 1447* 1461* 1461 1463 1465* 1471* 1471 1472 llcstpt type pointer ; DEF: 1-827 ; REF: 1-846 lliunresolv type record ; DEF: 1-843 ; REF: 1-824 lmod var local to recadre, loc:146, size:4 ; integer ; DEF: 1129 ; REF: 1136* 1137 1139 localfpt var local to crealfabox, loc:142, size:10 ; pointer ; DEF: 1223 ; REF: 1274* 1274 1276 1276 1277 1278 1288 1290 1297* 1297 1299 1299 1300 1309 1311 locic var local to statement_ends, loc:142, size:4 ; integer ; DEF: 2599 ; REF: 2622* 2623 locsomme var local to insymbol, loc:152, size:4 ; integer ; DEF: 1649 ; REF: 1876* 1883* 1883 1885 1886 locvalue var local to insymbol, loc:151, size:4 ; integer ; DEF: 1648 ; REF: 1870* 1872* 1874* 1875* 1876 1879* 1881* 1882* 1883 longalfbox const numeric ; DEF: 1-22 ; REF: 1-422 1268 1269 1280 1282 1283 2859 2861 2865 2868 2936 2938 2942 2945 longchaine var global exportable, size:4 ; integer ; DEF: 351 ; REF: 176 1840* 1895* 1895 1896 1896 1900 1909 1910 1932 1933 1947 1948 1957 1963 1965* 1968 1968 1971 2138 2141* 2144 2178 2181* 2183 2185 2216 2219* 2221 2223 2903 longfill field disp:30, size:4 ; integer ; DEF: 1-423 ; REF: 1247 1250 1283* 1302* longlast var local to crealfabox, loc:151, size:4 ; integer ; DEF: 1224 ; REF: 1269* 1295 1302 1303 longpad var global, loc:257, size:4 ; integer ; DEF: 435 ; REF: 774* 1968 1968* 1970 1970* 1970 1971 longprofile var global exportable, size:4 ; boolean ; DEF: 352 ; REF: 177 775* 2583 3128* 3213 longstring var global exportable, size:4 ; integer ; DEF: 353 ; REF: 178 1268 1269 1294 1320 1322 2854* 2858* 2863 2865* 2865 2870* 2870 2871 2903* 2935* 2940 2942* 2942 2947* 2947 2948 2973 low const scalar, ord=1 ; DEF: 1-624 ; REF: 897 964 1108 1316 1544 2090 2126 2239 2366 2562 2702 2744 2772 2968 lphl const numeric ; DEF: 1-324 ; REF: 3213 lval const scalar, ord=2 ; DEF: 1-812 ; REF: 1-887 lvalu var local to poweroftwo, loc:144, size:4 ; integer ; DEF: 1036 ; REF: 1039* 1043* 1047* 1051 1056 majmin var global exportable, size:1000 ; array of (integer) ; DEF: 354 ; REF: 179 522* 1526 mapptr var global, loc:260, size:10 ; pointer ; DEF: 436 ; REF: 776* 2606 2621* 2623* 2624* 2625* 3210* 3364 3366* 3367* 3368* 3369* mapswitch var global exportable, size:4 ; boolean ; DEF: 355 ; REF: 180 777* 3058* 3117* 3123* 3129* 3135* 3141* 3209 3333 3362 3379 maxchar const numeric ; DEF: 1-96 ; REF: 1885 3187 maxdig const numeric ; DEF: 1-115 ; REF: 1932 maxdigitsinteger const numeric ; DEF: 1-121 ; REF: 1754 1762 1763 maxdigitsreal const numeric ; DEF: 1-122 ; REF: 1-397 1792 1795 maxerpg const numeric ; DEF: 1-20 ; REF: 322 364 417 745 3190 maxerrline const numeric ; DEF: 1-19 ; REF: 419 874 876 940 942 maxerrnum const numeric ; DEF: 1-94 ; REF: 1-95 885 951 3188 3189 maxexp const numeric ; DEF: 1-119 ; REF: 1825 1826 maxexpon const numeric ; DEF: 1-116 ; REF: 1814 maxexternname const numeric ; DEF: 1-32 ; REF: 1-400 2138 2141 maxfich const numeric ; DEF: 1-36 ; REF: 1-810 maxfield const numeric ; DEF: 1-39 ; REF: 1-627 1-628 maxhexdi const numeric ; DEF: 1-117 ; REF: 1909 maxident const numeric ; DEF: 1-26 ; REF: 1-399 1693 1701 2178 2181 2216 2219 3349 3351 maxintegerstring const alphanumeric, 20 char(s) ; DEF: 1-123 ; REF: 1763 maxkeylength const numeric ; DEF: 1-31 ; REF: 471 474 1708 maxlevel const numeric ; DEF: 1-18 ; REF: 1-418 maxlinepascal const numeric ; DEF: 1-100 ; REF: 454 1508 maxnbofkeywords const numeric ; DEF: 1-29 ; REF: 464 467 477 maxno const numeric ; DEF: 1-13 ; REF: 1-434 1-621 2727 maxpage const numeric ; DEF: 1-95 ; REF: 890 956 992 3189 3190 maxpageline const numeric ; DEF: 1-99 ; REF: 784 maxrealstring const alphanumeric, 20 char(s) ; DEF: 1-124 ; REF: 1826 maxref const numeric ; DEF: 1-38 ; REF: 1-429 2649 maxset const numeric ; DEF: 1-93 ; REF: 322 364 417 1395 1395 1398 1398 1399 3186 3187 maxsliceline const numeric ; DEF: 1-101 ; REF: 1-102 406 1428 1511 maxstring_ptr var global exportable, size:10 ; pointer ; DEF: 356 ; REF: 181 778* maxval const numeric ; DEF: 1-33 ; REF: 291 774 1896 1963 1965 maxwseg const numeric ; DEF: 1-73 ; REF: 1-973 medium const scalar, ord=2 ; DEF: 1-624 ; REF: 1545 minexp const numeric ; DEF: 1-120 ; REF: 1828 1829 minno const numeric ; DEF: 1-12 ; REF: 1-434 1-621 2727 minrealstring const alphanumeric, 20 char(s) ; DEF: 1-125 ; REF: 1829 monormod const scalar, ord=7 ; DEF: 1-412 ; REF: 1-557 motypes type scalar ; DEF: 1-459 ; REF: 1-557 mpcogerr var global exportable ; text ; DEF: 357 ; REF: 46 182 721* 1349 1350 1351 1352 1361 1364 1372 1375 1378 1380 1384 1388 1390 1397* 1397 1402 3350 mpcogin var global exportable ; text ; DEF: 357 ; REF: 46 183 722* 1437 1438 1491 1506 1524 1524 1842 1977 2235* 2691 3224 mpcogout var global exportable ; text ; DEF: 357 ; REF: 46 184 829 867 870 901 903 930 933 968 970 994 997 1055 1086 1110 1237 1240 1243 1246 1249 1250 1251 1255 1264 1288 1309 1320 1322 1324 1360 1363 1372 1375 1378 1383 1387 1463 1472 2092 2128 2241 2368 2564 2688 2704 2726 2729 2746 2766 2774 2813 2816 2972 2975 3156 3206* 3348 name field disp:20, size:40 ; packed array of (char) ; DEF: 1-404 ; REF: 1729* name_token const scalar, ord=1 ; DEF: 1-491 ; REF: 1-496 1660 nameisref proc level 0, exportable ; DEF: 2634 ; REF: 185 2919 3255 3272 3289 nbccond var global, loc:262, size:4 ; integer ; DEF: 437 ; REF: 779* 2035 2036* 2036 3357 nboxes var local to crealfabox, loc:146, size:4 ; integer ; DEF: 1224 ; REF: 1268* 1272 nbrstring var local to insymbol, loc:154, size:24 ; packed array of (char) ; DEF: 1651 ; REF: 1749* 1755* 1763 1771 1792* 1826 1829 1833 next field disp:10, size:10 ; pointer ; DEF: 1-403 ; REF: 1719 1721* 1722 1725* 1728 next field disp:0, size:10 ; pointer ; DEF: 1-493 ; REF: 1665 next var global exportable, size:10 ; pointer ; DEF: 358 ; REF: 186 772* 3243* 3257* 3274* 3291* nextch proc level 0 ; DEF: 1412 ; REF: 1673 1677 1687 1697 1705 1750 1756 1776 1787 1793 1802 1805 1809 1816 1845 1847 1851 1857 1877 1906 1931 1944 1980 1986 1993 1997 2005 2012 2016 2023 2031 2034 2044 2048 2068 2072 2077 2080 2081 2084 2149 2187 2225 2236 3227 3329 nextchar var var parameter of scanparm, size:4 ; char ; DEF: 3010 ; REF: 3023* 3034* nextcond field disp:40, size:10 ; pointer ; DEF: 1-966 ; REF: 2312 2353* 2503 nextline proc level 0, exportable ; DEF: 824 ; REF: 187 867 870 901 903 930 933 968 970 1002 1004 1057 1087 1110 1237 1237 1240 1243 1248 1252 1255 1255 1265 1288 1309 1321 1322 1324 1380 1390 1464 1473 2092 2128 2241 2368 2564 2688 2704 2730 2746 2766 2774 2813 2817 2973 2976 3159 3221 3349 nextpage proc level 0, exportable ; DEF: 980 ; REF: 188 703 831 nextproc field disp:110, size:10 ; pointer ; DEF: 1-949 ; REF: 3304* nextref field disp:0, size:10 ; pointer ; DEF: 1-427 ; REF: 2653* nextval field disp:0, size:10 ; pointer ; DEF: 1-421 ; REF: 1247 1276* 1279* 1299* 1302* 2866 2943 nmr field disp:4, size:4 ; integer ; DEF: 421 ; REF: 881* 947* 1387 1388 1394 no var global exportable, size:4 ; integer ; DEF: 361 ; REF: 190 1659* 1660* 1661* 1662* 1663* 1672* 1712* 1714* 1733 1738 1748* 1840* 1931* 1944* 1974* 1986* 1993* 1997* 2005* 2044* 2092 2132 2158 2165 2172 2196 2203 2210 2282 2283 2285 2296 2297 2325 2326 2331 2374 2407 2409 2417 2460 2463 2464 2466 2467 2468 2476 2477 2482 2485 2486 2488 2489 2490 2496 2497 2509 2518 2522 2530 2531 2537 2550 2551 2557 2691 2691 2692 2696 2697 2733 2733 2734 2738 2739 2746 2769 2816 2878 2889 2912 3322 no_compilation_warnings var global exportable, size:4 ; boolean ; DEF: 362 ; REF: 191 938 node type record ; DEF: 1-466 ; REF: 1-464 nodelistelem type record ; DEF: 1-473 ; REF: 1-471 nodelistptr type pointer ; DEF: 1-471 ; REF: 1-474 nodeptr type pointer ; DEF: 1-464 ; REF: 1-475 1-584 none const scalar, ord=0 ; DEF: 1-624 ; REF: 718 865 928 1053 1084 1262 1286 1307 1542 1543 2387 2399 2420 2686 2724 2764 2811 3152 3154 norange type numeric 0..63 ; DEF: 1-621 ; REF: 318 nosymb var parameter of skipextd, size:10 ; set of (numeric 0..63) ; DEF: 2101 ; REF: 2728 2733 nosymb var parameter of skip, size:4 ; integer ; DEF: 2100 ; REF: 2688 2691 nreg const scalar, ord=0 ; DEF: 1-774 ; REF: 1-777 numberstring type packed array of (char) ; DEF: 1-397 ; REF: 671 1651 numeric const scalar, ord=1 ; DEF: 1-412 ; REF: 1-535 nxtal var local to crealfabox, loc:144, size:10 ; pointer ; DEF: 1223 ; REF: 1270* 1275 1276 1277* 1298 1299 objaccessibles type scalar ; DEF: 1-460 ; REF: 1-461 occur field disp:10, size:4 ; scalar ; DEF: 1-634 ; REF: 3238* occurence type record ; DEF: 1-670 ; REF: 391 oldfile var global, loc:263, size:4 ; integer ; DEF: 438 ; REF: 780* 2610 2616* oldic var global, loc:264, size:4 ; integer ; DEF: 439 ; REF: 2609 2619* oldindex var global, loc:265, size:4 ; integer ; DEF: 440 ; REF: 781* 2611 2620* oldline var global, loc:266, size:4 ; integer ; DEF: 441 ; REF: 782* 2608 2617* on field disp:0, size:4 ; boolean ; DEF: 1-486 ; REF: 1654 1666* 2642 outcode var global imported, size:4 ; boolean ; DEF: 281 ; REF: 106 2387* 2399* 2420* 3152* outputctp var global imported, size:10 ; pointer ; DEF: 260 ; REF: 85 3263* 3264 3272 3274 3275 3276 outputflag var global exportable, size:10 ; pointer ; DEF: 363 ; REF: 192 783* 3261 3267 3269 3269 3271 3272 3272 3275 pagelength var global, loc:267, size:4 ; integer ; DEF: 442 ; REF: 784* 831 3146* 3147* 3147 pageno var global, loc:270, size:4 ; integer ; DEF: 443 ; REF: 784* 890 892 892 893 956 958 958 959 990* 990 992 1000 3219* 3219 pageserrors var global exportable, size:140 ; array of (set of (numeric 0..287)) ; DEF: 364 ; REF: 193 747* 892* 892 958* 958 pagesinsegment const numeric ; DEF: 1-69 ; REF: 1-70 parmlist var local to carteexec, loc:143, size:144 ; array of (char) ; DEF: 3004 ; REF: 3028 3034 3045* 3147 pascalfrench var global exportable, size:4 ; boolean ; DEF: 365 ; REF: 194 677 686 695 785* 3104* 3109* pclength const numeric ; DEF: 1-321 ; REF: 3373 phl const numeric ; DEF: 1-323 ; REF: 3212 pisrefincode field disp:204, size:4 ; boolean ; DEF: 1-575 ; REF: 2646* place field disp:4, size:4 ; numeric -131072..131071 ; DEF: 1-671 ; REF: 1098 1102 pointer const scalar, ord=3 ; DEF: 1-412 ; REF: 1-541 pos field disp:0, size:4 ; integer ; DEF: 421 ; REF: 881* 947* 1357 1370 pos1 var global, loc:271, size:4 ; integer ; DEF: 444 ; REF: 786* 870 878 878* 881 883* 883 901 933 944 944* 947 949* 949 968 1404* power const scalar, ord=4 ; DEF: 1-412 ; REF: 1-543 pr4disp var parameter of generrorlink, size:4 ; integer ; DEF: 692 ; REF: 696 697 pr4disp var parameter of genoutputlink, size:4 ; integer ; DEF: 683 ; REF: 687 688 pr4disp var parameter of geninputlink, size:4 ; integer ; DEF: 674 ; REF: 678 679 pr6 const scalar, ord=9 ; DEF: 1-774 ; REF: 1-777 preg type scalar subrange ; DEF: 1-777 ; REF: 1-856 1-880 prevfile var global, loc:272, size:4 ; integer ; DEF: 445 ; REF: 787* 1348 1349 1350 1481* previous field disp:0, size:10 ; pointer ; DEF: 1-403 ; REF: 1724* prevlig var global, loc:273, size:4 ; integer ; DEF: 446 ; REF: 788* 1348 1349 1350 1482* printalfabox proc of crealfabox ; DEF: 1230 ; REF: 1290 1311 printerr proc level 0 ; DEF: 1334 ; REF: 1474 3346 3359 proc const scalar, ord=3 ; DEF: 1-415 ; REF: 1-571 2646 procblock const scalar, ord=0 ; DEF: 1-938 ; REF: 1-945 3311 procisactive field disp:354, size:4 ; boolean ; DEF: 1-593 ; REF: 2646 proclocation type scalar ; DEF: 1-439 ; REF: 1-577 profarea type array of (integer) ; DEF: 1-934 ; REF: 1-933 profareaptr type pointer ; DEF: 1-933 ; REF: 368 670 profile var global, loc:274, size:4 ; boolean ; DEF: 447 ; REF: 789* 2582 3134* 3212 3371 profilewordcount var global exportable, size:4 ; integer ; DEF: 367 ; REF: 197 790* 3212* 3213* 3372 3373* 3373 profptr var global exportable, size:10 ; pointer ; DEF: 368 ; REF: 198 791* 3211* 3372* progdecl proc level 0, imported ; DEF: 621 ; REF: 54 3231 progname var global exportable, size:40 ; packed array of (char) ; DEF: 369 ; REF: 199 792* 998 programnode var global exportable, size:10 ; pointer ; DEF: 370 ; REF: 200 793* 3298* 3299 3300 3355 3356 3382 prterrmeans proc level 0, imported ; DEF: 624 ; REF: 55 1397 pt var global, loc:276, size:10 ; pointer ; DEF: 448 ; REF: 3242* 3321 ptalfabox var parameter of printalfabox, size:10 ; pointer ; DEF: 1230 ; REF: 1238 1243 1244 ptexternalitem type pointer ; DEF: 1-444 ; REF: 1-448 1-578 1-607 265 321 339 363 468 rcstpt type pointer ; DEF: 1-825 ; REF: 1-836 real_const_token const scalar, ord=4 ; DEF: 1-491 ; REF: 1-498 1662 realptr var global exportable, size:10 ; pointer ; DEF: 371 ; REF: 201 2843 2845 2898 2928 2963 recidscope type record ; DEF: 1-632 ; REF: 304 records const scalar, ord=6 ; DEF: 1-412 ; REF: 1-554 reel const scalar, ord=0 ; DEF: 1-412 ; REF: 1-534 refbox var local to nameisref, loc:146, size:10 ; pointer ; DEF: 2639 ; REF: 2647* 2648 2649 2650* 2651 2654 2659 2661 references field disp:70, size:10 ; pointer ; DEF: 1-512 ; REF: 2647 2653 2654* reflist type record ; DEF: 1-426 ; REF: 1-425 refnbr field disp:10, size:4 ; integer ; DEF: 1-428 ; REF: 2649 2655* 2660* 2660 2662 refptr type pointer ; DEF: 1-425 ; REF: 1-427 1-512 1-649 2639 refs field disp:14, size:620 ; array of (record) ; DEF: 1-429 ; REF: 2662 2663* 2664* 2665* 2666* 2667* regbox type record ; DEF: 1-817 ; REF: 1-816 register type scalar ; DEF: 1-774 ; REF: 1-777 1-819 1-862 1-889 1-920 regpt type pointer ; DEF: 1-816 ; REF: 1-821 1-822 1-858 1-867 1-881 1-890 1-910 remanentfile const scalar, ord=8 ; DEF: 1-442 ; REF: 3341 restype var var parameter of inconst, size:10 ; pointer ; DEF: 2784 ; REF: 2821* 2832* 2841* 2845* 2849* 2853* 2894* 2898* 2902* 2906* 2924* 2925 2928 2933 2961 2962 2963 2964 2965 2976 rsval field disp:20, size:10 ; real ; DEF: 1-903 ; REF: 2846 runresolv type record ; DEF: 1-833 ; REF: 1-825 rval var global exportable, size:10 ; real ; DEF: 372 ; REF: 204 1662* 1780* 1803* 1823* 1833* 2816 2899 2899 rversion var global, loc:1052, size:4 ; integer ; DEF: 458 ; REF: 794* 798 savectptr var local to inconst, loc:152, size:10 ; pointer ; DEF: 2803 ; REF: 2914* 2956 scalar const scalar, ord=2 ; DEF: 1-412 ; REF: 1-536 2838 scale var local to insymbol, loc:142, size:4 ; integer ; DEF: 1646 ; REF: 1803* 1818 1819 scanparm proc of carteexec ; DEF: 3009 ; REF: 3046 3048 3050 3052 3060 3063 3069 3072 3077 3083 3089 3092 3095 3101 3113 3119 3125 3131 3137 3143 3149 schema const scalar, ord=0 ; DEF: 1-415 ; REF: 1-516 schema_status type record ; DEF: 1-485 ; REF: 263 schema_token type record ; DEF: 1-492 ; REF: 1-484 schema_token_kind type scalar ; DEF: 1-491 ; REF: 1-494 search proc level 0, imported ; DEF: 1176 ; REF: 73 2916 selectivetable var global exportable, size:4 ; boolean ; DEF: 373 ; REF: 205 795* setarray type array of (integer) ; DEF: 1-815 ; REF: 1-839 1-844 1-904 setinargs field disp:60, size:4 ; boolean ; DEF: 1-967 ; REF: 2355* 2474 2529 setofno type set of (numeric 0..63) ; DEF: 1-434 ; REF: 478 2101 setrange const numeric ; DEF: 1-92 ; REF: 1-93 1-94 887 887 888 892 892 893 953 953 954 958 958 959 3186 3188 3190 shrtint type numeric -131072..131071 ; DEF: 1-619 ; REF: 1-671 sign var local to inconst, loc:150, size:4 ; boolean ; DEF: 2802 ; REF: 2880* 2886* 2895 2899 2926 2929 sign var local to insymbol, loc:145, size:4 ; boolean ; DEF: 1647 ; REF: 1804* 1809* 1818 skip proc level 0, exportable ; DEF: 2678 ; REF: 206 2100 2135 2161 2175 2199 2213 2229 2695 2737 skipcode var global, loc:300, size:4 ; boolean ; DEF: 449 ; REF: 799* 1435 1740 2395 2427 2438 2499* 2502* 2502 2510* 2553 3062* 3157 skipextd proc level 0, exportable ; DEF: 2713 ; REF: 207 2101 2284 skipoption proc of traiteoptions ; DEF: 2278 ; REF: 2297 2326 2331 2338 2374 2376 2379 2380 2381 2407 2409 2417 2423 2435 2448 2456 2460 2464 2468 2476 2482 2486 2490 2496 2509 2513 2518 2530 2533 2537 2548 2551 skippage var global, loc:301, size:4 ; boolean ; DEF: 450 ; REF: 799* 831 989* 2438* son field disp:20, size:10 ; pointer ; DEF: 1-941 ; REF: 3303* sourcectx var global, loc:302, size:4 ; char ; DEF: 452 ; REF: 800* 1435* 1435* 1446 1447 sourceindex var global exportable, size:4 ; integer ; DEF: 374 ; REF: 209 797* 1507* 1507 1678 sourcenbr var global exportable, size:4 ; integer ; DEF: 375 ; REF: 210 801* 1488 1492 1680 1977 srchrec proc level 0, imported ; DEF: 1151 ; REF: 74 2915 standardfile const scalar, ord=4 ; DEF: 1-437 ; REF: 3251 3268 3285 startic var global exportable, size:4 ; integer ; DEF: 376 ; REF: 211 802* 2578 2588* 2603 startit var local to nextch, loc:142, size:4 ; integer ; DEF: 1427 ; REF: 1451* 1461 1461 1462* 1471 1471 statement_ends proc level 0, exportable ; DEF: 2596 ; REF: 213 3334 statistiques proc level 0, imported ; DEF: 625 ; REF: 56 3360 statnbr var global exportable, size:4 ; integer ; DEF: 378 ; REF: 215 803* 2605* 2605 2606 2665 3356 3363* 3363 3364 3372 stattrace var global imported, size:4 ; scalar ; DEF: 261 ; REF: 86 1084 1108 1549 1549 2384* 2809 2810 3080* 3157 stdextend const scalar, ord=3 ; DEF: 1-435 ; REF: 1443 1691 1844 1899 2002 2033 2822 3071 stdkind type scalar ; DEF: 1-435 ; REF: 317 stdpure const scalar, ord=0 ; DEF: 1-435 ; REF: 763 1684 1904 1929 1945 2066 stdsol const scalar, ord=2 ; DEF: 1-435 ; REF: 1855 3075 string_ptr var global exportable, size:10 ; pointer ; DEF: 379 ; REF: 216 796* stringdeb var local to traiteinclude, loc:212, size:40 ; packed array of (char) ; DEF: 2121 ; REF: 2146* 2152* 2167* 2184* 2234 stringfin var local to traiteinclude, loc:222, size:40 ; packed array of (char) ; DEF: 2121 ; REF: 2147* 2153* 2190* 2205* 2222* 2234 strisfound var var parameter of scanparm, size:4 ; boolean ; DEF: 3009 ; REF: 3023* 3031* structureplace field disp:70, size:4 ; integer ; DEF: 1-947 ; REF: 3308* sttfile var global exportable, size:4 ; integer ; DEF: 380 ; REF: 217 2587* 2610 2616 2621 sttindex var global exportable, size:4 ; integer ; DEF: 381 ; REF: 218 2585* 2611 2620 2624 sttinline var global, loc:303, size:4 ; integer ; DEF: 453 ; REF: 2612* 2612 2615* 2624 sttlength var parameter of statement_ends, size:4 ; integer ; DEF: 2596 ; REF: 2624 sttline var global exportable, size:4 ; integer ; DEF: 382 ; REF: 219 2586* 2608 2617 2621 2625 sttmap type array of (record) ; DEF: 1-925 ; REF: 1-924 sttmapind field disp:10, size:4 ; integer ; DEF: 1-430 ; REF: 2665* 2666* 2667* sttmapptr type pointer ; DEF: 1-924 ; REF: 413 436 669 sttplace var global, loc:10, size:4 ; integer ; DEF: 383 ; REF: 2580* 2622 succ field disp:0, size:4 ; numeric -131072..131071 ; DEF: 1-671 ; REF: 808* 809* 1096 1099 1105* sval const scalar, ord=4 ; DEF: 1-812 ; REF: 1-900 2829 2835 symbline var global, loc:304, size:621 ; array of (char) ; DEF: 454 ; REF: 1454 1461 1471 1511* symbol_listing var global, loc:451, size:4 ; boolean ; DEF: 455 ; REF: 804* 3057* 3381 symbol_token const scalar, ord=0 ; DEF: 1-491 ; REF: 1-495 1659 symbolfile var global exportable, size:4 ; integer ; DEF: 384 ; REF: 221 1680* 2587 2919 symbolindex var global exportable, size:4 ; integer ; DEF: 385 ; REF: 222 1678* 2585 symbolline var global exportable, size:4 ; integer ; DEF: 386 ; REF: 223 1679* 2586 2919 symbolmap var global exportable, size:4 ; boolean ; DEF: 387 ; REF: 224 805* 2919 3051* 3056* 3253 3270 3287 symbtabl var global imported, size:4 ; boolean ; DEF: 275 ; REF: 100 3116* 3158 symcl var global, loc:452, size:1000 ; array of (integer) ; DEF: 456 ; REF: 534* 1975 symno var global, loc:652, size:1000 ; array of (integer) ; DEF: 457 ; REF: 535* 1974 t_char_value field disp:14, size:4 ; char ; DEF: 1-499 ; REF: 1663 t_int_value field disp:14, size:4 ; integer ; DEF: 1-497 ; REF: 1661 t_real_value field disp:20, size:10 ; real ; DEF: 1-498 ; REF: 1662 tag type scalar ; DEF: 1-766 ; REF: 1-778 tagfield const scalar, ord=6 ; DEF: 1-415 ; REF: 1-610 taval field disp:14, size:40 ; packed array of (char) ; DEF: 1-496 ; REF: 1660 tcl field disp:20, size:4 ; integer ; DEF: 1-495 ; REF: 1659 textfilectp var global exportable, size:10 ; pointer ; DEF: 388 ; REF: 225 3249 3266 3283 tn const scalar, ord=0 ; DEF: 1-766 ; REF: 1-778 tno field disp:14, size:4 ; integer ; DEF: 1-495 ; REF: 1659 top var global exportable, size:4 ; integer ; DEF: 389 ; REF: 226 806* 3240* tracelevel proc level 0 ; DEF: 1534 ; REF: 2383 2384 2386 3080 3086 3098 traiteinclude proc level 0 ; DEF: 2105 ; REF: 1556 1735 traiteoptions proc level 0 ; DEF: 2251 ; REF: 1557 1742 tsetinargs var global, loc:1053, size:4 ; boolean ; DEF: 459 ; REF: 2427 2539 3067* twoto10 const numeric ; DEF: 1-50 ; REF: 1-51 1-68 2621 twoto14 const numeric ; DEF: 1-52 ; REF: 1-53 twoto15 const numeric ; DEF: 1-53 ; REF: 1-54 1-72 twoto16 const numeric ; DEF: 1-54 ; REF: 1-55 twoto17 const numeric ; DEF: 1-55 ; REF: 1-56 1-57 1-90 1-619 twoto17m1 const numeric ; DEF: 1-56 ; REF: 1-619 twoto18 const numeric ; DEF: 1-57 ; REF: 1-58 1-59 1-71 3366 twoto27 const numeric ; DEF: 1-59 ; REF: 2624 twoto4 const numeric ; DEF: 1-45 ; REF: 1-46 2621 2625 twoto6 const numeric ; DEF: 1-46 ; REF: 1-47 1-52 twoto8 const numeric ; DEF: 1-47 ; REF: 1-48 1-49 1-52 1-69 1-89 1-620 twoto8m1 const numeric ; DEF: 1-48 ; REF: 1-620 twoto9 const numeric ; DEF: 1-49 ; REF: 1-50 1-59 1-91 2624 tx7 const scalar, ord=15 ; DEF: 1-767 ; REF: 1-778 types const scalar, ord=1 ; DEF: 1-415 ; REF: 1-523 typform type scalar ; DEF: 1-412 ; REF: 1-533 typofsymb type scalar ; DEF: 1-669 ; REF: 318 typtr field disp:0, size:10 ; pointer ; DEF: 1-851 ; REF: 2829 2831 2837 2838 2839 2841 2843 typusednames type array of (array of (char)) ; DEF: 1-436 ; REF: 394 461 undlab var global exportable, size:17500 ; array of (record) ; DEF: 391 ; REF: 228 808* 809* 1096 1098 1099 1102 1105* undmax const numeric ; DEF: 1-21 ; REF: 391 807 809 usednames var global exportable, size:300 ; array of (array of (char)) ; DEF: 394 ; REF: 229 3106* 3111* 3246 3263 3280 usednamesa var global, loc:1054, size:300 ; array of (array of (char)) ; DEF: 460 ; REF: 538* 3111 usednamesarray type packed array of (pointer) ; DEF: 1-973 ; REF: 1-974 1-974 usednamesf var global, loc:1134, size:300 ; array of (array of (char)) ; DEF: 461 ; REF: 540* 3106 vaddr field disp:140, size:4 ; integer ; DEF: 1-599 ; REF: 3250* 3267* 3284* val field disp:14, size:4 ; integer ; DEF: 1-902 ; REF: 2842 valhex var local to insymbol, loc:144, size:4 ; integer ; DEF: 1646 ; REF: 1913* 1917* 1919* 1921* 1923 1935* 1936 1937* 1939 1950* 1951 1952* 1954 valreel field disp:150, size:10 ; real ; DEF: 1-568 ; REF: 2929 2930 values field disp:144, size:4 ; integer ; DEF: 1-567 ; REF: 2926 2927 2951 vararea type scalar ; DEF: 1-939 ; REF: 1-953 varbl const scalar, ord=0 ; DEF: 1-812 ; REF: 1-854 vars const scalar, ord=4 ; DEF: 1-415 ; REF: 1-596 2645 verifcoherence proc level 0 ; DEF: 3169 ; REF: 3229 version var global exportable, size:4 ; integer ; DEF: 395 ; REF: 230 798* 997 vfilelocation field disp:134, size:4 ; scalar ; DEF: 1-598 ; REF: 3251* 3268* 3285* visrefincode field disp:204, size:4 ; boolean ; DEF: 1-603 ; REF: 2645* visset field disp:170, size:4 ; boolean ; DEF: 1-603 ; REF: 3251* visused field disp:164, size:4 ; boolean ; DEF: 1-603 ; REF: 3251* 3268* 3285* vkind field disp:130, size:4 ; scalar ; DEF: 1-597 ; REF: 3249* 3266* 3283* vlevel field disp:154, size:4 ; numeric 0..20 ; DEF: 1-601 ; REF: 3249* 3266* 3283* vptextitem field disp:240, size:10 ; pointer ; DEF: 1-607 ; REF: 3250* 3267* 3284* vtype field disp:120, size:10 ; pointer ; DEF: 1-596 ; REF: 3249* 3266* 3283* vwith const scalar, ord=2 ; DEF: 1-622 ; REF: 1-637 warning proc level 0, exportable ; DEF: 913 ; REF: 231 1795 2411 2445 2453 wcl var global, loc:1214, size:310 ; array of (integer) ; DEF: 462 ; REF: 1712 3105* 3110* wcla var global, loc:1276, size:310 ; array of (integer) ; DEF: 463 ; REF: 542* 3110 wclf var global, loc:1360, size:310 ; array of (integer) ; DEF: 464 ; REF: 554* 3105 wcstpt type pointer ; DEF: 1-824 ; REF: 1-831 wd var global, loc:1442, size:3100 ; array of (array of (char)) ; DEF: 465 ; REF: 1710 3105* 3110* wda var global, loc:2262, size:3100 ; array of (array of (char)) ; DEF: 466 ; REF: 565* 3110 wdf var global, loc:3102, size:3100 ; array of (array of (char)) ; DEF: 467 ; REF: 577* 3105 wdsetinargs var global, loc:4264, size:4 ; boolean ; DEF: 479 ; REF: 811* 2383 3087* wgsetinargs var global, loc:4265, size:4 ; boolean ; DEF: 480 ; REF: 812* 2385 3099* whattrace var local to inconst, loc:160, size:4 ; scalar ; DEF: 2806 ; REF: 2809* 2810* 2811 2814 2968 2970 where type scalar ; DEF: 1-622 ; REF: 1-634 whichtrace var var parameter of tracelevel, size:4 ; scalar ; DEF: 1534 ; REF: 1542* 1543* 1544* 1545* 1546* withblock const scalar, ord=1 ; DEF: 1-938 ; REF: 1-952 withreflist type record ; DEF: 1-626 ; REF: 1-636 1-637 wkextpt var global, loc:3722, size:10 ; pointer ; DEF: 468 ; REF: 3335* 3337 3340 3341 3349 3351 3353* 3353 wl1 var global, loc:3724, size:60 ; array of (integer) ; DEF: 469 ; REF: 1709 3105* 3110* wl1a var global, loc:3740, size:60 ; array of (integer) ; DEF: 470 ; REF: 588* 3110 wl1f var global, loc:3754, size:60 ; array of (integer) ; DEF: 471 ; REF: 589* 3105 wl2 var global, loc:3770, size:60 ; array of (integer) ; DEF: 472 ; REF: 1709 3105* 3110* wl2a var global, loc:4004, size:60 ; array of (integer) ; DEF: 473 ; REF: 590* 3110 wl2f var global, loc:4020, size:60 ; array of (integer) ; DEF: 474 ; REF: 591* 3105 wno var global, loc:4034, size:310 ; array of (integer) ; DEF: 475 ; REF: 1712 3105* 3110* wnoa var global, loc:4116, size:310 ; array of (integer) ; DEF: 476 ; REF: 592* 3110 wnof var global, loc:4200, size:310 ; array of (integer) ; DEF: 477 ; REF: 604* 3105 wnoset var global, loc:4262, size:10 ; set of (numeric 0..63) ; DEF: 478 ; REF: 810* 2464 2486 word1 field disp:0, size:4 ; integer ; DEF: 1-927 ; REF: 2621* 2623* 3366* 3367* word2 field disp:4, size:4 ; integer ; DEF: 1-928 ; REF: 2624* 2625* 3368* 3369* wordconst const scalar, ord=0 ; DEF: 1-416 ; REF: 1-567 wordsforset const numeric ; DEF: 1-109 ; REF: 1-110 1-111 1-112 3192 3193 wordsinpage const numeric ; DEF: 1-68 ; REF: 1-70 wordsinsegment const numeric ; DEF: 1-70 ; REF: 1-73 work var local to traiteoptions, loc:142, size:10 ; pointer ; DEF: 2274 ; REF: 2307* 2309 2310 2312* 2312 2338 2339 2349* 2350 2351 2359 2470 2473 2492 2494 2498* 2500 2502 2502 2503* 2503 2520 2528 writecode var global imported, size:4 ; boolean ; DEF: 282 ; REF: 107 2387 2398* 2398 2399 2419* 2419 2420 3152 wssetinargs var global, loc:4266, size:4 ; boolean ; DEF: 481 ; REF: 813* 2384 3081* xc var global exportable, size:4 ; integer ; DEF: 396 ; REF: 232 814* 3235 xrefneed var global exportable, size:4 ; boolean ; DEF: 397 ; REF: 233 815* 3151* 3158 NAMES DECLARED AND NEVER REFERENCED a0b0c0 const scalar, ord=0 ; DEF: 1-795 a0b0c1 const scalar, ord=1 ; DEF: 1-795 a0b1c0 const scalar, ord=4 ; DEF: 1-795 a0b1c1 const scalar, ord=5 ; DEF: 1-795 a0r0i0 const scalar, ord=0 ; DEF: 1-799 a0r0i1 const scalar, ord=1 ; DEF: 1-799 a0r1i0 const scalar, ord=2 ; DEF: 1-799 a0r1i1 const scalar, ord=3 ; DEF: 1-799 a1b0c0 const scalar, ord=2 ; DEF: 1-795 a1b0c1 const scalar, ord=3 ; DEF: 1-795 a1b1c0 const scalar, ord=6 ; DEF: 1-795 a1b1c1 const scalar, ord=7 ; DEF: 1-795 a1r0i0 const scalar, ord=4 ; DEF: 1-799 a1r0i1 const scalar, ord=5 ; DEF: 1-799 a1r1i0 const scalar, ord=6 ; DEF: 1-799 a1r1i1 const scalar, ord=7 ; DEF: 1-799 absl * const numeric ; DEF: 1-334 accbloc field disp:20, size:10 ; pointer ; DEF: 1-910 accbool field disp:30, size:4 ; boolean ; DEF: 1-911 access field disp:70, size:4 ; scalar ; DEF: 1-871 actual const scalar, ord=0 ; DEF: 1-406 actual_parameter_list field disp:160, size:10 ; pointer ; DEF: 1-530 add const scalar, ord=3 ; DEF: 1-919 adlx const scalar, ord=0 ; DEF: 1-918 adx const scalar, ord=1 ; DEF: 1-918 aeltype field disp:200, size:10 ; pointer ; DEF: 1-546 alfalevel field disp:164, size:4 ; integer ; DEF: 1-570 alfathread field disp:50, size:10 ; pointer ; DEF: 1-510 argcextplace * const numeric ; DEF: 1-205 argcplace * const numeric ; DEF: 1-204 argcshortplace * const numeric ; DEF: 1-203 argptw * const numeric ; DEF: 1-280 argvextplace * const numeric ; DEF: 1-208 argvplace * const numeric ; DEF: 1-207 argvshortplace * const numeric ; DEF: 1-206 arraybound const scalar, ord=2 ; DEF: 1-406 askforexclusionplace * const numeric ; DEF: 1-363 asserrcode * const numeric ; DEF: 1-250 bad_date_time_parameter * const numeric ; DEF: 1-269 bad_string_index * const numeric ; DEF: 1-268 basebloc field disp:30, size:10 ; pointer ; DEF: 1-858 baseprocessdplmt * const numeric ; DEF: 1-345 basereg field disp:20, size:4 ; scalar subrange ; DEF: 1-856 binartypeptr * type pointer ; DEF: 1-811 bit29 * const numeric ; DEF: 1-142 bitsindword * const numeric ; DEF: 1-80 bitsinhword * const numeric ; DEF: 1-79 blocenglob field disp:270, size:10 ; pointer ; DEF: 1-561 boolptr * var global exportable, size:10 ; pointer ; DEF: 288 ; REF: 125 brother field disp:20, size:10 ; pointer ; DEF: 1-645 byteinbyte * const numeric ; DEF: 1-81 byteshift * const numeric ; DEF: 1-82 bytesindword * const numeric ; DEF: 1-66 bytint * type numeric -256..255 ; DEF: 1-620 bytwidth field disp:134, size:4 ; integer ; DEF: 1-609 cadrage field disp:120, size:4 ; integer ; DEF: 1-524 caserrcode * const numeric ; DEF: 1-253 casesize field disp:114, size:4 ; integer ; DEF: 1-610 casetype field disp:140, size:10 ; pointer ; DEF: 1-613 caseval field disp:134, size:4 ; integer ; DEF: 1-614 cdspl field disp:344, size:4 ; integer ; DEF: 1-636 ch8flag * var global exportable, size:4 ; boolean ; DEF: 292 ; REF: 128 chaineentree field disp:260, size:10 ; pointer ; DEF: 1-583 checkbeforeeofplace * const numeric ; DEF: 1-157 checkbeforeeolnplace * const numeric ; DEF: 1-156 checkbeforetextreferenceplace * const numeric ; DEF: 1-158 checkbit * const numeric ; DEF: 1-236 chrerrcode * const numeric ; DEF: 1-245 clevel field disp:340, size:4 ; numeric 0..20 ; DEF: 1-636 clockopplace * const numeric ; DEF: 1-198 closeplace * const numeric ; DEF: 1-164 cmp const scalar, ord=5 ; DEF: 1-919 compiled field disp:4, size:4 ; boolean ; DEF: 1-467 condcounterplace * const numeric ; DEF: 1-343 condit const scalar, ord=2 ; DEF: 1-460 conformant field disp:220, size:4 ; boolean ; DEF: 1-548 connectplace * const numeric ; DEF: 1-188 crealfabox * proc level 0, exportable ; DEF: 1213 ; REF: 135 creflist field disp:20, size:320 ; record ; DEF: 1-636 cstnext field disp:10, size:10 ; pointer ; DEF: 1-831 cstplace field disp:4, size:4 ; integer ; DEF: 1-830 current_parameter field disp:30, size:10 ; pointer ; DEF: 1-489 dateopplace * const numeric ; DEF: 1-196 dclfile field disp:40, size:4 ; integer ; DEF: 1-647 dclline field disp:44, size:4 ; integer ; DEF: 1-647 deccode const scalar, ord=4 ; DEF: 1-623 deffile field disp:50, size:4 ; integer ; DEF: 1-648 definition const scalar, ord=3 ; DEF: 1-623 deflbool * const numeric ; DEF: 1-390 deflchar * const numeric ; DEF: 1-391 defline field disp:54, size:4 ; integer ; DEF: 1-648 deflnum * const numeric ; DEF: 1-389 deflreal * const numeric ; DEF: 1-388 delete_negative_length_error * const numeric ; DEF: 1-265 delete_offset_error * const numeric ; DEF: 1-264 delete_too_long_error * const numeric ; DEF: 1-266 desc_vector_references field disp:170, size:4 ; integer ; DEF: 1-531 descbloc field disp:130, size:10 ; pointer ; DEF: 1-881 descreg field disp:120, size:4 ; scalar subrange ; DEF: 1-880 destination * type scalar ; DEF: 1-814 direct const scalar, ord=0 ; DEF: 1-813 disposeplace * const numeric ; DEF: 1-178 disx * var global exportable, size:4 ; integer ; DEF: 312 ; REF: 140 diverrcode * const numeric ; DEF: 1-251 dlkdepw * const numeric ; DEF: 1-285 domain field disp:210, size:10 ; pointer ; DEF: 1-542 dopevectorsize * const numeric ; DEF: 1-274 dplmt field disp:40, size:4 ; integer ; DEF: 1-861 elem field disp:20, size:10 ; pointer ; DEF: 1-475 elset field disp:210, size:10 ; pointer ; DEF: 1-544 eltype field disp:220, size:10 ; pointer ; DEF: 1-542 emptyindex * const numeric ; DEF: 1-385 emptyplace * const numeric ; DEF: 1-367 encode const scalar, ord=3 ; DEF: 1-813 eofeolnerrcode * const numeric ; DEF: 1-257 epp const scalar, ord=0 ; DEF: 1-917 errorcond * const numeric ; DEF: 1-106 evareaw * const numeric ; DEF: 1-288 exceptcodeplace * const numeric ; DEF: 1-189 executionmodplmt * const numeric ; DEF: 1-346 exitdplmt field disp:10, size:4 ; integer ; DEF: 1-481 exitplace * const numeric ; DEF: 1-379 exportable const scalar, ord=3 ; DEF: 1-406 exportproc const scalar, ord=4 ; DEF: 1-442 exportvar const scalar, ord=2 ; DEF: 1-441 extareadisp field disp:254, size:4 ; integer ; DEF: 1-454 extcallplace * const numeric ; DEF: 1-194 extdef const scalar, ord=2 ; DEF: 1-417 extend_stack_op_place * const numeric ; DEF: 1-226 extentryname field disp:140, size:40 ; packed array of (char) ; DEF: 1-447 extentryplace * const numeric ; DEF: 1-155 externalarea const scalar, ord=1 ; DEF: 1-441 extgenerator field disp:100, size:40 ; packed array of (char) ; DEF: 1-447 extkind field disp:244, size:4 ; scalar ; DEF: 1-452 extlong field disp:260, size:4 ; integer ; DEF: 1-455 extpltdisp field disp:250, size:4 ; integer ; DEF: 1-453 extreturnplace * const numeric ; DEF: 1-191 extsegname field disp:40, size:40 ; packed array of (char) ; DEF: 1-447 extwantdescs field disp:264, size:4 ; boolean ; DEF: 1-456 fappendplace * const numeric ; DEF: 1-201 fastbit * const numeric ; DEF: 1-235 father_schema field disp:150, size:10 ; pointer ; DEF: 1-529 fcloseplace * const numeric ; DEF: 1-187 fconst field disp:210, size:10 ; pointer ; DEF: 1-538 fctdepl * const numeric ; DEF: 1-287 fctdeplw * const numeric ; DEF: 1-286 fdescsize * const numeric ; DEF: 1-304 feltype field disp:200, size:10 ; pointer ; DEF: 1-555 finitdef const scalar, ord=4 ; DEF: 1-417 finitmoproc field disp:260, size:10 ; pointer ; DEF: 1-561 first field disp:20, size:10 ; pointer ; DEF: 1-657 first_in_block field disp:20, size:10 ; pointer ; DEF: 1-666 firstfield field disp:140, size:10 ; pointer ; DEF: 1-614 fldaddr field disp:130, size:4 ; integer ; DEF: 1-609 fldtype field disp:120, size:10 ; pointer ; DEF: 1-608 fllengthb * const numeric ; DEF: 1-313 fllengthw * const numeric ; DEF: 1-309 flls const scalar, ord=0 ; DEF: 1-786 flushplace * const numeric ; DEF: 1-200 forerricode * const numeric ; DEF: 1-248 forerrscode * const numeric ; DEF: 1-249 formal const scalar, ord=1 ; DEF: 1-406 formal_parameter_list field disp:130, size:10 ; pointer ; DEF: 1-519 formals field disp:130, size:10 ; pointer ; DEF: 1-571 forset * type scalar ; DEF: 1-807 forwdef const scalar, ord=1 ; DEF: 1-417 fposb * const numeric ; DEF: 1-311 fposw * const numeric ; DEF: 1-307 freeexclusionplace * const numeric ; DEF: 1-364 french_bit * const numeric ; DEF: 1-240 freopenplace * const numeric ; DEF: 1-202 fsbadrw * const numeric ; DEF: 1-289 fsbpointersize * const numeric ; DEF: 1-305 fsizeb * const numeric ; DEF: 1-312 fsizew * const numeric ; DEF: 1-308 fstatusb * const numeric ; DEF: 1-310 fstatusw * const numeric ; DEF: 1-306 fstfld field disp:210, size:10 ; pointer ; DEF: 1-554 functionvaluecheckplace * const numeric ; DEF: 1-225 functionvaluesetplace * const numeric ; DEF: 1-224 fupdtplace * const numeric ; DEF: 1-186 fxls const scalar, ord=1 ; DEF: 1-786 fxns const scalar, ord=3 ; DEF: 1-786 fxts const scalar, ord=2 ; DEF: 1-786 generrorlink * proc level 0, exportable ; DEF: 692 ; REF: 158 geninputlink * proc level 0, exportable ; DEF: 674 ; REF: 159 genoutputlink * proc level 0, exportable ; DEF: 683 ; REF: 160 getdirplace * const numeric ; DEF: 1-185 getseqplace * const numeric ; DEF: 1-175 gettextplace * const numeric ; DEF: 1-174 gotoexitextplace * const numeric ; DEF: 1-159 gotoexitplace * const numeric ; DEF: 1-176 hi field disp:230, size:4 ; integer ; DEF: 1-549 holdplace * const numeric ; DEF: 1-358 ia4bd const scalar, ord=501 ; DEF: 1-751 ia6bd const scalar, ord=502 ; DEF: 1-751 ia9bd const scalar, ord=503 ; DEF: 1-751 iaar0 const scalar, ord=449 ; DEF: 1-745 iaar1 const scalar, ord=450 ; DEF: 1-745 iaar2 const scalar, ord=451 ; DEF: 1-745 iaar3 const scalar, ord=452 ; DEF: 1-745 iaar4 const scalar, ord=453 ; DEF: 1-745 iaar5 const scalar, ord=454 ; DEF: 1-745 iaar6 const scalar, ord=455 ; DEF: 1-745 iaar7 const scalar, ord=456 ; DEF: 1-745 iabd const scalar, ord=504 ; DEF: 1-751 iabsa const scalar, ord=447 ; DEF: 1-743 iad2d const scalar, ord=530 ; DEF: 1-756 iad3d const scalar, ord=536 ; DEF: 1-757 iada const scalar, ord=84 ; DEF: 1-689 iadaq const scalar, ord=85 ; DEF: 1-689 iade const scalar, ord=206 ; DEF: 1-705 iadl const scalar, ord=86 ; DEF: 1-689 iadla const scalar, ord=87 ; DEF: 1-689 iadlaq const scalar, ord=88 ; DEF: 1-690 iadlq const scalar, ord=89 ; DEF: 1-690 iadlx0 const scalar, ord=90 ; DEF: 1-690 iadlx1 const scalar, ord=91 ; DEF: 1-690 iadlx2 const scalar, ord=92 ; DEF: 1-690 iadlx3 const scalar, ord=93 ; DEF: 1-690 iadlx4 const scalar, ord=94 ; DEF: 1-690 iadlx5 const scalar, ord=95 ; DEF: 1-690 iadlx6 const scalar, ord=96 ; DEF: 1-691 iadlx7 const scalar, ord=97 ; DEF: 1-691 iadq const scalar, ord=98 ; DEF: 1-691 iadwp0 const scalar, ord=361 ; DEF: 1-728 iadwp1 const scalar, ord=362 ; DEF: 1-728 iadwp2 const scalar, ord=363 ; DEF: 1-728 iadwp3 const scalar, ord=364 ; DEF: 1-728 iadwp4 const scalar, ord=365 ; DEF: 1-728 iadwp5 const scalar, ord=366 ; DEF: 1-728 iadwp6 const scalar, ord=367 ; DEF: 1-729 iadwp7 const scalar, ord=368 ; DEF: 1-729 iadx0 const scalar, ord=99 ; DEF: 1-691 iadx1 const scalar, ord=100 ; DEF: 1-691 iadx2 const scalar, ord=101 ; DEF: 1-691 iadx3 const scalar, ord=102 ; DEF: 1-691 iadx4 const scalar, ord=103 ; DEF: 1-691 iadx5 const scalar, ord=104 ; DEF: 1-692 iadx6 const scalar, ord=105 ; DEF: 1-692 iadx7 const scalar, ord=106 ; DEF: 1-692 ialr const scalar, ord=72 ; DEF: 1-688 ials const scalar, ord=73 ; DEF: 1-688 iana const scalar, ord=210 ; DEF: 1-708 ianaq const scalar, ord=211 ; DEF: 1-708 ianq const scalar, ord=212 ; DEF: 1-708 iansa const scalar, ord=213 ; DEF: 1-708 iansq const scalar, ord=214 ; DEF: 1-708 iansx0 const scalar, ord=215 ; DEF: 1-708 iansx1 const scalar, ord=216 ; DEF: 1-708 iansx2 const scalar, ord=217 ; DEF: 1-708 iansx3 const scalar, ord=218 ; DEF: 1-709 iansx4 const scalar, ord=219 ; DEF: 1-709 iansx5 const scalar, ord=220 ; DEF: 1-709 iansx6 const scalar, ord=221 ; DEF: 1-709 iansx7 const scalar, ord=222 ; DEF: 1-709 ianx0 const scalar, ord=223 ; DEF: 1-709 ianx1 const scalar, ord=224 ; DEF: 1-709 ianx2 const scalar, ord=225 ; DEF: 1-709 ianx3 const scalar, ord=226 ; DEF: 1-710 ianx4 const scalar, ord=227 ; DEF: 1-710 ianx5 const scalar, ord=228 ; DEF: 1-710 ianx6 const scalar, ord=229 ; DEF: 1-710 ianx7 const scalar, ord=230 ; DEF: 1-710 iaos const scalar, ord=107 ; DEF: 1-692 iara0 const scalar, ord=475 ; DEF: 1-748 iara1 const scalar, ord=476 ; DEF: 1-748 iara2 const scalar, ord=477 ; DEF: 1-748 iara3 const scalar, ord=478 ; DEF: 1-748 iara4 const scalar, ord=479 ; DEF: 1-748 iara5 const scalar, ord=480 ; DEF: 1-748 iara6 const scalar, ord=481 ; DEF: 1-749 iara7 const scalar, ord=482 ; DEF: 1-749 iarl const scalar, ord=74 ; DEF: 1-688 iarn0 const scalar, ord=483 ; DEF: 1-749 iarn1 const scalar, ord=484 ; DEF: 1-749 iarn2 const scalar, ord=485 ; DEF: 1-749 iarn3 const scalar, ord=486 ; DEF: 1-749 iarn4 const scalar, ord=487 ; DEF: 1-749 iarn5 const scalar, ord=488 ; DEF: 1-749 iarn6 const scalar, ord=489 ; DEF: 1-750 iarn7 const scalar, ord=490 ; DEF: 1-750 iars const scalar, ord=75 ; DEF: 1-688 iasa const scalar, ord=108 ; DEF: 1-692 iasq const scalar, ord=109 ; DEF: 1-692 iasx0 const scalar, ord=110 ; DEF: 1-692 iasx1 const scalar, ord=111 ; DEF: 1-692 iasx2 const scalar, ord=112 ; DEF: 1-693 iasx3 const scalar, ord=113 ; DEF: 1-693 iasx4 const scalar, ord=114 ; DEF: 1-693 iasx5 const scalar, ord=115 ; DEF: 1-693 iasx6 const scalar, ord=116 ; DEF: 1-693 iasx7 const scalar, ord=117 ; DEF: 1-693 iawca const scalar, ord=118 ; DEF: 1-693 iawcq const scalar, ord=119 ; DEF: 1-693 iawd const scalar, ord=505 ; DEF: 1-752 ibcd const scalar, ord=419 ; DEF: 1-738 ibtd const scalar, ord=528 ; DEF: 1-756 ic_from field disp:0, size:4 ; integer ; DEF: 1-651 ic_to field disp:4, size:4 ; integer ; DEF: 1-651 icall6 const scalar, ord=370 ; DEF: 1-731 icamp const scalar, ord=438 ; DEF: 1-742 icams const scalar, ord=439 ; DEF: 1-742 icana const scalar, ord=273 ; DEF: 1-715 icanaq const scalar, ord=274 ; DEF: 1-716 icanq const scalar, ord=275 ; DEF: 1-716 icanx0 const scalar, ord=276 ; DEF: 1-716 icanx1 const scalar, ord=277 ; DEF: 1-716 icanx2 const scalar, ord=278 ; DEF: 1-716 icanx3 const scalar, ord=279 ; DEF: 1-716 icanx4 const scalar, ord=280 ; DEF: 1-716 icanx5 const scalar, ord=281 ; DEF: 1-716 icanx6 const scalar, ord=282 ; DEF: 1-717 icanx7 const scalar, ord=283 ; DEF: 1-717 icioc const scalar, ord=443 ; DEF: 1-742 icmg const scalar, ord=160 ; DEF: 1-699 icmk const scalar, ord=161 ; DEF: 1-699 icmpa const scalar, ord=162 ; DEF: 1-699 icmpaq const scalar, ord=163 ; DEF: 1-699 icmpb const scalar, ord=527 ; DEF: 1-756 icmpn const scalar, ord=525 ; DEF: 1-755 icmpq const scalar, ord=164 ; DEF: 1-699 icmpx0 const scalar, ord=165 ; DEF: 1-699 icmpx1 const scalar, ord=166 ; DEF: 1-699 icmpx2 const scalar, ord=167 ; DEF: 1-699 icmpx3 const scalar, ord=168 ; DEF: 1-700 icmpx4 const scalar, ord=169 ; DEF: 1-700 icmpx5 const scalar, ord=170 ; DEF: 1-700 icmpx6 const scalar, ord=171 ; DEF: 1-700 icmpx7 const scalar, ord=172 ; DEF: 1-700 icnaa const scalar, ord=284 ; DEF: 1-717 icnaaq const scalar, ord=285 ; DEF: 1-717 icnaq const scalar, ord=286 ; DEF: 1-717 icnax0 const scalar, ord=287 ; DEF: 1-717 icnax1 const scalar, ord=288 ; DEF: 1-717 icnax2 const scalar, ord=289 ; DEF: 1-717 icnax3 const scalar, ord=290 ; DEF: 1-718 icnax4 const scalar, ord=291 ; DEF: 1-718 icnax5 const scalar, ord=292 ; DEF: 1-718 icnax6 const scalar, ord=293 ; DEF: 1-718 icnax7 const scalar, ord=294 ; DEF: 1-718 icsl const scalar, ord=519 ; DEF: 1-755 icsr const scalar, ord=520 ; DEF: 1-755 icwl const scalar, ord=173 ; DEF: 1-700 idfad const scalar, ord=182 ; DEF: 1-702 idfcmg const scalar, ord=202 ; DEF: 1-705 idfcmp const scalar, ord=203 ; DEF: 1-705 idfdi const scalar, ord=194 ; DEF: 1-704 idfdv const scalar, ord=195 ; DEF: 1-704 idfld const scalar, ord=176 ; DEF: 1-702 idfmp const scalar, ord=190 ; DEF: 1-703 idfrd const scalar, ord=200 ; DEF: 1-705 idfsb const scalar, ord=186 ; DEF: 1-703 idfst const scalar, ord=178 ; DEF: 1-702 idfstr const scalar, ord=179 ; DEF: 1-702 idis const scalar, ord=448 ; DEF: 1-743 idiv const scalar, ord=156 ; DEF: 1-698 idrl const scalar, ord=407 ; DEF: 1-737 idtb const scalar, ord=529 ; DEF: 1-756 idufa const scalar, ord=183 ; DEF: 1-702 idufm const scalar, ord=191 ; DEF: 1-703 idufs const scalar, ord=187 ; DEF: 1-703 idv2d const scalar, ord=533 ; DEF: 1-756 idvf const scalar, ord=157 ; DEF: 1-698 ieaq const scalar, ord=1 ; DEF: 1-679 ieasp0 const scalar, ord=295 ; DEF: 1-720 ieasp1 const scalar, ord=296 ; DEF: 1-720 ieasp2 const scalar, ord=297 ; DEF: 1-720 ieasp3 const scalar, ord=298 ; DEF: 1-720 ieasp4 const scalar, ord=299 ; DEF: 1-720 ieasp5 const scalar, ord=300 ; DEF: 1-720 ieasp6 const scalar, ord=301 ; DEF: 1-720 ieasp7 const scalar, ord=302 ; DEF: 1-720 ieawp0 const scalar, ord=303 ; DEF: 1-721 ieawp1 const scalar, ord=304 ; DEF: 1-721 ieawp2 const scalar, ord=305 ; DEF: 1-721 ieawp3 const scalar, ord=306 ; DEF: 1-721 ieawp4 const scalar, ord=307 ; DEF: 1-721 ieawp5 const scalar, ord=308 ; DEF: 1-721 ieawp6 const scalar, ord=309 ; DEF: 1-721 ieawp7 const scalar, ord=310 ; DEF: 1-721 ieax0 const scalar, ord=2 ; DEF: 1-679 ieax1 const scalar, ord=3 ; DEF: 1-679 ieax2 const scalar, ord=4 ; DEF: 1-679 ieax3 const scalar, ord=5 ; DEF: 1-679 ieax4 const scalar, ord=6 ; DEF: 1-679 ieax5 const scalar, ord=7 ; DEF: 1-679 ieax6 const scalar, ord=8 ; DEF: 1-680 ieax7 const scalar, ord=9 ; DEF: 1-680 ieism * type scalar subrange ; DEF: 1-782 iepaq const scalar, ord=369 ; DEF: 1-729 iepbp0 const scalar, ord=311 ; DEF: 1-722 iepbp1 const scalar, ord=312 ; DEF: 1-722 iepbp2 const scalar, ord=313 ; DEF: 1-722 iepbp3 const scalar, ord=314 ; DEF: 1-722 iepbp4 const scalar, ord=315 ; DEF: 1-722 iepbp5 const scalar, ord=316 ; DEF: 1-722 iepbp6 const scalar, ord=317 ; DEF: 1-722 iepbp7 const scalar, ord=318 ; DEF: 1-722 iepp0 const scalar, ord=319 ; DEF: 1-723 iepp1 const scalar, ord=320 ; DEF: 1-723 iepp2 const scalar, ord=321 ; DEF: 1-723 iepp3 const scalar, ord=322 ; DEF: 1-723 iepp4 const scalar, ord=323 ; DEF: 1-723 iepp5 const scalar, ord=324 ; DEF: 1-723 iepp6 const scalar, ord=325 ; DEF: 1-723 iepp7 const scalar, ord=326 ; DEF: 1-723 iera const scalar, ord=252 ; DEF: 1-713 ieraq const scalar, ord=253 ; DEF: 1-713 ierq const scalar, ord=254 ; DEF: 1-713 iersa const scalar, ord=255 ; DEF: 1-713 iersq const scalar, ord=256 ; DEF: 1-713 iersx0 const scalar, ord=257 ; DEF: 1-713 iersx1 const scalar, ord=258 ; DEF: 1-714 iersx2 const scalar, ord=259 ; DEF: 1-714 iersx3 const scalar, ord=260 ; DEF: 1-714 iersx4 const scalar, ord=261 ; DEF: 1-714 iersx5 const scalar, ord=262 ; DEF: 1-714 iersx6 const scalar, ord=263 ; DEF: 1-714 iersx7 const scalar, ord=264 ; DEF: 1-714 ierx0 const scalar, ord=265 ; DEF: 1-714 ierx1 const scalar, ord=266 ; DEF: 1-715 ierx2 const scalar, ord=267 ; DEF: 1-715 ierx3 const scalar, ord=268 ; DEF: 1-715 ierx4 const scalar, ord=269 ; DEF: 1-715 ierx5 const scalar, ord=270 ; DEF: 1-715 ierx6 const scalar, ord=271 ; DEF: 1-715 ierx7 const scalar, ord=272 ; DEF: 1-715 ifad const scalar, ord=184 ; DEF: 1-703 ifcmg const scalar, ord=204 ; DEF: 1-705 ifcmp const scalar, ord=205 ; DEF: 1-705 ifdi const scalar, ord=196 ; DEF: 1-704 ifdv const scalar, ord=197 ; DEF: 1-704 ifld const scalar, ord=177 ; DEF: 1-702 ifmp const scalar, ord=192 ; DEF: 1-704 ifneg const scalar, ord=198 ; DEF: 1-704 ifno const scalar, ord=199 ; DEF: 1-704 ifrd const scalar, ord=201 ; DEF: 1-705 ifsb const scalar, ord=188 ; DEF: 1-703 ifst const scalar, ord=180 ; DEF: 1-702 ifstr const scalar, ord=181 ; DEF: 1-702 ifszn const scalar, ord=207 ; DEF: 1-705 igtb const scalar, ord=420 ; DEF: 1-738 ilar0 const scalar, ord=457 ; DEF: 1-746 ilar1 const scalar, ord=458 ; DEF: 1-746 ilar2 const scalar, ord=459 ; DEF: 1-746 ilar3 const scalar, ord=460 ; DEF: 1-746 ilar4 const scalar, ord=461 ; DEF: 1-746 ilar5 const scalar, ord=462 ; DEF: 1-746 ilar6 const scalar, ord=463 ; DEF: 1-746 ilar7 const scalar, ord=464 ; DEF: 1-746 ilareg const scalar, ord=465 ; DEF: 1-747 ilbar const scalar, ord=421 ; DEF: 1-740 ilca const scalar, ord=10 ; DEF: 1-680 ilcaq const scalar, ord=11 ; DEF: 1-680 ilcpr const scalar, ord=422 ; DEF: 1-740 ilcq const scalar, ord=12 ; DEF: 1-680 ilcx0 const scalar, ord=13 ; DEF: 1-680 ilcx1 const scalar, ord=14 ; DEF: 1-680 ilcx2 const scalar, ord=15 ; DEF: 1-680 ilcx3 const scalar, ord=16 ; DEF: 1-681 ilcx4 const scalar, ord=17 ; DEF: 1-681 ilcx5 const scalar, ord=18 ; DEF: 1-681 ilcx6 const scalar, ord=19 ; DEF: 1-681 ilcx7 const scalar, ord=20 ; DEF: 1-681 ilda const scalar, ord=21 ; DEF: 1-681 ildac const scalar, ord=22 ; DEF: 1-681 ildaq const scalar, ord=23 ; DEF: 1-681 ildbr const scalar, ord=423 ; DEF: 1-740 ilde const scalar, ord=208 ; DEF: 1-706 ildi const scalar, ord=24 ; DEF: 1-682 ildq const scalar, ord=25 ; DEF: 1-682 ildqc const scalar, ord=26 ; DEF: 1-682 ildt const scalar, ord=424 ; DEF: 1-740 ildx0 const scalar, ord=27 ; DEF: 1-682 ildx1 const scalar, ord=28 ; DEF: 1-682 ildx2 const scalar, ord=29 ; DEF: 1-682 ildx3 const scalar, ord=30 ; DEF: 1-682 ildx4 const scalar, ord=31 ; DEF: 1-682 ildx5 const scalar, ord=32 ; DEF: 1-683 ildx6 const scalar, ord=33 ; DEF: 1-683 ildx7 const scalar, ord=34 ; DEF: 1-683 illr const scalar, ord=76 ; DEF: 1-688 ills const scalar, ord=77 ; DEF: 1-688 ilpl const scalar, ord=466 ; DEF: 1-747 ilpri const scalar, ord=327 ; DEF: 1-724 ilprp0 const scalar, ord=328 ; DEF: 1-724 ilprp1 const scalar, ord=329 ; DEF: 1-724 ilprp2 const scalar, ord=330 ; DEF: 1-724 ilprp3 const scalar, ord=331 ; DEF: 1-724 ilprp4 const scalar, ord=332 ; DEF: 1-724 ilprp5 const scalar, ord=333 ; DEF: 1-724 ilprp6 const scalar, ord=334 ; DEF: 1-724 ilprp7 const scalar, ord=335 ; DEF: 1-725 ilptp const scalar, ord=425 ; DEF: 1-740 ilptr const scalar, ord=426 ; DEF: 1-740 ilra const scalar, ord=427 ; DEF: 1-740 ilreg const scalar, ord=35 ; DEF: 1-683 ilrl const scalar, ord=78 ; DEF: 1-688 ilrs const scalar, ord=79 ; DEF: 1-688 ilsdp const scalar, ord=428 ; DEF: 1-740 ilsdr const scalar, ord=429 ; DEF: 1-741 ilxl0 const scalar, ord=36 ; DEF: 1-683 ilxl1 const scalar, ord=37 ; DEF: 1-683 ilxl2 const scalar, ord=38 ; DEF: 1-683 ilxl3 const scalar, ord=39 ; DEF: 1-683 ilxl4 const scalar, ord=40 ; DEF: 1-684 ilxl5 const scalar, ord=41 ; DEF: 1-684 ilxl6 const scalar, ord=42 ; DEF: 1-684 ilxl7 const scalar, ord=43 ; DEF: 1-684 imlr const scalar, ord=516 ; DEF: 1-754 imme const scalar, ord=410 ; DEF: 1-737 imme2 const scalar, ord=411 ; DEF: 1-737 imme3 const scalar, ord=412 ; DEF: 1-737 imme4 const scalar, ord=413 ; DEF: 1-737 imp2d const scalar, ord=532 ; DEF: 1-756 imp3d const scalar, ord=538 ; DEF: 1-757 impf const scalar, ord=154 ; DEF: 1-698 importproc const scalar, ord=5 ; DEF: 1-442 importvar const scalar, ord=3 ; DEF: 1-441 impy const scalar, ord=155 ; DEF: 1-698 imrl const scalar, ord=517 ; DEF: 1-754 imve const scalar, ord=534 ; DEF: 1-756 imvn const scalar, ord=526 ; DEF: 1-755 imvne const scalar, ord=535 ; DEF: 1-757 imvt const scalar, ord=518 ; DEF: 1-754 inacc const scalar, ord=0 ; DEF: 1-814 inaq const scalar, ord=2 ; DEF: 1-814 inar0 const scalar, ord=467 ; DEF: 1-747 inar1 const scalar, ord=468 ; DEF: 1-747 inar2 const scalar, ord=469 ; DEF: 1-747 inar3 const scalar, ord=470 ; DEF: 1-747 inar4 const scalar, ord=471 ; DEF: 1-747 inar5 const scalar, ord=472 ; DEF: 1-747 inar6 const scalar, ord=473 ; DEF: 1-748 inar7 const scalar, ord=474 ; DEF: 1-748 inconst * proc level 0, exportable ; DEF: 2784 ; REF: 161 index * var local to nextch, loc:144, size:4 ; integer ; DEF: 1427 ineg const scalar, ord=158 ; DEF: 1-698 inegl const scalar, ord=159 ; DEF: 1-698 inhibit * const numeric ; DEF: 1-143 initcondplace * const numeric ; DEF: 1-362 initdef const scalar, ord=3 ; DEF: 1-417 initfsballocplace * const numeric ; DEF: 1-195 initmoproc field disp:250, size:10 ; pointer ; DEF: 1-561 initracine * proc level 0, exportable ; DEF: 710 ; REF: 162 inop const scalar, ord=414 ; DEF: 1-738 inpr const scalar, ord=4 ; DEF: 1-814 inpsr const scalar, ord=3 ; DEF: 1-814 inq const scalar, ord=1 ; DEF: 1-814 insert_overflow_error * const numeric ; DEF: 1-267 inserundlab * proc level 0, exportable ; DEF: 1067 ; REF: 164 instdcompiler const scalar, ord=2 ; DEF: 1-439 instdcomputer const scalar, ord=5 ; DEF: 1-440 instdextend const scalar, ord=4 ; DEF: 1-440 instdpure const scalar, ord=1 ; DEF: 1-439 instdsimone const scalar, ord=6 ; DEF: 1-440 instdsol const scalar, ord=3 ; DEF: 1-439 int15 * const numeric ; DEF: 1-332 int18 * const numeric ; DEF: 1-330 intcallplace * const numeric ; DEF: 1-193 intentryplace * const numeric ; DEF: 1-160 interactivebit * const numeric ; DEF: 1-237 inthelist field disp:0, size:4 ; boolean ; DEF: 1-467 intreturnplace * const numeric ; DEF: 1-190 inxbloc field disp:50, size:10 ; pointer ; DEF: 1-867 inxerrcode * const numeric ; DEF: 1-244 inxmem field disp:60, size:4 ; integer ; DEF: 1-868 inxmemrw field disp:64, size:4 ; boolean ; DEF: 1-870 inxreg field disp:44, size:4 ; scalar ; DEF: 1-862 inxtype field disp:210, size:10 ; pointer ; DEF: 1-546 iora const scalar, ord=231 ; DEF: 1-710 ioraq const scalar, ord=232 ; DEF: 1-710 iorq const scalar, ord=233 ; DEF: 1-710 iorsa const scalar, ord=234 ; DEF: 1-711 iorsq const scalar, ord=235 ; DEF: 1-711 iorsx0 const scalar, ord=236 ; DEF: 1-711 iorsx1 const scalar, ord=237 ; DEF: 1-711 iorsx2 const scalar, ord=238 ; DEF: 1-711 iorsx3 const scalar, ord=239 ; DEF: 1-711 iorsx4 const scalar, ord=240 ; DEF: 1-711 iorsx5 const scalar, ord=241 ; DEF: 1-711 iorsx6 const scalar, ord=242 ; DEF: 1-712 iorsx7 const scalar, ord=243 ; DEF: 1-712 iorx0 const scalar, ord=244 ; DEF: 1-712 iorx1 const scalar, ord=245 ; DEF: 1-712 iorx2 const scalar, ord=246 ; DEF: 1-712 iorx3 const scalar, ord=247 ; DEF: 1-712 iorx4 const scalar, ord=248 ; DEF: 1-712 iorx5 const scalar, ord=249 ; DEF: 1-712 iorx6 const scalar, ord=250 ; DEF: 1-713 iorx7 const scalar, ord=251 ; DEF: 1-713 iotextbuffersize * const numeric ; DEF: 1-303 iowarningsbit * const numeric ; DEF: 1-238 ipuls1 const scalar, ord=415 ; DEF: 1-738 ipuls2 const scalar, ord=416 ; DEF: 1-738 iqlr const scalar, ord=80 ; DEF: 1-689 iqls const scalar, ord=81 ; DEF: 1-689 iqrl const scalar, ord=82 ; DEF: 1-689 iqrs const scalar, ord=83 ; DEF: 1-689 irccl const scalar, ord=406 ; DEF: 1-737 ircu const scalar, ord=430 ; DEF: 1-741 irept * type scalar subrange ; DEF: 1-783 iret const scalar, ord=371 ; DEF: 1-731 irmcm const scalar, ord=440 ; DEF: 1-742 irpl const scalar, ord=541 ; DEF: 1-759 irscr const scalar, ord=441 ; DEF: 1-742 irsw const scalar, ord=442 ; DEF: 1-742 irtcd const scalar, ord=372 ; DEF: 1-731 is4bd const scalar, ord=506 ; DEF: 1-752 is6bd const scalar, ord=507 ; DEF: 1-752 is9bd const scalar, ord=508 ; DEF: 1-752 isar0 const scalar, ord=491 ; DEF: 1-750 isar1 const scalar, ord=492 ; DEF: 1-750 isar2 const scalar, ord=493 ; DEF: 1-750 isar3 const scalar, ord=494 ; DEF: 1-750 isar4 const scalar, ord=495 ; DEF: 1-750 isar5 const scalar, ord=496 ; DEF: 1-750 isar6 const scalar, ord=497 ; DEF: 1-751 isar7 const scalar, ord=498 ; DEF: 1-751 isareg const scalar, ord=499 ; DEF: 1-751 isb2d const scalar, ord=531 ; DEF: 1-756 isb3d const scalar, ord=537 ; DEF: 1-757 isba const scalar, ord=120 ; DEF: 1-694 isbaq const scalar, ord=121 ; DEF: 1-694 isbar const scalar, ord=418 ; DEF: 1-738 isbd const scalar, ord=509 ; DEF: 1-752 isbla const scalar, ord=122 ; DEF: 1-694 isblaq const scalar, ord=123 ; DEF: 1-694 isblq const scalar, ord=124 ; DEF: 1-694 isblx0 const scalar, ord=125 ; DEF: 1-694 isblx1 const scalar, ord=126 ; DEF: 1-694 isblx2 const scalar, ord=127 ; DEF: 1-694 isblx3 const scalar, ord=128 ; DEF: 1-695 isblx4 const scalar, ord=129 ; DEF: 1-695 isblx5 const scalar, ord=130 ; DEF: 1-695 isblx6 const scalar, ord=131 ; DEF: 1-695 isblx7 const scalar, ord=132 ; DEF: 1-695 isbq const scalar, ord=133 ; DEF: 1-695 isbx0 const scalar, ord=134 ; DEF: 1-695 isbx1 const scalar, ord=135 ; DEF: 1-695 isbx2 const scalar, ord=136 ; DEF: 1-696 isbx3 const scalar, ord=137 ; DEF: 1-696 isbx4 const scalar, ord=138 ; DEF: 1-696 isbx5 const scalar, ord=139 ; DEF: 1-696 isbx6 const scalar, ord=140 ; DEF: 1-696 isbx7 const scalar, ord=141 ; DEF: 1-696 iscd const scalar, ord=523 ; DEF: 1-755 iscdr const scalar, ord=524 ; DEF: 1-755 iscm const scalar, ord=514 ; DEF: 1-754 iscmr const scalar, ord=515 ; DEF: 1-754 iscpr const scalar, ord=431 ; DEF: 1-741 iscu const scalar, ord=432 ; DEF: 1-741 isdbr const scalar, ord=433 ; DEF: 1-741 ismcm const scalar, ord=444 ; DEF: 1-742 ismic const scalar, ord=445 ; DEF: 1-743 ispbp0 const scalar, ord=336 ; DEF: 1-725 ispbp1 const scalar, ord=337 ; DEF: 1-725 ispbp2 const scalar, ord=338 ; DEF: 1-725 ispbp3 const scalar, ord=339 ; DEF: 1-725 ispbp4 const scalar, ord=340 ; DEF: 1-725 ispbp5 const scalar, ord=341 ; DEF: 1-725 ispbp6 const scalar, ord=342 ; DEF: 1-725 ispbp7 const scalar, ord=343 ; DEF: 1-726 ispl const scalar, ord=500 ; DEF: 1-751 ispri const scalar, ord=344 ; DEF: 1-726 ispri0 const scalar, ord=345 ; DEF: 1-726 ispri1 const scalar, ord=346 ; DEF: 1-726 ispri2 const scalar, ord=347 ; DEF: 1-726 ispri3 const scalar, ord=348 ; DEF: 1-726 ispri4 const scalar, ord=349 ; DEF: 1-726 ispri5 const scalar, ord=350 ; DEF: 1-726 ispri6 const scalar, ord=351 ; DEF: 1-727 ispri7 const scalar, ord=352 ; DEF: 1-727 isprp0 const scalar, ord=353 ; DEF: 1-727 isprp1 const scalar, ord=354 ; DEF: 1-727 isprp2 const scalar, ord=355 ; DEF: 1-727 isprp3 const scalar, ord=356 ; DEF: 1-727 isprp4 const scalar, ord=357 ; DEF: 1-727 isprp5 const scalar, ord=358 ; DEF: 1-727 isprp6 const scalar, ord=359 ; DEF: 1-728 isprp7 const scalar, ord=360 ; DEF: 1-728 isptp const scalar, ord=434 ; DEF: 1-741 isptr const scalar, ord=435 ; DEF: 1-741 isra const scalar, ord=417 ; DEF: 1-738 isreg const scalar, ord=44 ; DEF: 1-684 issa const scalar, ord=142 ; DEF: 1-696 isscr const scalar, ord=446 ; DEF: 1-743 issdp const scalar, ord=436 ; DEF: 1-741 issdr const scalar, ord=437 ; DEF: 1-742 issq const scalar, ord=143 ; DEF: 1-696 issx0 const scalar, ord=144 ; DEF: 1-697 issx1 const scalar, ord=145 ; DEF: 1-697 issx2 const scalar, ord=146 ; DEF: 1-697 issx3 const scalar, ord=147 ; DEF: 1-697 issx4 const scalar, ord=148 ; DEF: 1-697 issx5 const scalar, ord=149 ; DEF: 1-697 issx6 const scalar, ord=150 ; DEF: 1-697 issx7 const scalar, ord=151 ; DEF: 1-697 ista const scalar, ord=45 ; DEF: 1-684 istac const scalar, ord=46 ; DEF: 1-684 istacq const scalar, ord=47 ; DEF: 1-684 istand * type scalar subrange ; DEF: 1-781 istaq const scalar, ord=48 ; DEF: 1-685 istbq const scalar, ord=544 ; DEF: 1-761 istc1 const scalar, ord=49 ; DEF: 1-685 istc2 const scalar, ord=50 ; DEF: 1-685 istca const scalar, ord=545 ; DEF: 1-761 istcd const scalar, ord=51 ; DEF: 1-685 iste const scalar, ord=209 ; DEF: 1-706 isti const scalar, ord=52 ; DEF: 1-685 istobc * type scalar subrange ; DEF: 1-784 istq const scalar, ord=53 ; DEF: 1-685 istt const scalar, ord=54 ; DEF: 1-685 istx0 const scalar, ord=55 ; DEF: 1-685 istx1 const scalar, ord=56 ; DEF: 1-686 istx2 const scalar, ord=57 ; DEF: 1-686 istx3 const scalar, ord=58 ; DEF: 1-686 istx4 const scalar, ord=59 ; DEF: 1-686 istx5 const scalar, ord=60 ; DEF: 1-686 istx6 const scalar, ord=61 ; DEF: 1-686 istx7 const scalar, ord=62 ; DEF: 1-686 istz const scalar, ord=63 ; DEF: 1-686 iswca const scalar, ord=152 ; DEF: 1-698 iswcq const scalar, ord=153 ; DEF: 1-698 isxl0 const scalar, ord=64 ; DEF: 1-687 isxl1 const scalar, ord=65 ; DEF: 1-687 isxl2 const scalar, ord=66 ; DEF: 1-687 isxl3 const scalar, ord=67 ; DEF: 1-687 isxl4 const scalar, ord=68 ; DEF: 1-687 isxl5 const scalar, ord=69 ; DEF: 1-687 isxl6 const scalar, ord=70 ; DEF: 1-687 isxl7 const scalar, ord=71 ; DEF: 1-687 iszn const scalar, ord=174 ; DEF: 1-700 isznc const scalar, ord=175 ; DEF: 1-700 isztl const scalar, ord=521 ; DEF: 1-755 isztr const scalar, ord=522 ; DEF: 1-755 itct const scalar, ord=511 ; DEF: 1-754 itctr const scalar, ord=512 ; DEF: 1-754 iteo const scalar, ord=373 ; DEF: 1-731 iteu const scalar, ord=374 ; DEF: 1-731 itmi const scalar, ord=375 ; DEF: 1-731 itmoz const scalar, ord=376 ; DEF: 1-731 itnc const scalar, ord=377 ; DEF: 1-731 itnz const scalar, ord=378 ; DEF: 1-732 itov const scalar, ord=379 ; DEF: 1-732 itpl const scalar, ord=380 ; DEF: 1-732 itpnz const scalar, ord=381 ; DEF: 1-732 itra const scalar, ord=382 ; DEF: 1-732 itrc const scalar, ord=383 ; DEF: 1-732 itrtf const scalar, ord=384 ; DEF: 1-732 itrtn const scalar, ord=385 ; DEF: 1-732 itsdplmt field disp:74, size:4 ; integer ; DEF: 1-877 itsp0 const scalar, ord=386 ; DEF: 1-733 itsp1 const scalar, ord=387 ; DEF: 1-733 itsp2 const scalar, ord=388 ; DEF: 1-733 itsp3 const scalar, ord=389 ; DEF: 1-733 itsp4 const scalar, ord=390 ; DEF: 1-733 itsp5 const scalar, ord=391 ; DEF: 1-733 itsp6 const scalar, ord=392 ; DEF: 1-733 itsp7 const scalar, ord=393 ; DEF: 1-733 itss const scalar, ord=394 ; DEF: 1-734 itsx0 const scalar, ord=395 ; DEF: 1-734 itsx1 const scalar, ord=396 ; DEF: 1-734 itsx2 const scalar, ord=397 ; DEF: 1-734 itsx3 const scalar, ord=398 ; DEF: 1-734 itsx4 const scalar, ord=399 ; DEF: 1-734 itsx5 const scalar, ord=400 ; DEF: 1-734 itsx6 const scalar, ord=401 ; DEF: 1-734 itsx7 const scalar, ord=402 ; DEF: 1-735 ittf const scalar, ord=403 ; DEF: 1-735 ittn const scalar, ord=404 ; DEF: 1-735 itze const scalar, ord=405 ; DEF: 1-735 iufa const scalar, ord=185 ; DEF: 1-703 iufm const scalar, ord=193 ; DEF: 1-704 iufs const scalar, ord=189 ; DEF: 1-703 ixec const scalar, ord=408 ; DEF: 1-737 ixed const scalar, ord=409 ; DEF: 1-737 l4 const scalar, ord=0 ; DEF: 1-785 l6 const scalar, ord=1 ; DEF: 1-785 l9 const scalar, ord=2 ; DEF: 1-785 labbox field disp:30, size:10 ; pointer ; DEF: 1-661 labch1 field disp:14, size:4 ; integer ; DEF: 1-660 labdef field disp:20, size:4 ; integer ; DEF: 1-660 labdescr * type record ; DEF: 1-659 labexit field disp:10, size:4 ; integer ; DEF: 1-660 lablev field disp:4, size:4 ; integer ; DEF: 1-660 labval field disp:0, size:4 ; integer ; DEF: 1-660 lamptr * var global exportable, size:10 ; pointer ; DEF: 344 ; REF: 170 lcprocess * const numeric ; DEF: 1-382 ldreg field disp:14, size:4 ; scalar ; DEF: 1-889 ldregbloc field disp:20, size:10 ; pointer ; DEF: 1-890 lengthplace * const numeric ; DEF: 1-368 lgcar * type scalar ; DEF: 1-785 lgfilename * const numeric ; DEF: 1-302 link15 * const numeric ; DEF: 1-329 link18 * const numeric ; DEF: 1-328 linkage const scalar, ord=2 ; DEF: 1-623 llnext field disp:50, size:10 ; pointer ; DEF: 1-846 llplace field disp:40, size:4 ; integer ; DEF: 1-845 llvalu field disp:0, size:40 ; array of (integer) ; DEF: 1-844 lnext field disp:50, size:10 ; pointer ; DEF: 1-841 lo field disp:224, size:4 ; integer ; DEF: 1-549 load const scalar, ord=0 ; DEF: 1-919 localfile const scalar, ord=3 ; DEF: 1-437 localproc const scalar, ord=6 ; DEF: 1-442 locals const scalar, ord=1 ; DEF: 1-939 locinbytes field disp:4, size:4 ; integer ; DEF: 1-643 locincode field disp:164, size:4 ; integer ; DEF: 1-574 log10switch * const numeric ; DEF: 1-150 longblank const alphanumeric, 32 char(s) ; DEF: 1-139 longboxlist * const numeric ; DEF: 1-37 longplacew * const numeric ; DEF: 1-291 longprofileplace * const numeric ; DEF: 1-199 longstplacew * const numeric ; DEF: 1-293 longv field disp:70, size:4 ; integer ; DEF: 1-905 lotptrdep * const numeric ; DEF: 1-231 lpclength * const numeric ; DEF: 1-322 lplace field disp:40, size:4 ; integer ; DEF: 1-840 lprp const scalar, ord=2 ; DEF: 1-917 lvalu field disp:0, size:40 ; array of (integer) ; DEF: 1-839 lxl const scalar, ord=3 ; DEF: 1-918 mainbit * const numeric ; DEF: 1-234 maindplmt * const numeric ; DEF: 1-347 mainentryplace * const numeric ; DEF: 1-154 mainprogram const scalar, ord=7 ; DEF: 1-442 mathworksizew * const numeric ; DEF: 1-133 max10 * const numeric ; DEF: 1-118 maxchar8 * const numeric ; DEF: 1-338 maxglobsize * const numeric ; DEF: 1-71 maxint * const numeric ; DEF: 1-84 maxlabs * const numeric ; DEF: 1-16 maxnewsize * const numeric ; DEF: 1-42 maxpredef * const numeric ; DEF: 1-25 maxrel * const numeric ; DEF: 1-129 maxstacksize * const numeric ; DEF: 1-72 maxstring * const numeric ; DEF: 1-34 mlterrcode * const numeric ; DEF: 1-256 moaddr field disp:210, size:4 ; integer ; DEF: 1-559 moarglistw * const numeric ; DEF: 1-344 modul const scalar, ord=0 ; DEF: 1-460 module const scalar, ord=0 ; DEF: 1-459 modulentryplace * const numeric ; DEF: 1-360 modulinitsize * const numeric ; DEF: 1-134 modynlk * const numeric ; DEF: 1-342 mofatherdisp * const numeric ; DEF: 1-339 monit const scalar, ord=1 ; DEF: 1-460 monitor const scalar, ord=1 ; DEF: 1-459 monitorentryplace * const numeric ; DEF: 1-361 monitorinitsize * const numeric ; DEF: 1-135 monitormodule const scalar, ord=0 ; DEF: 1-462 motype field disp:200, size:4 ; scalar ; DEF: 1-557 mowaitsonsplace * const numeric ; DEF: 1-372 mreg * type scalar subrange ; DEF: 1-778 name field disp:0, size:40 ; packed array of (char) ; DEF: 1-508 nameaddr field disp:110, size:10 ; pointer ; DEF: 1-879 nbparmo field disp:214, size:4 ; integer ; DEF: 1-559 nbparproc field disp:160, size:4 ; integer ; DEF: 1-574 nbr field disp:0, size:4 ; numeric 0..25 ; DEF: 1-627 neg const scalar, ord=4 ; DEF: 1-919 negexpplace * const numeric ; DEF: 1-375 newplace * const numeric ; DEF: 1-177 next field disp:10, size:10 ; pointer ; DEF: 1-644 next field disp:10, size:10 ; pointer ; DEF: 1-656 next field disp:10, size:10 ; pointer ; DEF: 1-665 next_for_schema field disp:120, size:10 ; pointer ; DEF: 1-518 next_in_block field disp:100, size:10 ; pointer ; DEF: 1-653 next_sp_place * const numeric ; DEF: 1-281 nextbloc field disp:10, size:10 ; pointer ; DEF: 1-821 nextexitelem field disp:0, size:10 ; pointer ; DEF: 1-480 nextnode field disp:10, size:10 ; pointer ; DEF: 1-474 nilleft * const numeric ; DEF: 1-75 nilptr * var global exportable, size:10 ; pointer ; DEF: 360 ; REF: 189 nilright * const numeric ; DEF: 1-76 niveau field disp:204, size:4 ; numeric 0..20 ; DEF: 1-558 nmax field disp:210, size:4 ; integer ; DEF: 1-535 nmin field disp:204, size:4 ; integer ; DEF: 1-535 noerrorcond * const numeric ; DEF: 1-107 normalplace * const numeric ; DEF: 1-374 notafile const scalar, ord=0 ; DEF: 1-437 notpredef const scalar, ord=0 ; DEF: 1-439 npksize field disp:200, size:4 ; integer ; DEF: 1-535 ntwotobyte * const numeric ; DEF: 1-89 ntwotohword * const numeric ; DEF: 1-90 number field disp:0, size:4 ; integer ; DEF: 1-642 nxreg const scalar, ord=10 ; DEF: 1-775 nxtel field disp:40, size:10 ; pointer ; DEF: 1-509 o41 * const numeric ; DEF: 1-144 o43 * const numeric ; DEF: 1-145 objaccedes field disp:140, size:10 ; set of (scalar) ; DEF: 1-527 opt2 field disp:234, size:4 ; integer ; DEF: 1-549 option * var local to insymbol, loc:147, size:4 ; boolean ; DEF: 1647 out const scalar, ord=5 ; DEF: 1-814 p0t0r0 const scalar, ord=0 ; DEF: 1-791 p0t0r1 const scalar, ord=1 ; DEF: 1-791 p0t1r0 const scalar, ord=2 ; DEF: 1-791 p0t1r1 const scalar, ord=3 ; DEF: 1-791 p1t0r0 const scalar, ord=4 ; DEF: 1-791 p1t0r1 const scalar, ord=5 ; DEF: 1-791 p1t1r0 const scalar, ord=6 ; DEF: 1-791 p1t1r1 const scalar, ord=7 ; DEF: 1-791 pack field disp:124, size:4 ; boolean ; DEF: 1-525 packednil * const numeric ; DEF: 1-77 pageplace * const numeric ; DEF: 1-171 parameter_count field disp:140, size:4 ; integer ; DEF: 1-520 parerrcode * const numeric ; DEF: 1-252 parmproccheckplace * const numeric ; DEF: 1-223 pascdebstacklocal * const numeric ; DEF: 1-130 pascoperatorsdep * const numeric ; DEF: 1-232 pckd field disp:100, size:4 ; boolean ; DEF: 1-878 pckerrcode * const numeric ; DEF: 1-254 pdescsaddrplace field disp:350, size:4 ; integer ; DEF: 1-592 permanentfile const scalar, ord=1 ; DEF: 1-437 pextcalltrapinfoplace field disp:360, size:4 ; integer ; DEF: 1-594 phasdescriptor field disp:210, size:4 ; boolean ; DEF: 1-576 place field disp:14, size:4 ; integer ; DEF: 1-430 ploc field disp:214, size:4 ; scalar ; DEF: 1-577 pnumptr * var global exportable, size:10 ; pointer ; DEF: 366 ; REF: 195 pointable const scalar, ord=2 ; DEF: 1-813 pointee const scalar, ord=1 ; DEF: 1-813 poweroftwo * funct level 0, exportable ; integer ; DEF: 1027 ; REF: 196 1051* ppksize field disp:200, size:4 ; integer ; DEF: 1-543 pr0 const scalar, ord=6 ; DEF: 1-774 pr1 const scalar, ord=1 ; DEF: 1-774 pr2 const scalar, ord=2 ; DEF: 1-774 pr3 const scalar, ord=5 ; DEF: 1-774 pr4depw * const numeric ; DEF: 1-282 pr5 const scalar, ord=3 ; DEF: 1-774 pr7 const scalar, ord=4 ; DEF: 1-774 prderrcode * const numeric ; DEF: 1-246 predbloc field disp:20, size:10 ; pointer ; DEF: 1-822 predefproc field disp:174, size:4 ; boolean ; DEF: 1-575 previous field disp:0, size:10 ; pointer ; DEF: 1-656 previous field disp:0, size:10 ; pointer ; DEF: 1-665 previousnode field disp:0, size:10 ; pointer ; DEF: 1-474 priorityplace * const numeric ; DEF: 1-369 prlink const scalar, ord=8 ; DEF: 1-774 procaccesslevel field disp:240, size:4 ; numeric 0..20 ; DEF: 1-581 procaddr field disp:150, size:4 ; integer ; DEF: 1-574 procdef field disp:340, size:4 ; scalar ; DEF: 1-590 proce field disp:20, size:10 ; pointer ; DEF: 1-469 processentryplace * const numeric ; DEF: 1-354 processlocaldplmt * const numeric ; DEF: 1-348 processreturnplace * const numeric ; DEF: 1-357 processus field disp:244, size:4 ; boolean ; DEF: 1-582 procextitem field disp:220, size:10 ; pointer ; DEF: 1-578 procfatherdisp * const numeric ; DEF: 1-340 procfirstexit field disp:310, size:10 ; pointer ; DEF: 1-586 procfirsttofinit field disp:320, size:10 ; pointer ; DEF: 1-587 procincbloc field disp:300, size:4 ; scalar ; DEF: 1-585 procinscope field disp:200, size:4 ; boolean ; DEF: 1-575 procisassigned field disp:170, size:4 ; boolean ; DEF: 1-575 prockind field disp:140, size:4 ; scalar ; DEF: 1-572 proclevel field disp:144, size:4 ; numeric 0..20 ; DEF: 1-573 procmodlkw * const numeric ; DEF: 1-341 procnode field disp:270, size:10 ; pointer ; DEF: 1-584 procnode field disp:30, size:10 ; pointer ; DEF: 1-646 procparmsize * const numeric ; DEF: 1-132 procstackinitsize field disp:330, size:4 ; integer ; DEF: 1-588 proctype field disp:120, size:10 ; pointer ; DEF: 1-571 procwasforwarddef field disp:334, size:4 ; boolean ; DEF: 1-589 prof * const numeric ; DEF: 1-333 prstatic const scalar, ord=7 ; DEF: 1-774 psr const scalar, ord=24 ; DEF: 1-776 psrdepb * const numeric ; DEF: 1-284 psrdepw * const numeric ; DEF: 1-283 psrinbytes * const numeric ; DEF: 1-113 psrsize field disp:30, size:4 ; integer ; DEF: 1-891 ptentr field disp:240, size:10 ; pointer ; DEF: 1-560 pthigh field disp:230, size:10 ; pointer ; DEF: 1-551 ptlimit * const numeric ; DEF: 1-14 ptlow field disp:240, size:10 ; pointer ; DEF: 1-551 ptpar field disp:220, size:10 ; pointer ; DEF: 1-560 ptpksize field disp:200, size:4 ; integer ; DEF: 1-541 ptvarloc field disp:230, size:10 ; pointer ; DEF: 1-560 ptypesymbolplace field disp:230, size:4 ; integer ; DEF: 1-579 pure field disp:250, size:4 ; boolean ; DEF: 1-582 pureentryplace * const numeric ; DEF: 1-377 putdirplace * const numeric ; DEF: 1-184 putseqplace * const numeric ; DEF: 1-173 puttextplace * const numeric ; DEF: 1-172 pwantdescs field disp:344, size:4 ; boolean ; DEF: 1-591 pwantspl1descriptors field disp:364, size:4 ; boolean ; DEF: 1-595 ra const scalar, ord=20 ; DEF: 1-776 racmaxint * const numeric ; DEF: 1-87 rafltplace * const numeric ; DEF: 1-182 randinterrcode * const numeric ; DEF: 1-258 randintplace * const numeric ; DEF: 1-376 raq const scalar, ord=22 ; DEF: 1-776 re const scalar, ord=25 ; DEF: 1-776 readlnplace * const numeric ; DEF: 1-167 readseqplace * const numeric ; DEF: 1-166 readtextplace * const numeric ; DEF: 1-165 realtype field disp:200, size:10 ; pointer ; DEF: 1-563 reaq const scalar, ord=23 ; DEF: 1-776 recadre * funct level 0, exportable ; integer ; DEF: 1122 ; REF: 202 1138* 1139* recordptr field disp:110, size:10 ; pointer ; DEF: 1-957 recur field disp:234, size:4 ; integer ; DEF: 1-580 recursive field disp:10, size:4 ; boolean ; DEF: 1-467 recvar field disp:200, size:10 ; pointer ; DEF: 1-554 ref_allowed field disp:70, size:10 ; record ; DEF: 1-650 references field disp:60, size:10 ; pointer ; DEF: 1-649 requiredfile const scalar, ord=9 ; DEF: 1-443 reset_stack_end_op_place * const numeric ; DEF: 1-227 resetheapplace * const numeric ; DEF: 1-179 resetplace * const numeric ; DEF: 1-162 restorprevmoplace * const numeric ; DEF: 1-380 returnstop * proc level 0, exportable ; DEF: 841 ; REF: 203 returnzeroplace * const numeric ; DEF: 1-192 rewriteplace * const numeric ; DEF: 1-163 ri const scalar, ord=26 ; DEF: 1-776 rnext field disp:20, size:10 ; pointer ; DEF: 1-836 roundplace * const numeric ; DEF: 1-181 rplace field disp:10, size:4 ; integer ; DEF: 1-835 rq const scalar, ord=21 ; DEF: 1-776 rqfltplace * const numeric ; DEF: 1-183 runtimeentry const scalar, ord=10 ; DEF: 1-443 rvalu field disp:0, size:10 ; real ; DEF: 1-834 s0 const scalar, ord=0 ; DEF: 1-807 s1 const scalar, ord=1 ; DEF: 1-807 s2 const scalar, ord=2 ; DEF: 1-807 s3 const scalar, ord=3 ; DEF: 1-807 s4 const scalar, ord=4 ; DEF: 1-807 s5 const scalar, ord=5 ; DEF: 1-807 savearglistplace * const numeric ; DEF: 1-359 saveplace field disp:4, size:4 ; integer ; DEF: 1-820 scaleplacew * const numeric ; DEF: 1-292 schema_ptr field disp:10, size:10 ; pointer ; DEF: 1-487 scientplace * const numeric ; DEF: 1-161 segsize field disp:154, size:4 ; integer ; DEF: 1-574 selectorfield field disp:150, size:10 ; pointer ; DEF: 1-613 self_rel * const numeric ; DEF: 1-331 seterrcode * const numeric ; DEF: 1-255 setlength field disp:220, size:4 ; integer ; DEF: 1-545 settinginactivequeueplace * const numeric ; DEF: 1-355 shiftl const scalar, ord=2 ; DEF: 1-919 signalplace * const numeric ; DEF: 1-365 simainentryplace * const numeric ; DEF: 1-351 simdebstacklocal * const numeric ; DEF: 1-131 simextentryplace * const numeric ; DEF: 1-378 simintentryplace * const numeric ; DEF: 1-352 simintreturnplace * const numeric ; DEF: 1-353 size field disp:114, size:4 ; integer ; DEF: 1-524 sizemax field disp:14, size:4 ; integer ; DEF: 1-468 skiptochapter * proc level 0, exportable ; DEF: 2755 ; REF: 208 smax field disp:214, size:4 ; integer ; DEF: 1-539 smin field disp:210, size:4 ; integer ; DEF: 1-539 solstandardbit * const numeric ; DEF: 1-239 spksize field disp:200, size:4 ; integer ; DEF: 1-536 spri const scalar, ord=1 ; DEF: 1-917 sptcstepw field disp:220, size:10 ; pointer ; DEF: 1-538 sreadcharplace * const numeric ; DEF: 1-212 sreadintegerplace * const numeric ; DEF: 1-213 sreadrealplace * const numeric ; DEF: 1-214 sregister field disp:0, size:4 ; scalar ; DEF: 1-819 stackboundary * const numeric ; DEF: 1-128 standdef const scalar, ord=0 ; DEF: 1-417 start field disp:30, size:4 ; integer ; DEF: 1-667 statearray * type array of (boolean) ; DEF: 1-920 statement_begins * proc level 0, exportable ; DEF: 2575 ; REF: 212 statics const scalar, ord=0 ; DEF: 1-939 staticswordcount * var global exportable, size:4 ; integer ; DEF: 377 ; REF: 214 stdcompiler const scalar, ord=1 ; DEF: 1-435 stdcomputer const scalar, ord=4 ; DEF: 1-435 stopextplace * const numeric ; DEF: 1-211 stopplace * const numeric ; DEF: 1-210 stopshortplace * const numeric ; DEF: 1-209 stor const scalar, ord=6 ; DEF: 1-919 stringlength_assignment_error * const numeric ; DEF: 1-260 stringlength_range_error * const numeric ; DEF: 1-259 stwotobyte * const numeric ; DEF: 1-91 sub const scalar, ord=1 ; DEF: 1-919 subrng field disp:204, size:4 ; boolean ; DEF: 1-537 subroutine const scalar, ord=1 ; DEF: 1-462 subsize field disp:240, size:4 ; integer ; DEF: 1-549 substring_negative_length_error * const numeric ; DEF: 1-262 substring_offset_error * const numeric ; DEF: 1-261 substring_too_long_error * const numeric ; DEF: 1-263 succ field disp:120, size:10 ; pointer ; DEF: 1-565 sucerrcode * const numeric ; DEF: 1-247 sup * funct level 0, exportable ; integer ; DEF: 1014 ; REF: 220 1019* 1020* swritebooleanplace * const numeric ; DEF: 1-218 swritecharplace * const numeric ; DEF: 1-215 swriteenumplace * const numeric ; DEF: 1-222 swriteintegerplace * const numeric ; DEF: 1-219 swriterealdplace * const numeric ; DEF: 1-221 swriterealeplace * const numeric ; DEF: 1-220 swritestringplace * const numeric ; DEF: 1-216 swritesubstringplace * const numeric ; DEF: 1-217 sxl const scalar, ord=2 ; DEF: 1-918 symb * const numeric ; DEF: 1-335 symbolp field disp:10, size:310 ; array of (pointer) ; DEF: 1-628 symbolplace field disp:100, size:4 ; integer ; DEF: 1-513 symbtablerefs field disp:104, size:4 ; integer ; DEF: 1-514 tad const scalar, ord=43 ; DEF: 1-771 tagval field disp:130, size:4 ; boolean ; DEF: 1-612 tal const scalar, ord=5 ; DEF: 1-766 taly const scalar, ord=21 ; DEF: 1-768 tau const scalar, ord=1 ; DEF: 1-766 tauy const scalar, ord=17 ; DEF: 1-768 tci const scalar, ord=40 ; DEF: 1-771 tdi const scalar, ord=44 ; DEF: 1-771 tdic const scalar, ord=45 ; DEF: 1-771 tdl const scalar, ord=7 ; DEF: 1-766 tdu const scalar, ord=3 ; DEF: 1-766 temporary field disp:144, size:4 ; boolean ; DEF: 1-883 terminateplace * const numeric ; DEF: 1-371 tf1 const scalar, ord=32 ; DEF: 1-770 tf2 const scalar, ord=38 ; DEF: 1-770 tf3 const scalar, ord=39 ; DEF: 1-770 ti const scalar, ord=41 ; DEF: 1-771 tic const scalar, ord=4 ; DEF: 1-766 ticy const scalar, ord=20 ; DEF: 1-768 tid const scalar, ord=46 ; DEF: 1-771 tidc const scalar, ord=47 ; DEF: 1-771 timeopplace * const numeric ; DEF: 1-197 titp const scalar, ord=33 ; DEF: 1-770 tits const scalar, ord=35 ; DEF: 1-770 tlevel field disp:130, size:4 ; numeric 0..20 ; DEF: 1-526 tny const scalar, ord=16 ; DEF: 1-768 token_list field disp:150, size:10 ; pointer ; DEF: 1-521 top_for_schema field disp:114, size:4 ; integer ; DEF: 1-517 tql const scalar, ord=6 ; DEF: 1-766 tqly const scalar, ord=22 ; DEF: 1-768 tqu const scalar, ord=2 ; DEF: 1-766 tquy const scalar, ord=18 ; DEF: 1-768 transf field disp:34, size:4 ; integer ; DEF: 1-912 transoptvptr * const numeric ; DEF: 1-230 truncplace * const numeric ; DEF: 1-180 tsc const scalar, ord=42 ; DEF: 1-771 tscr const scalar, ord=37 ; DEF: 1-770 tsd const scalar, ord=36 ; DEF: 1-770 twoto12 * const numeric ; DEF: 1-51 twoto18m1 * const numeric ; DEF: 1-58 tx0 const scalar, ord=8 ; DEF: 1-767 tx0y const scalar, ord=24 ; DEF: 1-769 tx1 const scalar, ord=9 ; DEF: 1-767 tx1y const scalar, ord=25 ; DEF: 1-769 tx2 const scalar, ord=10 ; DEF: 1-767 tx2y const scalar, ord=26 ; DEF: 1-769 tx3 const scalar, ord=11 ; DEF: 1-767 tx3y const scalar, ord=27 ; DEF: 1-769 tx4 const scalar, ord=12 ; DEF: 1-767 tx4y const scalar, ord=28 ; DEF: 1-769 tx5 const scalar, ord=13 ; DEF: 1-767 tx5y const scalar, ord=29 ; DEF: 1-769 tx6 const scalar, ord=14 ; DEF: 1-767 tx6y const scalar, ord=30 ; DEF: 1-769 tx7y const scalar, ord=31 ; DEF: 1-769 tyal const scalar, ord=53 ; DEF: 1-772 tyau const scalar, ord=49 ; DEF: 1-772 tydl const scalar, ord=55 ; DEF: 1-772 tydu const scalar, ord=51 ; DEF: 1-772 tyic const scalar, ord=52 ; DEF: 1-772 type_description field disp:160, size:10 ; pointer ; DEF: 1-522 typeofop * type scalar ; DEF: 1-919 typepr * type scalar ; DEF: 1-917 typix * type scalar ; DEF: 1-918 typofconst field disp:140, size:4 ; scalar ; DEF: 1-566 typset field disp:220, size:10 ; pointer ; DEF: 1-540 typsig * type scalar ; DEF: 1-786 tyql const scalar, ord=54 ; DEF: 1-772 tyqu const scalar, ord=50 ; DEF: 1-772 tyx0 const scalar, ord=56 ; DEF: 1-773 tyx1 const scalar, ord=57 ; DEF: 1-773 tyx2 const scalar, ord=58 ; DEF: 1-773 tyx3 const scalar, ord=59 ; DEF: 1-773 tyx4 const scalar, ord=60 ; DEF: 1-773 tyx5 const scalar, ord=61 ; DEF: 1-773 tyx6 const scalar, ord=62 ; DEF: 1-773 tyx7 const scalar, ord=63 ; DEF: 1-773 tz23 const scalar, ord=19 ; DEF: 1-768 tz27 const scalar, ord=23 ; DEF: 1-768 tz42 const scalar, ord=34 ; DEF: 1-770 tz60 const scalar, ord=48 ; DEF: 1-772 unddeb field disp:170, size:4 ; integer ; DEF: 1-570 undecptr * var global exportable, size:10 ; pointer ; DEF: 390 ; REF: 227 uniformplace * const numeric ; DEF: 1-373 usednamesptr * type pointer ; DEF: 1-974 valplacew * const numeric ; DEF: 1-290 valpw field disp:30, size:40 ; array of (integer) ; DEF: 1-904 valu field disp:0, size:4 ; integer ; DEF: 1-829 variants field disp:120, size:10 ; pointer ; DEF: 1-611 varmo field disp:220, size:4 ; boolean ; DEF: 1-605 varparam field disp:200, size:4 ; boolean ; DEF: 1-603 vdescaddr field disp:150, size:4 ; integer ; DEF: 1-600 vdispl field disp:144, size:4 ; integer ; DEF: 1-600 vdspl field disp:340, size:4 ; integer ; DEF: 1-637 vfather field disp:230, size:10 ; pointer ; DEF: 1-606 visreadonly field disp:174, size:4 ; boolean ; DEF: 1-603 vlev field disp:14, size:4 ; numeric 0..20 ; DEF: 1-855 vlink_is_generated field disp:160, size:4 ; boolean ; DEF: 1-602 vmo field disp:140, size:4 ; boolean ; DEF: 1-882 vnexttofinit field disp:210, size:10 ; pointer ; DEF: 1-604 vpack field disp:344, size:4 ; boolean ; DEF: 1-637 vreflist field disp:20, size:320 ; record ; DEF: 1-637 vtimeplace * const numeric ; DEF: 1-370 waitplace * const numeric ; DEF: 1-366 waitsonsplace * const numeric ; DEF: 1-356 wbase field disp:54, size:4 ; scalar ; DEF: 1-953 wdispl field disp:60, size:4 ; integer ; DEF: 1-954 windirect field disp:64, size:4 ; boolean ; DEF: 1-955 workfile const scalar, ord=2 ; DEF: 1-437 writelnplace * const numeric ; DEF: 1-170 writeseqplace * const numeric ; DEF: 1-169 writetextplace * const numeric ; DEF: 1-168 wstrfile field disp:70, size:4 ; integer ; DEF: 1-956 wstrindex field disp:74, size:4 ; integer ; DEF: 1-956 wstrlength field disp:100, size:4 ; integer ; DEF: 1-956 x0 const scalar, ord=11 ; DEF: 1-775 x1 const scalar, ord=12 ; DEF: 1-775 x2 const scalar, ord=13 ; DEF: 1-775 x3 const scalar, ord=14 ; DEF: 1-775 x4 const scalar, ord=15 ; DEF: 1-775 x5 const scalar, ord=16 ; DEF: 1-775 x6 const scalar, ord=17 ; DEF: 1-775 x7 const scalar, ord=18 ; DEF: 1-775 xbidon const scalar, ord=19 ; DEF: 1-776 zabc * type scalar ; DEF: 1-795 zari * type scalar ; DEF: 1-799 zptr * type scalar ; DEF: 1-791 NAMES DECLARED BY DEFAULT append_ proc level 0 ; REF: 1923 1939 1954 argv proc level 0 ; REF: 3045 boolean type boolean ; REF: 1-456 1-467 1-486 1-525 1-537 1-548 1-575 1-576 1-582 1-589 1-591 1-593 1-595 1-602 1-603 1-605 1-612 1-637 1-870 1-878 1-882 1-883 1-911 1-920 1-955 1-967 254 255 259 275 280 281 282 292 293 298 303 328 330 335 340 342 350 352 355 362 365 373 387 397 404 405 409 411 415 416 423 425 428 430 447 449 450 455 459 479 480 481 1430 1647 2273 2291 2319 2322 2575 2784 2802 3001 3009 char type char ; REF: 1-397 1-398 1-399 1-400 1-422 1-499 289 291 406 407 414 433 452 454 1426 1428 1429 1534 1650 2272 3002 3004 3010 chr funct level 0 ; (standard) ; REF: 1526 1845 1854 1862 1863 1864 1865 1866 1886 date proc level 0 ; REF: 733 eof funct level 0 ; (standard) ; REF: 1438 1491 1524 1977 2691 3224 eoln funct level 0 ; (standard) ; REF: 1437 1524 1842 false const scalar, ord=0 ; REF: 1-538 1-549 1-613 719 724 727 729 738 741 743 752 756 761 764 769 775 777 785 789 795 799 799 804 805 811 812 813 815 989 1434 1444 1486 1666 1672 1804 1850 2049 2083 2295 2333 2335 2355 2356 2357 2499 2527 2589 2824 2886 2887 3023 3066 3094 3109 3204 3327 3336 insert_ proc level 0 ; REF: 2623 2625 3367 3369 3372 integer type integer ; REF: 1-397 1-398 1-399 1-400 1-418 1-422 1-423 1-428 1-429 1-430 1-434 1-436 1-449 1-453 1-454 1-455 1-468 1-481 1-495 1-497 1-511 1-513 1-514 1-517 1-520 1-524 1-531 1-535 1-536 1-539 1-541 1-543 1-545 1-549 1-559 1-567 1-570 1-574 1-579 1-580 1-588 1-592 1-594 1-599 1-600 1-609 1-610 1-614 1-619 1-620 1-621 1-627 1-628 1-636 1-637 1-642 1-643 1-647 1-648 1-651 1-660 1-667 1-809 1-810 1-815 1-815 1-820 1-829 1-830 1-835 1-840 1-845 1-861 1-868 1-877 1-891 1-902 1-905 1-912 1-925 1-927 1-928 1-934 1-934 1-942 1-947 1-950 1-954 1-956 1-973 267 268 269 270 271 272 273 274 279 289 291 295 297 299 304 312 322 322 325 329 338 343 347 349 351 353 354 354 361 364 364 367 374 375 376 377 378 380 381 382 383 384 385 386 389 391 395 396 400 401 406 408 410 417 417 418 419 421 426 427 431 432 434 435 437 438 439 440 441 442 443 444 445 446 453 454 456 456 457 457 458 464 464 467 471 471 474 474 477 477 624 640 658 658 662 662 663 663 664 664 665 665 666 666 667 667 671 674 674 683 683 692 692 715 854 913 1014 1014 1027 1027 1036 1067 1081 1122 1122 1129 1224 1235 1341 1427 1428 1646 1648 1649 2100 2122 2278 2596 2599 2634 2720 2784 2804 3003 3004 3009 3019 new proc level 0 ; REF: 1274 1297 1721 2349 2650 3205 3298 odd funct level 0 ; (standard) ; REF: 1045 ord funct level 0 ; (standard) ; REF: 1243 1247 1264 1288 1309 1526 1663 1771 1771 1815 1815 1872 1872 1874 1874 1875 1875 1879 1879 1881 1881 1882 1882 1913 1913 1917 1917 1919 1919 1935 1935 1950 1950 1959 1974 1975 2813 2976 3146 3146 3147 3147 3157 3157 3157 page proc level 0 ; REF: 994 read proc level 0 ; REF: 1506 real type real ; REF: 1-498 1-568 1-834 1-903 300 372 671 reset proc level 0 ; REF: 722 2235 3384 rewrite proc level 0 ; REF: 721 3206 stop proc level 0 ; REF: 3385 swrite funct level 0 ; (standard) ; REF: 1446 1447 1461 1465 1471 text type text ; REF: 357 624 true const scalar, ord=1 ; REF: 1-539 1-550 1-614 731 734 739 762 1442 1480 1521 1777 1809 1840 2050 2055 2057 2296 2329 2334 2438 2627 2882 3031 3044 3047 3049 3051 3055 3056 3057 3058 3062 3067 3081 3087 3091 3099 3104 3116 3117 3122 3123 3128 3129 3134 3135 3140 3141 3151 3251 3251 3268 3285 3345 write proc level 0 ; REF: 867 870 901 903 930 933 968 970 997 1055 1086 1110 1237 1240 1243 1246 1249 1250 1251 1255 1264 1288 1309 1320 1322 1324 1360 1361 1363 1364 1372 1372 1375 1375 1378 1378 1383 1384 1387 1388 1463 1472 2092 2128 2241 2368 2564 2688 2704 2726 2729 2746 2766 2774 2813 2816 2972 2975 3156 3348 writeln proc level 0 ; REF: 829 1349 1350 1351 1352 1380 1390 1397 1402 3350 LABELS BLOCK NAME 1 scanparm DCL : 3017 ; DEF: 3039 ; REF: 3036 1 traiteoptions DCL : 2269 ; DEF: 2372 ; REF: 2283* 2286* 2550 2558 1 insymbol DCL : 1641 ; DEF: 1670 ; REF: 1736 1743 2032 2037 2085 1 nextch DCL : 1424 ; DEF: 1525 ; REF: 1523 1 inserundlab DCL : 1079 ; DEF: 1113 ; REF: 1093 2 nextch DCL : 1424 ; DEF: 1432 ; REF: 1500 3 traiteoptions DCL : 2269 ; DEF: 2461 ; REF: 2477 3 insymbol DCL : 1642 ; DEF: 1732 ; REF: 1712 4 traiteoptions DCL : 2269 ; DEF: 2483 ; REF: 2497 4 insymbol DCL : 1643 ; DEF: 1676 ; REF: 1688 5 findcond DCL : 2304 ; DEF: 2308 ; REF: 2313 5 traiteoptions DCL : 2269 ; DEF: 2516 ; REF: 2531 5* insymbol DCL : 1644 ; DEF: 2057 10 traiteoptions DCL : 2269 ; DEF: 2552 ; REF: 2282* 2285* 10 traiteinclude DCL : 2117 ; DEF: 2237 ; REF: 2136 2162 2176 2200 2214 2230 10 poweroftwo DCL : 1034 ; DEF: 1050 ; REF: 1043 1047 100 (main) DCL : 237 ; DEF: 3332 ; REF: 846* 1495* 3226 STATEMENT MAP FILE LINE ST LOC FILE LINE ST LOC FILE LINE ST LOC FILE LINE ST LOC FILE LINE ST LOC FILE LINE ST LOC 674 1 0 677 1 15 678 1 17 679 1 34 680 1 50 680 1 51 683 1 52 686 1 67 687 1 71 688 1 106 689 1 122 689 1 123 692 1 124 695 1 141 696 1 143 697 1 160 698 1 174 698 1 175 710 1 176 717 1 207 717 2 210 718 1 211 719 1 212 720 1 213 720 2 217 721 1 223 722 1 226 723 1 231 724 1 237 725 1 240 726 1 242 727 1 243 728 1 244 729 1 246 730 1 247 731 1 250 732 1 252 733 1 254 734 1 264 735 1 266 736 1 276 737 1 300 737 2 306 738 1 313 739 1 314 740 1 316 741 1 317 741 2 320 742 1 321 743 1 323 744 1 324 745 1 325 747 1 327 748 1 336 749 1 345 750 1 353 751 1 360 752 1 361 753 1 362 755 1 363 756 1 364 757 1 365 758 1 366 759 1 367 760 1 370 761 1 372 762 1 373 763 1 375 764 1 376 765 1 377 766 1 400 767 1 401 768 1 403 769 1 413 770 1 414 771 1 416 772 1 420 773 1 422 774 1 423 775 1 425 776 1 426 777 1 430 778 1 431 779 1 433 780 1 434 781 1 436 782 1 437 783 1 440 784 1 442 784 2 443 785 1 445 786 1 446 787 1 447 788 1 450 789 1 451 790 1 452 791 1 453 792 1 455 793 1 462 794 1 464 795 1 465 796 1 466 797 1 470 798 1 472 799 1 474 799 2 475 800 1 476 801 1 500 802 1 501 803 1 503 804 1 504 805 1 505 806 1 506 807 1 507 808 1 511 808 2 521 809 1 526 810 1 530 811 1 540 812 1 541 813 1 542 814 1 543 815 1 545 816 1 546 816 2 550 816 3 557 817 1 564 817 1 565 824 1 610 829 1 621 829 2 623 830 1 626 831 1 631 831 2 641 832 1 647 841 1 650 846 1 661 847 1 664 847 1 665 854 1 666 865 1 703 867 1 705 867 2 724 868 1 732 870 1 735 870 2 770 874 1 776 875 1 1001 876 1 1003 878 1 1006 878 2 1011 879 1 1013 880 1 1016 881 1 1022 881 2 1024 883 1 1027 885 1 1032 885 2 1035 887 1 1050 890 1 1117 890 2 1122 892 1 1135 894 1 1204 897 1 1207 899 1 1212 901 1 1215 901 2 1242 903 1 1250 903 2 1261 906 1 1267 906 1 1270 913 1 1317 928 1 1334 930 1 1336 930 2 1355 931 1 1363 933 1 1366 933 2 1421 938 1 1427 940 1 1431 941 1 1434 942 1 1436 944 1 1441 944 2 1444 945 1 1446 946 1 1451 947 1 1455 947 2 1457 949 1 1462 951 1 1465 951 2 1470 953 1 1503 956 1 1552 956 2 1555 958 1 1570 964 1 1637 966 1 1642 968 1 1645 968 2 1672 970 1 1700 970 2 1711 973 1 1717 973 1 1720 980 1 1751 989 1 1762 990 1 1763 992 1 1766 992 2 1771 994 1 2003 994 2 2005 996 1 2010 997 1 2012 1001 1 2117 1002 1 2120 1004 1 2126 1007 1 2134 1007 1 2135 1014 1 2161 1018 1 2176 1019 1 2201 1020 1 2206 1021 1 2212 1027 1 2216 1038 1 2233 1039 1 2235 1040 1 2240 1041 1 2242 1043 1 2245 1043 2 2247 1045 1 2251 1047 1 2254 1047 2 2256 1049 1 2260 1049 2 2265 1051 1 2272 1053 1 2276 1055 1 2300 1057 1 2325 1060 1 2333 1060 1 2337 1067 1 2356 1084 1 2373 1086 1 2375 1087 1 2422 1090 1 2430 1092 1 2432 1092 2 2434 1093 1 2446 1095 1 2447 1096 1 2451 1098 1 2456 1099 1 2477 1102 1 2505 1105 1 2526 1106 1 2533 1108 1 2535 1110 1 2540 1110 2 2557 1114 1 2565 1114 1 2566 1122 1 2612 1132 1 2627 1133 1 2631 1136 1 2644 1137 1 2654 1138 1 2656 1139 1 2663 1143 1 2671 1143 1 2675 1230 1 2676 1237 1 2707 1237 2 2716 1237 3 2727 1238 1 2736 1240 1 2742 1240 2 2753 1243 1 2763 1243 2 3003 1244 1 3012 1246 1 3015 1248 1 3053 1249 1 3062 1250 1 3073 1250 2 3102 1250 3 3121 1251 1 3126 1252 1 3135 1255 1 3144 1255 2 3155 1255 3 3164 1256 1 3173 1256 1 3174 1213 1 3237 1262 1 3254 1264 1 3256 1265 1 3305 1268 1 3313 1269 1 3320 1270 1 3330 1271 1 3332 1272 1 3333 1274 1 3342 1274 2 3345 1274 3 3351 1275 1 3357 1276 1 3363 1276 2 3370 1277 1 3372 1278 1 3374 1279 1 3376 1280 1 3400 1281 1 3402 1281 2 3417 1282 1 3424 1283 1 3427 1286 1 3432 1288 1 3434 1288 2 3454 1289 1 3462 1290 1 3465 1293 1 3476 1294 1 3503 1295 1 3507 1297 1 3511 1297 2 3514 1297 3 3520 1298 1 3526 1299 1 3532 1299 2 3537 1300 1 3541 1302 1 3543 1302 2 3545 1303 1 3550 1304 1 3556 1304 2 3573 1307 1 3600 1309 1 3602 1309 2 3622 1310 1 3630 1311 1 3633 1316 1 3644 1318 1 3647 1320 1 3652 1321 1 3700 1322 1 3706 1322 2 3714 1322 3 3725 1322 4 3732 1324 1 3740 1324 2 3751 1327 1 3757 1327 1 3760 1334 1 4033 1343 1 4040 1345 1 4042 1348 1 4043 1349 1 4062 1349 2 4064 1350 1 4121 1351 1 4161 1351 2 4163 1352 1 4220 1353 1 4260 1353 2 4262 1354 1 4264 1356 1 4267 1357 1 4272 1359 1 4301 1360 1 4304 1361 1 4315 1363 1 4327 1364 1 4360 1366 1 4411 1367 1 4413 1368 1 4422 1370 1 4425 1372 1 4434 1372 2 4443 1373 1 4452 1375 1 4456 1375 2 4465 1378 1 4475 1378 2 4504 1379 1 4513 1380 1 4520 1380 2 4526 1383 1 4532 1384 1 4543 1385 1 4554 1387 1 4562 1388 1 4574 1389 1 4606 1390 1 4613 1390 2 4621 1391 1 4624 1394 1 4632 1395 1 4636 1397 1 4666 1397 2 4702 1398 1 4705 1401 1 4752 1402 1 4757 1403 1 4762 1404 1 4763 1405 1 4764 1405 1 4765 1412 1 5012 1433 1 5017 1434 1 5021 1435 1 5022 1435 2 5025 1435 3 5030 1437 1 5032 1438 1 5035 1440 1 5040 1442 1 5047 1442 2 5051 1443 1 5053 1444 1 5063 1444 2 5075 1446 1 5076 1446 2 5100 1447 1 5134 1451 1 5174 1451 2 5176 1451 3 5200 1452 1 5201 1454 1 5204 1455 1 5214 1456 1 5217 1458 1 5231 1459 1 5234 1461 1 5237 1462 1 5263 1463 1 5266 1464 1 5301 1465 1 5307 1466 1 5326 1468 1 5327 1470 1 5333 1471 1 5335 1472 1 5361 1473 1 5374 1474 1 5402 1474 2 5404 1475 1 5411 1477 1 5413 1477 2 5416 1478 1 5422 1480 1 5424 1481 1 5426 1482 1 5430 1483 1 5432 1484 1 5434 1486 1 5437 1488 1 5440 1489 1 5442 1491 1 5444 1492 1 5447 1494 1 5451 1494 2 5453 1495 1 5465 1499 1 5471 1500 1 5477 1505 1 5500 1506 1 5502 1507 1 5507 1508 1 5512 1510 1 5515 1511 1 5520 1511 2 5530 1511 3 5533 1512 1 5544 1514 1 5551 1514 2 5554 1515 1 5555 1517 1 5567 1519 1 5573 1520 1 5575 1521 1 5607 1523 1 5611 1523 2 5630 1524 1 5631 1526 1 5637 1526 2 5641 1527 1 5644 1527 1 5645 1534 1 5653 1542 1 5664 1543 1 5665 1543 2 5670 1544 1 5672 1544 2 5675 1545 1 5700 1545 2 5703 1546 1 5706 1546 2 5711 1547 1 5714 1548 1 5726 1549 1 5730 1549 2 5733 1550 1 5735 1550 2 5740 1551 1 5742 1551 1 5743 1561 1 5744 1654 1 5755 1655 1 5757 1657 1 5761 1658 1 5765 1659 1 5770 1659 2 5773 1660 1 5777 1660 2 6005 1661 1 6010 1661 2 6012 1661 3 6014 1662 1 6020 1662 2 6022 1662 3 6024 1663 1 6030 1663 2 6032 1663 3 6034 1664 1 6040 1665 1 6053 1666 1 6061 1666 2 6066 1670 1 6070 1672 1 6072 1672 2 6073 1673 1 6075 1677 1 6103 1677 2 6106 1678 1 6114 1679 1 6116 1680 1 6120 1681 1 6122 1683 1 6135 1684 1 6140 1686 1 6142 1687 1 6154 1688 1 6161 1688 2 6174 1690 1 6175 1690 2 6176 1691 1 6203 1693 1 6206 1695 1 6211 1695 2 6214 1697 1 6225 1698 1 6232 1701 1 6246 1703 1 6251 1703 2 6254 1705 1 6265 1706 1 6272 1708 1 6305 1709 1 6310 1710 1 6320 1712 1 6330 1712 2 6333 1712 3 6336 1713 1 6337 1714 1 6344 1714 2 6346 1715 1 6350 1716 1 6352 1716 2 6360 1719 1 6373 1721 1 6401 1722 1 6410 1724 1 6414 1725 1 6416 1728 1 6421 1729 1 6425 1733 1 6434 1735 1 6437 1736 1 6444 1738 1 6445 1740 1 6450 1742 1 6452 1743 1 6457 1746 1 6461 1748 1 6474 1748 2 6476 1749 1 6500 1749 2 6502 1749 3 6503 1750 1 6507 1750 2 6512 1751 1 6520 1753 1 6533 1754 1 6536 1755 1 6541 1756 1 6552 1758 1 6560 1759 1 6573 1760 1 6576 1761 1 6601 1762 1 6613 1766 1 6644 1767 1 6656 1770 1 6661 1771 1 6667 1771 2 6705 1772 1 6712 1774 1 6715 1776 1 6720 1777 1 6725 1777 2 6730 1778 1 6733 1778 2 6736 1780 1 6741 1780 2 6744 1781 1 6746 1781 2 6761 1783 1 6774 1784 1 6777 1786 1 7002 1787 1 7005 1789 1 7013 1791 1 7026 1792 1 7031 1792 2 7034 1793 1 7045 1795 1 7053 1795 2 7056 1800 1 7070 1802 1 7073 1803 1 7100 1803 2 7103 1803 3 7105 1803 4 7107 1804 1 7110 1805 1 7111 1805 2 7114 1807 1 7122 1809 1 7125 1809 2 7132 1811 1 7134 1811 2 7147 1814 1 7162 1815 1 7165 1816 1 7174 1817 1 7201 1818 1 7214 1818 2 7216 1819 1 7222 1822 1 7225 1823 1 7230 1823 2 7233 1825 1 7236 1826 1 7267 1828 1 7302 1829 1 7333 1832 1 7346 1833 1 7351 1838 1 7373 1840 1 7376 1840 2 7400 1840 3 7401 1842 1 7403 1844 1 7406 1844 2 7411 1845 1 7423 1845 2 7430 1847 1 7433 1848 1 7440 1850 1 7443 1851 1 7444 1852 1 7451 1854 1 7461 1855 1 7464 1857 1 7467 1858 1 7474 1861 1 7507 1862 1 7511 1863 1 7514 1864 1 7516 1865 1 7521 1866 1 7524 1870 1 7527 1871 1 7530 1872 1 7543 1873 1 7547 1874 1 7562 1875 1 7567 1876 1 7573 1877 1 7576 1878 1 7603 1879 1 7616 1880 1 7622 1881 1 7635 1882 1 7642 1883 1 7646 1885 1 7651 1886 1 7654 1887 1 7657 1890 1 7672 1893 1 10014 1895 1 10016 1896 1 10021 1896 2 10024 1898 1 10030 1899 1 10032 1900 1 10035 1901 1 10037 1902 1 10051 1904 1 10054 1905 1 10056 1906 1 10070 1907 1 10075 1908 1 10077 1909 1 10100 1909 2 10103 1910 1 10116 1912 1 10124 1913 1 10141 1916 1 10147 1917 1 10164 1918 1 10173 1919 1 10210 1921 1 10217 1921 2 10231 1923 1 10232 1924 1 10242 1927 1 10250 1929 1 10253 1930 1 10255 1931 1 10267 1931 2 10274 1931 3 10276 1931 4 10277 1932 1 10301 1932 2 10304 1933 1 10317 1935 1 10325 1936 1 10332 1937 1 10345 1937 2 10357 1939 1 10360 1940 1 10370 1942 1 10376 1944 1 10401 1944 2 10406 1944 3 10410 1944 4 10411 1945 1 10413 1946 1 10415 1947 1 10427 1947 2 10432 1948 1 10445 1950 1 10453 1951 1 10460 1952 1 10473 1952 2 10505 1954 1 10506 1955 1 10516 1957 1 10524 1959 1 10527 1959 2 10531 1962 1 10534 1963 1 10536 1965 1 10541 1965 2 10553 1968 1 10555 1968 2 10560 1970 1 10563 1970 2 10567 1971 1 10572 1974 1 10576 1975 1 10601 1976 1 10604 1977 1 10605 1979 1 10615 1980 1 10617 1982 1 10624 1984 1 10627 1986 1 10632 1986 2 10634 1989 1 10642 1991 1 10645 1993 1 10650 1993 2 10652 1995 1 10660 1997 1 10663 1997 2 10665 2000 1 10673 2002 1 10676 2003 1 10701 2005 1 10704 2005 2 10706 2005 3 10707 2008 1 10715 2010 1 10720 2012 1 10723 2012 2 10725 2014 1 10733 2016 1 10736 2016 2 10740 2019 1 10746 2021 1 10751 2023 1 10754 2023 2 10756 2026 1 10764 2028 1 10767 2030 1 10772 2031 1 11004 2032 1 11011 2033 1 11012 2033 2 11015 2034 1 11027 2035 1 11034 2035 2 11036 2036 1 11051 2037 1 11054 2040 1 11056 2042 1 11061 2044 1 11064 2044 2 11066 2046 1 11074 2048 1 11077 2049 1 11104 2050 1 11105 2053 1 11110 2055 1 11113 2057 1 11115 2064 1 11117 2066 1 11121 2068 1 11123 2068 2 11136 2069 1 11144 2070 1 11153 2072 1 11155 2072 2 11162 2074 1 11171 2076 1 11174 2077 1 11176 2077 2 11201 2080 1 11210 2080 2 11213 2081 1 11221 2081 2 11226 2082 1 11235 2083 1 11237 2084 1 11240 2085 1 11245 2090 1 11246 2092 1 11251 2092 2 11276 2095 1 11304 2095 1 11305 2105 1 11453 2126 1 11460 2128 1 11463 2128 2 11474 2131 1 11502 2132 1 11510 2134 1 11527 2135 1 11541 2136 1 11553 2138 1 11554 2140 1 11557 2141 1 11571 2143 1 11573 2144 1 11577 2145 1 11605 2145 2 11620 2146 1 11625 2147 1 11631 2149 1 11635 2149 2 11640 2150 1 11646 2152 1 11651 2152 2 11655 2153 1 11657 2153 2 11663 2157 1 11666 2158 1 11674 2160 1 11677 2161 1 11711 2162 1 11723 2164 1 11724 2165 1 11732 2167 1 11751 2168 1 11755 2172 1 11760 2174 1 11777 2175 1 12011 2176 1 12023 2178 1 12024 2180 1 12027 2181 1 12041 2183 1 12043 2184 1 12051 2184 2 12064 2185 1 12071 2187 1 12073 2187 2 12076 2188 1 12104 2190 1 12107 2191 1 12113 2195 1 12116 2196 1 12124 2198 1 12127 2199 1 12141 2200 1 12153 2202 1 12154 2203 1 12162 2205 1 12201 2206 1 12205 2210 1 12210 2212 1 12227 2213 1 12241 2214 1 12253 2216 1 12254 2218 1 12257 2219 1 12271 2221 1 12273 2222 1 12301 2222 2 12314 2223 1 12321 2225 1 12323 2225 2 12326 2226 1 12334 2228 1 12337 2229 1 12351 2230 1 12363 2234 1 12364 2235 1 12421 2236 1 12424 2239 1 12431 2241 1 12434 2241 2 12445 2244 1 12453 2244 1 12454 2278 1 12502 2281 1 12513 2282 1 12526 2282 2 12531 2283 1 12534 2283 2 12537 2284 1 12542 2285 1 12557 2285 2 12562 2286 1 12566 2287 1 12571 2287 1 12572 2291 1 12574 2294 1 12605 2295 1 12614 2296 1 12617 2296 2 12636 2297 1 12643 2297 2 12662 2298 1 12673 2298 1 12677 2302 1 12700 2307 1 12705 2309 1 12710 2310 1 12715 2312 1 12724 2313 1 12731 2315 1 12732 2315 1 12733 2319 1 12740 2324 1 12751 2325 1 12760 2326 1 12763 2326 2 13002 2329 1 13014 2330 1 13016 2331 1 13025 2331 2 13030 2333 1 13042 2334 1 13043 2334 2 13051 2335 1 13056 2335 2 13064 2337 1 13070 2338 1 13075 2338 2 13102 2339 1 13113 2341 1 13121 2341 2 13123 2342 1 13137 2342 1 13143 2346 1 13153 2349 1 13160 2350 1 13166 2350 2 13173 2351 1 13202 2353 1 13205 2354 1 13210 2355 1 13215 2356 1 13217 2357 1 13221 2359 1 13223 2361 1 13226 2361 1 13227 2251 1 13234 2366 1 13241 2368 1 13244 2368 2 13255 2373 1 13264 2374 1 13272 2374 2 13275 2375 1 13306 2376 1 13317 2376 2 13332 2377 1 13343 2379 1 13345 2379 2 13350 2380 1 13361 2380 2 13403 2381 1 13414 2381 2 13436 2382 1 13447 2383 1 13460 2383 2 13462 2384 1 13505 2384 2 13507 2385 1 13532 2386 1 13534 2387 1 13556 2389 1 13566 2390 1 13615 2392 1 13624 2394 1 13632 2395 1 13643 2397 1 13645 2398 1 13647 2399 1 13652 2401 1 13661 2404 1 13670 2406 1 13676 2407 1 13704 2407 2 13723 2408 1 13734 2409 1 13742 2409 2 13761 2411 1 13772 2412 1 14004 2414 1 14013 2416 1 14021 2417 1 14027 2417 2 14046 2418 1 14057 2419 1 14070 2420 1 14073 2421 1 14102 2423 1 14111 2424 1 14123 2426 1 14131 2427 1 14142 2429 1 14151 2430 1 14153 2431 1 14155 2433 1 14157 2435 1 14166 2436 1 14200 2438 1 14206 2438 2 14210 2439 1 14212 2441 1 14221 2443 1 14227 2445 1 14240 2446 1 14252 2448 1 14261 2449 1 14273 2451 1 14301 2453 1 14312 2454 1 14324 2456 1 14333 2457 1 14345 2459 1 14353 2460 1 14361 2460 2 14400 2462 1 14411 2463 1 14417 2464 1 14422 2464 2 14435 2466 1 14447 2468 1 14536 2469 1 14547 2470 1 14554 2471 1 14560 2472 1 14565 2473 1 14576 2474 1 14600 2474 2 14603 2475 1 14606 2476 1 14614 2476 2 14627 2477 1 14640 2477 2 14643 2479 1 14645 2481 1 14653 2482 1 14661 2482 2 14700 2484 1 14711 2485 1 14717 2486 1 14722 2486 2 14735 2488 1 14747 2490 1 15036 2491 1 15047 2492 1 15054 2493 1 15060 2494 1 15065 2495 1 15077 2496 1 15105 2496 2 15120 2497 1 15131 2497 2 15134 2498 1 15135 2499 1 15137 2500 1 15140 2502 1 15144 2503 1 15153 2506 1 15160 2508 1 15166 2509 1 15174 2509 2 15213 2510 1 15224 2511 1 15236 2513 1 15245 2514 1 15257 2517 1 15265 2518 1 15273 2518 2 15276 2519 1 15307 2520 1 15314 2520 2 15320 2521 1 15325 2522 1 15333 2524 1 15336 2525 1 15347 2527 1 15356 2528 1 15357 2529 1 15361 2529 2 15364 2530 1 15367 2530 2 15402 2531 1 15413 2531 2 15416 2533 1 15420 2534 1 15432 2536 1 15440 2537 1 15446 2537 2 15465 2538 1 15476 2539 1 15507 2541 1 15511 2542 1 15513 2543 1 15515 2546 1 15517 2548 1 15526 2549 1 15540 2550 1 15574 2550 2 15577 2551 1 15600 2551 2 15603 2553 1 15615 2556 1 15617 2557 1 15625 2558 1 15630 2562 1 15631 2564 1 15634 2564 2 15645 2568 1 15653 2568 1 15654 2575 1 15744 2578 1 15761 2580 1 15764 2581 1 15766 2582 1 15770 2582 2 15772 2583 1 16001 2583 2 16003 2585 1 16011 2586 1 16013 2587 1 16015 2588 1 16017 2589 1 16021 2590 1 16022 2590 1 16023 2596 1 16024 2602 1 16041 2603 1 16043 2605 1 16046 2606 1 16051 2608 1 16056 2612 1 16115 2615 1 16121 2616 1 16123 2617 1 16125 2619 1 16127 2620 1 16131 2621 1 16133 2622 1 16144 2623 1 16151 2624 1 16157 2625 1 16200 2627 1 16215 2629 1 16217 2634 1 16220 2642 1 16235 2643 1 16237 2645 1 16242 2645 2 16246 2646 1 16253 2646 2 16257 2647 1 16270 2648 1 16273 2649 1 16277 2650 1 16303 2651 1 16306 2653 1 16310 2654 1 16313 2655 1 16316 2659 1 16322 2660 1 16324 2661 1 16331 2662 1 16333 2663 1 16341 2664 1 16343 2665 1 16346 2665 2 16361 2666 1 16366 2666 2 16370 2667 1 16374 2672 1 16377 2672 1 16400 2678 1 16406 2686 1 16423 2688 1 16425 2688 2 16444 2691 1 16452 2692 1 16476 2695 1 16515 2695 2 16523 2696 1 16535 2697 1 16550 2698 1 16553 2700 1 16562 2702 1 16571 2704 1 16574 2704 2 16605 2707 1 16613 2707 1 16614 2713 1 16634 2724 1 16651 2726 1 16653 2727 1 16664 2728 1 16666 2729 1 16701 2729 2 16711 2730 1 16716 2733 1 16724 2734 1 16753 2737 1 16772 2737 2 17000 2738 1 17012 2739 1 17025 2740 1 17030 2742 1 17037 2744 1 17046 2746 1 17051 2746 2 17070 2749 1 17076 2749 1 17077 2755 1 17124 2764 1 17135 2766 1 17137 2766 2 17150 2769 1 17156 2770 1 17171 2772 1 17200 2774 1 17203 2774 2 17214 2777 1 17222 2777 1 17223 2784 1 17245 2809 1 17262 2809 2 17265 2810 1 17270 2811 1 17272 2813 1 17274 2813 2 17313 2814 1 17321 2816 1 17324 2817 1 17365 2821 1 17373 2822 1 17375 2824 1 17405 2825 1 17406 2825 2 17416 2826 1 17424 2827 1 17432 2827 2 17434 2828 1 17446 2829 1 17450 2831 1 17501 2831 2 17515 2832 1 17527 2832 2 17531 2835 1 17533 2837 1 17537 2841 1 17600 2841 2 17602 2843 1 17606 2845 1 17615 2845 2 17617 2848 1 17623 2849 1 17635 2849 2 17637 2853 1 17641 2854 1 17643 2855 1 17644 2856 1 17651 2858 1 17655 2858 2 17660 2859 1 17661 2861 1 17673 2863 1 17675 2864 1 17712 2865 1 17717 2866 1 17722 2867 1 17724 2868 1 17731 2870 1 17746 2871 1 17751 2872 1 17765 2878 1 17773 2880 1 17776 2881 1 20005 2881 2 20010 2882 1 20022 2883 1 20024 2886 1 20033 2887 1 20034 2889 1 20035 2891 1 20040 2891 2 20050 2892 1 20062 2894 1 20064 2895 1 20066 2895 2 20070 2895 3 20073 2898 1 20076 2899 1 20100 2899 2 20102 2899 3 20106 2902 1 20111 2903 1 20113 2906 1 20116 2907 1 20120 2909 1 20123 2910 1 20136 2912 1 20145 2914 1 20150 2915 1 20152 2916 1 20164 2916 2 20170 2917 1 20176 2917 2 20202 2919 1 20215 2919 2 20217 2920 1 20241 2922 1 20244 2922 2 20250 2924 1 20263 2925 1 20266 2926 1 20275 2926 2 20277 2926 3 20303 2928 1 20307 2929 1 20316 2929 2 20320 2929 3 20325 2932 1 20331 2932 2 20333 2933 1 20345 2935 1 20354 2935 2 20357 2936 1 20360 2938 1 20372 2940 1 20374 2941 1 20411 2942 1 20416 2943 1 20421 2944 1 20423 2945 1 20430 2947 1 20445 2948 1 20450 2949 1 20464 2951 1 20472 2956 1 20475 2957 1 20477 2959 1 20506 2961 1 20520 2961 2 20524 2962 1 20526 2962 2 20535 2963 1 20540 2963 2 20547 2964 1 20552 2964 2 20561 2965 1 20564 2965 2 20573 2966 1 20576 2968 1 20600 2970 1 20603 2972 1 20606 2973 1 20641 2975 1 20647 2976 1 20675 2979 1 20703 2979 1 20704 3009 1 20762 3023 1 20773 3023 2 20774 3024 1 20776 3025 1 21002 3027 1 21011 3028 1 21017 3028 2 21043 3029 1 21050 3031 1 21055 3032 1 21057 3033 1 21063 3034 1 21067 3036 1 21102 3038 1 21103 3040 1 21110 3040 1 21111 2989 1 21114 3044 1 21121 3045 1 21123 3046 1 21130 3047 1 21153 3047 2 21155 3048 1 21157 3049 1 21202 3049 2 21204 3050 1 21206 3051 1 21231 3051 2 21233 3052 1 21235 3053 1 21260 3055 1 21262 3056 1 21264 3057 1 21266 3058 1 21270 3060 1 21272 3061 1 21315 3062 1 21317 3063 1 21321 3064 1 21344 3066 1 21346 3067 1 21347 3069 1 21351 3070 1 21374 3071 1 21376 3072 1 21400 3073 1 21423 3075 1 21425 3077 1 21427 3078 1 21452 3080 1 21454 3081 1 21467 3083 1 21471 3084 1 21514 3086 1 21516 3087 1 21531 3089 1 21533 3090 1 21556 3091 1 21560 3092 1 21562 3093 1 21605 3094 1 21607 3095 1 21610 3096 1 21633 3098 1 21635 3099 1 21650 3101 1 21652 3102 1 21675 3104 1 21677 3105 1 21701 3105 2 21704 3105 3 21707 3105 4 21712 3105 5 21715 3106 1 21720 3109 1 21725 3110 1 21726 3110 2 21731 3110 3 21734 3110 4 21737 3110 5 21742 3111 1 21745 3113 1 21751 3114 1 21774 3116 1 21776 3117 1 22000 3119 1 22002 3120 1 22025 3122 1 22027 3123 1 22031 3125 1 22033 3126 1 22056 3128 1 22060 3129 1 22062 3131 1 22064 3132 1 22107 3134 1 22111 3135 1 22113 3137 1 22115 3138 1 22140 3140 1 22142 3141 1 22144 3143 1 22146 3144 1 22171 3146 1 22173 3147 1 22200 3149 1 22215 3150 1 22240 3151 1 22242 3152 1 22244 3154 1 22253 3156 1 22255 3159 1 22343 3162 1 22351 3162 1 22352 3169 1 22441 3182 1 22446 3185 1 22505 3186 1 22517 3190 1 22566 3191 1 22600 3193 1 22627 3195 1 22641 46 1 22642 46 1 22653 3204 1 22700 3205 1 22701 3205 2 22704 3205 3 22710 3206 1 22716 3207 1 22721 3208 1 22727 3209 1 22734 3210 1 22736 3211 1 22746 3212 1 22756 3212 2 22760 3213 1 22761 3213 2 22763 3215 1 22765 3216 1 22770 3218 1 22772 3219 1 23000 3220 1 23003 3221 1 23005 3223 1 23013 3223 2 23015 3223 3 23017 3224 1 23021 3226 1 23024 3226 2 23036 3227 1 23040 3229 1 23045 3231 1 23052 3232 1 23060 3235 1 23066 3236 1 23070 3238 1 23073 3238 2 23075 3240 1 23077 3241 1 23101 3242 1 23102 3243 1 23120 3244 1 23122 3246 1 23126 3247 1 23144 3249 1 23147 3249 2 23152 3249 3 23155 3250 1 23157 3250 2 23162 3251 1 23165 3251 2 23170 3251 3 23173 3252 1 23176 3252 2 23203 3253 1 23210 3254 1 23212 3255 1 23216 3257 1 23244 3257 2 23246 3258 1 23251 3259 1 23255 3261 1 23263 3263 1 23267 3264 1 23306 3266 1 23311 3266 2 23314 3266 3 23317 3267 1 23321 3267 2 23324 3268 1 23327 3268 2 23332 3269 1 23335 3269 2 23342 3270 1 23347 3271 1 23351 3272 1 23355 3274 1 23403 3274 2 23405 3275 1 23410 3276 1 23414 3278 1 23422 3280 1 23426 3281 1 23445 3283 1 23450 3283 2 23453 3283 3 23456 3284 1 23460 3284 2 23463 3285 1 23466 3285 2 23471 3286 1 23474 3286 2 23501 3287 1 23506 3288 1 23510 3289 1 23514 3291 1 23542 3291 2 23544 3292 1 23547 3293 1 23553 3298 1 23561 3299 1 23564 3300 1 23566 3301 1 23571 3302 1 23573 3303 1 23576 3304 1 23601 3305 1 23604 3306 1 23607 3307 1 23611 3308 1 23613 3309 1 23615 3310 1 23620 3311 1 23623 3312 1 23625 3313 1 23630 3314 1 23633 3315 1 23636 3321 1 23641 3322 1 23657 3322 2 23662 3327 1 23674 3329 1 23675 3330 1 23702 3333 1 23705 3334 1 23707 3335 1 23721 3336 1 23723 3337 1 23724 3340 1 23730 3341 1 23735 3343 1 23751 3345 1 23753 3346 1 23755 3346 2 23767 3348 1 23774 3348 2 23776 3349 1 24016 3350 1 24024 3353 1 24045 3355 1 24051 3356 1 24055 3357 1 24062 3357 2 24064 3358 1 24076 3359 1 24100 3360 1 24105 3361 1 24113 3362 1 24120 3363 1 24122 3364 1 24125 3366 1 24132 3367 1 24134 3368 1 24145 3369 1 24147 3371 1 24156 3372 1 24160 3373 1 24174 3376 1 24177 3376 2 24201 3377 1 24207 3379 1 24211 3380 1 24213 3381 1 24221 3382 1 24223 3382 2 24227 3384 1 24235 3385 1 24237 3386 1 24242 3386 1 24243 3386 1 24254 3386 1 24256 ----------------------------------------------------------- Historical Background This edition of the Multics software materials and documentation is provided and donated to Massachusetts Institute of Technology by Group BULL including BULL HN Information Systems Inc. as a contribution to computer science knowledge. This donation is made also to give evidence of the common contributions of Massachusetts Institute of Technology, Bell Laboratories, General Electric, Honeywell Information Systems Inc., Honeywell BULL Inc., Groupe BULL and BULL HN Information Systems Inc. to the development of this operating system. Multics development was initiated by Massachusetts Institute of Technology Project MAC (1963-1970), renamed the MIT Laboratory for Computer Science and Artificial Intelligence in the mid 1970s, under the leadership of Professor Fernando Jose Corbato. Users consider that Multics provided the best software architecture for managing computer hardware properly and for executing programs. Many subsequent operating systems incorporated Multics principles. Multics was distributed in 1975 to 2000 by Group Bull in Europe , and in the U.S. by Bull HN Information Systems Inc., as successor in interest by change in name only to Honeywell Bull Inc. and Honeywell Information Systems Inc. . ----------------------------------------------------------- Permission to use, copy, modify, and distribute these programs and their documentation for any purpose and without fee is hereby granted,provided that the below copyright notice and historical background appear in all copies and that both the copyright notice and historical background and this permission notice appear in supporting documentation, and that the names of MIT, HIS, BULL or BULL HN not be used in advertising or publicity pertaining to distribution of the programs without specific prior written permission. Copyright 1972 by Massachusetts Institute of Technology and Honeywell Information Systems Inc. Copyright 2006 by BULL HN Information Systems Inc. Copyright 2006 by Bull SAS All Rights Reserved