Decompiler.st
changeset 135 aa4f7b8f121e
parent 4 f6fd83437415
child 164 b511f22fea3b
equal deleted inserted replaced
134:d93682ca90a1 135:aa4f7b8f121e
     1 "
     1 "
     2  COPYRIGHT (c) 1991 by Claus Gittinger
     2  COPYRIGHT (c) 1991 by Claus Gittinger
     3               All Rights Reserved
     3 	      All Rights Reserved
     4 
     4 
     5  This software is furnished under a license and may be used
     5  This software is furnished under a license and may be used
     6  only in accordance with the terms of that license and with the
     6  only in accordance with the terms of that license and with the
     7  inclusion of the above copyright notice.   This software may not
     7  inclusion of the above copyright notice.   This software may not
     8  be provided or otherwise made available to, or used by, any
     8  be provided or otherwise made available to, or used by, any
    15        classVariableNames:''
    15        classVariableNames:''
    16        poolDictionaries:''
    16        poolDictionaries:''
    17        category:'System-Compiler'
    17        category:'System-Compiler'
    18 !
    18 !
    19 
    19 
    20 Decompiler comment:'
    20 !Decompiler class methodsFor:'documentation'!
    21 
    21 
    22 COPYRIGHT (c) 1991 by Claus Gittinger
    22 copyright
    23              All Rights Reserved
    23 "
    24 
    24  COPYRIGHT (c) 1991 by Claus Gittinger
    25 additional methods for decompilation
    25 	      All Rights Reserved
    26 
    26 
    27 $Header: /cvs/stx/stx/libcomp/Decompiler.st,v 1.3 1993-10-13 02:41:18 claus Exp $
    27  This software is furnished under a license and may be used
    28 '!
    28  only in accordance with the terms of that license and with the
       
    29  inclusion of the above copyright notice.   This software may not
       
    30  be provided or otherwise made available to, or used by, any
       
    31  other person.  No title to or ownership of the software is
       
    32  hereby transferred.
       
    33 "
       
    34 !
       
    35 
       
    36 version
       
    37     ^ '$Header: /cvs/stx/stx/libcomp/Decompiler.st,v 1.4 1995-11-11 15:30:20 cg Exp $'
       
    38 !
       
    39 
       
    40 documentation
       
    41 "
       
    42     only for stx-debugging. Not for public eyes.
       
    43 
       
    44     Decompiler decompile:(someClass compiledMethodAt:#someSelector)
       
    45 "
       
    46 ! !
    29 
    47 
    30 !Decompiler class methodsFor:'decompiling'!
    48 !Decompiler class methodsFor:'decompiling'!
    31 
    49 
    32 decompile:aMethod
    50 decompile:aMethod
    33     ^ (self new) decompile:aMethod
    51     ^ (self new) decompile:aMethod
    40 showOffset:byte
    58 showOffset:byte
    41     |offs|
    59     |offs|
    42 
    60 
    43     index := index + 1.
    61     index := index + 1.
    44     (byte > 127) ifTrue:[
    62     (byte > 127) ifTrue:[
    45         offs := byte - 256
    63 	offs := byte - 256
    46     ] ifFalse:[
    64     ] ifFalse:[
    47         offs := byte
    65 	offs := byte
    48     ].
    66     ].
    49     Transcript show:(offs printString).
    67     Transcript show:(offs printString).
    50     Transcript show:' ('.
    68     Transcript show:' ('.
    51     Transcript show:(index + offs) printString.
    69     Transcript show:(index + offs) printString.
    52     Transcript show:')'
    70     Transcript show:')'
    55 showLongOffset:byte
    73 showLongOffset:byte
    56     |offs|
    74     |offs|
    57 
    75 
    58     index := index + 1.
    76     index := index + 1.
    59     (byte > 127) ifTrue:[
    77     (byte > 127) ifTrue:[
    60         offs := byte - 256 - 128
    78 	offs := byte - 256 - 128
    61     ] ifFalse:[
    79     ] ifFalse:[
    62         offs := byte + 128
    80 	offs := byte + 128
    63     ].
    81     ].
    64     Transcript show:offs printString.
    82     Transcript show:offs printString.
    65     Transcript show:' ('.
    83     Transcript show:' ('.
    66     Transcript show:(index + offs) printString.
    84     Transcript show:(index + offs) printString.
    67     Transcript show:')'
    85     Transcript show:')'
    70 showVeryLongOffset:byte
    88 showVeryLongOffset:byte
    71     |offs|
    89     |offs|
    72 
    90 
    73     index := index + 1.
    91     index := index + 1.
    74     (byte > 127) ifTrue:[
    92     (byte > 127) ifTrue:[
    75         offs := byte - 256 - 256
    93 	offs := byte - 256 - 256
    76     ] ifFalse:[
    94     ] ifFalse:[
    77         offs := byte + 256
    95 	offs := byte + 256
    78     ].
    96     ].
    79     Transcript show:offs printString.
    97     Transcript show:offs printString.
    80     Transcript show:' ('.
    98     Transcript show:' ('.
    81     Transcript show:(index + offs) printString.
    99     Transcript show:(index + offs) printString.
    82     Transcript show:')'
   100     Transcript show:')'
   201 
   219 
   202 decompile:aMethod
   220 decompile:aMethod
   203     |nBytes offs byte sym sel|
   221     |nBytes offs byte sym sel|
   204 
   222 
   205     aMethod isNil ifTrue:[
   223     aMethod isNil ifTrue:[
   206         Transcript showCr:'nil method'.
   224 	Transcript showCr:'nil method'.
   207         ^ self
   225 	^ self
   208     ].   
   226     ].   
   209 
   227 
   210     bytes := aMethod byteCode.
   228     bytes := aMethod byteCode.
   211     bytes isNil ifTrue:[
   229     bytes isNil ifTrue:[
   212         Transcript showCr:'no bytecode'.
   230 	Transcript showCr:'no bytecode'.
   213         ^ self
   231 	^ self
   214     ].
   232     ].
   215     literals := aMethod literals.
   233     literals := aMethod literals.
   216     index := 1.
   234     index := 1.
   217     nBytes := bytes size.
   235     nBytes := bytes size.
   218     [index <= nBytes] whileTrue:[
   236     [index <= nBytes] whileTrue:[
   219         self showPC.
   237 	self showPC.
   220         sym := self symbolicCodeFor:(bytes at:index).
   238 	sym := self symbolicCodeFor:(bytes at:index).
   221         Transcript show:sym.
   239 	Transcript show:sym.
   222 "
   240 "
   223         extra notNil ifTrue:[Transcript show:(extra printString)].
   241 	extra notNil ifTrue:[Transcript show:(extra printString)].
   224 "
   242 "
   225         hasLineNo ifTrue:[
   243 	hasLineNo ifTrue:[
   226             index := index + 1
   244 	    index := index + 1
   227         ].
   245 	].
   228         index := index + 1.
   246 	index := index + 1.
   229         extra notNil ifTrue:[
   247 	extra notNil ifTrue:[
   230             Transcript show:' '.
   248 	    Transcript show:' '.
   231             byte := bytes at:index.
   249 	    byte := bytes at:index.
   232 
   250 
   233             "compute argument showXXX selector from extra ..."
   251 	    "compute argument showXXX selector from extra ..."
   234 
   252 
   235             sel := 'show' , extra , ':'.
   253 	    sel := 'show' , extra , ':'.
   236             sel at:5 put:(sel at:5) asUppercase.
   254 	    sel at:5 put:(sel at:5) asUppercase.
   237             self perform:sel asSymbol with:byte
   255 	    self perform:sel asSymbol with:byte
   238         ].
   256 	].
   239         Transcript showCr:''
   257 	Transcript showCr:''
   240     ]
   258     ]
   241 !
   259 !
   242 
   260 
   243 symbolicCodeFor:aByte
   261 symbolicCodeFor:aByte
   244     |syms extras lnos|
   262     |syms extras lnos|
   245 
   263 
   246     syms := #(  retTop         " 0  "
   264     syms := #(  retTop         " 0  "
   247                 retNil
   265 		retNil
   248                 retTrue
   266 		retTrue
   249                 retFalse
   267 		retFalse
   250                 ret0
   268 		ret0
   251                 retSelf         " 5  "
   269 		retSelf         " 5  "
   252                 blockRetTop
   270 		blockRetTop
   253                 nil
   271 		nil
   254                 nil
   272 		nil
   255                 nil
   273 		nil
   256                 pushNil         " 10 "
   274 		pushNil         " 10 "
   257                 pushTrue
   275 		pushTrue
   258                 pushFalse
   276 		pushFalse
   259                 pushInt
   277 		pushInt
   260                 pushLit
   278 		pushLit
   261                 pushSelf        " 15 "
   279 		pushSelf        " 15 "
   262                 pushNum
   280 		pushNum
   263                 pushChar
   281 		pushChar
   264                 drop
   282 		drop
   265                 send
   283 		send
   266                 superSend       " 20 "
   284 		superSend       " 20 "
   267                 send0
   285 		send0
   268                 send1
   286 		send1
   269                 send2
   287 		send2
   270                 send3
   288 		send3
   271                 sendDrop        " 25 "
   289 		sendDrop        " 25 "
   272                 sendDrop0
   290 		sendDrop0
   273                 sendDrop1
   291 		sendDrop1
   274                 sendDrop2
   292 		sendDrop2
   275                 sendDrop3
   293 		sendDrop3
   276                 pushMethodArg   " 30 "
   294 		pushMethodArg   " 30 "
   277                 pushMethodVar
   295 		pushMethodVar
   278                 pushBlockArg
   296 		pushBlockArg
   279                 pushBlockVar
   297 		pushBlockVar
   280                 pushInstVar
   298 		pushInstVar
   281                 pushClassVar    " 35 "
   299 		pushClassVar    " 35 "
   282                 pushGlobal
   300 		pushGlobal
   283                 storeMethodVar
   301 		storeMethodVar
   284                 storeBlockVar
   302 		storeBlockVar
   285                 storeInstVar
   303 		storeInstVar
   286                 storeClassVar   " 40 "
   304 		storeClassVar   " 40 "
   287                 storeGlobal
   305 		storeGlobal
   288                 pushOuterBlockArg
   306 		pushOuterBlockArg
   289                 pushOuter1BlockArg
   307 		pushOuter1BlockArg
   290                 pushOuter2BlockArg
   308 		pushOuter2BlockArg
   291                 equal           " 45 "
   309 		equal           " 45 "
   292                 notEqual
   310 		notEqual
   293                 dup
   311 		dup
   294                 equal0
   312 		equal0
   295                 notEqual0
   313 		notEqual0
   296                 falseJump       " 50 "
   314 		falseJump       " 50 "
   297                 trueJump
   315 		trueJump
   298                 nilJump
   316 		nilJump
   299                 notNilJump
   317 		notNilJump
   300                 jump
   318 		jump
   301                 makeBlock       " 55 "
   319 		makeBlock       " 55 "
   302                 zeroJump
   320 		zeroJump
   303                 notZeroJump
   321 		notZeroJump
   304                 eqJump
   322 		eqJump
   305                 notEqJump
   323 		notEqJump
   306                 falseJump       " 60 "
   324 		falseJump       " 60 "
   307                 trueJump
   325 		trueJump
   308                 nilJump
   326 		nilJump
   309                 notNilJump
   327 		notNilJump
   310                 jump
   328 		jump
   311                 makeBlock       " 65 "
   329 		makeBlock       " 65 "
   312                 zeroJump
   330 		zeroJump
   313                 notZeroJump
   331 		notZeroJump
   314                 eqJump
   332 		eqJump
   315                 notEqJump
   333 		notEqJump
   316                 falseJump       " 70 "
   334 		falseJump       " 70 "
   317                 trueJump
   335 		trueJump
   318                 nilJump
   336 		nilJump
   319                 notNilJump
   337 		notNilJump
   320                 jump
   338 		jump
   321                 makeBlock       " 75 "
   339 		makeBlock       " 75 "
   322                 zeroJump
   340 		zeroJump
   323                 notZeroJump
   341 		notZeroJump
   324                 eqJump
   342 		eqJump
   325                 notEqJump
   343 		notEqJump
   326                 pushMethodVar1  " 80 "
   344 		pushMethodVar1  " 80 "
   327                 pushMethodVar2
   345 		pushMethodVar2
   328                 pushMethodVar3
   346 		pushMethodVar3
   329                 pushMethodVar4
   347 		pushMethodVar4
   330                 pushMethodVar5
   348 		pushMethodVar5
   331                 pushMethodVar6  " 85 "
   349 		pushMethodVar6  " 85 "
   332                 pushMethodArg1
   350 		pushMethodArg1
   333                 pushMethodArg2
   351 		pushMethodArg2
   334                 pushMethodArg3
   352 		pushMethodArg3
   335                 pushMethodArg4
   353 		pushMethodArg4
   336                 pushInstVar1    " 90 "
   354 		pushInstVar1    " 90 "
   337                 pushInstVar2
   355 		pushInstVar2
   338                 pushInstVar3
   356 		pushInstVar3
   339                 pushInstVar4
   357 		pushInstVar4
   340                 pushInstVar5
   358 		pushInstVar5
   341                 pushInstVar6    " 95 "
   359 		pushInstVar6    " 95 "
   342                 pushInstVar7
   360 		pushInstVar7
   343                 pushInstVar8
   361 		pushInstVar8
   344                 pushInstVar9
   362 		pushInstVar9
   345                 pushInstVar10
   363 		pushInstVar10
   346                 storeMethodVar1 " 100 "
   364 		storeMethodVar1 " 100 "
   347                 storeMethodVar2
   365 		storeMethodVar2
   348                 storeMethodVar3
   366 		storeMethodVar3
   349                 storeMethodVar4
   367 		storeMethodVar4
   350                 storeMethodVar5
   368 		storeMethodVar5
   351                 storeMethodVar6 " 105 "
   369 		storeMethodVar6 " 105 "
   352                 sendY
   370 		sendY
   353                 sendX
   371 		sendX
   354                 sendWidth
   372 		sendWidth
   355                 sendHeight
   373 		sendHeight
   356                 storeInstVar1   " 110 "
   374 		storeInstVar1   " 110 "
   357                 storeInstVar2
   375 		storeInstVar2
   358                 storeInstVar3
   376 		storeInstVar3
   359                 storeInstVar4
   377 		storeInstVar4
   360                 storeInstVar5
   378 		storeInstVar5
   361                 storeInstVar6  " 115 "
   379 		storeInstVar6  " 115 "
   362                 storeInstVar7
   380 		storeInstVar7
   363                 storeInstVar8
   381 		storeInstVar8
   364                 storeInstVar9
   382 		storeInstVar9
   365                 storeInstVar10
   383 		storeInstVar10
   366                 push0           " 120 "
   384 		push0           " 120 "
   367                 push1
   385 		push1
   368                 pushMinus1
   386 		pushMinus1
   369                 sendPlus1
   387 		sendPlus1
   370                 sendMinus1
   388 		sendMinus1
   371                 incMethodVar    " 125 "
   389 		incMethodVar    " 125 "
   372                 decMethodVar
   390 		decMethodVar
   373                 retNum
   391 		retNum
   374                 pushOuterBlockVar
   392 		pushOuterBlockVar
   375                 storeOuterBlockVar
   393 		storeOuterBlockVar
   376                 sendEQ          " 130 "
   394 		sendEQ          " 130 "
   377                 sendPLUS
   395 		sendPLUS
   378                 sendNE
   396 		sendNE
   379                 sendMINUS
   397 		sendMINUS
   380                 sendCLASS
   398 		sendCLASS
   381                 sendAT          " 135 "
   399 		sendAT          " 135 "
   382                 sendATPUT
   400 		sendATPUT
   383                 sendBitAnd
   401 		sendBitAnd
   384                 sendBitOr
   402 		sendBitOr
   385                 push2
   403 		push2
   386                 pushBlockArg1   " 140 "
   404 		pushBlockArg1   " 140 "
   387                 pushBlockArg2
   405 		pushBlockArg2
   388                 pushBlockArg3
   406 		pushBlockArg3
   389                 pushBlockArg4
   407 		pushBlockArg4
   390                 pushContext
   408 		pushContext
   391                 sendGT          " 145 "
   409 		sendGT          " 145 "
   392                 sendGE
   410 		sendGE
   393                 sendLT
   411 		sendLT
   394                 sendLE
   412 		sendLE
   395                 sendNEXT
   413 		sendNEXT
   396                 sendPEEK        " 150 "
   414 		sendPEEK        " 150 "
   397                 sendVALUE
   415 		sendVALUE
   398                 sendVALUE1
   416 		sendVALUE1
   399                 sendSIZE
   417 		sendSIZE
   400                 sendORIGIN
   418 		sendORIGIN
   401                 sendEXTENT      " 155 "
   419 		sendEXTENT      " 155 "
   402                 make0Block             
   420 		make0Block             
   403                 makeNILBlock
   421 		makeNILBlock
   404                 nil
   422 		nil
   405                 nil
   423 		nil
   406                 retMvar1        " 160 "
   424 		retMvar1        " 160 "
   407                 retMvar2        
   425 		retMvar2        
   408                 retMvar3        
   426 		retMvar3        
   409                 retMvar4        
   427 		retMvar4        
   410                 retMvar5        
   428 		retMvar5        
   411                 retMvar6        " 165 "
   429 		retMvar6        " 165 "
   412                 retIvar1        
   430 		retIvar1        
   413                 retIvar2        
   431 		retIvar2        
   414                 retIvar3        
   432 		retIvar3        
   415                 retIvar4        
   433 		retIvar4        
   416                 retIvar5        " 170 "
   434 		retIvar5        " 170 "
   417                 retIvar6        
   435 		retIvar6        
   418                 retIvar7        
   436 		retIvar7        
   419                 retIvar8        
   437 		retIvar8        
   420                 retMarg1        
   438 		retMarg1        
   421                 retMarg2        " 175 "
   439 		retMarg2        " 175 "
   422                 pushClassInstVar
   440 		pushClassInstVar
   423                 storeClassInstVar
   441 		storeClassInstVar
   424                 nil
   442 		nil
   425                 nil
   443 		nil
   426                 sendSelf0       " 180 "
   444 		sendSelf0       " 180 "
   427                 sendSelf1
   445 		sendSelf1
   428                 sendSelf2
   446 		sendSelf2
   429                 sendSelf3
   447 		sendSelf3
   430                 sendSelfDrop0   
   448 		sendSelfDrop0   
   431                 sendSelfDrop1   " 185 "
   449 		sendSelfDrop1   " 185 "
   432                 sendSelfDrop2
   450 		sendSelfDrop2
   433                 sendSelfDrop3
   451 		sendSelfDrop3
   434                 nil
   452 		nil
   435                 nil
   453 		nil
   436                 falseJumpAbs    " 190 "
   454 		falseJumpAbs    " 190 "
   437                 trueJumpAbs     
   455 		trueJumpAbs     
   438                 nilJumpAbs     
   456 		nilJumpAbs     
   439                 notNilJumpAbs   
   457 		notNilJumpAbs   
   440                 jumpAbs        
   458 		jumpAbs        
   441                 makeBlockAbs    " 195 "
   459 		makeBlockAbs    " 195 "
   442                 zeroJumpAbs
   460 		zeroJumpAbs
   443                 notZeroJumpAbs
   461 		notZeroJumpAbs
   444                 eqJumpAbs
   462 		eqJumpAbs
   445                 notEqJumpAbs    " 199 "
   463 		notEqJumpAbs    " 199 "
   446               ).
   464 	      ).
   447 
   465 
   448     lnos := #(  false          " 0  "
   466     lnos := #(  false          " 0  "
   449                 false   
   467 		false   
   450                 false   
   468 		false   
   451                 false   
   469 		false   
   452                 false
   470 		false
   453                 false          " 5  "
   471 		false          " 5  "
   454                 false
   472 		false
   455                 false
   473 		false
   456                 false
   474 		false
   457                 false
   475 		false
   458                 false          " 10 "
   476 		false          " 10 "
   459                 false
   477 		false
   460                 false
   478 		false
   461                 false
   479 		false
   462                 false
   480 		false
   463                 false          " 15 "
   481 		false          " 15 "
   464                 false
   482 		false
   465                 false
   483 		false
   466                 false
   484 		false
   467                 true
   485 		true
   468                 true           " 20 "
   486 		true           " 20 "
   469                 true 
   487 		true 
   470                 true 
   488 		true 
   471                 true 
   489 		true 
   472                 true 
   490 		true 
   473                 true           " 25 "
   491 		true           " 25 "
   474                 true 
   492 		true 
   475                 true 
   493 		true 
   476                 true 
   494 		true 
   477                 true 
   495 		true 
   478                 false          " 30 "
   496 		false          " 30 "
   479                 false
   497 		false
   480                 false
   498 		false
   481                 false
   499 		false
   482                 false
   500 		false
   483                 false          " 35 "
   501 		false          " 35 "
   484                 false
   502 		false
   485                 false
   503 		false
   486                 false
   504 		false
   487                 false
   505 		false
   488                 false           " 40 "
   506 		false           " 40 "
   489                 false
   507 		false
   490                 false
   508 		false
   491                 false
   509 		false
   492                 false
   510 		false
   493                 false           " 45 "
   511 		false           " 45 "
   494                 false
   512 		false
   495                 false
   513 		false
   496                 false
   514 		false
   497                 false
   515 		false
   498                 false       " 50 "
   516 		false       " 50 "
   499                 false
   517 		false
   500                 false
   518 		false
   501                 false
   519 		false
   502                 false
   520 		false
   503                 false       " 55 "
   521 		false       " 55 "
   504                 false
   522 		false
   505                 false
   523 		false
   506                 false
   524 		false
   507                 false
   525 		false
   508                 false       " 60 "
   526 		false       " 60 "
   509                 false
   527 		false
   510                 false
   528 		false
   511                 false
   529 		false
   512                 false
   530 		false
   513                 false       " 65 "
   531 		false       " 65 "
   514                 false
   532 		false
   515                 false
   533 		false
   516                 false
   534 		false
   517                 false
   535 		false
   518                 false       " 70 "
   536 		false       " 70 "
   519                 false
   537 		false
   520                 false
   538 		false
   521                 false
   539 		false
   522                 false
   540 		false
   523                 false       " 75 "
   541 		false       " 75 "
   524                 false
   542 		false
   525                 false
   543 		false
   526                 false
   544 		false
   527                 false 
   545 		false 
   528                 false  " 80 "
   546 		false  " 80 "
   529                 false
   547 		false
   530                 false
   548 		false
   531                 false
   549 		false
   532                 false
   550 		false
   533                 false  " 85 "
   551 		false  " 85 "
   534                 false
   552 		false
   535                 false
   553 		false
   536                 false
   554 		false
   537                 false
   555 		false
   538                 false    " 90 "
   556 		false    " 90 "
   539                 false
   557 		false
   540                 false
   558 		false
   541                 false
   559 		false
   542                 false
   560 		false
   543                 false    " 95 "
   561 		false    " 95 "
   544                 false
   562 		false
   545                 false
   563 		false
   546                 false
   564 		false
   547                 false
   565 		false
   548                 false " 100 "
   566 		false " 100 "
   549                 false
   567 		false
   550                 false
   568 		false
   551                 false
   569 		false
   552                 false
   570 		false
   553                 false " 105 "
   571 		false " 105 "
   554                 false
   572 		false
   555                 false
   573 		false
   556                 false
   574 		false
   557                 false
   575 		false
   558                 false   " 110 "
   576 		false   " 110 "
   559                 false
   577 		false
   560                 false
   578 		false
   561                 false
   579 		false
   562                 false
   580 		false
   563                 false  " 115 "
   581 		false  " 115 "
   564                 false
   582 		false
   565                 false
   583 		false
   566                 false
   584 		false
   567                 false
   585 		false
   568                 false           " 120 "
   586 		false           " 120 "
   569                 false
   587 		false
   570                 false
   588 		false
   571                 false
   589 		false
   572                 false
   590 		false
   573                 false    " 125 "
   591 		false    " 125 "
   574                 false
   592 		false
   575                 false
   593 		false
   576                 false
   594 		false
   577                 false
   595 		false
   578                 false          " 130 "
   596 		false          " 130 "
   579                 false
   597 		false
   580                 false
   598 		false
   581                 false
   599 		false
   582                 false
   600 		false
   583                 false          " 135 "
   601 		false          " 135 "
   584                 false
   602 		false
   585                 false
   603 		false
   586                 false
   604 		false
   587                 false
   605 		false
   588                 false   " 140 "
   606 		false   " 140 "
   589                 false
   607 		false
   590                 false
   608 		false
   591                 false
   609 		false
   592                 false
   610 		false
   593                 false          " 145 "
   611 		false          " 145 "
   594                 false
   612 		false
   595                 false
   613 		false
   596                 false
   614 		false
   597                 false
   615 		false
   598                 false        " 150 "
   616 		false        " 150 "
   599                 false
   617 		false
   600                 false
   618 		false
   601                 false
   619 		false
   602                 false
   620 		false
   603                 false             " 155 "
   621 		false             " 155 "
   604                 false
   622 		false
   605                 false
   623 		false
   606                 false
   624 		false
   607                 false
   625 		false
   608                 false        " 160 "
   626 		false        " 160 "
   609                 false
   627 		false
   610                 false
   628 		false
   611                 false
   629 		false
   612                 false
   630 		false
   613                 false        " 165 "
   631 		false        " 165 "
   614                 false
   632 		false
   615                 false
   633 		false
   616                 false
   634 		false
   617                 false
   635 		false
   618                 false        " 170 "
   636 		false        " 170 "
   619                 false
   637 		false
   620                 false
   638 		false
   621                 false
   639 		false
   622                 false
   640 		false
   623                 false        " 175 "
   641 		false        " 175 "
   624                 false
   642 		false
   625                 false
   643 		false
   626                 false
   644 		false
   627                 false
   645 		false
   628                 true         " 180 "
   646 		true         " 180 "
   629                 true
   647 		true
   630                 true
   648 		true
   631                 true
   649 		true
   632                 true
   650 		true
   633                 true         " 185 "
   651 		true         " 185 "
   634                 true
   652 		true
   635                 true
   653 		true
   636                 false
   654 		false
   637                 false
   655 		false
   638                 false         " 190 "
   656 		false         " 190 "
   639                 false
   657 		false
   640                 false
   658 		false
   641                 false
   659 		false
   642                 false
   660 		false
   643                 false         " 195 "
   661 		false         " 195 "
   644                 false
   662 		false
   645                 false
   663 		false
   646                 false
   664 		false
   647                 false         " 199 "
   665 		false         " 199 "
   648               ).
   666 	      ).
   649 
   667 
   650     extras := #(nil             " 0  "
   668     extras := #(nil             " 0  "
   651                 nil
   669 		nil
   652                 nil
   670 		nil
   653                 nil
   671 		nil
   654                 nil
   672 		nil
   655                 nil             " 5  "
   673 		nil             " 5  "
   656                 nil
   674 		nil
   657                 nil
   675 		nil
   658                 nil
   676 		nil
   659                 nil
   677 		nil
   660                 nil             " 10 "
   678 		nil             " 10 "
   661                 nil
   679 		nil
   662                 nil
   680 		nil
   663                 nil
   681 		nil
   664                 literal
   682 		literal
   665                 nil             " 15 "
   683 		nil             " 15 "
   666                 number
   684 		number
   667                 nil
   685 		nil
   668                 nil
   686 		nil
   669                 sendArgs
   687 		sendArgs
   670                 superSendArgs   " 20 "
   688 		superSendArgs   " 20 "
   671                 literal
   689 		literal
   672                 literal
   690 		literal
   673                 literal
   691 		literal
   674                 literal
   692 		literal
   675                 sendArgs        " 25 "
   693 		sendArgs        " 25 "
   676                 literal
   694 		literal
   677                 literal
   695 		literal
   678                 literal
   696 		literal
   679                 literal
   697 		literal
   680                 index           " 30 "
   698 		index           " 30 "
   681                 index
   699 		index
   682                 index
   700 		index
   683                 index
   701 		index
   684                 index
   702 		index
   685                 literalSkip5    " 35 "
   703 		literalSkip5    " 35 "
   686                 literalSkip5
   704 		literalSkip5
   687                 index
   705 		index
   688                 index
   706 		index
   689                 index
   707 		index
   690                 literalSkip5    " 40 "
   708 		literalSkip5    " 40 "
   691                 literalSkip5
   709 		literalSkip5
   692                 indexLevel
   710 		indexLevel
   693                 index
   711 		index
   694                 index
   712 		index
   695                 nil             " 45 "
   713 		nil             " 45 "
   696                 nil
   714 		nil
   697                 nil
   715 		nil
   698                 nil
   716 		nil
   699                 nil
   717 		nil
   700                 offset          " 50 "
   718 		offset          " 50 "
   701                 offset
   719 		offset
   702                 offset
   720 		offset
   703                 offset
   721 		offset
   704                 offset
   722 		offset
   705                 offsetLevel     " 55 "
   723 		offsetLevel     " 55 "
   706                 offset
   724 		offset
   707                 offset
   725 		offset
   708                 offset
   726 		offset
   709                 offset
   727 		offset
   710                 longOffset      " 60 "
   728 		longOffset      " 60 "
   711                 longOffset
   729 		longOffset
   712                 longOffset
   730 		longOffset
   713                 longOffset
   731 		longOffset
   714                 longOffset
   732 		longOffset
   715                 longOffsetLevel " 65 "
   733 		longOffsetLevel " 65 "
   716                 longOffset
   734 		longOffset
   717                 longOffset
   735 		longOffset
   718                 longOffset
   736 		longOffset
   719                 longOffset
   737 		longOffset
   720                 veryLongOffset  " 70 "
   738 		veryLongOffset  " 70 "
   721                 veryLongOffset
   739 		veryLongOffset
   722                 veryLongOffset
   740 		veryLongOffset
   723                 veryLongOffset
   741 		veryLongOffset
   724                 veryLongOffset
   742 		veryLongOffset
   725                 veryLongOffsetLevel  " 75 "
   743 		veryLongOffsetLevel  " 75 "
   726                 veryLongOffset
   744 		veryLongOffset
   727                 veryLongOffset
   745 		veryLongOffset
   728                 veryLongOffset
   746 		veryLongOffset
   729                 veryLongOffset
   747 		veryLongOffset
   730                 nil             " 80 "
   748 		nil             " 80 "
   731                 nil
   749 		nil
   732                 nil
   750 		nil
   733                 nil
   751 		nil
   734                 nil
   752 		nil
   735                 nil             " 85 "
   753 		nil             " 85 "
   736                 nil
   754 		nil
   737                 nil
   755 		nil
   738                 nil
   756 		nil
   739                 nil
   757 		nil
   740                 nil             " 90 "
   758 		nil             " 90 "
   741                 nil
   759 		nil
   742                 nil
   760 		nil
   743                 nil
   761 		nil
   744                 nil
   762 		nil
   745                 nil             " 95 "
   763 		nil             " 95 "
   746                 nil
   764 		nil
   747                 nil
   765 		nil
   748                 nil
   766 		nil
   749                 nil
   767 		nil
   750                 nil             " 100 "
   768 		nil             " 100 "
   751                 nil
   769 		nil
   752                 nil
   770 		nil
   753                 nil
   771 		nil
   754                 nil
   772 		nil
   755                 nil             " 105 "
   773 		nil             " 105 "
   756                 nil
   774 		nil
   757                 nil
   775 		nil
   758                 nil
   776 		nil
   759                 nil
   777 		nil
   760                 nil             " 110 "
   778 		nil             " 110 "
   761                 nil
   779 		nil
   762                 nil
   780 		nil
   763                 nil
   781 		nil
   764                 nil
   782 		nil
   765                 nil             " 115 "
   783 		nil             " 115 "
   766                 nil
   784 		nil
   767                 nil
   785 		nil
   768                 nil
   786 		nil
   769                 nil
   787 		nil
   770                 nil             " 120 "
   788 		nil             " 120 "
   771                 nil
   789 		nil
   772                 nil
   790 		nil
   773                 nil
   791 		nil
   774                 nil
   792 		nil
   775                 index           " 125 "
   793 		index           " 125 "
   776                 index
   794 		index
   777                 number
   795 		number
   778                 indexLevel
   796 		indexLevel
   779                 indexLevel
   797 		indexLevel
   780                 nil             " 130 "
   798 		nil             " 130 "
   781                 nil
   799 		nil
   782                 nil
   800 		nil
   783                 nil
   801 		nil
   784                 nil
   802 		nil
   785                 nil             " 135 "
   803 		nil             " 135 "
   786                 nil
   804 		nil
   787                 nil
   805 		nil
   788                 nil
   806 		nil
   789                 nil
   807 		nil
   790                 nil             " 140 "
   808 		nil             " 140 "
   791                 nil
   809 		nil
   792                 nil
   810 		nil
   793                 nil
   811 		nil
   794                 nil
   812 		nil
   795                 nil             " 145 "
   813 		nil             " 145 "
   796                 nil
   814 		nil
   797                 nil
   815 		nil
   798                 nil
   816 		nil
   799                 nil
   817 		nil
   800                 nil             " 150 "
   818 		nil             " 150 "
   801                 nil
   819 		nil
   802                 nil
   820 		nil
   803                 nil
   821 		nil
   804                 nil
   822 		nil
   805                 nil             " 155 "
   823 		nil             " 155 "
   806                 nil
   824 		nil
   807                 nil
   825 		nil
   808                 nil
   826 		nil
   809                 nil
   827 		nil
   810                 nil             " 160 "
   828 		nil             " 160 "
   811                 nil
   829 		nil
   812                 nil
   830 		nil
   813                 nil
   831 		nil
   814                 nil
   832 		nil
   815                 nil             " 165 "
   833 		nil             " 165 "
   816                 nil
   834 		nil
   817                 nil
   835 		nil
   818                 nil
   836 		nil
   819                 nil
   837 		nil
   820                 nil             " 170 "
   838 		nil             " 170 "
   821                 nil
   839 		nil
   822                 nil
   840 		nil
   823                 nil
   841 		nil
   824                 nil
   842 		nil
   825                 nil             " 175 "
   843 		nil             " 175 "
   826                 index
   844 		index
   827                 index
   845 		index
   828                 nil
   846 		nil
   829                 nil
   847 		nil
   830                 literal         " 180 "
   848 		literal         " 180 "
   831                 literal
   849 		literal
   832                 literal
   850 		literal
   833                 literal
   851 		literal
   834                 literal         
   852 		literal         
   835                 literal         " 185 "
   853 		literal         " 185 "
   836                 literal
   854 		literal
   837                 literal
   855 		literal
   838                 nil
   856 		nil
   839                 nil
   857 		nil
   840                 absOffset       " 190 "
   858 		absOffset       " 190 "
   841                 absOffset
   859 		absOffset
   842                 absOffset
   860 		absOffset
   843                 absOffset
   861 		absOffset
   844                 absOffset
   862 		absOffset
   845                 absOffsetLevel
   863 		absOffsetLevel
   846                 absOffset
   864 		absOffset
   847                 absOffset
   865 		absOffset
   848                 absOffset
   866 		absOffset
   849                 absOffset       " 199 "
   867 		absOffset       " 199 "
   850              ).
   868 	     ).
   851 
   869 
   852     extra := extras at:(aByte + 1).
   870     extra := extras at:(aByte + 1).
   853     hasLineNo := lnos at:(aByte + 1).
   871     hasLineNo := lnos at:(aByte + 1).
   854     ^ syms at:(aByte + 1)
   872     ^ syms at:(aByte + 1)
   855 ! !
   873 ! !