/* Edinburgh IMP77 Compiler - Version 8.4 */ // LANG 0x0000 extern void readsymbol ; ( int int typecode, void *s ; ) extern void skipsymbol ; () extern int nextsymbol {ind obj} ; () extern void read ; ( int int typecode, void *n ; ) extern void printsymbol ; ( int n ; ) extern void printstring ; ( char [256] s ; ) extern void write ; ( int n ; int places ; ) extern void newline ; () extern void newlines ; ( int n ; ) extern void space ; () extern void spaces ; ( int n ; ) extern void selectinput ; ( int stream ; ) extern void selectoutput ; ( int stream ; ) extern void closeinput ; () extern void closeoutput ; () extern void openinput ; ( int stream ; char [256] filename ; ) extern void openoutput ; ( int stream ; char [256] filename ; ) extern void prompt ; ( char [256] p ; ) extern char [2] tostring {ind obj} ; ( int symbol ; ) extern int charno {ind obj} ; ( char [256] s ; int n ; ) extern int length {ind obj} ; ( char [256] s ; ) #line 14 // 1 ! IMP77 compiler first pass // 2 // 3 !################################################### // 4 ! This program is a Copyright work. Over the last # // 5 ! 20+ years a long and distinguished list of # // 6 !institutions, individuals and other entities have # // 7 !contributed portions of this program and may have # // 8 ! reasonable claim over rights to certain parts of # // 9 ! the program. This version is therefore provided # // 10 ! for education and demonstration purposes only # // 11 !################################################### // 12 // 13 %BEGIN // 14 %CONSTSTRING(4) version = "8.4" int main(int argc, char **argv) { #line 15 // 15 PUSHS "8.4" const char [5] version {ind obj} ; INIT 1 #line 19 // 16 !configuration parameters // 17 // 18 %CONSTINTEGER max int = ((-1)>>1)//10 // 19 %CONSTINTEGER max dig = (-1)>>1-maxint*10 #line 20 // 20 %CONSTINTEGER byte size = 8; !bits per byte #line 21 // 21 %CONSTINTEGER max tag = 800; !max no. of tags #line 22 // 22 %CONSTINTEGER max dict = 6000; !max extent of dictionary #line 23 // 23 %CONSTINTEGER name bits = 11; !size of name table as a power of two #line 24 // 24 %CONSTINTEGER max names = 1<0 strings, <0 chars static int symtype ; INIT 1 #line 142 // 142 %owninteger end mark = 0; !%end flag static int quote ; INIT 1 #line 143 // 143 %OWNINTEGER cont = ' ' static int endmark ; INIT 1 #line 144 // 144 %OWNINTEGER csym = ' '; !listing continuation marker static int cont ; INIT 1 #line 145 // 145 %OWNINTEGER decl = 0; !current declarator flags static int csym ; INIT 1 #line 146 // 146 %OWNINTEGER dim = 0; !arrayname dimension static int decl ; INIT 1 #line 147 // 147 %OWNINTEGER spec given = 0 static int dim ; INIT 1 #line 148 // 148 static int specgiven ; INIT 1 #line 150 // 149 %OWNINTEGER escape class = 0; !when and where to escape // 150 %OWNINTEGER protection = 0 static int escapeclass ; INIT 1 #line 151 // 151 %OWNINTEGER atom flags = 0 static int protection ; INIT 1 #line 152 // 152 %OWNINTEGER otype = 0; !current 'own' type static int atomflags ; INIT 1 #line 153 // 153 %OWNINTEGER reals ln = 1; ! =4 for %REALSLONG static int otype ; INIT 1 #line 154 // 154 %OWNINTEGER last1 = 0; !previous atom class static int realsln ; INIT 1 #line 155 // 155 %OWNINTEGER gen type = 0 static int last1 ; INIT 1 #line 156 // 156 %OWNINTEGER ptype = 0; !current phrase type static int gentype ; INIT 1 #line 157 // 157 %OWNINTEGER papp = 0; !current phrase parameters static int ptype ; INIT 1 #line 158 // 158 %OWNINTEGER pformat = 0; !current phrase format static int papp ; INIT 1 #line 159 // 159 %OWNINTEGER force = 0; !force next ptype static int pformat ; INIT 1 #line 160 // 160 %OWNINTEGER g = 0 static int force ; INIT 1 #line 161 // 161 %OWNINTEGER gg = 0 static int g ; INIT 1 #line 162 // 162 %OWNINTEGER map gg = 0; !grammar entries static int gg ; INIT 1 #line 163 // 163 %OWNINTEGER fdef = 0; !current format definition static int mapgg ; INIT 1 #line 164 // 164 %OWNINTEGER this = -1; !current recordformat tag static int fdef ; INIT 1 #line 165 // 165 %OWNINTEGER nmin = 0; !analysis record atom pointer static int this ; INIT 1 #line 166 // 166 %OWNINTEGER nmax = 0; !analysis record phrase pointer static int nmin ; INIT 1 #line 167 // 167 %OWNINTEGER rbase = 0; !record format definition base static int nmax ; INIT 1 #line 168 // 168 %OWNINTEGER gmin = max grammar; !upper bound on grammar static int rbase ; INIT 1 #line 169 // 169 %OWNINTEGER dmax = 1 static int gmin ; INIT 1 #line 170 // 170 %OWNINTEGER tmin = max tag; !upper bound on tags static int dmax ; INIT 1 #line 171 // 171 %OWNINTEGER ss = 0; !source statement entry static int tmin ; INIT 1 #line 172 // 172 %STRING(63) include file static int ss ; INIT 1 #line 173 // 173 %OWNINTEGER include list = 0 char [64] includefile ; #line 174 // 174 %OWNINTEGER include level= 0 static int includelist ; INIT 1 #line 175 // 175 %OWNINTEGER include = 0; !=0 unused, #0 being used static int includelevel ; INIT 1 #line 176 // 176 %OWNINTEGER perm = 1; !1 = compiling perm, 0 = program static int include ; INIT 1 #line 177 // 177 %OWNINTEGER progmode = 0; !-1 = file, 1 = begin/eop static int perm ; INIT 1 #line 178 // 178 %OWNINTEGER sstype = 0; !-1:exec stat static int progmode ; INIT 1 #line 179 // 179 ! 0: declaration static int sstype ; INIT 1 #line 183 // 180 ! 1: block in // 181 ! 2: block out // 182 %OWNINTEGER spec mode = 0; !>=0: definition // 183 ! -1: proc spec static int specmode ; INIT 1 #line 186 // 184 ! -2: recordformat // 185 %OWNINTEGER ocount = -1; !own constants wanted // 186 %OWNINTEGER limit = 0; !lookup limit static int ocount ; INIT 1 #line 187 // 187 %OWNINTEGER copy = 0; !duplicate name flag static int limit ; INIT 1 #line 188 // 188 %OWNINTEGER order = 0; !out of sequence flag static int copy ; INIT 1 #line 189 // 189 %OWNINTEGER for warn = 0; !non-local flag static int order ; INIT 1 #line 190 // 190 %OWNINTEGER dubious = 0; !flag for dubious statements static int forwarn ; INIT 1 #line 191 // 191 %OWNINTEGER dp = 1 static int dubious ; INIT 1 #line 192 // 192 %OWNINTEGER pos1 = 0 static int dp ; INIT 1 #line 193 // 193 %OWNINTEGER pos2 = 0; !error position static int pos1 ; INIT 1 #line 194 // 194 %OWNINTEGER pos = 0; !input line index static int pos2 ; INIT 1 #line 195 // 195 %OWNINTEGER dimension = 0; !current array dimension static int pos ; INIT 1 #line 196 // 196 %OWNINTEGER local = 0; !search limit for locals static int dimension ; INIT 1 #line 197 // 197 %OWNINTEGER fm base = 0; !entry for format decls static int local ; INIT 1 #line 198 // 198 %OWNINTEGER search base = 0; !entry for record_names static int fmbase ; INIT 1 #line 199 // 199 %OWNINTEGER format list = 0; !size of current format list static int searchbase ; INIT 1 #line 200 // 200 %INTEGER recid static int formatlist ; INIT 1 #line 201 // 201 !input line int recid ; #line 202 // 202 %OWNBYTEINTEGERARRAY char(0:133) = BOUNDS {NOT IMPLEMENTED YET} static char int *char ; INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 #line 217 // 203 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, // 204 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, // 205 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, // 206 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, // 207 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, // 208 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, // 209 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, // 210 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, // 211 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, // 212 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, // 213 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, // 214 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, // 215 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, // 216 10, 10, 10, 10 // 217 %INTEGERARRAY lit pool(0:lit max) int *litpool ; DIM 0x0001 0x0001 #line 218 // 218 %OWNINTEGER lit = 0; !current literal (integer) static int lit ; INIT 1 #line 219 // 219 %OWNINTEGER lp = 0; !literals pointer static int lp ; INIT 1 #line 220 // 220 %OWNINTEGER block x = 0; !block tag static int blockx ; INIT 1 #line 221 // 221 %OWNINTEGER list = 1; !<= to enable static int list ; INIT 1 #line 222 // 222 %OWNINTEGER control = 0 static int control ; INIT 1 #line 223 // 223 %OWNINTEGER diag = 0; !diagnose flags static int diag ; INIT 1 #line 224 // 224 %INTEGERARRAY hash(0:max names) int *hash ; DIM 0x0001 0x0001 #line 225 // 225 %RECORD(tagfm)%ARRAY tag(0:max tag) struct /*TAGFM*/ *tag ; DIM 0x0001 0x0001 #line 226 // 226 %INTEGERARRAY dict(1:max dict) int *dict ; DIM 0x0001 0x0001 #line 227 // 227 %BYTEINTEGERARRAY buff(1:512) char int *buff ; DIM 0x0001 0x0001 #line 228 // 228 %OWNINTEGER bp = 0 static int bp ; INIT 1 #line 232 // 229 // 230 !*** start of generated tables *** // 231 ! %endoflist // 232 %conststring(8)%array text(0:255) = %c BOUNDS {NOT IMPLEMENTED YET} const char [9] *text {ind obj} ; PUSHS "Z" INIT 1 PUSHS "VDEC" INIT 1 PUSHS "OWNVDEC" INIT 1 PUSHS "EXTVSPEC" INIT 1 PUSHS "ADEC" INIT 1 PUSHS "OWNADEC" INIT 1 PUSHS "EXTASPEC" INIT 1 PUSHS "PROC" INIT 1 PUSHS "PROCSPEC" INIT 1 PUSHS "FORMDEC" INIT 1 PUSHS "SWDEC" INIT 1 PUSHS "LDEC" INIT 1 PUSHS "FORMSPEC" INIT 1 PUSHS "" INIT 1 PUSHS "" INIT 1 PUSHS "" INIT 1 PUSHS "" INIT 1 PUSHS "" INIT 1 PUSHS "OPTION" INIT 1 PUSHS "COMMA" INIT 1 PUSHS "T" INIT 1 PUSHS "COLON" INIT 1 PUSHS "COMMENT" INIT 1 PUSHS "LB" INIT 1 PUSHS "ALIAS" INIT 1 PUSHS "RB" INIT 1 PUSHS "SUB" INIT 1 PUSHS "ARRAYD" INIT 1 PUSHS "STYPE" INIT 1 PUSHS "ARRAY" INIT 1 PUSHS "NAME" INIT 1 PUSHS "PROCD" INIT 1 PUSHS "FNMAP" INIT 1 PUSHS "SWITCH" INIT 1 PUSHS "OWN" INIT 1 PUSHS "EXTERNAL" INIT 1 PUSHS "STRING" INIT 1 PUSHS "RECORD" INIT 1 PUSHS "FORMAT" INIT 1 PUSHS "SPEC" INIT 1 PUSHS "MCODE" INIT 1 PUSHS "LABEL" INIT 1 PUSHS "OP1" INIT 1 PUSHS "OP2" INIT 1 PUSHS "OP3" INIT 1 PUSHS "SIGN" INIT 1 PUSHS "UOP" INIT 1 PUSHS "MOD" INIT 1 PUSHS "DOT" INIT 1 PUSHS "COMP" INIT 1 PUSHS "ACOMP" INIT 1 PUSHS "EQ" INIT 1 PUSHS "EQEQ" INIT 1 PUSHS "JAM" INIT 1 PUSHS "JUMP" INIT 1 PUSHS "RESOP" INIT 1 PUSHS "AND" INIT 1 PUSHS "OR" INIT 1 PUSHS "NOT" INIT 1 PUSHS "WHILE" INIT 1 PUSHS "UNTIL" INIT 1 PUSHS "FOR" INIT 1 PUSHS "CWORD" INIT 1 PUSHS "EXIT" INIT 1 PUSHS "ON" INIT 1 PUSHS "SIGNAL" INIT 1 PUSHS "THEN" INIT 1 PUSHS "START" INIT 1 PUSHS "ELSE" INIT 1 PUSHS "FINISH" INIT 1 PUSHS "FELSE" INIT 1 PUSHS "CYCLE" INIT 1 PUSHS "REPEAT" INIT 1 PUSHS "PROGRAM" INIT 1 PUSHS "BEGIN" INIT 1 PUSHS "END" INIT 1 PUSHS "ENDPROG" INIT 1 PUSHS "ENDPERM" INIT 1 PUSHS "FRESULT" INIT 1 PUSHS "MRESULT" INIT 1 PUSHS "BACK" INIT 1 PUSHS "MONITOR" INIT 1 PUSHS "STOP" INIT 1 PUSHS "LIST" INIT 1 PUSHS "REALSLN" INIT 1 PUSHS "CONTROL" INIT 1 PUSHS "INCLUDE" INIT 1 PUSHS "MASS" INIT 1 PUSHS "RTYPE" INIT 1 PUSHS "ADDOP" INIT 1 PUSHS "IDENT" INIT 1 PUSHS "V" INIT 1 PUSHS "N" INIT 1 PUSHS "CONST" INIT 1 PUSHS "FM" INIT 1 PUSHS "" INIT 1 PUSHS "R" INIT 1 PUSHS "F" INIT 1 PUSHS "M" INIT 1 PUSHS "P" INIT 1 PUSHS "RP" INIT 1 PUSHS "FP" INIT 1 PUSHS "MP" INIT 1 PUSHS "PP" INIT 1 PUSHS "L" INIT 1 PUSHS "S" INIT 1 PUSHS "A" INIT 1 PUSHS "AN" INIT 1 PUSHS "NA" INIT 1 PUSHS "NAN" INIT 1 PUSHS "" INIT 1 PUSHS "" INIT 1 PUSHS "" INIT 1 PUSHS "" INIT 1 PUSHS "" INIT 1 PUSHS "" INIT 1 PUSHS "" INIT 1 PUSHS "" INIT 1 PUSHS "" INIT 1 PUSHS "" INIT 1 PUSHS "%MSTART" INIT 1 PUSHS "%CLEAR" INIT 1 PUSHS "%PRED" INIT 1 PUSHS "" INIT 1 PUSHS "%DUBIOUS" INIT 1 PUSHS "%DUP" INIT 1 PUSHS "%PIN" INIT 1 PUSHS "%POUT" INIT 1 PUSHS "%EDUP" INIT 1 PUSHS "" INIT 1 PUSHS "PIDENT" INIT 1 PUSHS "CIDENT" INIT 1 PUSHS "OIDENT" INIT 1 PUSHS "FNAME" INIT 1 PUSHS "SWID" INIT 1 PUSHS "DOTL" INIT 1 PUSHS "DOTR" INIT 1 PUSHS "ASEP" INIT 1 PUSHS "CSEP" INIT 1 PUSHS "OSEP" INIT 1 PUSHS "PSEP" INIT 1 PUSHS "ARB" INIT 1 PUSHS "BPLRB" INIT 1 PUSHS "ORB" INIT 1 PUSHS "PRB" INIT 1 PUSHS "CRB" INIT 1 PUSHS "RCRB" INIT 1 PUSHS "RECRB" INIT 1 PUSHS "RECLB" INIT 1 PUSHS "LAB" INIT 1 PUSHS "MLAB" INIT 1 PUSHS "SLAB" INIT 1 PUSHS "XNAME" INIT 1 PUSHS "OWNT" INIT 1 PUSHS "DBSEP" INIT 1 PUSHS "PCONST" INIT 1 PUSHS "CMOD" INIT 1 PUSHS "CSIGN" INIT 1 PUSHS "CUOP" INIT 1 PUSHS "COP1" INIT 1 PUSHS "COP2" INIT 1 PUSHS "COP3" INIT 1 PUSHS "INDEF" INIT 1 PUSHS "XELSE" INIT 1 PUSHS "CRESOP" INIT 1 PUSHS "NLAB" INIT 1 PUSHS "RUNTIL" INIT 1 PUSHS "ACONST" INIT 1 PUSHS "ORRB" INIT 1 PUSHS "FMANY" INIT 1 PUSHS "OSTRING" INIT 1 PUSHS "FMLB" INIT 1 PUSHS "FMRB" INIT 1 PUSHS "FMOR" INIT 1 PUSHS "RANGERB" INIT 1 PUSHS "FSID" INIT 1 PUSHS "" INIT 1 PUSHS "" INIT 1 PUSHS "" INIT 1 PUSHS "" INIT 1 PUSHS "" INIT 1 PUSHS "%DUMMY" INIT 1 PUSHS "%DECL" INIT 1 PUSHS "%TYPE" INIT 1 PUSHS "%ZERO" INIT 1 PUSHS "%APPLY" INIT 1 PUSHS "%PROT" INIT 1 PUSHS "%SETPROT" INIT 1 PUSHS "%PTYPE" INIT 1 PUSHS "%GAPP" INIT 1 PUSHS "%LOCAL" INIT 1 PUSHS "%GUARD" INIT 1 PUSHS "%MCODE" INIT 1 PUSHS "%CDUMMY" INIT 1 PUSHS "%SETTYPE" INIT 1 PUSHS "%OPER" INIT 1 PUSHS "%PARAM" INIT 1 PUSHS "%BLOCK" INIT 1 PUSHS "%OTHER" INIT 1 PUSHS "%COMPILE" INIT 1 PUSHS "APP" INIT 1 PUSHS "BASEAPP" INIT 1 PUSHS "APP2" INIT 1 PUSHS "APP3" INIT 1 PUSHS "APP4" INIT 1 PUSHS "APP5" INIT 1 PUSHS "APP6" INIT 1 PUSHS "ADEFN" INIT 1 PUSHS "NPARM" INIT 1 PUSHS "SWDEF" INIT 1 PUSHS "SWIDS" INIT 1 PUSHS "CIEXP" INIT 1 PUSHS "RCONST" INIT 1 PUSHS "SCONST" INIT 1 PUSHS "ARRAYP" INIT 1 PUSHS "XIMP" INIT 1 PUSHS "IMP" INIT 1 PUSHS "COND" INIT 1 PUSHS "SCOND" INIT 1 PUSHS "EXP1" INIT 1 PUSHS "EXP2" INIT 1 PUSHS "SEXP" INIT 1 PUSHS "IEXP" INIT 1 PUSHS "IEXP1" INIT 1 PUSHS "IEXP2" INIT 1 PUSHS "ISEXP" INIT 1 PUSHS "SEQ" INIT 1 PUSHS "FDEF" INIT 1 PUSHS "EXP" INIT 1 PUSHS "NARRAYP" INIT 1 PUSHS "STRUCT" INIT 1 PUSHS "RESEXP" INIT 1 PUSHS "BPL" INIT 1 PUSHS "CONSTB" INIT 1 PUSHS "FITEM" INIT 1 PUSHS "MOREA" INIT 1 PUSHS "CLIST" INIT 1 PUSHS "FPP" INIT 1 PUSHS "FPP0" INIT 1 PUSHS "FPP1" INIT 1 PUSHS "FPP2" INIT 1 PUSHS "INITVAR" INIT 1 PUSHS "RECEXP" INIT 1 PUSHS "EIMP" INIT 1 PUSHS "IDENTS" INIT 1 PUSHS "RANGE" INIT 1 PUSHS "RCONSTB" INIT 1 PUSHS "VARP" INIT 1 PUSHS "INITDEC" INIT 1 PUSHS "" INIT 1 PUSHS "" INIT 1 PUSHS "" INIT 1 PUSHS "ESCDEC" INIT 1 PUSHS "ESCPROC" INIT 1 PUSHS "ESCARRAY" INIT 1 PUSHS "ESCREC" INIT 1 #line 276 // 233 "Z","VDEC","OWNVDEC","EXTVSPEC","ADEC","OWNADEC", // 234 "EXTASPEC","PROC","PROCSPEC","FORMDEC","SWDEC","LDEC", // 235 "FORMSPEC","","","","","", // 236 "OPTION","COMMA","T","COLON","COMMENT","LB", // 237 "ALIAS","RB","SUB","ARRAYD","STYPE","ARRAY", // 238 "NAME","PROCD","FNMAP","SWITCH","OWN","EXTERNAL", // 239 "STRING","RECORD","FORMAT","SPEC","MCODE","LABEL", // 240 "OP1","OP2","OP3","SIGN","UOP","MOD", // 241 "DOT","COMP","ACOMP","EQ","EQEQ","JAM", // 242 "JUMP","RESOP","AND","OR","NOT","WHILE", // 243 "UNTIL","FOR","CWORD","EXIT","ON","SIGNAL", // 244 "THEN","START","ELSE","FINISH","FELSE","CYCLE", // 245 "REPEAT","PROGRAM","BEGIN","END","ENDPROG","ENDPERM", // 246 "FRESULT","MRESULT","BACK","MONITOR","STOP","LIST", // 247 "REALSLN","CONTROL","INCLUDE","MASS","RTYPE","ADDOP", // 248 "IDENT","V","N","CONST","FM","", // 249 "R","F","M","P","RP","FP", // 250 "MP","PP","L","S","A","AN", // 251 "NA","NAN","","","","", // 252 "","","","","","", // 253 "%MSTART","%CLEAR","%PRED","","%DUBIOUS","%DUP", // 254 "%PIN","%POUT","%EDUP","","PIDENT","CIDENT", // 255 "OIDENT","FNAME","SWID","DOTL","DOTR","ASEP", // 256 "CSEP","OSEP","PSEP","ARB","BPLRB","ORB", // 257 "PRB","CRB","RCRB","RECRB","RECLB","LAB", // 258 "MLAB","SLAB","XNAME","OWNT","DBSEP","PCONST", // 259 "CMOD","CSIGN","CUOP","COP1","COP2","COP3", // 260 "INDEF","XELSE","CRESOP","NLAB","RUNTIL","ACONST", // 261 "ORRB","FMANY","OSTRING","FMLB","FMRB","FMOR", // 262 "RANGERB","FSID","","","","", // 263 "","%DUMMY","%DECL","%TYPE","%ZERO","%APPLY", // 264 "%PROT","%SETPROT","%PTYPE","%GAPP","%LOCAL","%GUARD", // 265 "%MCODE","%CDUMMY","%SETTYPE","%OPER","%PARAM","%BLOCK", // 266 "%OTHER","%COMPILE","APP","BASEAPP","APP2","APP3", // 267 "APP4","APP5","APP6","ADEFN","NPARM","SWDEF", // 268 "SWIDS","CIEXP","RCONST","SCONST","ARRAYP","XIMP", // 269 "IMP","COND","SCOND","EXP1","EXP2","SEXP", // 270 "IEXP","IEXP1","IEXP2","ISEXP","SEQ","FDEF", // 271 "EXP","NARRAYP","STRUCT","RESEXP","BPL","CONSTB", // 272 "FITEM","MOREA","CLIST","FPP","FPP0","FPP1", // 273 "FPP2","INITVAR","RECEXP","EIMP","IDENTS","RANGE", // 274 "RCONSTB","VARP","INITDEC","","","", // 275 "ESCDEC","ESCPROC","ESCARRAY","ESCREC" // 276 %constinteger gmax1=719 #line 277 // 277 %owninteger gmax=719 static int gmax ; INIT 1 #line 278 // 278 %constinteger imp phrase =25 #line 280 // 279 // 280 %ownintegerarray phrase(200:255) = %C BOUNDS {NOT IMPLEMENTED YET} static int *phrase ; INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 #line 289 // 281 0, 564, 565, 567, 569, 571, 573, 562, // 282 614, 203, 200, 602, 478, 480, 624, 298, // 283 206, 308, 318, 433, 426, 437, 444, 458, // 284 453, 461, 467, 482, 402, 627, 629, 603, // 285 521, 511, 486, 502, 575, 527, 528, 543, // 286 550, 578, 397, 287, 197, 636, 516, 621, // 287 167, 0, 0, 0, 640, 693, 701, 709 // 288 // 289 %constbyteintegerarray atomic(130:179) = %c BOUNDS {NOT IMPLEMENTED YET} const char int *atomic {ind obj} ; INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 #line 299 // 290 90, 90, 90, 90, 90, 48, 48, 19, // 291 19, 19, 19, 25, 25, 25, 25, 25, // 292 25, 25, 23, 104, 104, 105, 30, 20, // 293 21, 93, 47, 45, 46, 42, 43, 44, // 294 40, 68, 55, 104, 60, 93, 25, 40, // 295 93, 23, 25, 57, 25, 90, 176, 177, // 296 178, 179 // 297 // 298 ! FLAG<1> 0<1> SS<2> 0<3> T<1> LINK<8> // 299 %constintegerarray initial(0:119) = %c BOUNDS {NOT IMPLEMENTED YET} const int *initial {ind obj} ; INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 #line 317 // 300 24, 0, 0, 0, 0, 0, 0, 0, // 301 0, 0, 0, 0, 0, 0, 0, 0, // 302 0, 0, 23, 0, 0, 0, 0, 0, // 303 0, 0, 0, 0, 0, 0, 0, 0, // 304 0, 0, 0, 0, 0, 0, 0, 0, // 305 20, 0, 0, 0, 0, 0, 0, 0, // 306 0, 0, 0, 0, 0, 0, -32551, 0, // 307 0, 0, 0, 13, 0, 14, 4, -32557, // 308 16, -32550, 0, 0, 5, 6, 3, 12, // 309 15, 8, 7, 9, 10, 11, -32558, -32554, // 310 -32559, -32552, -32553, 18, 22, 17, 21, 19, // 311 0, 0, 0, -32562, -32560, 0, 0, 0, // 312 -32561, 0, 0, 0, 0, 0, 0, 0, // 313 1, 2, 0, -32556, 0, -32555, 0, 0, // 314 0, 0, 0, 0, 0, 0, 0, 0 // 315 // 316 ! MORE<1> 0<1> ORDER<2> TYPE<4> CLASS<8> // 317 %ownintegerarray gram(0:max grammar) = %c BOUNDS {NOT IMPLEMENTED YET} static int *gram ; INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 #line 460 // 318 0, -28523, -28521, -28602, -32706, -28509, -28603, -24502, // 319 -24503, -20405, -20404, -28595, -32697, -32709, -16323, -28600, // 320 -32704, -28587, -28589, -32681, -16344, -28586, -28588, -12270, // 321 -32586, 216, -12287, -16380, -8185, -8184, -12285, -12286, // 322 -12283, -12282, -12279, -12276, -16373, 20490, -32706, -32701, // 323 216, -16364, -28610, -28613, -28612, 16445, 217, -16364, // 324 62, -32701, 16450, -16364, 5346, -16364, 166, -16344, // 325 4332, 130, -16360, -16361, 126, 217, -32701, 216, // 326 -16364, 16450, -32700, 16404, -32701, -32706, 216, 16405, // 327 16407, -16222, 8414, 130, 217, -32697, 16450, 1250, // 328 4307, 4318, 192, 93, 170, 90, 207, -16365, // 329 16404, 90, -16360, -16365, 16404, 241, -16365, 16404, // 330 132, 132, -16360, 4329, -16365, 16404, 133, 175, // 331 90, -16365, 16404, 209, -16365, 16404, 4313, 217, // 332 16451, 4263, 16384, 16384, 120, 216, -32700, 16404, // 333 -32706, 16404, 243, 16409, 454, -32685, 16404, 454, // 334 248, -16365, 16404, 4263, 194, -16360, 4329, -32717, // 335 16404, 4263, 16407, 454, 237, 127, 215, 454, // 336 4263, 16384, -16364, 1502, -32629, -16361, 153, -32606, // 337 222, 143, -32629, 153, 454, 126, 16409, 454, // 338 16384, 234, -16365, -32595, 147, -32678, 234, 193, // 339 -32677, -32676, -32661, 109, -32717, 53, 52, 52, // 340 52, 194, 194, 194, -28581, 4188, 194, -28566, // 341 4203, 194, -28564, 4205, 4580, 16429, 183, 183, // 342 186, 186, -28583, 0, 9437, 90, -16365, 0, // 343 134, -16365, 0, 210, 4329, 199, -32677, -32672, // 344 -32676, -32688, -32690, -32705, -32661, -32659, -32689, -32686, // 345 -32687, -16330, 65, -32716, 186, -28583, -32717, -32715, // 346 -32713, 52, -32664, 4201, 186, -32717, -32715, 55, // 347 -16328, 0, 197, 197, 52, 52, 197, -28581, // 348 -28580, 186, -28581, 4188, 4318, 194, -28581, 4188, // 349 9437, 194, 194, 454, 16407, 216, 194, -28566, // 350 -28565, 186, -28566, 4203, 194, -28564, -28563, 186, // 351 -28564, 4205, 183, 183, 186, 183, -16365, 0, // 352 183, 4580, 16429, 5095, 9444, 5348, 186, -28583, // 353 -16328, 0, 16409, -16365, 0, 9437, 5348, 217, // 354 -32701, 16450, -32701, 216, -32700, 0, -32701, -32706, // 355 216, 243, 217, -16318, 0, -32552, 0, -32700, // 356 0, -32706, 0, 215, -32550, 228, -28616, -28615, // 357 0, 4096, 218, 218, -28616, 0, -32677, -32676, // 358 -16361, -32710, -32669, -32662, -32661, -32660, -32659, 740, // 359 -32039, 740, -32719, 4096, 194, -32719, -32718, -32604, // 360 -32726, -32725, -32724, -32720, 4096, 710, 6116, -32719, // 361 0, 710, 6116, -28581, 4188, 218, 122, 50, // 362 16409, -32726, -32725, -32724, -32719, 4096, 710, 454, // 363 195, 195, 195, 454, -28581, 4188, 194, -28566, // 364 -28565, -28564, 4205, 195, 195, 195, 710, 4836, // 365 5095, 4829, -32726, -32725, -32724, -32719, 4096, 4827, // 366 4828, 454, -32720, -32719, 4096, 4829, 4827, 4828, // 367 194, -32719, 0, 710, 4836, -16291, -32677, 92, // 368 184, 121, -28581, -28580, -32722, -32723, 4317, -32726, // 369 -32725, -32724, 0, 183, -32726, -32725, -32724, -32720, // 370 0, 4316, 195, 195, 195, 454, -28581, 4188, // 371 4315, 183, 4317, -32726, -32725, 0, 195, 195, // 372 4315, 4317, -32726, 0, 195, -32677, -32676, -16361, // 373 16431, 228, 228, 47, -32610, -32611, 5345, -32609, // 374 -32608, -32607, 0, 4320, 4319, 5345, -32609, -32608, // 375 0, 4319, 5345, -32609, 0, -32613, -16361, 16431, // 376 222, 222, 156, -32677, 92, 183, 186, 1222, // 377 16435, 228, 16403, 4324, 138, 8420, -32723, 4189, // 378 93, 454, 148, -32674, 16546, 16409, -32597, 182, // 379 -16383, 16388, 234, -16365, -32595, 172, -32678, 234, // 380 90, 244, 246, -16365, 0, 235, -32678, 234, // 381 -16365, 246, -16365, 0, -32678, 234, 90, 16407, // 382 222, 16405, 222, 145, 16407, 222, 16405, 222, // 383 146, 16407, 1252, 154, 5348, -16365, 142, 126, // 384 182, -16383, 16391, 90, -16365, 127, -32678, 238, // 385 90, 125, 239, -16365, 8319, 8430, 128, 126, // 386 -16361, 127, 190, 240, 189, 16409, 182, -16383, // 387 16391, 90, -16365, 0, -32678, 240, 90, 16623, // 388 -16365, 0, 244, 232, 1252, 1252, 137, 1252, // 389 137, 1252, 137, 1252, 137, 1252, 137, 222, // 390 -16365, 0, 131, 194, -16360, -16333, -16332, 124, // 391 181, -16292, -16277, 16493, -31802, 5342, -28581, 4188, // 392 4263, 181, 186, 454, 16475, 183, -28583, 199, // 393 5598, 9438, 222, -32677, -32676, 16407, 186, 228, // 394 135, 16409, -32632, 0, -32677, 92, -32677, -32676, // 395 -32662, -32661, -32660, -32659, 165, -32677, 92, 188, // 396 -32662, 107, 188, -32660, 109, -32732, 37, -16344, // 397 4318, 148, -32674, 16424, 222, 16405, 222, 174, // 398 -28644, -32734, -32680, -28641, -32733, -32730, -32735, -32727, // 399 -32738, 4326, -32738, -32739, -32741, -32736, 199, -28644, // 400 -32680, -28641, 4326, -32739, -32741, 199, -32738, -32739, // 401 -32741, -32736, -32729, 199, -32616, 199, -32739, -32741, // 402 -32729, 199, -32616, -32729, 199, -28644, -32680, 4326, // 403 -32738, -32739, -32741, 199, 245, 4318, 245, 16409, // 404 152, 4318, 16409, 152, 245, -32672, -32671, -32670, // 405 99, 16407, 200, 144, 185, -32677, 92, 16407, // 406 -32582, 200, 200, 187, 141, -32677, 92, 16410, // 407 191, -32677, -32676, -32662, -32661, -32660, 109, 198, // 408 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 409 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 410 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 411 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 412 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 413 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 414 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 415 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 416 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 417 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 418 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 419 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 420 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 421 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 422 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 423 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 424 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 425 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 426 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 427 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 428 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 429 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 430 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 431 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 432 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 433 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 434 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 435 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 436 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 437 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 438 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 439 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 440 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 441 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 442 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 443 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 444 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 445 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 446 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 447 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 448 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 449 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 450 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 451 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 452 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 453 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 454 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 455 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 456 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 457 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 458 0 // 459 // 460 %ownintegerarray glink(0:max grammar) = %c BOUNDS {NOT IMPLEMENTED YET} static int *glink ; INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 #line 603 // 461 -1, 71, 72, 38, 46, 47, 67, 67, // 462 75, 67, 0, 67, 51, 76, 79, 53, // 463 55, 80, 67, 81, 82, 83, 67, 84, // 464 26, 41, 85, 86, 57, 57, 89, 93, // 465 96, 97, 102, 103, 104, 107, 46, 67, // 466 67, 0, 110, 110, 111, 52, 49, 0, // 467 61, 67, 62, 0, 67, 0, 111, 112, // 468 112, 58, 113, 114, 115, 64, 67, 66, // 469 116, 117, 68, 0, 67, 122, 67, 0, // 470 73, 123, 123, 67, 77, 67, 40, 77, // 471 67, 67, 0, 124, 127, 128, 87, 86, // 472 0, 90, 131, 89, 0, 94, 93, 0, // 473 132, 98, 137, 100, 97, 0, 138, 67, // 474 105, 104, 0, 108, 107, 0, 67, 67, // 475 67, 139, 140, 141, 0, 118, 120, 116, // 476 142, 116, 67, 71, 125, 67, 0, 67, // 477 129, 85, 0, 143, 133, 144, 135, 145, // 478 0, 156, 157, 59, 158, 67, 119, 91, // 479 159, 146, 145, 148, 146, 151, 0, 153, // 480 153, 154, 146, 0, 99, 160, 67, 134, // 481 161, 162, 165, 161, 141, 162, 162, 168, // 482 172, 174, 175, 176, 177, 178, 179, 182, // 483 185, 188, 189, 180, 190, 190, 183, 191, // 484 191, 186, 191, 191, 0, 188, 192, 193, // 485 194, 0, 196, 0, 0, 198, 197, 0, // 486 201, 200, 0, 204, 205, 0, 228, 232, // 487 219, 234, 235, 0, 236, 237, 238, 0, // 488 232, 226, 244, 245, 221, 248, 249, 250, // 489 251, 245, 0, 252, 229, 249, 250, 251, // 490 253, 0, 0, 188, 254, 260, 239, 269, // 491 269, 242, 191, 191, 270, 246, 272, 272, // 492 229, 273, 274, 275, 276, 0, 255, 266, // 493 266, 258, 267, 267, 261, 266, 266, 264, // 494 267, 267, 232, 268, 232, 0, 277, 0, // 495 278, 232, 273, 232, 282, 283, 279, 285, // 496 253, 0, 0, 286, 0, 232, 0, 288, // 497 0, 290, 0, 292, 294, 0, 0, 297, // 498 0, 0, 299, 301, 0, 303, 0, 305, // 499 0, 307, 0, 0, 310, 313, 314, 315, // 500 0, 0, 316, 311, 314, 0, 332, 332, // 501 328, 349, 350, 351, 351, 351, 351, 330, // 502 282, 352, 358, 0, 333, 341, 347, 359, // 503 360, 361, 362, 363, 0, 342, 343, 345, // 504 0, 346, 0, 269, 269, 0, 0, 366, // 505 353, 371, 372, 373, 374, 0, 375, 376, // 506 377, 383, 384, 364, 385, 385, 367, 269, // 507 269, 269, 269, 389, 390, 391, 392, 393, // 508 0, 378, 360, 361, 362, 341, 0, 379, // 509 380, 386, 363, 341, 0, 353, 354, 355, // 510 375, 395, 0, 396, 0, 400, 269, 269, // 511 401, 0, 411, 411, 406, 417, 407, 418, // 512 419, 420, 0, 412, 418, 419, 420, 421, // 513 0, 409, 406, 424, 417, 422, 425, 425, // 514 408, 415, 427, 430, 431, 0, 426, 432, // 515 428, 434, 436, 0, 433, 269, 269, 441, // 516 442, 282, 443, 0, 446, 451, 447, 446, // 517 452, 451, 0, 449, 448, 454, 453, 457, // 518 0, 455, 459, 458, 0, 269, 464, 465, // 519 282, 466, 0, 469, 469, 470, 471, 472, // 520 473, 474, 475, 476, 477, 0, 479, 269, // 521 481, 0, 483, 485, 485, 205, 490, 488, // 522 496, 497, 491, 494, 490, 0, 491, 491, // 523 0, 498, 499, 501, 0, 0, 504, 506, // 524 510, 499, 508, 0, 506, 506, 504, 512, // 525 513, 514, 515, 0, 517, 518, 519, 520, // 526 0, 522, 523, 524, 525, 522, 0, 528, // 527 529, 531, 536, 532, 534, 0, 532, 0, // 528 537, 538, 539, 541, 542, 542, 0, 544, // 529 546, 0, 547, 548, 549, 533, 551, 553, // 530 558, 554, 556, 0, 554, 0, 559, 560, // 531 557, 0, 563, 205, 0, 566, 564, 568, // 532 565, 570, 567, 572, 569, 574, 571, 576, // 533 575, 0, 579, 580, 592, 593, 584, 205, // 534 585, 588, 588, 588, 590, 205, 594, 594, // 535 595, 596, 597, 581, 600, 598, 601, 0, // 536 205, 205, 205, 606, 606, 607, 608, 609, // 537 605, 610, 612, 0, 193, 193, 193, 193, // 538 193, 193, 193, 193, 0, 623, 623, 192, // 539 626, 626, 0, 626, 626, 631, 633, 282, // 540 282, 634, 282, 282, 637, 638, 639, 0, // 541 650, 677, 684, 666, 655, 205, 205, 205, // 542 205, 650, 659, 668, 685, 666, 0, 662, // 543 686, 666, 662, 668, 685, 0, 670, 674, // 544 689, 666, 205, 0, 205, 0, 674, 689, // 545 205, 0, 666, 205, 0, 680, 692, 680, // 546 659, 668, 685, 0, 650, 687, 662, 688, // 547 205, 690, 691, 666, 680, 697, 697, 697, // 548 697, 698, 699, 700, 0, 703, 703, 704, // 549 706, 707, 708, 708, 700, 711, 711, 712, // 550 713, 719, 719, 719, 719, 719, 719, 0, // 551 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 552 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 553 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 554 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 555 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 556 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 557 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 558 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 559 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 560 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 561 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 562 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 563 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 564 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 565 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 566 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 567 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 568 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 569 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 570 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 571 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 572 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 573 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 574 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 575 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 576 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 577 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 578 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 579 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 580 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 581 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 582 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 583 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 584 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 585 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 586 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 587 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 588 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 589 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 590 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 591 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 592 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 593 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 594 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 595 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 596 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 597 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 598 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 599 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 600 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 601 0 // 602 // 603 %constintegerarray kdict(32:607) = %c BOUNDS {NOT IMPLEMENTED YET} const int *kdict {ind obj} ; INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 #line 679 // 604 0, 511, 131, 531, 131, 551, 559, 131, // 605 567, 575, 583, 603, 623, 631, 663, 671, // 606 129, 129, 129, 129, 129, 129, 129, 129, // 607 129, 129, 691, 698, 707, 751, 795, 131, // 608 131, 824, 900, 960, 1076, 1120, 1280, 128, // 609 128, 1392, 128, 128, 1460, 1556, 1592, 1660, // 610 1748, 128, 1828, 2044, 2240, 2272, 128, 2312, // 611 128, 128, 128, 2331, 2339, 2371, 2379, 2399, // 612 131, 131, 131, 131, 131, 131, 131, 131, // 613 131, 131, 131, 131, 131, 131, 131, 131, // 614 131, 131, 131, 131, 131, 131, 131, 131, // 615 131, 131, 131, 131, 2407, 131, 2379, -32351, // 616 16428, 25, 16428, 29, -32349, 16433, 1, 16434, // 617 1, -16127, 0, 16427, 21, 16407, 0, 16409, // 618 0, -32323, -10840, 40, 16471, 0, -32341, -10580, // 619 32, 16473, 117, 16384, 19, -31955, -32322, -10580, // 620 36, -9290, 0, 16473, 113, 16432, 13, -32337, // 621 16427, 46, 16427, 17, 16405, 0, 16404, 0, // 622 -31556, -31939, -32322, -9551, 2, 16433, 1, 16433, // 623 5, 16426, 5, -31606, -32323, -9807, 0, -32374, // 624 -9678, 0, 16436, 0, 16435, 0, -31939, -32322, // 625 16433, 4, 16426, 9, 16433, 3, -30772, -31666, // 626 10578, 11457, -32344, 16413, 2, 16411, 2, 68, // 627 -32374, 16440, 0, 16440, 0, 8393, 83, 16408, // 628 0, -31291, 10841, 69, -32311, 16412, 18, 10830, // 629 9157, 10565, 16412, 18, 9415, 78, 16458, 0, // 630 -32049, 8665, 8908, 16455, 0, -30131, 78, -31277, // 631 84, -32055, 10194, 76, 16469, 0, 10958, 69, // 632 16447, 32, 84, -32319, 16418, 2, 10830, 16418, // 633 2, 8909, 10830, 16406, 0, -31927, 10073, 9921, // 634 8649, 16419, 5, 9153, 10190, 8915, 16469, 1, // 635 -27956, -31282, 88, -31927, 8916, 10066, 9793, 16419, // 636 3, 84, 16447, 4, 68, -32305, 16459, 2, // 637 70, -30650, -31284, 80, -31931, 10194, 10567, 9921, // 638 16460, 1, 9938, 16461, 0, 10697, 84, 16467, // 639 3, 9801, 69, 16460, 0, 8915, 16452, 0, // 640 -29631, -30903, -31282, -31793, 10069, 10819, 10185, 78, // 641 16416, 9, 82, 16445, 0, 16416, 9, 9422, // 642 9299, -32315, 16453, 0, 10700, 69, 16454, 0, // 643 10700, 69, 16464, 1210, -30778, 78, -31549, 8916, // 644 8903, 82, -32344, 16412, 17, 16472, 17, 10956, // 645 8900, 16470, 0, 16446, 44, -30143, -30647, 10063, // 646 71, -31671, -32302, 16412, 20, 8389, 76, 16412, // 647 36, 10830, 9157, 10565, 16412, 20, 10835, 16467, // 648 1, 8898, 76, 16425, 6, -31935, 10063, 10825, // 649 10575, 16465, 109, 80, 16416, 10, -32191, 10831, // 650 16442, 0, 8909, -32314, 16414, 1, -31794, 10069, // 651 10819, 10185, 78, 16416, 10, 16416, 10, -30770, // 652 -31408, -32174, 10071, 16418, 1, -32374, 16441, 2, // 653 16441, 2, 9428, 10063, 16402, 0, -32315, 16448, // 654 0, 8918, 10830, 16448, 0, -30523, 82, -31419, // 655 -31927, 9167, 8402, 77, 16457, 0, 77, 16419, // 656 6, 9412, 8387, 8916, 16415, 123, 9938, 16419, // 657 7, -31931, 10959, 9428, 8910, 16415, 104, -28351, // 658 -30397, -31024, -32045, 10964, 10066, 16464, 1319, 9813, // 659 7892, -32323, 16462, 1384, 16463, 1241, 8389, 84, // 660 16456, 0, 10575, 68, -32314, 16421, 64, 10575, // 661 8397, 84, -32301, 16422, 9, 8912, 67, 16422, // 662 12, 76, -32301, 16412, 33, -31924, 10190, 9938, // 663 9793, 16468, 1, 10063, 71, 16468, 4, -27704, // 664 -28983, -29488, -31276, -31913, 10713, 8916, 77, 16419, // 665 4, 10825, 9283, 16417, 12, -31423, -31921, 9426, // 666 9166, 40, 16420, 48, 80, 16466, 115, 10834, // 667 16451, 0, 8645, 16423, 0, 10055, 9793, -32315, // 668 16449, 0, 8918, 10830, 16449, 0, 10575, 84, // 669 -32311, 16412, 19, 10830, 9157, 10565, 16412, 19, // 670 -32056, 10962, 69, 16464, 1354, 10053, 16450, 0, // 671 78, -32052, 9428, 76, 16444, 182, 10693, 83, // 672 16446, 46, 9416, 8908, 16443, 180, 16407, 0, // 673 -31939, -32292, -10454, 51, 16426, 13, 16433, 1, // 674 16409, 0, -32290, -10454, 51, 16426, 13, 16410, // 675 0, 16431, 14, -32323, 16430, 51, 16433, 1 // 676 ! %list // 677 !*** end of generated tables *** // 678 // 679 %ROUTINE flush buffer goto L_0001 /* GOTO */; void flushbuffer ; () #line 680 // 680 %INTEGER j int j ; #line 681 // 681 %IF faulty = 0 %START if (pop() != pop()) goto L_0002; #line 682 // 682 select output(object) ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 683 // 683 %FOR j = 1, 1, bp %CYCLE for_initial[0] = pop(); for_final[0] = pop(); for_increment[0] = pop(); for_control[0] = pop(); *for_control[0] = for_initial[0]; if (*for_control_nest_level == for_final[0]) goto L_0004; L_0003: *for_control[0] += for_increment[0]; #line 684 // 684 printsymbol(buff(j)) ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 685 // 685 %REPEAT goto L_0003 /* end of for loop and others? */; L_0004: #line 686 // 686 select output(listing) ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 687 // 687 %FINISH L_0002: #line 688 // 688 bp = 0 /*%own*/ bp = 0; #line 689 // 689 %END return(0); } L_0001: #line 691 // 690 // 691 %ROUTINE print ident(%INTEGER p, mode) goto L_0001 /* GOTO */; void printident ; ( int p ; int mode ; ) #line 693 // 692 // 693 %ROUTINE putit(%INTEGER ch) goto L_0001 /* GOTO */; void putit ; ( int ch ; ) #line 694 // 694 %IF mode = 0 %THEN %START if (pop() != pop()) goto L_0005; #line 695 // 695 printsymbol(ch) ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 696 // 696 %ELSE goto L_0006 /* GOTO */; L_0005: #line 697 // 697 bp = bp+1 /*%own*/ bp = (bp + 1); #line 698 // 698 buff(bp) = ch %byte buff [bp ] = ch ; #line 699 // 699 %FINISH L_0006: #line 700 // 700 %END L_0001: #line 702 // 701 // 702 %INTEGER k, l int k ; int l ; #line 703 // 703 p = tag(p)_text SELECT V_0005 p = %record {TAGFM} tag [p ]; #line 704 // 704 %IF p = 0 %START if (pop() != pop()) goto L_0007; #line 705 // 705 putit('?') ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 706 // 706 %RETURN RETURN {NOT IMPLEMENTED YET} #line 707 // 707 %FINISH L_0007: #line 708 // 708 p = p+1; ! advance to name string p = (p + 1); #line 709 // 709 k = dict(p) k = dict [p ]; #line 710 // 710 l = k & 255; ! length l = (255 & k ); #line 711 // 711 %WHILE l > 0 %CYCLE L_0006: if (pop() <= pop()) goto L_0008; #line 712 // 712 putit(k>>8) ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 713 // 713 l = l-1 l = (l - 1); #line 714 // 714 p = p+1 p = (p + 1); #line 715 // 715 k = dict(p) k = dict [p ]; #line 716 // 716 %EXIT %IF l = 0 if (pop() != pop()) goto L_0009; goto L_0008 /* GOTO */; L_0009: #line 717 // 717 putit(k&255) ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 718 // 718 l = l-1 l = (l - 1); #line 719 // 719 %REPEAT goto L_0006 /* end of for loop and others? */; L_0008: #line 720 // 720 %END L_0001: #line 721 // 721 %ROUTINE abandon(%INTEGER n) goto L_0001 /* GOTO */; void abandon ; ( int n ; ) #line 722 // 722 %SWITCH reason(0:9) BOUNDS {NOT IMPLEMENTED YET} %switch reason ; #line 723 // 723 %INTEGER stream int stream ; #line 724 // 724 stream = listing stream = 2; #line 725 // 725 %CYCLE L_000a: #line 726 // 726 newline %IF sym # nl if (pop() == pop()) goto L_000b; *(pop())() /* CALL */; L_000b: #line 727 // 727 printsymbol('*'); write(lines,4); space ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 727 ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 727 *(pop())() /* CALL */; #line 728 // 728 ->reason(n) ->SJUMP(129) #line 729 // 729 reason(0):printstring("compiler error!"); ->more SLABEL(129): #line 729 PUSHS "compiler error!" ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 729 goto L_000c /* JUMP */; #line 730 // 730 reason(1):printstring("switch vector too large"); ->more SLABEL(129): #line 730 PUSHS "switch vector too large" ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 730 goto L_000c /* JUMP */; #line 731 // 731 reason(2):printstring("too many names"); ->more SLABEL(129): #line 731 PUSHS "too many names" ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 731 goto L_000c /* JUMP */; #line 732 // 732 reason(3):printstring("program too complex"); ->more SLABEL(129): #line 732 PUSHS "program too complex" ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 732 goto L_000c /* JUMP */; #line 733 // 733 reason(4):printstring("feature not implemented"); ->more SLABEL(129): #line 733 PUSHS "feature not implemented" ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 733 goto L_000c /* JUMP */; #line 734 // 734 reason(5):printstring("input ended: ") SLABEL(129): #line 734 PUSHS "input ended: " ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 735 // 735 %IF quote # 0 %START if (pop() == pop()) goto L_000d; #line 736 // 736 %IF quote < 0 %THEN printsymbol(cquote) %C if (pop() >= pop()) goto L_000e; ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; goto L_000f /* GOTO */; L_000e: ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; L_000f: #line 738 // 737 %ELSE printsymbol(squote) // 738 %ELSE goto L_0010 /* GOTO */; L_000d: #line 739 // 739 printstring("%endof") PUSHS "%endof" ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 740 // 740 %IF progmode >= 0 %THEN printstring("program") %C if (pop() < pop()) goto L_0011; PUSHS "program" ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; goto L_000f /* GOTO */; L_0011: PUSHS "file" ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; L_000f: #line 742 // 741 %ELSE printstring("file") // 742 %FINISH L_0010: #line 743 // 743 printstring(" missing?"); ->more PUSHS " missing?" ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 743 goto L_000c /* JUMP */; #line 744 // 744 reason(6):printstring("too many faults!"); ->more SLABEL(129): #line 744 PUSHS "too many faults!" ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 744 goto L_000c /* JUMP */; #line 745 // 745 reason(7):printstring("string constant too long"); ->more SLABEL(129): #line 745 PUSHS "string constant too long" ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 745 goto L_000c /* JUMP */; #line 746 // 746 reason(8):printstring("dictionary full"); -> more SLABEL(129): #line 746 PUSHS "dictionary full" ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 746 goto L_000c /* JUMP */; #line 747 // 747 reason(9):printstring("Included file ".include file." does not exist") SLABEL(129): #line 747 PUSHS "Included file " CONCAT {NOT IMPLEMENTED YET} PUSHS " does not exist" CONCAT {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 748 // 748 more: newline L_000c: #line 748 *(pop())() /* CALL */; #line 749 // 749 printstring("*** compilation abandoned ***"); newline PUSHS "*** compilation abandoned ***" ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 749 *(pop())() /* CALL */; #line 750 // 750 %EXIT %IF stream = report if (pop() != pop()) goto L_0012; goto L_0013 /* GOTO */; L_0012: #line 751 // 751 close output *(pop())() /* CALL */; #line 752 // 752 stream = report stream = 0; #line 753 // 753 select output(report) ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 754 // 754 %REPEAT goto L_000a /* end of for loop and others? */; L_0013: #line 756 // 755 !%SIGNAL 15,15 %IF diag&4096 # 0 // 756 %STOP STOP {NOT IMPLEMENTED YET} #line 757 // 757 %END L_0001: #line 758 // 758 %ROUTINE op(%INTEGER code, param) goto L_0001 /* GOTO */; void op ; ( int code ; int param ; ) #line 759 // 759 buff(bp+1) = code %byte buff [(bp + 1)] = code ; #line 760 // 760 buff(bp+2) = param>>8 %byte buff [(bp + 2)] = (param >> 8); #line 761 // 761 buff(bp+3) = param %byte buff [(bp + 3)] = param ; #line 762 // 762 bp = bp+3 /*%own*/ bp = (bp + 3); #line 763 // 763 %END L_0001: #line 764 // 764 %ROUTINE set const(%INTEGER m) goto L_0001 /* GOTO */; void setconst ; ( int m ; ) #line 765 // 765 buff(bp+1) = 'N' %byte buff [(bp + 1)] = 78; #line 766 // 766 buff(bp+5) = m; m = m>>8 %byte buff [(bp + 5)] = m ; #line 766 m = (m >> 8); #line 767 // 767 buff(bp+4) = m; m = m>>8 %byte buff [(bp + 4)] = m ; #line 767 m = (m >> 8); #line 768 // 768 buff(bp+3) = m; m = m>>8 %byte buff [(bp + 3)] = m ; #line 768 m = (m >> 8); #line 769 // 769 buff(bp+2) = m %byte buff [(bp + 2)] = m ; #line 770 // 770 bp = bp+5 /*%own*/ bp = (bp + 5); #line 771 // 771 %END L_0001: #line 775 // 772 // 773 // 774 // 775 %ROUTINE compile block(%INTEGER level, block tag, dmin, tmax, id) goto L_0001 /* GOTO */; void compileblock ; ( int level ; int blocktag ; int dmin ; int tmax ; int id ; ) #line 777 // 776 // 777 %INTEGERFNSPEC gapp int gapp {ind obj} ; () #line 778 // 778 %ROUTINESPEC delete names(%INTEGER quiet) void deletenames ; ( int quiet ; ) #line 779 // 779 %ROUTINESPEC analyse void analyse ; () #line 780 // 780 %ROUTINESPEC compile void compile ; () #line 782 // 781 // 782 %INTEGER open; open = closed; !zero if can return from proc int open ; #line 782 open = 16384; #line 783 // 783 %INTEGER dbase; dbase = dmax; !dictionary base int dbase ; #line 783 dbase = dmax ; #line 784 // 784 %INTEGER tbase; tbase = tmax; !tag base int tbase ; #line 784 tbase = tmax ; #line 785 // 785 %INTEGER tstart; tstart = tmax int tstart ; #line 785 tstart = tmax ; #line 786 // 786 %INTEGER label; label = 4; !first internal label int label ; #line 786 label = 4; #line 787 // 787 %INTEGER access; access = 1; !non-zero if accessible int access ; #line 787 access = 1; #line 788 // 788 %INTEGER inhibit; inhibit = 0; !non-zero inhibits declaratons int inhibit ; #line 788 inhibit = 0; #line 790 // 789 // 790 %INTEGERNAME bflags; bflags == tag(block tag)_flags int int typecode, void *bflags ; #line 790 SELECT V_0003 /*%name*/ bflags = &%record {TAGFM} tag [blocktag ]; #line 791 // 791 %INTEGER block type; block type = bflags>>4&7 int blocktype ; #line 791 blocktype = (7 & (*bflags >> 4)); #line 792 // 792 %INTEGER block form; block form = bflags&15 int blockform ; #line 792 blockform = (15 & *bflags ); #line 793 // 793 %INTEGER block fm; block fm = tag(block tag)_format int blockfm ; #line 793 SELECT V_0002 blockfm = %record {TAGFM} tag [blocktag ]; #line 794 // 794 %INTEGER block otype; block otype = otype int blockotype ; #line 794 blockotype = otype ; #line 795 // 795 %INTEGERNAME block app; block app == tag(block tag)_app int int typecode, void *blockapp ; #line 795 SELECT V_0001 /*%name*/ blockapp = &%record {TAGFM} tag [blocktag ]; #line 797 // 796 // 797 %INTEGER l, new app int l ; int newapp ; #line 799 // 798 // 799 %ROUTINE fault(%INTEGER n) goto L_0001 /* GOTO */; void fault ; ( int n ; ) #line 804 // 800 // 801 ! -5 : -1 - warnings // 802 ! 1 : 22 - errors // 803 // 804 %SWITCH fm(-5:22) BOUNDS {NOT IMPLEMENTED YET} %switch fm ; #line 805 // 805 %INTEGER st int st ; #line 807 // 806 // 807 %ROUTINE print ss goto L_0001 /* GOTO */; void printss ; () #line 808 // 808 %INTEGER s, p int s ; int p ; #line 809 // 809 %RETURN %IF pos = 0 if (pop() != pop()) goto L_0013; RETURN {NOT IMPLEMENTED YET} L_0013: #line 810 // 810 space *(pop())() /* CALL */; #line 811 // 811 p = 1 p = 1; #line 812 // 812 %CYCLE L_0014: #line 813 // 813 printsymbol(marker) %IF p = pos1 if (pop() != pop()) goto L_0015; ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; L_0015: #line 814 // 814 %EXIT %IF p = pos if (pop() != pop()) goto L_0016; goto L_0013 /* GOTO */; L_0016: #line 815 // 815 s = char(p); p = p+1 s = %byte char [p ]; #line 815 p = (p + 1); #line 816 // 816 %EXIT %IF s = nl %OR (s='%' %AND p = pos) if (pop() == pop()) goto L_0017; if (pop() != pop()) goto L_0018; if (pop() != pop()) goto L_0018; L_0017: goto L_0013 /* GOTO */; L_0018: #line 817 // 817 %IF s < ' ' %START; !beware of tabs if (pop() >= pop()) goto L_0019; #line 818 // 818 %IF s = ff %THEN s = nl %ELSE s = ' ' if (pop() != pop()) goto L_001a; s = 10; goto L_000f /* GOTO */; L_001a: s = 32; L_000f: #line 819 // 819 %FINISH L_0019: #line 820 // 820 printsymbol(s) ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 821 // 821 %REPEAT goto L_0014 /* end of for loop and others? */; L_0013: #line 822 // 822 pos = 0 %IF list <= 0 if (pop() > pop()) goto L_0013; /*%own*/ pos = 0; L_0013: #line 823 // 823 %END L_0001: #line 825 // 824 // 825 pos1 = pos2 %IF pos2 > pos1 if (pop() <= pop()) goto L_0013; /*%own*/ pos1 = pos2 ; L_0013: #line 826 // 826 newline %IF sym # nl if (pop() == pop()) goto L_0013; *(pop())() /* CALL */; L_0013: #line 827 // 827 st = report st = 0; #line 828 // 828 st = listing %IF n = -3; !don't report unused on the console if (pop() != pop()) goto L_0013; st = 2; L_0013: #line 829 // 829 %cycle L_001b: #line 830 // 830 SELECT OUTPUT(st) ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 831 // 831 %if n < 0 %then printsymbol('?') %and pos1 = 0 %else printsymbol('*') if (pop() >= pop()) goto L_001c; ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; /*%own*/ pos1 = 0; goto L_0010 /* GOTO */; L_001c: ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; L_0010: #line 832 // 832 %if st # report %start if (pop() == pop()) goto L_001d; #line 833 // 833 %if list <= 0 %and pos1 # 0 %start if (pop() > pop()) goto L_001e; if (pop() == pop()) goto L_001e; #line 834 // 834 spaces(pos1+margin); PRINTSTRING(" ! ") ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 834 PUSHS " ! " ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 835 // 835 %finish L_001e: #line 836 // 836 %finish %else %start goto L_0010 /* GOTO */; L_001d: #line 837 // 837 PRINTSTRING(include file) %if include # 0 if (pop() == pop()) goto L_001f; ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; L_001f: #line 838 // 838 write(lines, 4); printsymbol(csym); space ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 838 ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 838 *(pop())() /* CALL */; #line 839 // 839 %finish L_0010: #line 840 // 840 ->fm(n) %if -5 <= n %AND n <= 22 if (pop() > pop()) goto L_0020; if (pop() > pop()) goto L_0020; ->SJUMP(157) L_0020: #line 841 // 841 PRINTSTRING("fault"); write(n, 2); ->ps PUSHS "fault" ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 841 ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 841 goto L_0021 /* JUMP */; #line 843 // 842 // 843 fm(-5):PRINTSTRING("Dubious statement"); dubious = 0; ->psd SLABEL(157): #line 843 PUSHS "Dubious statement" ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 843 /*%own*/ dubious = 0; #line 843 goto L_0022 /* JUMP */; #line 844 // 844 fm(-4):PRINTSTRING("Non-local") SLABEL(157): #line 844 PUSHS "Non-local" ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 845 // 845 pos1 = for warn; for warn = 0; ->ps /*%own*/ pos1 = forwarn ; #line 845 /*%own*/ forwarn = 0; #line 845 goto L_0021 /* JUMP */; #line 846 // 846 fm(-3):print ident(x, 0); PRINTSTRING(" unused"); ->nps SLABEL(157): #line 846 ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 846 PUSHS " unused" ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 846 goto L_0023 /* JUMP */; #line 847 // 847 fm(-2):PRINTSTRING("""}"""); ->miss SLABEL(157): #line 847 PUSHS "\"}\"" ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 847 goto L_0024 /* JUMP */; #line 848 // 848 fm(-1):PRINTSTRING("access"); ->psd SLABEL(157): #line 848 PUSHS "access" ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 848 goto L_0022 /* JUMP */; #line 850 // 849 // 850 fm(0): PRINTSTRING("form"); ->ps SLABEL(157): #line 850 PUSHS "form" ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 850 goto L_0021 /* JUMP */; #line 851 // 851 fm(1): PRINTSTRING("atom"); ->ps SLABEL(157): #line 851 PUSHS "atom" ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 851 goto L_0021 /* JUMP */; #line 852 // 852 fm(2): PRINTSTRING("not declared"); ->ps SLABEL(157): #line 852 PUSHS "not declared" ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 852 goto L_0021 /* JUMP */; #line 853 // 853 fm(3): PRINTSTRING("too complex"); ->ps SLABEL(157): #line 853 PUSHS "too complex" ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 853 goto L_0021 /* JUMP */; #line 854 // 854 fm(4): PRINTSTRING("duplicate "); Print Ident(x, 0); ->ps SLABEL(157): #line 854 PUSHS "duplicate " ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 854 ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 854 goto L_0021 /* JUMP */; #line 855 // 855 fm(5): PRINTSTRING("type"); ->ps SLABEL(157): #line 855 PUSHS "type" ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 855 goto L_0021 /* JUMP */; #line 856 // 856 fm(6): PRINTSTRING("match"); ->psd SLABEL(157): #line 856 PUSHS "match" ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 856 goto L_0022 /* JUMP */; #line 857 // 857 fm(7): PRINTSTRING("context"); ->psd SLABEL(157): #line 857 PUSHS "context" ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 857 goto L_0022 /* JUMP */; #line 858 // 858 fm(21):PRINTSTRING("context "); print ident(this, 0); ->ps SLABEL(157): #line 858 PUSHS "context " ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 858 ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 858 goto L_0021 /* JUMP */; #line 859 // 859 fm(8): PRINTSTRING("%cycle"); ->miss SLABEL(157): #line 859 PUSHS "%cycle" ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 859 goto L_0024 /* JUMP */; #line 860 // 860 fm(9): PRINTSTRING("%start"); ->miss SLABEL(157): #line 860 PUSHS "%start" ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 860 goto L_0024 /* JUMP */; #line 861 // 861 fm(10):PRINTSTRING("size"); WRITE(lit, 1) %if pos1 = 0;->ps SLABEL(157): #line 861 PUSHS "size" ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 861 if (pop() != pop()) goto L_0025; ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; L_0025: #line 861 goto L_0021 /* JUMP */; #line 862 // 862 fm(11):PRINTSTRING("bounds") SLABEL(157): #line 862 PUSHS "bounds" ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 863 // 863 WRITE(ocount, 1) %unless ocount < 0; ->ps if (pop() < pop()) goto L_0026; ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; L_0026: #line 863 goto L_0021 /* JUMP */; #line 864 // 864 fm(12):PRINTSTRING("index"); ->ps SLABEL(157): #line 864 PUSHS "index" ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 864 goto L_0021 /* JUMP */; #line 865 // 865 fm(13):PRINTSTRING("order"); ->psd SLABEL(157): #line 865 PUSHS "order" ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 865 goto L_0022 /* JUMP */; #line 866 // 866 fm(14):PRINTSTRING("not a location"); ->ps SLABEL(157): #line 866 PUSHS "not a location" ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 866 goto L_0021 /* JUMP */; #line 867 // 867 fm(15):PRINTSTRING("%begin"); ->miss SLABEL(157): #line 867 PUSHS "%begin" ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 867 goto L_0024 /* JUMP */; #line 868 // 868 fm(16):PRINTSTRING("%end"); ->miss SLABEL(157): #line 868 PUSHS "%end" ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 868 goto L_0024 /* JUMP */; #line 869 // 869 fm(17):PRINTSTRING("%repeat"); ->miss SLABEL(157): #line 869 PUSHS "%repeat" ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 869 goto L_0024 /* JUMP */; #line 870 // 870 fm(18):PRINTSTRING("%finish"); ->miss SLABEL(157): #line 870 PUSHS "%finish" ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 870 goto L_0024 /* JUMP */; #line 871 // 871 fm(19):PRINTSTRING("result"); ->miss SLABEL(157): #line 871 PUSHS "result" ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 871 goto L_0024 /* JUMP */; #line 872 // 872 fm(22):PRINTSTRING("format"); ->ps SLABEL(157): #line 872 PUSHS "format" ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 872 goto L_0021 /* JUMP */; #line 873 // 873 fm(20):printsymbol('"'); print ident(x, 0); printsymbol('"') SLABEL(157): #line 873 ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 873 ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 873 ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 874 // 874 miss: PRINTSTRING(" missing"); ->nps L_0024: #line 874 PUSHS " missing" ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 874 goto L_0023 /* JUMP */; #line 875 // 875 psd: pos1 = 0 L_0022: #line 875 /*%own*/ pos1 = 0; #line 876 // 876 ps: print ss L_0021: #line 876 *(pop())() /* CALL */; #line 877 // 877 nps: NEWLINE L_0023: #line 877 *(pop())() /* CALL */; #line 878 // 878 %exit %if st = listing if (pop() != pop()) goto L_0027; goto L_0013 /* GOTO */; L_0027: #line 879 // 879 st = listing st = 2; #line 880 // 880 %repeat goto L_001b /* end of for loop and others? */; L_0013: #line 881 // 881 %if n >= 0 %start if (pop() < pop()) goto L_0013; #line 883 // 882 !%signal 15,15 %if diag&4096 # 0 // 883 %if n # 13 %start; !order is fairly safe if (pop() == pop()) goto L_0028; #line 884 // 884 ocount = -1 /*%own*/ ocount = (-1); #line 885 // 885 gg = 0 /*%own*/ gg = 0; #line 886 // 886 copy = 0; quote = 0 /*%own*/ copy = 0; #line 886 /*%own*/ quote = 0; #line 887 // 887 search base = 0; escape class = 0 /*%own*/ searchbase = 0; #line 887 /*%own*/ escapeclass = 0; #line 888 // 888 gg = 0 /*%own*/ gg = 0; #line 889 // 889 %finish L_0028: #line 890 // 890 faulty = faulty+1 /*%own*/ faulty = (faulty + 1); #line 894 // 891 // 892 !check that there haven't been too many faults // 893 // 894 fault rate = fault rate+3; abandon(6) %IF fault rate > 30 /*%own*/ faultrate = (faultrate + 3); #line 894 if (pop() <= pop()) goto L_0029; ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; L_0029: #line 895 // 895 fault rate = 3 %IF fault rate <= 0 if (pop() > pop()) goto L_002a; /*%own*/ faultrate = 3; L_002a: #line 896 // 896 %FINISH L_0013: #line 897 // 897 tbase = tstart tbase = tstart ; #line 898 // 898 %IF list <= 0 %AND sym # nl %START if (pop() > pop()) goto L_0013; if (pop() == pop()) goto L_0013; #line 899 // 899 error margin = column /*%own*/ errormargin = column ; #line 900 // 900 error sym = sym; sym = nl /*%own*/ errorsym = sym ; #line 900 /*%own*/ sym = 10; #line 901 // 901 %FINISH L_0013: #line 902 // 902 %END L_0001: #line 904 // 903 // 904 dmin = dmin-1; dict(dmin) = -1; !end marker for starts & cycles dmin = (dmin - 1); #line 904 dict [dmin ] = (-1); #line 905 // 905 abandon(2) %IF dmax = dmin if (pop() != pop()) goto L_0013; ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; L_0013: #line 907 // 906 // 907 %IF list > 0 %AND level > 0 %START if (pop() <= pop()) goto L_0013; if (pop() <= pop()) goto L_0013; #line 908 // 908 write(lines, 5); spaces(level*3-1) ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 908 ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 909 // 909 %IF block tag = 0 %START if (pop() != pop()) goto L_002b; #line 910 // 910 printstring("Begin") PUSHS "Begin" ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 911 // 911 %FINISH %ELSE %START goto L_0010 /* GOTO */; L_002b: #line 912 // 912 printstring("Procedure "); print ident(block tag, 0) PUSHS "Procedure " ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 912 ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 913 // 913 %FINISH L_0010: #line 914 // 914 newline *(pop())() /* CALL */; #line 915 // 915 %FINISH L_0013: #line 919 // 916 // 917 !deal with procedure definition (parameters) // 918 // 919 %IF block tag # 0 %START; !proc if (pop() == pop()) goto L_0013; #line 920 // 920 analyse; compile %IF ss # 0 *(pop())() /* CALL */; #line 920 if (pop() == pop()) goto L_002c; *(pop())() /* CALL */; L_002c: #line 922 // 921 // 922 %IF block otype # 0 %START; !external-ish if (pop() == pop()) goto L_002d; #line 923 // 923 %IF bflags&spec = 0 %START; !definition if (pop() != pop()) goto L_002e; #line 924 // 924 %IF progmode <= 0 %AND level = 1 %THEN progmode = -1 %C if (pop() > pop()) goto L_002f; if (pop() != pop()) goto L_002f; /*%own*/ progmode = (-1); goto L_0030 /* GOTO */; L_002f: ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; L_0030: #line 926 // 925 %ELSE fault(7) // 926 %FINISH L_002e: #line 927 // 927 %FINISH L_002d: #line 929 // 928 // 929 new app = gapp; !generate app grammar *(pop())() /* CALL */; newapp = %function %spec gapp {ind obj} ; #line 930 // 930 %IF spec given # 0 %START; !definition after spec if (pop() == pop()) goto L_0031; #line 931 // 931 fault(6) %IF new app # block app; !different from spec if (pop() == pop()) goto L_0032; ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; L_0032: #line 932 // 932 %FINISH L_0031: #line 933 // 933 block app = new app; !use the latest *blockapp = newapp ; #line 935 // 934 // 935 %IF level < 0 %START; !not procedure definition if (pop() >= pop()) goto L_0033; #line 936 // 936 delete names(0) ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 937 // 937 %RETURN RETURN {NOT IMPLEMENTED YET} #line 938 // 938 %FINISH L_0033: #line 939 // 939 %FINISH %ELSE %START goto L_0034 /* GOTO */; L_0013: #line 940 // 940 open = 0; !can return from a block? open = 0; #line 941 // 941 %FINISH L_0034: #line 943 // 942 // 943 %CYCLE L_0034: #line 944 // 944 analyse *(pop())() /* CALL */; #line 945 // 945 %IF ss # 0 %START if (pop() == pop()) goto L_0035; #line 946 // 946 compile *(pop())() /* CALL */; #line 947 // 947 fault(-5) %IF dubious # 0 if (pop() == pop()) goto L_0036; ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; L_0036: #line 948 // 948 flush buffer %IF bp >= 128 if (pop() < pop()) goto L_0037; *(pop())() /* CALL */; L_0037: #line 949 // 949 %IF sstype > 0 %START; !block in or out if (pop() <= pop()) goto L_0038; #line 950 // 950 %EXIT %IF sstype = 2; !out if (pop() != pop()) goto L_0039; goto L_0013 /* GOTO */; L_0039: #line 951 // 951 compile block(spec mode, block x, dmin, tmax, id) ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 952 // 952 %EXIT %IF ss < 0; !endofprogram if (pop() >= pop()) goto L_003a; goto L_0013 /* GOTO */; L_003a: #line 953 // 953 %FINISH L_0038: #line 954 // 954 %FINISH L_0035: #line 955 // 955 %REPEAT goto L_0034 /* end of for loop and others? */; L_0013: #line 956 // 956 %IF list > 0 %AND level > 0 %START if (pop() <= pop()) goto L_0013; if (pop() <= pop()) goto L_0013; #line 957 // 957 write(lines, 5); spaces(level*3-1) ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 957 ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 958 // 958 printstring("End") PUSHS "End" ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 959 // 959 newline *(pop())() /* CALL */; #line 960 // 960 %FINISH L_0013: #line 961 // 961 delete names(0) ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 962 // 962 %RETURN RETURN {NOT IMPLEMENTED YET} #line 964 // 963 // 964 %INTEGERFN gapp; !generate app grammar (backwards) goto L_0001 /* GOTO */; int gapp {ind obj} ; () #line 965 // 965 %CONSTINTEGER comma = 140; !psep #line 966 // 966 %ROUTINESPEC set cell(%INTEGER g, tt) void setcell ; ( int g ; int tt ; ) #line 967 // 967 %ROUTINESPEC class(%RECORD(tagfm)%NAME v) void class ; ( struct /*TAGFM*/ int typecode, void *v ; ) #line 968 // 968 %RECORD(tagfm)%NAME v struct /*TAGFM*/ int typecode, void *v ; #line 969 // 969 %INTEGER p, link, tp, c, ap, t int p ; int link ; int tp ; int c ; int ap ; int t ; #line 971 // 970 // 971 %RESULT = 0 %IF tmax = local; !no app needed if (pop() != pop()) goto L_0013; return(0); L_0013: #line 973 // 972 // 973 p = gmax1; link = 0; t = tmax p = 719; #line 973 link = 0; #line 973 t = tmax ; #line 975 // 974 // 975 %CYCLE L_003b: #line 976 // 976 v == tag(t); t = t-1 %record {TAGFM} /*%name*/ v = &%record {TAGFM} tag [t ]; #line 976 t = (t - 1); #line 977 // 977 class(v); !deduce class from tag ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 978 // 978 %IF c < 0 %START; !insert %PARAM if (pop() >= pop()) goto L_003c; #line 979 // 979 c = -c c = (-c ); #line 980 // 980 set cell(196, tp) ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 981 // 981 tp = -1 tp = (-1); #line 982 // 982 %FINISH L_003c: #line 983 // 983 set cell(c, tp) ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 984 // 984 %EXIT %IF t = local; !end of parameters if (pop() != pop()) goto L_003d; goto L_0013 /* GOTO */; L_003d: #line 985 // 985 set cell(comma, -1); !add the separating comma ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 986 // 986 %REPEAT goto L_003b /* end of for loop and others? */; L_0013: #line 987 // 987 abandon(3) %IF gmax > gmin if (pop() <= pop()) goto L_0013; ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; L_0013: #line 989 // 988 // 989 %RESULT = link return(link ); #line 991 // 990 // 991 %ROUTINE set cell(%INTEGER g, tt) goto L_0001 /* GOTO */; void setcell ; ( int g ; int tt ; ) #line 995 // 992 // 993 !add the cell to the grammar, combining common tails // 994 // 995 %WHILE p # gmax %CYCLE L_003e: if (pop() == pop()) goto L_0013; #line 996 // 996 p = p+1 p = (p + 1); #line 997 // 997 %IF glink(p) = link %AND gram(p) = g %START if (pop() != pop()) goto L_003f; if (pop() != pop()) goto L_003f; #line 998 // 998 %IF tt < 0 %OR (gram(p+1) = tt %AND glink(p+1)=ap) %START if (pop() < pop()) goto L_0040; if (pop() != pop()) goto L_0041; if (pop() != pop()) goto L_0041; L_0040: #line 999 // 999 link = p; !already there link = p ; #line 1000 // 1000 %RETURN RETURN {NOT IMPLEMENTED YET} #line 1001 // 1001 %FINISH L_0041: #line 1002 // 1002 %FINISH L_003f: #line 1003 // 1003 %REPEAT goto L_003e /* end of for loop and others? */; L_0013: #line 1007 // 1004 // 1005 !add a new cell // 1006 // 1007 gmax = gmax+1 /*%own*/ gmax = (gmax + 1); #line 1008 // 1008 gram(gmax) = g gram [gmax ] = g ; #line 1009 // 1009 glink(gmax) = link glink [gmax ] = link ; #line 1010 // 1010 link = gmax link = gmax ; #line 1012 // 1011 // 1012 %IF tt >= 0 %START; ! set type cell if (pop() < pop()) goto L_0013; #line 1013 // 1013 gmax = gmax+1 /*%own*/ gmax = (gmax + 1); #line 1014 // 1014 gram(gmax) = tt gram [gmax ] = tt ; #line 1015 // 1015 glink(gmax) = ap glink [gmax ] = ap ; #line 1016 // 1016 %FINISH L_0013: #line 1018 // 1017 // 1018 p = gmax p = gmax ; #line 1019 // 1019 %END L_0001: #line 1021 // 1020 // 1021 %ROUTINE class(%RECORD(tagfm)%NAME v) goto L_0001 /* GOTO */; void class ; ( struct /*TAGFM*/ int typecode, void *v ; ) #line 1022 // 1022 %CONSTINTEGER err = 89 #line 1023 // 1023 %CONSTINTEGER rtp = 100 #line 1024 // 1024 %CONSTINTEGER fnp = 101 #line 1025 // 1025 %CONSTINTEGER mapp = 102 #line 1026 // 1026 %CONSTINTEGER predp = 103 #line 1027 // 1027 %CONSTINTEGERARRAY class map(0:15) = %C BOUNDS {NOT IMPLEMENTED YET} const int *classmap {ind obj} ; INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 #line 1032 // 1028 89, 1764, 247, 89,89,89,89, -100, -101, -102, -103, 89, 214, // 1029 { err,1764, 247, err(4), -rtp, -fnp, -mapp, -predp, err, 214,} // 1030 89, 229, 89 // 1031 { err, 229, err} // 1032 %INTEGER tags, type, form int tags ; int type ; int form ; #line 1033 // 1033 ap = 0 ap = 0; #line 1034 // 1034 tags = v_flags SELECT V_0003 tags = %record {TAGFM} *v ; #line 1035 // 1035 type = tags>>4&7; form = tags&15 type = (7 & (tags >> 4)); #line 1035 form = (15 & tags ); #line 1036 // 1036 tp = v_format<<3!type SELECT V_0002 tp = (type | (%record {TAGFM} *v << 3)); #line 1037 // 1037 c = class map(form) c = classmap {ind obj} [form ]; #line 1038 // 1038 c = 208 %AND tp = 0 %IF type = 0 %AND form = 2; !%NAME if (pop() != pop()) goto L_0013; if (pop() != pop()) goto L_0013; c = 208; tp = 0; L_0013: #line 1039 // 1039 ap = v_app %IF tags¶meters # 0 if (pop() == pop()) goto L_0013; SELECT V_0001 ap = %record {TAGFM} *v ; L_0013: #line 1040 // 1040 %END L_0001: #line 1041 // 1041 %END L_0001: #line 1043 // 1042 // 1043 %ROUTINE delete names(%INTEGER quiet) goto L_0001 /* GOTO */; void deletenames ; ( int quiet ; ) #line 1044 // 1044 %INTEGER flags int flags ; #line 1045 // 1045 %RECORD(tagfm)%NAME tx struct /*TAGFM*/ int typecode, void *tx ; #line 1046 // 1046 %WHILE tmax > tbase %CYCLE L_0042: if (pop() <= pop()) goto L_0013; #line 1047 // 1047 x = tmax; tmax = tmax-1 /*%own*/ x = tmax ; #line 1047 tmax = (tmax - 1); #line 1048 // 1048 tx == tag(x) %record {TAGFM} /*%name*/ tx = &%record {TAGFM} tag [x ]; #line 1049 // 1049 flags = tx_flags SELECT V_0003 flags = %record {TAGFM} *tx ; #line 1050 // 1050 fault(20) %IF flags&spec # 0 %and flags&own bit = 0 if (pop() == pop()) goto L_0043; if (pop() != pop()) goto L_0043; ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; L_0043: #line 1052 // 1051 !{spec with no definition & not external} // 1052 %IF flags&used bit = 0 %AND level >= 0 %AND list <= 0 %START if (pop() != pop()) goto L_0044; if (pop() < pop()) goto L_0044; if (pop() > pop()) goto L_0044; #line 1053 // 1053 fault(-3) %IF quiet = 0; !unused if (pop() != pop()) goto L_0045; ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; L_0045: #line 1054 // 1054 %FINISH L_0044: #line 1055 // 1055 dict(tx_text) = tx_link SELECT V_0005 SELECT V_0006 dict [%record {TAGFM} *tx ] = %record {TAGFM} *tx ; #line 1056 // 1056 %REPEAT goto L_0042 /* end of for loop and others? */; L_0013: #line 1057 // 1057 %END L_0001: #line 1059 // 1058 // 1059 %ROUTINE analyse goto L_0001 /* GOTO */; void analyse ; () #line 1061 // 1060 // 1061 %CONSTINTEGER order bits = 16_3000, order bit = 16_1000 #line 1062 // 1062 %CONSTINTEGER escape = 16_1000 #line 1063 // 1063 %INTEGER strp, mark, flags, prot err, k, s, c int strp ; int mark ; int flags ; int proterr ; int k ; int s ; int c ; #line 1064 // 1064 %OWNINTEGER key = 0 static int key ; INIT 1 #line 1065 // 1065 %INTEGER node int node ; #line 1066 // 1066 %INTEGERNAME z int int typecode, void *z ; #line 1067 // 1067 %RECORD(arfm)%NAME arp struct /*ARFM*/ int typecode, void *arp ; #line 1068 // 1068 %SWITCH act(actions:phrasal), paction(0:15) BOUNDS {NOT IMPLEMENTED YET} %switch act ; BOUNDS {NOT IMPLEMENTED YET} %switch paction ; #line 1070 // 1069 // 1070 %ROUTINE trace analysis goto L_0001 /* GOTO */; void traceanalysis ; () #line 1072 // 1071 !diagnostic trace routine (diagnose&1 # 0) // 1072 %INTEGER a int a ; #line 1073 // 1073 %ROUTINE show(%INTEGER a) goto L_0001 /* GOTO */; void show ; ( int a ; ) #line 1074 // 1074 %IF 0 < a %AND a < 130 %START if (pop() >= pop()) goto L_0013; if (pop() >= pop()) goto L_0013; #line 1075 // 1075 space *(pop())() /* CALL */; #line 1076 // 1076 printstring(text(a)) ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 1077 // 1077 %FINISH %ELSE write(a, 3) goto L_0046 /* GOTO */; L_0013: ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; L_0046: #line 1078 // 1078 %END L_0001: #line 1079 // 1079 %OWNINTEGER la1=0, la2=0, lsa=0, lt=0 static int la1 ; INIT 1 static int la2 ; INIT 1 static int lsa ; INIT 1 static int lt ; INIT 1 #line 1080 // 1080 newline %IF mon pos # pos %AND sym # nl if (pop() == pop()) goto L_0013; if (pop() == pop()) goto L_0013; *(pop())() /* CALL */; L_0013: #line 1081 // 1081 mon pos = pos /*%own*/ monpos = pos ; #line 1082 // 1082 write(g, 3) ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 1083 // 1083 space *(pop())() /* CALL */; #line 1084 // 1084 printstring(text(class)) ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 1085 // 1085 printsymbol('"') %IF gg&trans bit # 0 if (pop() == pop()) goto L_0013; ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; L_0013: #line 1086 // 1086 a = gg>>8&15 a = (15 & (gg >> 8)); #line 1087 // 1087 %IF a # 0 %START if (pop() == pop()) goto L_0013; #line 1088 // 1088 printsymbol('{') ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 1089 // 1089 write(a, 0) ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 1090 // 1090 printsymbol('}') ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 1091 // 1091 %FINISH L_0013: #line 1092 // 1092 %IF atom1 # la1 %OR atom2 # la2 %OR lsa # subatom %C if (pop() != pop()) goto L_0047; if (pop() != pop()) goto L_0047; if (pop() != pop()) goto L_0047; if (pop() == pop()) goto L_0013; L_0047: #line 1094 // 1093 %OR lt # type %START // 1094 printstring(" [") PUSHS " [" ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 1095 // 1095 la1 = atom1 /*%own*/ la1 = atom1 ; #line 1096 // 1096 show(la1) ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 1097 // 1097 la2 = atom2 /*%own*/ la2 = atom2 ; #line 1098 // 1098 show(la2) ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 1099 // 1099 lsa = subatom /*%own*/ lsa = subatom ; #line 1100 // 1100 write(lsa, 3) ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 1101 // 1101 lt = type /*%own*/ lt = type ; #line 1102 // 1102 write(lt, 5) ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 1103 // 1103 printsymbol(']') ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 1104 // 1104 %FINISH L_0013: #line 1105 // 1105 newline *(pop())() /* CALL */; #line 1106 // 1106 %END L_0001: #line 1108 // 1107 // 1108 %ROUTINE get sym goto L_0001 /* GOTO */; void getsym ; () #line 1109 // 1109 readsymbol(sym) ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 1110 // 1110 abandon(5) %if sym < 0 if (pop() >= pop()) goto L_0013; ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; L_0013: #line 1111 // 1111 pos = pos+1 %IF pos # 133 if (pop() == pop()) goto L_0013; /*%own*/ pos = (pos + 1); L_0013: #line 1112 // 1112 char(pos) = sym %byte char [pos ] = sym ; #line 1113 // 1113 printsymbol(sym) %IF list <= 0 if (pop() > pop()) goto L_0013; ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; L_0013: #line 1114 // 1114 column = column+1 /*%own*/ column = (column + 1); #line 1115 // 1115 %END L_0001: #line 1116 // 1116 %ROUTINE read sym goto L_0001 /* GOTO */; void readsym ; () #line 1117 // 1117 %owninteger Last = 0 static int last ; INIT 1 #line 1118 // 1118 %CONSTBYTEINTEGERARRAY mapped(0:127) = %C BOUNDS {NOT IMPLEMENTED YET} const char int *mapped {ind obj} ; INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 #line 1134 // 1119 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 3 , 0, 0, 0, // 1120 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 1121 0 ,'!','"','#', '$', 1 ,'&', 39, '(',')','*','+', ',','-','.','/', // 1122 '0','1','2','3', '4','5','6','7', '8','9',':',';', '<','=','>','?', // 1123 '@','A','B','C', 'D','E','F','G', 'H','I','J','K', 'L','M','N','O', // 1124 'P','Q','R','S', 'T','U','V','W', 'X','Y','Z','[', '\',']','^','_', // 1125 '`','A','B','C', 'D','E','F','G', 'H','I','J','K', 'L','M','N','O', // 1126 'P','Q','R','S', 'T','U','V','W', 'X','Y','Z', 2 , '|','}','~', 0 // 1127 // 1128 !! 0 = space // 1129 !! 1 = % // 1130 !! 2 = { // 1131 !! 3 = ff // 1132 !! other values represent themselves // 1133 // 1134 %IF sym = nl %START if (pop() != pop()) goto L_0013; #line 1135 // 1135 s1: lines = lines+1 L_0048: #line 1135 /*%own*/ lines = (lines + 1); #line 1136 // 1136 printsymbol(end mark) %if end mark # 0 if (pop() == pop()) goto L_0049; ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; L_0049: #line 1137 // 1137 s11: pos = 0; pos1 = 0; pos2 = 0; margin = 0; column = 0 L_004a: #line 1137 /*%own*/ pos = 0; #line 1137 /*%own*/ pos1 = 0; #line 1137 /*%own*/ pos2 = 0; #line 1137 /*%own*/ margin = 0; #line 1137 /*%own*/ column = 0; #line 1138 // 1138 Last = 0 /*%own*/ last = 0; #line 1139 // 1139 end mark = 0 /*%own*/ endmark = 0; #line 1140 // 1140 %IF list <= 0 %START if (pop() > pop()) goto L_004b; #line 1141 // 1141 %IF include # 0 %START if (pop() == pop()) goto L_004c; #line 1142 // 1142 printstring(" &"); write(lines, -4) PUSHS " &" ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 1142 ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 1143 // 1143 %FINISH %ELSE write(lines, 5) goto L_000f /* GOTO */; L_004c: ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; L_000f: #line 1144 // 1144 csym = cont; printsymbol(csym) /*%own*/ csym = cont ; #line 1144 ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 1145 // 1145 space *(pop())() /* CALL */; #line 1146 // 1146 %IF error margin # 0 %START if (pop() == pop()) goto L_004d; #line 1147 // 1147 lines = lines-1 /*%own*/ lines = (lines - 1); #line 1148 // 1148 spaces(error margin) ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 1149 // 1149 error margin = 0 /*%own*/ errormargin = 0; #line 1150 // 1150 %IF error sym # 0 %START if (pop() == pop()) goto L_004e; #line 1151 // 1151 printsymbol(error sym) ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 1152 // 1152 pos = 1; char(1) = error sym /*%own*/ pos = 1; #line 1152 %byte char [1] = errorsym ; #line 1153 // 1153 sym = error sym; error sym = 0 /*%own*/ sym = errorsym ; #line 1153 /*%own*/ errorsym = 0; #line 1154 // 1154 ->s5 goto L_004f /* JUMP */; #line 1155 // 1155 %FINISH L_004e: #line 1156 // 1156 %FINISH L_004d: #line 1157 // 1157 %FINISH L_004b: #line 1158 // 1158 s2: symtype = 1 L_0050: #line 1158 /*%own*/ symtype = 1; #line 1159 // 1159 %FINISH L_0013: #line 1160 // 1160 s3:readsymbol(sym) L_0051: #line 1160 ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 1161 // 1161 abandon(5) %if sym < 0 if (pop() >= pop()) goto L_0013; ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; L_0013: #line 1162 // 1162 pos = pos+1 %IF pos # 133 if (pop() == pop()) goto L_0013; /*%own*/ pos = (pos + 1); L_0013: #line 1163 // 1163 char(pos) = sym %byte char [pos ] = sym ; #line 1164 // 1164 printsymbol(sym) %IF list <= 0 if (pop() > pop()) goto L_0013; ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; L_0013: #line 1165 // 1165 column = column+1 /*%own*/ column = (column + 1); #line 1166 // 1166 s5:%IF sym # nl %START L_004f: #line 1166 if (pop() == pop()) goto L_0013; #line 1167 // 1167 Last = Sym /*%own*/ last = sym ; #line 1168 // 1168 %RETURN %IF quote # 0; !dont alter strings if (pop() == pop()) goto L_0052; RETURN {NOT IMPLEMENTED YET} L_0052: #line 1169 // 1169 sym = mapped(sym&127) /*%own*/ sym = %byte mapped {ind obj} [(127 & sym )]; #line 1170 // 1170 %IF sym <= 3 %START; !special symbol if (pop() > pop()) goto L_0053; #line 1171 // 1171 ->s2 %IF sym = 0; !space (or dubious control) if (pop() != pop()) goto L_0054; goto L_0050 /* JUMP */; L_0054: #line 1172 // 1172 symtype = 2 %AND ->s3 %IF sym = 1; !% if (pop() != pop()) goto L_0055; /*%own*/ symtype = 2; goto L_0051 /* JUMP */; L_0055: #line 1173 // 1173 cont = '+' %AND ->s11 %IF sym = 3; !ff if (pop() != pop()) goto L_0056; /*%own*/ cont = 43; goto L_004a /* JUMP */; L_0056: #line 1175 // 1174 !must be { // 1175 %CYCLE L_000f: #line 1176 // 1176 get sym *(pop())() /* CALL */; #line 1177 // 1177 ->s3 %IF sym = '}' if (pop() != pop()) goto L_0057; goto L_0051 /* JUMP */; L_0057: #line 1178 // 1178 ->s4 %IF sym = nl if (pop() != pop()) goto L_0058; goto L_0059 /* JUMP */; L_0058: #line 1179 // 1179 %REPEAT goto L_000f /* end of for loop and others? */; #line 1180 // 1180 %FINISH L_0053: #line 1181 // 1181 key = kdict(sym) /*%own*/ key = kdict {ind obj} [sym ]; #line 1182 // 1182 %IF key&3 = 0 %AND symtype = 2 %START; !keyword if (pop() != pop()) goto L_005a; if (pop() != pop()) goto L_005a; #line 1183 // 1183 %IF sym = 'C' %AND nextsymbol = nl %START; !%C... if (pop() != pop()) goto L_005b; *(pop())() /* CALL */; if (pop() != pop()) goto L_005b; #line 1184 // 1184 getsym; cont = '+'; ->s1 *(pop())() /* CALL */; #line 1184 /*%own*/ cont = 43; #line 1184 goto L_0048 /* JUMP */; #line 1185 // 1185 %FINISH L_005b: #line 1186 // 1186 %ELSE goto L_0010 /* GOTO */; L_005a: #line 1187 // 1187 symtype = key&3-2 /*%own*/ symtype = ((3 & key ) - 2); #line 1188 // 1188 %FINISH L_0010: #line 1189 // 1189 %RETURN RETURN {NOT IMPLEMENTED YET} #line 1190 // 1190 %FINISH L_0013: #line 1191 // 1191 s4:symtype = quote L_0059: #line 1191 /*%own*/ symtype = quote ; #line 1192 // 1192 ->S1 %if last = 0 %and Quote = 0 if (pop() != pop()) goto L_0013; if (pop() != pop()) goto L_0013; goto L_0048 /* JUMP */; L_0013: #line 1193 // 1193 Cont = '+' /*%own*/ cont = 43; #line 1194 // 1194 %END L_0001: #line 1196 // 1195 // 1196 %INTEGERFN format selected goto L_0001 /* GOTO */; int formatselected {ind obj} ; () #line 1197 // 1197 format list = tag(format)_app; !number of names SELECT V_0001 /*%own*/ formatlist = %record {TAGFM} tag [format ]; #line 1198 // 1198 %IF format list < 0 %START; !forward ref if (pop() >= pop()) goto L_0013; #line 1199 // 1199 atom1 = error+22 /*%own*/ atom1 = (32768 + 22); #line 1200 // 1200 %RESULT = 0 return(0); #line 1201 // 1201 %FINISH L_0013: #line 1202 // 1202 %IF sym = '_' %START if (pop() != pop()) goto L_0013; #line 1203 // 1203 escape class = esc rec /*%own*/ escapeclass = 255; #line 1204 // 1204 search base = tag(format)_format SELECT V_0002 /*%own*/ searchbase = %record {TAGFM} tag [format ]; #line 1205 // 1205 %FINISH L_0013: #line 1206 // 1206 %RESULT = 1 return(1); #line 1207 // 1207 %END L_0001: #line 1209 // 1208 // 1209 %ROUTINE code atom(%INTEGER target) goto L_0001 /* GOTO */; void codeatom ; ( int target ; ) #line 1210 // 1210 %INTEGER dbase{, da} int dbase ; int da ; #line 1211 // 1211 %INTEGER base, n, mul, pend quote int base ; int n ; int mul ; int pendquote ; #line 1212 // 1212 %INTEGER j,k,l, pt int j ; int k ; int l ; int pt ; #line 1214 // 1213 // 1214 %ROUTINE lookup(%INTEGER d) goto L_0001 /* GOTO */; void lookup ; ( int d ; ) #line 1215 // 1215 %INTEGER new name, vid, k1, {k2,} form int newname ; int vid ; int k1 ; int k2 ; int form ; #line 1216 // 1216 %RECORD(tagfm)%NAME t struct /*TAGFM*/ int typecode, void *t ; #line 1217 // 1217 %INTEGER new int new ; #line 1221 // 1218 // 1219 ! twee little function because SKIMP86 can't do string compare properly // 1220 ! returns 1 if the two names are the same, else zero // 1221 %INTEGERFN dict match(%INTEGER ptr1, ptr2) goto L_0001 /* GOTO */; int dictmatch {ind obj} ; ( int ptr1 ; int ptr2 ; ) #line 1222 // 1222 %INTEGER len; int len ; #line 1224 // 1223 ! start with a cheap check of the length and first character // 1224 %IF dict(ptr1) # dict(ptr2) %THEN %RESULT = 0 if (pop() == pop()) goto L_0013; return(0); L_0013: #line 1225 // 1225 len = dict(ptr1) & 255 len = (255 & dict [ptr1 ]); #line 1226 // 1226 ptr1 = ptr1 + 1 ptr1 = (ptr1 + 1); #line 1227 // 1227 ptr2 = ptr2 + 1 ptr2 = (ptr2 + 1); #line 1228 // 1228 len = len - 1 len = (len - 1); #line 1229 // 1229 %WHILE len >= 2 %CYCLE L_0046: if (pop() < pop()) goto L_0013; #line 1230 // 1230 %if dict(ptr1) # dict(ptr2) %then %result = 0 if (pop() == pop()) goto L_005c; return(0); L_005c: #line 1231 // 1231 ptr1 = ptr1 + 1 ptr1 = (ptr1 + 1); #line 1232 // 1232 ptr2 = ptr2 + 1 ptr2 = (ptr2 + 1); #line 1233 // 1233 len = len - 2 len = (len - 2); #line 1234 // 1234 %REPEAT goto L_0046 /* end of for loop and others? */; L_0013: #line 1236 // 1235 ! if the string was odd length, we might need one last byte checked // 1236 %IF len = 1 %START if (pop() != pop()) goto L_0013; #line 1237 // 1237 %IF dict(ptr1)&255 # dict(ptr2)&255 %THEN %RESULT = 0 if (pop() == pop()) goto L_005d; return(0); L_005d: #line 1238 // 1238 %FINISH L_0013: #line 1239 // 1239 %RESULT = 1 return(1); #line 1240 // 1240 %END L_0001: #line 1243 // 1241 !first locate the text of the name // 1242 // 1243 new = dmax+1; ! points to text of string in dictionary new = (dmax + 1); #line 1244 // 1244 k1 = hash value & max names; ! rather crude hash! k1 = (2047 & hashvalue ); #line 1246 // 1245 // 1246 %CYCLE L_005e: #line 1247 // 1247 newname = hash(k1) newname = hash [k1 ]; #line 1248 // 1248 %EXIT %IF newname = 0; !not in if (pop() != pop()) goto L_005f; goto L_0013 /* GOTO */; L_005f: #line 1249 // 1249 ->in %IF dict match(newname+1, new) = 1 ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; if (pop() != pop()) goto L_0060; goto L_0061 /* JUMP */; L_0060: #line 1250 // 1250 k1 = (k1+1)&max names k1 = (2047 & (k1 + 1)); #line 1251 // 1251 %REPEAT goto L_005e /* end of for loop and others? */; L_0013: #line 1255 // 1252 // 1253 ! not found // 1254 // 1255 spare names = spare names-1 /*%own*/ sparenames = (sparenames - 1); #line 1256 // 1256 abandon(2) %IF spare names <= 0 if (pop() > pop()) goto L_0013; ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; L_0013: #line 1257 // 1257 hash(k1) = dmax; !put it in hash [k1 ] = dmax ; #line 1258 // 1258 dict(dmax) = -1 dict [dmax ] = (-1); #line 1259 // 1259 newname = dmax; dmax = dp; ->not in newname = dmax ; #line 1259 /*%own*/ dmax = dp ; #line 1259 goto L_0062 /* JUMP */; #line 1261 // 1260 // 1261 in: search base = rbase %IF this >= 0 %AND d # 0; !record elem defn L_0061: #line 1261 if (pop() < pop()) goto L_0013; if (pop() == pop()) goto L_0013; /*%own*/ searchbase = rbase ; L_0013: #line 1262 // 1262 %IF search base # 0 %START; !record subname if (pop() == pop()) goto L_0013; #line 1263 // 1263 new = -1 new = (-1); #line 1264 // 1264 x = search base /*%own*/ x = searchbase ; #line 1265 // 1265 %CYCLE L_0010: #line 1266 // 1266 ->not in %IF x < format list if (pop() >= pop()) goto L_0063; goto L_0062 /* JUMP */; L_0063: #line 1267 // 1267 %EXIT %IF tag(x)_text = new name SELECT V_0005 if (pop() != pop()) goto L_0064; goto L_0065 /* GOTO */; L_0064: #line 1268 // 1268 x = x-1 /*%own*/ x = (x - 1); #line 1269 // 1269 %REPEAT goto L_0010 /* end of for loop and others? */; L_0065: #line 1270 // 1270 %FINISH %ELSE %START; !hash in for normal names goto L_0066 /* GOTO */; L_0013: #line 1271 // 1271 x = dict(newname) /*%own*/ x = dict [newname ]; #line 1272 // 1272 ->not in %IF x <= limit; !wrong level if (pop() > pop()) goto L_0065; goto L_0062 /* JUMP */; L_0065: #line 1273 // 1273 %FINISH L_0066: #line 1275 // 1274 // 1275 subatom = x; !name found, extract info /*%own*/ subatom = x ; #line 1276 // 1276 t == tag(x) %record {TAGFM} /*%name*/ t = &%record {TAGFM} tag [x ]; #line 1277 // 1277 atom flags = t_flags SELECT V_0003 /*%own*/ atomflags = %record {TAGFM} *t ; #line 1278 // 1278 format = t_format; app = t_app SELECT V_0002 /*%own*/ format = %record {TAGFM} *t ; #line 1278 SELECT V_0001 /*%own*/ app = %record {TAGFM} *t ; #line 1279 // 1279 protection = atom flags&prot /*%own*/ protection = (256 & atomflags ); #line 1280 // 1280 type = atom flags>>4&7; atom1 = amap(atom flags&15) /*%own*/ type = (7 & (atomflags >> 4)); #line 1280 /*%own*/ atom1 = %byte amap {ind obj} [(15 & atomflags )]; #line 1282 // 1281 // 1282 %IF diag&8 # 0 %START if (pop() == pop()) goto L_0013; #line 1283 // 1283 printstring("lookup:") PUSHS "lookup:" ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 1284 // 1284 write(atom1, 3) ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 1285 // 1285 write(type, 1) ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 1286 // 1286 write(app, 3) ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 1287 // 1287 write(format, 5) ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 1288 // 1288 write(atom flags, 3) ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 1289 // 1289 newline *(pop())() /* CALL */; #line 1290 // 1290 %FINISH L_0013: #line 1292 // 1291 // 1292 %IF d = 0 %START; !old name wanted if (pop() != pop()) goto L_0013; #line 1293 // 1293 t_flags = t_flags!used bit SELECT V_0003 SELECT V_0003 %record {TAGFM} *t = (32768 | %record {TAGFM} *t ); #line 1294 // 1294 search base = 0 /*%own*/ searchbase = 0; #line 1296 // 1295 // 1296 %IF atom flags&subname # 0 %AND format # 0 %START; !a record if (pop() == pop()) goto L_0065; if (pop() == pop()) goto L_0065; #line 1297 // 1297 %RETURN %IF format selected = 0 *(pop())() /* CALL */; if (pop() != pop()) goto L_0067; RETURN {NOT IMPLEMENTED YET} L_0067: #line 1298 // 1298 %FINISH L_0065: #line 1300 // 1299 // 1300 %IF atom flags¶meters # 0 %START; !proc or array if (pop() == pop()) goto L_0065; #line 1302 // 1301 // 1302 %IF app = 0 %START; !no parameters needed if (pop() != pop()) goto L_0068; #line 1303 // 1303 atom2 = atom1 /*%own*/ atom2 = atom1 ; #line 1304 // 1304 atom1 = atom1-4 /*%own*/ atom1 = (atom1 - 4); #line 1305 // 1305 %IF 97 <= atom1 %AND atom1 <= 98 %START if (pop() > pop()) goto L_0069; if (pop() > pop()) goto L_0069; #line 1306 // 1306 map gg = atom1; atom1 = var /*%own*/ mapgg = atom1 ; #line 1306 /*%own*/ atom1 = 91; #line 1307 // 1307 %FINISH L_0069: #line 1308 // 1308 %FINISH %ELSE %START goto L_006a /* GOTO */; L_0068: #line 1309 // 1309 %IF sym = '(' %START if (pop() != pop()) goto L_006b; #line 1310 // 1310 search base = 0; !ignore format for now /*%own*/ searchbase = 0; #line 1311 // 1311 %IF atom1 >= 106 %START; !arrays if (pop() < pop()) goto L_006c; #line 1312 // 1312 app = phrase(app+200) /*%own*/ app = phrase [(app + 200)]; #line 1313 // 1313 escape class = esc array /*%own*/ escapeclass = 254; #line 1314 // 1314 atom1 = (atom1-106)>>1+91; !a,an->v na,nan->n /*%own*/ atom1 = (((atom1 - 106) >> 1) + 91); #line 1315 // 1315 %FINISH %ELSE %START; !procedures goto L_006d /* GOTO */; L_006c: #line 1316 // 1316 escape class = esc proc /*%own*/ escapeclass = 253; #line 1317 // 1317 atom1 = atom1-4 /*%own*/ atom1 = (atom1 - 4); #line 1318 // 1318 %FINISH L_006d: #line 1319 // 1319 phrase(200) = app phrase [200] = app ; #line 1320 // 1320 %FINISH L_006b: #line 1321 // 1321 %FINISH L_006a: #line 1322 // 1322 pos2 = pos; %return /*%own*/ pos2 = pos ; #line 1322 RETURN {NOT IMPLEMENTED YET} #line 1323 // 1323 %FINISH L_0065: #line 1327 // 1324 // 1325 !deal with constintegers etc // 1326 // 1327 %IF atom flags&const bit # 0 %AND atom1 = var %START if (pop() == pop()) goto L_0065; if (pop() != pop()) goto L_0065; #line 1328 // 1328 map gg = const; atom2 = const /*%own*/ mapgg = 93; #line 1328 /*%own*/ atom2 = 93; #line 1329 // 1329 subatom = -subatom %IF type = integer if (pop() != pop()) goto L_006e; /*%own*/ subatom = (-subatom ); L_006e: #line 1330 // 1330 %FINISH L_0065: #line 1331 // 1331 %RETURN RETURN {NOT IMPLEMENTED YET} #line 1333 // 1332 // 1333 %FINISH L_0013: #line 1335 // 1334 !new name wanted // 1335 ->not in %IF tbase # tstart; !don't fault proc parm-parm if (pop() == pop()) goto L_0013; goto L_0062 /* JUMP */; L_0013: #line 1336 // 1336 %IF d = lab+spec+used bit %START if (pop() != pop()) goto L_0013; #line 1337 // 1337 t_flags = t_flags!used bit SELECT V_0003 SELECT V_0003 %record {TAGFM} *t = (32768 | %record {TAGFM} *t ); #line 1338 // 1338 %RETURN RETURN {NOT IMPLEMENTED YET} #line 1339 // 1339 %FINISH L_0013: #line 1340 // 1340 %IF atom flags&spec # 0 %START; !a spec has been given if (pop() == pop()) goto L_0013; #line 1341 // 1341 %IF d = lab %START; !define label if (pop() != pop()) goto L_0065; #line 1342 // 1342 t_flags = t_Flags-Spec SELECT V_0003 SELECT V_0003 %record {TAGFM} *t = (%record {TAGFM} *t - 128); #line 1343 // 1343 %RETURN RETURN {NOT IMPLEMENTED YET} #line 1344 // 1344 %FINISH L_0065: #line 1345 // 1345 %IF 7 <= decl&15 %AND decl&15 <= 10 %AND decl&spec = 0 %START if (pop() > pop()) goto L_0065; if (pop() > pop()) goto L_0065; if (pop() != pop()) goto L_0065; #line 1349 // 1346 // 1347 !procedure definition after spec // 1348 // 1349 %IF (decl!!atom flags)&2_1111111 = 0 %START; !correct type? if (pop() != pop()) goto L_006f; #line 1350 // 1350 t_flags = t_flags-spec SELECT V_0003 SELECT V_0003 %record {TAGFM} *t = (%record {TAGFM} *t - 128); #line 1351 // 1351 spec given = 1 /*%own*/ specgiven = 1; #line 1352 // 1352 %RETURN RETURN {NOT IMPLEMENTED YET} #line 1353 // 1353 %FINISH L_006f: #line 1358 // 1354 // 1355 !note that an external procedure must be speced as a // 1356 !non-external procedure. // 1357 // 1358 %FINISH L_0065: #line 1359 // 1359 %IF decl&15 = recfm %START; !recordformat if (pop() != pop()) goto L_0065; #line 1360 // 1360 t_flags = record<<4+recfm SELECT V_0003 %record {TAGFM} *t = ((4 << 4) + 4); #line 1361 // 1361 t_format = fdef SELECT V_0002 %record {TAGFM} *t = fdef ; #line 1362 // 1362 %RETURN RETURN {NOT IMPLEMENTED YET} #line 1363 // 1363 %FINISH L_0065: #line 1364 // 1364 %FINISH L_0013: #line 1365 // 1365 %RETURN %IF last1 = jump %AND atom1 = swit if (pop() != pop()) goto L_0013; if (pop() != pop()) goto L_0013; RETURN {NOT IMPLEMENTED YET} L_0013: #line 1366 // 1366 copy = x %IF copy = 0 if (pop() != pop()) goto L_0013; /*%own*/ copy = x ; L_0013: #line 1368 // 1367 // 1368 notin:app = 0; vid = 0 L_0062: #line 1368 /*%own*/ app = 0; #line 1368 vid = 0; #line 1369 // 1369 atom1 = error+2 /*%own*/ atom1 = (32768 + 2); #line 1371 // 1370 // 1371 %return %if d = 0; !old name wanted if (pop() != pop()) goto L_0013; RETURN {NOT IMPLEMENTED YET} L_0013: #line 1372 // 1372 type = d>>4&7; form = d&15; atom1 = amap(form) /*%own*/ type = (7 & (d >> 4)); #line 1372 form = (15 & d ); #line 1372 /*%own*/ atom1 = %byte amap {ind obj} [form ]; #line 1374 // 1373 // 1374 %IF this < 0 %START; !normal scope if (pop() >= pop()) goto L_0013; #line 1375 // 1375 new = newname new = newname ; #line 1376 // 1376 tmax = tmax+1; x = tmax tmax = (tmax + 1); #line 1376 /*%own*/ x = tmax ; #line 1377 // 1377 %FINISH %ELSE %START; !recordformat scope goto L_0066 /* GOTO */; L_0013: #line 1378 // 1378 new = -1 new = (-1); #line 1379 // 1379 recid = recid-1; vid = recid recid = (recid - 1); #line 1379 vid = recid ; #line 1380 // 1380 tmin = tmin-1; x = tmin /*%own*/ tmin = (tmin - 1); #line 1380 /*%own*/ x = tmin ; #line 1381 // 1381 format list = tmin /*%own*/ formatlist = tmin ; #line 1382 // 1382 %FINISH L_0066: #line 1384 // 1383 // 1384 %IF 11 <= form %and form <= 14 %START; !arrays if (pop() > pop()) goto L_0013; if (pop() > pop()) goto L_0013; #line 1385 // 1385 dim = 1 %IF dim = 0; !set dim for owns if (pop() != pop()) goto L_0065; /*%own*/ dim = 1; L_0065: #line 1386 // 1386 app = dim /*%own*/ app = dim ; #line 1387 // 1387 %FINISH L_0013: #line 1389 // 1388 // 1389 d = d!used bit %IF (otype > 2 %AND d&spec = 0) %OR perm # 0 %OR %C if (pop() <= pop()) goto L_0070; if (pop() == pop()) goto L_0071; L_0070: if (pop() != pop()) goto L_0071; if (pop() != pop()) goto L_0013; L_0071: d = (32768 | d ); L_0013: #line 1395 // 1390 Level = Include Level // 1391 // 1392 !external definitions need not be used in the file in which // 1393 !they are defined, so inhibit a useless unused warning. // 1394 // 1395 t == tag(x) %record {TAGFM} /*%name*/ t = &%record {TAGFM} tag [x ]; #line 1396 // 1396 %IF form = lab %START if (pop() != pop()) goto L_0013; #line 1397 // 1397 id = id+1; vid = id id = (id + 1); #line 1397 vid = id ; #line 1398 // 1398 %FINISH L_0013: #line 1399 // 1399 t_index = vid SELECT V_0004 %record {TAGFM} *t = vid ; #line 1400 // 1400 t_text = new name SELECT V_0005 %record {TAGFM} *t = newname ; #line 1401 // 1401 t_flags = d SELECT V_0003 %record {TAGFM} *t = d ; #line 1402 // 1402 t_app = app SELECT V_0001 %record {TAGFM} *t = app ; #line 1403 // 1403 t_format = fdef; format = fdef SELECT V_0002 %record {TAGFM} *t = fdef ; #line 1403 /*%own*/ format = fdef ; #line 1404 // 1404 subatom = x /*%own*/ subatom = x ; #line 1406 // 1405 // 1406 %IF new >= 0 %START; !insert into hash table if (pop() < pop()) goto L_0013; #line 1407 // 1407 t_link = dict(new); dict(new) = x SELECT V_0006 %record {TAGFM} *t = dict [new ]; #line 1407 dict [new ] = x ; #line 1408 // 1408 %IF gmin = max grammar %START; !proc param params if (pop() != pop()) goto L_0065; #line 1409 // 1409 tmin = tmin-1; subatom = tmin /*%own*/ tmin = (tmin - 1); #line 1409 /*%own*/ subatom = tmin ; #line 1410 // 1410 tag(tmin) = t %record {TAGFM} tag [tmin ] = %record {TAGFM} *t ; #line 1411 // 1411 %FINISH L_0065: #line 1412 // 1412 %FINISH L_0013: #line 1413 // 1413 abandon(3) %IF tmax >= tmin if (pop() < pop()) goto L_0013; ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; L_0013: #line 1414 // 1414 %END L_0001: #line 1418 // 1415 // 1416 ! ABD - temp variable to help pack bytes into words // 1417 %INTEGER flipflop // 1418 L_0072: #line 1418 /*%own*/ pos1 = pos ; #line 1419 // 1419 /*%own*/ subatom = 0; #line 1419 pendquote = 0; #line 1419 /*%own*/ atomflags = 0; #line 1423 // 1420 top: pos1 = pos // 1421 subatom = 0; pend quote = 0; atom flags = 0 // 1422 // 1423 !app and format must be left for assigning to papp & pformat if (pop() != pop()) goto L_0013; goto L_0073 /* JUMP */; L_0013: #line 1424 // 1424 if (pop() >= pop()) goto L_0013; goto L_0074 /* JUMP */; L_0013: #line 1425 // 1425 ->name %IF symtype = -2; !letter if (pop() != pop()) goto L_0013; #line 1426 // 1426 ->number %IF symtype < 0; !digit /*%own*/ atom1 = 20; #line 1426 /*%own*/ atom2 = 0; #line 1427 // 1427 %IF symtype = 0 %START RETURN {NOT IMPLEMENTED YET} #line 1428 // 1428 atom1 = termin; atom2 = 0 L_0013: #line 1429 // 1429 %RETURN if (pop() == pop()) goto L_0013; #line 1430 // 1430 %FINISH if (pop() == pop()) goto L_0065; goto L_0075 /* JUMP */; L_0065: #line 1431 // 1431 %IF symtype # 2 %START; !catch keywords here if (pop() != pop()) goto L_0065; goto L_0076 /* JUMP */; L_0065: #line 1432 // 1432 ->text %IF quote # 0; !completion of text if (pop() != pop()) goto L_0065; goto L_0077 /* JUMP */; L_0065: #line 1433 // 1433 ->strings %IF sym = squote; !start of string if (pop() != pop()) goto L_0065; *(pop())() /* CALL */; if (pop() > pop()) goto L_0065; *(pop())() /* CALL */; if (pop() > pop()) goto L_0065; goto L_0074 /* JUMP */; L_0065: #line 1434 // 1434 ->symbols %IF sym = cquote; !start of symbol L_0013: #line 1437 // 1435 ->number %IF sym = '.' %AND '0' <= nextsymbol %AND nextsymbol <= '9' // 1436 %FINISH // 1437 k = (key >> 2); #line 1437 *(pop())() /* CALL */; #line 1438 // 1438 !locate atom in fixed dict L_0066: #line 1439 // 1439 k = key>>2; read sym j = kdict {ind obj} [k ]; #line 1440 // 1440 %CYCLE if (pop() == pop()) goto L_0065; goto L_0013 /* GOTO */; L_0065: #line 1441 // 1441 j = kdict(k) if (pop() != pop()) goto L_0078; if (pop() >= pop()) goto L_0065; L_0078: #line 1442 // 1442 %EXIT %IF j&16_4000 # 0 if (pop() < pop()) goto L_0079; goto L_007a /* JUMP */; L_0079: #line 1443 // 1443 %IF j&127 # sym %OR symtype < 0 %START k = (k + 1); #line 1444 // 1444 ->err %UNLESS j < 0 goto L_007b /* GOTO */; L_0065: #line 1445 // 1445 k = k+1 l = (127 & (j >> 7)); #line 1445 *(pop())() /* CALL */; #line 1446 // 1446 %FINISH %ELSE %START if (pop() <= pop()) goto L_007c; #line 1447 // 1447 l = j>>7&127; read sym if (pop() == pop()) goto L_007d; #line 1448 // 1448 %IF j > 0 %START if (pop() != pop()) goto L_007e; if (pop() >= pop()) goto L_007f; L_007e: goto L_007a /* JUMP */; L_007f: #line 1449 // 1449 %IF l # 0 %START *(pop())() /* CALL */; #line 1450 // 1450 ->err %IF l # sym %OR symtype < 0 L_007d: #line 1451 // 1451 read sym l = 1; #line 1452 // 1452 %FINISH L_007c: #line 1453 // 1453 l = 1 k = (k + l ); #line 1454 // 1454 %FINISH L_007b: #line 1455 // 1455 k = k+l goto L_0066 /* end of for loop and others? */; L_0013: #line 1456 // 1456 %FINISH /*%own*/ atom1 = (127 & j ); #line 1457 // 1457 %REPEAT if (pop() != pop()) goto L_0013; #line 1458 // 1458 atom1 = j&127 /*%own*/ atom1 = 19; #line 1458 /*%own*/ subatom = 19; #line 1458 /*%own*/ atom2 = 0; #line 1459 // 1459 %IF atom1 = 0 %START; !comma if (pop() != pop()) goto L_0065; #line 1460 // 1460 atom1 = 19; subatom = 19; atom2 = 0 if (pop() < pop()) goto L_0080; RETURN {NOT IMPLEMENTED YET} L_0080: #line 1465 // 1461 %IF sym = nl %START // 1462 %RETURN %IF ocount >= 0 // 1463 // 1464 !special action needs to be taken with as // 1465 !const array lists can be enormous *(pop())() /* CALL */; #line 1466 // 1466 L_0065: #line 1467 // 1467 read sym RETURN {NOT IMPLEMENTED YET} #line 1468 // 1468 %FINISH L_0013: #line 1469 // 1469 %RETURN /*%own*/ atom2 = (127 & (j >> 7)); #line 1470 // 1470 %FINISH /*%own*/ subatom = (16383 & kdict {ind obj} [(k + 1)]); #line 1472 // 1471 atom2 = j>>7&127 // 1472 subatom = kdict(k+1)&16_3fff RETURN {NOT IMPLEMENTED YET} #line 1478 // 1473 !!!!!cont = ' ' // 1474 %RETURN // 1475 // 1476 !report an error. adjust the error marker (pos1) to point // 1477 !to the faulty character in an atom, but care needs to be taken // 1478 !to prevent misleading reports in cases like ...????? L_007a: #line 1478 /*%own*/ atom1 = (32768 + 1); #line 1478 /*%own*/ atom2 = 0; #line 1479 // 1479 if (pop() <= pop()) goto L_0013; /*%own*/ pos1 = pos ; L_0013: #line 1480 // 1480 err: atom1 = error+1; atom2 = 0 RETURN {NOT IMPLEMENTED YET} #line 1486 // 1481 pos1 = pos %IF pos-pos1 > 2 // 1482 %RETURN // 1483 // 1484 !take care with strings and symbol constants. // 1485 !make sure the constant is valid here before sucking it in // 1486 !(and potentially loosing many lines) L_0077: #line 1486 /*%own*/ atom1 = 91; #line 1486 /*%own*/ atom2 = 93; #line 1486 /*%own*/ type = 1; #line 1487 // 1487 /*%own*/ mapgg = 93; #line 1487 /*%own*/ protection = 256; #line 1488 // 1488 symbols:atom1 = var; atom2 = const; type = integer /*%own*/ subatom = lp ; #line 1488 if (pop() < pop()) goto L_0013; ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; L_0013: #line 1489 // 1489 map gg = const; protection = prot /*%own*/ quote = (\pendquote ); #line 1490 // 1490 subatom = lp; abandon(3) %IF lp >= lit max RETURN {NOT IMPLEMENTED YET} #line 1495 // 1491 quote = \pend quote // 1492 %RETURN // 1493 // 1494 !an integer constant is acceptable so get it in and // 1495 !get the next atom L_0081: #line 1495 n = 0; #line 1495 /*%own*/ cont = 39; #line 1496 // 1496 L_0082: #line 1497 // 1497 chars:n = 0; cont = cquote *(pop())() /* CALL */; #line 1498 // 1498 %CYCLE if (pop() != pop()) goto L_0065; #line 1499 // 1499 read sym *(pop())() /* CALL */; if (pop() == pop()) goto L_0083; goto L_0013 /* GOTO */; L_0083: #line 1500 // 1500 %IF sym = cquote %START *(pop())() /* CALL */; #line 1501 // 1501 %EXIT %IF nextsymbol # cquote L_0065: #line 1502 // 1502 read sym if (pop() == pop()) goto L_0065; #line 1503 // 1503 %FINISH /*%own*/ pos1 = pos ; #line 1503 /*%own*/ atom1 = (32768 + 10); #line 1503 RETURN {NOT IMPLEMENTED YET} #line 1504 // 1504 %IF n&(\((-1)>>byte size)) # 0 %START; ! overflow L_0065: #line 1505 // 1505 pos1 = pos; atom1 = error+10; %RETURN if (pop() != pop()) goto L_0065; goto L_007a /* JUMP */; L_0065: #line 1506 // 1506 %FINISH n = ((n << 8) + sym ); #line 1507 // 1507 ->err %IF quote = 0 /*%own*/ quote = (quote + 1); #line 1508 // 1508 n = n<top // 1515 // 1516 !sniff the grammar before getting the string L_0076: #line 1516 /*%own*/ atom1 = 91; #line 1516 /*%own*/ atom2 = 93; #line 1516 /*%own*/ type = 3; #line 1517 // 1517 /*%own*/ subatom = (16384 | strp ); #line 1518 // 1518 strings:atom1 = var; atom2 = const; type = stringv /*%own*/ mapgg = 93; #line 1518 /*%own*/ protection = 256; #line 1519 // 1519 subatom = strp!16_4000 /*%own*/ quote = subatom ; #line 1520 // 1520 map gg = const; protection = prot /*%own*/ textline = lines ; #line 1521 // 1521 quote = subatom RETURN {NOT IMPLEMENTED YET} #line 1527 // 1522 text line = lines; !in case of errors // 1523 %RETURN // 1524 // 1525 !a string constant is ok here, so pull it in and get // 1526 !the next atom // 1527 int flipflop ; #line 1529 // 1528 // 1529 text: ->chars %IF quote < 0; !character consts L_0075: #line 1529 if (pop() >= pop()) goto L_0013; goto L_0081 /* JUMP */; L_0013: #line 1530 // 1530 l = strp; !point to beginning l = strp ; #line 1531 // 1531 k = 0; !length so far k = 0; #line 1532 // 1532 flipflop = 0; !space for the length is up the spout flipflop = 0; #line 1534 // 1533 // 1534 %CYCLE L_0084: #line 1535 // 1535 cont = squote; quote = 1 /*%own*/ cont = 34; #line 1535 /*%own*/ quote = 1; #line 1536 // 1536 %CYCLE L_007b: #line 1537 // 1537 read sym *(pop())() /* CALL */; #line 1538 // 1538 %IF sym = squote %START; !terminator? if (pop() != pop()) goto L_0085; #line 1539 // 1539 %EXIT %IF nextsymbol # squote; !yes -> *(pop())() /* CALL */; if (pop() == pop()) goto L_0086; goto L_0065 /* GOTO */; L_0086: #line 1540 // 1540 read sym; ! skip quote *(pop())() /* CALL */; #line 1541 // 1541 %FINISH L_0085: #line 1542 // 1542 %IF flipflop >= 0 %START if (pop() < pop()) goto L_0087; #line 1543 // 1543 glink(strp) = sym<<8 + flipflop glink [strp ] = ((sym << 8) + flipflop ); #line 1544 // 1544 strp = strp+1 strp = (strp + 1); #line 1545 // 1545 flipflop = -1 flipflop = (-1); #line 1546 // 1546 %ELSE goto L_006a /* GOTO */; L_0087: #line 1547 // 1547 flipflop = sym flipflop = sym ; #line 1548 // 1548 %FINISH L_006a: #line 1549 // 1549 k = k+1 k = (k + 1); #line 1550 // 1550 lines = text line %AND abandon(7) %IF k > 255; !too many chars if (pop() <= pop()) goto L_0088; /*%own*/ lines = textline ; ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; L_0088: #line 1551 // 1551 %REPEAT goto L_007b /* end of for loop and others? */; L_0065: #line 1552 // 1552 %IF flipflop >=0 %START; !tail-end charlie if (pop() < pop()) goto L_0065; #line 1553 // 1553 glink(strp) = flipflop glink [strp ] = flipflop ; #line 1554 // 1554 strp = strp+1 strp = (strp + 1); #line 1555 // 1555 %FINISH L_0065: #line 1556 // 1556 glink(l) = glink(l)!k; !plug in length glink [l ] = (k | glink [l ]); #line 1558 // 1557 // 1558 quote = 0; cont = ' '; read sym /*%own*/ quote = 0; #line 1558 /*%own*/ cont = 32; #line 1558 *(pop())() /* CALL */; #line 1559 // 1559 code atom(target) ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 1560 // 1560 %RETURN %UNLESS atom1 = 48 %AND sym = squote; !fold "???"."+++" if (pop() != pop()) goto L_0089; if (pop() == pop()) goto L_0065; L_0089: RETURN {NOT IMPLEMENTED YET} L_0065: #line 1561 // 1561 %REPEAT goto L_0084 /* end of for loop and others? */; #line 1563 // 1562 // 1563 %ROUTINE get(%INTEGER limit) goto L_0001 /* GOTO */; void get ; ( int limit ; ) #line 1564 // 1564 %INTEGER s, shift int s ; int shift ; #line 1565 // 1565 shift = 0 shift = 0; #line 1566 // 1566 %IF base # 10 %START if (pop() == pop()) goto L_0013; #line 1567 // 1567 %IF base = 16 %START if (pop() != pop()) goto L_0065; #line 1568 // 1568 shift = 4 shift = 4; #line 1569 // 1569 %FINISH %ELSE %START goto L_008a /* GOTO */; L_0065: #line 1570 // 1570 %IF base = 8 %START if (pop() != pop()) goto L_008b; #line 1571 // 1571 shift = 3 shift = 3; #line 1572 // 1572 %FINISH %ELSE %START goto L_006a /* GOTO */; L_008b: #line 1573 // 1573 %IF base = 2 %START if (pop() != pop()) goto L_008c; #line 1574 // 1574 shift = 1 shift = 1; #line 1575 // 1575 %FINISH L_008c: #line 1576 // 1576 %FINISH L_006a: #line 1577 // 1577 %FINISH L_008a: #line 1578 // 1578 %FINISH L_0013: #line 1579 // 1579 n = 0 n = 0; #line 1580 // 1580 %CYCLE L_008d: #line 1581 // 1581 %IF symtype = -1 %START; !digit if (pop() != pop()) goto L_0065; #line 1582 // 1582 s = sym-'0' s = (sym - 48); #line 1583 // 1583 %FINISH %ELSE %START goto L_008a /* GOTO */; L_0065: #line 1584 // 1584 %IF symtype < 0 %START; !letter if (pop() >= pop()) goto L_008e; #line 1585 // 1585 s = sym-'A'+10 s = ((sym - 65) + 10); #line 1586 // 1586 %FINISH %ELSE %START goto L_006a /* GOTO */; L_008e: #line 1587 // 1587 %RETURN RETURN {NOT IMPLEMENTED YET} #line 1588 // 1588 %FINISH L_006a: #line 1589 // 1589 %FINISH L_008a: #line 1590 // 1590 %RETURN %IF s >= limit if (pop() < pop()) goto L_0065; RETURN {NOT IMPLEMENTED YET} L_0065: #line 1591 // 1591 pt = pt+1; glink(pt) = sym pt = (pt + 1); #line 1591 glink [pt ] = sym ; #line 1592 // 1592 %IF base = 10 %START; !check overflow if (pop() != pop()) goto L_0065; #line 1593 // 1593 %IF n >= max int %AND (s > max dig %OR n > max int) %START if (pop() < pop()) goto L_008f; if (pop() > pop()) goto L_0090; if (pop() <= pop()) goto L_008f; L_0090: #line 1597 // 1594 // 1595 !too big for an integer, // 1596 !so call it a real // 1597 base = 0; type = real; n = 0 base = 0; #line 1597 /*%own*/ type = 2; #line 1597 n = 0; #line 1598 // 1598 %FINISH L_008f: #line 1599 // 1599 %FINISH L_0065: #line 1600 // 1600 %IF shift = 0 %START if (pop() != pop()) goto L_0065; #line 1601 // 1601 n = n*base+s n = ((base * n ) + s ); #line 1602 // 1602 %FINISH %ELSE %START goto L_008a /* GOTO */; L_0065: #line 1603 // 1603 n = n<= lit max if (pop() < pop()) goto L_0013; ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; L_0013: #line 1613 // 1613 pt = strp; mul = 0 pt = strp ; #line 1613 mul = 0; #line 1614 // 1614 %CYCLE L_0091: #line 1615 // 1615 get(base) ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 1616 // 1616 %EXIT %UNLESS sym = '_' %AND base # 0 %AND pend quote = 0; !change of base if (pop() != pop()) goto L_0092; if (pop() == pop()) goto L_0092; if (pop() == pop()) goto L_0065; L_0092: goto L_0013 /* GOTO */; L_0065: #line 1617 // 1617 pt = pt+1; glink(pt) = '_' pt = (pt + 1); #line 1617 glink [pt ] = 95; #line 1618 // 1618 read sym *(pop())() /* CALL */; #line 1619 // 1619 base = n base = n ; #line 1620 // 1620 %REPEAT goto L_0091 /* end of for loop and others? */; L_0013: #line 1622 // 1621 // 1622 %IF pend quote # 0 %START if (pop() == pop()) goto L_0013; #line 1623 // 1623 ->err %IF sym # cquote if (pop() == pop()) goto L_0065; goto L_007a /* JUMP */; L_0065: #line 1624 // 1624 readsym *(pop())() /* CALL */; #line 1625 // 1625 %FINISH L_0013: #line 1626 // 1626 %IF sym = '.' %START; !a real constant if (pop() != pop()) goto L_0013; #line 1627 // 1627 pt = pt+1; glink(pt) = '.' pt = (pt + 1); #line 1627 glink [pt ] = 46; #line 1628 // 1628 read sym *(pop())() /* CALL */; #line 1629 // 1629 type = real; n = base; base = 0; get(n) /*%own*/ type = 2; #line 1629 n = base ; #line 1629 base = 0; #line 1629 ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 1630 // 1630 %FINISH L_0013: #line 1632 // 1631 // 1632 %IF sym = '@' %START; !an exponent if (pop() != pop()) goto L_0013; #line 1633 // 1633 pt = pt+1; glink(pt) = '@'; k = pt pt = (pt + 1); #line 1633 glink [pt ] = 64; #line 1633 k = pt ; #line 1634 // 1634 readsym *(pop())() /* CALL */; #line 1635 // 1635 type = integer; base = 10 /*%own*/ type = 1; #line 1635 base = 10; #line 1636 // 1636 %IF sym = '-' %START if (pop() != pop()) goto L_0065; #line 1637 // 1637 read sym; get(10); n = -n *(pop())() /* CALL */; #line 1637 ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 1637 n = (-n ); #line 1638 // 1638 %FINISH %ELSE %START goto L_008a /* GOTO */; L_0065: #line 1639 // 1639 get(10) ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 1640 // 1640 %FINISH L_008a: #line 1641 // 1641 pt = k+1; glink(pt) = lp; litpool(lp) = n; lp = lp+1 pt = (k + 1); #line 1641 glink [pt ] = lp ; #line 1641 litpool [lp ] = n ; #line 1641 /*%own*/ lp = (lp + 1); #line 1642 // 1642 atom1 = error+10 %IF base = 0 if (pop() != pop()) goto L_0065; /*%own*/ atom1 = (32768 + 10); L_0065: #line 1643 // 1643 type = real; !exponents force the type /*%own*/ type = 2; #line 1644 // 1644 %FINISH L_0013: #line 1646 // 1645 // 1646 %IF type = real %START if (pop() != pop()) goto L_0013; #line 1647 // 1647 glink(strp) = pt glink [strp ] = pt ; #line 1648 // 1648 subatom = (strp)!16_2000; strp = pt+1 /*%own*/ subatom = (8192 | strp ); #line 1648 strp = (pt + 1); #line 1649 // 1649 %FINISH %ELSE %START goto L_0093 /* GOTO */; L_0013: #line 1650 // 1650 litpool(lp) = n litpool [lp ] = n ; #line 1651 // 1651 lp = lp+1 /*%own*/ lp = (lp + 1); #line 1652 // 1652 %FINISH L_0093: #line 1653 // 1653 %RETURN RETURN {NOT IMPLEMENTED YET} #line 1655 // 1654 // 1655 name: atom1 = 0 %AND %RETURN %IF 27 <= target %AND target <= 41 L_0073: #line 1655 if (pop() > pop()) goto L_0013; if (pop() > pop()) goto L_0013; /*%own*/ atom1 = 0; RETURN {NOT IMPLEMENTED YET} L_0013: #line 1656 // 1656 hash value = 0 hashvalue = 0; #line 1660 // 1657 // 1658 ! ABD changed to remove dependency on direct addressing // 1659 // 1660 dp = dmax+1 /*%own*/ dp = (dmax + 1); #line 1661 // 1661 dbase = dp dbase = dp ; #line 1662 // 1662 n = 0 n = 0; #line 1663 // 1663 dict(dp) = 0 dict [dp ] = 0; #line 1664 // 1664 %CYCLE L_0093: #line 1665 // 1665 hash value = hash value+(hash value+sym); !is this good enough? hashvalue = (hashvalue + (hashvalue + sym )); #line 1666 // 1666 dict(dp) = dict(dp) ! (sym << 8); dict [dp ] = ((sym << 8) | dict [dp ]); #line 1667 // 1667 n = n+1 n = (n + 1); #line 1668 // 1668 dp = dp+1 /*%own*/ dp = (dp + 1); #line 1669 // 1669 read sym *(pop())() /* CALL */; #line 1670 // 1670 %EXIT %IF symtype >= 0 if (pop() < pop()) goto L_0065; goto L_0013 /* GOTO */; L_0065: #line 1671 // 1671 dict(dp) = sym; dict [dp ] = sym ; #line 1672 // 1672 n = n+1 n = (n + 1); #line 1673 // 1673 read sym *(pop())() /* CALL */; #line 1674 // 1674 %EXIT %IF symtype >= 0 if (pop() < pop()) goto L_0065; goto L_0013 /* GOTO */; L_0065: #line 1675 // 1675 %REPEAT goto L_0093 /* end of for loop and others? */; L_0013: #line 1676 // 1676 %IF sym = cquote %START if (pop() != pop()) goto L_0013; #line 1677 // 1677 pend quote = 100 pendquote = 100; #line 1678 // 1678 ->symbols %IF hash value = 'M' if (pop() != pop()) goto L_0065; goto L_0077 /* JUMP */; L_0065: #line 1679 // 1679 read sym *(pop())() /* CALL */; #line 1680 // 1680 %IF hash value = 'X' %THEN base = 16 %AND ->bxk if (pop() != pop()) goto L_0065; base = 16; goto L_0062 /* JUMP */; L_0065: #line 1681 // 1681 %IF hash value = 'K' %C if (pop() == pop()) goto L_0094; if (pop() != pop()) goto L_0065; L_0094: base = 8; goto L_0062 /* JUMP */; L_0065: #line 1683 // 1682 %OR hash value = 'O' %THEN base = 8 %AND ->bxk // 1683 %IF hash value = 'B' %THEN base = 2 %AND ->bxk if (pop() != pop()) goto L_0065; base = 2; goto L_0062 /* JUMP */; L_0065: #line 1684 // 1684 ->err goto L_007a /* JUMP */; #line 1685 // 1685 %FINISH L_0013: #line 1686 // 1686 dict(dbase) = dict(dbase)!n dict [dbase ] = (n | dict [dbase ]); #line 1687 // 1687 %IF n&1 = 0 %THEN dp = dp+1 if (pop() != pop()) goto L_0013; /*%own*/ dp = (dp + 1); L_0013: #line 1688 // 1688 abandon(8) %IF dp >= dmin if (pop() < pop()) goto L_0013; ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; L_0013: #line 1690 // 1689 // 1690 atom2 = 90; !ident /*%own*/ atom2 = 90; #line 1691 // 1691 %IF last1 = 0 %AND sym = ':' %START; !label if (pop() != pop()) goto L_0013; if (pop() != pop()) goto L_0013; #line 1692 // 1692 limit = local; lookup(lab); %RETURN /*%own*/ limit = local ; #line 1692 ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 1692 RETURN {NOT IMPLEMENTED YET} #line 1693 // 1693 %FINISH L_0013: #line 1694 // 1694 %IF last1 = jump %START; !->label if (pop() != pop()) goto L_0013; #line 1695 // 1695 limit = local; lookup(lab+spec+used bit); %RETURN /*%own*/ limit = local ; #line 1695 ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 1695 RETURN {NOT IMPLEMENTED YET} #line 1696 // 1696 %FINISH L_0013: #line 1697 // 1697 %IF decl # 0 %AND target = 90 %START; !identifier if (pop() == pop()) goto L_0013; if (pop() != pop()) goto L_0013; #line 1698 // 1698 search base = fm base /*%own*/ searchbase = fmbase ; #line 1699 // 1699 limit = local; lookup(decl) /*%own*/ limit = local ; #line 1699 ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 1700 // 1700 search base = 0 /*%own*/ searchbase = 0; #line 1701 // 1701 %FINISH %ELSE %START goto L_0095 /* GOTO */; L_0013: #line 1702 // 1702 limit = 0; lookup(0) /*%own*/ limit = 0; #line 1702 ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 1703 // 1703 %FINISH L_0095: #line 1704 // 1704 %END L_0001: #line 1706 // 1705 // 1706 %INTEGERFN parsed machine code goto L_0001 /* GOTO */; int parsedmachinecode {ind obj} ; () #line 1708 // 1707 ! *opcode_?????????? // 1708 %routine octal(%integer n) goto L_0001 /* GOTO */; void octal ; ( int n ; ) #line 1709 // 1709 %integer m int m ; #line 1710 // 1710 m = n>>3 m = (n >> 3); #line 1711 // 1711 octal(m) %if m # 0 if (pop() == pop()) goto L_0013; ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; L_0013: #line 1712 // 1712 bp = bp+1; buff(bp) = n&7+'0' /*%own*/ bp = (bp + 1); #line 1712 %byte buff [bp ] = ((7 & n ) + 48); #line 1713 // 1713 %end L_0001: #line 1714 // 1714 atom1 = error %AND %RESULT=0 %UNLESS symtype = -2; !starts with letter if (pop() == pop()) goto L_0013; /*%own*/ atom1 = 32768; return(0); L_0013: #line 1715 // 1715 flush buffer %IF bp >= 128 if (pop() < pop()) goto L_0013; *(pop())() /* CALL */; L_0013: #line 1716 // 1716 bp=bp+1 %AND buff(bp)='w' /*%own*/ bp = (bp + 1); %byte buff [bp ] = 119; #line 1717 // 1717 %CYCLE L_0095: #line 1718 // 1718 bp=bp+1 %AND buff(bp)=sym /*%own*/ bp = (bp + 1); %byte buff [bp ] = sym ; #line 1719 // 1719 read sym *(pop())() /* CALL */; #line 1720 // 1720 %EXIT %IF symtype >= 0; !pull in letters and digits if (pop() < pop()) goto L_0065; goto L_0013 /* GOTO */; L_0065: #line 1721 // 1721 %REPEAT goto L_0095 /* end of for loop and others? */; L_0013: #line 1722 // 1722 bp=bp+1 %AND buff(bp)='_' /*%own*/ bp = (bp + 1); %byte buff [bp ] = 95; #line 1723 // 1723 %IF symtype # 0 %START; !not terminator if (pop() == pop()) goto L_0013; #line 1724 // 1724 atom1 = error %AND %result=0 %UNLESS sym = '_' if (pop() == pop()) goto L_0065; /*%own*/ atom1 = 32768; return(0); L_0065: #line 1725 // 1725 read sym *(pop())() /* CALL */; #line 1726 // 1726 %WHILE symtype # 0 %CYCLE L_008a: if (pop() == pop()) goto L_0065; #line 1727 // 1727 %IF symtype < 0 %START; !complex if (pop() >= pop()) goto L_0096; #line 1728 // 1728 code atom(0); %result=0 %IF atom1&error # 0 ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 1728 if (pop() == pop()) goto L_0097; return(0); L_0097: #line 1729 // 1729 %IF atom2 = const %AND type = integer %START if (pop() != pop()) goto L_0098; if (pop() != pop()) goto L_0098; #line 1730 // 1730 %IF subatom < 0 %THEN octal(tag(-subatom)_format) %C if (pop() >= pop()) goto L_0099; SELECT V_0002 ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; goto L_006d /* GOTO */; L_0099: ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; L_006d: #line 1732 // 1731 %ELSE octal(litpool(subatom)) // 1732 %FINISH %ELSE %START goto L_0030 /* GOTO */; L_0098: #line 1733 // 1733 %IF 91 <= atom1 %AND atom1 <= 109 %START if (pop() > pop()) goto L_009a; if (pop() > pop()) goto L_009a; #line 1734 // 1734 %if atom1 = 104 %and %c if (pop() != pop()) goto L_009b; SELECT V_0003 if (pop() != pop()) goto L_009b; #line 1736 // 1735 Tag(Subatom)_Flags&Closed = 0 %start // 1736 This = Subatom; Atom1 = Error+21 /*%own*/ this = subatom ; #line 1736 /*%own*/ atom1 = (32768 + 21); #line 1737 // 1737 %result = 0 return(0); #line 1738 // 1738 %finish L_009b: #line 1739 // 1739 op(' ', tag(subatom)_index) ASSPAR {NOT IMPLEMENTED YET} SELECT V_0004 ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 1740 // 1740 %FINISH %ELSE %START goto L_006d /* GOTO */; L_009a: #line 1741 // 1741 atom1 = error; %result=0 /*%own*/ atom1 = 32768; #line 1741 return(0); #line 1742 // 1742 %FINISH L_006d: #line 1743 // 1743 %FINISH L_0030: #line 1744 // 1744 %FINISH %ELSE %START goto L_006a /* GOTO */; L_0096: #line 1745 // 1745 bp=bp+1 %AND buff(bp)=sym; read sym /*%own*/ bp = (bp + 1); %byte buff [bp ] = sym ; #line 1745 *(pop())() /* CALL */; #line 1746 // 1746 %FINISH L_006a: #line 1747 // 1747 %REPEAT goto L_008a /* end of for loop and others? */; L_0065: #line 1748 // 1748 %FINISH L_0013: #line 1749 // 1749 bp=bp+1 %AND buff(bp)=';' /*%own*/ bp = (bp + 1); %byte buff [bp ] = 59; #line 1750 // 1750 %RESULT=1 return(1); #line 1751 // 1751 %END L_0001: #line 1753 // 1752 // 1753 cont = ' ' %IF gg = 0 if (pop() != pop()) goto L_0013; /*%own*/ cont = 32; L_0013: #line 1754 // 1754 last1 = 0; mapgg = 0 /*%own*/ last1 = 0; #line 1754 /*%own*/ mapgg = 0; #line 1755 // 1755 s = 0; ss = 0; sstype = -1; fdef = 0 s = 0; #line 1755 /*%own*/ ss = 0; #line 1755 /*%own*/ sstype = (-1); #line 1755 /*%own*/ fdef = 0; #line 1756 // 1756 fm base = 0 /*%own*/ fmbase = 0; #line 1757 // 1757 app = 0 /*%own*/ app = 0; #line 1762 // 1758 // 1759 !deal with alignment following an error in one statement // 1760 !of several on a line // 1761 // 1762 margin = column; !start of statement /*%own*/ margin = column ; #line 1764 // 1763 // 1764 pos = 0 /*%own*/ pos = 0; #line 1765 // 1765 strp = gmax+1; lp = 0 strp = (gmax + 1); #line 1765 /*%own*/ lp = 0; #line 1766 // 1766 tbase = tstart; !?????????????? tbase = tstart ; #line 1767 // 1767 local = tbase /*%own*/ local = tbase ; #line 1769 // 1768 // 1769 %IF gg = 0 %or ocount >= 0 %START; !data or not continuation(z) if (pop() == pop()) goto L_009c; if (pop() < pop()) goto L_0013; L_009c: #line 1770 // 1770 again:%WHILE sym type = 0 %CYCLE; !skip redundant terminators L_004a: #line 1770 L_009d: if (pop() != pop()) goto L_0065; #line 1771 // 1771 c = cont c = cont ; #line 1772 // 1772 cont = ' '; cont = '+' %IF ocount >= 0 /*%own*/ cont = 32; #line 1772 if (pop() < pop()) goto L_009e; /*%own*/ cont = 43; L_009e: #line 1773 // 1773 read sym *(pop())() /* CALL */; #line 1774 // 1774 cont = c /*%own*/ cont = c ; #line 1775 // 1775 %REPEAT goto L_009d /* end of for loop and others? */; L_0065: #line 1776 // 1776 ->skip %IF sym = '!'; !comment if (pop() != pop()) goto L_0065; goto L_004f /* JUMP */; L_0065: #line 1777 // 1777 this = -1 /*%own*/ this = (-1); #line 1778 // 1778 code atom(0) ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 1779 // 1779 %IF atom1 = comment %START if (pop() != pop()) goto L_0065; #line 1780 // 1780 skip: quote = 1 L_004f: #line 1780 /*%own*/ quote = 1; #line 1781 // 1781 c = cont c = cont ; #line 1782 // 1782 read sym %AND cont = c %WHILE sym # nl; !skip to end of line L_006a: if (pop() == pop()) goto L_009f; *(pop())() /* CALL */; /*%own*/ cont = c ; goto L_006a /* end of for loop and others? */; L_009f: #line 1783 // 1783 quote = 0; symtype = 0 /*%own*/ quote = 0; #line 1783 /*%own*/ symtype = 0; #line 1784 // 1784 ->again goto L_004a /* JUMP */; #line 1785 // 1785 %FINISH L_0065: #line 1786 // 1786 %FINISH L_0013: #line 1787 // 1787 decl = 0; mark = 0 /*%own*/ decl = 0; #line 1787 mark = 0; #line 1788 // 1788 gentype = 0; force = 0 /*%own*/ gentype = 0; #line 1788 /*%own*/ force = 0; #line 1789 // 1789 dim = 0; prot err = 0 /*%own*/ dim = 0; #line 1789 proterr = 0; #line 1790 // 1790 node = 0; nmax = 0; nmin = rec size+1 node = 0; #line 1790 /*%own*/ nmax = 0; #line 1790 /*%own*/ nmin = (520 + 1); #line 1791 // 1791 order = 1; gmin = max grammar+1 /*%own*/ order = 1; #line 1791 /*%own*/ gmin = (1720 + 1); #line 1792 // 1792 sstype = 0 %AND ->more %IF gg # 0; !continuation if (pop() == pop()) goto L_0013; /*%own*/ sstype = 0; goto L_0050 /* JUMP */; L_0013: #line 1793 // 1793 ptype = 0; spec given = 0 /*%own*/ ptype = 0; #line 1793 /*%own*/ specgiven = 0; #line 1795 // 1794 // 1795 stats = stats+1; op('O', lines) %IF perm = 0 /*%own*/ stats = (stats + 1); #line 1795 if (pop() != pop()) goto L_0013; ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; L_0013: #line 1797 // 1796 // 1797 ->fail1 %IF atom1&error # 0; !first atom faulty if (pop() == pop()) goto L_0013; goto L_0051 /* JUMP */; L_0013: #line 1799 // 1798 // 1799 %IF escape class # 0 %START; !enter the hard way after if (pop() == pop()) goto L_0013; #line 1800 // 1800 g = imp phrase; sstype = -1; ->a3 /*%own*/ g = 25; #line 1800 /*%own*/ sstype = (-1); #line 1800 goto L_0059 /* JUMP */; #line 1801 // 1801 %FINISH L_0013: #line 1803 // 1802 // 1803 g = initial(atom1); !pick up entry point /*%own*/ g = initial {ind obj} [atom1 ]; #line 1804 // 1804 %IF g = 0 %START; !invalid first atom if (pop() != pop()) goto L_0013; #line 1805 // 1805 g = initial(0); sstype = 0; ->a3; !declarator? /*%own*/ g = initial {ind obj} [0]; #line 1805 /*%own*/ sstype = 0; #line 1805 goto L_0059 /* JUMP */; #line 1806 // 1806 %FINISH L_0013: #line 1807 // 1807 %IF g < 0 %START; !phrase imp if (pop() >= pop()) goto L_0013; #line 1808 // 1808 g = g&255 /*%own*/ g = (255 & g ); #line 1809 // 1809 nmax = 1 /*%own*/ nmax = 1; #line 1810 // 1810 ar(1)_class = 0; ar(1)_link = 0; ar(1)_sub = imp phrase SELECT V_0001 %record {ARFM} ar [1] = 0; #line 1810 SELECT V_0003 %record {ARFM} ar [1] = 0; #line 1810 SELECT V_0002 %record {ARFM} ar [1] = 25; #line 1811 // 1811 %FINISH L_0013: #line 1813 // 1812 // 1813 gg = gram(g); class = gg&255; sstype = gg>>12&3-1 /*%own*/ gg = gram [g ]; #line 1813 /*%own*/ class = (255 & gg ); #line 1813 /*%own*/ sstype = ((3 & (gg >> 12)) - 1); #line 1814 // 1814 ->a1 goto L_00a0 /* JUMP */; #line 1816 // 1815 // 1816 act(194): ptype = type; papp = app; pformat = format; ->more SLABEL(167): #line 1816 /*%own*/ ptype = type ; #line 1816 /*%own*/ papp = app ; #line 1816 /*%own*/ pformat = format ; #line 1816 goto L_0050 /* JUMP */; #line 1817 // 1817 act(196):k =g+1; ->a610 SLABEL(167): #line 1817 k = (g + 1); #line 1817 goto L_00a1 /* JUMP */; #line 1818 // 1818 act(188):k = ar(nmax)_sub+1 SLABEL(167): #line 1818 SELECT V_0002 k = (%record {ARFM} ar [nmax ] + 1); #line 1819 // 1819 a610: papp = glink(k) L_00a1: #line 1819 /*%own*/ papp = glink [k ]; #line 1820 // 1820 k = gram(k) k = gram [k ]; #line 1821 // 1821 ->more %IF k = 0; !%NAME if (pop() != pop()) goto L_0013; goto L_0050 /* JUMP */; L_0013: #line 1822 // 1822 ptype = k&7; pformat = k>>3 /*%own*/ ptype = (7 & k ); #line 1822 /*%own*/ pformat = (k >> 3); #line 1823 // 1823 act(183):k = type; gentype = k %IF gentype = 0 %OR k = real SLABEL(167): #line 1823 k = type ; #line 1823 if (pop() == pop()) goto L_00a2; if (pop() != pop()) goto L_0013; L_00a2: /*%own*/ gentype = k ; L_0013: #line 1824 // 1824 %IF pformat < 0 %START; !general type if (pop() >= pop()) goto L_0013; #line 1825 // 1825 app = papp; format = pformat /*%own*/ app = papp ; #line 1825 /*%own*/ format = pformat ; #line 1826 // 1826 k = real %IF ptype = real %AND type = integer if (pop() != pop()) goto L_0065; if (pop() != pop()) goto L_0065; k = 2; L_0065: #line 1827 // 1827 k = force %AND force = 0 %IF force # 0 if (pop() == pop()) goto L_0065; k = force ; /*%own*/ force = 0; L_0065: #line 1828 // 1828 %FINISH L_0013: #line 1829 // 1829 ->fail2 %UNLESS papp = app %AND (ptype = k %OR ptype = 0) if (pop() != pop()) goto L_00a3; if (pop() == pop()) goto L_0013; if (pop() == pop()) goto L_0013; L_00a3: goto L_00a4 /* JUMP */; L_0013: #line 1830 // 1830 ->more %IF pformat=format %OR pformat = 0 %OR format = 0 if (pop() == pop()) goto L_00a5; if (pop() == pop()) goto L_00a5; if (pop() != pop()) goto L_0013; L_00a5: goto L_0050 /* JUMP */; L_0013: #line 1831 // 1831 ->fail2 goto L_00a4 /* JUMP */; #line 1832 // 1832 act(197):arp == ar(nmin) SLABEL(167): #line 1832 %record {ARFM} /*%name*/ arp = &%record {ARFM} ar [nmin ]; #line 1833 // 1833 k = arp_sub SELECT V_0002 k = %record {ARFM} *arp ; #line 1834 // 1834 ->fail3 %UNLESS block form = k&15 if (pop() == pop()) goto L_0013; goto L_00a6 /* JUMP */; L_0013: #line 1835 // 1835 arp_sub = k>>4 SELECT V_0002 %record {ARFM} *arp = (k >> 4); #line 1837 // 1836 // 1837 type = block type /*%own*/ type = blocktype ; #line 1838 // 1838 ptype = block type; pformat = block fm; papp = app /*%own*/ ptype = blocktype ; #line 1838 /*%own*/ pformat = blockfm ; #line 1838 /*%own*/ papp = app ; #line 1839 // 1839 pformat = -1 %IF ptype # record if (pop() == pop()) goto L_0013; /*%own*/ pformat = (-1); L_0013: #line 1840 // 1840 ->more goto L_0050 /* JUMP */; #line 1841 // 1841 act(195):->Fail2 %if Type # 0 %and Type # Integer %and %c SLABEL(167): #line 1841 if (pop() == pop()) goto L_0013; if (pop() == pop()) goto L_0013; if (pop() == pop()) goto L_0013; goto L_00a4 /* JUMP */; L_0013: #line 1843 // 1842 Type # Real // 1843 arp == ar(nmin) %record {ARFM} /*%name*/ arp = &%record {ARFM} ar [nmin ]; #line 1844 // 1844 k = arp_sub SELECT V_0002 k = %record {ARFM} *arp ; #line 1845 // 1845 arp_sub = k>>2 SELECT V_0002 %record {ARFM} *arp = (k >> 2); #line 1846 // 1846 k = k&3 k = (3 & k ); #line 1850 // 1847 !1 = check integer // 1848 !2 = check real // 1849 !3 = check real + int // 1850 ->more %IF k = 0; !0 = no action if (pop() != pop()) goto L_0013; goto L_0050 /* JUMP */; L_0013: #line 1851 // 1851 %IF k = 1 %START if (pop() != pop()) goto L_0013; #line 1852 // 1852 force = integer /*%own*/ force = 1; #line 1853 // 1853 ->more %IF type = integer %OR type = 0 if (pop() == pop()) goto L_00a7; if (pop() != pop()) goto L_0065; L_00a7: goto L_0050 /* JUMP */; L_0065: #line 1854 // 1854 ->fail2 goto L_00a4 /* JUMP */; #line 1855 // 1855 %FINISH L_0013: #line 1856 // 1856 ->fail2 %UNLESS ptype = real %or ptype = 0 ;!{or added?} if (pop() == pop()) goto L_0013; if (pop() == pop()) goto L_0013; goto L_00a4 /* JUMP */; L_0013: #line 1857 // 1857 force = integer %IF k = 3 if (pop() != pop()) goto L_0013; /*%own*/ force = 1; L_0013: #line 1858 // 1858 ->more goto L_0050 /* JUMP */; #line 1859 // 1859 act(198):;!%OTHER SLABEL(167): #line 1860 // 1860 k = gg>>8&15 k = (15 & (gg >> 8)); #line 1861 // 1861 %IF k = 0 %START; !restore atom if (pop() != pop()) goto L_0013; #line 1862 // 1862 atom1 = last1 /*%own*/ atom1 = last1 ; #line 1863 // 1863 ->more goto L_0050 /* JUMP */; #line 1864 // 1864 %FINISH L_0013: #line 1865 // 1865 %IF k = 1 %START; !test string if (pop() != pop()) goto L_0013; #line 1866 // 1866 ->fail2 %UNLESS type = stringv if (pop() == pop()) goto L_0065; goto L_00a4 /* JUMP */; L_0065: #line 1867 // 1867 ->more goto L_0050 /* JUMP */; #line 1868 // 1868 %FINISH L_0013: #line 1869 // 1869 %if k = 2 %start ;!{fault record comparisons} if (pop() != pop()) goto L_0013; #line 1870 // 1870 ->fail2 %if type = record if (pop() != pop()) goto L_0065; goto L_00a4 /* JUMP */; L_0065: #line 1871 // 1871 ->more goto L_0050 /* JUMP */; #line 1872 // 1872 %finish L_0013: #line 1873 // 1873 %if k = 3 %start; !check OWN variable coming if (pop() != pop()) goto L_0013; #line 1874 // 1874 code atom(0) ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 1875 // 1875 ->A7 %if atom flags&own bit = 0 if (pop() != pop()) goto L_0065; goto L_00a8 /* JUMP */; L_0065: #line 1876 // 1876 ->more goto L_0050 /* JUMP */; #line 1877 // 1877 %finish L_0013: #line 1878 // 1878 for warn = pos1 %IF x <= local; !%FORTEST if (pop() > pop()) goto L_0013; /*%own*/ forwarn = pos1 ; L_0013: #line 1879 // 1879 ->more goto L_0050 /* JUMP */; #line 1880 // 1880 paction(1):%IF type = record %THEN g = phrase(242) %ELSE pformat = -1 SLABEL(168): #line 1880 if (pop() != pop()) goto L_0013; /*%own*/ g = phrase [242]; goto L_00a9 /* GOTO */; L_0013: /*%own*/ pformat = (-1); L_00a9: #line 1881 // 1881 ->a3 goto L_0059 /* JUMP */; #line 1882 // 1882 paction(2):ptype = real; pformat = -1; ->a3 SLABEL(168): #line 1882 /*%own*/ ptype = 2; #line 1882 /*%own*/ pformat = (-1); #line 1882 goto L_0059 /* JUMP */; #line 1883 // 1883 paction(3):ptype = stringv; pformat = -1; ->a3 SLABEL(168): #line 1883 /*%own*/ ptype = 3; #line 1883 /*%own*/ pformat = (-1); #line 1883 goto L_0059 /* JUMP */; #line 1884 // 1884 paction(4):ptype = integer; pformat = -1; ->a3 SLABEL(168): #line 1884 /*%own*/ ptype = 1; #line 1884 /*%own*/ pformat = (-1); #line 1884 goto L_0059 /* JUMP */; #line 1885 // 1885 paction(5):->a3 %if ptype = integer SLABEL(168): #line 1885 if (pop() != pop()) goto L_0013; goto L_0059 /* JUMP */; L_0013: #line 1886 // 1886 g = phrase(212) %AND pformat=-1 %IF ptype = real if (pop() != pop()) goto L_0013; /*%own*/ g = phrase [212]; /*%own*/ pformat = (-1); L_0013: #line 1887 // 1887 g = phrase(213) %IF ptype = stringv if (pop() != pop()) goto L_0013; /*%own*/ g = phrase [213]; L_0013: #line 1888 // 1888 ->a3 goto L_0059 /* JUMP */; #line 1889 // 1889 paction(6):ptype = gram(ar(nmax)_sub+1)&7; pformat = -1; ->a3 SLABEL(168): #line 1889 SELECT V_0002 /*%own*/ ptype = (7 & gram [(%record {ARFM} ar [nmax ] + 1)]); #line 1889 /*%own*/ pformat = (-1); #line 1889 goto L_0059 /* JUMP */; #line 1890 // 1890 paction(7):ptype=real %IF ptype = integer; pformat = -1; ->a3 SLABEL(168): #line 1890 if (pop() != pop()) goto L_0013; /*%own*/ ptype = 2; L_0013: #line 1890 /*%own*/ pformat = (-1); #line 1890 goto L_0059 /* JUMP */; #line 1892 // 1891 // 1892 a1: last1 = class; atom1 = 0; s = subatom L_00a0: #line 1892 /*%own*/ last1 = class ; #line 1892 /*%own*/ atom1 = 0; #line 1892 s = subatom ; #line 1894 // 1893 // 1894 a2: %IF gg&trans bit = 0 %START; !insert into analysis record L_00aa: #line 1894 if (pop() != pop()) goto L_0013; #line 1895 // 1895 z == node /*%name*/ z = &node ; #line 1896 // 1896 %CYCLE; !insert cell in order L_00ab: #line 1897 // 1897 k = z k = *z ; #line 1898 // 1898 %EXIT %IF gg&order bits = 0 %OR k = 0 if (pop() == pop()) goto L_00ac; if (pop() != pop()) goto L_00ad; L_00ac: goto L_0065 /* GOTO */; L_00ad: #line 1899 // 1899 gg = gg-order bit; z == ar(k)_link /*%own*/ gg = (gg - 4096); #line 1899 SELECT V_0003 /*%name*/ z = &%record {ARFM} ar [k ]; #line 1900 // 1900 %REPEAT goto L_00ab /* end of for loop and others? */; L_0065: #line 1901 // 1901 gg = map gg %IF map gg # 0 %AND gg&255 = var if (pop() == pop()) goto L_0065; if (pop() != pop()) goto L_0065; /*%own*/ gg = mapgg ; L_0065: #line 1902 // 1902 nmin = nmin-1; ->fail0 %IF nmin = nmax /*%own*/ nmin = (nmin - 1); #line 1902 if (pop() != pop()) goto L_0065; goto L_0072 /* JUMP */; L_0065: #line 1903 // 1903 z = nmin *z = nmin ; #line 1904 // 1904 arp == ar(nmin) %record {ARFM} /*%name*/ arp = &%record {ARFM} ar [nmin ]; #line 1905 // 1905 arp_sub = s; arp_class = (gg&255)!mark SELECT V_0002 %record {ARFM} *arp = s ; #line 1905 SELECT V_0001 %record {ARFM} *arp = (mark | (255 & gg )); #line 1906 // 1906 arp_link = k SELECT V_0003 %record {ARFM} *arp = k ; #line 1907 // 1907 %FINISH L_0013: #line 1908 // 1908 mark = 0; map gg = 0 mark = 0; #line 1908 /*%own*/ mapgg = 0; #line 1910 // 1909 // 1910 more: g = glink(g); !chain down the grammar L_0050: #line 1910 /*%own*/ g = glink [g ]; #line 1912 // 1911 // 1912 paction(0): SLABEL(168): #line 1913 // 1913 a3: gg = gram(g); class = gg&255 L_0059: #line 1913 /*%own*/ gg = gram [g ]; #line 1913 /*%own*/ class = (255 & gg ); #line 1914 // 1914 trace analysis %IF diag&1 # 0 if (pop() == pop()) goto L_0013; *(pop())() /* CALL */; L_0013: #line 1915 // 1915 ->a5 %IF class = 0; !end of phrase if (pop() != pop()) goto L_0013; goto L_0073 /* JUMP */; L_0013: #line 1917 // 1916 // 1917 %IF class < actions %START; !not a phrase or an action if (pop() >= pop()) goto L_0013; #line 1918 // 1918 class = atomic(class) %IF class >= figurative if (pop() < pop()) goto L_0065; /*%own*/ class = %byte atomic {ind obj} [class ]; L_0065: #line 1919 // 1919 ->a2 %IF class >= manifest if (pop() < pop()) goto L_0065; goto L_00aa /* JUMP */; L_0065: #line 1920 // 1920 code atom(class) %IF atom1 = 0 if (pop() != pop()) goto L_0065; ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; L_0065: #line 1921 // 1921 %IF escape class # 0 %START; !escape to new grammar if (pop() == pop()) goto L_0065; #line 1922 // 1922 class = escape class; escape class = 0 /*%own*/ class = escapeclass ; #line 1922 /*%own*/ escapeclass = 0; #line 1923 // 1923 g = g+escape /*%own*/ g = (g + 4096); #line 1928 // 1924 // 1925 !note that following an escape the next item is // 1926 !forced to be transparent! // 1927 // 1928 esc: gg = 0 L_0074: #line 1928 /*%own*/ gg = 0; #line 1929 // 1929 arp == ar(nmax+1) %record {ARFM} /*%name*/ arp = &%record {ARFM} ar [(nmax + 1)]; #line 1930 // 1930 arp_papp = papp; arp_x = x; ->a4 SELECT V_0005 %record {ARFM} *arp = papp ; #line 1930 SELECT V_0007 %record {ARFM} *arp = x ; #line 1930 goto L_0075 /* JUMP */; #line 1931 // 1931 %FINISH L_0065: #line 1933 // 1932 // 1933 ->a1 %IF class = atom1 %OR class = atom2 if (pop() == pop()) goto L_00ae; if (pop() != pop()) goto L_0065; L_00ae: goto L_00a0 /* JUMP */; L_0065: #line 1935 // 1934 // 1935 a7: ->fail1 %IF gg >= 0; !no alternative L_00a8: #line 1935 if (pop() < pop()) goto L_0065; goto L_0051 /* JUMP */; L_0065: #line 1936 // 1936 g = g+1 /*%own*/ g = (g + 1); #line 1937 // 1937 ->a3 goto L_0059 /* JUMP */; #line 1938 // 1938 %FINISH L_0013: #line 1940 // 1939 // 1940 %IF class >= phrasal %START; !a phrase if (pop() < pop()) goto L_0013; #line 1941 // 1941 a4: nmax = nmax+1; ->fail0 %IF nmax = nmin L_0075: #line 1941 /*%own*/ nmax = (nmax + 1); #line 1941 if (pop() != pop()) goto L_0065; goto L_0072 /* JUMP */; L_0065: #line 1942 // 1942 arp == ar(nmax) %record {ARFM} /*%name*/ arp = &%record {ARFM} ar [nmax ]; #line 1943 // 1943 arp_ptype = ptype SELECT V_0004 %record {ARFM} *arp = ptype ; #line 1944 // 1944 arp_pos = pos1 SELECT V_0008 %record {ARFM} *arp = pos1 ; #line 1945 // 1945 arp_pformat = pformat SELECT V_0006 %record {ARFM} *arp = pformat ; #line 1946 // 1946 arp_link = gentype SELECT V_0003 %record {ARFM} *arp = gentype ; #line 1947 // 1947 arp_class = node SELECT V_0001 %record {ARFM} *arp = node ; #line 1948 // 1948 arp_sub = g SELECT V_0002 %record {ARFM} *arp = g ; #line 1949 // 1949 node = 0 node = 0; #line 1950 // 1950 g = phrase(class) /*%own*/ g = phrase [class ]; #line 1951 // 1951 ptype = force %AND force = 0 %IF force # 0 if (pop() == pop()) goto L_0065; /*%own*/ ptype = force ; /*%own*/ force = 0; L_0065: #line 1952 // 1952 gentype = 0 /*%own*/ gentype = 0; #line 1953 // 1953 ->paction(gg>>8&15) ->SJUMP(168) #line 1954 // 1954 %FINISH L_0013: #line 1956 // 1955 // 1956 ->act(class); !only actions left ->SJUMP(167) #line 1958 // 1957 // 1958 a5: ;!reverse links L_0073: #line 1960 // 1959 // 1960 s = 0 s = 0; #line 1961 // 1961 %WHILE node # 0 %CYCLE L_00a9: if (pop() == pop()) goto L_0013; #line 1962 // 1962 z == ar(node)_link SELECT V_0003 /*%name*/ z = &%record {ARFM} ar [node ]; #line 1963 // 1963 k = z; z = s; s = node; node = k k = *z ; #line 1963 *z = s ; #line 1963 s = node ; #line 1963 node = k ; #line 1964 // 1964 %REPEAT goto L_00a9 /* end of for loop and others? */; L_0013: #line 1965 // 1965 ss = s /*%own*/ ss = s ; #line 1967 // 1966 // 1967 a6: %IF nmax # 0 %START L_0076: #line 1967 if (pop() == pop()) goto L_0013; #line 1968 // 1968 k = gentype; !type of phrase k = gentype ; #line 1969 // 1969 arp == ar(nmax); nmax = nmax-1 %record {ARFM} /*%name*/ arp = &%record {ARFM} ar [nmax ]; #line 1969 /*%own*/ nmax = (nmax - 1); #line 1970 // 1970 node = arp_class SELECT V_0001 node = %record {ARFM} *arp ; #line 1971 // 1971 gentype = arp_link SELECT V_0003 /*%own*/ gentype = %record {ARFM} *arp ; #line 1972 // 1972 ptype = arp_ptype SELECT V_0004 /*%own*/ ptype = %record {ARFM} *arp ; #line 1973 // 1973 pformat = arp_pformat SELECT V_0006 /*%own*/ pformat = %record {ARFM} *arp ; #line 1974 // 1974 g = arp_sub SELECT V_0002 /*%own*/ g = %record {ARFM} *arp ; #line 1975 // 1975 %IF g&escape # 0 %START if (pop() == pop()) goto L_0065; #line 1976 // 1976 g = g-escape /*%own*/ g = (g - 4096); #line 1977 // 1977 papp = arp_papp SELECT V_0005 /*%own*/ papp = %record {ARFM} *arp ; #line 1978 // 1978 mark = 255 mark = 255; #line 1979 // 1979 subatom = s /*%own*/ subatom = s ; #line 1980 // 1980 ->a3 goto L_0059 /* JUMP */; #line 1981 // 1981 %FINISH L_0065: #line 1982 // 1982 gentype = k %IF gentype = 0 %OR k = real if (pop() == pop()) goto L_00af; if (pop() != pop()) goto L_0065; L_00af: /*%own*/ gentype = k ; L_0065: #line 1983 // 1983 type = gen type /*%own*/ type = gentype ; #line 1985 // 1984 // 1985 k = gg; !exit-point code k = gg ; #line 1986 // 1986 %CYCLE L_00b0: #line 1987 // 1987 gg = gram(g) /*%own*/ gg = gram [g ]; #line 1988 // 1988 ->a2 %IF k = 0 if (pop() != pop()) goto L_00b1; goto L_00aa /* JUMP */; L_00b1: #line 1989 // 1989 ->fail1 %IF gg >= 0; !no alternative phrase if (pop() < pop()) goto L_00b2; goto L_0051 /* JUMP */; L_00b2: #line 1990 // 1990 k = k-order bit k = (k - 4096); #line 1991 // 1991 g = g+1; !sideways step /*%own*/ g = (g + 1); #line 1992 // 1992 %REPEAT goto L_00b0 /* end of for loop and others? */; #line 1994 // 1993 // 1994 %FINISH L_0013: #line 1996 // 1995 // 1996 Fault(4) %IF copy # 0 if (pop() == pop()) goto L_0013; ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; L_0013: #line 1997 // 1997 fault(13) %IF order = 0 if (pop() != pop()) goto L_0013; ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; L_0013: #line 1998 // 1998 fault(-4) %IF for warn # 0 if (pop() == pop()) goto L_0013; ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; L_0013: #line 1999 // 1999 pos1 = 0 /*%own*/ pos1 = 0; #line 2000 // 2000 fault rate = fault rate-1 /*%own*/ faultrate = (faultrate - 1); #line 2001 // 2001 %RETURN RETURN {NOT IMPLEMENTED YET} #line 2003 // 2002 // 2003 act(193):gg = 0 %AND ->a5 %UNLESS sym = '=' %or sym = '<'; !cdummy SLABEL(167): #line 2003 if (pop() == pop()) goto L_0013; if (pop() == pop()) goto L_0013; /*%own*/ gg = 0; goto L_0073 /* JUMP */; L_0013: #line 2004 // 2004 act(181):atom1 = amap(decl&15); !dummy SLABEL(167): #line 2004 /*%own*/ atom1 = %byte amap {ind obj} [(15 & decl )]; #line 2005 // 2005 ->more goto L_0050 /* JUMP */; #line 2007 // 2006 // 2007 act(182):class = escdec; g = glink(g)!escape SLABEL(167): #line 2007 /*%own*/ class = 252; #line 2007 /*%own*/ g = (4096 | glink [g ]); #line 2008 // 2008 decl = 0; otype = 0; ->esc; !decl /*%own*/ decl = 0; #line 2008 /*%own*/ otype = 0; #line 2008 goto L_0074 /* JUMP */; #line 2010 // 2009 // 2010 act(199):; !compile SLABEL(167): #line 2012 // 2011 // 2012 s = 0 s = 0; #line 2013 // 2013 %WHILE node # 0 %CYCLE L_00b3: if (pop() == pop()) goto L_0013; #line 2014 // 2014 z == ar(node)_link SELECT V_0003 /*%name*/ z = &%record {ARFM} ar [node ]; #line 2015 // 2015 k = z; z = s; s = node; node = k k = *z ; #line 2015 *z = s ; #line 2015 s = node ; #line 2015 node = k ; #line 2016 // 2016 %repeat goto L_00b3 /* end of for loop and others? */; L_0013: #line 2017 // 2017 ss = s /*%own*/ ss = s ; #line 2019 // 2018 // 2019 code atom(28) %IF quote # 0; !expend if (pop() == pop()) goto L_0013; ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; L_0013: #line 2020 // 2020 compile; ->more %IF atom1&error = 0 *(pop())() /* CALL */; #line 2020 if (pop() != pop()) goto L_0013; goto L_0050 /* JUMP */; L_0013: #line 2021 // 2021 ->fail1 goto L_0051 /* JUMP */; #line 2023 // 2022 // 2023 act(184):->fail4 %UNLESS type = integer SLABEL(167): #line 2023 if (pop() == pop()) goto L_0013; goto L_0077 /* JUMP */; L_0013: #line 2024 // 2024 %IF subatom < 0 %THEN lit = tag(-subatom)_format %C if (pop() >= pop()) goto L_0013; SELECT V_0002 /*%own*/ lit = %record {TAGFM} tag [(-subatom )]; goto L_00b4 /* GOTO */; L_0013: /*%own*/ lit = litpool [subatom ]; L_00b4: #line 2026 // 2025 %ELSE lit = lit pool(subatom) // 2026 ->fail4 %IF lit # 0 if (pop() == pop()) goto L_0013; goto L_0077 /* JUMP */; L_0013: #line 2027 // 2027 ->more goto L_0050 /* JUMP */; #line 2028 // 2028 act(185):; !apply parameters SLABEL(167): #line 2029 // 2029 s = 0 s = 0; #line 2030 // 2030 %WHILE node # 0 %CYCLE L_00b4: if (pop() == pop()) goto L_0013; #line 2031 // 2031 z == ar(node)_link SELECT V_0003 /*%name*/ z = &%record {ARFM} ar [node ]; #line 2032 // 2032 k = z; z = s; s = node; node = k k = *z ; #line 2032 *z = s ; #line 2032 s = node ; #line 2032 node = k ; #line 2033 // 2033 %REPEAT goto L_00b4 /* end of for loop and others? */; L_0013: #line 2034 // 2034 ss = s /*%own*/ ss = s ; #line 2036 // 2035 // 2036 atom1 = ar(s)_class; atom2 = 0 SELECT V_0001 /*%own*/ atom1 = %record {ARFM} ar [s ]; #line 2036 /*%own*/ atom2 = 0; #line 2037 // 2037 atom1 = var %IF atom1 = 97 %OR atom1 = 98 if (pop() == pop()) goto L_00b5; if (pop() != pop()) goto L_0013; L_00b5: /*%own*/ atom1 = 91; L_0013: #line 2038 // 2038 arp == ar(nmax) %record {ARFM} /*%name*/ arp = &%record {ARFM} ar [nmax ]; #line 2039 // 2039 x = arp_x SELECT V_0007 /*%own*/ x = %record {ARFM} *arp ; #line 2040 // 2040 pos1 = arp_pos SELECT V_0008 /*%own*/ pos1 = %record {ARFM} *arp ; #line 2041 // 2041 pos2 = 0 /*%own*/ pos2 = 0; #line 2042 // 2042 app = 0 /*%own*/ app = 0; #line 2043 // 2043 format = tag(x)_format SELECT V_0002 /*%own*/ format = %record {TAGFM} tag [x ]; #line 2044 // 2044 flags = tag(x)_flags SELECT V_0003 flags = %record {TAGFM} tag [x ]; #line 2045 // 2045 type = flags>>4&7 /*%own*/ type = (7 & (flags >> 4)); #line 2046 // 2046 protection = flags&prot /*%own*/ protection = (256 & flags ); #line 2047 // 2047 protection = 0 %IF flags&aname # 0 if (pop() == pop()) goto L_0013; /*%own*/ protection = 0; L_0013: #line 2049 // 2048 // 2049 %IF flags&subname # 0 %AND format # 0 %START if (pop() == pop()) goto L_0013; if (pop() == pop()) goto L_0013; #line 2050 // 2050 ->fail1 %if format selected = 0 *(pop())() /* CALL */; if (pop() != pop()) goto L_0065; goto L_0051 /* JUMP */; L_0065: #line 2051 // 2051 %FINISH L_0013: #line 2053 // 2052 // 2053 ->a6 goto L_0076 /* JUMP */; #line 2055 // 2054 // 2055 act(187):protection = prot; ->more; !%SETPROT SLABEL(167): #line 2055 /*%own*/ protection = 256; #line 2055 goto L_0050 /* JUMP */; #line 2056 // 2056 act(186):->More %if protection&prot = 0 SLABEL(167): #line 2056 if (pop() != pop()) goto L_0013; goto L_0050 /* JUMP */; L_0013: #line 2057 // 2057 prot err = nmin proterr = nmin ; #line 2058 // 2058 ->A7 goto L_00a8 /* JUMP */; #line 2059 // 2059 act(191):k = protection; !%GUARD SLABEL(167): #line 2059 k = protection ; #line 2060 // 2060 code atom(0) ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2061 // 2061 protection = k %IF atom flags&aname = 0 if (pop() != pop()) goto L_0013; /*%own*/ protection = k ; L_0013: #line 2062 // 2062 ->more goto L_0050 /* JUMP */; #line 2064 // 2063 // 2064 act(192):->fail1 %IF parsed machine code=0 SLABEL(167): #line 2064 *(pop())() /* CALL */; if (pop() != pop()) goto L_0013; goto L_0051 /* JUMP */; L_0013: #line 2065 // 2065 ->more goto L_0050 /* JUMP */; #line 2067 // 2066 // 2067 act(189):k = gapp; !%GAPP SLABEL(167): #line 2067 *(pop())() /* CALL */; k = %function gapp {ind obj} ; #line 2068 // 2068 delete names(1) ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2069 // 2069 tmax = tbase; tbase = gram (gmin); !restore tmax tmax = tbase ; #line 2069 tbase = gram [gmin ]; #line 2070 // 2070 local= tbase /*%own*/ local = tbase ; #line 2071 // 2071 gmin = gmin+1 /*%own*/ gmin = (gmin + 1); #line 2073 // 2072 // 2073 x = ar(ar(nmax)_class)_sub SELECT V_0001 SELECT V_0002 /*%own*/ x = %record {ARFM} ar [%record {ARFM} ar [nmax ]]; #line 2074 // 2074 tag(x)_app = k; !update app SELECT V_0001 %record {TAGFM} tag [x ] = k ; #line 2075 // 2075 ->more goto L_0050 /* JUMP */; #line 2077 // 2076 // 2077 act(190):gmin = gmin-1; !%LOCAL SLABEL(167): #line 2077 /*%own*/ gmin = (gmin - 1); #line 2078 // 2078 abandon(2) %IF gmin <= gmax if (pop() > pop()) goto L_0013; ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; L_0013: #line 2079 // 2079 gram (gmin) = tbase; tbase = tmax gram [gmin ] = tbase ; #line 2079 tbase = tmax ; #line 2080 // 2080 local = tbase /*%own*/ local = tbase ; #line 2081 // 2081 ->more goto L_0050 /* JUMP */; #line 2085 // 2082 // 2083 ! errors // 2084 // 2085 fail4:k = error+10; ->failed; !*size L_0077: #line 2085 k = (32768 + 10); #line 2085 goto L_007a /* JUMP */; #line 2086 // 2086 fail3:k = error+7; ->failed; !*context L_00a6: #line 2086 k = (32768 + 7); #line 2086 goto L_007a /* JUMP */; #line 2087 // 2087 fail2:k = error+5; pos2 = 0; ->failed; !*type L_00a4: #line 2087 k = (32768 + 5); #line 2087 /*%own*/ pos2 = 0; #line 2087 goto L_007a /* JUMP */; #line 2088 // 2088 fail0:k = error+3; ->failed; !*too complex L_0072: #line 2088 k = (32768 + 3); #line 2088 goto L_007a /* JUMP */; #line 2089 // 2089 fail1:k = atom1; pos2 = 0 L_0051: #line 2089 k = atom1 ; #line 2089 /*%own*/ pos2 = 0; #line 2091 // 2090 // 2091 failed: L_007a: #line 2092 // 2092 %IF diag&32 # 0 %START if (pop() == pop()) goto L_0013; #line 2093 // 2093 printstring("Atom1 ="); write(atom1, 3) PUSHS "Atom1 =" ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2093 ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2094 // 2094 printstring(" Atom2 ="); write(atom2, 3) PUSHS " Atom2 =" ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2094 ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2095 // 2095 printstring(" subatom ="); write(subatom, 3); newline PUSHS " subatom =" ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2095 ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2095 *(pop())() /* CALL */; #line 2096 // 2096 printstring("Type ="); write(type, 1) PUSHS "Type =" ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2096 ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2097 // 2097 printstring(" Ptype ="); write(ptype, 1); newline PUSHS " Ptype =" ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2097 ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2097 *(pop())() /* CALL */; #line 2098 // 2098 printstring("App ="); write(app, 1) PUSHS "App =" ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2098 ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2099 // 2099 printstring(" Papp ="); write(papp, 1); newline PUSHS " Papp =" ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2099 ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2099 *(pop())() /* CALL */; #line 2100 // 2100 printstring("Format ="); write(format, 1) PUSHS "Format =" ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2100 ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2101 // 2101 printstring(" Pformat ="); write(pformat, 1); newline PUSHS " Pformat =" ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2101 ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2101 *(pop())() /* CALL */; #line 2103 // 2102 !%SIGNAL 13,15 // 2103 %FINISH L_0013: #line 2105 // 2104 // 2105 quote = 0 %AND readsym %WHILE sym # nl %AND sym # ';' L_00b6: if (pop() == pop()) goto L_0013; if (pop() == pop()) goto L_0013; /*%own*/ quote = 0; *(pop())() /* CALL */; goto L_00b6 /* end of for loop and others? */; L_0013: #line 2106 // 2106 %IF k&error # 0 %START if (pop() == pop()) goto L_0013; #line 2107 // 2107 fault(k&255) ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2108 // 2108 %FINISH %ELSE %START goto L_00b7 /* GOTO */; L_0013: #line 2109 // 2109 %IF prot err = nmin %THEN fault(14) %ELSE fault(0) if (pop() != pop()) goto L_0065; ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; goto L_00b8 /* GOTO */; L_0065: ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; L_00b8: #line 2110 // 2110 %FINISH L_00b7: #line 2111 // 2111 gg = 0; ss = 0; symtype = 0 /*%own*/ gg = 0; #line 2111 /*%own*/ ss = 0; #line 2111 /*%own*/ symtype = 0; #line 2112 // 2112 %END; !of analyse L_0001: #line 2114 // 2113 // 2114 %ROUTINE compile goto L_0001 /* GOTO */; void compile ; () #line 2116 // 2115 // 2116 %CONSTINTEGER then = 4, else = 8, loop = 16 #line 2118 // 2117 // 2118 %SWITCH c(0:actions), litop(1:12) BOUNDS {NOT IMPLEMENTED YET} %switch c ; BOUNDS {NOT IMPLEMENTED YET} %switch litop ; #line 2120 // 2119 // 2120 %CONSTBYTEINTEGERARRAY operator(1:14) = %C BOUNDS {NOT IMPLEMENTED YET} const char int *operator {ind obj} ; INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 #line 2124 // 2121 '[', ']', 'X', '/', '&', '!', '%', '+', // 2122 '-', '*', 'Q', 'x', '.', 'v' // 2123 // 2124 %CONSTBYTEINTEGERARRAY cc(0 : 7) = '#','=',')','<','(','>', 'k','t' BOUNDS {NOT IMPLEMENTED YET} const char int *cc {ind obj} ; INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 #line 2126 // 2125 // 2126 %CONSTBYTEINTEGERARRAY anyform(0:15) = 1,0,1,1,1,1,1,1,0,1,1,0,1,1,1,1 BOUNDS {NOT IMPLEMENTED YET} const char int *anyform {ind obj} ; INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 #line 2128 // 2127 // 2128 %CONSTINTEGERARRAY decmap(0:15) = %C BOUNDS {NOT IMPLEMENTED YET} const int *decmap {ind obj} ; INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 INIT 1 #line 2134 // 2129 1, 2, // 2130 16_100B, 16_100D, 16_140C, 16_140E, // 2131 3, 4, // 2132 16_1007, 16_1008, 16_1009, 16_100A, // 2133 6, 0, 0, 0 // 2134 %OWNBYTEINTEGERARRAY cnest(0:15) BOUNDS {NOT IMPLEMENTED YET} static char int *cnest ; INIT 16 #line 2135 // 2135 %INTEGER lmode, clab, dupid int lmode ; int clab ; int dupid ; #line 2136 // 2136 %INTEGER resln int resln ; #line 2137 // 2137 %OWNINTEGER last def = 0 static int lastdef ; INIT 1 #line 2138 // 2138 %OWNINTEGER lb, ub static int lb ; INIT 1 static int ub ; INIT 1 #line 2139 // 2139 %INTEGER cp, ord int cp ; int ord ; #line 2140 // 2140 %INTEGER next, link, j, k, n, done int next ; int link ; int j ; int k ; int n ; int done ; #line 2141 // 2141 %INTEGER class int class ; #line 2142 // 2142 %INTEGER lit2, defs, decs, cident int lit2 ; int defs ; int decs ; int cident ; #line 2143 // 2143 %INTEGER pending; %OWNINTEGERARRAY pstack(1:40) int pending ; #line 2143 BOUNDS {NOT IMPLEMENTED YET} static int *pstack ; INIT 40 #line 2144 // 2144 %OWNSTRING(8) name = "" PUSHS "" static char [9] name ; INIT 1 #line 2145 // 2145 %OWNINTEGER count = 0 static int count ; INIT 1 #line 2147 // 2146 // 2147 %ROUTINE def lab(%INTEGER l) goto L_0001 /* GOTO */; void deflab ; ( int l ; ) #line 2148 // 2148 op(':', l) ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2149 // 2149 access = 1 access = 1; #line 2150 // 2150 %END L_0001: #line 2152 // 2151 // 2152 %ROUTINE get next goto L_0001 /* GOTO */; void getnext ; () #line 2153 // 2153 %RECORD(arfm)%NAME p struct /*ARFM*/ int typecode, void *p ; #line 2154 // 2154 gn: %IF next = 0 %START; !end of phrase L_0076: #line 2154 if (pop() != pop()) goto L_0013; #line 2155 // 2155 class = 0 %AND %RETURN %IF link = 0; !end of statement if (pop() != pop()) goto L_0065; class = 0; RETURN {NOT IMPLEMENTED YET} L_0065: #line 2156 // 2156 p == ar(link) %record {ARFM} /*%name*/ p = &%record {ARFM} ar [link ]; #line 2157 // 2157 next = p_link SELECT V_0003 next = %record {ARFM} *p ; #line 2158 // 2158 link = p_sub SELECT V_0002 link = %record {ARFM} *p ; #line 2159 // 2159 %FINISH L_0013: #line 2160 // 2160 %CYCLE L_00b7: #line 2161 // 2161 p == ar(next) %record {ARFM} /*%name*/ p = &%record {ARFM} ar [next ]; #line 2162 // 2162 x = p_sub SELECT V_0002 /*%own*/ x = %record {ARFM} *p ; #line 2163 // 2163 class = p_class SELECT V_0001 class = %record {ARFM} *p ; #line 2164 // 2164 %EXIT %IF class < actions; !an atom if (pop() >= pop()) goto L_0065; goto L_0013 /* GOTO */; L_0065: #line 2165 // 2165 %IF x = 0 %START; !null phrase if (pop() != pop()) goto L_0065; #line 2166 // 2166 next = p_link; ->gn SELECT V_0003 next = %record {ARFM} *p ; #line 2166 goto L_0076 /* JUMP */; #line 2167 // 2167 %FINISH L_0065: #line 2168 // 2168 %IF p_link # 0 %START; !follow a phrase SELECT V_0003 if (pop() == pop()) goto L_0065; #line 2169 // 2169 p_sub = link; link = next SELECT V_0002 %record {ARFM} *p = link ; #line 2169 link = next ; #line 2170 // 2170 %FINISH L_0065: #line 2171 // 2171 next = x next = x ; #line 2172 // 2172 %REPEAT goto L_00b7 /* end of for loop and others? */; L_0013: #line 2173 // 2173 next = p_link SELECT V_0003 next = %record {ARFM} *p ; #line 2174 // 2174 %IF diag&2 # 0 %START if (pop() == pop()) goto L_0013; #line 2175 // 2175 spaces(8-length(name)) %UNLESS length(name) = 0 ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; if (pop() == pop()) goto L_0065; ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; L_0065: #line 2176 // 2176 name = text(class) /*%own*/ %string (8) name = %string (8) text {ind obj} [class ]; #line 2177 // 2177 write(x, 2) ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2178 // 2178 space *(pop())() /* CALL */; #line 2179 // 2179 printstring(name) ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2180 // 2180 space *(pop())() /* CALL */; #line 2181 // 2181 count = count-1 /*%own*/ count = (count - 1); #line 2182 // 2182 %IF count <= 0 %START if (pop() > pop()) goto L_0065; #line 2183 // 2183 count = 5 /*%own*/ count = 5; #line 2184 // 2184 name = "" PUSHS "" 0 = %string (8) name ; #line 2185 // 2185 newline *(pop())() /* CALL */; #line 2186 // 2186 %FINISH L_0065: #line 2187 // 2187 %FINISH L_0013: #line 2188 // 2188 %END L_0001: #line 2190 // 2189 // 2190 %ROUTINE set subs(%INTEGER n) goto L_0001 /* GOTO */; void setsubs ; ( int n ; ) #line 2194 // 2191 // 2192 !update the app field in n array descriptors // 2193 // 2194 %INTEGER p int p ; #line 2195 // 2195 p = tmax p = tmax ; #line 2196 // 2196 %WHILE n > 0 %CYCLE L_00b9: if (pop() <= pop()) goto L_0013; #line 2198 // 2197 !%SIGNAL 15,15 %IF p < tbase // 2198 tag(p)_app = dimension SELECT V_0001 %record {TAGFM} tag [p ] = dimension ; #line 2199 // 2199 p = p-1; n = n-1 p = (p - 1); #line 2199 n = (n - 1); #line 2200 // 2200 %REPEAT goto L_00b9 /* end of for loop and others? */; L_0013: #line 2201 // 2201 %END L_0001: #line 2203 // 2202 // 2203 %ROUTINE set bp goto L_0001 /* GOTO */; void setbp ; () #line 2207 // 2204 // 2205 !define a constant bound pair from the last stacked constants // 2206 // 2207 pending = pending-2 pending = (pending - 2); #line 2208 // 2208 lb = pstack(pending+1); ub = pstack(pending+2) /*%own*/ lb = pstack [(pending + 1)]; #line 2208 /*%own*/ ub = pstack [(pending + 2)]; #line 2209 // 2209 %IF ub-lb+1 < 0 %START if (pop() >= pop()) goto L_0013; #line 2210 // 2210 pos1 = 0; next = link; fault(11) /*%own*/ pos1 = 0; #line 2210 next = link ; #line 2210 ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2211 // 2211 ub = lb /*%own*/ ub = lb ; #line 2212 // 2212 %FINISH L_0013: #line 2213 // 2213 set const(lb); set const(ub) ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2213 ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2214 // 2214 bp=bp+1 %AND buff(bp)='b' %UNLESS class = 146 if (pop() == pop()) goto L_0013; /*%own*/ bp = (bp + 1); %byte buff [bp ] = 98; L_0013: #line 2215 // 2215 %END L_0001: #line 2217 // 2216 // 2217 %ROUTINE compile end(%INTEGER type) goto L_0001 /* GOTO */; void compileend ; ( int type ; ) #line 2221 // 2218 // 2219 ! type = 0:eof, 1:eop, 2:end // 2220 // 2221 %IF access # 0 %START if (pop() == pop()) goto L_0013; #line 2222 // 2222 open = 0 open = 0; #line 2223 // 2223 fault(19) %IF block form > proc; !can reach end if (pop() <= pop()) goto L_0065; ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; L_0065: #line 2224 // 2224 %FINISH L_0013: #line 2226 // 2225 // 2226 %WHILE dict(dmin) >= 0 %CYCLE; !finishes & repeats L_00ba: if (pop() < pop()) goto L_0013; #line 2227 // 2227 fault(17+dict(dmin)&1) ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2228 // 2228 dmin = dmin+1 dmin = (dmin + 1); #line 2229 // 2229 %REPEAT goto L_00ba /* end of for loop and others? */; L_0013: #line 2231 // 2230 !{delete names(0)} // 2231 bp=bp+1 %AND buff(bp)=';' /*%own*/ bp = (bp + 1); %byte buff [bp ] = 59; #line 2232 // 2232 bp=bp+1 %AND buff(bp)=';' %IF type = 1; !endofprogram if (pop() != pop()) goto L_0013; /*%own*/ bp = (bp + 1); %byte buff [bp ] = 59; L_0013: #line 2234 // 2233 // 2234 bflags = bflags!open; !show if it returns *bflags = (open | *bflags ); #line 2236 // 2235 // 2236 def lab(0) %IF block tag # 0 %AND level # 1; !for jump around if (pop() == pop()) goto L_0013; if (pop() == pop()) goto L_0013; ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; L_0013: #line 2237 // 2237 %IF type # 2 %START; !eop, eof if (pop() == pop()) goto L_0013; #line 2238 // 2238 fault(16) %IF level # type; !end missing if (pop() == pop()) goto L_0065; ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; L_0065: #line 2239 // 2239 %FINISH %ELSE %START goto L_00bb /* GOTO */; L_0013: #line 2240 // 2240 %IF level = 0 %START if (pop() != pop()) goto L_0065; #line 2241 // 2241 fault(15); !spurious end ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2242 // 2242 %FINISH L_0065: #line 2243 // 2243 %FINISH L_00bb: #line 2245 // 2244 // 2245 end mark = 11; !******Mouses specific****** /*%own*/ endmark = 11; #line 2246 // 2246 %END L_0001: #line 2248 // 2247 // 2248 %ROUTINE def(%INTEGER p) goto L_0001 /* GOTO */; void def ; ( int p ; ) #line 2252 // 2249 // 2250 !dump a descriptor // 2251 // 2252 %INTEGER t, f, type int t ; int f ; int type ; #line 2253 // 2253 %RECORD(tagfm)%NAME v struct /*TAGFM*/ int typecode, void *v ; #line 2254 // 2254 flush buffer %if bp # 0 if (pop() == pop()) goto L_0013; *(pop())() /* CALL */; L_0013: #line 2255 // 2255 defs = defs+1 defs = (defs + 1); #line 2256 // 2256 v == tag(p) %record {TAGFM} /*%name*/ v = &%record {TAGFM} tag [p ]; #line 2257 // 2257 t = 0 t = 0; #line 2258 // 2258 %UNLESS v_index < 0 %START; !no index for subnames SELECT V_0004 if (pop() < pop()) goto L_0013; #line 2259 // 2259 id = id+1 %AND v_index = id %IF v_index = 0 SELECT V_0004 if (pop() != pop()) goto L_0065; id = (id + 1); SELECT V_0004 %record {TAGFM} *v = id ; L_0065: #line 2260 // 2260 last def = v_index SELECT V_0004 /*%own*/ lastdef = %record {TAGFM} *v ; #line 2261 // 2261 t = last def t = lastdef ; #line 2262 // 2262 %FINISH L_0013: #line 2263 // 2263 op('$', t) ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2264 // 2264 print ident(p, 1); !output the name ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2265 // 2265 t = v_flags SELECT V_0003 t = %record {TAGFM} *v ; #line 2266 // 2266 type = t type = t ; #line 2267 // 2267 type = type&(\(7<<4)) %IF type&(7<<4) >= 6<<4;!routine & pred if (pop() < pop()) goto L_0013; type = ((\(7 << 4)) & type ); L_0013: #line 2268 // 2268 op(',', type&2_1111111); !type & form ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2269 // 2269 f = v_format SELECT V_0002 f = %record {TAGFM} *v ; #line 2270 // 2270 f = tag(f)_index %IF t&16_70 = record<<4 if (pop() != pop()) goto L_0013; SELECT V_0004 f = %record {TAGFM} tag [f ]; L_0013: #line 2271 // 2271 f = v_index %IF f < 0 if (pop() >= pop()) goto L_0013; SELECT V_0004 f = %record {TAGFM} *v ; L_0013: #line 2272 // 2272 op(',', f); !format ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2273 // 2273 f = otype+t>>4&2_1111000 f = (otype + (120 & (t >> 4))); #line 2274 // 2274 f = f!8 %IF class = 125; !add spec from %DUP if (pop() != pop()) goto L_0013; f = (8 | f ); L_0013: #line 2275 // 2275 dim = v_app; !dimension SELECT V_0001 /*%own*/ dim = %record {TAGFM} *v ; #line 2276 // 2276 dim = 0 %unless 0 < dim %AND dim <= dim limit if (pop() >= pop()) goto L_00bc; if (pop() <= pop()) goto L_0013; L_00bc: /*%own*/ dim = 0; L_0013: #line 2277 // 2277 op(',', f+dim<<8); !otype & spec & prot ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2278 // 2278 defs = 0 %IF t¶meters = 0 if (pop() != pop()) goto L_0013; defs = 0; L_0013: #line 2279 // 2279 f = t&15 f = (15 & t ); #line 2280 // 2280 %IF v_flags&spec # 0 %START SELECT V_0003 if (pop() == pop()) goto L_0013; #line 2281 // 2281 v_flags = v_flags&(\spec) %UNLESS 3 <= f %AND f <= 10 if (pop() > pop()) goto L_00bd; if (pop() <= pop()) goto L_0065; L_00bd: SELECT V_0003 SELECT V_0003 %record {TAGFM} *v = ((\128) & %record {TAGFM} *v ); L_0065: #line 2282 // 2282 ocount = -1; !external specs have no constants /*%own*/ ocount = (-1); #line 2283 // 2283 %FINISH L_0013: #line 2284 // 2284 dimension = 0 /*%own*/ dimension = 0; #line 2285 // 2285 %if otype = 2 %and (f=2 %or f=12 %or f=14) %start if (pop() != pop()) goto L_0013; if (pop() == pop()) goto L_00be; if (pop() == pop()) goto L_00be; if (pop() != pop()) goto L_0013; L_00be: #line 2286 // 2286 v_flags = v_flags-1; !convert to simple SELECT V_0003 SELECT V_0003 %record {TAGFM} *v = (%record {TAGFM} *v - 1); #line 2287 // 2287 %finish L_0013: #line 2288 // 2288 %END L_0001: #line 2290 // 2289 // 2290 %ROUTINE def s lab(%INTEGER n) goto L_0001 /* GOTO */; void defslab ; ( int n ; ) #line 2294 // 2291 // 2292 !define a switch label, x defines the switch tag // 2293 // 2294 %INTEGER p, l, b, w, bit int p ; int l ; int b ; int w ; int bit ; #line 2295 // 2295 p = tag(x)_format; !pointer to table SELECT V_0002 p = %record {TAGFM} tag [x ]; #line 2296 // 2296 l = dict(p); !lower bound l = dict [p ]; #line 2297 // 2297 %IF l <= n %AND n <= dict(p+1) %START if (pop() > pop()) goto L_0013; if (pop() > pop()) goto L_0013; #line 2298 // 2298 b = n-l b = (n - l ); #line 2299 // 2299 w = b>>4+p w = ((b >> 4) + p ); #line 2300 // 2300 bit = 1<<(b&15) bit = (1 << (15 & b )); #line 2301 // 2301 %IF dict(w+2)&bit # 0 %START; !already set if (pop() == pop()) goto L_0065; #line 2302 // 2302 fault(4) %IF pending # 0 if (pop() == pop()) goto L_00bf; ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; L_00bf: #line 2303 // 2303 %RETURN RETURN {NOT IMPLEMENTED YET} #line 2304 // 2304 %FINISH L_0065: #line 2305 // 2305 dict(w+2) = dict(w+2)!bit %IF pending # 0 if (pop() == pop()) goto L_0065; dict [(w + 2)] = (bit | dict [(w + 2)]); L_0065: #line 2306 // 2306 set const(n) ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2307 // 2307 op('_', tag(x)_index) ASSPAR {NOT IMPLEMENTED YET} SELECT V_0004 ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2308 // 2308 %FINISH %ELSE %START goto L_00bb /* GOTO */; L_0013: #line 2309 // 2309 fault(12) ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2310 // 2310 %FINISH L_00bb: #line 2311 // 2311 access = 1 access = 1; #line 2312 // 2312 %END L_0001: #line 2314 // 2313 // 2314 %ROUTINE call goto L_0001 /* GOTO */; void call ; () #line 2315 // 2315 %RECORD(tagfm)%NAME T struct /*TAGFM*/ int typecode, void *t ; #line 2316 // 2316 t == tag(x) %record {TAGFM} /*%name*/ t = &%record {TAGFM} tag [x ]; #line 2317 // 2317 op('@', t_index) ASSPAR {NOT IMPLEMENTED YET} SELECT V_0004 ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2318 // 2318 access = 0 %IF t_flags&closed # 0; !never comes back SELECT V_0003 if (pop() == pop()) goto L_0013; access = 0; L_0013: #line 2319 // 2319 bp=bp+1 %AND buff(bp)='E' %IF t_app = 0; !no parameters SELECT V_0001 if (pop() != pop()) goto L_0013; /*%own*/ bp = (bp + 1); %byte buff [bp ] = 69; L_0013: #line 2320 // 2320 %END L_0001: #line 2322 // 2321 // 2322 %ROUTINE pop def goto L_0001 /* GOTO */; void popdef ; () #line 2323 // 2323 set const(pstack(pending)); pending = pending-1 ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2323 pending = (pending - 1); #line 2324 // 2324 %END L_0001: #line 2326 // 2325 // 2326 %ROUTINE pop lit goto L_0001 /* GOTO */; void poplit ; () #line 2327 // 2327 %IF pending = 0 %THEN lit = 0 %ELSE %START if (pop() != pop()) goto L_0013; /*%own*/ lit = 0; goto L_00bb /* GOTO */; L_0013: #line 2328 // 2328 lit = pstack(pending); pending = pending-1 /*%own*/ lit = pstack [pending ]; #line 2328 pending = (pending - 1); #line 2329 // 2329 %FINISH L_00bb: #line 2330 // 2330 %END L_0001: #line 2333 // 2331 // 2332 // 2333 %IF sstype < 0 %START; !executable statement if (pop() >= pop()) goto L_0013; #line 2334 // 2334 %IF level = 0 %START; !outermost level if (pop() != pop()) goto L_0065; #line 2335 // 2335 fault(13); !*order ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2336 // 2336 %FINISH %ELSE %START goto L_00b8 /* GOTO */; L_0065: #line 2337 // 2337 %IF access = 0 %START if (pop() != pop()) goto L_00c0; #line 2338 // 2338 access = 1; fault(-1); !only a warning access = 1; #line 2338 ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2339 // 2339 %FINISH L_00c0: #line 2340 // 2340 %FINISH L_00b8: #line 2341 // 2341 %FINISH L_0013: #line 2343 // 2342 // 2343 %IF diag&2 # 0 %START if (pop() == pop()) goto L_0013; #line 2344 // 2344 newline %IF sym # nl if (pop() == pop()) goto L_0065; *(pop())() /* CALL */; L_0065: #line 2345 // 2345 printstring("ss =") PUSHS "ss =" ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2346 // 2346 write(ss, 1) ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2347 // 2347 newline *(pop())() /* CALL */; #line 2348 // 2348 count = 5 /*%own*/ count = 5; #line 2349 // 2349 name = "" PUSHS "" /*%external*/ %routine %spec newline = %string (8) name ; #line 2350 // 2350 %FINISH L_0013: #line 2352 // 2351 // 2352 next = ss next = ss ; #line 2353 // 2353 pending = 0; lmode = 0 pending = 0; #line 2353 lmode = 0; #line 2354 // 2354 link = 0; decs = 0 link = 0; #line 2354 decs = 0; #line 2355 // 2355 defs = 0; resln = 0; done = 0 defs = 0; #line 2355 resln = 0; #line 2355 done = 0; #line 2356 // 2356 ord = level ord = level ; #line 2357 // 2357 ord = 1 %IF this >= 0; !recordformat declarations if (pop() < pop()) goto L_0013; ord = 1; L_0013: #line 2358 // 2358 c(0): SLABEL(156): #line 2359 // 2359 top: %IF next # link %START L_00c1: #line 2359 if (pop() == pop()) goto L_0013; #line 2360 // 2360 get next; ->c(class) *(pop())() /* CALL */; #line 2360 ->SJUMP(156) #line 2361 // 2361 %FINISH L_0013: #line 2365 // 2362 // 2363 !all done, tidy up declarations and jumps // 2364 // 2365 newline %IF diag&2 # 0 %AND count # 5 if (pop() == pop()) goto L_0013; if (pop() == pop()) goto L_0013; *(pop())() /* CALL */; L_0013: #line 2367 // 2366 // 2367 %IF lmode&(loop!then!else) # 0 %START; !pending labels and jumps if (pop() == pop()) goto L_0013; #line 2368 // 2368 op('B', label-1) %IF lmode&loop # 0; !repeat if (pop() == pop()) goto L_0065; ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; L_0065: #line 2369 // 2369 def lab(label) %IF lmode&then # 0; !entry from then if (pop() == pop()) goto L_0065; ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; L_0065: #line 2370 // 2370 def lab(label-1) %IF lmode&else # 0; !entry from else if (pop() == pop()) goto L_0065; ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; L_0065: #line 2371 // 2371 %FINISH L_0013: #line 2373 // 2372 // 2373 %RETURN %IF decs = 0 if (pop() != pop()) goto L_0013; RETURN {NOT IMPLEMENTED YET} L_0013: #line 2374 // 2374 atom1 = error %AND %RETURN %IF atom1 # 0; !%INTEGERROUTINE if (pop() == pop()) goto L_0013; /*%own*/ atom1 = 32768; RETURN {NOT IMPLEMENTED YET} L_0013: #line 2375 // 2375 order = ord /*%own*/ order = ord ; #line 2376 // 2376 decl = decl&(\15)+decmap(decl&15); !construct declarator flags /*%own*/ decl = (((\15) & decl ) + decmap {ind obj} [(15 & decl )]); #line 2377 // 2377 atom1 = atoms(decl&15); !generate class /*%own*/ atom1 = %byte atoms {ind obj} [(15 & decl )]; #line 2378 // 2378 %IF otype # 0 %START; !own, const etc. if (pop() == pop()) goto L_0013; #line 2379 // 2379 atom1 = atom1+1 %IF atom1 # proc if (pop() == pop()) goto L_0065; /*%own*/ atom1 = (atom1 + 1); L_0065: #line 2380 // 2380 %IF otype = 2 %START; !const if (pop() != pop()) goto L_0065; #line 2381 // 2381 n = decl&15 n = (15 & decl ); #line 2382 // 2382 %if n&1 # 0 %start if (pop() == pop()) goto L_00c2; #line 2383 // 2383 decl = decl!prot /*%own*/ decl = (256 | decl ); #line 2384 // 2384 decl = decl!const bit %IF decl&2_1111111 = iform if (pop() != pop()) goto L_00c3; /*%own*/ decl = (8192 | decl ); L_00c3: #line 2385 // 2385 %finish L_00c2: #line 2386 // 2386 %else goto L_00b8 /* GOTO */; L_0065: #line 2387 // 2387 decl = decl!own bit /*%own*/ decl = (512 | decl ); #line 2388 // 2388 %FINISH L_00b8: #line 2389 // 2389 %FINISH L_0013: #line 2390 // 2390 sstype = 1 %IF sstype = 0 %AND atom1 = proc if (pop() != pop()) goto L_0013; if (pop() != pop()) goto L_0013; /*%own*/ sstype = 1; L_0013: #line 2391 // 2391 atom1 = atom1+1 %IF decl&spec # 0; !onto spec variant if (pop() == pop()) goto L_0013; /*%own*/ atom1 = (atom1 + 1); L_0013: #line 2392 // 2392 ocount = 0 %AND cont = '+' %IF atom1 = 5; !own array if (pop() != pop()) goto L_0013; /*%own*/ ocount = 0; /*%own*/ cont = 43; L_0013: #line 2393 // 2393 %IF anyform(decl&15) = 0 %START; !check meaningful if (pop() != pop()) goto L_0013; #line 2394 // 2394 %IF decl>>4&7 = record %START if (pop() != pop()) goto L_0065; #line 2395 // 2395 this = fdef %IF tag(fdef)_flags&spec # 0 SELECT V_0003 if (pop() == pop()) goto L_00c4; /*%own*/ this = fdef ; L_00c4: #line 2396 // 2396 atom1 = error+21 %IF fdef = this; !*context for format if (pop() != pop()) goto L_00c5; /*%own*/ atom1 = (32768 + 21); L_00c5: #line 2397 // 2397 %FINISH L_0065: #line 2398 // 2398 atom1 = error+10 %IF fdef = 0; !*size if (pop() != pop()) goto L_0065; /*%own*/ atom1 = (32768 + 10); L_0065: #line 2399 // 2399 %FINISH L_0013: #line 2400 // 2400 %RETURN RETURN {NOT IMPLEMENTED YET} #line 2402 // 2401 // 2402 atop: access = 0; ->top L_00c6: #line 2402 access = 0; #line 2402 goto L_00c1 /* JUMP */; #line 2406 // 2403 // 2404 ! declarators // 2405 // 2406 c(88): ; !rtype SLABEL(156): #line 2407 // 2407 c(28): decl = x&(\7); !stype SLABEL(156): #line 2407 /*%own*/ decl = ((\7) & x ); #line 2408 // 2408 fdef = x&7; !precision /*%own*/ fdef = (7 & x ); #line 2409 // 2409 fdef = reals ln %IF x&2_1110001 = real<<4+1; !convert to long if (pop() != pop()) goto L_0013; /*%own*/ fdef = realsln ; L_0013: #line 2410 // 2410 decs = 1; ->top decs = 1; #line 2410 goto L_00c1 /* JUMP */; #line 2411 // 2411 c(34): ; !own SLABEL(156): #line 2412 // 2412 c(35): otype = x; ord = 1; ->top; !external SLABEL(156): #line 2412 /*%own*/ otype = x ; #line 2412 ord = 1; #line 2412 goto L_00c1 /* JUMP */; #line 2413 // 2413 c(152):decl = decl+x<<1; ->top; !xname SLABEL(156): #line 2413 /*%own*/ decl = (decl + (x << 1)); #line 2413 goto L_00c1 /* JUMP */; #line 2414 // 2414 c(31): ; !proc SLABEL(156): #line 2415 // 2415 c(32): spec mode = level+1; !fn/map SLABEL(156): #line 2415 /*%own*/ specmode = (level + 1); #line 2416 // 2416 decl = decl!prot %IF x = 9; !function if (pop() != pop()) goto L_0013; /*%own*/ decl = (256 | decl ); L_0013: #line 2417 // 2417 c(29): ord = 1; !array SLABEL(156): #line 2417 ord = 1; #line 2418 // 2418 dim = 0 /*%own*/ dim = 0; #line 2419 // 2419 c(30): decl = decl+x; !name SLABEL(156): #line 2419 /*%own*/ decl = (decl + x ); #line 2420 // 2420 decs = 1 decs = 1; #line 2421 // 2421 ->top goto L_00c1 /* JUMP */; #line 2422 // 2422 c(27): lit = 0; ! arrayd SLABEL(156): #line 2422 /*%own*/ lit = 0; #line 2423 // 2423 %IF pending # 0 %START if (pop() == pop()) goto L_0013; #line 2424 // 2424 pop lit *(pop())() /* CALL */; #line 2425 // 2425 %UNLESS 0= pop()) goto L_00c7; if (pop() <= pop()) goto L_0065; L_00c7: #line 2426 // 2426 atom1 = error + 11; %RETURN /*%own*/ atom1 = (32768 + 11); #line 2426 RETURN {NOT IMPLEMENTED YET} #line 2427 // 2427 %FINISH L_0065: #line 2428 // 2428 %FINISH L_0013: #line 2429 // 2429 dim = lit /*%own*/ dim = lit ; #line 2430 // 2430 decl = decl + x; decs = 1 /*%own*/ decl = (decl + x ); #line 2430 decs = 1; #line 2431 // 2431 -> top goto L_00c1 /* JUMP */; #line 2432 // 2432 c(37): x = x!subname; !record SLABEL(156): #line 2432 /*%own*/ x = (2048 | x ); #line 2433 // 2433 c(36): lit = 0; !string SLABEL(156): #line 2433 /*%own*/ lit = 0; #line 2434 // 2434 %IF pending # 0 %START if (pop() == pop()) goto L_0013; #line 2435 // 2435 pop lit *(pop())() /* CALL */; #line 2436 // 2436 %UNLESS 0 < lit %AND lit <= 255 %START; !max length wrong if (pop() >= pop()) goto L_00c8; if (pop() <= pop()) goto L_0065; L_00c8: #line 2437 // 2437 atom1 = error+10; %RETURN /*%own*/ atom1 = (32768 + 10); #line 2437 RETURN {NOT IMPLEMENTED YET} #line 2438 // 2438 %FINISH L_0065: #line 2439 // 2439 %FINISH L_0013: #line 2440 // 2440 fdef = lit; !format or length /*%own*/ fdef = lit ; #line 2441 // 2441 c(33): decl = x; !switch SLABEL(156): #line 2441 /*%own*/ decl = x ; #line 2442 // 2442 decs = 1 decs = 1; #line 2443 // 2443 ->top goto L_00c1 /* JUMP */; #line 2444 // 2444 c(39): decl = decl!spec; !spec SLABEL(156): #line 2444 /*%own*/ decl = (128 | decl ); #line 2445 // 2445 ocount = -1; !no initialisation /*%own*/ ocount = (-1); #line 2446 // 2446 spec mode = -1 /*%own*/ specmode = (-1); #line 2447 // 2447 ->top goto L_00c1 /* JUMP */; #line 2448 // 2448 c(38): decl = 64+4; !recordformat (spec) SLABEL(156): #line 2448 /*%own*/ decl = (64 + 4); #line 2449 // 2449 order = 1 /*%own*/ order = 1; #line 2450 // 2450 atom1 = x /*%own*/ atom1 = x ; #line 2451 // 2451 decl = decl!spec %if atom1 = 12; !formatspec if (pop() != pop()) goto L_0013; /*%own*/ decl = (128 | decl ); L_0013: #line 2452 // 2452 fdef = tmax+1; !format tag /*%own*/ fdef = (tmax + 1); #line 2453 // 2453 %return RETURN {NOT IMPLEMENTED YET} #line 2454 // 2454 c(175):id = id+1; tag(x)_index = id; %return; !FSID SLABEL(156): #line 2454 id = (id + 1); #line 2454 SELECT V_0004 %record {TAGFM} tag [x ] = id ; #line 2454 RETURN {NOT IMPLEMENTED YET} #line 2455 // 2455 c(41): decs = 1; decl = x!spec!closed; ->top; !label SLABEL(156): #line 2455 decs = 1; #line 2455 /*%own*/ decl = (16384 | (128 | x )); #line 2455 goto L_00c1 /* JUMP */; #line 2456 // 2456 c(133):recid = 0; rbase = tmin-1; !fname SLABEL(156): #line 2456 recid = 0; #line 2456 /*%own*/ rbase = (tmin - 1); #line 2457 // 2457 this = x /*%own*/ this = x ; #line 2458 // 2458 fm base = fdef; format list = tmin /*%own*/ fmbase = fdef ; #line 2458 /*%own*/ formatlist = tmin ; #line 2459 // 2459 def(this); ->top ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2459 goto L_00c1 /* JUMP */; #line 2460 // 2460 c(148):fdef = 0 %AND ->top %IF next = 0; !reclb SLABEL(156): #line 2460 if (pop() != pop()) goto L_0013; /*%own*/ fdef = 0; goto L_00c1 /* JUMP */; L_0013: #line 2461 // 2461 get next; !skip name *(pop())() /* CALL */; #line 2462 // 2462 fdef = x /*%own*/ fdef = x ; #line 2463 // 2463 ->top goto L_00c1 /* JUMP */; #line 2464 // 2464 c(127):bp=bp+1 %AND buff(bp)='}'; ->top; !%POUT SLABEL(156): #line 2464 /*%own*/ bp = (bp + 1); %byte buff [bp ] = 125; #line 2464 goto L_00c1 /* JUMP */; #line 2465 // 2465 c(126):bp=bp+1 %AND buff(bp)='{'; ->top; !%PIN SLABEL(156): #line 2465 /*%own*/ bp = (bp + 1); %byte buff [bp ] = 123; #line 2465 goto L_00c1 /* JUMP */; #line 2467 // 2466 // 2467 c(174):set bp; !rangerb SLABEL(156): #line 2467 *(pop())() /* CALL */; #line 2468 // 2468 c(171):; !fmlb SLABEL(156): #line 2469 // 2469 c(172):; !fmrb SLABEL(156): #line 2470 // 2470 c(173):bp=bp+1 %AND buff(bp)='~'; bp=bp+1 %AND buff(bp)=class-171+'A'; ->top; !fmor SLABEL(156): #line 2470 /*%own*/ bp = (bp + 1); %byte buff [bp ] = 126; #line 2470 /*%own*/ bp = (bp + 1); %byte buff [bp ] = ((class - 171) + 65); #line 2470 goto L_00c1 /* JUMP */; #line 2471 // 2471 c(168):rbase = -rbase; !orrb SLABEL(156): #line 2471 /*%own*/ rbase = (-rbase ); #line 2472 // 2472 sstype = 0; spec mode = 0 /*%own*/ sstype = 0; #line 2472 /*%own*/ specmode = 0; #line 2474 // 2473 // 2474 c(147):search base = 0; !recrb SLABEL(156): #line 2474 /*%own*/ searchbase = 0; #line 2475 // 2475 tag(this)_app = tmin SELECT V_0001 %record {TAGFM} tag [this ] = tmin ; #line 2476 // 2476 tag(this)_format = rbase SELECT V_0002 %record {TAGFM} tag [this ] = rbase ; #line 2477 // 2477 ->top goto L_00c1 /* JUMP */; #line 2479 // 2478 // 2479 c(45):bp=bp+1 %and buff(bp)='U' %IF x = 36; ->top; !sign SLABEL(156): #line 2479 if (pop() != pop()) goto L_0013; /*%own*/ bp = (bp + 1); %byte buff [bp ] = 85; L_0013: #line 2479 goto L_00c1 /* JUMP */; #line 2480 // 2480 c(46):bp=bp+1; buff(bp)='\'; ->top; !uop SLABEL(156): #line 2480 /*%own*/ bp = (bp + 1); #line 2480 %byte buff [bp ] = 92; #line 2480 goto L_00c1 /* JUMP */; #line 2481 // 2481 c(47):; !mod SLABEL(156): #line 2482 // 2482 c(48):; !dot SLABEL(156): #line 2483 // 2483 c(42):; !op1 SLABEL(156): #line 2484 // 2484 c(43):; !op2 SLABEL(156): #line 2485 // 2485 c(44):bp=bp+1; buff(bp)=operator(x); ->top; !op3 SLABEL(156): #line 2485 /*%own*/ bp = (bp + 1); #line 2485 %byte buff [bp ] = %byte operator {ind obj} [x ]; #line 2485 goto L_00c1 /* JUMP */; #line 2489 // 2486 // 2487 !conditions & jumps // 2488 // 2489 %ROUTINE push(%INTEGER x) goto L_0001 /* GOTO */; void push ; ( int x ; ) #line 2490 // 2490 %IF cnest(cp)&2 # x %START if (pop() == pop()) goto L_0013; #line 2491 // 2491 cnest(cp) = cnest(cp)!1; x = x+4 %byte cnest [cp ] = (1 | %byte cnest [cp ]); #line 2491 x = (x + 4); #line 2492 // 2492 %FINISH L_0013: #line 2493 // 2493 clab = clab+1 %IF cnest(cp)&1 # 0 if (pop() == pop()) goto L_0013; clab = (clab + 1); L_0013: #line 2494 // 2494 cnest(cp+1) = x; cp = cp+1 %byte cnest [(cp + 1)] = x ; #line 2494 cp = (cp + 1); #line 2495 // 2495 %END L_0001: #line 2497 // 2496 // 2497 %ROUTINE pop label(%INTEGER mode) goto L_0001 /* GOTO */; void poplabel ; ( int mode ; ) #line 2498 // 2498 lmode = dict(dmin) lmode = dict [dmin ]; #line 2499 // 2499 %IF lmode < 0 %OR lmode&1 # mode %START if (pop() < pop()) goto L_00c9; if (pop() == pop()) goto L_0013; L_00c9: #line 2500 // 2500 fault(mode+8) ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2501 // 2501 %FINISH %ELSE %START goto L_00bb /* GOTO */; L_0013: #line 2502 // 2502 dmin = dmin+1; label = label-3 dmin = (dmin + 1); #line 2502 label = (label - 3); #line 2503 // 2503 %FINISH L_00bb: #line 2504 // 2504 %END L_0001: #line 2506 // 2505 // 2506 c(56):; !and SLABEL(156): #line 2507 // 2507 c(57):push(x); ->top; !or SLABEL(156): #line 2507 ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2507 goto L_00c1 /* JUMP */; #line 2508 // 2508 c(58):cnest(cp) = cnest(cp)!!2; ->top; !not SLABEL(156): #line 2508 %byte cnest [cp ] = (2 ^ %byte cnest [cp ]); #line 2508 goto L_00c1 /* JUMP */; #line 2510 // 2509 // 2510 c(138):x = 128+32+16+4; !csep: treat like %WHILE SLABEL(156): #line 2510 /*%own*/ x = (((128 + 32) + 16) + 4); #line 2511 // 2511 c(59):; !while SLABEL(156): #line 2512 // 2512 c(60):%IF class = 138 %THEN op('f', label-1) %C SLABEL(156): #line 2512 if (pop() != pop()) goto L_0013; ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; goto L_00bb /* GOTO */; L_0013: ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; L_00bb: #line 2514 // 2513 %ELSE def lab(label-1); !until // 2514 c(166):; !runtil SLABEL(156): #line 2515 // 2515 c(62):lmode = (lmode&(else!loop)) !(x>>3); !cword SLABEL(156): #line 2515 lmode = ((x >> 3) | ((16 | 8) & lmode )); #line 2516 // 2516 clab = label; cp = 1; cnest(1) = x&7 clab = label ; #line 2516 cp = 1; #line 2516 %byte cnest [1] = (7 & x ); #line 2517 // 2517 ->top goto L_00c1 /* JUMP */; #line 2518 // 2518 c(72):pop label(0); !repeat SLABEL(156): #line 2518 ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2519 // 2519 def lab(label+1) %IF lmode&32 # 0; ->atop if (pop() == pop()) goto L_0013; ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; L_0013: #line 2519 goto L_00c6 /* JUMP */; #line 2520 // 2520 c(69):pop label(1); ->top; !finish SLABEL(156): #line 2520 ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2520 goto L_00c1 /* JUMP */; #line 2521 // 2521 c(163):; !xelse SLABEL(156): #line 2522 // 2522 c(70):pop label(1); !finish else ... SLABEL(156): #line 2522 ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2523 // 2523 fault(7) %IF lmode&3 = 3; !dangling else if (pop() != pop()) goto L_0013; ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; L_0013: #line 2524 // 2524 c(68):lmode = (lmode&else)!3; !...else... SLABEL(156): #line 2524 lmode = (3 | (8 & lmode )); #line 2525 // 2525 %IF access # 0 %START if (pop() == pop()) goto L_0013; #line 2526 // 2526 op('F', label-1); lmode = else!3 ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2526 lmode = (3 | 8); #line 2527 // 2527 %FINISH L_0013: #line 2528 // 2528 def lab(label) ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2529 // 2529 ->top %IF next # 0 if (pop() == pop()) goto L_0013; goto L_00c1 /* JUMP */; L_0013: #line 2531 // 2530 // 2531 c(120):; !%MSTART SLABEL(156): #line 2532 // 2532 c(67): ; !start SLABEL(156): #line 2533 // 2533 c(71): ; !cycle SLABEL(156): #line 2534 // 2534 stcy: def lab(label-1) %AND lmode = loop %IF lmode = 0;!cycle L_00ca: #line 2534 if (pop() != pop()) goto L_0013; ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; lmode = 16; L_0013: #line 2535 // 2535 dmin = dmin-1; abandon(3) %IF dmin <= dmax dmin = (dmin - 1); #line 2535 if (pop() > pop()) goto L_0013; ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; L_0013: #line 2536 // 2536 dict(dmin) = lmode dict [dmin ] = lmode ; #line 2537 // 2537 label = label+3 label = (label + 3); #line 2538 // 2538 %RETURN RETURN {NOT IMPLEMENTED YET} #line 2540 // 2539 // 2540 c(64):fault(13) %IF dict(dmin) >= 0 %OR inhibit # 0; !on event SLABEL(156): #line 2540 if (pop() >= pop()) goto L_00cb; if (pop() == pop()) goto L_0013; L_00cb: ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; L_0013: #line 2541 // 2541 inhibit = 1 inhibit = 1; #line 2542 // 2542 n = 0 n = 0; #line 2543 // 2543 n = 16_FFFF %IF pending = 0; !* = all events if (pop() != pop()) goto L_0013; n = 65535; L_0013: #line 2544 // 2544 %WHILE pending > 0 %CYCLE L_00bb: if (pop() <= pop()) goto L_0013; #line 2545 // 2545 pop lit; fault(10) %IF lit&(\15) # 0;!too big *(pop())() /* CALL */; #line 2545 if (pop() == pop()) goto L_0065; ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; L_0065: #line 2546 // 2546 j = 1<stcy lmode = (1 | 4); #line 2551 goto L_00ca /* JUMP */; #line 2554 // 2552 // 2553 // 2554 c(104):op('J', tag(x)_index); !l SLABEL(156): #line 2554 ASSPAR {NOT IMPLEMENTED YET} SELECT V_0004 ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2555 // 2555 inhibit = 1; ->atop inhibit = 1; #line 2555 goto L_00c6 /* JUMP */; #line 2556 // 2556 c(149):stats = stats-1; !lab SLABEL(156): #line 2556 /*%own*/ stats = (stats - 1); #line 2557 // 2557 access = 1; inhibit = 1 access = 1; #line 2557 inhibit = 1; #line 2558 // 2558 op('L', tag(x)_index); ->top ASSPAR {NOT IMPLEMENTED YET} SELECT V_0004 ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2558 goto L_00c1 /* JUMP */; #line 2560 // 2559 // 2560 c(63):j = dmin; l = label-3; !exit, continue SLABEL(156): #line 2560 j = dmin ; #line 2560 l = (label - 3); #line 2561 // 2561 %CYCLE L_00cc: #line 2562 // 2562 fault(7) %AND ->top %IF dict(j) < 0 if (pop() >= pop()) goto L_0065; ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; goto L_00c1 /* JUMP */; L_0065: #line 2563 // 2563 %EXIT %IF dict(j)&1 = 0 if (pop() != pop()) goto L_0065; goto L_0013 /* GOTO */; L_0065: #line 2564 // 2564 j = j+1; l = l-3 j = (j + 1); #line 2564 l = (l - 3); #line 2565 // 2565 %REPEAT goto L_00cc /* end of for loop and others? */; L_0013: #line 2566 // 2566 l = l+1 %IF x = 32; !continue if (pop() != pop()) goto L_0013; l = (l + 1); L_0013: #line 2567 // 2567 op('F', l) ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2568 // 2568 dict(j) = dict(j)!x; !show given dict [j ] = (x | dict [j ]); #line 2569 // 2569 ->atop goto L_00c6 /* JUMP */; #line 2571 // 2570 // 2571 c(50):bp=bp+1 %AND buff(bp)='C'; ->cop; !acomp SLABEL(156): #line 2571 /*%own*/ bp = (bp + 1); %byte buff [bp ] = 67; #line 2571 goto L_00cd /* JUMP */; #line 2573 // 2572 // 2573 c(49): bp = bp+1 SLABEL(156): #line 2573 /*%own*/ bp = (bp + 1); #line 2574 // 2574 %IF next # 0 %START; !comparator if (pop() == pop()) goto L_0013; #line 2575 // 2575 buff(bp)='"'; push(0); !double sided %byte buff [bp ] = 34; #line 2575 ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2576 // 2576 %FINISH %ELSE %START goto L_00ce /* GOTO */; L_0013: #line 2577 // 2577 buff(bp)='?' %byte buff [bp ] = 63; #line 2578 // 2578 %FINISH L_00ce: #line 2580 // 2579 // 2580 cop: x = x!!1 %IF cnest(cp)&2 # 0; !invert the condition L_00cd: #line 2580 if (pop() == pop()) goto L_0013; /*%own*/ x = (1 ^ x ); L_0013: #line 2581 // 2581 j = cp; l = clab j = cp ; #line 2581 l = clab ; #line 2582 // 2582 %WHILE cnest(j)&4 = 0 %CYCLE L_00ce: if (pop() != pop()) goto L_0013; #line 2583 // 2583 j = j-1; l = l-cnest(j)&1 j = (j - 1); #line 2583 l = (l - (1 & %byte cnest [j ])); #line 2584 // 2584 %REPEAT goto L_00ce /* end of for loop and others? */; L_0013: #line 2585 // 2585 op(cc(x), l) ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2586 // 2586 def lab(clab+1) %IF cnest(cp)&1 # 0 if (pop() == pop()) goto L_0013; ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; L_0013: #line 2587 // 2587 cp = cp-1 cp = (cp - 1); #line 2588 // 2588 clab = clab-cnest(cp)&1 clab = (clab - (1 & %byte cnest [cp ])); #line 2589 // 2589 ->top goto L_00c1 /* JUMP */; #line 2591 // 2590 // 2591 c(78): ; !fresult SLABEL(156): #line 2592 // 2592 c(79): ; !mresult SLABEL(156): #line 2593 // 2593 c(80): open = 0; !return, true, false SLABEL(156): #line 2593 open = 0; #line 2594 // 2594 c(82): access = 0; !stop SLABEL(156): #line 2594 access = 0; #line 2595 // 2595 c(89): ; !addop SLABEL(156): #line 2596 // 2596 c(81): bp=bp+1 %AND buff(bp)=x; ->top; !monitor SLABEL(156): #line 2596 /*%own*/ bp = (bp + 1); %byte buff [bp ] = x ; #line 2596 goto L_00c1 /* JUMP */; #line 2598 // 2597 // 2598 c(65): pop lit; op('e', lit); ->atop; !signal SLABEL(156): #line 2598 *(pop())() /* CALL */; #line 2598 ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2598 goto L_00c6 /* JUMP */; #line 2600 // 2599 // 2600 c(51): bp=bp+1 %AND buff(bp)='S'; ->top; !eq SLABEL(156): #line 2600 /*%own*/ bp = (bp + 1); %byte buff [bp ] = 83; #line 2600 goto L_00c1 /* JUMP */; #line 2601 // 2601 c(53): bp=bp+1 %AND buff(bp)='j'; ->top; !jam transfer SLABEL(156): #line 2601 /*%own*/ bp = (bp + 1); %byte buff [bp ] = 106; #line 2601 goto L_00c1 /* JUMP */; #line 2602 // 2602 c(52): bp=bp+1 %AND buff(bp)='Z'; ->top; !eqeq SLABEL(156): #line 2602 /*%own*/ bp = (bp + 1); %byte buff [bp ] = 90; #line 2602 goto L_00c1 /* JUMP */; #line 2604 // 2603 // 2604 c(74):%IF level = 0 %START; !begin SLABEL(156): #line 2604 if (pop() != pop()) goto L_0013; #line 2605 // 2605 %IF progmode <= 0 %THEN progmode = 1 %ELSE fault(7) if (pop() > pop()) goto L_0065; /*%own*/ progmode = 1; goto L_00b8 /* GOTO */; L_0065: ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; L_00b8: #line 2607 // 2606 !{Permit BEGIN after external defs} // 2607 %FINISH L_0013: #line 2608 // 2608 spec mode = level+1 /*%own*/ specmode = (level + 1); #line 2609 // 2609 block x = 0 /*%own*/ blockx = 0; #line 2610 // 2610 bp=bp+1 %AND buff(bp)='H'; %RETURN /*%own*/ bp = (bp + 1); %byte buff [bp ] = 72; #line 2610 RETURN {NOT IMPLEMENTED YET} #line 2611 // 2611 c(77):perm = 0; lines = 0; stats = 0; !endofperm SLABEL(156): #line 2611 /*%own*/ perm = 0; #line 2611 /*%own*/ lines = 0; #line 2611 /*%own*/ stats = 0; #line 2612 // 2612 close input *(pop())() /* CALL */; #line 2613 // 2613 select input(source) ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2614 // 2614 list = list-1 /*%own*/ list = (list - 1); #line 2615 // 2615 tbase = tmax; tstart = tmax tbase = tmax ; #line 2615 tstart = tmax ; #line 2616 // 2616 %RETURN RETURN {NOT IMPLEMENTED YET} #line 2617 // 2617 c(76):%IF include # 0 %AND x = 0 %START; !end of ... SLABEL(156): #line 2617 if (pop() == pop()) goto L_0013; if (pop() != pop()) goto L_0013; #line 2618 // 2618 lines = include; sstype = 0; !include /*%own*/ lines = include ; #line 2618 /*%own*/ sstype = 0; #line 2619 // 2619 close input *(pop())() /* CALL */; #line 2620 // 2620 list = include list /*%own*/ list = includelist ; #line 2621 // 2621 include level = 0 /*%own*/ includelevel = 0; #line 2622 // 2622 include = 0; select input(source); %RETURN /*%own*/ include = 0; #line 2622 ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2622 RETURN {NOT IMPLEMENTED YET} #line 2623 // 2623 %FINISH L_0013: #line 2624 // 2624 ss = -1; !prog/file /*%own*/ ss = (-1); #line 2625 // 2625 c(75):compile end(x); %RETURN; !%END SLABEL(156): #line 2625 ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2625 RETURN {NOT IMPLEMENTED YET} #line 2627 // 2626 // 2627 c(85):%IF x=0 %THEN control=lit %ELSE %START; !control SLABEL(156): #line 2627 if (pop() != pop()) goto L_0013; /*%own*/ control = lit ; goto L_00cf /* GOTO */; L_0013: #line 2628 // 2628 diag = lit&16_3FFF %IF lit>>14&3 = 1 if (pop() != pop()) goto L_0065; /*%own*/ diag = (16383 & lit ); L_0065: #line 2629 // 2629 %FINISH L_00cf: #line 2630 // 2630 op('z'-x, lit) ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2631 // 2631 ->top goto L_00c1 /* JUMP */; #line 2632 // 2632 c(83):list = list+x-2; ->top; !%LIST/%ENDOFLIST SLABEL(156): #line 2632 /*%own*/ list = ((list + x ) - 2); #line 2632 goto L_00c1 /* JUMP */; #line 2633 // 2633 c(84):reals ln = x; ->top; !%REALS long/normal SLABEL(156): #line 2633 /*%own*/ realsln = x ; #line 2633 goto L_00c1 /* JUMP */; #line 2634 // 2634 c(86):%IF include # 0 %START; !include "file" SLABEL(156): #line 2634 if (pop() == pop()) goto L_0013; #line 2635 // 2635 fault(7); %RETURN ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2635 RETURN {NOT IMPLEMENTED YET} #line 2636 // 2636 %FINISH L_0013: #line 2637 // 2637 get next; !sconst *(pop())() /* CALL */; #line 2638 // 2638 x = x-16_4000 /*%own*/ x = (x - 16384); #line 2639 // 2639 j = glink(x) j = glink [x ]; #line 2640 // 2640 k = j&255 k = (255 & j ); #line 2642 // 2641 !ABD - another little copy loop because SKIMP can't do the string map // 2642 include file = "" PUSHS "" %routine getnext = %string (63) includefile ; #line 2643 // 2643 %CYCLE L_00cf: #line 2644 // 2644 k = k-1; %EXIT %IF k < 0 k = (k - 1); #line 2644 if (pop() >= pop()) goto L_0065; goto L_0013 /* GOTO */; L_0065: #line 2645 // 2645 include file = include file.tostring(j>>8) ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; CONCAT {NOT IMPLEMENTED YET} /*%external*/ %string (1) %function %spec tostring {ind obj} = (j >> 8); #line 2646 // 2646 x = x+1 /*%own*/ x = (x + 1); #line 2647 // 2647 j = glink(x) j = glink [x ]; #line 2648 // 2648 k = k-1; %EXIT %IF k < 0 k = (k - 1); #line 2648 if (pop() >= pop()) goto L_0065; goto L_0013 /* GOTO */; L_0065: #line 2649 // 2649 include file = include file.tostring(j&255) ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; CONCAT {NOT IMPLEMENTED YET} /*%external*/ %string (1) %function %spec tostring {ind obj} = (255 & j ); #line 2650 // 2650 %REPEAT goto L_00cf /* end of for loop and others? */; L_0013: #line 2654 // 2651 !include file = string(x-16_4000+stbase) // 2652 !%begin // 2653 ! %on 9 %start; !Abandon(9); !%finish // 2654 open input(3, include file) ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2656 // 2655 !%end // 2656 include = lines; lines = 0 /*%own*/ include = lines ; #line 2656 /*%own*/ lines = 0; #line 2657 // 2657 include list = list; include level = level /*%own*/ includelist = list ; #line 2657 /*%own*/ includelevel = level ; #line 2658 // 2658 select input(3) ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2659 // 2659 ->top goto L_00c1 /* JUMP */; #line 2661 // 2660 // 2661 c(154):dimension = dimension+1; !dbsep SLABEL(156): #line 2661 /*%own*/ dimension = (dimension + 1); #line 2662 // 2662 fault(11) %IF dimension = dim limit+1 if (pop() != pop()) goto L_0013; ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; L_0013: #line 2663 // 2663 ->top goto L_00c1 /* JUMP */; #line 2664 // 2664 c(145):set bp; ->top; !crb SLABEL(156): #line 2664 *(pop())() /* CALL */; #line 2664 goto L_00c1 /* JUMP */; #line 2665 // 2665 c(146):set bp; !rcrb SLABEL(156): #line 2665 *(pop())() /* CALL */; #line 2666 // 2666 c(142):; !bplrb SLABEL(156): #line 2667 // 2667 dimension = 1 %IF dimension = 0 if (pop() != pop()) goto L_0013; /*%own*/ dimension = 1; L_0013: #line 2668 // 2668 op('d', dimension); op(',', defs) ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2668 ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2669 // 2669 %IF class # 146 %START if (pop() == pop()) goto L_0013; #line 2670 // 2670 set subs(defs) ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2671 // 2671 fault(13) %IF dict(dmin) >= 0 %OR inhibit # 0 %OR level=0 if (pop() >= pop()) goto L_00d0; if (pop() != pop()) goto L_00d0; if (pop() != pop()) goto L_0065; L_00d0: ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; L_0065: #line 2672 // 2672 %FINISH L_0013: #line 2673 // 2673 dimension = 0; defs = 0 /*%own*/ dimension = 0; #line 2673 defs = 0; #line 2674 // 2674 ->top goto L_00c1 /* JUMP */; #line 2675 // 2675 c(128):id = dupid; ->top; !EDUP SLABEL(156): #line 2675 id = dupid ; #line 2675 goto L_00c1 /* JUMP */; #line 2676 // 2676 c(130):block x = x SLABEL(156): #line 2676 /*%own*/ blockx = x ; #line 2677 // 2677 op('F', 0) %IF decl&spec = 0 %AND level # 0; !jump round proc if (pop() != pop()) goto L_0013; if (pop() == pop()) goto L_0013; ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; L_0013: #line 2678 // 2678 c(125):dupid = id; !%DUP SLABEL(156): #line 2678 dupid = id ; #line 2679 // 2679 %return %if Level < 0 ;!{spec about} if (pop() >= pop()) goto L_0013; RETURN {NOT IMPLEMENTED YET} L_0013: #line 2680 // 2680 c(90): def(x); ->top; !ident SLABEL(156): #line 2680 ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2680 goto L_00c1 /* JUMP */; #line 2681 // 2681 c(131):; !cident SLABEL(156): #line 2682 // 2682 %IF tag(x)_flags&(2_1111111+const bit) = iform+const bit %START SELECT V_0003 if (pop() != pop()) goto L_0013; #line 2683 // 2683 tag(x)_format = lit SELECT V_0002 %record {TAGFM} tag [x ] = lit ; #line 2684 // 2684 %FINISH %ELSE %START goto L_00d1 /* GOTO */; L_0013: #line 2685 // 2685 set const(lit) %IF pending # 0 if (pop() == pop()) goto L_0065; ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; L_0065: #line 2686 // 2686 def(x) ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2687 // 2687 op('A', 1) ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2688 // 2688 %FINISH L_00d1: #line 2689 // 2689 cident = x cident = x ; #line 2690 // 2690 ->top goto L_00c1 /* JUMP */; #line 2691 // 2691 c(124):dubious = 1 %IF tag(cident)_flags&prot # 0; !%DUBIOUS SLABEL(156): #line 2691 SELECT V_0003 if (pop() == pop()) goto L_0013; /*%own*/ dubious = 1; L_0013: #line 2692 // 2692 ->top goto L_00c1 /* JUMP */; #line 2693 // 2693 c(97): ; !f SLABEL(156): #line 2694 // 2694 c(98): ; !m SLABEL(156): #line 2695 // 2695 c(99): ; !p SLABEL(156): #line 2696 // 2696 c(96): call; ->top; !r SLABEL(156): #line 2696 *(pop())() /* CALL */; #line 2696 goto L_00c1 /* JUMP */; #line 2698 // 2697 // 2698 c(165):; !nlab SLABEL(156): #line 2699 // 2699 c(100):; !rp SLABEL(156): #line 2700 // 2700 c(101):; !fp SLABEL(156): #line 2701 // 2701 c(102):; !mp SLABEL(156): #line 2702 // 2702 c(103):; !pp SLABEL(156): #line 2703 // 2703 c(91): ; !v SLABEL(156): #line 2704 // 2704 c(92): ; !n SLABEL(156): #line 2705 // 2705 c(106):; !a SLABEL(156): #line 2706 // 2706 c(107):; !an SLABEL(156): #line 2707 // 2707 c(108):; !na SLABEL(156): #line 2708 // 2708 c(109):; !nan SLABEL(156): #line 2709 // 2709 k = tag(x)_index SELECT V_0004 k = %record {TAGFM} tag [x ]; #line 2710 // 2710 %IF k < 0 %THEN op('n', -k) %ELSE op('@', k) if (pop() >= pop()) goto L_0013; ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; goto L_00d1 /* GOTO */; L_0013: ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; L_00d1: #line 2711 // 2711 ->top goto L_00c1 /* JUMP */; #line 2712 // 2712 c(121):set const(0); ->top; !special for zero SLABEL(156): #line 2712 ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2712 goto L_00c1 /* JUMP */; #line 2713 // 2713 c(167):bp=bp+1; buff(bp)='G'; ->pstr; !aconst (alias) SLABEL(156): #line 2713 /*%own*/ bp = (bp + 1); #line 2713 %byte buff [bp ] = 71; #line 2713 goto L_00d2 /* JUMP */; #line 2714 // 2714 c(const):; !const SLABEL(156): #line 2715 // 2715 %IF x < 0 %START; !constinteger if (pop() >= pop()) goto L_0013; #line 2716 // 2716 set const(tag(-x)_format); ->top SELECT V_0002 ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2716 goto L_00c1 /* JUMP */; #line 2717 // 2717 %FINISH L_0013: #line 2718 // 2718 %IF x&16_4000 # 0 %START; !strings if (pop() == pop()) goto L_0013; #line 2719 // 2719 bp=bp+1 %AND buff(bp)='''' /*%own*/ bp = (bp + 1); %byte buff [bp ] = 39; #line 2720 // 2720 pstr: x = x-16_4000 L_00d2: #line 2720 /*%own*/ x = (x - 16384); #line 2721 // 2721 j = glink(x) j = glink [x ]; #line 2722 // 2722 k = j&255 k = (255 & j ); #line 2723 // 2723 bp=bp+1 %AND buff(bp)=k /*%own*/ bp = (bp + 1); %byte buff [bp ] = k ; #line 2724 // 2724 %CYCLE L_00b8: #line 2725 // 2725 k = k-1; ->top %IF k < 0 k = (k - 1); #line 2725 if (pop() >= pop()) goto L_00d3; goto L_00c1 /* JUMP */; L_00d3: #line 2726 // 2726 bp = bp+1; buff(bp) = j>>8; /*%own*/ bp = (bp + 1); #line 2726 %byte buff [bp ] = (j >> 8); #line 2727 // 2727 x = x+1 /*%own*/ x = (x + 1); #line 2728 // 2728 j = glink(x) j = glink [x ]; #line 2729 // 2729 k = k-1; ->top %IF k < 0 k = (k - 1); #line 2729 if (pop() >= pop()) goto L_00d4; goto L_00c1 /* JUMP */; L_00d4: #line 2730 // 2730 bp = bp+1; buff(bp) = j&255 /*%own*/ bp = (bp + 1); #line 2730 %byte buff [bp ] = (255 & j ); #line 2731 // 2731 %REPEAT goto L_00b8 /* end of for loop and others? */; #line 2732 // 2732 %FINISH L_0013: #line 2733 // 2733 %IF x&16_2000 # 0 %START; !real - ABD also string-like, but NOT packed if (pop() == pop()) goto L_0013; #line 2734 // 2734 x = x-16_2000 /*%own*/ x = (x - 8192); #line 2735 // 2735 k = glink(x) k = glink [x ]; #line 2736 // 2736 op('D', k); bp=bp+1 %AND buff(bp)=',' ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2736 /*%own*/ bp = (bp + 1); %byte buff [bp ] = 44; #line 2737 // 2737 %CYCLE L_00d5: #line 2738 // 2738 ->top %IF k = 0 if (pop() != pop()) goto L_00d6; goto L_00c1 /* JUMP */; L_00d6: #line 2739 // 2739 k = k-1 k = (k - 1); #line 2740 // 2740 x = x+1; j = glink(x) /*%own*/ x = (x + 1); #line 2740 j = glink [x ]; #line 2741 // 2741 %IF j = '@' %START if (pop() != pop()) goto L_00d7; #line 2742 // 2742 op('@', litpool(glink(x+1))); ->top ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2742 goto L_00c1 /* JUMP */; #line 2743 // 2743 %FINISH L_00d7: #line 2744 // 2744 bp=bp+1 %AND buff(bp)=j /*%own*/ bp = (bp + 1); %byte buff [bp ] = j ; #line 2745 // 2745 %REPEAT goto L_00d5 /* end of for loop and others? */; #line 2746 // 2746 %FINISH L_0013: #line 2747 // 2747 set const(lit pool(x)) ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2748 // 2748 ->top goto L_00c1 /* JUMP */; #line 2750 // 2749 // 2750 c(137):bp=bp+1 %AND buff(bp)='i'; ->top; !asep SLABEL(156): #line 2750 /*%own*/ bp = (bp + 1); %byte buff [bp ] = 105; #line 2750 goto L_00c1 /* JUMP */; #line 2751 // 2751 c(141):bp=bp+1 %AND buff(bp)='a'; ->top; !arb SLABEL(156): #line 2751 /*%own*/ bp = (bp + 1); %byte buff [bp ] = 97; #line 2751 goto L_00c1 /* JUMP */; #line 2755 // 2752 // 2753 !own arrays // 2754 // 2755 c(132):ocount = ub-lb+1 SLABEL(156): #line 2755 /*%own*/ ocount = ((ub - lb ) + 1); #line 2756 // 2756 def(x); !oident ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2757 // 2757 dimension = 1; set subs(1) /*%own*/ dimension = 1; #line 2757 ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2758 // 2758 %IF next = 0 %START; !no initialisation if (pop() != pop()) goto L_0013; #line 2759 // 2759 op('A', ocount) %IF ocount > 0 if (pop() <= pop()) goto L_0065; ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; L_0065: #line 2760 // 2760 ocount = -1 /*%own*/ ocount = (-1); #line 2761 // 2761 %FINISH %ELSE %START; !initialisation given goto L_00d1 /* GOTO */; L_0013: #line 2762 // 2762 get next *(pop())() /* CALL */; #line 2763 // 2763 %FINISH L_00d1: #line 2764 // 2764 ->top goto L_00c1 /* JUMP */; #line 2765 // 2765 c(162):lit = ocount; ->ins; !indef SLABEL(156): #line 2765 /*%own*/ lit = ocount ; #line 2765 goto L_00d8 /* JUMP */; #line 2766 // 2766 c(143):pop lit; !orb SLABEL(156): #line 2766 *(pop())() /* CALL */; #line 2767 // 2767 ins: fault(10) %AND lit = 0 %IF lit < 0 L_00d8: #line 2767 if (pop() >= pop()) goto L_0013; ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; /*%own*/ lit = 0; L_0013: #line 2768 // 2768 get next *(pop())() /* CALL */; #line 2769 // 2769 ->inst goto L_00d9 /* JUMP */; #line 2770 // 2770 c(139):; !osep (x=19) SLABEL(156): #line 2771 // 2771 c(153):lit = 1 SLABEL(156): #line 2771 /*%own*/ lit = 1; #line 2772 // 2772 inst: pop def %IF pending # 0; !ownt (x=0) L_00d9: #line 2772 if (pop() == pop()) goto L_0013; *(pop())() /* CALL */; L_0013: #line 2773 // 2773 op('A', lit) ASSPAR {NOT IMPLEMENTED YET} ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2774 // 2774 ocount = ocount-lit /*%own*/ ocount = (ocount - lit ); #line 2775 // 2775 %IF ocount >= 0 %START if (pop() < pop()) goto L_0013; #line 2776 // 2776 ->top %IF x # 0; !more coming if (pop() == pop()) goto L_0065; goto L_00c1 /* JUMP */; L_0065: #line 2777 // 2777 ocount = -1 %AND %RETURN %IF ocount = 0; !all done if (pop() != pop()) goto L_0065; /*%own*/ ocount = (-1); RETURN {NOT IMPLEMENTED YET} L_0065: #line 2778 // 2778 %FINISH L_0013: #line 2779 // 2779 fault(11); %RETURN ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2779 RETURN {NOT IMPLEMENTED YET} #line 2781 // 2780 // 2781 c(swit):op('W', tag(x)_index); inhibit = 1; ->atop SLABEL(156): #line 2781 ASSPAR {NOT IMPLEMENTED YET} SELECT V_0004 ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2781 inhibit = 1; #line 2781 goto L_00c6 /* JUMP */; #line 2782 // 2782 c(134):def(x); !swid SLABEL(156): #line 2782 ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2783 // 2783 n = ub-lb+1 n = ((ub - lb ) + 1); #line 2784 // 2784 n = (n+15)>>4; !slots needed (includes zero) n = ((n + 15) >> 4); #line 2785 // 2785 j = dmax; dmax = dmax+n+2 j = dmax ; #line 2785 /*%own*/ dmax = ((dmax + n ) + 2); #line 2786 // 2786 abandon(1) %IF dmax >= dmin if (pop() < pop()) goto L_0013; ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; L_0013: #line 2787 // 2787 tag(x)_format = j SELECT V_0002 %record {TAGFM} tag [x ] = j ; #line 2788 // 2788 dict(j) = lb; dict(j+1) = ub dict [j ] = lb ; #line 2788 dict [(j + 1)] = ub ; #line 2789 // 2789 %CYCLE L_00d1: #line 2790 // 2790 n = n-1 n = (n - 1); #line 2791 // 2791 ->top %IF n < 0 if (pop() >= pop()) goto L_0065; goto L_00c1 /* JUMP */; L_0065: #line 2792 // 2792 j = j+1; dict(j+1) = 0 j = (j + 1); #line 2792 dict [(j + 1)] = 0; #line 2793 // 2793 %REPEAT goto L_00d1 /* end of for loop and others? */; #line 2794 // 2794 c(151):stats = stats-1; !slab SLABEL(156): #line 2794 /*%own*/ stats = (stats - 1); #line 2795 // 2795 fault(7) %AND %RETURN %IF x < tbase if (pop() >= pop()) goto L_0013; ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; RETURN {NOT IMPLEMENTED YET} L_0013: #line 2796 // 2796 %IF pending # 0 %START; !explicit label if (pop() == pop()) goto L_0013; #line 2797 // 2797 def s lab(pstack(1)) ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; #line 2798 // 2798 %FINISH %ELSE %START goto L_00da /* GOTO */; L_0013: #line 2799 // 2799 fault(4) %AND %RETURN %IF tag(x)_app # 0 SELECT V_0001 if (pop() == pop()) goto L_0065; ASSPAR {NOT IMPLEMENTED YET} *(pop())() /* CALL */; RETURN {NOT IMPLEMENTED YET} L_0065: #line 2800 // 2800 tag(x)_app = 1 SELECT V_0001 %record {TAGFM} tag [x ] = 1; #line 2801 // 2801 n = tag(x)_format SELECT V_0002 n = %record {TAGFM} tag [x ]; #line 2802 // 2802 %FOR j = dict(n), 1, dict(n+1) %CYCLE for_initial[1] = pop(); for_final[1] = pop(); for_increment[1] = pop(); for_coi2c: io.c:168: nextlab: Assertion `lineno[d] == 0' failed. ntrol[1] = pop(); *for_control[1] = for_initial[1]; Program received signal SIGABRT, Aborted. 0x40049861 in kill () from /lib/libc.so.6 #0 0x40049861 in kill () from /lib/libc.so.6 #1 0x40049665 in raise () from /lib/libc.so.6 #2 0x4004ac81 in abort () from /lib/libc.so.6 #3 0x40043a52 in Letext () from /lib/libc.so.6 #4 0x080499a6 in nextlab (d=7, labtype=1) at io.c:168 #5 0x0804dae3 in main (argc=2, argv=0xbffff324) at i2c.c:176 #6 0x400387ee in __libc_start_main () from /lib/libc.so.6