home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Atari FTP
/
ATARI_FTP_0693.zip
/
ATARI_FTP_0693
/
Tex
/
texsrc.arc
/
TEX2.C
< prev
next >
Wrap
C/C++ Source or Header
|
1988-09-14
|
46KB
|
2,010 lines
overlay "tex2"
#define EXTERN extern
#include "texd.h"
#ifdef STAT
zshoweqtb ( n )
halfword n ;
{r_showeqtb
if ( n < 1 )
printchar ( 63 ) ;
else if ( n < 3526 )
{
sprintcs ( n ) ;
printchar ( 61 ) ;
printcmdchr ( eqtb [ n ] .hh.b0 , eqtb [ n ] .hh .v.RH ) ;
if ( eqtb [ n ] .hh.b0 >= 110 )
{
printchar ( 58 ) ;
showtokenlis ( mem [(long) eqtb [ n ] .hh .v.RH ] .hh .v.RH , 0 , 32 ) ;
}
}
else if ( n < 4056 )
if ( n < 3544 )
{
printskippar ( n - 3526 ) ;
printchar ( 61 ) ;
if ( n < 3541 )
printspec ( eqtb [ n ] .hh .v.RH , 262 ) ;
else printspec ( eqtb [ n ] .hh .v.RH , 205 ) ;
}
else if ( n < 3800 )
{
printesc ( 260 ) ;
printint ( n - 3544 ) ;
printchar ( 61 ) ;
printspec ( eqtb [ n ] .hh .v.RH , 262 ) ;
}
else {
printesc ( 261 ) ;
printint ( n - 3800 ) ;
printchar ( 61 ) ;
printspec ( eqtb [ n ] .hh .v.RH , 205 ) ;
}
else if ( n < 5267 )
if ( n == 4056 )
{
printesc ( 273 ) ;
printchar ( 61 ) ;
if ( eqtb [ 4056 ] .hh .v.RH == 0 )
printchar ( 48 ) ;
else printint ( mem [(long) eqtb [ 4056 ] .hh .v.RH ] .hh .v.LH ) ;
}
else if ( n < 4066 )
{
printcmdchr ( 71 , n ) ;
printchar ( 61 ) ;
if ( eqtb [ n ] .hh .v.RH != 0 )
showtokenlis ( mem [(long) eqtb [ n ] .hh .v.RH ] .hh .v.RH , 0 , 32 ) ;
}
else if ( n < 4322 )
{
printesc ( 272 ) ;
printint ( n - 4066 ) ;
printchar ( 61 ) ;
if ( eqtb [ n ] .hh .v.RH != 0 )
showtokenlis ( mem [(long) eqtb [ n ] .hh .v.RH ] .hh .v.RH , 0 , 32 ) ;
}
else if ( n < 4578 )
{
printesc ( 274 ) ;
printint ( n - 4322 ) ;
printchar ( 61 ) ;
if ( eqtb [ n ] .hh .v.RH == 0 )
print ( 275 ) ;
else {
depththresho = 0 ;
breadthmax = 1 ;
shownodelist ( eqtb [ n ] .hh .v.RH ) ;
}
}
else if ( n < 4627 )
{
if ( n == 4578 )
print ( 276 ) ;
else if ( n < 4595 )
{
printesc ( 277 ) ;
printint ( n - 4579 ) ;
}
else if ( n < 4611 )
{
printesc ( 278 ) ;
printint ( n - 4595 ) ;
}
else {
printesc ( 279 ) ;
printint ( n - 4611 ) ;
}
printchar ( 61 ) ;
printesc ( hash [ 3268 + eqtb [ n ] .hh .v.RH ] .v.RH ) ;
}
else if ( n < 5139 )
{
if ( n < 4755 )
{
printesc ( 280 ) ;
printint ( n - 4627 ) ;
}
else if ( n < 4883 )
{
printesc ( 281 ) ;
printint ( n - 4755 ) ;
}
else if ( n < 5011 )
{
printesc ( 282 ) ;
printint ( n - 4883 ) ;
}
else {
printesc ( 283 ) ;
printint ( n - 5011 ) ;
}
printchar ( 61 ) ;
printint ( eqtb [ n ] .hh .v.RH ) ;
}
else {
printesc ( 284 ) ;
printint ( n - 5139 ) ;
printchar ( 61 ) ;
printint ( eqtb [ n ] .hh .v.RH ) ;
}
else if ( n < 5701 )
{
if ( n < 5317 )
printparam ( n - 5267 ) ;
else if ( n < 5573 )
{
printesc ( 336 ) ;
printint ( n - 5317 ) ;
}
else {
printesc ( 337 ) ;
printint ( n - 5573 ) ;
}
printchar ( 61 ) ;
printint ( eqtb [ n ] .cint ) ;
}
else if ( n <= 5976 )
{
if ( n < 5721 )
printlengthp ( n - 5701 ) ;
else {
printesc ( 359 ) ;
printint ( n - 5721 ) ;
}
printchar ( 61 ) ;
printscaled ( eqtb [ n ] .cint ) ;
print ( 262 ) ;
}
else printchar ( 63 ) ;
}
#endif /* STAT */
halfword zidlookup ( j , l )
integer j , l ;
{/* 40 */ register halfword Result; r_idlookup
integer h ;
halfword p ;
halfword k ;
h = buffer [ j ] ;
for ( k = j + 1 ; k <= j + l - 1 ; k ++ )
{
h = h + h + buffer [ k ] ;
while ( h >= 2551 ) h = h - 2551 ;
}
p = h + 258 ;
while ( true ) {
if ( hash [ p ] .v.RH > 0 )
if ( ( strstart [ hash [ p ] .v.RH + 1 ] - strstart [ hash [ p ] .v.RH ] )
== l )
if ( streqbuf ( hash [ p ] .v.RH , j ) )
goto lab40 ;
if ( hash [ p ] .v.LH == 0 )
{
if ( nonewcontrol )
p = 3525 ;
else {
if ( hash [ p ] .v.RH > 0 )
{
do { if ( ( hashused == 258 ) )
overflow ( 362 , 3000 ) ;
decr ( hashused ) ;
} while ( ! ( hash [ hashused ] .v.RH == 0 ) ) ;
hash [ p ] .v.LH = hashused ;
p = hashused ;
}
{
if ( poolptr + l > poolsize )
overflow ( 128 , poolsize - initpoolptr ) ;
}
for ( k = j ; k <= j + l - 1 ; k ++ )
{
strpool [ poolptr ] = buffer [ k ] ;
incr ( poolptr ) ;
}
hash [ p ] .v.RH = makestring () ;
#ifdef STAT
incr ( cscount ) ;
#endif /* STAT */
}
goto lab40 ;
}
p = hash [ p ] .v.LH ;
}
lab40: Result = p ;
return(Result) ;
}
#ifdef INITEX
zprimitive ( s , c , o )
strnumber s ;
quarterword c ;
halfword o ;
{r_primitive
poolpointer k ;
smallnumber j ;
smallnumber l ;
if ( s < 128 )
curval = s + 129 ;
else {
k = strstart [ s ] ;
l = strstart [ s + 1 ] - k ;
for ( j = 0 ; j <= l - 1 ; j ++ )
buffer [ j ] = strpool [ k + j ] ;
curval = idlookup ( 0 , l ) ;
{
decr ( strptr ) ;
poolptr = strstart [ strptr ] ;
}
hash [ curval ] .v.RH = s ;
}
eqtb [ curval ] .hh.b1 = 1 ;
eqtb [ curval ] .hh.b0 = c ;
eqtb [ curval ] .hh .v.RH = o ;
}
#endif /* INITEX */
znewsavelevel ( c )
groupcode c ;
{r_newsavelevel
if ( saveptr > maxsavestack )
{
maxsavestack = saveptr ;
if ( maxsavestack > savesize - 6 )
overflow ( 399 , savesize ) ;
}
savestack [ saveptr ] .hh.b0 = 3 ;
savestack [ saveptr ] .hh.b1 = curgroup ;
savestack [ saveptr ] .hh .v.RH = curboundary ;
if ( curlevel == 255 )
overflow ( 400 , 255 ) ;
curboundary = saveptr ;
incr ( curlevel ) ;
incr ( saveptr ) ;
curgroup = c ;
}
zeqdestroy ( w )
memoryword w ;
{r_eqdestroy
halfword q ;
switch ( w .hh.b0 )
{case 110 :
case 111 :
case 112 :
case 113 :
deletetokenr ( w .hh .v.RH ) ;
break ;
case 116 :
deletegluere ( w .hh .v.RH ) ;
break ;
case 117 :
{
q = w .hh .v.RH ;
if ( q != 0 )
freenode ( q , mem [(long) q ] .hh .v.LH + mem [(long) q ] .hh .v.LH + 1 ) ;
}
break ;
case 118 :
flushnodelis ( w .hh .v.RH ) ;
break ;
default :
;
break ;
}
}
zeqsave ( p , l )
halfword p ;
quarterword l ;
{r_eqsave
if ( saveptr > maxsavestack )
{
maxsavestack = saveptr ;
if ( maxsavestack > savesize - 6 )
overflow ( 399 , savesize ) ;
}
if ( l == 0 )
savestack [ saveptr ] .hh.b0 = 1 ;
else {
savestack [ saveptr ] = eqtb [ p ] ;
incr ( saveptr ) ;
savestack [ saveptr ] .hh.b0 = 0 ;
}
savestack [ saveptr ] .hh.b1 = l ;
savestack [ saveptr ] .hh .v.RH = p ;
incr ( saveptr ) ;
}
zeqdefine ( p , t , e )
halfword p ;
quarterword t ;
halfword e ;
{r_eqdefine
if ( eqtb [ p ] .hh.b1 == curlevel )
eqdestroy ( eqtb [ p ] ) ;
else if ( curlevel > 1 )
eqsave ( p , eqtb [ p ] .hh.b1 ) ;
eqtb [ p ] .hh.b1 = curlevel ;
eqtb [ p ] .hh.b0 = t ;
eqtb [ p ] .hh .v.RH = e ;
}
zeqworddefine ( p , w )
halfword p ;
integer w ;
{r_eqworddefine
if ( xeqlevel [ p ] != curlevel )
{
eqsave ( p , xeqlevel [ p ] ) ;
xeqlevel [ p ] = curlevel ;
}
eqtb [ p ] .cint = w ;
}
zgeqdefine ( p , t , e )
halfword p ;
quarterword t ;
halfword e ;
{r_geqdefine
eqdestroy ( eqtb [ p ] ) ;
eqtb [ p ] .hh.b1 = 1 ;
eqtb [ p ] .hh.b0 = t ;
eqtb [ p ] .hh .v.RH = e ;
}
zgeqworddefin ( p , w )
halfword p ;
integer w ;
{r_geqworddefin
eqtb [ p ] .cint = w ;
xeqlevel [ p ] = 1 ;
}
zsaveforafter ( t )
halfword t ;
{r_saveforafter
if ( saveptr > maxsavestack )
{
maxsavestack = saveptr ;
if ( maxsavestack > savesize - 6 )
overflow ( 399 , savesize ) ;
}
savestack [ saveptr ] .hh.b0 = 2 ;
savestack [ saveptr ] .hh.b1 = 0 ;
savestack [ saveptr ] .hh .v.RH = t ;
incr ( saveptr ) ;
}
#ifdef STAT
zrestoretrace ( p , s )
halfword p ;
strnumber s ;
{r_restoretrace
begindiagnos () ;
printchar ( 123 ) ;
print ( s ) ;
printchar ( 32 ) ;
showeqtb ( p ) ;
printchar ( 125 ) ;
enddiagnosti ( false ) ;
}
#endif /* STAT */
unsave () { /* 30 */ r_unsave
halfword p ;
quarterword l ;
halfword t ;
if ( curlevel > 1 )
{
decr ( curlevel ) ;
while ( true ) {
decr ( saveptr ) ;
if ( savestack [ saveptr ] .hh.b0 == 3 )
goto lab30 ;
p = savestack [ saveptr ] .hh .v.RH ;
if ( savestack [ saveptr ] .hh.b0 == 2 )
{
t = curtok ;
curtok = p ;
backinput () ;
curtok = t ;
}
else {
if ( savestack [ saveptr ] .hh.b0 == 0 )
{
l = savestack [ saveptr ] .hh.b1 ;
decr ( saveptr ) ;
}
else savestack [ saveptr ] = eqtb [ 3525 ] ;
if ( p < 5267 )
if ( eqtb [ p ] .hh.b1 == 1 )
{
eqdestroy ( savestack [ saveptr ] ) ;
#ifdef STAT
if ( eqtb [ 5304 ] .cint > 0 )
restoretrace ( p , 402 ) ;
#endif /* STAT */
}
else {
eqdestroy ( eqtb [ p ] ) ;
eqtb [ p ] = savestack [ saveptr ] ;
#ifdef STAT
if ( eqtb [ 5304 ] .cint > 0 )
restoretrace ( p , 403 ) ;
#endif /* STAT */
}
else if ( xeqlevel [ p ] != 1 )
{
eqtb [ p ] = savestack [ saveptr ] ;
xeqlevel [ p ] = l ;
#ifdef STAT
if ( eqtb [ 5304 ] .cint > 0 )
restoretrace ( p , 403 ) ;
#endif /* STAT */
}
else {
#ifdef STAT
if ( eqtb [ 5304 ] .cint > 0 )
restoretrace ( p , 402 ) ;
#endif /* STAT */
}
}
}
lab30: curgroup = savestack [ saveptr ] .hh.b1 ;
curboundary = savestack [ saveptr ] .hh .v.RH ;
}
else confusion ( 401 ) ;
}
preparemag () { r_preparemag
if ( ( magset > 0 ) && ( eqtb [ 5284 ] .cint != magset ) )
{
{
if ( interaction == 3 )
wakeuptermin () ;
printnl ( 133 ) ;
print ( 405 ) ;
}
printint ( eqtb [ 5284 ] .cint ) ;
print ( 406 ) ;
printnl ( 407 ) ;
{
helpptr = 2 ;
helpline [ 1 ] = 408 ;
helpline [ 0 ] = 409 ;
}
interror ( magset ) ;
geqworddefin ( 5284 , magset ) ;
}
if ( ( eqtb [ 5284 ] .cint <= 0 ) || ( eqtb [ 5284 ] .cint > 32768 ) )
{
{
if ( interaction == 3 )
wakeuptermin () ;
printnl ( 133 ) ;
print ( 410 ) ;
}
{
helpptr = 1 ;
helpline [ 0 ] = 411 ;
}
interror ( eqtb [ 5284 ] .cint ) ;
geqworddefin ( 5284 , 1000 ) ;
}
magset = eqtb [ 5284 ] .cint ;
}
ztokenshow ( p )
halfword p ;
{r_tokenshow
if ( p != 0 )
showtokenlis ( mem [(long) p ] .hh .v.RH , 0 , 1000 ) ;
}
printmeaning () { r_printmeaning
printcmdchr ( curcmd , curchr ) ;
if ( curcmd >= 110 )
{
printchar ( 58 ) ;
println () ;
tokenshow ( curchr ) ;
}
else if ( curcmd == 109 )
{
printchar ( 58 ) ;
println () ;
tokenshow ( curmark [ curchr ] ) ;
}
}
showcurcmdch () { r_showcurcmdch
begindiagnos () ;
printnl ( 123 ) ;
if ( curlist .modefield != shownmode )
{
printmode ( curlist .modefield ) ;
print ( 426 ) ;
shownmode = curlist .modefield ;
}
printcmdchr ( curcmd , curchr ) ;
printchar ( 125 ) ;
enddiagnosti ( false ) ;
}
showcontext () { /* 30 */ r_showcontext
quarterword oldsetting ;
integer i ;
integer j ;
integer l ;
integer m ;
integer n ;
integer p ;
integer q ;
baseptr = inputptr ;
inputstack [ baseptr ] = curinput ;
while ( true ) {
curinput = inputstack [ baseptr ] ;
if ( ( baseptr == inputptr ) || ( curinput .statefield != 0 ) || (
curinput .indexfield != 3 ) || ( curinput .locfield != 0 ) )
{
tally = 0 ;
oldsetting = selector ;
if ( curinput .statefield != 0 )
{
if ( curinput .namefield <= 17 )
if ( ( curinput .namefield == 0 ) )
if ( baseptr == 0 )
printnl ( 432 ) ;
else printnl ( 433 ) ;
else {
printnl ( 434 ) ;
if ( curinput .namefield == 17 )
printchar ( 42 ) ;
else printint ( curinput .namefield - 1 ) ;
printchar ( 62 ) ;
}
else {
printnl ( 435 ) ;
printint ( line ) ;
}
printchar ( 32 ) ;
{
l = tally ;
tally = 0 ;
selector = 20 ;
trickcount = 1000000 ;
}
if ( buffer [ curinput .limitfield ] == eqtb [ 5315 ] .cint )
j = curinput .limitfield ;
else j = curinput .limitfield + 1 ;
if ( j > 0 )
for ( i = curinput .startfield ; i <= j - 1 ; i ++ )
{
if ( i == curinput .locfield )
{
firstcount = tally ;
trickcount = tally + 1 + errorline - halferrorlin ;
if ( trickcount < errorline )
trickcount = errorline ;
}
print ( buffer [ i ] ) ;
}
}
else {
switch ( curinput .indexfield )
{case 0 :
printnl ( 436 ) ;
break ;
case 1 :
case 2 :
printnl ( 437 ) ;
break ;
case 3 :
if ( curinput .locfield == 0 )
printnl ( 438 ) ;
else printnl ( 439 ) ;
break ;
case 4 :
printnl ( 440 ) ;
break ;
case 5 :
{
println () ;
printcs ( curinput .namefield ) ;
}
break ;
case 6 :
printnl ( 441 ) ;
break ;
case 7 :
printnl ( 442 ) ;
break ;
case 8 :
printnl ( 443 ) ;
break ;
case 9 :
printnl ( 444 ) ;
break ;
case 10 :
printnl ( 445 ) ;
break ;
case 11 :
printnl ( 446 ) ;
break ;
case 12 :
printnl ( 447 ) ;
break ;
case 13 :
printnl ( 448 ) ;
break ;
case 14 :
printnl ( 449 ) ;
break ;
case 15 :
printnl ( 450 ) ;
break ;
default :
printnl ( 63 ) ;
break ;
}
{
l = tally ;
tally = 0 ;
selector = 20 ;
trickcount = 1000000 ;
}
if ( curinput .indexfield < 5 )
showtokenlis ( curinput .startfield , curinput .locfield , 100000 ) ;
else showtokenlis ( mem [(long) curinput .startfield ] .hh .v.RH , curinput
.locfield , 100000 ) ;
}
selector = oldsetting ;
if ( trickcount == 1000000 )
{
firstcount = tally ;
trickcount = tally + 1 + errorline - halferrorlin ;
if ( trickcount < errorline )
trickcount = errorline ;
}
if ( tally < trickcount )
m = tally - firstcount ;
else m = trickcount - firstcount ;
if ( l + firstcount <= halferrorlin )
{
p = 0 ;
n = l + firstcount ;
}
else {
print ( 146 ) ;
p = l + firstcount - halferrorlin + 3 ;
n = halferrorlin ;
}
for ( q = p ; q <= firstcount - 1 ; q ++ )
printchar ( trickbuf [ q % errorline ] ) ;
println () ;
for ( q = 1 ; q <= n ; q ++ )
printchar ( 32 ) ;
if ( m + n <= errorline )
p = firstcount + m ;
else p = firstcount + ( errorline - n - 3 ) ;
for ( q = firstcount ; q <= p - 1 ; q ++ )
printchar ( trickbuf [ q % errorline ] ) ;
if ( m + n > errorline )
print ( 146 ) ;
}
if ( ( curinput .statefield != 0 ) )
if ( ( curinput .namefield > 17 ) || ( baseptr == 0 ) )
goto lab30 ;
decr ( baseptr ) ;
}
lab30: curinput = inputstack [ inputptr ] ;
}
zbegintokenli ( p , t )
halfword p ;
quarterword t ;
{r_begintokenli
{
if ( inputptr > maxinstack )
{
maxinstack = inputptr ;
if ( inputptr == stacksize )
overflow ( 451 , stacksize ) ;
}
inputstack [ inputptr ] = curinput ;
incr ( inputptr ) ;
}
curinput .statefield = 0 ;
curinput .startfield = p ;
curinput .indexfield = t ;
if ( t >= 5 )
{
incr ( mem [(long) p ] .hh .v.LH ) ;
if ( t == 5 )
curinput .limitfield = paramptr ;
else {
curinput .locfield = mem [(long) p ] .hh .v.RH ;
if ( eqtb [ 5297 ] .cint > 1 )
{
begindiagnos () ;
printnl ( 206 ) ;
switch ( t )
{case 14 :
printesc ( 219 ) ;
break ;
case 15 :
printesc ( 452 ) ;
break ;
default :
printcmdchr ( 71 , t + 4051 ) ;
break ;
}
print ( 414 ) ;
tokenshow ( p ) ;
enddiagnosti ( false ) ;
}
}
}
else curinput .locfield = p ;
}
endtokenlist () { r_endtokenlist
if ( curinput .indexfield >= 3 )
{
if ( curinput .indexfield <= 4 )
flushlist ( curinput .startfield ) ;
else {
deletetokenr ( curinput .startfield ) ;
if ( curinput .indexfield == 5 )
while ( paramptr > curinput .limitfield ) {
decr ( paramptr ) ;
flushlist ( paramstack [ paramptr ] ) ;
}
}
}
else if ( curinput .indexfield == 1 )
alignstate = 0 ;
{
decr ( inputptr ) ;
curinput = inputstack [ inputptr ] ;
}
{
if ( interrupt != 0 )
pauseforinst () ;
}
}
backinput () { r_backinput
halfword p ;
while ( ( curinput .statefield == 0 ) && ( curinput .locfield == 0 ) )
endtokenlist () ;
p = getavail () ;
mem [(long) p ] .hh .v.LH = curtok ;
if ( curtok < 768 )
if ( curtok < 512 )
decr ( alignstate ) ;
else incr ( alignstate ) ;
{
if ( inputptr > maxinstack )
{
maxinstack = inputptr ;
if ( inputptr == stacksize )
overflow ( 451 , stacksize ) ;
}
inputstack [ inputptr ] = curinput ;
incr ( inputptr ) ;
}
curinput .statefield = 0 ;
curinput .startfield = p ;
curinput .indexfield = 3 ;
curinput .locfield = p ;
}
backerror () { r_backerror
OKtointerrup = false ;
backinput () ;
OKtointerrup = true ;
error () ;
}
inserror () { r_inserror
OKtointerrup = false ;
backinput () ;
curinput .indexfield = 4 ;
OKtointerrup = true ;
error () ;
}
beginfilerea () { r_beginfilerea
if ( inopen == maxinopen )
overflow ( 453 , maxinopen ) ;
if ( first == bufsize )
overflow ( 454 , bufsize ) ;
incr ( inopen ) ;
{
if ( inputptr > maxinstack )
{
maxinstack = inputptr ;
if ( inputptr == stacksize )
overflow ( 451 , stacksize ) ;
}
inputstack [ inputptr ] = curinput ;
incr ( inputptr ) ;
}
curinput .indexfield = inopen ;
linestack [ curinput .indexfield ] = line ;
curinput .startfield = first ;
curinput .statefield = 1 ;
curinput .namefield = 0 ;
}
endfilereadi () { r_endfilereadi
first = curinput .startfield ;
line = linestack [ curinput .indexfield ] ;
if ( curinput .namefield > 17 )
aclose ( inputfile [ curinput .indexfield ] ) ;
{
decr ( inputptr ) ;
curinput = inputstack [ inputptr ] ;
}
decr ( inopen ) ;
}
clearforerro () { r_clearforerro
while ( ( curinput .statefield != 0 ) && ( curinput .namefield == 0 ) && (
inputptr > 0 ) && ( curinput .locfield > curinput .limitfield ) )
endfilereadi () ;
println () ;
cleartermina () ;
}
checkouterva () { r_checkouterva
halfword p ;
halfword q ;
if ( scannerstatu != 0 )
{
deletionsall = false ;
if ( curcs != 0 )
{
if ( ( curinput .statefield == 0 ) || ( curinput .namefield < 1 ) || (
curinput .namefield > 17 ) )
{
p = getavail () ;
mem [(long) p ] .hh .v.LH = 4096 + curcs ;
begintokenli ( p , 3 ) ;
}
curcmd = 10 ;
curchr = 32 ;
}
if ( scannerstatu > 1 )
{
runaway () ;
if ( curcs == 0 )
{
if ( interaction == 3 )
wakeuptermin () ;
printnl ( 133 ) ;
print ( 462 ) ;
}
else {
curcs = 0 ;
{
if ( interaction == 3 )
wakeuptermin () ;
printnl ( 133 ) ;
print ( 463 ) ;
}
}
print ( 464 ) ;
p = getavail () ;
switch ( scannerstatu )
{case 2 :
{
print ( 428 ) ;
mem [(long) p ] .hh .v.LH = 637 ;
}
break ;
case 3 :
{
print ( 470 ) ;
mem [(long) p ] .hh .v.LH = partoken ;
longstate = 112 ;
}
break ;
case 4 :
{
print ( 430 ) ;
mem [(long) p ] .hh .v.LH = 637 ;
q = p ;
p = getavail () ;
mem [(long) p ] .hh .v.RH = q ;
mem [(long) p ] .hh .v.LH = 7355 ;
alignstate = - 1000000 ;
}
break ;
case 5 :
{
print ( 431 ) ;
mem [(long) p ] .hh .v.LH = 637 ;
}
break ;
}
begintokenli ( p , 4 ) ;
print ( 465 ) ;
sprintcs ( warningindex ) ;
{
helpptr = 4 ;
helpline [ 3 ] = 466 ;
helpline [ 2 ] = 467 ;
helpline [ 1 ] = 468 ;
helpline [ 0 ] = 469 ;
}
error () ;
}
else {
{
if ( interaction == 3 )
wakeuptermin () ;
printnl ( 133 ) ;
print ( 456 ) ;
}
printcmdchr ( 104 , curif ) ;
print ( 457 ) ;
printint ( skipline ) ;
{
helpptr = 3 ;
helpline [ 2 ] = 458 ;
helpline [ 1 ] = 459 ;
helpline [ 0 ] = 460 ;
}
if ( curcs != 0 )
curcs = 0 ;
else helpline [ 2 ] = 461 ;
curtok = 7358 ;
inserror () ;
}
deletionsall = true ;
}
}
getnext () { /* 20 25 21 26 40 10 */ r_getnext
integer k ;
halfword t ;
quarterword cat ;
lab20: curcs = 0 ;
if ( curinput .statefield != 0 )
{
lab25: if ( curinput .locfield <= curinput .limitfield )
{
curchr = buffer [ curinput .locfield ] ;
incr ( curinput .locfield ) ;
lab21: curcmd = eqtb [ 4627 + curchr ] .hh .v.RH ;
switch ( curinput .statefield + curcmd )
{case 10 :
case 26 :
case 42 :
case 27 :
case 43 :
goto lab25 ;
break ;
case 1 :
case 17 :
case 33 :
{
if ( curinput .locfield > curinput .limitfield )
curcs = 257 ;
else {
lab26: k = curinput .locfield ;
curchr = buffer [ k ] ;
cat = eqtb [ 4627 + curchr ] .hh .v.RH ;
incr ( k ) ;
if ( cat == 11 )
curinput .statefield = 17 ;
else if ( cat == 10 )
curinput .statefield = 17 ;
else curinput .statefield = 1 ;
if ( ( cat == 11 ) && ( k <= curinput .limitfield ) )
{
do { curchr = buffer [ k ] ;
cat = eqtb [ 4627 + curchr ] .hh .v.RH ;
incr ( k ) ;
} while ( ! ( ( cat != 11 ) || ( k > curinput .limitfield ) ) )
;
{
if ( buffer [ k ] == curchr )
if ( cat == 7 )
if ( k < curinput .limitfield )
{
curchr = buffer [ k + 1 ] ;
if ( curchr < 64 )
buffer [ k - 1 ] = curchr + 64 ;
else buffer [ k - 1 ] = curchr - 64 ;
curinput .limitfield = curinput .limitfield - 2 ;
first = first - 2 ;
while ( k <= curinput .limitfield ) {
buffer [ k ] = buffer [ k + 2 ] ;
incr ( k ) ;
}
goto lab26 ;
}
}
if ( cat != 11 )
decr ( k ) ;
if ( k > curinput .locfield + 1 )
{
curcs = idlookup ( curinput .locfield , k - curinput .locfield
) ;
curinput .locfield = k ;
goto lab40 ;
}
}
else {
if ( buffer [ k ] == curchr )
if ( cat == 7 )
if ( k < curinput .limitfield )
{
curchr = buffer [ k + 1 ] ;
if ( curchr < 64 )
buffer [ k - 1 ] = curchr + 64 ;
else buffer [ k - 1 ] = curchr - 64 ;
curinput .limitfield = curinput .limitfield - 2 ;
first = first - 2 ;
while ( k <= curinput .limitfield ) {
buffer [ k ] = buffer [ k + 2 ] ;
incr ( k ) ;
}
goto lab26 ;
}
}
curcs = 129 + buffer [ curinput .locfield ] ;
incr ( curinput .locfield ) ;
}
lab40: curcmd = eqtb [ curcs ] .hh.b0 ;
curchr = eqtb [ curcs ] .hh .v.RH ;
if ( curcmd >= 112 )
checkouterva () ;
}
break ;
case 14 :
case 30 :
case 46 :
{
curcs = curchr + 1 ;
curcmd = eqtb [ curcs ] .hh.b0 ;
curchr = eqtb [ curcs ] .hh .v.RH ;
curinput .statefield = 1 ;
if ( curcmd >= 112 )
checkouterva () ;
}
break ;
case 8 :
case 24 :
case 40 :
{
if ( ( curchr == buffer [ curinput .locfield ] ) && ( curinput
.locfield < curinput .limitfield ) )
{
if ( buffer [ curinput .locfield + 1 ] < 64 )
curchr = buffer [ curinput .locfield + 1 ] + 64 ;
else curchr = buffer [ curinput .locfield + 1 ] - 64 ;
curinput .locfield = curinput .locfield + 2 ;
goto lab21 ;
}
curinput .statefield = 1 ;
}
break ;
case 16 :
case 32 :
case 48 :
{
{
if ( interaction == 3 )
wakeuptermin () ;
printnl ( 133 ) ;
print ( 471 ) ;
}
{
helpptr = 2 ;
helpline [ 1 ] = 472 ;
helpline [ 0 ] = 473 ;
}
deletionsall = false ;
error () ;
deletionsall = true ;
goto lab20 ;
}
break ;
case 11 :
{
curinput .statefield = 17 ;
curchr = 32 ;
}
break ;
case 6 :
{
curinput .locfield = curinput .limitfield + 1 ;
curcmd = 10 ;
curchr = 32 ;
}
break ;
case 22 :
case 15 :
case 31 :
case 47 :
{
curinput .locfield = curinput .limitfield + 1 ;
goto lab25 ;
}
break ;
case 38 :
{
curinput .locfield = curinput .limitfield + 1 ;
curcs = parloc ;
curcmd = eqtb [ curcs ] .hh.b0 ;
curchr = eqtb [ curcs ] .hh .v.RH ;
if ( curcmd >= 112 )
checkouterva () ;
}
break ;
case 2 :
incr ( alignstate ) ;
break ;
case 18 :
case 34 :
{
curinput .statefield = 1 ;
incr ( alignstate ) ;
}
break ;
case 3 :
decr ( alignstate ) ;
break ;
case 19 :
case 35 :
{
curinput .statefield = 1 ;
decr ( alignstate ) ;
}
break ;
case 20 :
case 21 :
case 23 :
case 25 :
case 28 :
case 29 :
case 36 :
case 37 :
case 39 :
case 41 :
case 44 :
case 45 :
curinput .statefield = 1 ;
break ;
default :
break ;
}
}
else {
curinput .statefield = 33 ;
if ( curinput .namefield > 17 )
{
incr ( line ) ;
first = curinput .startfield ;
if ( ! forceeof )
{
if ( inputln ( inputfile [ curinput .indexfield ] , true ) )
firmupthelin () ;
else forceeof = true ;
}
if ( forceeof )
{
printchar ( 41 ) ;
forceeof = false ;
termflush ( output ) ;
endfilereadi () ;
checkouterva () ;
goto lab20 ;
}
if ( ( eqtb [ 5315 ] .cint < 0 ) || ( eqtb [ 5315 ] .cint > 127 ) )
decr ( curinput .limitfield ) ;
else buffer [ curinput .limitfield ] = eqtb [ 5315 ] .cint ;
first = curinput .limitfield + 1 ;
curinput .locfield = curinput .startfield ;
}
else {
if ( ! ( curinput .namefield == 0 ) )
{
curcmd = 0 ;
curchr = 0 ;
return ;
}
if ( inputptr > 0 )
{
endfilereadi () ;
goto lab20 ;
}
if ( selector < 18 )
openlogfile () ;
if ( interaction > 1 )
{
if ( ( eqtb [ 5315 ] .cint < 0 ) || ( eqtb [ 5315 ] .cint > 127 ) )
incr ( curinput .limitfield ) ;
if ( curinput .limitfield == curinput .startfield )
printnl ( 474 ) ;
println () ;
first = curinput .startfield ;
{
wakeuptermin () ;
print ( 42 ) ;
terminput () ;
}
curinput .limitfield = last ;
if ( ( eqtb [ 5315 ] .cint < 0 ) || ( eqtb [ 5315 ] .cint > 127 ) )
decr ( curinput .limitfield ) ;
else buffer [ curinput .limitfield ] = eqtb [ 5315 ] .cint ;
first = curinput .limitfield + 1 ;
curinput .locfield = curinput .startfield ;
}
else fatalerror ( 475 ) ;
}
{
if ( interrupt != 0 )
pauseforinst () ;
}
goto lab25 ;
}
}
else if ( curinput .locfield != 0 )
{
t = mem [(long) curinput .locfield ] .hh .v.LH ;
curinput .locfield = mem [(long) curinput .locfield ] .hh .v.RH ;
if ( t >= 4096 )
{
curcs = t - 4096 ;
curcmd = eqtb [ curcs ] .hh.b0 ;
curchr = eqtb [ curcs ] .hh .v.RH ;
if ( curcmd >= 112 )
if ( curcmd == 115 )
{
curcs = mem [(long) curinput .locfield ] .hh .v.LH - 4096 ;
curinput .locfield = 0 ;
curcmd = eqtb [ curcs ] .hh.b0 ;
curchr = eqtb [ curcs ] .hh .v.RH ;
if ( curcmd > 99 )
{
curcmd = 0 ;
curchr = 257 ;
}
}
else checkouterva () ;
}
else {
curcmd = t / 256 ;
curchr = t % 256 ;
switch ( curcmd )
{case 1 :
incr ( alignstate ) ;
break ;
case 2 :
decr ( alignstate ) ;
break ;
case 5 :
{
begintokenli ( paramstack [ curinput .limitfield + curchr - 1 ] , 0
) ;
goto lab20 ;
}
break ;
default :
break ;
}
}
}
else {
endtokenlist () ;
goto lab20 ;
}
if ( curcmd <= 5 )
if ( curcmd >= 4 )
if ( alignstate == 0 )
{
if ( scannerstatu == 4 )
fatalerror ( 762 ) ;
curcmd = mem [(long) curalign + 5 ] .hh .v.LH ;
mem [(long) curalign + 5 ] .hh .v.LH = curchr ;
if ( curcmd == 63 )
begintokenli ( memtop - 10 , 2 ) ;
else begintokenli ( mem [(long) curalign + 2 ] .cint , 2 ) ;
alignstate = 1000000 ;
goto lab20 ;
}
}
firmupthelin () { r_firmupthelin
integer k ;
curinput .limitfield = last ;
if ( eqtb [ 5295 ] .cint > 0 )
if ( interaction > 1 )
{
wakeuptermin () ;
println () ;
if ( curinput .startfield < curinput .limitfield )
for ( k = curinput .startfield ; k <= curinput .limitfield - 1 ; k ++ )
print ( buffer [ k ] ) ;
first = curinput .limitfield ;
{
wakeuptermin () ;
print ( 476 ) ;
terminput () ;
}
if ( last > first )
{
for ( k = first ; k <= last - 1 ; k ++ )
buffer [ k + curinput .startfield - first ] = buffer [ k ] ;
curinput .limitfield = curinput .startfield + last - first ;
}
}
}
gettoken () { r_gettoken
nonewcontrol = false ;
getnext () ;
nonewcontrol = true ;
if ( curcs == 0 )
curtok = ( curcmd * 256 ) + curchr ;
else curtok = 4096 + curcs ;
}
macrocall () { /* 10 22 30 31 40 */ r_macrocall
halfword r ;
halfword p ;
halfword q ;
halfword s ;
halfword t ;
halfword u, v ;
halfword rbraceptr ;
smallnumber n ;
halfword unbalance ;
halfword m ;
halfword refcount ;
smallnumber savescanners ;
halfword savewarningi ;
ASCIIcode matchchr ;
savescanners = scannerstatu ;
savewarningi = warningindex ;
warningindex = curcs ;
refcount = curchr ;
r = mem [(long) refcount ] .hh .v.RH ;
n = 0 ;
if ( eqtb [ 5297 ] .cint > 0 )
{
begindiagnos () ;
println () ;
printcs ( warningindex ) ;
tokenshow ( refcount ) ;
enddiagnosti ( false ) ;
}
if ( mem [(long) r ] .hh .v.LH != 3584 )
{
scannerstatu = 3 ;
unbalance = 0 ;
longstate = eqtb [ curcs ] .hh.b0 ;
if ( longstate >= 112 )
longstate = longstate - 2 ;
do { if ( ( mem [(long) r ] .hh .v.LH > 3455 ) || ( mem [(long) r ] .hh .v.LH < 3328 )
)
s = 0 ;
else {
matchchr = mem [(long) r ] .hh .v.LH - 3328 ;
s = mem [(long) r ] .hh .v.RH ;
r = s ;
p = memtop - 3 ;
mem [(long) p ] .hh .v.RH = 0 ;
m = 0 ;
}
lab22: gettoken () ;
if ( curtok == mem [(long) r ] .hh .v.LH )
{
r = mem [(long) r ] .hh .v.RH ;
if ( ( mem [(long) r ] .hh .v.LH >= 3328 ) && ( mem [(long) r ] .hh .v.LH <= 3584
) )
{
if ( curtok < 512 )
decr ( alignstate ) ;
goto lab40 ;
}
else goto lab22 ;
}
if ( s != r )
if ( s == 0 )
{
{
if ( interaction == 3 )
wakeuptermin () ;
printnl ( 133 ) ;
print ( 508 ) ;
}
sprintcs ( warningindex ) ;
print ( 509 ) ;
{
helpptr = 4 ;
helpline [ 3 ] = 510 ;
helpline [ 2 ] = 511 ;
helpline [ 1 ] = 512 ;
helpline [ 0 ] = 513 ;
}
error () ;
goto lab10 ;
}
else {
t = s ;
do { {
q = getavail () ;
mem [(long) p ] .hh .v.RH = q ;
mem [(long) q ] .hh .v.LH = mem [(long) t ] .hh .v.LH ;
p = q ;
}
incr ( m ) ;
u = mem [(long) t ] .hh .v.RH ;
v = s ;
while ( true ) {
if ( u == r )
if ( curtok != mem [(long) v ] .hh .v.LH )
goto lab30 ;
else {
r = mem [(long) v ] .hh .v.RH ;
goto lab22 ;
}
if ( mem [(long) u ] .hh .v.LH != mem [(long) v ] .hh .v.LH )
goto lab30 ;
u = mem [(long) u ] .hh .v.RH ;
v = mem [(long) v ] .hh .v.RH ;
}
lab30: t = mem [(long) t ] .hh .v.RH ;
} while ( ! ( t == r ) ) ;
r = s ;
}
if ( curtok == partoken )
if ( longstate != 111 )
{
if ( longstate == 110 )
{
runaway () ;
{
if ( interaction == 3 )
wakeuptermin () ;
printnl ( 133 ) ;
print ( 503 ) ;
}
sprintcs ( warningindex ) ;
print ( 504 ) ;
{
helpptr = 3 ;
helpline [ 2 ] = 505 ;
helpline [ 1 ] = 506 ;
helpline [ 0 ] = 507 ;
}
backerror () ;
}
pstack [ n ] = mem [(long) memtop - 3 ] .hh .v.RH ;
alignstate = alignstate - unbalance ;
for ( m = 0 ; m <= n ; m ++ )
flushlist ( pstack [ m ] ) ;
goto lab10 ;
}
if ( curtok < 768 )
if ( curtok < 512 )
{
unbalance = 1 ;
while ( true ) {
{
{
q = avail ;
if ( q == 0 )
q = getavail () ;
else {
avail = mem [(long) q ] .hh .v.RH ;
mem [(long) q ] .hh .v.RH = 0 ;
#ifdef STAT
incr ( dynused ) ;
#endif /* STAT */
}
}
mem [(long) p ] .hh .v.RH = q ;
mem [(long) q ] .hh .v.LH = curtok ;
p = q ;
}
gettoken () ;
if ( curtok == partoken )
if ( longstate != 111 )
{
if ( longstate == 110 )
{
runaway () ;
{
if ( interaction == 3 )
wakeuptermin () ;
printnl ( 133 ) ;
print ( 503 ) ;
}
sprintcs ( warningindex ) ;
print ( 504 ) ;
{
helpptr = 3 ;
helpline [ 2 ] = 505 ;
helpline [ 1 ] = 506 ;
helpline [ 0 ] = 507 ;
}
backerror () ;
}
pstack [ n ] = mem [(long) memtop - 3 ] .hh .v.RH ;
alignstate = alignstate - unbalance ;
for ( m = 0 ; m <= n ; m ++ )
flushlist ( pstack [ m ] ) ;
goto lab10 ;
}
if ( curtok < 768 )
if ( curtok < 512 )
incr ( unbalance ) ;
else {
decr ( unbalance ) ;
if ( unbalance == 0 )
goto lab31 ;
}
}
lab31: rbraceptr = p ;
{
q = getavail () ;
mem [(long) p ] .hh .v.RH = q ;
mem [(long) q ] .hh .v.LH = curtok ;
p = q ;
}
}
else {
backinput () ;
{
if ( interaction == 3 )
wakeuptermin () ;
printnl ( 133 ) ;
print ( 495 ) ;
}
sprintcs ( warningindex ) ;
print ( 496 ) ;
{
helpptr = 6 ;
helpline [ 5 ] = 497 ;
helpline [ 4 ] = 498 ;
helpline [ 3 ] = 499 ;
helpline [ 2 ] = 500 ;
helpline [ 1 ] = 501 ;
helpline [ 0 ] = 502 ;
}
incr ( alignstate ) ;
longstate = 110 ;
curtok = partoken ;
inserror () ;
}
else {
if ( curtok == 2592 )
if ( mem [(long) r ] .hh .v.LH <= 3584 )
if ( mem [(long) r ] .hh .v.LH >= 3328 )
goto lab22 ;
{
q = getavail () ;
mem [(long) p ] .hh .v.RH = q ;
mem [(long) q ] .hh .v.LH = curtok ;
p = q ;
}
}
incr ( m ) ;
if ( mem [(long) r ] .hh .v.LH > 3584 )
goto lab22 ;
if ( mem [(long) r ] .hh .v.LH < 3328 )
goto lab22 ;
lab40: if ( s != 0 )
{
if ( ( m == 1 ) && ( mem [(long) p ] .hh .v.LH < 768 ) && ( p != memtop - 3
) )
{
mem [(long) rbraceptr ] .hh .v.RH = 0 ;
{
mem [(long) p ] .hh .v.RH = avail ;
avail = p ;
#ifdef STAT
decr ( dynused ) ;
#endif /* STAT */
}
p = mem [(long) memtop - 3 ] .hh .v.RH ;
pstack [ n ] = mem [(long) p ] .hh .v.RH ;
{
mem [(long) p ] .hh .v.RH = avail ;
avail = p ;
#ifdef STAT
decr ( dynused ) ;
#endif /* STAT */
}
}
else pstack [ n ] = mem [(long) memtop - 3 ] .hh .v.RH ;
incr ( n ) ;
if ( eqtb [ 5297 ] .cint > 0 )
{
begindiagnos () ;
printnl ( matchchr ) ;
printint ( n ) ;
print ( 514 ) ;
showtokenlis ( pstack [ n - 1 ] , 0 , 1000 ) ;
enddiagnosti ( false ) ;
}
}
} while ( ! ( mem [(long) r ] .hh .v.LH == 3584 ) ) ;
}
while ( ( curinput .statefield == 0 ) && ( curinput .locfield == 0 ) )
endtokenlist () ;
begintokenli ( refcount , 5 ) ;
curinput .namefield = warningindex ;
curinput .locfield = mem [(long) r ] .hh .v.RH ;
if ( n > 0 )
{
if ( paramptr + n > maxparamstac )
{
maxparamstac = paramptr + n ;
if ( maxparamstac > paramsize )
overflow ( 494 , paramsize ) ;
}
for ( m = 0 ; m <= n - 1 ; m ++ )
paramstack [ paramptr + m ] = pstack [ m ] ;
paramptr = paramptr + n ;
}
lab10: scannerstatu = savescanners ;
warningindex = savewarningi ;
}
insertrelax () { r_insertrelax
curtok = 4096 + curcs ;
backinput () ;
curtok = 7361 ;
backinput () ;
curinput .indexfield = 4 ;
}
expand () { r_expand
halfword t ;
halfword p, q, r ;
integer j ;
integer cvbackup ;
smallnumber cvlbackup, radixbackup, cobackup ;
halfword backupbackup ;
smallnumber savescanners ;
cvbackup = curval ;
cvlbackup = curvallevel ;
radixbackup = radix ;
cobackup = curorder ;
backupbackup = mem [(long) memtop - 13 ] .hh .v.RH ;
if ( curcmd < 110 )
{
if ( eqtb [ 5303 ] .cint > 1 )
showcurcmdch () ;
switch ( curcmd )
{case 109 :
{
if ( curmark [ curchr ] != 0 )
begintokenli ( curmark [ curchr ] , 14 ) ;
}
break ;
case 101 :
{
gettoken () ;
t = curtok ;
gettoken () ;
if ( curcmd > 99 )
expand () ;
else backinput () ;
curtok = t ;
backinput () ;
}
break ;
case 102 :
{
savescanners = scannerstatu ;
scannerstatu = 0 ;
gettoken () ;
scannerstatu = savescanners ;
t = curtok ;
backinput () ;
if ( t >= 4096 )
{
p = getavail () ;
mem [(long) p ] .hh .v.LH = 7363 ;
mem [(long) p ] .hh .v.RH = curinput .locfield ;
curinput .startfield = p ;
curinput .locfield = p ;
}
}
break ;
case 106 :
{
r = getavail () ;
p = r ;
do { getxtoken () ;
if ( curcs == 0 )
{
q = getavail () ;
mem [(long) p ] .hh .v.RH = q ;
mem [(long) q ] .hh .v.LH = curtok ;
p = q ;
}
} while ( ! ( curcs != 0 ) ) ;
if ( curcmd != 66 )
{
{
if ( interaction == 3 )
wakeuptermin () ;
printnl ( 133 ) ;
print ( 483 ) ;
}
printesc ( 364 ) ;
print ( 484 ) ;
{
helpptr = 2 ;
helpline [ 1 ] = 485 ;
helpline [ 0 ] = 486 ;
}
backerror () ;
}
j = first ;
p = mem [(long) r ] .hh .v.RH ;
while ( p != 0 ) {
if ( j >= maxbufstack )
{
maxbufstack = j + 1 ;
if ( maxbufstack == bufsize )
overflow ( 454 , bufsize ) ;
}
buffer [ j ] = mem [(long) p ] .hh .v.LH % 256 ;
incr ( j ) ;
p = mem [(long) p ] .hh .v.RH ;
}
if ( j > first + 1 )
{
nonewcontrol = false ;
curcs = idlookup ( first , j - first ) ;
nonewcontrol = true ;
}
else if ( j == first )
curcs = 257 ;
else curcs = 129 + buffer [ first ] ;
flushlist ( r ) ;
if ( eqtb [ curcs ] .hh.b0 == 100 )
{
eqdefine ( curcs , 0 , 256 ) ;
}
curtok = curcs + 4096 ;
backinput () ;
}
break ;
case 107 :
convtoks () ;
break ;
case 108 :
insthetoks () ;
break ;
case 104 :
conditional () ;
break ;
case 105 :
if ( curchr > iflimit )
if ( iflimit == 1 )
insertrelax () ;
else {
{
if ( interaction == 3 )
wakeuptermin () ;
printnl ( 133 ) ;
print ( 633 ) ;
}
printcmdchr ( 105 , curchr ) ;
{
helpptr = 1 ;
helpline [ 0 ] = 634 ;
}
error () ;
}
else {
while ( curchr != 2 ) passtext () ;
{
p = condptr ;
ifline = mem [(long) p + 1 ] .cint ;
curif = mem [(long) p ] .hh.b1 ;
iflimit = mem [(long) p ] .hh.b0 ;
condptr = mem [(long) p ] .hh .v.RH ;
freenode ( p , 2 ) ;
}
}
break ;
case 103 :
if ( curchr > 0 )
forceeof = true ;
else if ( nameinprogre )
insertrelax () ;
else startinput () ;
break ;
default :
{
{
if ( interaction == 3 )
wakeuptermin () ;
printnl ( 133 ) ;
print ( 477 ) ;
}
{
helpptr = 5 ;
helpline [ 4 ] = 478 ;
helpline [ 3 ] = 479 ;
helpline [ 2 ] = 480 ;
helpline [ 1 ] = 481 ;
helpline [ 0 ] = 482 ;
}
error () ;
}
break ;
}
}
else if ( curcmd < 114 )
macrocall () ;
else {
curtok = 7360 ;
backinput () ;
}
curval = cvbackup ;
curvallevel = cvlbackup ;
radix = radixbackup ;
curorder = cobackup ;
mem [(long) memtop - 13 ] .hh .v.RH = backupbackup ;
}
getxtoken () { /* 20 30 */ r_getxtoken
lab20: getnext () ;
if ( curcmd <= 99 )
goto lab30 ;
if ( curcmd >= 110 )
if ( curcmd < 114 )
macrocall () ;
else {
curcs = 3264 ;
curcmd = 9 ;
goto lab30 ;
}
else expand () ;
goto lab20 ;
lab30: if ( curcs == 0 )
curtok = ( curcmd * 256 ) + curchr ;
else curtok = 4096 + curcs ;
}
xtoken () { r_xtoken
while ( curcmd > 99 ) {
expand () ;
getnext () ;
}
if ( curcs == 0 )
curtok = ( curcmd * 256 ) + curchr ;
else curtok = 4096 + curcs ;
}
scanleftbrac () { r_scanleftbrac
do { getxtoken () ;
} while ( ! ( ( curcmd != 10 ) && ( curcmd != 0 ) ) ) ;
if ( curcmd != 1 )
{
{
if ( interaction == 3 )
wakeuptermin () ;
printnl ( 133 ) ;
print ( 515 ) ;
}
{
helpptr = 4 ;
helpline [ 3 ] = 516 ;
helpline [ 2 ] = 517 ;
helpline [ 1 ] = 518 ;
helpline [ 0 ] = 519 ;
}
backerror () ;
curtok = 379 ;
curcmd = 1 ;
curchr = 123 ;
incr ( alignstate ) ;
}
}
scanoptional () { r_scanoptional
do { getxtoken () ;
} while ( ! ( curcmd != 10 ) ) ;
if ( curtok != 3133 )
backinput () ;
}
boolean zscankeyword ( s )
strnumber s ;
{/* 10 */ register boolean Result; r_scankeyword
halfword p ;
halfword q ;
poolpointer k ;
p = memtop - 13 ;
mem [(long) p ] .hh .v.RH = 0 ;
k = strstart [ s ] ;
while ( k < strstart [ s + 1 ] ) {
getxtoken () ;
if ( ( curcs == 0 ) && ( ( curchr == strpool [ k ] ) || ( curchr ==
strpool [ k ] - 32 ) ) )
{
{
q = getavail () ;
mem [(long) p ] .hh .v.RH = q ;
mem [(long) q ] .hh .v.LH = curtok ;
p = q ;
}
incr ( k ) ;
}
else if ( ( curcmd != 10 ) || ( p != memtop - 13 ) )
{
backinput () ;
if ( p != memtop - 13 )
begintokenli ( mem [(long) memtop - 13 ] .hh .v.RH , 3 ) ;
Result = false ;
return(Result) ;
}
}
flushlist ( mem [(long) memtop - 13 ] .hh .v.RH ) ;
Result = true ;
return(Result) ;
}
muerror () { r_muerror
{
if ( interaction == 3 )
wakeuptermin () ;
printnl ( 133 ) ;
print ( 520 ) ;
}
{
helpptr = 1 ;
helpline [ 0 ] = 521 ;
}
error () ;
}
scansevenbit () { r_scansevenbit
scanint () ;
if ( ( curval < 0 ) || ( curval > 127 ) )
{
{
if ( interaction == 3 )
wakeuptermin () ;
printnl ( 133 ) ;
print ( 543 ) ;
}
{
helpptr = 2 ;
helpline [ 1 ] = 544 ;
helpline [ 0 ] = 545 ;
}
interror ( curval ) ;
curval = 0 ;
}
}
scaneightbit () { r_scaneightbit
scanint () ;
if ( ( curval < 0 ) || ( curval > 255 ) )
{
{
if ( interaction == 3 )
wakeuptermin () ;
printnl ( 133 ) ;
print ( 546 ) ;
}
{
helpptr = 2 ;
helpline [ 1 ] = 547 ;
helpline [ 0 ] = 545 ;
}
interror ( curval ) ;
curval = 0 ;
}
}
scanfourbiti () { r_scanfourbiti
scanint () ;
if ( ( curval < 0 ) || ( curval > 15 ) )
{
{
if ( interaction == 3 )
wakeuptermin () ;
printnl ( 133 ) ;
print ( 548 ) ;
}
{
helpptr = 2 ;
helpline [ 1 ] = 549 ;
helpline [ 0 ] = 545 ;
}
interror ( curval ) ;
curval = 0 ;
}
}