#include <perms.h>

                                                                //      1  !***********************************************************************
                                                                //      2  !*              SOAP80 - IMP80 formatter                               *
                                                                //      3  !*                                               Last altered 15/06/83 *
                                                                //      4  !*                                                                     *
                                                                //      5  !*              Created by E.N.Gregory, UKC.                           *
                                                                //      6  !*              All syntax directed sections rewritten by P.D.S., ERCC *
                                                                //      7  !*                using IMP80 syntax version 02.                       *
                                                                //      8  !*              User interface and parameters revised by J.M.M., ERCC. *
                                                                //      9  !*                                                                     *
                                                                //     10  !***********************************************************************
                                                                //     11  
                                                                //     12  
                                                                //     13  !***********************************************************************
                                                                //     14  !*                                                                     *
                                                                //     15  !*                           Record formats.                           *
                                                                //     16  !*                                                                     *
                                                                //     17  !***********************************************************************
                                                                //     18  
                                                                //     19  %record %format fhdr(%integer dataend, datastart, filesize, filetype)
#line 19 "regression-bugs-tmp/soap80-a.imp"
typedef struct FHDR FHDR;
struct FHDR {
  int DATAEND;
  int DATASTART;
  int FILESIZE;
  int FILETYPE;
};
                                                                //     20  %record %format chdr(%integer conad, filetype, datastart, dataend)
#line 20 "regression-bugs-tmp/soap80-a.imp"
typedef struct CHDR CHDR;
struct CHDR {
  int CONAD;
  int FILETYPE;
  int DATASTART;
  int DATAEND;
};
                                                                //     21  %const %integer maxopt= 16,numopt = 3
                                                                //     22  %record %format pformat(%byte %integer %array tab(0:20),
#line 22 "regression-bugs-tmp/soap80-a.imp"
typedef struct PFORMAT PFORMAT;
struct PFORMAT {
  unsigned char TAB[21];
  unsigned char LINE;
  unsigned char ICONTIN;
  unsigned char POSCOM;
  unsigned char MOVECOM;
  unsigned char UCKEY;
  unsigned char SEPKEY;
  unsigned char EXPKEY;
  unsigned char LCASNAM;
  unsigned char SPACNAM;
  unsigned char SPACASS;
  unsigned char SPACOP;
  unsigned char LCLIST;
  unsigned char IBLOCK;
  unsigned char ISTAT;
  unsigned char SEPLAB;
  unsigned char SPCOMMA;
  unsigned char OPTARR[16];
  unsigned char A[37];
};
                                                                //     23    (%byte %integer line, icontin, poscom, movecom, uckey, sepkey, expkey,
                                                                //     24    lcasnam, spacnam, spacass, spacop, lclist, iblock, istat, seplab,
                                                                //     25    spcomma %or %byte %integer %array optarr(1:maxopt)) %or %c
                                                                //     26   %byte %integer %array a(1:21+maxopt))
                                                                //     27  
                                                                //     28  
                                                                //     29  !***********************************************************************
                                                                //     30  !*                                                                     *
                                                                //     31  !*                           System routines.                          *
                                                                //     32  !*                                                                     *
                                                                //     33  !***********************************************************************
                                                                //     34  
                                                                //     35  !%external %string (255) %fn %spec itos(%integer i)
                                                                //     36  
                                                                //     37  %external %routine connect(%string (31) %name name, %integer mode, hole, prot, %record (chdr) %name rec, %integer %name eflag)
#line 37 "regression-bugs-tmp/soap80-a.imp"
void CONNECT( _imp_string /*%string(31)*/ /*name*/*NAME, int MODE, int HOLE, int PROT,  CHDR /*name*/*REC, int /*name*/*EFLAG )
#line 37 "regression-bugs-tmp/soap80-a.imp"
{
                                                                //     38  %end
#line 38 "regression-bugs-tmp/soap80-a.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block CONNECT at level 1
                                                                //     39  
                                                                //     40  %external %routine {%spec} trim(%string (31) file, %integer %name eflag)
#line 40 "regression-bugs-tmp/soap80-a.imp"
void TRIM( _imp_string /*%string(31)*/ FILE, int /*name*/*EFLAG )
#line 40 "regression-bugs-tmp/soap80-a.imp"
{
                                                                //     41  %end
#line 41 "regression-bugs-tmp/soap80-a.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block TRIM at level 1
                                                                //     42  
                                                                //     43  
                                                                //     44  %external %routine setfname(%string (31) file)
#line 44 "regression-bugs-tmp/soap80-a.imp"
void SETFNAME( _imp_string /*%string(31)*/ FILE )
#line 44 "regression-bugs-tmp/soap80-a.imp"
{
                                                                //     45  %end
#line 45 "regression-bugs-tmp/soap80-a.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block SETFNAME at level 1
                                                                //     46  
                                                                //     47  %external %string (255) %fn nexttemp
#line 47 "regression-bugs-tmp/soap80-a.imp"
_imp_string /*%string(255)*/ NEXTTEMP( void )
#line 47 "regression-bugs-tmp/soap80-a.imp"
{
                                                                //     48    %result = ""
#line 48 "regression-bugs-tmp/soap80-a.imp"
/* Remove %on %event handler here if present for this block */
return _imp_str_literal("");
                                                                //     49  %end
#line 49 "regression-bugs-tmp/soap80-a.imp"
} // End of block NEXTTEMP at level 1
                                                                //     50  
                                                                //     51  %external %routine sendfile(%string (31) file, device, header, %integer copies, form, %integer %name eflag)
#line 51 "regression-bugs-tmp/soap80-a.imp"
void SENDFILE( _imp_string /*%string(31)*/ FILE, _imp_string /*%string(31)*/ DEVICE, _imp_string /*%string(31)*/ HEADER, int COPIES, int FORM, int /*name*/*EFLAG )
#line 51 "regression-bugs-tmp/soap80-a.imp"
{
                                                                //     52  %end
#line 52 "regression-bugs-tmp/soap80-a.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block SENDFILE at level 1
                                                                //     53  
                                                                //     54  %external %integer %fn devcode(%string (31) name)
#line 54 "regression-bugs-tmp/soap80-a.imp"
int DEVCODE( _imp_string /*%string(31)*/ NAME )
#line 54 "regression-bugs-tmp/soap80-a.imp"
{
                                                                //     55    %result = 0
#line 55 "regression-bugs-tmp/soap80-a.imp"
/* Remove %on %event handler here if present for this block */
return 0;
                                                                //     56  %end
#line 56 "regression-bugs-tmp/soap80-a.imp"
} // End of block DEVCODE at level 1
                                                                //     57  
                                                                //     58  %external %routine disconnect(%string (31) %name filename, %integer %name eflag)
#line 58 "regression-bugs-tmp/soap80-a.imp"
void DISCONNECT( _imp_string /*%string(31)*/ /*name*/*FILENAME, int /*name*/*EFLAG )
#line 58 "regression-bugs-tmp/soap80-a.imp"
{
                                                                //     59  %end
#line 59 "regression-bugs-tmp/soap80-a.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block DISCONNECT at level 1
                                                                //     60  
                                                                //     61  %external %string (255) %fn failuremessage(%integer type)
#line 61 "regression-bugs-tmp/soap80-a.imp"
_imp_string /*%string(255)*/ FAILUREMESSAGE( int TYPE )
#line 61 "regression-bugs-tmp/soap80-a.imp"
{
                                                                //     62    %result = itos(type,0).snl
#line 62 "regression-bugs-tmp/soap80-a.imp"
/* Remove %on %event handler here if present for this block */
return _imp_join((_imp_string)_imp_ITOS(TYPE, 0),(_imp_string)_imp_SNL());
                                                                //     63  %end
#line 63 "regression-bugs-tmp/soap80-a.imp"
} // End of block FAILUREMESSAGE at level 1
                                                                //     64  
                                                                //     65  %external %routine changefilesize(%string (31) %name filename, %integer filesize, %integer %name eflag)
#line 65 "regression-bugs-tmp/soap80-a.imp"
void CHANGEFILESIZE( _imp_string /*%string(31)*/ /*name*/*FILENAME, int FILESIZE, int /*name*/*EFLAG )
#line 65 "regression-bugs-tmp/soap80-a.imp"
{
                                                                //     66  %end
#line 66 "regression-bugs-tmp/soap80-a.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block CHANGEFILESIZE at level 1
                                                                //     67  
                                                                //     68  %external %routine newgen(%string (31) %name filename, %string(*)%name newfilename, %integer %name eflag)
#line 68 "regression-bugs-tmp/soap80-a.imp"
void NEWGEN( _imp_string /*%string(31)*/ /*name*/*FILENAME, _imp_string /*%string(255)*/ /*name*/*NEWFILENAME, int /*name*/*EFLAG )
#line 68 "regression-bugs-tmp/soap80-a.imp"
{
                                                                //     69  %end
#line 69 "regression-bugs-tmp/soap80-a.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block NEWGEN at level 1
                                                                //     70  
                                                                //     71  %external %routine outfile(%string (31) %name filename, %integer size, hole, prot, %integer %name conad, eflag)
#line 71 "regression-bugs-tmp/soap80-a.imp"
void OUTFILE( _imp_string /*%string(31)*/ /*name*/*FILENAME, int SIZE, int HOLE, int PROT, int /*name*/*CONAD, int /*name*/*EFLAG )
#line 71 "regression-bugs-tmp/soap80-a.imp"
{
                                                                //     72  %end
#line 72 "regression-bugs-tmp/soap80-a.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block OUTFILE at level 1
                                                                //     73  
                                                                //     74  %external %routine read profile(%string (11) key,  %record (pformat) %name info, %integer %name version, uflag)
#line 74 "regression-bugs-tmp/soap80-a.imp"
void READPROFILE( _imp_string /*%string(11)*/ KEY,  PFORMAT /*name*/*INFO, int /*name*/*VERSION, int /*name*/*UFLAG )
#line 74 "regression-bugs-tmp/soap80-a.imp"
{
                                                                //     75  %end
#line 75 "regression-bugs-tmp/soap80-a.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block READPROFILE at level 1
                                                                //     76  
                                                                //     77  %external %routine write profile(%string (11) %name key, %record (pformat) %name info, %integer %name version, uflag)
#line 77 "regression-bugs-tmp/soap80-a.imp"
void WRITEPROFILE( _imp_string /*%string(11)*/ /*name*/*KEY,  PFORMAT /*name*/*INFO, int /*name*/*VERSION, int /*name*/*UFLAG )
#line 77 "regression-bugs-tmp/soap80-a.imp"
{
                                                                //     78  %end
#line 78 "regression-bugs-tmp/soap80-a.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block WRITEPROFILE at level 1
                                                                //     79  
                                                                //     80  %begin
#line 80 "regression-bugs-tmp/soap80-a.imp"
int main(int argc, char **argv) {
  _imp_initialise(argc, argv);
                                                                //     81     %string (255) s; ! argv[1]
#line 81 "regression-bugs-tmp/soap80-a.imp"
_imp_string /*%string(255)*/ S;
                                                                //     82  !%external %routine soap80(%string (255) s)
                                                                //     83     %integer ptr, dataend, inptr, z, in, obp, eflag, writeaddress, wa0,
#line 83 "regression-bugs-tmp/soap80-a.imp"
int PTR;
#line 83 "regression-bugs-tmp/soap80-a.imp"
int DATAEND;
#line 83 "regression-bugs-tmp/soap80-a.imp"
int INPTR;
#line 83 "regression-bugs-tmp/soap80-a.imp"
int Z;
#line 83 "regression-bugs-tmp/soap80-a.imp"
int IN;
#line 83 "regression-bugs-tmp/soap80-a.imp"
int OBP;
#line 83 "regression-bugs-tmp/soap80-a.imp"
int EFLAG;
#line 83 "regression-bugs-tmp/soap80-a.imp"
int WRITEADDRESS;
#line 83 "regression-bugs-tmp/soap80-a.imp"
int WA0;
#line 83 "regression-bugs-tmp/soap80-a.imp"
int FILESIZE;
#line 83 "regression-bugs-tmp/soap80-a.imp"
int CONAD;
#line 83 "regression-bugs-tmp/soap80-a.imp"
int ERRORS;
#line 83 "regression-bugs-tmp/soap80-a.imp"
int LINE;
#line 83 "regression-bugs-tmp/soap80-a.imp"
int ERPTR;
#line 83 "regression-bugs-tmp/soap80-a.imp"
int STARTLINE;
#line 83 "regression-bugs-tmp/soap80-a.imp"
int STREAM;
#line 83 "regression-bugs-tmp/soap80-a.imp"
int FILESIZEPTR;
#line 83 "regression-bugs-tmp/soap80-a.imp"
int SSALT;
#line 83 "regression-bugs-tmp/soap80-a.imp"
int STRDELIMITER;
#line 83 "regression-bugs-tmp/soap80-a.imp"
int STR;
#line 83 "regression-bugs-tmp/soap80-a.imp"
int SEMICOLON;
#line 83 "regression-bugs-tmp/soap80-a.imp"
int COLON;
#line 83 "regression-bugs-tmp/soap80-a.imp"
int MAXPTR;
#line 83 "regression-bugs-tmp/soap80-a.imp"
int MAXITEM;
#line 83 "regression-bugs-tmp/soap80-a.imp"
int LEVEL;
#line 83 "regression-bugs-tmp/soap80-a.imp"
int STOP;
#line 83 "regression-bugs-tmp/soap80-a.imp"
int INCREM;
#line 83 "regression-bugs-tmp/soap80-a.imp"
int INLABEL;
#line 83 "regression-bugs-tmp/soap80-a.imp"
int CHARSIN;
#line 83 "regression-bugs-tmp/soap80-a.imp"
int ERSAVE;
#line 83 "regression-bugs-tmp/soap80-a.imp"
int INCONST;
#line 83 "regression-bugs-tmp/soap80-a.imp"
int BHEADING;
#line 83 "regression-bugs-tmp/soap80-a.imp"
int INLINE;
                                                                //     84       filesize, conad, errors, line, erptr, startline, stream, filesizeptr,
                                                                //     85       ssalt, strdelimiter, str, semicolon, colon, maxptr, maxitem, level,
                                                                //     86       stop, increm, inlabel, charsin, ersave, inconst, bheading, inline
                                                                //     87     %string (255) outf
#line 87 "regression-bugs-tmp/soap80-a.imp"
_imp_string /*%string(255)*/ OUTF;
                                                                //     88     %string (31) workfile, infile
#line 88 "regression-bugs-tmp/soap80-a.imp"
_imp_string /*%string(31)*/ WORKFILE;
#line 88 "regression-bugs-tmp/soap80-a.imp"
_imp_string /*%string(31)*/ INFILE;
                                                                //     89     %string (2) percentc
#line 89 "regression-bugs-tmp/soap80-a.imp"
_imp_string /*%string(2)*/ PERCENTC;
                                                                //     90     %record (pformat) p
#line 90 "regression-bugs-tmp/soap80-a.imp"
 PFORMAT P;
                                                                //     91     %record (chdr) rec, rr
#line 91 "regression-bugs-tmp/soap80-a.imp"
 CHDR REC;
#line 91 "regression-bugs-tmp/soap80-a.imp"
 CHDR RR;
                                                                //     92     %record (fhdr) %name outrec
#line 92 "regression-bugs-tmp/soap80-a.imp"
 FHDR /*name*/*OUTREC;
                                                                //     93     %const %integer ccsize= 16384
                                                                //     94     %short %integer %array outbuf(0:ccsize+200)
#line 94 "regression-bugs-tmp/soap80-a.imp"
short OUTBUF[16585];
                                                                //     95     %byte %integer %array sc(0:ccsize)
#line 95 "regression-bugs-tmp/soap80-a.imp"
unsigned char SC[16385];
                                                                //     96  
                                                                //     97     %own{%const - imp77 won't allow the use of LENGTH() on a const string!} %string (7) %array optname(1:maxopt)=   "LINE","ICONTIN","POSCOM",
#line 97 "regression-bugs-tmp/soap80-a.imp"
static _imp_string /*%string(7)*/ OPTNAME[16] = { _imp_str_literal("LINE"), _imp_str_literal("ICONTIN"), _imp_str_literal("POSCOM"), _imp_str_literal("MOVECOM"), _imp_str_literal("UCKEY"), _imp_str_literal("SEPKEY"), _imp_str_literal("EXPKEY"), _imp_str_literal("LCASNAM"), _imp_str_literal("SPACNAM"), _imp_str_literal("SPACASS"), _imp_str_literal("SPACOP"), _imp_str_literal("LCLIST"), _imp_str_literal("IBLOCK"), _imp_str_literal("ISTAT"), _imp_str_literal("SEPLAB"), _imp_str_literal("SPCOMMA"),  };
                                                                //     98      "MOVECOM","UCKEY","SEPKEY","EXPKEY","LCASNAM","SPACNAM","SPACASS","SPACOP",
                                                                //     99      "LCLIST","IBLOCK","ISTAT","SEPLAB","SPCOMMA"
                                                                //    100  
                                                                //    101     !!%const %string (255) %array optmess(0:1, 1:maxopt)=
                                                                //    102     %const %string (255) %array optmess(2:33)=
#line 102 "regression-bugs-tmp/soap80-a.imp"
const _imp_string /*%string(255)*/ OPTMESS[32] = { _imp_str_literal("Line length zero (!!!)"), _imp_str_literal("Maximum line length"), _imp_str_literal("Continued lines not indented"), _imp_str_literal("Indentation of continued lines"), _imp_str_literal("Right hand comments not positioned"), _imp_str_literal("Right hand comment position"), _imp_str_literal("Whole line comments indented normally"), _imp_str_literal("Whole line comments moved to POSCOM"), _imp_str_literal("Keywords output in lower case"), _imp_str_literal("Keywords output in upper case"), _imp_str_literal("Keywords not split"), _imp_str_literal("Keywords split"), _imp_str_literal("%FN, %CONST, %ELSE not expanded"), _imp_str_literal("%FN, %CONST, (sometimes) %ELSE expanded"), _imp_str_literal("Case of names controlled by UCKEY"), _imp_str_literal("Case of names left alone"), _imp_str_literal("Spaces removed from names"), _imp_str_literal("Spaces preserved within names"), _imp_str_literal("No spaces round assignment operators"), _imp_str_literal("Spaces added round assignment operators"), _imp_str_literal("No spaces round operators"), _imp_str_literal("Spaces added round operators"), _imp_str_literal("Constant lists formatted"), _imp_str_literal("Constant lists left alone"), _imp_str_literal("Block not indented w.r.t. block heading"), _imp_str_literal("Block indented w.r.t. block heading"), _imp_str_literal("Statements aligned with declarations"), _imp_str_literal("Statements indented w.r.t. declarations"), _imp_str_literal("Labels not on lines by themselves"), _imp_str_literal("Labels on lines by themselves"), _imp_str_literal("No space character after commas"), _imp_str_literal("Space character after commas"),  };
                                                                //    103      "Line length zero (!!!)",
                                                                //    104      "Maximum line length",
                                                                //    105      "Continued lines not indented",
                                                                //    106      "Indentation of continued lines",
                                                                //    107      "Right hand comments not positioned",
                                                                //    108      "Right hand comment position",
                                                                //    109      "Whole line comments indented normally",
                                                                //    110      "Whole line comments moved to POSCOM",
                                                                //    111      "Keywords output in lower case",
                                                                //    112      "Keywords output in upper case",
                                                                //    113      "Keywords not split",
                                                                //    114      "Keywords split",
                                                                //    115      "%FN, %CONST, %ELSE not expanded",
                                                                //    116      "%FN, %CONST, (sometimes) %ELSE expanded",    
                                                                //    117      "Case of names controlled by UCKEY",
                                                                //    118      "Case of names left alone",
                                                                //    119      "Spaces removed from names",
                                                                //    120      "Spaces preserved within names",
                                                                //    121      "No spaces round assignment operators",
                                                                //    122      "Spaces added round assignment operators",
                                                                //    123      "No spaces round operators",
                                                                //    124      "Spaces added round operators",
                                                                //    125      "Constant lists formatted",
                                                                //    126      "Constant lists left alone",
                                                                //    127      "Block not indented w.r.t. block heading",
                                                                //    128      "Block indented w.r.t. block heading",
                                                                //    129      "Statements aligned with declarations",
                                                                //    130      "Statements indented w.r.t. declarations",
                                                                //    131      "Labels not on lines by themselves",
                                                                //    132      "Labels on lines by themselves",
                                                                //    133      "No space character after commas",
                                                                //    134      "Space character after commas"
                                                                //    135  
                                                                //    136     %const %string (62) %array fault(1:4) = "Statement is too long and could not be compiled.",
#line 136 "regression-bugs-tmp/soap80-a.imp"
const _imp_string /*%string(62)*/ FAULT[4] = { _imp_str_literal("Statement is too long and could not be compiled."), _imp_str_literal("End of file reached before end of program terminator found."), _imp_str_literal("%END found, but could not match it to a start of routine."), _imp_str_literal("Disaster *** Indentation too near line length limit."),  };
                                                                //    137        "End of file reached before end of program terminator found.",
                                                                //    138        "%END found, but could not match it to a start of routine.",
                                                                //    139        "Disaster *** Indentation too near line length limit."
                                                                //    140  
                                                                //    141     %const %integer charfile= 3; !  Code for a character file.
                                                                //    142     %const %integer underline= 128
                                                                //    143     %const %integer instring= 256,incurly = 512,bpoint = 1024,bpoint2 = 2048
                                                                //    144     %const %integer terminal= 1,file = 2,samefile = 3,device = 4
                                                                //    145     %const %integer true= 255,false = 0; ! Synthetic boolean values.
                                                                //    146     %const %integer nl= 10,dquotes = 34,squotes = 39
                                                                //    147     %const %integer rs= 30; ! RECORD SEPARATOR IS USED AS A DELETED(BY %c) NL
                                                                //    148     %const %integer rem= B'00000001'
                                                                //    149     %const %integer constart= B'00000010'
                                                                //    150     %const %integer quotes= B'00000100'
                                                                //    151     %const %integer endst= B'00001000'
                                                                //    152     %const %integer number= B'00010000'
                                                                //    153     %const %integer letter= B'00100000'
                                                                //    154     %const %byte %integer constfirst= B'01000000'
                                                                //    155     %const %integer constcont= B'10000000'
                                                                //    156     !
                                                                //    157     %const %byte %integer %array onecase(0:127)=
#line 157 "regression-bugs-tmp/soap80-a.imp"
const unsigned char ONECASE[128] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 123, 124, 125, 126, 127,  };
                                                                //    158     0,1,2,3,4,5,6,7,8,9,10,11,12,
                                                                //    159     13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,
                                                                //    160     35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,
                                                                //    161     57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,
                                                                //    162     79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,65,66,67,68,
                                                                //    163     69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,
                                                                //    164     123,124,125,126,127
                                                                //    165     %const %byte %integer %array chartype(0:255)=     B'00000001',
#line 165 "regression-bugs-tmp/soap80-a.imp"
const unsigned char CHARTYPE[256] = { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 64, 0, 1, 0, 4, 0, 0, 0, 0, 0, 0, 192, 0, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 0, 8, 64, 64, 64, 0, 0, 32, 34, 34, 34, 32, 32, 32, 32, 32, 32, 34, 32, 34, 32, 32, 32, 32, 34, 32, 32, 32, 32, 32, 34, 32, 32, 0, 0, 0, 0, 0, 0, 32, 34, 34, 34, 32, 32, 32, 32, 32, 32, 34, 32, 34, 32, 32, 32, 32, 34, 32, 32, 32, 32, 32, 34, 32, 32, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, [196 ... 255] = 0 };
                                                                //    166   B'00000000',
                                                                //    167            B'00000000',B'00000000',B'00000000',B'00000000',B'00000000',
                                                                //    168            B'00000000',B'00000000',B'00000000',B'00001000',B'00000000'(22),
                                                                //    169            B'00000001'{!},B'00000100',B'01000000',B'00000000',B'00000001'{%},
                                                                //    170            B'00000000',B'00000100',B'00000000',B'00000000',B'00000000',
                                                                //    171            B'00000000',B'00000000',B'00000000',B'11000000',B'00000000',
                                                                //    172            B'11010000'(10),
                                                                //    173            B'00000000',B'00001000',B'01000000',B'01000000',B'01000000',
                                                                //    174            B'00000000',B'00000000',
                                                                //    175            B'00100000',B'00100010',B'00100010',B'00100010',B'00100000',
                                                                //    176            B'00100000',B'00100000',B'00100000',
                                                                //    177            B'00100000',B'00100000',B'00100010',B'00100000',
                                                                //    178            B'00100010',B'00100000',B'00100000',B'00100000',B'00100000',
                                                                //    179            B'00100010',B'00100000',B'00100000',B'00100000',B'00100000'(2),
                                                                //    180            B'00100010',B'00100000',B'00100000',B'00000000',B'00000000',
                                                                //    181            B'00000000',B'00000000',B'00000000',B'00000000',
                                                                //    182            B'00100000',B'00100010'{b},B'00100010',B'00100010',B'00100000'(6),
                                                                //    183            B'00100010'{k},B'00100000',B'00100010'{m},B'00100000'(4),
                                                                //    184            B'00100010'{r},B'00100000'(5),B'00100010'{x},B'00100000'(2),
                                                                //    185            B'00000000',B'00000001'{|},B'00000000',B'00000000',B'00000000',
                                                                //    186            B'0'(67),
                                                                //    187            B'00000001'{%C},
                                                                //    188            B'0'(60)
                                                                //    189     %const %byte %integer %array keycom(0:7)= '%','C','O','M','M','E','N','T'
#line 189 "regression-bugs-tmp/soap80-a.imp"
const unsigned char KEYCOM[8] = { 37, 67, 79, 77, 77, 69, 78, 84,  };
                                                                //    190     %const %integer %array fstable(1:3)=     4096,16384,65536
#line 190 "regression-bugs-tmp/soap80-a.imp"
const int FSTABLE[3] = { 4096, 16384, 65536,  };
                                                                //    191     !
                                                                //    192     ! Special delimiters noted by SOAP80.
                                                                //    193     !
                                                                //    194     %const %integer offile= 133,ofprogram = 123,equals = 38,comma = 10,
                                                                //    195   if = 12,
                                                                //    196      unless = 15,while = 22,until = 28,else = 227,then = 222,and = 158,or = 162,
                                                                //    197      const = 204, constant = 195, fn = 96, function = 103
                                                                //    198  
                                                                //    199     ! {%const} %string (2) snl = to string(nl)
                                                                //    200  
                                                                //    201     !
                                                                //    202     !
                                                                //    203     !
                                                                //    204     %routine %spec fail(%integer type, action)
#line 204 "regression-bugs-tmp/soap80-a.imp"
auto void FAIL( int TYPE, int ACTION );
                                                                //    205     %routine %spec opt(%string (255) parm, %record (pformat) %name p)
#line 205 "regression-bugs-tmp/soap80-a.imp"
auto void OPT( _imp_string /*%string(255)*/ PARM,  PFORMAT /*name*/*P );
                                                                //    206     !
                                                                //    207     ! Produced by oldps from impalgs_imp80ps04 on 19/01/83
                                                                //    208     %const %byte %integer %array clett(0:434)=   1,
#line 208 "regression-bugs-tmp/soap80-a.imp"
const unsigned char CLETT[435] = { 1, 43, 1, 45, 1, 40, 1, 41, 1, 42, 1, 44, 2, 201, 198, 6, 213, 206, 204, 197, 211, 211, 5, 215, 200, 201, 204, 197, 5, 213, 206, 212, 201, 204, 3, 198, 207, 210, 1, 61, 5, 193, 204, 201, 193, 211, 7, 201, 206, 212, 197, 199, 197, 210, 4, 210, 197, 193, 204, 4, 204, 207, 206, 199, 4, 194, 217, 212, 197, 6, 211, 212, 210, 201, 206, 199, 4, 200, 193, 204, 198, 6, 210, 197, 195, 207, 210, 196, 7, 210, 207, 213, 212, 201, 206, 197, 2, 198, 206, 3, 205, 193, 208, 8, 198, 213, 206, 195, 212, 201, 207, 206, 4, 206, 193, 205, 197, 5, 193, 210, 210, 193, 217, 9, 207, 198, 208, 210, 207, 199, 210, 193, 205, 6, 207, 198, 198, 201, 204, 197, 6, 207, 198, 204, 201, 211, 212, 6, 198, 207, 210, 205, 193, 212, 3, 206, 207, 212, 3, 193, 206, 196, 2, 207, 210, 1, 58, 4, 211, 208, 197, 195, 3, 207, 215, 206, 8, 197, 216, 212, 197, 210, 206, 193, 204, 9, 197, 216, 212, 210, 201, 206, 211, 201, 195, 8, 195, 207, 206, 211, 212, 193, 206, 212, 5, 195, 207, 206, 211, 212, 5, 197, 214, 197, 206, 212, 5, 211, 212, 193, 210, 212, 4, 212, 200, 197, 206, 4, 197, 204, 211, 197, 1, 95, 6, 211, 217, 211, 212, 197, 205, 7, 196, 217, 206, 193, 205, 201, 195, 4, 80, 85, 84, 95, 5, 67, 78, 79, 80, 95, 2, 204, 61, 1, 60, 1, 62, 4, 40, 196, 210, 43, 2, 196, 210, 1, 194, 3, 212, 207, 211, 3, 204, 206, 194, 3, 216, 206, 194, 2, 208, 195, 3, 195, 212, 194, 2, 45, 62, 6, 210, 197, 212, 213, 210, 206, 6, 210, 197, 211, 213, 204, 212, 7, 205, 207, 206, 201, 212, 207, 210, 4, 211, 212, 207, 208, 6, 211, 201, 199, 206, 193, 204, 4, 197, 216, 201, 212, 8, 195, 207, 206, 212, 201, 206, 213, 197, 6, 198, 201, 206, 201, 211, 200, 5, 195, 217, 195, 204, 197, 6, 210, 197, 208, 197, 193, 212, 3, 197, 206, 196, 7, 201, 206, 195, 204, 213, 196, 197, 5, 194, 197, 199, 201, 206, 2, 207, 206, 6, 211, 215, 201, 212, 195, 200, 4, 204, 201, 211, 212, 14, 212, 210, 213, 211, 212, 197, 196, 208, 210, 207, 199, 210, 193, 205, 6, 205, 193, 201, 206, 197, 208, 7, 195, 207, 206, 212, 210, 207, 204, 4, 40, 42, 41, 58,  };
                                                                //    209  {1}  43,   1,  45,   1,  40,   1,  41,   1,  42,   1,  44,   2, 201, 198,
                                                                //    210  {15}   6, 213, 206, 204, 197, 211, 211,   5, 215, 200, 201, 204, 197,   5,
                                                                //    211  {29} 213, 206, 212, 201, 204,   3, 198, 207, 210,   1,  61,   5, 193, 204,
                                                                //    212  {43} 201, 193, 211,   7, 201, 206, 212, 197, 199, 197, 210,   4, 210, 197,
                                                                //    213  {57} 193, 204,   4, 204, 207, 206, 199,   4, 194, 217, 212, 197,   6, 211,
                                                                //    214  {71} 212, 210, 201, 206, 199,   4, 200, 193, 204, 198,   6, 210, 197, 195,
                                                                //    215  {85} 207, 210, 196,   7, 210, 207, 213, 212, 201, 206, 197,   2, 198, 206,
                                                                //    216  {99}   3, 205, 193, 208,   8, 198, 213, 206, 195, 212, 201, 207, 206,   4,
                                                                //    217  {113} 206, 193, 205, 197,   5, 193, 210, 210, 193, 217,   9, 207, 198, 208,
                                                                //    218  {127} 210, 207, 199, 210, 193, 205,   6, 207, 198, 198, 201, 204, 197,   6,
                                                                //    219  {141} 207, 198, 204, 201, 211, 212,   6, 198, 207, 210, 205, 193, 212,   3,
                                                                //    220  {155} 206, 207, 212,   3, 193, 206, 196,   2, 207, 210,   1,  58,   4, 211,
                                                                //    221  {169} 208, 197, 195,   3, 207, 215, 206,   8, 197, 216, 212, 197, 210, 206,
                                                                //    222  {183} 193, 204,   9, 197, 216, 212, 210, 201, 206, 211, 201, 195,   8, 195,
                                                                //    223  {197} 207, 206, 211, 212, 193, 206, 212,   5, 195, 207, 206, 211, 212,   5,
                                                                //    224  {211} 197, 214, 197, 206, 212,   5, 211, 212, 193, 210, 212,   4, 212, 200,
                                                                //    225  {225} 197, 206,   4, 197, 204, 211, 197,   1,  95,   6, 211, 217, 211, 212,
                                                                //    226  {239} 197, 205,   7, 196, 217, 206, 193, 205, 201, 195,   4,  80,  85,  84,
                                                                //    227  {253}  95,   5,  67,  78,  79,  80,  95,   2, 204,  61,   1,  60,   1,  62,
                                                                //    228  {267}   4,  40, 196, 210,  43,   2, 196, 210,   1, 194,   3, 212, 207, 211,
                                                                //    229  {281}   3, 204, 206, 194,   3, 216, 206, 194,   2, 208, 195,   3, 195, 212,
                                                                //    230  {295} 194,   2,  45,  62,   6, 210, 197, 212, 213, 210, 206,   6, 210, 197,
                                                                //    231  {309} 211, 213, 204, 212,   7, 205, 207, 206, 201, 212, 207, 210,   4, 211,
                                                                //    232  {323} 212, 207, 208,   6, 211, 201, 199, 206, 193, 204,   4, 197, 216, 201,
                                                                //    233  {337} 212,   8, 195, 207, 206, 212, 201, 206, 213, 197,   6, 198, 201, 206,
                                                                //    234  {351} 201, 211, 200,   5, 195, 217, 195, 204, 197,   6, 210, 197, 208, 197,
                                                                //    235  {365} 193, 212,   3, 197, 206, 196,   7, 201, 206, 195, 204, 213, 196, 197,
                                                                //    236  {379}   5, 194, 197, 199, 201, 206,   2, 207, 206,   6, 211, 215, 201, 212,
                                                                //    237  {393} 195, 200,   4, 204, 201, 211, 212,  14, 212, 210, 213, 211, 212, 197,
                                                                //    238  {407} 196, 208, 210, 207, 199, 210, 193, 205,   6, 205, 193, 201, 206, 197,
                                                                //    239  {421} 208,   7, 195, 207, 206, 212, 210, 207, 204,   4,  40,  42,  41,  58
                                                                //    240  
                                                                //    241  
                                                                //    242     %const %integer %array symbol(1300:2167)=  1307,
#line 242 "regression-bugs-tmp/soap80-a.imp"
const int SYMBOL[868] = { 1307, 1303, 0, 1305, 2, 1307, 1000, 1319, 1312, 1001, 1366, 1786, 1315, 1003, 1020, 1319, 4, 1345, 6, 1329, 1323, 1001, 1014, 1325, 1003, 1329, 4, 1329, 6, 1336, 1336, 1010, 1028, 1319, 1011, 1359, 1345, 1343, 1010, 1028, 1319, 1011, 1359, 1345, 8, 1352, 1352, 1010, 1028, 1307, 1011, 1352, 1359, 1357, 1026, 1307, 999, 1359, 1000, 1366, 1364, 1026, 1319, 999, 1366, 1000, 1374, 1372, 4, 1345, 1374, 6, 1374, 1000, 1381, 1379, 10, 1345, 999, 1381, 1000, 1386, 1384, 12, 1386, 15, 1410, 1393, 22, 1010, 1536, 1556, 1011, 1399, 28, 1010, 1536, 1556, 1011, 1410, 34, 1010, 1001, 38, 1345, 10, 1345, 10, 1345, 1011, 1416, 1414, 40, 1013, 1416, 1000, 1423, 1421, 10, 1001, 999, 1423, 1000, 1428, 1426, 46, 1428, 1000, 1436, 1431, 54, 1433, 46, 1436, 59, 54, 1458, 1439, 46, 1441, 54, 1444, 59, 1428, 1447, 64, 1423, 1450, 69, 1689, 1453, 76, 1423, 1458, 81, 4, 1848, 6, 1465, 1461, 88, 1465, 1004, 1436, 1465, 1472, 1468, 96, 1470, 99, 1472, 103, 1488, 1478, 1436, 1493, 1001, 1416, 1484, 1458, 1488, 1001, 1416, 1501, 1488, 112, 1001, 1416, 1493, 1491, 112, 1493, 1000, 1501, 1497, 117, 112, 1499, 112, 1501, 1000, 1511, 1509, 4, 1010, 1472, 1011, 1511, 6, 1511, 1000, 1520, 1518, 1030, 1010, 1472, 1011, 999, 1520, 1000, 1531, 1524, 123, 1016, 1526, 133, 1529, 140, 1018, 1531, 1016, 1536, 1534, 147, 1536, 1000, 1550, 1542, 1345, 1032, 1345, 1550, 1547, 4, 1536, 1556, 6, 1550, 154, 1536, 1556, 1554, 1037, 1345, 1556, 1000, 1567, 1561, 158, 1536, 1567, 1565, 162, 1536, 1574, 1567, 1000, 1574, 1572, 158, 1536, 999, 1574, 1000, 1581, 1579, 162, 1536, 999, 1581, 1000, 1589, 1585, 1033, 1345, 1587, 165, 1589, 1000, 1595, 1593, 167, 1008, 1595, 1015, 1599, 1598, 167, 1599, 1608, 1606, 10, 1345, 165, 1345, 1599, 1608, 1000, 1617, 1613, 1493, 1001, 1416, 1617, 117, 1531, 1617, 1623, 1623, 1001, 1416, 1794, 1623, 1629, 1627, 10, 1617, 1629, 1000, 1646, 1639, 1493, 1595, 1010, 1001, 1410, 1802, 1011, 1646, 1646, 117, 1531, 1595, 1001, 1794, 1668, 1657, 1655, 10, 1010, 1001, 1410, 1802, 1011, 1646, 1657, 1000, 1668, 1660, 172, 1662, 176, 1664, 185, 1666, 195, 1668, 204, 1679, 1677, 38, 1012, 1028, 1319, 1359, 1689, 1679, 1679, 1000, 1689, 1687, 10, 1028, 1319, 1359, 1689, 999, 1689, 1000, 1696, 1694, 4, 1336, 6, 1696, 1000, 1703, 1701, 10, 1329, 999, 1703, 1000, 1708, 1706, 210, 1708, 1000, 1714, 1712, 10, 1345, 1714, 1000, 1727, 1725, 10, 1001, 1416, 4, 1345, 165, 1345, 6, 999, 1727, 1000, 1734, 1732, 28, 1536, 1556, 1734, 1000, 1747, 1737, 1019, 1739, 1006, 1744, 1381, 1536, 1556, 1006, 1747, 1386, 1006, 1761, 1751, 216, 1034, 1755, 222, 216, 1034, 1761, 222, 1010, 2008, 1011, 1767, 1767, 1765, 158, 2008, 1767, 1000, 1773, 1771, 227, 1773, 1773, 1000, 1786, 1777, 216, 1034, 1784, 1381, 1010, 1536, 1556, 1011, 1747, 1786, 2008, 1794, 1792, 232, 1001, 1366, 1786, 1794, 1000, 1802, 1802, 4, 1345, 165, 1345, 1599, 6, 1810, 1808, 38, 1028, 1319, 1359, 1810, 1000, 1819, 1813, 234, 1815, 176, 1817, 241, 1819, 1000, 1830, 1828, 1001, 38, 1345, 10, 1345, 10, 1345, 1830, 1000, 1837, 1835, 10, 1855, 999, 1837, 1000, 1848, 1841, 167, 1001, 1848, 1001, 4, 1855, 1830, 1873, 6, 1855, 1851, 1001, 1855, 1855, 1830, 1873, 1865, 1859, 1436, 1865, 1865, 4, 1855, 1830, 1873, 6, 1873, 1870, 1493, 1001, 1416, 1873, 117, 1617, 1881, 1879, 162, 1855, 1830, 999, 1881, 1000, 1898, 1886, 249, 1002, 1006, 1890, 1022, 1898, 1006, 1896, 254, 1009, 10, 1009, 1006, 1898, 1031, 1912, 1902, 1023, 1912, 1907, 1024, 260, 1951, 1956, 1912, 1025, 1005, 10, 1935, 1935, 1917, 263, 1001, 265, 1919, 1984, 1924, 4, 1984, 1973, 6, 1928, 267, 1984, 6, 1933, 4, 272, 1973, 6, 1935, 275, 1951, 1940, 263, 1001, 265, 1942, 1984, 1947, 4, 272, 1973, 6, 1951, 267, 1005, 6, 1956, 1954, 272, 1956, 1005, 1964, 1962, 10, 1005, 10, 1005, 1964, 1000, 1973, 1968, 0, 1005, 1971, 2, 1005, 1973, 1000, 1979, 1977, 0, 275, 1979, 1000, 1984, 1982, 38, 1984, 1000, 1999, 1989, 1979, 1300, 1003, 1992, 1001, 1964, 1997, 4, 1999, 1964, 6, 1999, 277, 2008, 2002, 281, 2004, 285, 2006, 289, 2008, 292, 2041, 2017, 1010, 1001, 1366, 1786, 1011, 1581, 1761, 2021, 296, 1001, 1366, 2023, 299, 2027, 306, 1033, 1345, 2030, 313, 1761, 2032, 321, 2037, 326, 1703, 1329, 1708, 2039, 333, 2041, 338, 2168, 2048, 1027, 1010, 2008, 1011, 1734, 2050, 1007, 2058, 1381, 1010, 1536, 1556, 1011, 1747, 1006, 2063, 347, 1035, 1767, 1006, 2068, 354, 1029, 1819, 1006, 2073, 360, 1036, 1727, 1006, 2078, 1386, 354, 1029, 1006, 2086, 1004, 1008, 1010, 1436, 1011, 1608, 1006, 2090, 367, 1520, 1006, 2095, 81, 147, 1837, 1006, 2105, 1010, 1810, 1458, 1011, 1589, 1001, 1410, 1501, 1006, 2110, 1657, 1436, 1629, 1006, 2114, 371, 1003, 1038, 2118, 379, 1015, 1006, 2127, 385, 1021, 1703, 1329, 1696, 216, 1034, 1006, 2138, 388, 1001, 1416, 4, 1345, 165, 1345, 6, 1714, 1006, 2142, 395, 1006, 1017, 2148, 227, 1035, 1039, 1034, 1006, 2151, 8, 1881, 2154, 400, 1006, 2158, 415, 1001, 1006, 2162, 422, 1003, 1006, 2166, 1001, 430, 1019, 2168, 1006,  };
                                                                //    243    1303,     0,  1305,     2,  1307,  1000,  1319,  1312,  1001,  1366,
                                                                //    244    1786,  1315,  1003,  1020,  1319,     4,  1345,     6,  1329,  1323,
                                                                //    245    1001,  1014,  1325,  1003,  1329,     4,  1329,     6,  1336,  1336,
                                                                //    246    1010,  1028,  1319,  1011,  1359,  1345,  1343,  1010,  1028,  1319,
                                                                //    247    1011,  1359,  1345,     8,  1352,  1352,  1010,  1028,  1307,  1011,
                                                                //    248    1352,  1359,  1357,  1026,  1307,   999,  1359,  1000,  1366,  1364,
                                                                //    249    1026,  1319,   999,  1366,  1000,  1374,  1372,     4,  1345,  1374,
                                                                //    250       6,  1374,  1000,  1381,  1379,    10,  1345,   999,  1381,  1000,
                                                                //    251    1386,  1384,    12,  1386,    15,  1410,  1393,    22,  1010,  1536,
                                                                //    252    1556,  1011,  1399,    28,  1010,  1536,  1556,  1011,  1410,    34,
                                                                //    253    1010,  1001,    38,  1345,    10,  1345,    10,  1345,  1011,  1416,
                                                                //    254    1414,    40,  1013,  1416,  1000,  1423,  1421,    10,  1001,   999,
                                                                //    255    1423,  1000,  1428,  1426,    46,  1428,  1000,  1436,  1431,    54,
                                                                //    256    1433,    46,  1436,    59,    54,  1458,  1439,    46,  1441,    54,
                                                                //    257    1444,    59,  1428,  1447,    64,  1423,  1450,    69,  1689,  1453,
                                                                //    258      76,  1423,  1458,    81,     4,  1848,     6,  1465,  1461,    88,
                                                                //    259    1465,  1004,  1436,  1465,  1472,  1468,    96,  1470,    99,  1472,
                                                                //    260     103,  1488,  1478,  1436,  1493,  1001,  1416,  1484,  1458,  1488,
                                                                //    261    1001,  1416,  1501,  1488,   112,  1001,  1416,  1493,  1491,   112,
                                                                //    262    1493,  1000,  1501,  1497,   117,   112,  1499,   112,  1501,  1000,
                                                                //    263    1511,  1509,     4,  1010,  1472,  1011,  1511,     6,  1511,  1000,
                                                                //    264    1520,  1518,  1030,  1010,  1472,  1011,   999,  1520,  1000,  1531,
                                                                //    265    1524,   123,  1016,  1526,   133,  1529,   140,  1018,  1531,  1016,
                                                                //    266    1536,  1534,   147,  1536,  1000,  1550,  1542,  1345,  1032,  1345,
                                                                //    267    1550,  1547,     4,  1536,  1556,     6,  1550,   154,  1536,  1556,
                                                                //    268    1554,  1037,  1345,  1556,  1000,  1567,  1561,   158,  1536,  1567,
                                                                //    269    1565,   162,  1536,  1574,  1567,  1000,  1574,  1572,   158,  1536,
                                                                //    270     999,  1574,  1000,  1581,  1579,   162,  1536,   999,  1581,  1000,
                                                                //    271    1589,  1585,  1033,  1345,  1587,   165,  1589,  1000,  1595,  1593,
                                                                //    272     167,  1008,  1595,  1015,  1599,  1598,   167,  1599,  1608,  1606,
                                                                //    273      10,  1345,   165,  1345,  1599,  1608,  1000,  1617,  1613,  1493,
                                                                //    274    1001,  1416,  1617,   117,  1531,  1617,  1623,  1623,  1001,  1416,
                                                                //    275    1794,  1623,  1629,  1627,    10,  1617,  1629,  1000,  1646,  1639,
                                                                //    276    1493,  1595,  1010,  1001,  1410,  1802,  1011,  1646,  1646,   117,
                                                                //    277    1531,  1595,  1001,  1794,  1668,  1657,  1655,    10,  1010,  1001,
                                                                //    278    1410,  1802,  1011,  1646,  1657,  1000,  1668,  1660,   172,  1662,
                                                                //    279     176,  1664,   185,  1666,   195,  1668,   204,  1679,  1677,    38,
                                                                //    280    1012,  1028,  1319,  1359,  1689,  1679,  1679,  1000,  1689,  1687,
                                                                //    281      10,  1028,  1319,  1359,  1689,   999,  1689,  1000,  1696,  1694,
                                                                //    282       4,  1336,     6,  1696,  1000,  1703,  1701,    10,  1329,   999,
                                                                //    283    1703,  1000,  1708,  1706,   210,  1708,  1000,  1714,  1712,    10,
                                                                //    284    1345,  1714,  1000,  1727,  1725,    10,  1001,  1416,     4,  1345,
                                                                //    285     165,  1345,     6,   999,  1727,  1000,  1734,  1732,    28,  1536,
                                                                //    286    1556,  1734,  1000,  1747,  1737,  1019,  1739,  1006,  1744,  1381,
                                                                //    287    1536,  1556,  1006,  1747,  1386,  1006,  1761,  1751,   216,  1034,
                                                                //    288    1755,   222,   216,  1034,  1761,   222,  1010,  2008,  1011,  1767,
                                                                //    289    1767,  1765,   158,  2008,  1767,  1000,  1773,  1771,   227,  1773,
                                                                //    290    1773,  1000,  1786,  1777,   216,  1034,  1784,  1381,  1010,  1536,
                                                                //    291    1556,  1011,  1747,  1786,  2008,  1794,  1792,   232,  1001,  1366,
                                                                //    292    1786,  1794,  1000,  1802,  1802,     4,  1345,   165,  1345,  1599,
                                                                //    293       6,  1810,  1808,    38,  1028,  1319,  1359,  1810,  1000,  1819,
                                                                //    294    1813,   234,  1815,   176,  1817,   241,  1819,  1000,  1830,  1828,
                                                                //    295    1001,    38,  1345,    10,  1345,    10,  1345,  1830,  1000,  1837,
                                                                //    296    1835,    10,  1855,   999,  1837,  1000,  1848,  1841,   167,  1001,
                                                                //    297    1848,  1001,     4,  1855,  1830,  1873,     6,  1855,  1851,  1001,
                                                                //    298    1855,  1855,  1830,  1873,  1865,  1859,  1436,  1865,  1865,     4,
                                                                //    299    1855,  1830,  1873,     6,  1873,  1870,  1493,  1001,  1416,  1873,
                                                                //    300     117,  1617,  1881,  1879,   162,  1855,  1830,   999,  1881,  1000,
                                                                //    301    1898,  1886,   249,  1002,  1006,  1890,  1022,  1898,  1006,  1896,
                                                                //    302     254,  1009,    10,  1009,  1006,  1898,  1031,  1912,  1902,  1023,
                                                                //    303    1912,  1907,  1024,   260,  1951,  1956,  1912,  1025,  1005,    10,
                                                                //    304    1935,  1935,  1917,   263,  1001,   265,  1919,  1984,  1924,     4,
                                                                //    305    1984,  1973,     6,  1928,   267,  1984,     6,  1933,     4,   272,
                                                                //    306    1973,     6,  1935,   275,  1951,  1940,   263,  1001,   265,  1942,
                                                                //    307    1984,  1947,     4,   272,  1973,     6,  1951,   267,  1005,     6,
                                                                //    308    1956,  1954,   272,  1956,  1005,  1964,  1962,    10,  1005,    10,
                                                                //    309    1005,  1964,  1000,  1973,  1968,     0,  1005,  1971,     2,  1005,
                                                                //    310    1973,  1000,  1979,  1977,     0,   275,  1979,  1000,  1984,  1982,
                                                                //    311      38,  1984,  1000,  1999,  1989,  1979,  1300,  1003,  1992,  1001,
                                                                //    312    1964,  1997,     4,  1999,  1964,     6,  1999,   277,  2008,  2002,
                                                                //    313     281,  2004,   285,  2006,   289,  2008,   292,  2041,  2017,  1010,
                                                                //    314    1001,  1366,  1786,  1011,  1581,  1761,  2021,   296,  1001,  1366,
                                                                //    315    2023,   299,  2027,   306,  1033,  1345,  2030,   313,  1761,  2032,
                                                                //    316     321,  2037,   326,  1703,  1329,  1708,  2039,   333,  2041,   338,
                                                                //    317    2168,  2048,  1027,  1010,  2008,  1011,  1734,  2050,  1007,  2058,
                                                                //    318    1381,  1010,  1536,  1556,  1011,  1747,  1006,  2063,   347,  1035,
                                                                //    319    1767,  1006,  2068,   354,  1029,  1819,  1006,  2073,   360,  1036,
                                                                //    320    1727,  1006,  2078,  1386,   354,  1029,  1006,  2086,  1004,  1008,
                                                                //    321    1010,  1436,  1011,  1608,  1006,  2090,   367,  1520,  1006,  2095,
                                                                //    322      81,   147,  1837,  1006,  2105,  1010,  1810,  1458,  1011,  1589,
                                                                //    323    1001,  1410,  1501,  1006,  2110,  1657,  1436,  1629,  1006,  2114,
                                                                //    324     371,  1003,  1038,  2118,   379,  1015,  1006,  2127,   385,  1021,
                                                                //    325    1703,  1329,  1696,   216,  1034,  1006,  2138,   388,  1001,  1416,
                                                                //    326       4,  1345,   165,  1345,     6,  1714,  1006,  2142,   395,  1006,
                                                                //    327    1017,  2148,   227,  1035,  1039,  1034,  1006,  2151,     8,  1881,
                                                                //    328    2154,   400,  1006,  2158,   415,  1001,  1006,  2162,   422,  1003,
                                                                //    329    1006,  2166,  1001,   430,  1019,  2168,  1006
                                                                //    330  
                                                                //    331  
                                                                //    332     %const %integer ss= 2041
                                                                //    333     %const %integer comment= 2; ! alt of p<SS> of %comment
                                                                //    334     %const %integer ownalt= 12; ! alt of p<SS> for owns
                                                                //    335     %const %integer eisss= X'00017F00'; ! Flag declarative ss alts
                                                                //    336     ! MAY CHANGE WITH NEW SYNTAX
                                                                //    337     %const %integer %array opc(0:127)=
#line 337 "regression-bugs-tmp/soap80-a.imp"
const int OPC[128] = { 0, 541737795, 541737300, 541737286, 0, 0, 0, 0, 542523724, 541284676, 1229865793, 1297040452, 1347568460, 538976330, 541740107, 1128352844, 541148226, 542327362, 1145389642, 541282370, 542329159, 541940034, 542526809, 1129335106, 541868884, 1297109842, 1129337682, 1398031188, 1163413844, 1163085144, 542070100, 541147988, 538989388, 1397510995, 1397510980, 1397510993, 538989396, 1398035784, 1398036558, 1229212741, 542329924, 542329922, 1413760323, 1229865812, 542331972, 542331970, 1398033486, 1398035270, 538976332, 541872979, 541872964, 541872977, 1381127235, 541873480, 1380011086, 541152070, 1279545932, 541869121, 1279546434, 541869122, 538987588, 538987586, 541871182, 541874254, 542393160, 1095648339, 542069331, 1313165651, 1163415617, 541150788, 538988370, 542000465, 538988619, 541675091, 1398100043, 541415504, 1129270593, 541344854, 1146242134, 1145914454, 1398228305, 1398230597, 541282387, 542397522, 541477972, 541672534, 1230128214, 1229800534, 541939276, 538987862, 1128812374, 541282125, 541477208, 542262358, 1381123158, 1380210244, 542458180, 542462786, 1431458626, 542458704, 542462792, 542265172, 542328915, 542328922, 541344068, 541348674, 1146245954, 541344592, 541348680, 541347161, 1145919812, 1128417614, 541671748, 541676354, 1230132034, 541672272, 541676360, 541674841, 1229805892, 1128547651, 542261572, 542266178, 1381126978, 542262096, 542266179, 542264665, 1380800836, 542135636,  };
                                                                //    338      0, M' JCC', M' JAT', M' JAF', 0(4),
                                                                //    339      M' VAL', M' CYD', M'INCA', M'MODD', M'PRCL', M'   J', M' JLK', M'CALL',
                                                                //    340      M' ADB', M' SBB', M'DEBJ', M' CPB', M' SIG', M' MYB', M' VMY', M'CPIB',
                                                                //    341      M' LCT', M'MPSR', M'CPSR', M'STCT', M'EXIT', M'ESEX', M' OUT', M' ACT',
                                                                //    342      M'  SL', M'SLSS', M'SLSD', M'SLSQ', M'  ST', M'STUH', M'STXN', M'IDLE',
                                                                //    343      M' SLD', M' SLB', M'TDEC', M'INCT', M' STD', M' STB', M'STLN', M'STSF',
                                                                //    344      M'   L', M' LSS', M' LSD', M' LSQ', M'RRTC', M' LUH', M'RALN', M' ASF',
                                                                //    345      M'LDRL', M' LDA', M'LDTB', M' LDB', M'  LD', M'  LB', M' LLN', M' LXN',
                                                                //    346      M' TCH', M'ANDS', M' ORS', M'NEQS', M'EXPA', M' AND', M'  OR', M' NEQ',
                                                                //    347      M'  PK', M' INS', M'SUPK', M' EXP', M'COMA', M' DDV', M'DRDV', M'DMDV',
                                                                //    348      M'SWEQ', M'SWNE', M' CPS', M' TTR', M' FLT', M' IDV', M'IRDV', M'IMDV',
                                                                //    349      M' MVL', M'  MV', M'CHOV', M' COM', M' FIX', M' RDV', M'RRDV', M'RDVD',
                                                                //    350      M' UAD', M' USB', M'URSB', M' UCP', M' USH', M' ROT', M' SHS', M' SHZ',
                                                                //    351      M' DAD', M' DSB', M'DRSB', M' DCP', M' DSH', M' DMY', M'DMYD', M'CBIN',
                                                                //    352      M' IAD', M' ISB', M'IRSB', M' ICP', M' ISH', M' IMY', M'IMYD', M'CDEC',
                                                                //    353      M' RAD', M' RSB', M'RRSB', M' RCP', M' RSC', M' RMY', M'RMYD', M' PUT'
                                                                //    354  
                                                                //    355     %routine cnptf
#line 355 "regression-bugs-tmp/soap80-a.imp"
void CNPTF( void )
#line 355 "regression-bugs-tmp/soap80-a.imp"
{
                                                                //    356  !***********************************************************************
                                                                //    357  !*    Create New Page To File :- This is called when the output file   *
                                                                //    358  !*    is full and must be extended to a new page.                      *
                                                                //    359  !***********************************************************************
                                                                //    360        %if filesizeptr<3 %then %c
#line 360 "regression-bugs-tmp/soap80-a.imp"
if (((FILESIZEPTR) >= (3))) goto L_0002;
#line 360 "regression-bugs-tmp/soap80-a.imp"
FILESIZEPTR = (((int)(FILESIZEPTR)) + (1));
#line 360 "regression-bugs-tmp/soap80-a.imp"
FILESIZE = (FSTABLE-1)[FILESIZEPTR];
#line 360 "regression-bugs-tmp/soap80-a.imp"
goto L_0003;
#line 360 "regression-bugs-tmp/soap80-a.imp"
L_0002:;
#line 360 "regression-bugs-tmp/soap80-a.imp"
FILESIZE = (((int)(FILESIZE)) + ((FSTABLE-1)[3]));
#line 360 "regression-bugs-tmp/soap80-a.imp"
L_0003:;
                                                                //    361         filesizeptr = filesizeptr+1 %and filesize = fstable(filesizeptr) %else %c
                                                                //    362         filesize = filesize+fstable(3)
                                                                //    363        changefilesize(workfile, filesize, eflag)
#line 363 "regression-bugs-tmp/soap80-a.imp"
CHANGEFILESIZE(&WORKFILE, FILESIZE, &EFLAG);
                                                                //    364        %if eflag=261 %start
#line 364 "regression-bugs-tmp/soap80-a.imp"
if (((EFLAG) != (261))) goto L_0004;
                                                                //    365           ! V.M. hole is too small for the new file size.
                                                                //    366           disconnect(workfile, eflag); %if eflag#0 %then fail(eflag, 5)
#line 366 "regression-bugs-tmp/soap80-a.imp"
DISCONNECT(&WORKFILE, &EFLAG);
#line 366 "regression-bugs-tmp/soap80-a.imp"
if (((EFLAG) == (0))) goto L_0005;
#line 366 "regression-bugs-tmp/soap80-a.imp"
FAIL(EFLAG, 5);
#line 366 "regression-bugs-tmp/soap80-a.imp"
L_0005:;
                                                                //    367           changefilesize(workfile, filesize, eflag)
#line 367 "regression-bugs-tmp/soap80-a.imp"
CHANGEFILESIZE(&WORKFILE, FILESIZE, &EFLAG);
                                                                //    368           %if eflag=0 %start
#line 368 "regression-bugs-tmp/soap80-a.imp"
if (((EFLAG) != (0))) goto L_0006;
                                                                //    369              writeaddress = writeaddress-conad
#line 369 "regression-bugs-tmp/soap80-a.imp"
WRITEADDRESS = (((int)(WRITEADDRESS)) - (CONAD));
                                                                //    370              connect(workfile, 3, 0, 0, rr, eflag)
#line 370 "regression-bugs-tmp/soap80-a.imp"
CONNECT(&WORKFILE, 3, 0, 0, &RR, &EFLAG);
                                                                //    371              %if eflag#0 %then fail(eflag, 5)
#line 371 "regression-bugs-tmp/soap80-a.imp"
if (((EFLAG) == (0))) goto L_0007;
#line 371 "regression-bugs-tmp/soap80-a.imp"
FAIL(EFLAG, 5);
#line 371 "regression-bugs-tmp/soap80-a.imp"
L_0007:;
                                                                //    372              conad = rr_conad
#line 372 "regression-bugs-tmp/soap80-a.imp"
CONAD = RR.CONAD;
                                                                //    373              writeaddress = writeaddress+conad
#line 373 "regression-bugs-tmp/soap80-a.imp"
WRITEADDRESS = (((int)(WRITEADDRESS)) + (CONAD));
                                                                //    374              outrec == record(conad)
#line 374 "regression-bugs-tmp/soap80-a.imp"
OUTREC =  (FHDR *) _imp_RECORD(CONAD);
                                                                //    375           %finish
#line 375 "regression-bugs-tmp/soap80-a.imp"
L_0006:;
                                                                //    376        %finish
#line 376 "regression-bugs-tmp/soap80-a.imp"
L_0004:;
                                                                //    377        %if eflag#0 %then fail(eflag, 5)
#line 377 "regression-bugs-tmp/soap80-a.imp"
if (((EFLAG) == (0))) goto L_0008;
#line 377 "regression-bugs-tmp/soap80-a.imp"
FAIL(EFLAG, 5);
#line 377 "regression-bugs-tmp/soap80-a.imp"
L_0008:;
                                                                //    378        outrec_filesize = filesize; ! Update file size in header.
#line 378 "regression-bugs-tmp/soap80-a.imp"
OUTREC->FILESIZE = FILESIZE;
                                                                //    379     %end
#line 379 "regression-bugs-tmp/soap80-a.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block CNPTF at level 2
                                                                //    380  
                                                                //    381     %routine transfer(%integer from, to)
#line 381 "regression-bugs-tmp/soap80-a.imp"
void TRANSFER( int FROM, int TO )
#line 381 "regression-bugs-tmp/soap80-a.imp"
{
                                                                //    382  !***********************************************************************
                                                                //    383  !*    Transfer copies the contents of OUTBUF from FROM to TO into the  *
                                                                //    384  !*    output file or channel.                                          *
                                                                //    385  !***********************************************************************
                                                                //    386        %integer i, ch, last
#line 386 "regression-bugs-tmp/soap80-a.imp"
int I;
#line 386 "regression-bugs-tmp/soap80-a.imp"
int CH;
#line 386 "regression-bugs-tmp/soap80-a.imp"
int LAST;
                                                                //    387        %if stream#terminal %start
#line 387 "regression-bugs-tmp/soap80-a.imp"
if (((STREAM) == (1))) goto L_0009;
                                                                //    388           last = to-from+1+writeaddress-conad
#line 388 "regression-bugs-tmp/soap80-a.imp"
LAST = (((int)((((int)((((int)((((int)(TO)) - (FROM)))) + (1)))) + (WRITEADDRESS)))) - (CONAD));
                                                                //    389           %if last>filesize %then cnptf
#line 389 "regression-bugs-tmp/soap80-a.imp"
if (((LAST) <= (FILESIZE))) goto L_000a;
#line 389 "regression-bugs-tmp/soap80-a.imp"
CNPTF();
#line 389 "regression-bugs-tmp/soap80-a.imp"
L_000a:;
                                                                //    390           outrec_dataend = last
#line 390 "regression-bugs-tmp/soap80-a.imp"
OUTREC->DATAEND = LAST;
                                                                //    391        %finish
#line 391 "regression-bugs-tmp/soap80-a.imp"
L_0009:;
                                                                //    392        %for i = from, 1, to %cycle
#line 392 "regression-bugs-tmp/soap80-a.imp"
{static int _initial, _increment, _final, _control;
_initial = FROM; _increment = 1; _final = TO; I = _control = _initial;
if (((_final-_initial) % _increment) != 0) _imp_signal(5,1,0,"Illegal cycle I = FROM, 1, TO");
I -= _increment; _control -= _increment;
L_000b:;
if (I == _final) goto L_000c;
I += _increment; _control += _increment;
if (I != _control) _imp_signal(4,2,0,"Corrupt control variable I"); /* FOR loop control variable corrupted */
}
                                                                //    393           ch = outbuf(i)&X'7F'
#line 393 "regression-bugs-tmp/soap80-a.imp"
CH = ((OUTBUF[I]) & (127));
                                                                //    394           %if ch&127=rs %then %continue
#line 394 "regression-bugs-tmp/soap80-a.imp"
if (((((CH) & (127))) != (30))) goto L_000e;
#line 394 "regression-bugs-tmp/soap80-a.imp"
goto L_000d;
#line 394 "regression-bugs-tmp/soap80-a.imp"
L_000e:;
                                                                //    395           %if ch=nl %start
#line 395 "regression-bugs-tmp/soap80-a.imp"
if (((CH) != (10))) goto L_000f;
                                                                //    396              charsin = 0; line = line+1
#line 396 "regression-bugs-tmp/soap80-a.imp"
CHARSIN = 0;
#line 396 "regression-bugs-tmp/soap80-a.imp"
LINE = (((int)(LINE)) + (1));
                                                                //    397              %unless stream=terminal %start
#line 397 "regression-bugs-tmp/soap80-a.imp"
if (((STREAM) == (1))) goto L_0010;
                                                                //    398                 write address = write address-1 %while %c
#line 398 "regression-bugs-tmp/soap80-a.imp"
L_0011:;
#line 398 "regression-bugs-tmp/soap80-a.imp"
if (((WRITEADDRESS) <= (WA0))) goto L_0012;
#line 398 "regression-bugs-tmp/soap80-a.imp"
if (((*_imp_BYTEINTEGER((((int)(WRITEADDRESS)) - (1)))) != (32))) goto L_0012;
#line 398 "regression-bugs-tmp/soap80-a.imp"
WRITEADDRESS = (((int)(WRITEADDRESS)) - (1));
#line 398 "regression-bugs-tmp/soap80-a.imp"
goto L_0011;
#line 398 "regression-bugs-tmp/soap80-a.imp"
L_0012:;
                                                                //    399                  write address>wa0 %and byteinteger(write address-1)=' '
                                                                //    400              %finish
#line 400 "regression-bugs-tmp/soap80-a.imp"
L_0010:;
                                                                //    401           %finish %else charsin = charsin+1
#line 401 "regression-bugs-tmp/soap80-a.imp"
goto L_0014;
#line 401 "regression-bugs-tmp/soap80-a.imp"
L_000f:;
#line 401 "regression-bugs-tmp/soap80-a.imp"
CHARSIN = (((int)(CHARSIN)) + (1));
#line 401 "regression-bugs-tmp/soap80-a.imp"
L_0014:;
                                                                //    402           %if stream=terminal %then printsymbol(ch) %else %c
#line 402 "regression-bugs-tmp/soap80-a.imp"
if (((STREAM) != (1))) goto L_0015;
#line 402 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSYMBOL(CH);
#line 402 "regression-bugs-tmp/soap80-a.imp"
goto L_0016;
#line 402 "regression-bugs-tmp/soap80-a.imp"
L_0015:;
#line 402 "regression-bugs-tmp/soap80-a.imp"
*_imp_BYTEINTEGER(WRITEADDRESS) = CH;
#line 402 "regression-bugs-tmp/soap80-a.imp"
WRITEADDRESS = (((int)(WRITEADDRESS)) + (1));
#line 402 "regression-bugs-tmp/soap80-a.imp"
L_0016:;
                                                                //    403            byteinteger(writeaddress) = ch %and writeaddress = writeaddress+1
                                                                //    404        %repeat
#line 404 "regression-bugs-tmp/soap80-a.imp"
L_000d:;
#line 404 "regression-bugs-tmp/soap80-a.imp"
goto L_000b;
#line 404 "regression-bugs-tmp/soap80-a.imp"
L_000c:;
                                                                //    405     %end
#line 405 "regression-bugs-tmp/soap80-a.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block TRANSFER at level 2
                                                                //    406  
                                                                //    407     %routine outstring(%string (40) text)
#line 407 "regression-bugs-tmp/soap80-a.imp"
void OUTSTRING( _imp_string /*%string(40)*/ TEXT )
#line 407 "regression-bugs-tmp/soap80-a.imp"
{
                                                                //    408  !***********************************************************************
                                                                //    409  !*    Outstring copies TEXT to the output file or channel.             *
                                                                //    410  !***********************************************************************
                                                                //    411        %integer i, ch, last
#line 411 "regression-bugs-tmp/soap80-a.imp"
int I;
#line 411 "regression-bugs-tmp/soap80-a.imp"
int CH;
#line 411 "regression-bugs-tmp/soap80-a.imp"
int LAST;
                                                                //    412        %if stream#terminal %start
#line 412 "regression-bugs-tmp/soap80-a.imp"
if (((STREAM) == (1))) goto L_0017;
                                                                //    413           last = length(text)+writeaddress-conad
#line 413 "regression-bugs-tmp/soap80-a.imp"
LAST = (((int)(((*(int *)(_imp_LENGTH(&TEXT))) + (WRITEADDRESS)))) - (CONAD));
                                                                //    414           %if last>filesize %then cnptf
#line 414 "regression-bugs-tmp/soap80-a.imp"
if (((LAST) <= (FILESIZE))) goto L_0018;
#line 414 "regression-bugs-tmp/soap80-a.imp"
CNPTF();
#line 414 "regression-bugs-tmp/soap80-a.imp"
L_0018:;
                                                                //    415           outrec_dataend = last
#line 415 "regression-bugs-tmp/soap80-a.imp"
OUTREC->DATAEND = LAST;
                                                                //    416        %finish
#line 416 "regression-bugs-tmp/soap80-a.imp"
L_0017:;
                                                                //    417        %for i = 1, 1, length(text) %cycle
#line 417 "regression-bugs-tmp/soap80-a.imp"
{static int _initial, _increment, _final, _control;
_initial = 1; _increment = 1; _final = *_imp_LENGTH(&TEXT); I = _control = _initial;
if (((_final-_initial) % _increment) != 0) _imp_signal(5,1,0,"Illegal cycle I = 1, 1, *_imp_LENGTH(&TEXT)");
I -= _increment; _control -= _increment;
L_0019:;
if (I == _final) goto L_001a;
I += _increment; _control += _increment;
if (I != _control) _imp_signal(4,2,0,"Corrupt control variable I"); /* FOR loop control variable corrupted */
}
                                                                //    418           ch = charno(text, i)
#line 418 "regression-bugs-tmp/soap80-a.imp"
CH = *_imp_CHARNO(&TEXT, I);
                                                                //    419           %if ch=nl %then charsin = 0 %and line = line+1 %else %c
#line 419 "regression-bugs-tmp/soap80-a.imp"
if (((CH) != (10))) goto L_001c;
#line 419 "regression-bugs-tmp/soap80-a.imp"
CHARSIN = 0;
#line 419 "regression-bugs-tmp/soap80-a.imp"
LINE = (((int)(LINE)) + (1));
#line 419 "regression-bugs-tmp/soap80-a.imp"
goto L_001d;
#line 419 "regression-bugs-tmp/soap80-a.imp"
L_001c:;
#line 419 "regression-bugs-tmp/soap80-a.imp"
CHARSIN = (((int)(CHARSIN)) + (1));
#line 419 "regression-bugs-tmp/soap80-a.imp"
L_001d:;
                                                                //    420            charsin = charsin+1
                                                                //    421           %if stream=terminal %then printsymbol(ch) %else %c
#line 421 "regression-bugs-tmp/soap80-a.imp"
if (((STREAM) != (1))) goto L_001e;
#line 421 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSYMBOL(CH);
#line 421 "regression-bugs-tmp/soap80-a.imp"
goto L_001f;
#line 421 "regression-bugs-tmp/soap80-a.imp"
L_001e:;
#line 421 "regression-bugs-tmp/soap80-a.imp"
*_imp_BYTEINTEGER(WRITEADDRESS) = CH;
#line 421 "regression-bugs-tmp/soap80-a.imp"
WRITEADDRESS = (((int)(WRITEADDRESS)) + (1));
#line 421 "regression-bugs-tmp/soap80-a.imp"
L_001f:;
                                                                //    422            byteinteger(writeaddress) = ch %and writeaddress = writeaddress+1
                                                                //    423        %repeat
#line 423 "regression-bugs-tmp/soap80-a.imp"
goto L_0019;
#line 423 "regression-bugs-tmp/soap80-a.imp"
L_001a:;
                                                                //    424     %end
#line 424 "regression-bugs-tmp/soap80-a.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block OUTSTRING at level 2
                                                                //    425  
                                                                //    426     %routine dupl(%integer char, %integer times)
#line 426 "regression-bugs-tmp/soap80-a.imp"
void DUPL( int CHAR, int TIMES )
#line 426 "regression-bugs-tmp/soap80-a.imp"
{
                                                                //    427  !***********************************************************************
                                                                //    428  !*    Dupl copies CHAR, TIMES times to the output file or channel.     *
                                                                //    429  !***********************************************************************
                                                                //    430        %integer i, last
#line 430 "regression-bugs-tmp/soap80-a.imp"
int I;
#line 430 "regression-bugs-tmp/soap80-a.imp"
int LAST;
                                                                //    431        %if times<=0 %then %return
#line 431 "regression-bugs-tmp/soap80-a.imp"
if (((TIMES) > (0))) goto L_0020;
#line 431 "regression-bugs-tmp/soap80-a.imp"
/* Remove %on %event handler here if present for this block */
return;
#line 431 "regression-bugs-tmp/soap80-a.imp"
L_0020:;
                                                                //    432        charsin = charsin+times
#line 432 "regression-bugs-tmp/soap80-a.imp"
CHARSIN = (((int)(CHARSIN)) + (TIMES));
                                                                //    433        %if stream#terminal %start
#line 433 "regression-bugs-tmp/soap80-a.imp"
if (((STREAM) == (1))) goto L_0021;
                                                                //    434           last = times+writeaddress-conad
#line 434 "regression-bugs-tmp/soap80-a.imp"
LAST = (((int)((((int)(TIMES)) + (WRITEADDRESS)))) - (CONAD));
                                                                //    435           %if last>filesize %then cnptf
#line 435 "regression-bugs-tmp/soap80-a.imp"
if (((LAST) <= (FILESIZE))) goto L_0022;
#line 435 "regression-bugs-tmp/soap80-a.imp"
CNPTF();
#line 435 "regression-bugs-tmp/soap80-a.imp"
L_0022:;
                                                                //    436           outrec_dataend = last
#line 436 "regression-bugs-tmp/soap80-a.imp"
OUTREC->DATAEND = LAST;
                                                                //    437        %finish
#line 437 "regression-bugs-tmp/soap80-a.imp"
L_0021:;
                                                                //    438        %for i = 1, 1, times %cycle
#line 438 "regression-bugs-tmp/soap80-a.imp"
{static int _initial, _increment, _final, _control;
_initial = 1; _increment = 1; _final = TIMES; I = _control = _initial;
if (((_final-_initial) % _increment) != 0) _imp_signal(5,1,0,"Illegal cycle I = 1, 1, TIMES");
I -= _increment; _control -= _increment;
L_0023:;
if (I == _final) goto L_0024;
I += _increment; _control += _increment;
if (I != _control) _imp_signal(4,2,0,"Corrupt control variable I"); /* FOR loop control variable corrupted */
}
                                                                //    439           %if stream=terminal %then printsymbol(char) %else %c
#line 439 "regression-bugs-tmp/soap80-a.imp"
if (((STREAM) != (1))) goto L_0026;
#line 439 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSYMBOL(CHAR);
#line 439 "regression-bugs-tmp/soap80-a.imp"
goto L_0027;
#line 439 "regression-bugs-tmp/soap80-a.imp"
L_0026:;
#line 439 "regression-bugs-tmp/soap80-a.imp"
*_imp_BYTEINTEGER(WRITEADDRESS) = CHAR;
#line 439 "regression-bugs-tmp/soap80-a.imp"
WRITEADDRESS = (((int)(WRITEADDRESS)) + (1));
#line 439 "regression-bugs-tmp/soap80-a.imp"
L_0027:;
                                                                //    440            byteinteger(writeaddress) = char %and writeaddress = writeaddress+1
                                                                //    441        %repeat
#line 441 "regression-bugs-tmp/soap80-a.imp"
goto L_0023;
#line 441 "regression-bugs-tmp/soap80-a.imp"
L_0024:;
                                                                //    442     %end
#line 442 "regression-bugs-tmp/soap80-a.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block DUPL at level 2
                                                                //    443  
                                                                //    444     %routine insert(%integer chars, lsflag, rsflag)
#line 444 "regression-bugs-tmp/soap80-a.imp"
void INSERT( int CHARS, int LSFLAG, int RSFLAG )
#line 444 "regression-bugs-tmp/soap80-a.imp"
{
                                                                //    445  !***********************************************************************
                                                                //    446  !*   This will place upto four characters into the OUTBUF buffer this  *
                                                                //    447  !*   includes the option of have spaces around the characters.         *
                                                                //    448  !***********************************************************************
                                                                //    449        %if lsflag=true#inconst %then outbuf(obp) = ' ' %and obp = obp+1
#line 449 "regression-bugs-tmp/soap80-a.imp"
if ((((LSFLAG) != (255))) || (((255) == (INCONST)))) goto L_0028;
#line 449 "regression-bugs-tmp/soap80-a.imp"
OUTBUF[OBP] = 32;
#line 449 "regression-bugs-tmp/soap80-a.imp"
OBP = (((int)(OBP)) + (1));
#line 449 "regression-bugs-tmp/soap80-a.imp"
L_0028:;
                                                                //    450        %cycle
#line 450 "regression-bugs-tmp/soap80-a.imp"
L_0029:;
                                                                //    451           outbuf(obp) = chars&X'FF'
#line 451 "regression-bugs-tmp/soap80-a.imp"
OUTBUF[OBP] = ((CHARS) & (255));
                                                                //    452           chars = chars>>8
#line 452 "regression-bugs-tmp/soap80-a.imp"
CHARS = (int)((((unsigned int)(CHARS)) >> (8)));
                                                                //    453           obp = obp+1
#line 453 "regression-bugs-tmp/soap80-a.imp"
OBP = (((int)(OBP)) + (1));
                                                                //    454        %repeat %until chars=0
#line 454 "regression-bugs-tmp/soap80-a.imp"
if (((CHARS) == (0))) goto L_002a;
#line 454 "regression-bugs-tmp/soap80-a.imp"
goto L_0029;
#line 454 "regression-bugs-tmp/soap80-a.imp"
L_002a:;
                                                                //    455        %if rsflag=true#inconst %then outbuf(obp) = ' ' %and obp = obp+1
#line 455 "regression-bugs-tmp/soap80-a.imp"
if ((((RSFLAG) != (255))) || (((255) == (INCONST)))) goto L_002c;
#line 455 "regression-bugs-tmp/soap80-a.imp"
OUTBUF[OBP] = 32;
#line 455 "regression-bugs-tmp/soap80-a.imp"
OBP = (((int)(OBP)) + (1));
#line 455 "regression-bugs-tmp/soap80-a.imp"
L_002c:;
                                                                //    456     %end
#line 456 "regression-bugs-tmp/soap80-a.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block INSERT at level 2
                                                                //    457  
                                                                //    458  
                                                                //    459  
                                                                //    460  
                                                                //    461     %routine closedown(%integer success)
#line 461 "regression-bugs-tmp/soap80-a.imp"
void CLOSEDOWN( int SUCCESS )
#line 461 "regression-bugs-tmp/soap80-a.imp"
{
                                                                //    462  !***********************************************************************
                                                                //    463  !*     Closedown is called when the program is to terminate execution  *
                                                                //    464  !*     and is to print a suitable message and to close the output file *
                                                                //    465  !*     if any.                                                         *
                                                                //    466  !***********************************************************************
                                                                //    467        %if success=true %start
#line 467 "regression-bugs-tmp/soap80-a.imp"
if (((SUCCESS) != (255))) goto L_002d;
                                                                //    468           printstring(itos(line,0)." lines have been processed".snl)
#line 468 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSTRING(_imp_join((_imp_string)_imp_join((_imp_string)_imp_ITOS(LINE, 0),(_imp_string)_imp_str_literal(" lines have been processed")),(_imp_string)_imp_SNL()));
                                                                //    469        %finish %else %start
#line 469 "regression-bugs-tmp/soap80-a.imp"
goto L_002e;
#line 469 "regression-bugs-tmp/soap80-a.imp"
L_002d:;
                                                                //    470           printstring("Soap80 fails :- ".itos(errors,0))
#line 470 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSTRING(_imp_join((_imp_string)_imp_str_literal("Soap80 fails :- "),(_imp_string)_imp_ITOS(ERRORS, 0)));
                                                                //    471           %if errors=1 %then printstring(" error.".snl) %else %c
#line 471 "regression-bugs-tmp/soap80-a.imp"
if (((ERRORS) != (1))) goto L_002f;
#line 471 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSTRING(_imp_join((_imp_string)_imp_str_literal(" error."),(_imp_string)_imp_SNL()));
#line 471 "regression-bugs-tmp/soap80-a.imp"
goto L_0030;
#line 471 "regression-bugs-tmp/soap80-a.imp"
L_002f:;
#line 471 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSTRING(_imp_join((_imp_string)_imp_str_literal(" errors."),(_imp_string)_imp_SNL()));
#line 471 "regression-bugs-tmp/soap80-a.imp"
L_0030:;
                                                                //    472            printstring(" errors.".snl)
                                                                //    473        %finish
#line 473 "regression-bugs-tmp/soap80-a.imp"
L_002e:;
                                                                //    474        ! Is there a file to close?
                                                                //    475        %if stream#terminal %start
#line 475 "regression-bugs-tmp/soap80-a.imp"
if (((STREAM) == (1))) goto L_0031;
                                                                //    476           outrec_dataend = writeaddress-conad
#line 476 "regression-bugs-tmp/soap80-a.imp"
OUTREC->DATAEND = (((int)(WRITEADDRESS)) - (CONAD));
                                                                //    477           trim(workfile, eflag)
#line 477 "regression-bugs-tmp/soap80-a.imp"
TRIM(WORKFILE, &EFLAG);
                                                                //    478           disconnect(workfile, eflag)
#line 478 "regression-bugs-tmp/soap80-a.imp"
DISCONNECT(&WORKFILE, &EFLAG);
                                                                //    479           %if stream=samefile %start
#line 479 "regression-bugs-tmp/soap80-a.imp"
if (((STREAM) != (3))) goto L_0032;
                                                                //    480              %if errors>0 %then %c
#line 480 "regression-bugs-tmp/soap80-a.imp"
if (((ERRORS) <= (0))) goto L_0033;
#line 480 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSTRING(_imp_join((_imp_string)_imp_join((_imp_string)_imp_join((_imp_string)_imp_join((_imp_string)_imp_join((_imp_string)_imp_str_literal("Output stored in "),(_imp_string)WORKFILE),(_imp_string)_imp_str_literal(", since ")),(_imp_string)INFILE),(_imp_string)_imp_str_literal(" contains errors.")),(_imp_string)_imp_SNL()));
#line 480 "regression-bugs-tmp/soap80-a.imp"
goto L_0034;
#line 480 "regression-bugs-tmp/soap80-a.imp"
L_0033:;
                                                                //    481               printstring("Output stored in ".workfile.", since ".infile. %c
                                                                //    482               " contains errors.".snl) %else %start
                                                                //    483                 newgen(workfile, outf, eflag)
#line 483 "regression-bugs-tmp/soap80-a.imp"
NEWGEN(&WORKFILE, &OUTF, &EFLAG);
                                                                //    484                 %if eflag#0 %start
#line 484 "regression-bugs-tmp/soap80-a.imp"
if (((EFLAG) == (0))) goto L_0035;
                                                                //    485                    printstring("Attempt to create ".outf." failed because ". %c
#line 485 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSTRING(_imp_join((_imp_string)_imp_join((_imp_string)_imp_join((_imp_string)_imp_join((_imp_string)_imp_str_literal("Attempt to create "),(_imp_string)OUTF),(_imp_string)_imp_str_literal(" failed because ")),(_imp_string)FAILUREMESSAGE(EFLAG)),(_imp_string)_imp_SNL()));
                                                                //    486                     failuremessage(eflag).snl)
                                                                //    487                    printstring("Output stored in ".workfile.".".snl)
#line 487 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSTRING(_imp_join((_imp_string)_imp_join((_imp_string)_imp_join((_imp_string)_imp_str_literal("Output stored in "),(_imp_string)WORKFILE),(_imp_string)_imp_str_literal(".")),(_imp_string)_imp_SNL()));
                                                                //    488                 %finish
#line 488 "regression-bugs-tmp/soap80-a.imp"
L_0035:;
                                                                //    489              %finish
#line 489 "regression-bugs-tmp/soap80-a.imp"
L_0034:;
                                                                //    490           %finish %else %start
#line 490 "regression-bugs-tmp/soap80-a.imp"
goto L_0036;
#line 490 "regression-bugs-tmp/soap80-a.imp"
L_0032:;
                                                                //    491              %if stream=device %start
#line 491 "regression-bugs-tmp/soap80-a.imp"
if (((STREAM) != (4))) goto L_0037;
                                                                //    492                 %if length(infile)>8 %then length(infile) = 8
#line 492 "regression-bugs-tmp/soap80-a.imp"
if (((*_imp_LENGTH(&INFILE)) <= (8))) goto L_0038;
#line 492 "regression-bugs-tmp/soap80-a.imp"
*_imp_LENGTH(&INFILE) = 8;
#line 492 "regression-bugs-tmp/soap80-a.imp"
L_0038:;
                                                                //    493                 sendfile(workfile, outf, "Soap80: ".infile, 1, 0, eflag)
#line 493 "regression-bugs-tmp/soap80-a.imp"
SENDFILE(WORKFILE, OUTF, _imp_join((_imp_string)_imp_str_literal("Soap80: "),(_imp_string)INFILE), 1, 0, &EFLAG);
                                                                //    494                 %if eflag#0 %then fail(eflag, 5)
#line 494 "regression-bugs-tmp/soap80-a.imp"
if (((EFLAG) == (0))) goto L_0039;
#line 494 "regression-bugs-tmp/soap80-a.imp"
FAIL(EFLAG, 5);
#line 494 "regression-bugs-tmp/soap80-a.imp"
L_0039:;
                                                                //    495              %finish
#line 495 "regression-bugs-tmp/soap80-a.imp"
L_0037:;
                                                                //    496           %finish
#line 496 "regression-bugs-tmp/soap80-a.imp"
L_0036:;
                                                                //    497        %finish
#line 497 "regression-bugs-tmp/soap80-a.imp"
L_0031:;
                                                                //    498        !! pprofile  REMOVED GT
                                                                //    499        %stop; ! Exit from SOAP80.
#line 499 "regression-bugs-tmp/soap80-a.imp"
exit(0);
                                                                //    500     %end
#line 500 "regression-bugs-tmp/soap80-a.imp"
return;
} // End of block CLOSEDOWN at level 2
                                                                //    501  
                                                                //    502     %routine punch
#line 502 "regression-bugs-tmp/soap80-a.imp"
void PUNCH( void )
#line 502 "regression-bugs-tmp/soap80-a.imp"
{
                                                                //    503  !***********************************************************************
                                                                //    504  !*     PUNCH is  for tranferring the contents of the OUTBUF array      *
                                                                //    505  !*   to the output file or channel, using TRANSFER, OUTSTRING and DUPL.*
                                                                //    506  !*                                                                     *
                                                                //    507  !*    PUNCH decides where to break a line if it is too long.           *
                                                                //    508  !***********************************************************************
                                                                //    509        %integer lst, bk, i, ubp, lbp, bbp, tp, inn, ch, curlend
#line 509 "regression-bugs-tmp/soap80-a.imp"
int LST;
#line 509 "regression-bugs-tmp/soap80-a.imp"
int BK;
#line 509 "regression-bugs-tmp/soap80-a.imp"
int I;
#line 509 "regression-bugs-tmp/soap80-a.imp"
int UBP;
#line 509 "regression-bugs-tmp/soap80-a.imp"
int LBP;
#line 509 "regression-bugs-tmp/soap80-a.imp"
int BBP;
#line 509 "regression-bugs-tmp/soap80-a.imp"
int TP;
#line 509 "regression-bugs-tmp/soap80-a.imp"
int INN;
#line 509 "regression-bugs-tmp/soap80-a.imp"
int CH;
#line 509 "regression-bugs-tmp/soap80-a.imp"
int CURLEND;
                                                                //    510        inn = in
#line 510 "regression-bugs-tmp/soap80-a.imp"
INN = IN;
                                                                //    511        inn = inn+1 %if 1<<ssalt&eisss=0 %and p_istat=true
#line 511 "regression-bugs-tmp/soap80-a.imp"
if (((((((1) << (SSALT))) & (98048))) != (0))) goto L_003a;
#line 511 "regression-bugs-tmp/soap80-a.imp"
if (((P.ISTAT) != (255))) goto L_003a;
#line 511 "regression-bugs-tmp/soap80-a.imp"
INN = (((int)(INN)) + (1));
#line 511 "regression-bugs-tmp/soap80-a.imp"
L_003a:;
                                                                //    512        %if ssalt#comment %and semicolon=false %then dupl(' ', p_tab(inn)-charsin)
#line 512 "regression-bugs-tmp/soap80-a.imp"
if (((SSALT) == (2))) goto L_003b;
#line 512 "regression-bugs-tmp/soap80-a.imp"
if (((SEMICOLON) != (0))) goto L_003b;
#line 512 "regression-bugs-tmp/soap80-a.imp"
DUPL(32, (((int)(P.TAB[INN])) - (CHARSIN)));
#line 512 "regression-bugs-tmp/soap80-a.imp"
L_003b:;
                                                                //    513        %if outbuf(obp-1)=';' %then semicolon = true %else semicolon = false
#line 513 "regression-bugs-tmp/soap80-a.imp"
if (((OUTBUF[(((int)(OBP)) - (1))]) != (59))) goto L_003c;
#line 513 "regression-bugs-tmp/soap80-a.imp"
SEMICOLON = 255;
#line 513 "regression-bugs-tmp/soap80-a.imp"
goto L_003d;
#line 513 "regression-bugs-tmp/soap80-a.imp"
L_003c:;
#line 513 "regression-bugs-tmp/soap80-a.imp"
SEMICOLON = 0;
#line 513 "regression-bugs-tmp/soap80-a.imp"
L_003d:;
                                                                //    514        %if semicolon=true %and p_line-20<charsin+obp %then %c
#line 514 "regression-bugs-tmp/soap80-a.imp"
if (((SEMICOLON) != (255))) goto L_003e;
#line 514 "regression-bugs-tmp/soap80-a.imp"
if ((((((int)(P.LINE)) - (20))) >= ((((int)(CHARSIN)) + (OBP))))) goto L_003e;
#line 514 "regression-bugs-tmp/soap80-a.imp"
SEMICOLON = 0;
#line 514 "regression-bugs-tmp/soap80-a.imp"
OUTBUF[(((int)(OBP)) - (1))] = 10;
#line 514 "regression-bugs-tmp/soap80-a.imp"
L_003e:;
                                                                //    515         semicolon = false %and outbuf(obp-1) = nl
                                                                //    516        %if semicolon=true %then outbuf(obp) = ' ' %and obp = obp+1
#line 516 "regression-bugs-tmp/soap80-a.imp"
if (((SEMICOLON) != (255))) goto L_003f;
#line 516 "regression-bugs-tmp/soap80-a.imp"
OUTBUF[OBP] = 32;
#line 516 "regression-bugs-tmp/soap80-a.imp"
OBP = (((int)(OBP)) + (1));
#line 516 "regression-bugs-tmp/soap80-a.imp"
L_003f:;
                                                                //    517  
                                                                //    518        %if increm=true %start
#line 518 "regression-bugs-tmp/soap80-a.imp"
if (((INCREM) != (255))) goto L_0040;
                                                                //    519           increm = false
#line 519 "regression-bugs-tmp/soap80-a.imp"
INCREM = 0;
                                                                //    520           ! Is indenting value too near the line length limit?
                                                                //    521           %if p_tab(in+1)+20>p_line %then fail(4, 2) %else in = in+1
#line 521 "regression-bugs-tmp/soap80-a.imp"
if ((((((int)(P.TAB[(((int)(IN)) + (1))])) + (20))) <= (P.LINE))) goto L_0041;
#line 521 "regression-bugs-tmp/soap80-a.imp"
FAIL(4, 2);
#line 521 "regression-bugs-tmp/soap80-a.imp"
goto L_0042;
#line 521 "regression-bugs-tmp/soap80-a.imp"
L_0041:;
#line 521 "regression-bugs-tmp/soap80-a.imp"
IN = (((int)(IN)) + (1));
#line 521 "regression-bugs-tmp/soap80-a.imp"
L_0042:;
                                                                //    522        %finish
#line 522 "regression-bugs-tmp/soap80-a.imp"
L_0040:;
                                                                //    523  
                                                                //    524        lst = 1
#line 524 "regression-bugs-tmp/soap80-a.imp"
LST = 1;
                                                                //    525  
                                                                //    526        %if ssalt=comment %start
#line 526 "regression-bugs-tmp/soap80-a.imp"
if (((SSALT) != (2))) goto L_0043;
                                                                //    527           ! Look for RS in comment.  If found, output as more than one line.
                                                                //    528           %cycle
#line 528 "regression-bugs-tmp/soap80-a.imp"
L_0044:;
                                                                //    529              %if chartype(sc(1))&rem=0 %or semicolon=true %start
#line 529 "regression-bugs-tmp/soap80-a.imp"
if (((((CHARTYPE[SC[1]]) & (1))) == (0))) goto L_0047;
#line 529 "regression-bugs-tmp/soap80-a.imp"
if (((SEMICOLON) != (255))) goto L_0048;
#line 529 "regression-bugs-tmp/soap80-a.imp"
L_0047:;
                                                                //    530                 ! Comment does not start in column 1.
                                                                //    531                 %if semicolon!colon=false %and p_movecom=false %then %c
#line 531 "regression-bugs-tmp/soap80-a.imp"
if (((((SEMICOLON) | (COLON))) != (0))) goto L_0049;
#line 531 "regression-bugs-tmp/soap80-a.imp"
if (((P.MOVECOM) != (0))) goto L_0049;
#line 531 "regression-bugs-tmp/soap80-a.imp"
DUPL(32, (((int)(P.TAB[INN])) - (CHARSIN)));
#line 531 "regression-bugs-tmp/soap80-a.imp"
goto L_004a;
#line 531 "regression-bugs-tmp/soap80-a.imp"
L_0049:;
#line 531 "regression-bugs-tmp/soap80-a.imp"
DUPL(32, (((int)(P.POSCOM)) - (CHARSIN)));
#line 531 "regression-bugs-tmp/soap80-a.imp"
L_004a:;
                                                                //    532                  dupl(' ', p_tab(inn)-charsin) %else dupl(' ', p_poscom-charsin)
                                                                //    533              %finish
#line 533 "regression-bugs-tmp/soap80-a.imp"
L_0048:;
                                                                //    534              i = lst
#line 534 "regression-bugs-tmp/soap80-a.imp"
I = LST;
                                                                //    535              i = i+1 %while i<obp %and outbuf(i)&127#rs
#line 535 "regression-bugs-tmp/soap80-a.imp"
L_004b:;
#line 535 "regression-bugs-tmp/soap80-a.imp"
if (((I) >= (OBP))) goto L_004c;
#line 535 "regression-bugs-tmp/soap80-a.imp"
if (((((OUTBUF[I]) & (127))) == (30))) goto L_004c;
#line 535 "regression-bugs-tmp/soap80-a.imp"
I = (((int)(I)) + (1));
#line 535 "regression-bugs-tmp/soap80-a.imp"
goto L_004b;
#line 535 "regression-bugs-tmp/soap80-a.imp"
L_004c:;
                                                                //    536              ->final part %if i=obp
#line 536 "regression-bugs-tmp/soap80-a.imp"
if (((I) != (OBP))) goto L_004e;
#line 536 "regression-bugs-tmp/soap80-a.imp"
goto U_1000;
#line 536 "regression-bugs-tmp/soap80-a.imp"
L_004e:;
                                                                //    537              transfer(lst, i-1)
#line 537 "regression-bugs-tmp/soap80-a.imp"
TRANSFER(LST, (((int)(I)) - (1)));
                                                                //    538              %if outbuf(i-1)&127=',' %then outstring(snl) %else %c
#line 538 "regression-bugs-tmp/soap80-a.imp"
if (((((OUTBUF[(((int)(I)) - (1))]) & (127))) != (44))) goto L_004f;
#line 538 "regression-bugs-tmp/soap80-a.imp"
OUTSTRING(_imp_SNL());
#line 538 "regression-bugs-tmp/soap80-a.imp"
goto L_0050;
#line 538 "regression-bugs-tmp/soap80-a.imp"
L_004f:;
#line 538 "regression-bugs-tmp/soap80-a.imp"
OUTSTRING(_imp_join((_imp_string)PERCENTC,(_imp_string)_imp_SNL()));
#line 538 "regression-bugs-tmp/soap80-a.imp"
L_0050:;
                                                                //    539               outstring(percentc.snl)
                                                                //    540              i = i+1 %until i=obp %or outbuf(i)#' '
#line 540 "regression-bugs-tmp/soap80-a.imp"
L_0051:;
#line 540 "regression-bugs-tmp/soap80-a.imp"
I = (((int)(I)) + (1));
#line 540 "regression-bugs-tmp/soap80-a.imp"
if (((I) == (OBP))) goto L_0052;
#line 540 "regression-bugs-tmp/soap80-a.imp"
if (((OUTBUF[I]) != (32))) goto L_0052;
#line 540 "regression-bugs-tmp/soap80-a.imp"
goto L_0051;
#line 540 "regression-bugs-tmp/soap80-a.imp"
L_0052:;
                                                                //    541              lst = i
#line 541 "regression-bugs-tmp/soap80-a.imp"
LST = I;
                                                                //    542           %repeat
#line 542 "regression-bugs-tmp/soap80-a.imp"
goto L_0044;
                                                                //    543        %finish
#line 543 "regression-bugs-tmp/soap80-a.imp"
L_0043:;
                                                                //    544  
                                                                //    545        %cycle
#line 545 "regression-bugs-tmp/soap80-a.imp"
L_0054:;
                                                                //    546           ubp = p_line+lst-charsin-4; ! RHMOST BREAK POINT
#line 546 "regression-bugs-tmp/soap80-a.imp"
UBP = (((int)((((int)((((int)(P.LINE)) + (LST)))) - (CHARSIN)))) - (4));
                                                                //    547           lbp = (ubp+lst)//2
#line 547 "regression-bugs-tmp/soap80-a.imp"
LBP = (long)((long)(((((int)(UBP)) + (LST)))) / (long)((int)(2)));
                                                                //    548           bbp = (ubp+3*lst)//4
#line 548 "regression-bugs-tmp/soap80-a.imp"
BBP = (long)((long)((((UBP) + ((int)((((int)(3)) * (LST))))))) / (long)((int)(4)));
                                                                //    549           curlend = 0
#line 549 "regression-bugs-tmp/soap80-a.imp"
CURLEND = 0;
                                                                //    550  
                                                                //    551           ! First check for nl in string const or list
                                                                //    552           %for bk = lst, 1, ubp+3 %cycle
#line 552 "regression-bugs-tmp/soap80-a.imp"
{static int _initial, _increment, _final, _control;
_initial = LST; _increment = 1; _final = (((int)(UBP)) + (3)); BK = _control = _initial;
if (((_final-_initial) % _increment) != 0) _imp_signal(5,1,0,"Illegal cycle BK = LST, 1, (((int)(UBP)) + (3))");
BK -= _increment; _control -= _increment;
L_0057:;
if (BK == _final) goto L_0058;
BK += _increment; _control += _increment;
if (BK != _control) _imp_signal(4,2,0,"Corrupt control variable BK"); /* FOR loop control variable corrupted */
}
                                                                //    553              %exit %if bk>=obp
#line 553 "regression-bugs-tmp/soap80-a.imp"
if (((BK) < (OBP))) goto L_005a;
#line 553 "regression-bugs-tmp/soap80-a.imp"
goto L_0058;
#line 553 "regression-bugs-tmp/soap80-a.imp"
L_005a:;
                                                                //    554              ch = outbuf(bk)
#line 554 "regression-bugs-tmp/soap80-a.imp"
CH = OUTBUF[BK];
                                                                //    555              %if ch&127=nl %or (ch&127=rs %and ssalt=ownalt %and %c
#line 555 "regression-bugs-tmp/soap80-a.imp"
if (((((CH) & (127))) == (10))) goto L_0053;
#line 555 "regression-bugs-tmp/soap80-a.imp"
if (((((CH) & (127))) != (30))) goto L_005b;
#line 555 "regression-bugs-tmp/soap80-a.imp"
if (((SSALT) != (12))) goto L_005b;
#line 555 "regression-bugs-tmp/soap80-a.imp"
if (((P.LCLIST) != (255))) goto L_005b;
#line 555 "regression-bugs-tmp/soap80-a.imp"
L_0053:;
#line 555 "regression-bugs-tmp/soap80-a.imp"
goto U_1001;
#line 555 "regression-bugs-tmp/soap80-a.imp"
L_005b:;
                                                                //    556               p_lclist=true) %then ->printpart
                                                                //    557           %repeat
#line 557 "regression-bugs-tmp/soap80-a.imp"
goto L_0057;
#line 557 "regression-bugs-tmp/soap80-a.imp"
L_0058:;
                                                                //    558           %if obp<ubp+3 %then %exit; ! 3 FOR " %C"
#line 558 "regression-bugs-tmp/soap80-a.imp"
if (((OBP) >= ((((int)(UBP)) + (3))))) goto L_005c;
#line 558 "regression-bugs-tmp/soap80-a.imp"
goto L_0055;
#line 558 "regression-bugs-tmp/soap80-a.imp"
L_005c:;
                                                                //    559           %for bk = ubp, -1, bbp %cycle; ! CHECK FOR PRIMARY BREAK POINTS
#line 559 "regression-bugs-tmp/soap80-a.imp"
{static int _initial, _increment, _final, _control;
_initial = UBP; _increment = (-1); _final = BBP; BK = _control = _initial;
if (((_final-_initial) % _increment) != 0) _imp_signal(5,1,0,"Illegal cycle BK = UBP, (-1), BBP");
BK -= _increment; _control -= _increment;
L_005d:;
if (BK == _final) goto L_005e;
BK += _increment; _control += _increment;
if (BK != _control) _imp_signal(4,2,0,"Corrupt control variable BK"); /* FOR loop control variable corrupted */
}
                                                                //    560              %if outbuf(bk)&bpoint#0 %start
#line 560 "regression-bugs-tmp/soap80-a.imp"
if (((((OUTBUF[BK]) & (1024))) == (0))) goto L_0060;
                                                                //    561                 bk = bk+1 %while outbuf(bk+1)=' '
#line 561 "regression-bugs-tmp/soap80-a.imp"
L_0061:;
#line 561 "regression-bugs-tmp/soap80-a.imp"
if (((OUTBUF[(((int)(BK)) + (1))]) != (32))) goto L_0062;
#line 561 "regression-bugs-tmp/soap80-a.imp"
BK = (((int)(BK)) + (1));
#line 561 "regression-bugs-tmp/soap80-a.imp"
goto L_0061;
#line 561 "regression-bugs-tmp/soap80-a.imp"
L_0062:;
                                                                //    562                 ->printpart
#line 562 "regression-bugs-tmp/soap80-a.imp"
goto U_1001;
                                                                //    563              %finish
#line 563 "regression-bugs-tmp/soap80-a.imp"
L_0060:;
                                                                //    564           %repeat
#line 564 "regression-bugs-tmp/soap80-a.imp"
goto L_005d;
#line 564 "regression-bugs-tmp/soap80-a.imp"
L_005e:;
                                                                //    565           %for bk = ubp, -1, bbp %cycle; ! CHECK FOR SECONDARY BREAK POINT
#line 565 "regression-bugs-tmp/soap80-a.imp"
{static int _initial, _increment, _final, _control;
_initial = UBP; _increment = (-1); _final = BBP; BK = _control = _initial;
if (((_final-_initial) % _increment) != 0) _imp_signal(5,1,0,"Illegal cycle BK = UBP, (-1), BBP");
BK -= _increment; _control -= _increment;
L_0064:;
if (BK == _final) goto L_0065;
BK += _increment; _control += _increment;
if (BK != _control) _imp_signal(4,2,0,"Corrupt control variable BK"); /* FOR loop control variable corrupted */
}
                                                                //    566              %if outbuf(bk)&bpoint2#0 %start
#line 566 "regression-bugs-tmp/soap80-a.imp"
if (((((OUTBUF[BK]) & (2048))) == (0))) goto L_0067;
                                                                //    567                 bk = bk+1 %while outbuf(bk+1)=' '
#line 567 "regression-bugs-tmp/soap80-a.imp"
L_0068:;
#line 567 "regression-bugs-tmp/soap80-a.imp"
if (((OUTBUF[(((int)(BK)) + (1))]) != (32))) goto L_0069;
#line 567 "regression-bugs-tmp/soap80-a.imp"
BK = (((int)(BK)) + (1));
#line 567 "regression-bugs-tmp/soap80-a.imp"
goto L_0068;
#line 567 "regression-bugs-tmp/soap80-a.imp"
L_0069:;
                                                                //    568                 ->printpart
#line 568 "regression-bugs-tmp/soap80-a.imp"
goto U_1001;
                                                                //    569              %finish
#line 569 "regression-bugs-tmp/soap80-a.imp"
L_0067:;
                                                                //    570           %repeat
#line 570 "regression-bugs-tmp/soap80-a.imp"
goto L_0064;
#line 570 "regression-bugs-tmp/soap80-a.imp"
L_0065:;
                                                                //    571           %for bk = ubp, -1, bbp %cycle
#line 571 "regression-bugs-tmp/soap80-a.imp"
{static int _initial, _increment, _final, _control;
_initial = UBP; _increment = (-1); _final = BBP; BK = _control = _initial;
if (((_final-_initial) % _increment) != 0) _imp_signal(5,1,0,"Illegal cycle BK = UBP, (-1), BBP");
BK -= _increment; _control -= _increment;
L_006b:;
if (BK == _final) goto L_006c;
BK += _increment; _control += _increment;
if (BK != _control) _imp_signal(4,2,0,"Corrupt control variable BK"); /* FOR loop control variable corrupted */
}
                                                                //    572              %if outbuf(bk)=',' %then ->printpart
#line 572 "regression-bugs-tmp/soap80-a.imp"
if (((OUTBUF[BK]) != (44))) goto L_006e;
#line 572 "regression-bugs-tmp/soap80-a.imp"
goto U_1001;
#line 572 "regression-bugs-tmp/soap80-a.imp"
L_006e:;
                                                                //    573           %repeat
#line 573 "regression-bugs-tmp/soap80-a.imp"
goto L_006b;
#line 573 "regression-bugs-tmp/soap80-a.imp"
L_006c:;
                                                                //    574           %if outbuf(ubp)&incurly#0 %start; ! IN A CURLY COMMENT
#line 574 "regression-bugs-tmp/soap80-a.imp"
if (((((OUTBUF[UBP]) & (512))) == (0))) goto L_006f;
                                                                //    575              curlend = 1
#line 575 "regression-bugs-tmp/soap80-a.imp"
CURLEND = 1;
                                                                //    576              %for bk = ubp, 1, obp-2 %cycle
#line 576 "regression-bugs-tmp/soap80-a.imp"
{static int _initial, _increment, _final, _control;
_initial = UBP; _increment = 1; _final = (((int)(OBP)) - (2)); BK = _control = _initial;
if (((_final-_initial) % _increment) != 0) _imp_signal(5,1,0,"Illegal cycle BK = UBP, 1, (((int)(OBP)) - (2))");
BK -= _increment; _control -= _increment;
L_0070:;
if (BK == _final) goto L_0071;
BK += _increment; _control += _increment;
if (BK != _control) _imp_signal(4,2,0,"Corrupt control variable BK"); /* FOR loop control variable corrupted */
}
                                                                //    577                 curlend = 0 %and %exit %if outbuf(bk)&incurly=0
#line 577 "regression-bugs-tmp/soap80-a.imp"
if (((((OUTBUF[BK]) & (512))) != (0))) goto L_0073;
#line 577 "regression-bugs-tmp/soap80-a.imp"
CURLEND = 0;
#line 577 "regression-bugs-tmp/soap80-a.imp"
goto L_0071;
#line 577 "regression-bugs-tmp/soap80-a.imp"
L_0073:;
                                                                //    578              %repeat
#line 578 "regression-bugs-tmp/soap80-a.imp"
goto L_0070;
#line 578 "regression-bugs-tmp/soap80-a.imp"
L_0071:;
                                                                //    579              ! curlend indicates whether the curly comment goes to the end of the line.
                                                                //    580              %for bk = ubp, -1, bbp %cycle
#line 580 "regression-bugs-tmp/soap80-a.imp"
{static int _initial, _increment, _final, _control;
_initial = UBP; _increment = (-1); _final = BBP; BK = _control = _initial;
if (((_final-_initial) % _increment) != 0) _imp_signal(5,1,0,"Illegal cycle BK = UBP, (-1), BBP");
BK -= _increment; _control -= _increment;
L_0074:;
if (BK == _final) goto L_0075;
BK += _increment; _control += _increment;
if (BK != _control) _imp_signal(4,2,0,"Corrupt control variable BK"); /* FOR loop control variable corrupted */
}
                                                                //    581                 %if outbuf(bk)&incurly=0 %then bk = bk-1 %and ->printpart
#line 581 "regression-bugs-tmp/soap80-a.imp"
if (((((OUTBUF[BK]) & (512))) != (0))) goto L_0077;
#line 581 "regression-bugs-tmp/soap80-a.imp"
BK = (((int)(BK)) - (1));
#line 581 "regression-bugs-tmp/soap80-a.imp"
goto U_1001;
#line 581 "regression-bugs-tmp/soap80-a.imp"
L_0077:;
                                                                //    582              %repeat
#line 582 "regression-bugs-tmp/soap80-a.imp"
goto L_0074;
#line 582 "regression-bugs-tmp/soap80-a.imp"
L_0075:;
                                                                //    583              ->final part %if curlend=1; ! Overlong curly comment.
#line 583 "regression-bugs-tmp/soap80-a.imp"
if (((CURLEND) != (1))) goto L_0078;
#line 583 "regression-bugs-tmp/soap80-a.imp"
goto U_1000;
#line 583 "regression-bugs-tmp/soap80-a.imp"
L_0078:;
                                                                //    584              %for bk = ubp, 1, obp-2 %cycle
#line 584 "regression-bugs-tmp/soap80-a.imp"
{static int _initial, _increment, _final, _control;
_initial = UBP; _increment = 1; _final = (((int)(OBP)) - (2)); BK = _control = _initial;
if (((_final-_initial) % _increment) != 0) _imp_signal(5,1,0,"Illegal cycle BK = UBP, 1, (((int)(OBP)) - (2))");
BK -= _increment; _control -= _increment;
L_0079:;
if (BK == _final) goto L_007a;
BK += _increment; _control += _increment;
if (BK != _control) _imp_signal(4,2,0,"Corrupt control variable BK"); /* FOR loop control variable corrupted */
}
                                                                //    585                 %if outbuf(bk)&incurly=0 %then ->printpart
#line 585 "regression-bugs-tmp/soap80-a.imp"
if (((((OUTBUF[BK]) & (512))) != (0))) goto L_007c;
#line 585 "regression-bugs-tmp/soap80-a.imp"
goto U_1001;
#line 585 "regression-bugs-tmp/soap80-a.imp"
L_007c:;
                                                                //    586              %repeat
#line 586 "regression-bugs-tmp/soap80-a.imp"
goto L_0079;
#line 586 "regression-bugs-tmp/soap80-a.imp"
L_007a:;
                                                                //    587           %finish
#line 587 "regression-bugs-tmp/soap80-a.imp"
L_006f:;
                                                                //    588           %for bk = ubp+1, -1, lbp %cycle
#line 588 "regression-bugs-tmp/soap80-a.imp"
{static int _initial, _increment, _final, _control;
_initial = (((int)(UBP)) + (1)); _increment = (-1); _final = LBP; BK = _control = _initial;
if (((_final-_initial) % _increment) != 0) _imp_signal(5,1,0,"Illegal cycle BK = (((int)(UBP)) + (1)), (-1), LBP");
BK -= _increment; _control -= _increment;
L_007d:;
if (BK == _final) goto L_007e;
BK += _increment; _control += _increment;
if (BK != _control) _imp_signal(4,2,0,"Corrupt control variable BK"); /* FOR loop control variable corrupted */
}
                                                                //    589              %if outbuf(bk)=' ' %and outbuf(bk-1)&underline#0 %then ->printpart
#line 589 "regression-bugs-tmp/soap80-a.imp"
if (((OUTBUF[BK]) != (32))) goto L_0080;
#line 589 "regression-bugs-tmp/soap80-a.imp"
if (((((OUTBUF[(((int)(BK)) - (1))]) & (128))) == (0))) goto L_0080;
#line 589 "regression-bugs-tmp/soap80-a.imp"
goto U_1001;
#line 589 "regression-bugs-tmp/soap80-a.imp"
L_0080:;
                                                                //    590           %repeat
#line 590 "regression-bugs-tmp/soap80-a.imp"
goto L_007d;
#line 590 "regression-bugs-tmp/soap80-a.imp"
L_007e:;
                                                                //    591           %if p_spacnam=false %start; ! MUST OMIT IF NAMES ARE SPACED
#line 591 "regression-bugs-tmp/soap80-a.imp"
if (((P.SPACNAM) != (0))) goto L_0081;
                                                                //    592              %for bk = ubp+1, -1, lbp %cycle
#line 592 "regression-bugs-tmp/soap80-a.imp"
{static int _initial, _increment, _final, _control;
_initial = (((int)(UBP)) + (1)); _increment = (-1); _final = LBP; BK = _control = _initial;
if (((_final-_initial) % _increment) != 0) _imp_signal(5,1,0,"Illegal cycle BK = (((int)(UBP)) + (1)), (-1), LBP");
BK -= _increment; _control -= _increment;
L_0082:;
if (BK == _final) goto L_0083;
BK += _increment; _control += _increment;
if (BK != _control) _imp_signal(4,2,0,"Corrupt control variable BK"); /* FOR loop control variable corrupted */
}
                                                                //    593                 %if outbuf(bk)=' ' %then ->printpart
#line 593 "regression-bugs-tmp/soap80-a.imp"
if (((OUTBUF[BK]) != (32))) goto L_0085;
#line 593 "regression-bugs-tmp/soap80-a.imp"
goto U_1001;
#line 593 "regression-bugs-tmp/soap80-a.imp"
L_0085:;
                                                                //    594              %repeat
#line 594 "regression-bugs-tmp/soap80-a.imp"
goto L_0082;
#line 594 "regression-bugs-tmp/soap80-a.imp"
L_0083:;
                                                                //    595           %finish
#line 595 "regression-bugs-tmp/soap80-a.imp"
L_0081:;
                                                                //    596           %for bk = ubp, -1, lbp %cycle
#line 596 "regression-bugs-tmp/soap80-a.imp"
{static int _initial, _increment, _final, _control;
_initial = UBP; _increment = (-1); _final = LBP; BK = _control = _initial;
if (((_final-_initial) % _increment) != 0) _imp_signal(5,1,0,"Illegal cycle BK = UBP, (-1), LBP");
BK -= _increment; _control -= _increment;
L_0086:;
if (BK == _final) goto L_0087;
BK += _increment; _control += _increment;
if (BK != _control) _imp_signal(4,2,0,"Corrupt control variable BK"); /* FOR loop control variable corrupted */
}
                                                                //    597              %if outbuf(bk)='%' %then bk = bk-1 %and ->printpart
#line 597 "regression-bugs-tmp/soap80-a.imp"
if (((OUTBUF[BK]) != (37))) goto L_0089;
#line 597 "regression-bugs-tmp/soap80-a.imp"
BK = (((int)(BK)) - (1));
#line 597 "regression-bugs-tmp/soap80-a.imp"
goto U_1001;
#line 597 "regression-bugs-tmp/soap80-a.imp"
L_0089:;
                                                                //    598           %repeat
#line 598 "regression-bugs-tmp/soap80-a.imp"
goto L_0086;
#line 598 "regression-bugs-tmp/soap80-a.imp"
L_0087:;
                                                                //    599           %for bk = ubp, -1, lbp %cycle
#line 599 "regression-bugs-tmp/soap80-a.imp"
{static int _initial, _increment, _final, _control;
_initial = UBP; _increment = (-1); _final = LBP; BK = _control = _initial;
if (((_final-_initial) % _increment) != 0) _imp_signal(5,1,0,"Illegal cycle BK = UBP, (-1), LBP");
BK -= _increment; _control -= _increment;
L_008a:;
if (BK == _final) goto L_008b;
BK += _increment; _control += _increment;
if (BK != _control) _imp_signal(4,2,0,"Corrupt control variable BK"); /* FOR loop control variable corrupted */
}
                                                                //    600              %if outbuf(bk)='.' %or outbuf(bk)=')' %then ->printpart
#line 600 "regression-bugs-tmp/soap80-a.imp"
if (((OUTBUF[BK]) == (46))) goto L_0084;
#line 600 "regression-bugs-tmp/soap80-a.imp"
if (((OUTBUF[BK]) != (41))) goto L_008d;
#line 600 "regression-bugs-tmp/soap80-a.imp"
L_0084:;
#line 600 "regression-bugs-tmp/soap80-a.imp"
goto U_1001;
#line 600 "regression-bugs-tmp/soap80-a.imp"
L_008d:;
                                                                //    601              %if outbuf(bk)='(' %then bk = bk-1 %and ->printpart
#line 601 "regression-bugs-tmp/soap80-a.imp"
if (((OUTBUF[BK]) != (40))) goto L_008e;
#line 601 "regression-bugs-tmp/soap80-a.imp"
BK = (((int)(BK)) - (1));
#line 601 "regression-bugs-tmp/soap80-a.imp"
goto U_1001;
#line 601 "regression-bugs-tmp/soap80-a.imp"
L_008e:;
                                                                //    602           %repeat
#line 602 "regression-bugs-tmp/soap80-a.imp"
goto L_008a;
#line 602 "regression-bugs-tmp/soap80-a.imp"
L_008b:;
                                                                //    603           %if outbuf(ubp)&instring#0 %start
#line 603 "regression-bugs-tmp/soap80-a.imp"
if (((((OUTBUF[UBP]) & (256))) == (0))) goto L_008f;
                                                                //    604              ! Break point is inside a string.
                                                                //    605              %for bk = ubp, -1, bbp %cycle
#line 605 "regression-bugs-tmp/soap80-a.imp"
{static int _initial, _increment, _final, _control;
_initial = UBP; _increment = (-1); _final = BBP; BK = _control = _initial;
if (((_final-_initial) % _increment) != 0) _imp_signal(5,1,0,"Illegal cycle BK = UBP, (-1), BBP");
BK -= _increment; _control -= _increment;
L_0090:;
if (BK == _final) goto L_0091;
BK += _increment; _control += _increment;
if (BK != _control) _imp_signal(4,2,0,"Corrupt control variable BK"); /* FOR loop control variable corrupted */
}
                                                                //    606                 %if outbuf(bk)=',' %or outbuf(bk)='.' %or outbuf(bk)='=' %then %c
#line 606 "regression-bugs-tmp/soap80-a.imp"
if (((OUTBUF[BK]) == (44))) goto L_006a;
#line 606 "regression-bugs-tmp/soap80-a.imp"
if (((OUTBUF[BK]) == (46))) goto L_006a;
#line 606 "regression-bugs-tmp/soap80-a.imp"
if (((OUTBUF[BK]) != (61))) goto L_0093;
#line 606 "regression-bugs-tmp/soap80-a.imp"
L_006a:;
#line 606 "regression-bugs-tmp/soap80-a.imp"
goto U_1001;
#line 606 "regression-bugs-tmp/soap80-a.imp"
L_0093:;
                                                                //    607                  ->printpart
                                                                //    608              %repeat
#line 608 "regression-bugs-tmp/soap80-a.imp"
goto L_0090;
#line 608 "regression-bugs-tmp/soap80-a.imp"
L_0091:;
                                                                //    609              %for i = ubp, -1, lst+3 %cycle
#line 609 "regression-bugs-tmp/soap80-a.imp"
{static int _initial, _increment, _final, _control;
_initial = UBP; _increment = (-1); _final = (((int)(LST)) + (3)); I = _control = _initial;
if (((_final-_initial) % _increment) != 0) _imp_signal(5,1,0,"Illegal cycle I = UBP, (-1), (((int)(LST)) + (3))");
I -= _increment; _control -= _increment;
L_0094:;
if (I == _final) goto L_0095;
I += _increment; _control += _increment;
if (I != _control) _imp_signal(4,2,0,"Corrupt control variable I"); /* FOR loop control variable corrupted */
}
                                                                //    610                 %if outbuf(i)=dquotes %then bk = i-1 %and ->printpart
#line 610 "regression-bugs-tmp/soap80-a.imp"
if (((OUTBUF[I]) != (34))) goto L_0097;
#line 610 "regression-bugs-tmp/soap80-a.imp"
BK = (((int)(I)) - (1));
#line 610 "regression-bugs-tmp/soap80-a.imp"
goto U_1001;
#line 610 "regression-bugs-tmp/soap80-a.imp"
L_0097:;
                                                                //    611              %repeat
#line 611 "regression-bugs-tmp/soap80-a.imp"
goto L_0094;
#line 611 "regression-bugs-tmp/soap80-a.imp"
L_0095:;
                                                                //    612              %for i = bk, -1, lst %cycle
#line 612 "regression-bugs-tmp/soap80-a.imp"
{static int _initial, _increment, _final, _control;
_initial = BK; _increment = (-1); _final = LST; I = _control = _initial;
if (((_final-_initial) % _increment) != 0) _imp_signal(5,1,0,"Illegal cycle I = BK, (-1), LST");
I -= _increment; _control -= _increment;
L_0098:;
if (I == _final) goto L_0099;
I += _increment; _control += _increment;
if (I != _control) _imp_signal(4,2,0,"Corrupt control variable I"); /* FOR loop control variable corrupted */
}
                                                                //    613                 %if outbuf(i)=squotes %start
#line 613 "regression-bugs-tmp/soap80-a.imp"
if (((OUTBUF[I]) != (39))) goto L_009b;
                                                                //    614                    %if chartype(outbuf(i-1))&constart=0 %then bk = i-1 %else %c
#line 614 "regression-bugs-tmp/soap80-a.imp"
if (((((CHARTYPE[OUTBUF[(((int)(I)) - (1))]]) & (2))) != (0))) goto L_009c;
#line 614 "regression-bugs-tmp/soap80-a.imp"
BK = (((int)(I)) - (1));
#line 614 "regression-bugs-tmp/soap80-a.imp"
goto L_009d;
#line 614 "regression-bugs-tmp/soap80-a.imp"
L_009c:;
#line 614 "regression-bugs-tmp/soap80-a.imp"
BK = (((int)(I)) - (2));
#line 614 "regression-bugs-tmp/soap80-a.imp"
L_009d:;
                                                                //    615                     bk = i-2
                                                                //    616                    ->printpart
#line 616 "regression-bugs-tmp/soap80-a.imp"
goto U_1001;
                                                                //    617                 %finish
#line 617 "regression-bugs-tmp/soap80-a.imp"
L_009b:;
                                                                //    618              %repeat
#line 618 "regression-bugs-tmp/soap80-a.imp"
goto L_0098;
#line 618 "regression-bugs-tmp/soap80-a.imp"
L_0099:;
                                                                //    619              ! Break string.
                                                                //    620              printstring("Line:".itos(line,0)." problem:")
#line 620 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSTRING(_imp_join((_imp_string)_imp_join((_imp_string)_imp_str_literal("Line:"),(_imp_string)_imp_ITOS(LINE, 0)),(_imp_string)_imp_str_literal(" problem:")));
                                                                //    621              printsymbol(outbuf(i)) %for i = lst, 1, ubp
#line 621 "regression-bugs-tmp/soap80-a.imp"
{static int _initial, _increment, _final, _control;
_initial = LST; _increment = 1; _final = UBP; I = _control = _initial;
if (((_final-_initial) % _increment) != 0) _imp_signal(5,1,0,"Illegal cycle I = LST, 1, UBP");
I -= _increment; _control -= _increment;
L_009e:;
if (I == _final) goto L_009f;
I += _increment; _control += _increment;
if (I != _control) _imp_signal(4,2,0,"Corrupt control variable I"); /* FOR loop control variable corrupted */
}
#line 621 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSYMBOL(OUTBUF[I]);
#line 621 "regression-bugs-tmp/soap80-a.imp"
goto L_009e;
#line 621 "regression-bugs-tmp/soap80-a.imp"
L_009f:;
                                                                //    622              printstring(snl)
#line 622 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSTRING(_imp_SNL());
                                                                //    623              tp = ubp-1
#line 623 "regression-bugs-tmp/soap80-a.imp"
TP = (((int)(UBP)) - (1));
                                                                //    624              transfer(lst, tp)
#line 624 "regression-bugs-tmp/soap80-a.imp"
TRANSFER(LST, TP);
                                                                //    625              outstring(""".".percentc.snl)
#line 625 "regression-bugs-tmp/soap80-a.imp"
OUTSTRING(_imp_join((_imp_string)_imp_join((_imp_string)_imp_str_literal("\"."),(_imp_string)PERCENTC),(_imp_string)_imp_SNL()));
                                                                //    626              dupl(' ', p_tab(inn)+p_icontin)
#line 626 "regression-bugs-tmp/soap80-a.imp"
DUPL(32, (((unsigned char)(P.TAB[INN])) + (P.ICONTIN)));
                                                                //    627              outstring("""")
#line 627 "regression-bugs-tmp/soap80-a.imp"
OUTSTRING(_imp_str_literal("\""));
                                                                //    628              lst = tp+1
#line 628 "regression-bugs-tmp/soap80-a.imp"
LST = (((int)(TP)) + (1));
                                                                //    629              %continue
#line 629 "regression-bugs-tmp/soap80-a.imp"
goto L_0056;
                                                                //    630           %finish %else bk = ubp
#line 630 "regression-bugs-tmp/soap80-a.imp"
L_008f:;
#line 630 "regression-bugs-tmp/soap80-a.imp"
BK = UBP;
                                                                //    631           printstring("Line:".itos(line,0)." problem:")
#line 631 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSTRING(_imp_join((_imp_string)_imp_join((_imp_string)_imp_str_literal("Line:"),(_imp_string)_imp_ITOS(LINE, 0)),(_imp_string)_imp_str_literal(" problem:")));
                                                                //    632           printsymbol(outbuf(i)) %for i = lst, 1, ubp
#line 632 "regression-bugs-tmp/soap80-a.imp"
{static int _initial, _increment, _final, _control;
_initial = LST; _increment = 1; _final = UBP; I = _control = _initial;
if (((_final-_initial) % _increment) != 0) _imp_signal(5,1,0,"Illegal cycle I = LST, 1, UBP");
I -= _increment; _control -= _increment;
L_00a1:;
if (I == _final) goto L_00a2;
I += _increment; _control += _increment;
if (I != _control) _imp_signal(4,2,0,"Corrupt control variable I"); /* FOR loop control variable corrupted */
}
#line 632 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSYMBOL(OUTBUF[I]);
#line 632 "regression-bugs-tmp/soap80-a.imp"
goto L_00a1;
#line 632 "regression-bugs-tmp/soap80-a.imp"
L_00a2:;
                                                                //    633           printstring(snl)
#line 633 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSTRING(_imp_SNL());
                                                                //    634  printpart:
#line 634 "regression-bugs-tmp/soap80-a.imp"
U_1001:;
                                                                //    635           i = bk
#line 635 "regression-bugs-tmp/soap80-a.imp"
I = BK;
                                                                //    636           i = i-1 %while outbuf(i)=' ' %or outbuf(i)&127=rs
#line 636 "regression-bugs-tmp/soap80-a.imp"
L_00a4:;
#line 636 "regression-bugs-tmp/soap80-a.imp"
if (((OUTBUF[I]) == (32))) goto L_00a6;
#line 636 "regression-bugs-tmp/soap80-a.imp"
if (((((OUTBUF[I]) & (127))) != (30))) goto L_00a5;
#line 636 "regression-bugs-tmp/soap80-a.imp"
L_00a6:;
#line 636 "regression-bugs-tmp/soap80-a.imp"
I = (((int)(I)) - (1));
#line 636 "regression-bugs-tmp/soap80-a.imp"
goto L_00a4;
#line 636 "regression-bugs-tmp/soap80-a.imp"
L_00a5:;
                                                                //    637           transfer(lst, i)
#line 637 "regression-bugs-tmp/soap80-a.imp"
TRANSFER(LST, I);
                                                                //    638           %if i<lst %or outbuf(i)&127#nl %start; ! NOT NATURAL BREAK
#line 638 "regression-bugs-tmp/soap80-a.imp"
if (((I) < (LST))) goto L_00a7;
#line 638 "regression-bugs-tmp/soap80-a.imp"
if (((((OUTBUF[I]) & (127))) == (10))) goto L_00a8;
#line 638 "regression-bugs-tmp/soap80-a.imp"
L_00a7:;
                                                                //    639              %if outbuf(i)&127#',' %and outbuf(bk)#rs!128 %and curlend=0 %then %c
#line 639 "regression-bugs-tmp/soap80-a.imp"
if (((((OUTBUF[I]) & (127))) == (44))) goto L_00a9;
#line 639 "regression-bugs-tmp/soap80-a.imp"
if (((OUTBUF[BK]) == (((30) | (128))))) goto L_00a9;
#line 639 "regression-bugs-tmp/soap80-a.imp"
if (((CURLEND) != (0))) goto L_00a9;
#line 639 "regression-bugs-tmp/soap80-a.imp"
OUTSTRING(_imp_join((_imp_string)_imp_str_literal(" "),(_imp_string)PERCENTC));
#line 639 "regression-bugs-tmp/soap80-a.imp"
L_00a9:;
                                                                //    640               outstring(" ".percentc)
                                                                //    641              outstring(snl)
#line 641 "regression-bugs-tmp/soap80-a.imp"
OUTSTRING(_imp_SNL());
                                                                //    642              dupl(' ', p_tab(inn)+p_icontin) %if inconst=false
#line 642 "regression-bugs-tmp/soap80-a.imp"
if (((INCONST) != (0))) goto L_00aa;
#line 642 "regression-bugs-tmp/soap80-a.imp"
DUPL(32, (((unsigned char)(P.TAB[INN])) + (P.ICONTIN)));
#line 642 "regression-bugs-tmp/soap80-a.imp"
L_00aa:;
                                                                //    643              outstring("%") %if %c
#line 643 "regression-bugs-tmp/soap80-a.imp"
if (((((OUTBUF[(((int)(BK)) + (1))]) & (128))) == (0))) goto L_00ab;
#line 643 "regression-bugs-tmp/soap80-a.imp"
if (((OUTBUF[(((int)(BK)) + (1))]) == (((30) | (128))))) goto L_00ab;
#line 643 "regression-bugs-tmp/soap80-a.imp"
OUTSTRING(_imp_str_literal("%"));
#line 643 "regression-bugs-tmp/soap80-a.imp"
L_00ab:;
                                                                //    644               outbuf(bk+1)&underline#0 %and outbuf(bk+1)#rs!128
                                                                //    645           %finish
#line 645 "regression-bugs-tmp/soap80-a.imp"
L_00a8:;
                                                                //    646           lst = bk+1
#line 646 "regression-bugs-tmp/soap80-a.imp"
LST = (((int)(BK)) + (1));
                                                                //    647        %repeat
#line 647 "regression-bugs-tmp/soap80-a.imp"
L_0056:;
#line 647 "regression-bugs-tmp/soap80-a.imp"
goto L_0054;
#line 647 "regression-bugs-tmp/soap80-a.imp"
L_0055:;
                                                                //    648  finalpart:
#line 648 "regression-bugs-tmp/soap80-a.imp"
U_1000:;
                                                                //    649        transfer(lst, obp-1)
#line 649 "regression-bugs-tmp/soap80-a.imp"
TRANSFER(LST, (((int)(OBP)) - (1)));
                                                                //    650        obp = 1
#line 650 "regression-bugs-tmp/soap80-a.imp"
OBP = 1;
                                                                //    651     %end
#line 651 "regression-bugs-tmp/soap80-a.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block PUNCH at level 2
                                                                //    652  
                                                                //    653     %integer %fn nextnonsp(%integer print)
#line 653 "regression-bugs-tmp/soap80-a.imp"
int NEXTNONSP( int PRINT )
#line 653 "regression-bugs-tmp/soap80-a.imp"
{
                                                                //    654        ! If PRINT is True then ' ' or '%' or RS are transferred to the output
                                                                //    655        ! buffer when encountered.
                                                                //    656        %integer ch
#line 656 "regression-bugs-tmp/soap80-a.imp"
int CH;
                                                                //    657        %cycle
#line 657 "regression-bugs-tmp/soap80-a.imp"
L_00ac:;
                                                                //    658           ch = sc(ptr)
#line 658 "regression-bugs-tmp/soap80-a.imp"
CH = SC[PTR];
                                                                //    659           %if ch='{' %start
#line 659 "regression-bugs-tmp/soap80-a.imp"
if (((CH) != (123))) goto L_00af;
                                                                //    660              outbuf(obp) = ' ' %and obp = obp+1 %if obp>1 %and print=false
#line 660 "regression-bugs-tmp/soap80-a.imp"
if (((OBP) <= (1))) goto L_00b0;
#line 660 "regression-bugs-tmp/soap80-a.imp"
if (((PRINT) != (0))) goto L_00b0;
#line 660 "regression-bugs-tmp/soap80-a.imp"
OUTBUF[OBP] = 32;
#line 660 "regression-bugs-tmp/soap80-a.imp"
OBP = (((int)(OBP)) + (1));
#line 660 "regression-bugs-tmp/soap80-a.imp"
L_00b0:;
                                                                //    661              outbuf(obp) = '{'
#line 661 "regression-bugs-tmp/soap80-a.imp"
OUTBUF[OBP] = 123;
                                                                //    662              obp = obp+1; ptr = ptr+1
#line 662 "regression-bugs-tmp/soap80-a.imp"
OBP = (((int)(OBP)) + (1));
#line 662 "regression-bugs-tmp/soap80-a.imp"
PTR = (((int)(PTR)) + (1));
                                                                //    663              %cycle
#line 663 "regression-bugs-tmp/soap80-a.imp"
L_00b1:;
                                                                //    664                 ch = sc(ptr)
#line 664 "regression-bugs-tmp/soap80-a.imp"
CH = SC[PTR];
                                                                //    665                 outbuf(obp) = ch!incurly
#line 665 "regression-bugs-tmp/soap80-a.imp"
OUTBUF[OBP] = ((CH) | (512));
                                                                //    666                 obp = obp+1
#line 666 "regression-bugs-tmp/soap80-a.imp"
OBP = (((int)(OBP)) + (1));
                                                                //    667                 ptr = ptr+1
#line 667 "regression-bugs-tmp/soap80-a.imp"
PTR = (((int)(PTR)) + (1));
                                                                //    668              %repeat %until ch='}'
#line 668 "regression-bugs-tmp/soap80-a.imp"
if (((CH) == (125))) goto L_00b2;
#line 668 "regression-bugs-tmp/soap80-a.imp"
goto L_00b1;
#line 668 "regression-bugs-tmp/soap80-a.imp"
L_00b2:;
                                                                //    669              %continue
#line 669 "regression-bugs-tmp/soap80-a.imp"
goto L_00ae;
                                                                //    670           %finish
#line 670 "regression-bugs-tmp/soap80-a.imp"
L_00af:;
                                                                //    671           %exit %unless ch=' ' %or ch='%' %or ch&127=rs
#line 671 "regression-bugs-tmp/soap80-a.imp"
if (((CH) == (32))) goto L_00b4;
#line 671 "regression-bugs-tmp/soap80-a.imp"
if (((CH) == (37))) goto L_00b4;
#line 671 "regression-bugs-tmp/soap80-a.imp"
if (((((CH) & (127))) == (30))) goto L_00b4;
#line 671 "regression-bugs-tmp/soap80-a.imp"
goto L_00ad;
#line 671 "regression-bugs-tmp/soap80-a.imp"
L_00b4:;
                                                                //    672           %if print=true %then outbuf(obp) = ch %and obp = obp+1
#line 672 "regression-bugs-tmp/soap80-a.imp"
if (((PRINT) != (255))) goto L_00b5;
#line 672 "regression-bugs-tmp/soap80-a.imp"
OUTBUF[OBP] = CH;
#line 672 "regression-bugs-tmp/soap80-a.imp"
OBP = (((int)(OBP)) + (1));
#line 672 "regression-bugs-tmp/soap80-a.imp"
L_00b5:;
                                                                //    673           ptr = ptr+1
#line 673 "regression-bugs-tmp/soap80-a.imp"
PTR = (((int)(PTR)) + (1));
                                                                //    674        %repeat
#line 674 "regression-bugs-tmp/soap80-a.imp"
L_00ae:;
#line 674 "regression-bugs-tmp/soap80-a.imp"
goto L_00ac;
#line 674 "regression-bugs-tmp/soap80-a.imp"
L_00ad:;
                                                                //    675        %result = ch
#line 675 "regression-bugs-tmp/soap80-a.imp"
/* Remove %on %event handler here if present for this block */
return CH;
                                                                //    676     %end
#line 676 "regression-bugs-tmp/soap80-a.imp"
} // End of block NEXTNONSP at level 2
                                                                //    677  
                                                                //    678     %routine getline(%integer initptr)
#line 678 "regression-bugs-tmp/soap80-a.imp"
void GETLINE( int INITPTR )
#line 678 "regression-bugs-tmp/soap80-a.imp"
{
                                                                //    679  !***********************************************************************
                                                                //    680  !*    GETLINE :- take from the input file and processes the data and   *
                                                                //    681  !*               it into the array SC.                                 *
                                                                //    682  !*                                                                     *
                                                                //    683  !*    The following processing is done:                                *
                                                                //    684  !*       1) All delimiters have 128 added to each character in the word*
                                                                //    685  !*       2) Lines are joined togther if there is a %c or ',' at the end*
                                                                //    686  !*          of the first line. The newline position is marked by RS.   *
                                                                //    687  !***********************************************************************
                                                                //    688        %const %byte %integer %array itoi(0:255)= %c
#line 688 "regression-bugs-tmp/soap80-a.imp"
const unsigned char ITOI[256] = { 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 25, 26, 32, 32, 32, 32, 32, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 32, 26, 26, 26, 26, 26, 10, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 92, 38, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 35, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 35, 26, 26, 26, 26, 26, 94, [224 ... 255] = 26 };
                                                                //    689                    32(10),10,32(14),25,26,32(5),
                                                                //    690                    32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,
                                                                //    691                    48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,
                                                                //    692                    64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,
                                                                //    693                    80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,
                                                                //    694                    96,97,98,99,100,101,102,103,104,105,106,107,108,109,
                                                                //    695                    110,111,112,113,114,115,116,117,118,119,
                                                                //    696                    120,121,122,123,124,125,126,32,
                                                                //    697                    26(5),10,26(10),
                                                                //    698                    26(16),
                                                                //    699                    26(14),92,38,
                                                                //    700                    26(11),35,26(4),
                                                                //    701                    26(16),
                                                                //    702                    26(9),35,26(5),94,
                                                                //    703                    26(32)
                                                                //    704        %short %integer %array scurl, ecurl(1:20)
#line 704 "regression-bugs-tmp/soap80-a.imp"
short SCURL[20];
#line 704 "regression-bugs-tmp/soap80-a.imp"
short ECURL[20];
                                                                //    705        %integer in keyword, char, p, ncurl
#line 705 "regression-bugs-tmp/soap80-a.imp"
int INKEYWORD;
#line 705 "regression-bugs-tmp/soap80-a.imp"
int CHAR;
#line 705 "regression-bugs-tmp/soap80-a.imp"
int P;
#line 705 "regression-bugs-tmp/soap80-a.imp"
int NCURL;
                                                                //    706        %own %integer strdelimiter
#line 706 "regression-bugs-tmp/soap80-a.imp"
static int STRDELIMITER;
                                                                //    707  
                                                                //    708        %if initptr=1 %then startline = inptr
#line 708 "regression-bugs-tmp/soap80-a.imp"
if (((INITPTR) != (1))) goto L_00b6;
#line 708 "regression-bugs-tmp/soap80-a.imp"
STARTLINE = INPTR;
#line 708 "regression-bugs-tmp/soap80-a.imp"
L_00b6:;
                                                                //    709        ptr = initptr
#line 709 "regression-bugs-tmp/soap80-a.imp"
PTR = INITPTR;
                                                                //    710  
                                                                //    711        %cycle
#line 711 "regression-bugs-tmp/soap80-a.imp"
L_00b7:;
                                                                //    712           in keyword = false
#line 712 "regression-bugs-tmp/soap80-a.imp"
INKEYWORD = 0;
                                                                //    713           ncurl = 0
#line 713 "regression-bugs-tmp/soap80-a.imp"
NCURL = 0;
                                                                //    714           %cycle
#line 714 "regression-bugs-tmp/soap80-a.imp"
L_00ba:;
                                                                //    715              %if ptr>ccsize %then fail(1, 1) %and %exit
#line 715 "regression-bugs-tmp/soap80-a.imp"
if (((PTR) <= (16384))) goto L_00bd;
#line 715 "regression-bugs-tmp/soap80-a.imp"
FAIL(1, 1);
#line 715 "regression-bugs-tmp/soap80-a.imp"
goto L_00bb;
#line 715 "regression-bugs-tmp/soap80-a.imp"
L_00bd:;
                                                                //    716              %if inptr>dataend %then fail(2, 1)
#line 716 "regression-bugs-tmp/soap80-a.imp"
if (((INPTR) <= (DATAEND))) goto L_00be;
#line 716 "regression-bugs-tmp/soap80-a.imp"
FAIL(2, 1);
#line 716 "regression-bugs-tmp/soap80-a.imp"
L_00be:;
                                                                //    717              char = itoi(byteinteger(inptr))
#line 717 "regression-bugs-tmp/soap80-a.imp"
CHAR = ITOI[*_imp_BYTEINTEGER(INPTR)];
                                                                //    718              inptr = inptr+1
#line 718 "regression-bugs-tmp/soap80-a.imp"
INPTR = (((int)(INPTR)) + (1));
                                                                //    719  
                                                                //    720              %if char=nl %start
#line 720 "regression-bugs-tmp/soap80-a.imp"
if (((CHAR) != (10))) goto L_00bf;
                                                                //    721                 inline = inline+1
#line 721 "regression-bugs-tmp/soap80-a.imp"
INLINE = (((int)(INLINE)) + (1));
                                                                //    722                 sc(ptr) = nl
#line 722 "regression-bugs-tmp/soap80-a.imp"
SC[PTR] = 10;
                                                                //    723                 ptr = ptr+1
#line 723 "regression-bugs-tmp/soap80-a.imp"
PTR = (((int)(PTR)) + (1));
                                                                //    724                 %exit
#line 724 "regression-bugs-tmp/soap80-a.imp"
goto L_00bb;
                                                                //    725              %finish
#line 725 "regression-bugs-tmp/soap80-a.imp"
L_00bf:;
                                                                //    726  
                                                                //    727              %if str=true %start
#line 727 "regression-bugs-tmp/soap80-a.imp"
if (((STR) != (255))) goto L_00c0;
                                                                //    728                 sc(ptr) = char; ptr = ptr+1
#line 728 "regression-bugs-tmp/soap80-a.imp"
SC[PTR] = CHAR;
#line 728 "regression-bugs-tmp/soap80-a.imp"
PTR = (((int)(PTR)) + (1));
                                                                //    729                 %if char=strdelimiter %then str = false
#line 729 "regression-bugs-tmp/soap80-a.imp"
if (((CHAR) != (STRDELIMITER))) goto L_00c1;
#line 729 "regression-bugs-tmp/soap80-a.imp"
STR = 0;
#line 729 "regression-bugs-tmp/soap80-a.imp"
L_00c1:;
                                                                //    730                 %continue
#line 730 "regression-bugs-tmp/soap80-a.imp"
goto L_00bc;
                                                                //    731              %finish
#line 731 "regression-bugs-tmp/soap80-a.imp"
L_00c0:;
                                                                //    732  
                                                                //    733              %if chartype(char)&endst#0 %then %c
#line 733 "regression-bugs-tmp/soap80-a.imp"
if (((((CHARTYPE[CHAR]) & (8))) == (0))) goto L_00c2;
#line 733 "regression-bugs-tmp/soap80-a.imp"
SC[PTR] = CHAR;
#line 733 "regression-bugs-tmp/soap80-a.imp"
PTR = (((int)(PTR)) + (1));
#line 733 "regression-bugs-tmp/soap80-a.imp"
goto L_00bb;
#line 733 "regression-bugs-tmp/soap80-a.imp"
L_00c2:;
                                                                //    734               sc(ptr) = char %and ptr = ptr+1 %and %exit
                                                                //    735  
                                                                //    736              ! Deal with curly bracket comments noting start so as to permit
                                                                //    737              ! continuations of the form ...,{...}.
                                                                //    738              ! Note that any missing closing brace is replaced.
                                                                //    739              %if char='{' %start
#line 739 "regression-bugs-tmp/soap80-a.imp"
if (((CHAR) != (123))) goto L_00c3;
                                                                //    740                 ncurl = ncurl+1; scurl(ncurl) = ptr
#line 740 "regression-bugs-tmp/soap80-a.imp"
NCURL = (((int)(NCURL)) + (1));
#line 740 "regression-bugs-tmp/soap80-a.imp"
SCURL[(((int)(NCURL)) - (1))] = PTR;
                                                                //    741                 sc(ptr) = char; ptr = ptr+1
#line 741 "regression-bugs-tmp/soap80-a.imp"
SC[PTR] = CHAR;
#line 741 "regression-bugs-tmp/soap80-a.imp"
PTR = (((int)(PTR)) + (1));
                                                                //    742                 %cycle
#line 742 "regression-bugs-tmp/soap80-a.imp"
L_00c4:;
                                                                //    743                    char = itoi(byteinteger(inptr))
#line 743 "regression-bugs-tmp/soap80-a.imp"
CHAR = ITOI[*_imp_BYTEINTEGER(INPTR)];
                                                                //    744                    %if char=nl %then char = '}' %else inptr = inptr+1
#line 744 "regression-bugs-tmp/soap80-a.imp"
if (((CHAR) != (10))) goto L_00c7;
#line 744 "regression-bugs-tmp/soap80-a.imp"
CHAR = 125;
#line 744 "regression-bugs-tmp/soap80-a.imp"
goto L_00c8;
#line 744 "regression-bugs-tmp/soap80-a.imp"
L_00c7:;
#line 744 "regression-bugs-tmp/soap80-a.imp"
INPTR = (((int)(INPTR)) + (1));
#line 744 "regression-bugs-tmp/soap80-a.imp"
L_00c8:;
                                                                //    745                    %if char='}' %then %exit
#line 745 "regression-bugs-tmp/soap80-a.imp"
if (((CHAR) != (125))) goto L_00c9;
#line 745 "regression-bugs-tmp/soap80-a.imp"
goto L_00c5;
#line 745 "regression-bugs-tmp/soap80-a.imp"
L_00c9:;
                                                                //    746                    sc(ptr) = char
#line 746 "regression-bugs-tmp/soap80-a.imp"
SC[PTR] = CHAR;
                                                                //    747                    ptr = ptr+1
#line 747 "regression-bugs-tmp/soap80-a.imp"
PTR = (((int)(PTR)) + (1));
                                                                //    748                 %repeat
#line 748 "regression-bugs-tmp/soap80-a.imp"
goto L_00c4;
#line 748 "regression-bugs-tmp/soap80-a.imp"
L_00c5:;
                                                                //    749                 ecurl(ncurl) = ptr
#line 749 "regression-bugs-tmp/soap80-a.imp"
ECURL[(((int)(NCURL)) - (1))] = PTR;
                                                                //    750              %finish
#line 750 "regression-bugs-tmp/soap80-a.imp"
L_00c3:;
                                                                //    751  
                                                                //    752              %if in keyword=true %start
#line 752 "regression-bugs-tmp/soap80-a.imp"
if (((INKEYWORD) != (255))) goto L_00ca;
                                                                //    753                 %if chartype(char)&letter=0 %then in keyword = false %else %c
#line 753 "regression-bugs-tmp/soap80-a.imp"
if (((((CHARTYPE[CHAR]) & (32))) != (0))) goto L_00cb;
#line 753 "regression-bugs-tmp/soap80-a.imp"
INKEYWORD = 0;
#line 753 "regression-bugs-tmp/soap80-a.imp"
goto L_00cc;
#line 753 "regression-bugs-tmp/soap80-a.imp"
L_00cb:;
#line 753 "regression-bugs-tmp/soap80-a.imp"
SC[PTR] = ((ONECASE[CHAR]) | (128));
#line 753 "regression-bugs-tmp/soap80-a.imp"
PTR = (((int)(PTR)) + (1));
#line 753 "regression-bugs-tmp/soap80-a.imp"
goto L_00bc;
#line 753 "regression-bugs-tmp/soap80-a.imp"
L_00cc:;
                                                                //    754                  sc(ptr) = onecase(char)!underline %and ptr = ptr+1 %and %c
                                                                //    755                  %continue
                                                                //    756              %finish
#line 756 "regression-bugs-tmp/soap80-a.imp"
L_00ca:;
                                                                //    757  
                                                                //    758              %if char='%' %then in keyword = true
#line 758 "regression-bugs-tmp/soap80-a.imp"
if (((CHAR) != (37))) goto L_00cd;
#line 758 "regression-bugs-tmp/soap80-a.imp"
INKEYWORD = 255;
#line 758 "regression-bugs-tmp/soap80-a.imp"
L_00cd:;
                                                                //    759  
                                                                //    760              %if char=squotes %or char=dquotes %start
#line 760 "regression-bugs-tmp/soap80-a.imp"
if (((CHAR) == (39))) goto L_00b3;
#line 760 "regression-bugs-tmp/soap80-a.imp"
if (((CHAR) != (34))) goto L_00ce;
#line 760 "regression-bugs-tmp/soap80-a.imp"
L_00b3:;
                                                                //    761                 str = true; strdelimiter = char
#line 761 "regression-bugs-tmp/soap80-a.imp"
STR = 255;
#line 761 "regression-bugs-tmp/soap80-a.imp"
STRDELIMITER = CHAR;
                                                                //    762              %finish
#line 762 "regression-bugs-tmp/soap80-a.imp"
L_00ce:;
                                                                //    763  
                                                                //    764              sc(ptr) = char
#line 764 "regression-bugs-tmp/soap80-a.imp"
SC[PTR] = CHAR;
                                                                //    765              ptr = ptr+1
#line 765 "regression-bugs-tmp/soap80-a.imp"
PTR = (((int)(PTR)) + (1));
                                                                //    766           %repeat
#line 766 "regression-bugs-tmp/soap80-a.imp"
L_00bc:;
#line 766 "regression-bugs-tmp/soap80-a.imp"
goto L_00ba;
#line 766 "regression-bugs-tmp/soap80-a.imp"
L_00bb:;
                                                                //    767  
                                                                //    768           %if char=nl %start; ! TRAILING SPACES CHECK
#line 768 "regression-bugs-tmp/soap80-a.imp"
if (((CHAR) != (10))) goto L_00cf;
                                                                //    769              ptr = ptr-1 %while ptr>2 %and sc(ptr-2)=' '
#line 769 "regression-bugs-tmp/soap80-a.imp"
L_00d0:;
#line 769 "regression-bugs-tmp/soap80-a.imp"
if (((PTR) <= (2))) goto L_00d1;
#line 769 "regression-bugs-tmp/soap80-a.imp"
if (((SC[(((int)(PTR)) - (2))]) != (32))) goto L_00d1;
#line 769 "regression-bugs-tmp/soap80-a.imp"
PTR = (((int)(PTR)) - (1));
#line 769 "regression-bugs-tmp/soap80-a.imp"
goto L_00d0;
#line 769 "regression-bugs-tmp/soap80-a.imp"
L_00d1:;
                                                                //    770              sc(ptr-1) = nl
#line 770 "regression-bugs-tmp/soap80-a.imp"
SC[(((int)(PTR)) - (1))] = 10;
                                                                //    771              %if str=false %start
#line 771 "regression-bugs-tmp/soap80-a.imp"
if (((STR) != (0))) goto L_00d3;
                                                                //    772                 p = ptr-2
#line 772 "regression-bugs-tmp/soap80-a.imp"
P = (((int)(PTR)) - (2));
                                                                //    773                 %while ncurl>0 %and ecurl(ncurl)=p %cycle
#line 773 "regression-bugs-tmp/soap80-a.imp"
L_00d4:;
#line 773 "regression-bugs-tmp/soap80-a.imp"
if (((NCURL) <= (0))) goto L_00d5;
#line 773 "regression-bugs-tmp/soap80-a.imp"
if (((ECURL[(((int)(NCURL)) - (1))]) != (P))) goto L_00d5;
                                                                //    774                    ! Step past curly bracket.
                                                                //    775                    p = scurl(ncurl)-1; ncurl = ncurl-1
#line 775 "regression-bugs-tmp/soap80-a.imp"
P = (((int)(SCURL[(((int)(NCURL)) - (1))])) - (1));
#line 775 "regression-bugs-tmp/soap80-a.imp"
NCURL = (((int)(NCURL)) - (1));
                                                                //    776                    p = p-1 %while p>0 %and sc(p)=' '
#line 776 "regression-bugs-tmp/soap80-a.imp"
L_00d7:;
#line 776 "regression-bugs-tmp/soap80-a.imp"
if (((P) <= (0))) goto L_00d8;
#line 776 "regression-bugs-tmp/soap80-a.imp"
if (((SC[P]) != (32))) goto L_00d8;
#line 776 "regression-bugs-tmp/soap80-a.imp"
P = (((int)(P)) - (1));
#line 776 "regression-bugs-tmp/soap80-a.imp"
goto L_00d7;
#line 776 "regression-bugs-tmp/soap80-a.imp"
L_00d8:;
                                                                //    777                 %repeat
#line 777 "regression-bugs-tmp/soap80-a.imp"
goto L_00d4;
#line 777 "regression-bugs-tmp/soap80-a.imp"
L_00d5:;
                                                                //    778                 ! Now p points at character determining continuation.
                                                                //    779                 %if p>0 %start
#line 779 "regression-bugs-tmp/soap80-a.imp"
if (((P) <= (0))) goto L_00da;
                                                                //    780                    char = sc(p)
#line 780 "regression-bugs-tmp/soap80-a.imp"
CHAR = SC[P];
                                                                //    781                    %if char=',' %start
#line 781 "regression-bugs-tmp/soap80-a.imp"
if (((CHAR) != (44))) goto L_00db;
                                                                //    782                       sc(ptr-1) = rs!128
#line 782 "regression-bugs-tmp/soap80-a.imp"
SC[(((int)(PTR)) - (1))] = ((30) | (128));
                                                                //    783                       %continue
#line 783 "regression-bugs-tmp/soap80-a.imp"
goto L_00b9;
                                                                //    784                    %finish
#line 784 "regression-bugs-tmp/soap80-a.imp"
L_00db:;
                                                                //    785                    %if char='C'+underline %start
#line 785 "regression-bugs-tmp/soap80-a.imp"
if (((CHAR) != (195))) goto L_00dc;
                                                                //    786                       %if p>1 %and sc(p-1)='%' %then sc(p-1) = ' '
#line 786 "regression-bugs-tmp/soap80-a.imp"
if (((P) <= (1))) goto L_00dd;
#line 786 "regression-bugs-tmp/soap80-a.imp"
if (((SC[(((int)(P)) - (1))]) != (37))) goto L_00dd;
#line 786 "regression-bugs-tmp/soap80-a.imp"
SC[(((int)(P)) - (1))] = 32;
#line 786 "regression-bugs-tmp/soap80-a.imp"
L_00dd:;
                                                                //    787                       sc(p) = ' '
#line 787 "regression-bugs-tmp/soap80-a.imp"
SC[P] = 32;
                                                                //    788                       sc(ptr-1) = rs
#line 788 "regression-bugs-tmp/soap80-a.imp"
SC[(((int)(PTR)) - (1))] = 30;
                                                                //    789                       %continue
#line 789 "regression-bugs-tmp/soap80-a.imp"
goto L_00b9;
                                                                //    790                    %finish
#line 790 "regression-bugs-tmp/soap80-a.imp"
L_00dc:;
                                                                //    791                    %if char&127=rs %then sc(ptr-1) = rs!128 %and %continue
#line 791 "regression-bugs-tmp/soap80-a.imp"
if (((((CHAR) & (127))) != (30))) goto L_00de;
#line 791 "regression-bugs-tmp/soap80-a.imp"
SC[(((int)(PTR)) - (1))] = ((30) | (128));
#line 791 "regression-bugs-tmp/soap80-a.imp"
goto L_00b9;
#line 791 "regression-bugs-tmp/soap80-a.imp"
L_00de:;
                                                                //    792                 %finish
#line 792 "regression-bugs-tmp/soap80-a.imp"
L_00da:;
                                                                //    793              %finish
#line 793 "regression-bugs-tmp/soap80-a.imp"
L_00d3:;
                                                                //    794           %finish
#line 794 "regression-bugs-tmp/soap80-a.imp"
L_00cf:;
                                                                //    795           %exit
#line 795 "regression-bugs-tmp/soap80-a.imp"
goto L_00b8;
                                                                //    796        %repeat
#line 796 "regression-bugs-tmp/soap80-a.imp"
L_00b9:;
#line 796 "regression-bugs-tmp/soap80-a.imp"
goto L_00b7;
#line 796 "regression-bugs-tmp/soap80-a.imp"
L_00b8:;
                                                                //    797        ptr = initptr
#line 797 "regression-bugs-tmp/soap80-a.imp"
PTR = INITPTR;
                                                                //    798  
                                                                //    799     %end
#line 799 "regression-bugs-tmp/soap80-a.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block GETLINE at level 2
                                                                //    800  
                                                                //    801     %integer %fn compare(%integer test)
#line 801 "regression-bugs-tmp/soap80-a.imp"
int COMPARE( int TEST )
#line 801 "regression-bugs-tmp/soap80-a.imp"
{
                                                                //    802        %integer i, ch, key, j
#line 802 "regression-bugs-tmp/soap80-a.imp"
int I;
#line 802 "regression-bugs-tmp/soap80-a.imp"
int CH;
#line 802 "regression-bugs-tmp/soap80-a.imp"
int KEY;
#line 802 "regression-bugs-tmp/soap80-a.imp"
int J;
                                                                //    803  
                                                                //    804        %for i = 1, 1, clett(test) %cycle
#line 804 "regression-bugs-tmp/soap80-a.imp"
{static int _initial, _increment, _final, _control;
_initial = 1; _increment = 1; _final = CLETT[TEST]; I = _control = _initial;
if (((_final-_initial) % _increment) != 0) _imp_signal(5,1,0,"Illegal cycle I = 1, 1, CLETT[TEST]");
I -= _increment; _control -= _increment;
L_00df:;
if (I == _final) goto L_00e0;
I += _increment; _control += _increment;
if (I != _control) _imp_signal(4,2,0,"Corrupt control variable I"); /* FOR loop control variable corrupted */
}
                                                                //    805           ch = nextnonsp(inconst)
#line 805 "regression-bugs-tmp/soap80-a.imp"
CH = NEXTNONSP(INCONST);
                                                                //    806           %if ch#clett(i+test) %then %result = false
#line 806 "regression-bugs-tmp/soap80-a.imp"
if (((CH) == (CLETT[(((int)(I)) + (TEST))]))) goto L_00e2;
#line 806 "regression-bugs-tmp/soap80-a.imp"
/* Remove %on %event handler here if present for this block */
return 0;
#line 806 "regression-bugs-tmp/soap80-a.imp"
L_00e2:;
                                                                //    807           ptr = ptr+1
#line 807 "regression-bugs-tmp/soap80-a.imp"
PTR = (((int)(PTR)) + (1));
                                                                //    808        %repeat
#line 808 "regression-bugs-tmp/soap80-a.imp"
goto L_00df;
#line 808 "regression-bugs-tmp/soap80-a.imp"
L_00e0:;
                                                                //    809  
                                                                //    810        %if test=offile %or test=ofprogram %then stop = true
#line 810 "regression-bugs-tmp/soap80-a.imp"
if (((TEST) == (133))) goto L_00e1;
#line 810 "regression-bugs-tmp/soap80-a.imp"
if (((TEST) != (123))) goto L_00e3;
#line 810 "regression-bugs-tmp/soap80-a.imp"
L_00e1:;
#line 810 "regression-bugs-tmp/soap80-a.imp"
STOP = 255;
#line 810 "regression-bugs-tmp/soap80-a.imp"
L_00e3:;
                                                                //    811  
                                                                //    812        %if test=comma %then insert(',', false, p_spcomma) %and %result = true
#line 812 "regression-bugs-tmp/soap80-a.imp"
if (((TEST) != (10))) goto L_00e4;
#line 812 "regression-bugs-tmp/soap80-a.imp"
INSERT(44, 0, P.SPCOMMA);
#line 812 "regression-bugs-tmp/soap80-a.imp"
/* Remove %on %event handler here if present for this block */
return 255;
#line 812 "regression-bugs-tmp/soap80-a.imp"
L_00e4:;
                                                                //    813        %if test=equals %start
#line 813 "regression-bugs-tmp/soap80-a.imp"
if (((TEST) != (38))) goto L_00e5;
                                                                //    814           %if ssalt=ownalt %then inconst = p_lclist
#line 814 "regression-bugs-tmp/soap80-a.imp"
if (((SSALT) != (12))) goto L_00e6;
#line 814 "regression-bugs-tmp/soap80-a.imp"
INCONST = P.LCLIST;
#line 814 "regression-bugs-tmp/soap80-a.imp"
L_00e6:;
                                                                //    815           ! If in own or const declaration and p_lclist is set, then set
                                                                //    816           ! inconst to true.  The effect of this is leave the declaration
                                                                //    817           ! unformatted.  Inconst is not set earlier as we do not wish the
                                                                //    818           ! leading spaces in the statement to be preserved - i.e. the first
                                                                //    819           ! line of the statement is indented with the rest of the program.
                                                                //    820           insert('=', p_spacass, p_spacass)
#line 820 "regression-bugs-tmp/soap80-a.imp"
INSERT(61, P.SPACASS, P.SPACASS);
                                                                //    821           %result = true
#line 821 "regression-bugs-tmp/soap80-a.imp"
/* Remove %on %event handler here if present for this block */
return 255;
                                                                //    822        %finish
#line 822 "regression-bugs-tmp/soap80-a.imp"
L_00e5:;
                                                                //    823        %if p_expkey=true %start
#line 823 "regression-bugs-tmp/soap80-a.imp"
if (((P.EXPKEY) != (255))) goto L_00e7;
                                                                //    824           test = function %if test=fn
#line 824 "regression-bugs-tmp/soap80-a.imp"
if (((TEST) != (96))) goto L_00e8;
#line 824 "regression-bugs-tmp/soap80-a.imp"
TEST = 103;
#line 824 "regression-bugs-tmp/soap80-a.imp"
L_00e8:;
                                                                //    825           test = constant %if test=const
#line 825 "regression-bugs-tmp/soap80-a.imp"
if (((TEST) != (204))) goto L_00e9;
#line 825 "regression-bugs-tmp/soap80-a.imp"
TEST = 195;
#line 825 "regression-bugs-tmp/soap80-a.imp"
L_00e9:;
                                                                //    826        %finish
#line 826 "regression-bugs-tmp/soap80-a.imp"
L_00e7:;
                                                                //    827        %if obp=1 %or (outbuf(obp-1)&underline=0 %and %c
#line 827 "regression-bugs-tmp/soap80-a.imp"
if (((OBP) == (1))) goto L_00ea;
#line 827 "regression-bugs-tmp/soap80-a.imp"
if (((((OUTBUF[(((int)(OBP)) - (1))]) & (128))) != (0))) goto L_00eb;
#line 827 "regression-bugs-tmp/soap80-a.imp"
if (((((OUTBUF[(((int)(OBP)) - (1))]) & (127))) == (37))) goto L_00eb;
#line 827 "regression-bugs-tmp/soap80-a.imp"
L_00ea:;
#line 827 "regression-bugs-tmp/soap80-a.imp"
KEY = 0;
#line 827 "regression-bugs-tmp/soap80-a.imp"
goto L_00ec;
#line 827 "regression-bugs-tmp/soap80-a.imp"
L_00eb:;
#line 827 "regression-bugs-tmp/soap80-a.imp"
KEY = 255;
#line 827 "regression-bugs-tmp/soap80-a.imp"
L_00ec:;
                                                                //    828         outbuf(obp-1)&127#'%') %then key = false %else key = true
                                                                //    829        ! Current state of outbuf.
                                                                //    830        %for i = 1, 1, clett(test) %cycle
#line 830 "regression-bugs-tmp/soap80-a.imp"
{static int _initial, _increment, _final, _control;
_initial = 1; _increment = 1; _final = CLETT[TEST]; I = _control = _initial;
if (((_final-_initial) % _increment) != 0) _imp_signal(5,1,0,"Illegal cycle I = 1, 1, CLETT[TEST]");
I -= _increment; _control -= _increment;
L_00ed:;
if (I == _final) goto L_00ee;
I += _increment; _control += _increment;
if (I != _control) _imp_signal(4,2,0,"Corrupt control variable I"); /* FOR loop control variable corrupted */
}
                                                                //    831           ch = clett(test+i)
#line 831 "regression-bugs-tmp/soap80-a.imp"
CH = CLETT[(((int)(TEST)) + (I))];
                                                                //    832           %if ch<underline %and key=true %start
#line 832 "regression-bugs-tmp/soap80-a.imp"
if (((CH) >= (128))) goto L_00f0;
#line 832 "regression-bugs-tmp/soap80-a.imp"
if (((KEY) != (255))) goto L_00f0;
                                                                //    833              outbuf(obp) = ' '
#line 833 "regression-bugs-tmp/soap80-a.imp"
OUTBUF[OBP] = 32;
                                                                //    834              obp = obp+1
#line 834 "regression-bugs-tmp/soap80-a.imp"
OBP = (((int)(OBP)) + (1));
                                                                //    835              key = false
#line 835 "regression-bugs-tmp/soap80-a.imp"
KEY = 0;
                                                                //    836           %finish %else %if ch>underline %start
#line 836 "regression-bugs-tmp/soap80-a.imp"
goto L_00f1;
#line 836 "regression-bugs-tmp/soap80-a.imp"
L_00f0:;
#line 836 "regression-bugs-tmp/soap80-a.imp"
if (((CH) <= (128))) goto L_00f2;
                                                                //    837              %if key=false %start
#line 837 "regression-bugs-tmp/soap80-a.imp"
if (((KEY) != (0))) goto L_00f3;
                                                                //    838                 %if obp>1 %and '('#outbuf(obp-1)#' ' %then %c
#line 838 "regression-bugs-tmp/soap80-a.imp"
if (((OBP) <= (1))) goto L_00f4;
#line 838 "regression-bugs-tmp/soap80-a.imp"
if ((((40) == (OUTBUF[(((int)(OBP)) - (1))]))) || (((OUTBUF[(((int)(OBP)) - (1))]) == (32)))) goto L_00f4;
#line 838 "regression-bugs-tmp/soap80-a.imp"
OUTBUF[OBP] = 32;
#line 838 "regression-bugs-tmp/soap80-a.imp"
OBP = (((int)(OBP)) + (1));
#line 838 "regression-bugs-tmp/soap80-a.imp"
L_00f4:;
                                                                //    839                  outbuf(obp) = ' ' %and obp = obp+1
                                                                //    840                 outbuf(obp) = '%'
#line 840 "regression-bugs-tmp/soap80-a.imp"
OUTBUF[OBP] = 37;
                                                                //    841                 obp = obp+1
#line 841 "regression-bugs-tmp/soap80-a.imp"
OBP = (((int)(OBP)) + (1));
                                                                //    842                 key = true
#line 842 "regression-bugs-tmp/soap80-a.imp"
KEY = 255;
                                                                //    843              %finish %else %if i=1 %and p_sepkey=true %then %c
#line 843 "regression-bugs-tmp/soap80-a.imp"
goto L_00f5;
#line 843 "regression-bugs-tmp/soap80-a.imp"
L_00f3:;
#line 843 "regression-bugs-tmp/soap80-a.imp"
if (((I) != (1))) goto L_00f6;
#line 843 "regression-bugs-tmp/soap80-a.imp"
if (((P.SEPKEY) != (255))) goto L_00f6;
#line 843 "regression-bugs-tmp/soap80-a.imp"
OUTBUF[OBP] = 32;
#line 843 "regression-bugs-tmp/soap80-a.imp"
OUTBUF[(((int)(OBP)) + (1))] = 37;
#line 843 "regression-bugs-tmp/soap80-a.imp"
OBP = (((int)(OBP)) + (2));
#line 843 "regression-bugs-tmp/soap80-a.imp"
L_00f6:;
#line 843 "regression-bugs-tmp/soap80-a.imp"
L_00f5:;
                                                                //    844               outbuf(obp) = ' ' %and outbuf(obp+1) = '%' %and obp = obp+2
                                                                //    845           %finish
#line 845 "regression-bugs-tmp/soap80-a.imp"
L_00f2:;
#line 845 "regression-bugs-tmp/soap80-a.imp"
L_00f1:;
                                                                //    846  
                                                                //    847           %if ch&underline#0 %and p_uckey=false %and ch#rs!128 %then ch = ch!32
#line 847 "regression-bugs-tmp/soap80-a.imp"
if (((((CH) & (128))) == (0))) goto L_00f7;
#line 847 "regression-bugs-tmp/soap80-a.imp"
if (((P.UCKEY) != (0))) goto L_00f7;
#line 847 "regression-bugs-tmp/soap80-a.imp"
if (((CH) == (((30) | (128))))) goto L_00f7;
#line 847 "regression-bugs-tmp/soap80-a.imp"
CH = ((CH) | (32));
#line 847 "regression-bugs-tmp/soap80-a.imp"
L_00f7:;
                                                                //    848           outbuf(obp) = ch
#line 848 "regression-bugs-tmp/soap80-a.imp"
OUTBUF[OBP] = CH;
                                                                //    849           obp = obp+1
#line 849 "regression-bugs-tmp/soap80-a.imp"
OBP = (((int)(OBP)) + (1));
                                                                //    850        %repeat
#line 850 "regression-bugs-tmp/soap80-a.imp"
goto L_00ed;
#line 850 "regression-bugs-tmp/soap80-a.imp"
L_00ee:;
                                                                //    851  
                                                                //    852        %if (test=offile %or test=ofprogram) %and p_sepkey=true %start
#line 852 "regression-bugs-tmp/soap80-a.imp"
if (((TEST) == (133))) goto L_00ef;
#line 852 "regression-bugs-tmp/soap80-a.imp"
if (((TEST) != (123))) goto L_00f8;
#line 852 "regression-bugs-tmp/soap80-a.imp"
L_00ef:;
#line 852 "regression-bugs-tmp/soap80-a.imp"
if (((P.SEPKEY) != (255))) goto L_00f8;
                                                                //    853           %if test=offile %then j = 4 %else j = 7
#line 853 "regression-bugs-tmp/soap80-a.imp"
if (((TEST) != (133))) goto L_00f9;
#line 853 "regression-bugs-tmp/soap80-a.imp"
J = 4;
#line 853 "regression-bugs-tmp/soap80-a.imp"
goto L_00fa;
#line 853 "regression-bugs-tmp/soap80-a.imp"
L_00f9:;
#line 853 "regression-bugs-tmp/soap80-a.imp"
J = 7;
#line 853 "regression-bugs-tmp/soap80-a.imp"
L_00fa:;
                                                                //    854           obp = obp+2
#line 854 "regression-bugs-tmp/soap80-a.imp"
OBP = (((int)(OBP)) + (2));
                                                                //    855           outbuf(obp-i) = outbuf(obp-i-2) %for i = 1, 1, j
#line 855 "regression-bugs-tmp/soap80-a.imp"
{static int _initial, _increment, _final, _control;
_initial = 1; _increment = 1; _final = J; I = _control = _initial;
if (((_final-_initial) % _increment) != 0) _imp_signal(5,1,0,"Illegal cycle I = 1, 1, J");
I -= _increment; _control -= _increment;
L_00fb:;
if (I == _final) goto L_00fc;
I += _increment; _control += _increment;
if (I != _control) _imp_signal(4,2,0,"Corrupt control variable I"); /* FOR loop control variable corrupted */
}
#line 855 "regression-bugs-tmp/soap80-a.imp"
OUTBUF[(((int)(OBP)) - (I))] = OUTBUF[(((int)((((int)(OBP)) - (I)))) - (2))];
#line 855 "regression-bugs-tmp/soap80-a.imp"
goto L_00fb;
#line 855 "regression-bugs-tmp/soap80-a.imp"
L_00fc:;
                                                                //    856           outbuf(obp-j-2) = ' '
#line 856 "regression-bugs-tmp/soap80-a.imp"
OUTBUF[(((int)((((int)(OBP)) - (J)))) - (2))] = 32;
                                                                //    857           outbuf(obp-j-1) = '%'
#line 857 "regression-bugs-tmp/soap80-a.imp"
OUTBUF[(((int)((((int)(OBP)) - (J)))) - (1))] = 37;
                                                                //    858        %finish
#line 858 "regression-bugs-tmp/soap80-a.imp"
L_00f8:;
                                                                //    859        %if test=if %or test=unless %or test=while %or test=until %or %c
#line 859 "regression-bugs-tmp/soap80-a.imp"
if (((TEST) == (12))) goto L_00fe;
#line 859 "regression-bugs-tmp/soap80-a.imp"
if (((TEST) == (15))) goto L_00fe;
#line 859 "regression-bugs-tmp/soap80-a.imp"
if (((TEST) == (22))) goto L_00fe;
#line 859 "regression-bugs-tmp/soap80-a.imp"
if (((TEST) == (28))) goto L_00fe;
#line 859 "regression-bugs-tmp/soap80-a.imp"
if (((TEST) == (227))) goto L_00fe;
#line 859 "regression-bugs-tmp/soap80-a.imp"
if (((TEST) != (222))) goto L_00ff;
#line 859 "regression-bugs-tmp/soap80-a.imp"
L_00fe:;
#line 859 "regression-bugs-tmp/soap80-a.imp"
OUTBUF[(((int)(OBP)) - (1))] = ((CH) | (1024));
#line 859 "regression-bugs-tmp/soap80-a.imp"
L_00ff:;
                                                                //    860         test=else %or test=then %then outbuf(obp-1) = ch!bpoint
                                                                //    861        %if test=and %or test=or %then outbuf(obp-1) = ch!bpoint2
#line 861 "regression-bugs-tmp/soap80-a.imp"
if (((TEST) == (158))) goto L_0100;
#line 861 "regression-bugs-tmp/soap80-a.imp"
if (((TEST) != (162))) goto L_0101;
#line 861 "regression-bugs-tmp/soap80-a.imp"
L_0100:;
#line 861 "regression-bugs-tmp/soap80-a.imp"
OUTBUF[(((int)(OBP)) - (1))] = ((CH) | (2048));
#line 861 "regression-bugs-tmp/soap80-a.imp"
L_0101:;
                                                                //    862        %result = true
#line 862 "regression-bugs-tmp/soap80-a.imp"
/* Remove %on %event handler here if present for this block */
return 255;
                                                                //    863     %end
#line 863 "regression-bugs-tmp/soap80-a.imp"
} // End of block COMPARE at level 2
                                                                //    864  
                                                                //    865     %integer %fn check(%integer pos)
#line 865 "regression-bugs-tmp/soap80-a.imp"
int CHECK( int POS )
#line 865 "regression-bugs-tmp/soap80-a.imp"
{
                                                                //    866        %integer defend, subdefend, subdefstart, res, item, rsptr, z,
#line 866 "regression-bugs-tmp/soap80-a.imp"
int DEFEND;
#line 866 "regression-bugs-tmp/soap80-a.imp"
int SUBDEFEND;
#line 866 "regression-bugs-tmp/soap80-a.imp"
int SUBDEFSTART;
#line 866 "regression-bugs-tmp/soap80-a.imp"
int RES;
#line 866 "regression-bugs-tmp/soap80-a.imp"
int ITEM;
#line 866 "regression-bugs-tmp/soap80-a.imp"
int RSPTR;
#line 866 "regression-bugs-tmp/soap80-a.imp"
int Z;
#line 866 "regression-bugs-tmp/soap80-a.imp"
int STRDELIMITER;
#line 866 "regression-bugs-tmp/soap80-a.imp"
int CH;
#line 866 "regression-bugs-tmp/soap80-a.imp"
int RSOBJ;
#line 866 "regression-bugs-tmp/soap80-a.imp"
int ALT;
#line 866 "regression-bugs-tmp/soap80-a.imp"
int I;
#line 866 "regression-bugs-tmp/soap80-a.imp"
int J;
                                                                //    867          strdelimiter, ch, rsobj, alt, i, j
                                                                //    868        %own %string (19) fes="FINISH %ELSE %START"
#line 868 "regression-bugs-tmp/soap80-a.imp"
static _imp_string /*%string(19)*/ FES = _imp_str_literal("FINISH %ELSE %START");
                                                                //    869        %own %integer uci
#line 869 "regression-bugs-tmp/soap80-a.imp"
static int UCI;
                                                                //    870        %own %integer depth=0
#line 870 "regression-bugs-tmp/soap80-a.imp"
static int DEPTH = 0;
                                                                //    871        %switch bip(999:1039); ! Built-in phrases.
#line 871 "regression-bugs-tmp/soap80-a.imp"
static int sw1_BIP_idx;
static const void * /*SWITCH*/ sw1_BIP[41] = { &&sw1_BIP_999, &&sw1_BIP_1000, &&sw1_BIP_1001, &&sw1_BIP_1002, &&sw1_BIP_1003, &&sw1_BIP_1004, &&sw1_BIP_1005, &&sw1_BIP_1006, &&sw1_BIP_1007, &&sw1_BIP_1008, &&sw1_BIP_1009, &&sw1_BIP_1010, &&sw1_BIP_1011, &&sw1_BIP_1012, &&sw1_BIP_1013, &&sw1_BIP_1014, &&sw1_BIP_1015, &&sw1_BIP_1016, &&sw1_BIP_1017, &&sw1_BIP_1018, &&sw1_BIP_1019, &&sw1_BIP_1020, &&sw1_BIP_1021, &&sw1_BIP_1022, &&sw1_BIP_1023, &&sw1_BIP_1024, &&sw1_BIP_1025, &&sw1_BIP_1026, &&sw1_BIP_1027, &&sw1_BIP_1028, &&sw1_BIP_1029, &&sw1_BIP_1030, &&sw1_BIP_1031, &&sw1_BIP_1032, &&sw1_BIP_1033, &&sw1_BIP_1034, &&sw1_BIP_1035, &&sw1_BIP_1036, &&sw1_BIP_1037, &&sw1_BIP_1038, &&sw1_BIP_1039,  };
                                                                //    872  
                                                                //    873        alt = 0
#line 873 "regression-bugs-tmp/soap80-a.imp"
ALT = 0;
                                                                //    874        depth = depth+1; ! Depth of recursion in check.
#line 874 "regression-bugs-tmp/soap80-a.imp"
DEPTH = (((int)(DEPTH)) + (1));
                                                                //    875        ssalt = 0 %if depth=1; ! Initialise ssalt if in top-level call.
#line 875 "regression-bugs-tmp/soap80-a.imp"
if (((DEPTH) != (1))) goto L_0102;
#line 875 "regression-bugs-tmp/soap80-a.imp"
SSALT = 0;
#line 875 "regression-bugs-tmp/soap80-a.imp"
L_0102:;
                                                                //    876  
                                                                //    877        rsptr = ptr; rsobj = obp
#line 877 "regression-bugs-tmp/soap80-a.imp"
RSPTR = PTR;
#line 877 "regression-bugs-tmp/soap80-a.imp"
RSOBJ = OBP;
                                                                //    878        defend = symbol(pos)
#line 878 "regression-bugs-tmp/soap80-a.imp"
DEFEND = (SYMBOL-1300)[POS];
                                                                //    879        pos = pos+1
#line 879 "regression-bugs-tmp/soap80-a.imp"
POS = (((int)(POS)) + (1));
                                                                //    880        %while pos<defend %cycle
#line 880 "regression-bugs-tmp/soap80-a.imp"
L_0103:;
#line 880 "regression-bugs-tmp/soap80-a.imp"
if (((POS) >= (DEFEND))) goto L_0104;
                                                                //    881           alt = alt+1
#line 881 "regression-bugs-tmp/soap80-a.imp"
ALT = (((int)(ALT)) + (1));
                                                                //    882           %if depth=1 %start; ! Outer level - i.e. trying ss alternatives.
#line 882 "regression-bugs-tmp/soap80-a.imp"
if (((DEPTH) != (1))) goto L_0106;
                                                                //    883              ssalt = ssalt+1
#line 883 "regression-bugs-tmp/soap80-a.imp"
SSALT = (((int)(SSALT)) + (1));
                                                                //    884              inconst = false
#line 884 "regression-bugs-tmp/soap80-a.imp"
INCONST = 0;
                                                                //    885           %finish
#line 885 "regression-bugs-tmp/soap80-a.imp"
L_0106:;
                                                                //    886           subdefend = symbol(pos)
#line 886 "regression-bugs-tmp/soap80-a.imp"
SUBDEFEND = (SYMBOL-1300)[POS];
                                                                //    887           pos = pos+1
#line 887 "regression-bugs-tmp/soap80-a.imp"
POS = (((int)(POS)) + (1));
                                                                //    888           res = true
#line 888 "regression-bugs-tmp/soap80-a.imp"
RES = 255;
                                                                //    889           subdefstart = pos
#line 889 "regression-bugs-tmp/soap80-a.imp"
SUBDEFSTART = POS;
                                                                //    890           %while pos<subdefend %cycle
#line 890 "regression-bugs-tmp/soap80-a.imp"
L_0107:;
#line 890 "regression-bugs-tmp/soap80-a.imp"
if (((POS) >= (SUBDEFEND))) goto L_0108;
                                                                //    891              item = symbol(pos)
#line 891 "regression-bugs-tmp/soap80-a.imp"
ITEM = (SYMBOL-1300)[POS];
                                                                //    892              %if 999<=item<1300 %then ->bip(item)
#line 892 "regression-bugs-tmp/soap80-a.imp"
if ((((999) > (ITEM))) || (((ITEM) >= (1300)))) goto L_010a;
#line 892 "regression-bugs-tmp/soap80-a.imp"
sw1_BIP_idx = ITEM; if ((999 <= sw1_BIP_idx) && (sw1_BIP_idx <= 1039)) goto *(sw1_BIP-999)[sw1_BIP_idx];  /* Bounds=999:1039 */ else {
   /*_imp_signal(8, 2, sw1_BIP_idx);*/
   fprintf(stderr, "%%SWITCH index BIP(%d) not in range 999:1039 at %s:%d\n",
           sw1_BIP_idx, (_imp_current_file != 0 ? _imp_current_file : __FILE__),
           (_imp_current_line != 0 ? _imp_current_line : __LINE__));
           exit(1);
}
#line 892 "regression-bugs-tmp/soap80-a.imp"
L_010a:;
                                                                //    893              %if item<999 %then res = compare(item)
#line 893 "regression-bugs-tmp/soap80-a.imp"
if (((ITEM) >= (999))) goto L_010b;
#line 893 "regression-bugs-tmp/soap80-a.imp"
RES = COMPARE(ITEM);
#line 893 "regression-bugs-tmp/soap80-a.imp"
L_010b:;
                                                                //    894              %if item>=1300 %then res = check(item)
#line 894 "regression-bugs-tmp/soap80-a.imp"
if (((ITEM) < (1300))) goto L_010c;
#line 894 "regression-bugs-tmp/soap80-a.imp"
RES = CHECK(ITEM);
#line 894 "regression-bugs-tmp/soap80-a.imp"
L_010c:;
                                                                //    895              pos = pos+1
#line 895 "regression-bugs-tmp/soap80-a.imp"
POS = (((int)(POS)) + (1));
                                                                //    896              ->bypass
#line 896 "regression-bugs-tmp/soap80-a.imp"
goto U_1002;
                                                                //    897  
                                                                //    898  bip(999):
#line 898 "regression-bugs-tmp/soap80-a.imp"
sw1_BIP_999:;
                                                                //    899              pos = subdefstart; ! Star function.
#line 899 "regression-bugs-tmp/soap80-a.imp"
POS = SUBDEFSTART;
                                                                //    900              rsptr = ptr; rsobj = obp
#line 900 "regression-bugs-tmp/soap80-a.imp"
RSPTR = PTR;
#line 900 "regression-bugs-tmp/soap80-a.imp"
RSOBJ = OBP;
                                                                //    901              ->bypass
#line 901 "regression-bugs-tmp/soap80-a.imp"
goto U_1002;
                                                                //    902  
                                                                //    903  bip(1000):
#line 903 "regression-bugs-tmp/soap80-a.imp"
sw1_BIP_1000:;
                                                                //    904              depth = depth-1; %result = true; ! Zero function.
#line 904 "regression-bugs-tmp/soap80-a.imp"
DEPTH = (((int)(DEPTH)) - (1));
#line 904 "regression-bugs-tmp/soap80-a.imp"
/* Remove %on %event handler here if present for this block */
return 255;
                                                                //    905  
                                                                //    906  bip(1001):
#line 906 "regression-bugs-tmp/soap80-a.imp"
sw1_BIP_1001:;
                                                                //    907              ! Name
                                                                //    908              ch = nextnonsp(inconst)
#line 908 "regression-bugs-tmp/soap80-a.imp"
CH = NEXTNONSP(INCONST);
                                                                //    909              j = ptr; ptr = ptr+1; i = obp
#line 909 "regression-bugs-tmp/soap80-a.imp"
J = PTR;
#line 909 "regression-bugs-tmp/soap80-a.imp"
PTR = (((int)(PTR)) + (1));
#line 909 "regression-bugs-tmp/soap80-a.imp"
I = OBP;
                                                                //    910              %if chartype(ch)&letter=0 %then res = false %and ->inc
#line 910 "regression-bugs-tmp/soap80-a.imp"
if (((((CHARTYPE[CH]) & (32))) != (0))) goto L_010d;
#line 910 "regression-bugs-tmp/soap80-a.imp"
RES = 0;
#line 910 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
#line 910 "regression-bugs-tmp/soap80-a.imp"
L_010d:;
                                                                //    911              %if chartype(ch)&constart#0 %and %c
#line 911 "regression-bugs-tmp/soap80-a.imp"
if (((((CHARTYPE[CH]) & (2))) == (0))) goto L_010e;
#line 911 "regression-bugs-tmp/soap80-a.imp"
if (((NEXTNONSP(((INCONST) | (P.SPACNAM)))) != (39))) goto L_010e;
#line 911 "regression-bugs-tmp/soap80-a.imp"
RES = 0;
#line 911 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
#line 911 "regression-bugs-tmp/soap80-a.imp"
L_010e:;
                                                                //    912               nextnonsp(inconst!p_spacnam)=squotes %then res = false %and ->inc
                                                                //    913              ptr = j; obp = i; ! AVOID FUNNY SPACING ON 1 LETTER NAMES
#line 913 "regression-bugs-tmp/soap80-a.imp"
PTR = J;
#line 913 "regression-bugs-tmp/soap80-a.imp"
OBP = I;
                                                                //    914              j = outbuf(obp-1); ! LAST CHAR OUT
#line 914 "regression-bugs-tmp/soap80-a.imp"
J = OUTBUF[(((int)(OBP)) - (1))];
                                                                //    915              %if j>128 %or chartype(j)&letter#0 %or j=')' %then %c
#line 915 "regression-bugs-tmp/soap80-a.imp"
if (((J) > (128))) goto L_00d2;
#line 915 "regression-bugs-tmp/soap80-a.imp"
if (((((CHARTYPE[J]) & (32))) != (0))) goto L_00d2;
#line 915 "regression-bugs-tmp/soap80-a.imp"
if (((J) != (41))) goto L_010f;
#line 915 "regression-bugs-tmp/soap80-a.imp"
L_00d2:;
#line 915 "regression-bugs-tmp/soap80-a.imp"
OUTBUF[OBP] = 32;
#line 915 "regression-bugs-tmp/soap80-a.imp"
OBP = (((int)(OBP)) + (1));
#line 915 "regression-bugs-tmp/soap80-a.imp"
L_010f:;
                                                                //    916               outbuf(obp) = ' ' %and obp = obp+1
                                                                //    917              %while chartype(ch)&(letter!number)#0 %cycle
#line 917 "regression-bugs-tmp/soap80-a.imp"
L_0110:;
#line 917 "regression-bugs-tmp/soap80-a.imp"
if (((((CHARTYPE[CH]) & (((32) | (16))))) == (0))) goto L_0111;
                                                                //    918                 %if chartype(ch)&letter#0 %and p_lcasnam=false %start
#line 918 "regression-bugs-tmp/soap80-a.imp"
if (((((CHARTYPE[CH]) & (32))) == (0))) goto L_0113;
#line 918 "regression-bugs-tmp/soap80-a.imp"
if (((P.LCASNAM) != (0))) goto L_0113;
                                                                //    919                    ! Letter case in names to be controlled by P_UCKEY.
                                                                //    920                    %if p_uckey=true %then ch = ch&(\32) %else ch = ch!32
#line 920 "regression-bugs-tmp/soap80-a.imp"
if (((P.UCKEY) != (255))) goto L_0114;
#line 920 "regression-bugs-tmp/soap80-a.imp"
CH = ((CH) & ((~(32))));
#line 920 "regression-bugs-tmp/soap80-a.imp"
goto L_0115;
#line 920 "regression-bugs-tmp/soap80-a.imp"
L_0114:;
#line 920 "regression-bugs-tmp/soap80-a.imp"
CH = ((CH) | (32));
#line 920 "regression-bugs-tmp/soap80-a.imp"
L_0115:;
                                                                //    921                 %finish
#line 921 "regression-bugs-tmp/soap80-a.imp"
L_0113:;
                                                                //    922                 outbuf(obp) = ch; obp = obp+1
#line 922 "regression-bugs-tmp/soap80-a.imp"
OUTBUF[OBP] = CH;
#line 922 "regression-bugs-tmp/soap80-a.imp"
OBP = (((int)(OBP)) + (1));
                                                                //    923                 j = obp; ! Position after latest character of name.
#line 923 "regression-bugs-tmp/soap80-a.imp"
J = OBP;
                                                                //    924                 ptr = ptr+1
#line 924 "regression-bugs-tmp/soap80-a.imp"
PTR = (((int)(PTR)) + (1));
                                                                //    925                 ch = nextnonsp(inconst!p_spacnam)
#line 925 "regression-bugs-tmp/soap80-a.imp"
CH = NEXTNONSP(((INCONST) | (P.SPACNAM)));
                                                                //    926              %repeat
#line 926 "regression-bugs-tmp/soap80-a.imp"
goto L_0110;
#line 926 "regression-bugs-tmp/soap80-a.imp"
L_0111:;
                                                                //    927              ! Now j gives posn in outbuf after last character of name, and obp
                                                                //    928              ! gives next free posn in outbuf.
                                                                //    929              %if p_spacnam=true %and inconst=false %and j<obp %start
#line 929 "regression-bugs-tmp/soap80-a.imp"
if (((P.SPACNAM) != (255))) goto L_0116;
#line 929 "regression-bugs-tmp/soap80-a.imp"
if (((INCONST) != (0))) goto L_0116;
#line 929 "regression-bugs-tmp/soap80-a.imp"
if (((J) >= (OBP))) goto L_0116;
                                                                //    930                 ! Throw away bytes after name, apart from curly comments.
                                                                //    931                 i = j
#line 931 "regression-bugs-tmp/soap80-a.imp"
I = J;
                                                                //    932                 %cycle
#line 932 "regression-bugs-tmp/soap80-a.imp"
L_0117:;
                                                                //    933                    i = i+1 %while i<obp %and outbuf(i)&127#'{'
#line 933 "regression-bugs-tmp/soap80-a.imp"
L_011a:;
#line 933 "regression-bugs-tmp/soap80-a.imp"
if (((I) >= (OBP))) goto L_011b;
#line 933 "regression-bugs-tmp/soap80-a.imp"
if (((((OUTBUF[I]) & (127))) == (123))) goto L_011b;
#line 933 "regression-bugs-tmp/soap80-a.imp"
I = (((int)(I)) + (1));
#line 933 "regression-bugs-tmp/soap80-a.imp"
goto L_011a;
#line 933 "regression-bugs-tmp/soap80-a.imp"
L_011b:;
                                                                //    934                    %exit %if i=obp
#line 934 "regression-bugs-tmp/soap80-a.imp"
if (((I) != (OBP))) goto L_011d;
#line 934 "regression-bugs-tmp/soap80-a.imp"
goto L_0118;
#line 934 "regression-bugs-tmp/soap80-a.imp"
L_011d:;
                                                                //    935                    %if j<i %start
#line 935 "regression-bugs-tmp/soap80-a.imp"
if (((J) >= (I))) goto L_011e;
                                                                //    936                       outbuf(j) = ' '
#line 936 "regression-bugs-tmp/soap80-a.imp"
OUTBUF[J] = 32;
                                                                //    937                       %cycle
#line 937 "regression-bugs-tmp/soap80-a.imp"
L_011f:;
                                                                //    938                          j = j+1
#line 938 "regression-bugs-tmp/soap80-a.imp"
J = (((int)(J)) + (1));
                                                                //    939                          outbuf(j) = outbuf(i)
#line 939 "regression-bugs-tmp/soap80-a.imp"
OUTBUF[J] = OUTBUF[I];
                                                                //    940                          i = i+1
#line 940 "regression-bugs-tmp/soap80-a.imp"
I = (((int)(I)) + (1));
                                                                //    941                       %repeat %until outbuf(j)&127='}'
#line 941 "regression-bugs-tmp/soap80-a.imp"
if (((((OUTBUF[J]) & (127))) == (125))) goto L_0120;
#line 941 "regression-bugs-tmp/soap80-a.imp"
goto L_011f;
#line 941 "regression-bugs-tmp/soap80-a.imp"
L_0120:;
                                                                //    942                    %finish %else %start
#line 942 "regression-bugs-tmp/soap80-a.imp"
goto L_0122;
#line 942 "regression-bugs-tmp/soap80-a.imp"
L_011e:;
                                                                //    943                       j = j+1 %until outbuf(j)&127='}'
#line 943 "regression-bugs-tmp/soap80-a.imp"
L_0123:;
#line 943 "regression-bugs-tmp/soap80-a.imp"
J = (((int)(J)) + (1));
#line 943 "regression-bugs-tmp/soap80-a.imp"
if (((((OUTBUF[J]) & (127))) == (125))) goto L_0124;
#line 943 "regression-bugs-tmp/soap80-a.imp"
goto L_0123;
#line 943 "regression-bugs-tmp/soap80-a.imp"
L_0124:;
                                                                //    944                       i = j+1
#line 944 "regression-bugs-tmp/soap80-a.imp"
I = (((int)(J)) + (1));
                                                                //    945                    %finish
#line 945 "regression-bugs-tmp/soap80-a.imp"
L_0122:;
                                                                //    946                    j = j+1
#line 946 "regression-bugs-tmp/soap80-a.imp"
J = (((int)(J)) + (1));
                                                                //    947                 %repeat
#line 947 "regression-bugs-tmp/soap80-a.imp"
goto L_0117;
#line 947 "regression-bugs-tmp/soap80-a.imp"
L_0118:;
                                                                //    948                 obp = j
#line 948 "regression-bugs-tmp/soap80-a.imp"
OBP = J;
                                                                //    949              %finish
#line 949 "regression-bugs-tmp/soap80-a.imp"
L_0116:;
                                                                //    950              ->inc
#line 950 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
                                                                //    951  bip(1005):
#line 951 "regression-bugs-tmp/soap80-a.imp"
sw1_BIP_1005:;
                                                                //    952              ! N - Number.
                                                                //    953              ch = nextnonsp(inconst)
#line 953 "regression-bugs-tmp/soap80-a.imp"
CH = NEXTNONSP(INCONST);
                                                                //    954              %if chartype(ch)&number=0 %then res = false %and ->inc
#line 954 "regression-bugs-tmp/soap80-a.imp"
if (((((CHARTYPE[CH]) & (16))) != (0))) goto L_0126;
#line 954 "regression-bugs-tmp/soap80-a.imp"
RES = 0;
#line 954 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
#line 954 "regression-bugs-tmp/soap80-a.imp"
L_0126:;
                                                                //    955  bip(1002):
#line 955 "regression-bugs-tmp/soap80-a.imp"
sw1_BIP_1002:;
                                                                //    956              ! Iconst.
                                                                //    957  bip(1003):
#line 957 "regression-bugs-tmp/soap80-a.imp"
sw1_BIP_1003:;
                                                                //    958              ! Const.
                                                                //    959              ch = nextnonsp(inconst)
#line 959 "regression-bugs-tmp/soap80-a.imp"
CH = NEXTNONSP(INCONST);
                                                                //    960              ptr = ptr+1
#line 960 "regression-bugs-tmp/soap80-a.imp"
PTR = (((int)(PTR)) + (1));
                                                                //    961              res = false %and ->inc %unless %c
#line 961 "regression-bugs-tmp/soap80-a.imp"
if (((((CHARTYPE[CH]) & (((4) | (64))))) != (0))) goto L_0127;
#line 961 "regression-bugs-tmp/soap80-a.imp"
if (((((CHARTYPE[CH]) & (2))) == (0))) goto L_0112;
#line 961 "regression-bugs-tmp/soap80-a.imp"
if (((NEXTNONSP(INCONST)) == (39))) goto L_0127;
#line 961 "regression-bugs-tmp/soap80-a.imp"
L_0112:;
#line 961 "regression-bugs-tmp/soap80-a.imp"
RES = 0;
#line 961 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
#line 961 "regression-bugs-tmp/soap80-a.imp"
L_0127:;
                                                                //    962               chartype(ch)&(quotes!constfirst)#0 %or %c
                                                                //    963               (chartype(ch)&constart#0 %and nextnonsp(inconst)=squotes)
                                                                //    964              %if outbuf(obp-1)>128 %or chartype(outbuf(obp-1))&letter#0 %then %c
#line 964 "regression-bugs-tmp/soap80-a.imp"
if (((OUTBUF[(((int)(OBP)) - (1))]) > (128))) goto L_0128;
#line 964 "regression-bugs-tmp/soap80-a.imp"
if (((((CHARTYPE[OUTBUF[(((int)(OBP)) - (1))]]) & (32))) == (0))) goto L_0129;
#line 964 "regression-bugs-tmp/soap80-a.imp"
L_0128:;
#line 964 "regression-bugs-tmp/soap80-a.imp"
OUTBUF[OBP] = 32;
#line 964 "regression-bugs-tmp/soap80-a.imp"
OBP = (((int)(OBP)) + (1));
#line 964 "regression-bugs-tmp/soap80-a.imp"
L_0129:;
                                                                //    965               outbuf(obp) = ' ' %and obp = obp+1
                                                                //    966              %if chartype(ch)&constfirst=0 %start
#line 966 "regression-bugs-tmp/soap80-a.imp"
if (((((CHARTYPE[CH]) & (64))) != (0))) goto L_012a;
                                                                //    967                 %if chartype(ch)&constart#0 %start
#line 967 "regression-bugs-tmp/soap80-a.imp"
if (((((CHARTYPE[CH]) & (2))) == (0))) goto L_012b;
                                                                //    968                    outbuf(obp) = ch; obp = obp+1
#line 968 "regression-bugs-tmp/soap80-a.imp"
OUTBUF[OBP] = CH;
#line 968 "regression-bugs-tmp/soap80-a.imp"
OBP = (((int)(OBP)) + (1));
                                                                //    969                    strdelimiter = nextnonsp(inconst)
#line 969 "regression-bugs-tmp/soap80-a.imp"
STRDELIMITER = NEXTNONSP(INCONST);
                                                                //    970                    ptr = ptr+1
#line 970 "regression-bugs-tmp/soap80-a.imp"
PTR = (((int)(PTR)) + (1));
                                                                //    971                 %finish %else strdelimiter = ch
#line 971 "regression-bugs-tmp/soap80-a.imp"
goto L_012c;
#line 971 "regression-bugs-tmp/soap80-a.imp"
L_012b:;
#line 971 "regression-bugs-tmp/soap80-a.imp"
STRDELIMITER = CH;
#line 971 "regression-bugs-tmp/soap80-a.imp"
L_012c:;
                                                                //    972                 outbuf(obp) = strdelimiter; obp = obp+1
#line 972 "regression-bugs-tmp/soap80-a.imp"
OUTBUF[OBP] = STRDELIMITER;
#line 972 "regression-bugs-tmp/soap80-a.imp"
OBP = (((int)(OBP)) + (1));
                                                                //    973                 %cycle
#line 973 "regression-bugs-tmp/soap80-a.imp"
L_012d:;
                                                                //    974                    %if sc(ptr)=strdelimiter %start
#line 974 "regression-bugs-tmp/soap80-a.imp"
if (((SC[PTR]) != (STRDELIMITER))) goto L_0130;
                                                                //    975                       outbuf(obp) = strdelimiter!instring
#line 975 "regression-bugs-tmp/soap80-a.imp"
OUTBUF[OBP] = ((STRDELIMITER) | (256));
                                                                //    976                       %if sc(ptr+1)#strdelimiter %then %exit
#line 976 "regression-bugs-tmp/soap80-a.imp"
if (((SC[(((int)(PTR)) + (1))]) == (STRDELIMITER))) goto L_0131;
#line 976 "regression-bugs-tmp/soap80-a.imp"
goto L_012e;
#line 976 "regression-bugs-tmp/soap80-a.imp"
L_0131:;
                                                                //    977                       outbuf(obp+1) = strdelimiter!instring
#line 977 "regression-bugs-tmp/soap80-a.imp"
OUTBUF[(((int)(OBP)) + (1))] = ((STRDELIMITER) | (256));
                                                                //    978                       obp = obp+2; ptr = ptr+2
#line 978 "regression-bugs-tmp/soap80-a.imp"
OBP = (((int)(OBP)) + (2));
#line 978 "regression-bugs-tmp/soap80-a.imp"
PTR = (((int)(PTR)) + (2));
                                                                //    979                    %finish %else %start
#line 979 "regression-bugs-tmp/soap80-a.imp"
goto L_0132;
#line 979 "regression-bugs-tmp/soap80-a.imp"
L_0130:;
                                                                //    980                       ch = sc(ptr)
#line 980 "regression-bugs-tmp/soap80-a.imp"
CH = SC[PTR];
                                                                //    981                       outbuf(obp) = ch!instring
#line 981 "regression-bugs-tmp/soap80-a.imp"
OUTBUF[OBP] = ((CH) | (256));
                                                                //    982                       obp = obp+1; ptr = ptr+1
#line 982 "regression-bugs-tmp/soap80-a.imp"
OBP = (((int)(OBP)) + (1));
#line 982 "regression-bugs-tmp/soap80-a.imp"
PTR = (((int)(PTR)) + (1));
                                                                //    983                       %if ch=nl %start
#line 983 "regression-bugs-tmp/soap80-a.imp"
if (((CH) != (10))) goto L_0133;
                                                                //    984                          getline(ptr)
#line 984 "regression-bugs-tmp/soap80-a.imp"
GETLINE(PTR);
                                                                //    985                       %finish
#line 985 "regression-bugs-tmp/soap80-a.imp"
L_0133:;
                                                                //    986                    %finish
#line 986 "regression-bugs-tmp/soap80-a.imp"
L_0132:;
                                                                //    987                 %repeat
#line 987 "regression-bugs-tmp/soap80-a.imp"
goto L_012d;
#line 987 "regression-bugs-tmp/soap80-a.imp"
L_012e:;
                                                                //    988                 ptr = ptr+1; obp = obp+1
#line 988 "regression-bugs-tmp/soap80-a.imp"
PTR = (((int)(PTR)) + (1));
#line 988 "regression-bugs-tmp/soap80-a.imp"
OBP = (((int)(OBP)) + (1));
                                                                //    989              %finish %else %start
#line 989 "regression-bugs-tmp/soap80-a.imp"
goto L_0134;
#line 989 "regression-bugs-tmp/soap80-a.imp"
L_012a:;
                                                                //    990                 ptr = ptr-1
#line 990 "regression-bugs-tmp/soap80-a.imp"
PTR = (((int)(PTR)) - (1));
                                                                //    991                 %cycle
#line 991 "regression-bugs-tmp/soap80-a.imp"
L_0135:;
                                                                //    992                    %cycle
#line 992 "regression-bugs-tmp/soap80-a.imp"
L_0138:;
                                                                //    993                       %exit %if chartype(ch)&constcont=0
#line 993 "regression-bugs-tmp/soap80-a.imp"
if (((((CHARTYPE[CH]) & (128))) != (0))) goto L_013b;
#line 993 "regression-bugs-tmp/soap80-a.imp"
goto L_0139;
#line 993 "regression-bugs-tmp/soap80-a.imp"
L_013b:;
                                                                //    994                       outbuf(obp) = ch; obp = obp+1
#line 994 "regression-bugs-tmp/soap80-a.imp"
OUTBUF[OBP] = CH;
#line 994 "regression-bugs-tmp/soap80-a.imp"
OBP = (((int)(OBP)) + (1));
                                                                //    995                       ptr = ptr+1
#line 995 "regression-bugs-tmp/soap80-a.imp"
PTR = (((int)(PTR)) + (1));
                                                                //    996                       ch = nextnonsp(inconst)
#line 996 "regression-bugs-tmp/soap80-a.imp"
CH = NEXTNONSP(INCONST);
                                                                //    997                    %repeat
#line 997 "regression-bugs-tmp/soap80-a.imp"
goto L_0138;
#line 997 "regression-bugs-tmp/soap80-a.imp"
L_0139:;
                                                                //    998                    %if '_'#ch#'@' %then %exit
#line 998 "regression-bugs-tmp/soap80-a.imp"
if ((((95) == (CH))) || (((CH) == (64)))) goto L_013c;
#line 998 "regression-bugs-tmp/soap80-a.imp"
goto L_0136;
#line 998 "regression-bugs-tmp/soap80-a.imp"
L_013c:;
                                                                //    999                    %if ch='@' %then j = number %else j = number!letter
#line 999 "regression-bugs-tmp/soap80-a.imp"
if (((CH) != (64))) goto L_013d;
#line 999 "regression-bugs-tmp/soap80-a.imp"
J = 16;
#line 999 "regression-bugs-tmp/soap80-a.imp"
goto L_013e;
#line 999 "regression-bugs-tmp/soap80-a.imp"
L_013d:;
#line 999 "regression-bugs-tmp/soap80-a.imp"
J = ((16) | (32));
#line 999 "regression-bugs-tmp/soap80-a.imp"
L_013e:;
                                                                //   1000                    ! Second part of @ and radix consts
                                                                //   1001                    %cycle
#line 1001 "regression-bugs-tmp/soap80-a.imp"
L_013f:;
                                                                //   1002                       outbuf(obp) = ch; obp = obp+1
#line 1002 "regression-bugs-tmp/soap80-a.imp"
OUTBUF[OBP] = CH;
#line 1002 "regression-bugs-tmp/soap80-a.imp"
OBP = (((int)(OBP)) + (1));
                                                                //   1003                       ptr = ptr+1
#line 1003 "regression-bugs-tmp/soap80-a.imp"
PTR = (((int)(PTR)) + (1));
                                                                //   1004                       ch = nextnonsp(inconst)
#line 1004 "regression-bugs-tmp/soap80-a.imp"
CH = NEXTNONSP(INCONST);
                                                                //   1005                    %repeat %until chartype(ch)&j=0
#line 1005 "regression-bugs-tmp/soap80-a.imp"
if (((((CHARTYPE[CH]) & (J))) == (0))) goto L_0140;
#line 1005 "regression-bugs-tmp/soap80-a.imp"
goto L_013f;
#line 1005 "regression-bugs-tmp/soap80-a.imp"
L_0140:;
                                                                //   1006                 %repeat
#line 1006 "regression-bugs-tmp/soap80-a.imp"
goto L_0135;
#line 1006 "regression-bugs-tmp/soap80-a.imp"
L_0136:;
                                                                //   1007              %finish
#line 1007 "regression-bugs-tmp/soap80-a.imp"
L_0134:;
                                                                //   1008              ->inc
#line 1008 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
                                                                //   1009  bip(1004):! Phrase check extended type
#line 1009 "regression-bugs-tmp/soap80-a.imp"
sw1_BIP_1004:;
                                                                //   1010              ch = nextnonsp(inconst)
#line 1010 "regression-bugs-tmp/soap80-a.imp"
CH = NEXTNONSP(INCONST);
                                                                //   1011              res = false %unless %c
#line 1011 "regression-bugs-tmp/soap80-a.imp"
if (((CH) <= (128))) goto L_0142;
#line 1011 "regression-bugs-tmp/soap80-a.imp"
if ((((((int)((((unsigned int)((-2147483648))) >> (((CH) & (31)))))) & (549990400))) != (0))) goto L_0143;
#line 1011 "regression-bugs-tmp/soap80-a.imp"
L_0142:;
#line 1011 "regression-bugs-tmp/soap80-a.imp"
RES = 0;
#line 1011 "regression-bugs-tmp/soap80-a.imp"
L_0143:;
                                                                //   1012               ch>underline %and X'80000000'>>(ch&31)&X'20C83000'#0
                                                                //   1013              ->inc
#line 1013 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
                                                                //   1014  bip(1038):! Include
#line 1014 "regression-bugs-tmp/soap80-a.imp"
sw1_BIP_1038:;
                                                                //   1015  bip(1006):! S - End statement.
#line 1015 "regression-bugs-tmp/soap80-a.imp"
sw1_BIP_1006:;
                                                                //   1016              ch = nextnonsp(inconst)
#line 1016 "regression-bugs-tmp/soap80-a.imp"
CH = NEXTNONSP(INCONST);
                                                                //   1017              %if chartype(ch)&endst=0 %then res = false %and ->inc
#line 1017 "regression-bugs-tmp/soap80-a.imp"
if (((((CHARTYPE[CH]) & (8))) != (0))) goto L_0144;
#line 1017 "regression-bugs-tmp/soap80-a.imp"
RES = 0;
#line 1017 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
#line 1017 "regression-bugs-tmp/soap80-a.imp"
L_0144:;
                                                                //   1018              obp = obp-1 %while obp>1 %and outbuf(obp-1)=' '
#line 1018 "regression-bugs-tmp/soap80-a.imp"
L_0145:;
#line 1018 "regression-bugs-tmp/soap80-a.imp"
if (((OBP) <= (1))) goto L_0146;
#line 1018 "regression-bugs-tmp/soap80-a.imp"
if (((OUTBUF[(((int)(OBP)) - (1))]) != (32))) goto L_0146;
#line 1018 "regression-bugs-tmp/soap80-a.imp"
OBP = (((int)(OBP)) - (1));
#line 1018 "regression-bugs-tmp/soap80-a.imp"
goto L_0145;
#line 1018 "regression-bugs-tmp/soap80-a.imp"
L_0146:;
                                                                //   1019              outbuf(obp) = ch; obp = obp+1
#line 1019 "regression-bugs-tmp/soap80-a.imp"
OUTBUF[OBP] = CH;
#line 1019 "regression-bugs-tmp/soap80-a.imp"
OBP = (((int)(OBP)) + (1));
                                                                //   1020              ->inc
#line 1020 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
                                                                //   1021  bip(1007):! Text - comment string.
#line 1021 "regression-bugs-tmp/soap80-a.imp"
sw1_BIP_1007:;
                                                                //   1022              ch = nextnonsp(inconst)
#line 1022 "regression-bugs-tmp/soap80-a.imp"
CH = NEXTNONSP(INCONST);
                                                                //   1023              %if chartype(ch)&rem=0 %then res = false %and ->inc
#line 1023 "regression-bugs-tmp/soap80-a.imp"
if (((((CHARTYPE[CH]) & (1))) != (0))) goto L_0148;
#line 1023 "regression-bugs-tmp/soap80-a.imp"
RES = 0;
#line 1023 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
#line 1023 "regression-bugs-tmp/soap80-a.imp"
L_0148:;
                                                                //   1024              %if ch&underline#0 %and (outbuf(obp-1)&underline=0) %then %c
#line 1024 "regression-bugs-tmp/soap80-a.imp"
if (((((CH) & (128))) == (0))) goto L_0149;
#line 1024 "regression-bugs-tmp/soap80-a.imp"
if (((((OUTBUF[(((int)(OBP)) - (1))]) & (128))) != (0))) goto L_0149;
#line 1024 "regression-bugs-tmp/soap80-a.imp"
OUTBUF[OBP] = 37;
#line 1024 "regression-bugs-tmp/soap80-a.imp"
OBP = (((int)(OBP)) + (1));
#line 1024 "regression-bugs-tmp/soap80-a.imp"
L_0149:;
                                                                //   1025               outbuf(obp) = '%' %and obp = obp+1
                                                                //   1026              outbuf(obp) = ch; obp = obp+1
#line 1026 "regression-bugs-tmp/soap80-a.imp"
OUTBUF[OBP] = CH;
#line 1026 "regression-bugs-tmp/soap80-a.imp"
OBP = (((int)(OBP)) + (1));
                                                                //   1027              ptr = ptr+1
#line 1027 "regression-bugs-tmp/soap80-a.imp"
PTR = (((int)(PTR)) + (1));
                                                                //   1028              %if ch='C'+underline %start
#line 1028 "regression-bugs-tmp/soap80-a.imp"
if (((CH) != (195))) goto L_014a;
                                                                //   1029                 outbuf(obp-1) = ch!32 %if p_uckey=false
#line 1029 "regression-bugs-tmp/soap80-a.imp"
if (((P.UCKEY) != (0))) goto L_014b;
#line 1029 "regression-bugs-tmp/soap80-a.imp"
OUTBUF[(((int)(OBP)) - (1))] = ((CH) | (32));
#line 1029 "regression-bugs-tmp/soap80-a.imp"
L_014b:;
                                                                //   1030                 %for i = 2, 1, 7 %cycle
#line 1030 "regression-bugs-tmp/soap80-a.imp"
I = 1;
if ((((7)-(2)) % (1)) != 0) _imp_signal(5,1,0,"Illegal cycle I = 2, 1, 7");
L_014c:;
if (I == 7) goto L_014d;
I += 1;
                                                                //   1031                    ch = nextnonsp(inconst)
#line 1031 "regression-bugs-tmp/soap80-a.imp"
CH = NEXTNONSP(INCONST);
                                                                //   1032                    %if ch#keycom(i)+underline %then res = false %and ->inc
#line 1032 "regression-bugs-tmp/soap80-a.imp"
if (((CH) == ((((int)(KEYCOM[I])) + (128))))) goto L_014f;
#line 1032 "regression-bugs-tmp/soap80-a.imp"
RES = 0;
#line 1032 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
#line 1032 "regression-bugs-tmp/soap80-a.imp"
L_014f:;
                                                                //   1033                    %if p_uckey=false %then ch = ch!32
#line 1033 "regression-bugs-tmp/soap80-a.imp"
if (((P.UCKEY) != (0))) goto L_0150;
#line 1033 "regression-bugs-tmp/soap80-a.imp"
CH = ((CH) | (32));
#line 1033 "regression-bugs-tmp/soap80-a.imp"
L_0150:;
                                                                //   1034                    outbuf(obp) = ch
#line 1034 "regression-bugs-tmp/soap80-a.imp"
OUTBUF[OBP] = CH;
                                                                //   1035                    obp = obp+1
#line 1035 "regression-bugs-tmp/soap80-a.imp"
OBP = (((int)(OBP)) + (1));
                                                                //   1036                    ptr = ptr+1
#line 1036 "regression-bugs-tmp/soap80-a.imp"
PTR = (((int)(PTR)) + (1));
                                                                //   1037                 %repeat
#line 1037 "regression-bugs-tmp/soap80-a.imp"
goto L_014c;
#line 1037 "regression-bugs-tmp/soap80-a.imp"
L_014d:;
                                                                //   1038              %finish
#line 1038 "regression-bugs-tmp/soap80-a.imp"
L_014a:;
                                                                //   1039              str = false
#line 1039 "regression-bugs-tmp/soap80-a.imp"
STR = 0;
                                                                //   1040              %cycle
#line 1040 "regression-bugs-tmp/soap80-a.imp"
L_0151:;
                                                                //   1041                 %while sc(ptr)#nl %and (str=true %or sc(ptr)#';') %cycle
#line 1041 "regression-bugs-tmp/soap80-a.imp"
L_0154:;
#line 1041 "regression-bugs-tmp/soap80-a.imp"
if (((SC[PTR]) == (10))) goto L_0155;
#line 1041 "regression-bugs-tmp/soap80-a.imp"
if (((STR) == (255))) goto L_0156;
#line 1041 "regression-bugs-tmp/soap80-a.imp"
if (((SC[PTR]) == (59))) goto L_0155;
#line 1041 "regression-bugs-tmp/soap80-a.imp"
L_0156:;
                                                                //   1042                    ch = sc(ptr)
#line 1042 "regression-bugs-tmp/soap80-a.imp"
CH = SC[PTR];
                                                                //   1043                    %if ch=squotes %or ch=dquotes %start
#line 1043 "regression-bugs-tmp/soap80-a.imp"
if (((CH) == (39))) goto L_0141;
#line 1043 "regression-bugs-tmp/soap80-a.imp"
if (((CH) != (34))) goto L_0157;
#line 1043 "regression-bugs-tmp/soap80-a.imp"
L_0141:;
                                                                //   1044                       %if str=false %then %c
#line 1044 "regression-bugs-tmp/soap80-a.imp"
if (((STR) != (0))) goto L_0158;
#line 1044 "regression-bugs-tmp/soap80-a.imp"
STRDELIMITER = CH;
#line 1044 "regression-bugs-tmp/soap80-a.imp"
STR = 255;
#line 1044 "regression-bugs-tmp/soap80-a.imp"
goto L_0159;
#line 1044 "regression-bugs-tmp/soap80-a.imp"
L_0158:;
#line 1044 "regression-bugs-tmp/soap80-a.imp"
if (((CH) != (STRDELIMITER))) goto L_015a;
#line 1044 "regression-bugs-tmp/soap80-a.imp"
STR = 0;
#line 1044 "regression-bugs-tmp/soap80-a.imp"
L_015a:;
#line 1044 "regression-bugs-tmp/soap80-a.imp"
L_0159:;
                                                                //   1045                        strdelimiter = ch %and str = true %else %if %c
                                                                //   1046                        ch=strdelimiter %then str = false
                                                                //   1047                    %finish
#line 1047 "regression-bugs-tmp/soap80-a.imp"
L_0157:;
                                                                //   1048                    %if ch&underline#0 %and p_uckey=false %and ch#rs!128 %then %c
#line 1048 "regression-bugs-tmp/soap80-a.imp"
if (((((CH) & (128))) == (0))) goto L_015b;
#line 1048 "regression-bugs-tmp/soap80-a.imp"
if (((P.UCKEY) != (0))) goto L_015b;
#line 1048 "regression-bugs-tmp/soap80-a.imp"
if (((CH) == (((30) | (128))))) goto L_015b;
#line 1048 "regression-bugs-tmp/soap80-a.imp"
CH = ((CH) | (32));
#line 1048 "regression-bugs-tmp/soap80-a.imp"
L_015b:;
                                                                //   1049                     ch = ch!32
                                                                //   1050                    outbuf(obp) = ch; obp = obp+1
#line 1050 "regression-bugs-tmp/soap80-a.imp"
OUTBUF[OBP] = CH;
#line 1050 "regression-bugs-tmp/soap80-a.imp"
OBP = (((int)(OBP)) + (1));
                                                                //   1051                    ptr = ptr+1
#line 1051 "regression-bugs-tmp/soap80-a.imp"
PTR = (((int)(PTR)) + (1));
                                                                //   1052                 %repeat
#line 1052 "regression-bugs-tmp/soap80-a.imp"
goto L_0154;
#line 1052 "regression-bugs-tmp/soap80-a.imp"
L_0155:;
                                                                //   1053                 outbuf(obp) = sc(ptr); obp = obp+1
#line 1053 "regression-bugs-tmp/soap80-a.imp"
OUTBUF[OBP] = SC[PTR];
#line 1053 "regression-bugs-tmp/soap80-a.imp"
OBP = (((int)(OBP)) + (1));
                                                                //   1054                 ptr = ptr+1
#line 1054 "regression-bugs-tmp/soap80-a.imp"
PTR = (((int)(PTR)) + (1));
                                                                //   1055                 %exit %if outbuf(obp-1)=nl
#line 1055 "regression-bugs-tmp/soap80-a.imp"
if (((OUTBUF[(((int)(OBP)) - (1))]) != (10))) goto L_015c;
#line 1055 "regression-bugs-tmp/soap80-a.imp"
goto L_0152;
#line 1055 "regression-bugs-tmp/soap80-a.imp"
L_015c:;
                                                                //   1056                 ! Semi-colon terminated input - carry on reading.
                                                                //   1057                 getline(1)
#line 1057 "regression-bugs-tmp/soap80-a.imp"
GETLINE(1);
                                                                //   1058              %repeat
#line 1058 "regression-bugs-tmp/soap80-a.imp"
goto L_0151;
#line 1058 "regression-bugs-tmp/soap80-a.imp"
L_0152:;
                                                                //   1059              str = false
#line 1059 "regression-bugs-tmp/soap80-a.imp"
STR = 0;
                                                                //   1060              ->inc
#line 1060 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
                                                                //   1061  bip(1009):! N255 - Test string declaration length.
#line 1061 "regression-bugs-tmp/soap80-a.imp"
sw1_BIP_1009:;
                                                                //   1062              ch = nextnonsp(inconst)
#line 1062 "regression-bugs-tmp/soap80-a.imp"
CH = NEXTNONSP(INCONST);
                                                                //   1063              %unless '0'<=ch<='9' %then res = false %and ->inc
#line 1063 "regression-bugs-tmp/soap80-a.imp"
if ((((48) > (CH))) || (((CH) <= (57)))) goto L_015d;
#line 1063 "regression-bugs-tmp/soap80-a.imp"
L_0153:;
#line 1063 "regression-bugs-tmp/soap80-a.imp"
RES = 0;
#line 1063 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
#line 1063 "regression-bugs-tmp/soap80-a.imp"
L_015d:;
                                                                //   1064              z = 0
#line 1064 "regression-bugs-tmp/soap80-a.imp"
Z = 0;
                                                                //   1065              %while '0'<=ch<='9' %cycle
#line 1065 "regression-bugs-tmp/soap80-a.imp"
L_015e:;
#line 1065 "regression-bugs-tmp/soap80-a.imp"
if ((((48) > (CH))) || (((CH) > (57)))) goto L_015f;
                                                                //   1066                 z = z*10+ch-'0'
#line 1066 "regression-bugs-tmp/soap80-a.imp"
Z = (((int)((((int)((((int)(Z)) * (10)))) + (CH)))) - (48));
                                                                //   1067                 outbuf(obp) = ch; obp = obp+1
#line 1067 "regression-bugs-tmp/soap80-a.imp"
OUTBUF[OBP] = CH;
#line 1067 "regression-bugs-tmp/soap80-a.imp"
OBP = (((int)(OBP)) + (1));
                                                                //   1068                 ptr = ptr+1
#line 1068 "regression-bugs-tmp/soap80-a.imp"
PTR = (((int)(PTR)) + (1));
                                                                //   1069                 ch = nextnonsp(inconst)
#line 1069 "regression-bugs-tmp/soap80-a.imp"
CH = NEXTNONSP(INCONST);
                                                                //   1070              %repeat
#line 1070 "regression-bugs-tmp/soap80-a.imp"
goto L_015e;
#line 1070 "regression-bugs-tmp/soap80-a.imp"
L_015f:;
                                                                //   1071              %if z>255 %then res = false
#line 1071 "regression-bugs-tmp/soap80-a.imp"
if (((Z) <= (255))) goto L_0161;
#line 1071 "regression-bugs-tmp/soap80-a.imp"
RES = 0;
#line 1071 "regression-bugs-tmp/soap80-a.imp"
L_0161:;
                                                                //   1072              ->inc
#line 1072 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
                                                                //   1073  bip(1012):! Readline?
#line 1073 "regression-bugs-tmp/soap80-a.imp"
sw1_BIP_1012:;
                                                                //   1074              ch = nextnonsp(inconst)
#line 1074 "regression-bugs-tmp/soap80-a.imp"
CH = NEXTNONSP(INCONST);
                                                                //   1075              ! Deal with "FRED(1:10) = <nl> .. init vals .." constructions.
                                                                //   1076              %if ch=nl %start
#line 1076 "regression-bugs-tmp/soap80-a.imp"
if (((CH) != (10))) goto L_0162;
                                                                //   1077                 outbuf(obp) = nl; obp = obp+1
#line 1077 "regression-bugs-tmp/soap80-a.imp"
OUTBUF[OBP] = 10;
#line 1077 "regression-bugs-tmp/soap80-a.imp"
OBP = (((int)(OBP)) + (1));
                                                                //   1078                 sc(ptr) = rs!128
#line 1078 "regression-bugs-tmp/soap80-a.imp"
SC[PTR] = ((30) | (128));
                                                                //   1079                 getline(ptr+1)
#line 1079 "regression-bugs-tmp/soap80-a.imp"
GETLINE((((int)(PTR)) + (1)));
                                                                //   1080              %finish
#line 1080 "regression-bugs-tmp/soap80-a.imp"
L_0162:;
                                                                //   1081              ->inc
#line 1081 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
                                                                //   1082  bip(1015):! Down.
#line 1082 "regression-bugs-tmp/soap80-a.imp"
sw1_BIP_1015:;
                                                                //   1083              level = level+1
#line 1083 "regression-bugs-tmp/soap80-a.imp"
LEVEL = (((int)(LEVEL)) + (1));
                                                                //   1084              bheading = true
#line 1084 "regression-bugs-tmp/soap80-a.imp"
BHEADING = 255;
                                                                //   1085              %if p_iblock=true %then increm = true
#line 1085 "regression-bugs-tmp/soap80-a.imp"
if (((P.IBLOCK) != (255))) goto L_0163;
#line 1085 "regression-bugs-tmp/soap80-a.imp"
INCREM = 255;
#line 1085 "regression-bugs-tmp/soap80-a.imp"
L_0163:;
                                                                //   1086              ->inc
#line 1086 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
                                                                //   1087  bip(1016):! Up.
#line 1087 "regression-bugs-tmp/soap80-a.imp"
sw1_BIP_1016:;
                                                                //   1088              level = level-1
#line 1088 "regression-bugs-tmp/soap80-a.imp"
LEVEL = (((int)(LEVEL)) - (1));
                                                                //   1089              bheading = true
#line 1089 "regression-bugs-tmp/soap80-a.imp"
BHEADING = 255;
                                                                //   1090              %if p_iblock=true %and in>0 %then in = in-1
#line 1090 "regression-bugs-tmp/soap80-a.imp"
if (((P.IBLOCK) != (255))) goto L_0164;
#line 1090 "regression-bugs-tmp/soap80-a.imp"
if (((IN) <= (0))) goto L_0164;
#line 1090 "regression-bugs-tmp/soap80-a.imp"
IN = (((int)(IN)) - (1));
#line 1090 "regression-bugs-tmp/soap80-a.imp"
L_0164:;
                                                                //   1091              ->inc
#line 1091 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
                                                                //   1092  bip(1019):! Colon - Is previous character a colon ':'?
#line 1092 "regression-bugs-tmp/soap80-a.imp"
sw1_BIP_1019:;
                                                                //   1093              %if sc(ptr-1)#':' %then res = false %and ->inc
#line 1093 "regression-bugs-tmp/soap80-a.imp"
if (((SC[(((int)(PTR)) - (1))]) == (58))) goto L_0165;
#line 1093 "regression-bugs-tmp/soap80-a.imp"
RES = 0;
#line 1093 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
#line 1093 "regression-bugs-tmp/soap80-a.imp"
L_0165:;
                                                                //   1094              %if charsin>0 %then outstring(snl)
#line 1094 "regression-bugs-tmp/soap80-a.imp"
if (((CHARSIN) <= (0))) goto L_0166;
#line 1094 "regression-bugs-tmp/soap80-a.imp"
OUTSTRING(_imp_SNL());
#line 1094 "regression-bugs-tmp/soap80-a.imp"
L_0166:;
                                                                //   1095              ch = nextnonsp(inconst)
#line 1095 "regression-bugs-tmp/soap80-a.imp"
CH = NEXTNONSP(INCONST);
                                                                //   1096              transfer(1, obp-1)
#line 1096 "regression-bugs-tmp/soap80-a.imp"
TRANSFER(1, (((int)(OBP)) - (1)));
                                                                //   1097              obp = 1
#line 1097 "regression-bugs-tmp/soap80-a.imp"
OBP = 1;
                                                                //   1098              %if p_seplab=true %and ch#nl %then outstring(snl)
#line 1098 "regression-bugs-tmp/soap80-a.imp"
if (((P.SEPLAB) != (255))) goto L_0167;
#line 1098 "regression-bugs-tmp/soap80-a.imp"
if (((CH) == (10))) goto L_0167;
#line 1098 "regression-bugs-tmp/soap80-a.imp"
OUTSTRING(_imp_SNL());
#line 1098 "regression-bugs-tmp/soap80-a.imp"
L_0167:;
                                                                //   1099              inlabel = true
#line 1099 "regression-bugs-tmp/soap80-a.imp"
INLABEL = 255;
                                                                //   1100              ->inc
#line 1100 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
                                                                //   1101  bip(1022):! Setnem.
#line 1101 "regression-bugs-tmp/soap80-a.imp"
sw1_BIP_1022:;
                                                                //   1102              ch = nextnonsp(inconst)
#line 1102 "regression-bugs-tmp/soap80-a.imp"
CH = NEXTNONSP(INCONST);
                                                                //   1103              z = M'    '
#line 1103 "regression-bugs-tmp/soap80-a.imp"
Z = 538976288;
                                                                //   1104              %while chartype(ch)&letter#0 %cycle
#line 1104 "regression-bugs-tmp/soap80-a.imp"
L_0168:;
#line 1104 "regression-bugs-tmp/soap80-a.imp"
if (((((CHARTYPE[CH]) & (32))) == (0))) goto L_0169;
                                                                //   1105                 z = z<<8!onecase(ch)
#line 1105 "regression-bugs-tmp/soap80-a.imp"
Z = ((((Z) << (8))) | (ONECASE[CH]));
                                                                //   1106                 outbuf(obp) = ch; obp = obp+1
#line 1106 "regression-bugs-tmp/soap80-a.imp"
OUTBUF[OBP] = CH;
#line 1106 "regression-bugs-tmp/soap80-a.imp"
OBP = (((int)(OBP)) + (1));
                                                                //   1107                 ptr = ptr+1
#line 1107 "regression-bugs-tmp/soap80-a.imp"
PTR = (((int)(PTR)) + (1));
                                                                //   1108                 ch = nextnonsp(inconst)
#line 1108 "regression-bugs-tmp/soap80-a.imp"
CH = NEXTNONSP(INCONST);
                                                                //   1109              %repeat
#line 1109 "regression-bugs-tmp/soap80-a.imp"
goto L_0168;
#line 1109 "regression-bugs-tmp/soap80-a.imp"
L_0169:;
                                                                //   1110  
                                                                //   1111              %unless ch='_' %and z#M'    ' %then res = false %and ->inc
#line 1111 "regression-bugs-tmp/soap80-a.imp"
if (((CH) != (95))) goto L_016a;
#line 1111 "regression-bugs-tmp/soap80-a.imp"
if (((Z) != (538976288))) goto L_016b;
#line 1111 "regression-bugs-tmp/soap80-a.imp"
L_016a:;
#line 1111 "regression-bugs-tmp/soap80-a.imp"
RES = 0;
#line 1111 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
#line 1111 "regression-bugs-tmp/soap80-a.imp"
L_016b:;
                                                                //   1112              outbuf(obp) = '_'; obp = obp+1
#line 1112 "regression-bugs-tmp/soap80-a.imp"
OUTBUF[OBP] = 95;
#line 1112 "regression-bugs-tmp/soap80-a.imp"
OBP = (((int)(OBP)) + (1));
                                                                //   1113              uci = z
#line 1113 "regression-bugs-tmp/soap80-a.imp"
UCI = Z;
                                                                //   1114              ptr = ptr+1
#line 1114 "regression-bugs-tmp/soap80-a.imp"
PTR = (((int)(PTR)) + (1));
                                                                //   1115              ->inc
#line 1115 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
                                                                //   1116  bip(1023):! Primform
#line 1116 "regression-bugs-tmp/soap80-a.imp"
sw1_BIP_1023:;
                                                                //   1117              %for i = 7, 1, 127 %cycle
#line 1117 "regression-bugs-tmp/soap80-a.imp"
I = 6;
if ((((127)-(7)) % (1)) != 0) _imp_signal(5,1,0,"Illegal cycle I = 7, 1, 127");
L_016c:;
if (I == 127) goto L_016d;
I += 1;
                                                                //   1118                 ->pfnd %if opc(i)=uci
#line 1118 "regression-bugs-tmp/soap80-a.imp"
if (((OPC[I]) != (UCI))) goto L_016f;
#line 1118 "regression-bugs-tmp/soap80-a.imp"
goto U_1004;
#line 1118 "regression-bugs-tmp/soap80-a.imp"
L_016f:;
                                                                //   1119              %repeat
#line 1119 "regression-bugs-tmp/soap80-a.imp"
goto L_016c;
#line 1119 "regression-bugs-tmp/soap80-a.imp"
L_016d:;
                                                                //   1120              res = false
#line 1120 "regression-bugs-tmp/soap80-a.imp"
RES = 0;
                                                                //   1121              ->inc
#line 1121 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
                                                                //   1122  pfnd:! Mnemonic found
#line 1122 "regression-bugs-tmp/soap80-a.imp"
U_1004:;
                                                                //   1123              res = false %if 8<=i>>3<=11 %and i&7<=3
#line 1123 "regression-bugs-tmp/soap80-a.imp"
if ((((8) > ((int)((((unsigned int)(I)) >> (3)))))) || ((((int)((((unsigned int)(I)) >> (3)))) > (11)))) goto L_0170;
#line 1123 "regression-bugs-tmp/soap80-a.imp"
if (((((I) & (7))) > (3))) goto L_0170;
#line 1123 "regression-bugs-tmp/soap80-a.imp"
RES = 0;
#line 1123 "regression-bugs-tmp/soap80-a.imp"
L_0170:;
                                                                //   1124              ->inc
#line 1124 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
                                                                //   1125  bip(1024):! Sectform.
#line 1125 "regression-bugs-tmp/soap80-a.imp"
sw1_BIP_1024:;
                                                                //   1126              %for i = 64, 8, 88 %cycle
#line 1126 "regression-bugs-tmp/soap80-a.imp"
I = 56;
if ((((88)-(64)) % (8)) != 0) _imp_signal(5,1,0,"Illegal cycle I = 64, 8, 88");
L_0171:;
if (I == 88) goto L_0172;
I += 8;
                                                                //   1127                 %for j = 0, 1, 3 %cycle
#line 1127 "regression-bugs-tmp/soap80-a.imp"
J = (-1);
if ((((3)-(0)) % (1)) != 0) _imp_signal(5,1,0,"Illegal cycle J = 0, 1, 3");
L_0174:;
if (J == 3) goto L_0175;
J += 1;
                                                                //   1128                    %if opc(i+j)=uci %then ->inc
#line 1128 "regression-bugs-tmp/soap80-a.imp"
if (((OPC[(((int)(I)) + (J))]) != (UCI))) goto L_0177;
#line 1128 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
#line 1128 "regression-bugs-tmp/soap80-a.imp"
L_0177:;
                                                                //   1129                 %repeat
#line 1129 "regression-bugs-tmp/soap80-a.imp"
goto L_0174;
#line 1129 "regression-bugs-tmp/soap80-a.imp"
L_0175:;
                                                                //   1130              %repeat
#line 1130 "regression-bugs-tmp/soap80-a.imp"
goto L_0171;
#line 1130 "regression-bugs-tmp/soap80-a.imp"
L_0172:;
                                                                //   1131              res = false
#line 1131 "regression-bugs-tmp/soap80-a.imp"
RES = 0;
                                                                //   1132              ->inc
#line 1132 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
                                                                //   1133  bip(1025):! Tertform.
#line 1133 "regression-bugs-tmp/soap80-a.imp"
sw1_BIP_1025:;
                                                                //   1134              %for i = 3, -1, 1 %cycle
#line 1134 "regression-bugs-tmp/soap80-a.imp"
I = 4;
if ((((1)-(3)) % ((-1))) != 0) _imp_signal(5,1,0,"Illegal cycle I = 3, (-1), 1");
L_0178:;
if (I == 1) goto L_0179;
I += (-1);
                                                                //   1135                 %if opc(i)=uci %then ->inc
#line 1135 "regression-bugs-tmp/soap80-a.imp"
if (((OPC[I]) != (UCI))) goto L_017b;
#line 1135 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
#line 1135 "regression-bugs-tmp/soap80-a.imp"
L_017b:;
                                                                //   1136              %repeat
#line 1136 "regression-bugs-tmp/soap80-a.imp"
goto L_0178;
#line 1136 "regression-bugs-tmp/soap80-a.imp"
L_0179:;
                                                                //   1137              res = false
#line 1137 "regression-bugs-tmp/soap80-a.imp"
RES = 0;
                                                                //   1138              ->inc
#line 1138 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
                                                                //   1139  bip(1026):! Op.
#line 1139 "regression-bugs-tmp/soap80-a.imp"
sw1_BIP_1026:;
                                                                //   1140              ch = nextnonsp(inconst)
#line 1140 "regression-bugs-tmp/soap80-a.imp"
CH = NEXTNONSP(INCONST);
                                                                //   1141              ptr = ptr+1
#line 1141 "regression-bugs-tmp/soap80-a.imp"
PTR = (((int)(PTR)) + (1));
                                                                //   1142              %unless 32<ch<127 %and X'80000000'>>(ch&31)&X'4237000A'#0 %then %c
#line 1142 "regression-bugs-tmp/soap80-a.imp"
if ((((32) >= (CH))) || (((CH) >= (127)))) goto L_017a;
#line 1142 "regression-bugs-tmp/soap80-a.imp"
if ((((((int)((((unsigned int)((-2147483648))) >> (((CH) & (31)))))) & (1110900746))) != (0))) goto L_017c;
#line 1142 "regression-bugs-tmp/soap80-a.imp"
L_017a:;
#line 1142 "regression-bugs-tmp/soap80-a.imp"
RES = 0;
#line 1142 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
#line 1142 "regression-bugs-tmp/soap80-a.imp"
L_017c:;
                                                                //   1143               res = false %and ->inc
                                                                //   1144  
                                                                //   1145              %if ch='&' %or ch='+' %or ch='-' %then %c
#line 1145 "regression-bugs-tmp/soap80-a.imp"
if (((CH) == (38))) goto L_017d;
#line 1145 "regression-bugs-tmp/soap80-a.imp"
if (((CH) == (43))) goto L_017d;
#line 1145 "regression-bugs-tmp/soap80-a.imp"
if (((CH) != (45))) goto L_017e;
#line 1145 "regression-bugs-tmp/soap80-a.imp"
L_017d:;
#line 1145 "regression-bugs-tmp/soap80-a.imp"
INSERT(CH, P.SPACOP, P.SPACOP);
#line 1145 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
#line 1145 "regression-bugs-tmp/soap80-a.imp"
L_017e:;
                                                                //   1146               insert(ch, p_spacop, p_spacop) %and ->inc
                                                                //   1147  
                                                                //   1148              %if ch='*' %start
#line 1148 "regression-bugs-tmp/soap80-a.imp"
if (((CH) != (42))) goto L_017f;
                                                                //   1149                 %if ch#nextnonsp(inconst) %then %c
#line 1149 "regression-bugs-tmp/soap80-a.imp"
if (((CH) == (NEXTNONSP(INCONST)))) goto L_0180;
#line 1149 "regression-bugs-tmp/soap80-a.imp"
INSERT(42, P.SPACOP, P.SPACOP);
#line 1149 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
#line 1149 "regression-bugs-tmp/soap80-a.imp"
L_0180:;
                                                                //   1150                  insert('*', p_spacop, p_spacop) %and ->inc
                                                                //   1151                 ptr = ptr+1; j = ptr
#line 1151 "regression-bugs-tmp/soap80-a.imp"
PTR = (((int)(PTR)) + (1));
#line 1151 "regression-bugs-tmp/soap80-a.imp"
J = PTR;
                                                                //   1152                 ch = nextnonsp(inconst)
#line 1152 "regression-bugs-tmp/soap80-a.imp"
CH = NEXTNONSP(INCONST);
                                                                //   1153                 ptr = ptr+1
#line 1153 "regression-bugs-tmp/soap80-a.imp"
PTR = (((int)(PTR)) + (1));
                                                                //   1154                 %if M'*'=ch=nextnonsp(inconst) %then %c
#line 1154 "regression-bugs-tmp/soap80-a.imp"
if (({int tmp1 = 42, tmp2 = CH, tmp3 = NEXTNONSP(INCONST); (tmp1 != tmp2) || (tmp2 != tmp3);})) goto L_0181;
#line 1154 "regression-bugs-tmp/soap80-a.imp"
INSERT(707406378, P.SPACOP, P.SPACOP);
#line 1154 "regression-bugs-tmp/soap80-a.imp"
PTR = (((int)(PTR)) + (1));
#line 1154 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
#line 1154 "regression-bugs-tmp/soap80-a.imp"
L_0181:;
                                                                //   1155                  insert(M'****', p_spacop, p_spacop) %and ptr = ptr+1 %and ->inc
                                                                //   1156                 insert(M'**', p_spacop, p_spacop)
#line 1156 "regression-bugs-tmp/soap80-a.imp"
INSERT(10794, P.SPACOP, P.SPACOP);
                                                                //   1157                 ptr = j; ->inc
#line 1157 "regression-bugs-tmp/soap80-a.imp"
PTR = J;
#line 1157 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
                                                                //   1158              %finish
#line 1158 "regression-bugs-tmp/soap80-a.imp"
L_017f:;
                                                                //   1159  
                                                                //   1160              %if ch='/' %start
#line 1160 "regression-bugs-tmp/soap80-a.imp"
if (((CH) != (47))) goto L_0182;
                                                                //   1161                 %if ch#nextnonsp(inconst) %then %c
#line 1161 "regression-bugs-tmp/soap80-a.imp"
if (((CH) == (NEXTNONSP(INCONST)))) goto L_0183;
#line 1161 "regression-bugs-tmp/soap80-a.imp"
INSERT(47, P.SPACOP, P.SPACOP);
#line 1161 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
#line 1161 "regression-bugs-tmp/soap80-a.imp"
L_0183:;
                                                                //   1162                  insert('/', p_spacop, p_spacop) %and ->inc
                                                                //   1163                 insert(M'//', p_spacop, p_spacop)
#line 1163 "regression-bugs-tmp/soap80-a.imp"
INSERT(12079, P.SPACOP, P.SPACOP);
                                                                //   1164                 ptr = ptr+1; ->inc
#line 1164 "regression-bugs-tmp/soap80-a.imp"
PTR = (((int)(PTR)) + (1));
#line 1164 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
                                                                //   1165              %finish
#line 1165 "regression-bugs-tmp/soap80-a.imp"
L_0182:;
                                                                //   1166  
                                                                //   1167              %if ch='!' %start
#line 1167 "regression-bugs-tmp/soap80-a.imp"
if (((CH) != (33))) goto L_0184;
                                                                //   1168                 %if ch#nextnonsp(inconst) %then %c
#line 1168 "regression-bugs-tmp/soap80-a.imp"
if (((CH) == (NEXTNONSP(INCONST)))) goto L_0185;
#line 1168 "regression-bugs-tmp/soap80-a.imp"
INSERT(33, P.SPACOP, P.SPACOP);
#line 1168 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
#line 1168 "regression-bugs-tmp/soap80-a.imp"
L_0185:;
                                                                //   1169                  insert('!', p_spacop, p_spacop) %and ->inc
                                                                //   1170                 insert(M'!!', p_spacop, p_spacop)
#line 1170 "regression-bugs-tmp/soap80-a.imp"
INSERT(8481, P.SPACOP, P.SPACOP);
                                                                //   1171                 ptr = ptr+1; ->inc
#line 1171 "regression-bugs-tmp/soap80-a.imp"
PTR = (((int)(PTR)) + (1));
#line 1171 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
                                                                //   1172              %finish
#line 1172 "regression-bugs-tmp/soap80-a.imp"
L_0184:;
                                                                //   1173  
                                                                //   1174              %if ch='.' %then outbuf(obp) = '.' %and obp = obp+1 %and ->inc
#line 1174 "regression-bugs-tmp/soap80-a.imp"
if (((CH) != (46))) goto L_0186;
#line 1174 "regression-bugs-tmp/soap80-a.imp"
OUTBUF[OBP] = 46;
#line 1174 "regression-bugs-tmp/soap80-a.imp"
OBP = (((int)(OBP)) + (1));
#line 1174 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
#line 1174 "regression-bugs-tmp/soap80-a.imp"
L_0186:;
                                                                //   1175              %if ch=nextnonsp(inconst)='>' %start
#line 1175 "regression-bugs-tmp/soap80-a.imp"
if (({int tmp1 = CH, tmp2 = NEXTNONSP(INCONST), tmp3 = 62; (tmp1 != tmp2) || (tmp2 != tmp3);})) goto L_0187;
                                                                //   1176                 insert(M'>>', p_spacop, p_spacop)
#line 1176 "regression-bugs-tmp/soap80-a.imp"
INSERT(15934, P.SPACOP, P.SPACOP);
                                                                //   1177                 ptr = ptr+1
#line 1177 "regression-bugs-tmp/soap80-a.imp"
PTR = (((int)(PTR)) + (1));
                                                                //   1178                 ->inc
#line 1178 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
                                                                //   1179              %finish
#line 1179 "regression-bugs-tmp/soap80-a.imp"
L_0187:;
                                                                //   1180  
                                                                //   1181              %if ch=nextnonsp(inconst)='<' %start
#line 1181 "regression-bugs-tmp/soap80-a.imp"
if (({int tmp1 = CH, tmp2 = NEXTNONSP(INCONST), tmp3 = 60; (tmp1 != tmp2) || (tmp2 != tmp3);})) goto L_0188;
                                                                //   1182                 insert(M'<<', p_spacop, p_spacop)
#line 1182 "regression-bugs-tmp/soap80-a.imp"
INSERT(15420, P.SPACOP, P.SPACOP);
                                                                //   1183                 ptr = ptr+1
#line 1183 "regression-bugs-tmp/soap80-a.imp"
PTR = (((int)(PTR)) + (1));
                                                                //   1184                 ->inc
#line 1184 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
                                                                //   1185              %finish
#line 1185 "regression-bugs-tmp/soap80-a.imp"
L_0188:;
                                                                //   1186  
                                                                //   1187              %if ch='\' %start
#line 1187 "regression-bugs-tmp/soap80-a.imp"
if (((CH) != (92))) goto L_0189;
                                                                //   1188                 %if ch#nextnonsp(inconst) %then %c
#line 1188 "regression-bugs-tmp/soap80-a.imp"
if (((CH) == (NEXTNONSP(INCONST)))) goto L_018a;
#line 1188 "regression-bugs-tmp/soap80-a.imp"
INSERT(92, P.SPACOP, P.SPACOP);
#line 1188 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
#line 1188 "regression-bugs-tmp/soap80-a.imp"
L_018a:;
                                                                //   1189                  insert('\', p_spacop, p_spacop) %and ->inc
                                                                //   1190                 insert(M'\\', p_spacop, p_spacop)
#line 1190 "regression-bugs-tmp/soap80-a.imp"
INSERT(23644, P.SPACOP, P.SPACOP);
                                                                //   1191                 ptr = ptr+1; ->inc
#line 1191 "regression-bugs-tmp/soap80-a.imp"
PTR = (((int)(PTR)) + (1));
#line 1191 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
                                                                //   1192              %finish
#line 1192 "regression-bugs-tmp/soap80-a.imp"
L_0189:;
                                                                //   1193  
                                                                //   1194              res = false; ->inc
#line 1194 "regression-bugs-tmp/soap80-a.imp"
RES = 0;
#line 1194 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
                                                                //   1195  
                                                                //   1196  bip(1027):! Chui.
#line 1196 "regression-bugs-tmp/soap80-a.imp"
sw1_BIP_1027:;
                                                                //   1197              ch = nextnonsp(inconst)
#line 1197 "regression-bugs-tmp/soap80-a.imp"
CH = NEXTNONSP(INCONST);
                                                                //   1198              %if chartype(ch)&letter=0 %and ch#'-' %and %c
#line 1198 "regression-bugs-tmp/soap80-a.imp"
if (((((CHARTYPE[CH]) & (32))) != (0))) goto L_018b;
#line 1198 "regression-bugs-tmp/soap80-a.imp"
if (((CH) == (45))) goto L_018b;
#line 1198 "regression-bugs-tmp/soap80-a.imp"
if ((((((int)((((unsigned int)((-2147483648))) >> (((CH) & (31)))))) & (335818752))) != (0))) goto L_018b;
#line 1198 "regression-bugs-tmp/soap80-a.imp"
RES = 0;
#line 1198 "regression-bugs-tmp/soap80-a.imp"
L_018b:;
                                                                //   1199               X'80000000'>>(ch&31)&X'14043000'=0 %then res = false
                                                                //   1200              ->inc
#line 1200 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
                                                                //   1201  bip(1028):! +'.
#line 1201 "regression-bugs-tmp/soap80-a.imp"
sw1_BIP_1028:;
                                                                //   1202              ch = nextnonsp(inconst)
#line 1202 "regression-bugs-tmp/soap80-a.imp"
CH = NEXTNONSP(INCONST);
                                                                //   1203              %if ch='+' %or ch='-' %or ch='\' %or ch=X'7E' %then %c
#line 1203 "regression-bugs-tmp/soap80-a.imp"
if (((CH) == (43))) goto L_018c;
#line 1203 "regression-bugs-tmp/soap80-a.imp"
if (((CH) == (45))) goto L_018c;
#line 1203 "regression-bugs-tmp/soap80-a.imp"
if (((CH) == (92))) goto L_018c;
#line 1203 "regression-bugs-tmp/soap80-a.imp"
if (((CH) != (126))) goto L_018d;
#line 1203 "regression-bugs-tmp/soap80-a.imp"
L_018c:;
#line 1203 "regression-bugs-tmp/soap80-a.imp"
INSERT(CH, P.SPACOP, P.SPACOP);
#line 1203 "regression-bugs-tmp/soap80-a.imp"
PTR = (((int)(PTR)) + (1));
#line 1203 "regression-bugs-tmp/soap80-a.imp"
L_018d:;
                                                                //   1204               insert(ch, p_spacop, p_spacop) %and ptr = ptr+1
                                                                //   1205              ->inc
#line 1205 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
                                                                //   1206  bip(1031):! Ucwrong (unknown user code format - allow it through).
#line 1206 "regression-bugs-tmp/soap80-a.imp"
sw1_BIP_1031:;
                                                                //   1207              %cycle
#line 1207 "regression-bugs-tmp/soap80-a.imp"
L_018e:;
                                                                //   1208                 ch = nextnonsp(inconst)
#line 1208 "regression-bugs-tmp/soap80-a.imp"
CH = NEXTNONSP(INCONST);
                                                                //   1209                 outbuf(obp) = ch; obp = obp+1
#line 1209 "regression-bugs-tmp/soap80-a.imp"
OUTBUF[OBP] = CH;
#line 1209 "regression-bugs-tmp/soap80-a.imp"
OBP = (((int)(OBP)) + (1));
                                                                //   1210                 ->inc %if chartype(ch)&endst#0
#line 1210 "regression-bugs-tmp/soap80-a.imp"
if (((((CHARTYPE[CH]) & (8))) == (0))) goto L_0191;
#line 1210 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
#line 1210 "regression-bugs-tmp/soap80-a.imp"
L_0191:;
                                                                //   1211                 ptr = ptr+1
#line 1211 "regression-bugs-tmp/soap80-a.imp"
PTR = (((int)(PTR)) + (1));
                                                                //   1212              %repeat
#line 1212 "regression-bugs-tmp/soap80-a.imp"
goto L_018e;
                                                                //   1213  bip(1030):! ,'.
#line 1213 "regression-bugs-tmp/soap80-a.imp"
sw1_BIP_1030:;
                                                                //   1214              ch = nextnonsp(inconst)
#line 1214 "regression-bugs-tmp/soap80-a.imp"
CH = NEXTNONSP(INCONST);
                                                                //   1215              res = false %if ch=')'
#line 1215 "regression-bugs-tmp/soap80-a.imp"
if (((CH) != (41))) goto L_018f;
#line 1215 "regression-bugs-tmp/soap80-a.imp"
RES = 0;
#line 1215 "regression-bugs-tmp/soap80-a.imp"
L_018f:;
                                                                //   1216              %if res=true %then insert(',', false, p_spcomma)
#line 1216 "regression-bugs-tmp/soap80-a.imp"
if (((RES) != (255))) goto L_0192;
#line 1216 "regression-bugs-tmp/soap80-a.imp"
INSERT(44, 0, P.SPCOMMA);
#line 1216 "regression-bugs-tmp/soap80-a.imp"
L_0192:;
                                                                //   1217              %if ch=',' %then ptr = ptr+1
#line 1217 "regression-bugs-tmp/soap80-a.imp"
if (((CH) != (44))) goto L_0193;
#line 1217 "regression-bugs-tmp/soap80-a.imp"
PTR = (((int)(PTR)) + (1));
#line 1217 "regression-bugs-tmp/soap80-a.imp"
L_0193:;
                                                                //   1218              ->inc
#line 1218 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
                                                                //   1219  bip(1032):! Chcomp.
#line 1219 "regression-bugs-tmp/soap80-a.imp"
sw1_BIP_1032:;
                                                                //   1220  bip(1037):! Comp2
#line 1220 "regression-bugs-tmp/soap80-a.imp"
sw1_BIP_1037:;
                                                                //   1221              ch = nextnonsp(inconst)
#line 1221 "regression-bugs-tmp/soap80-a.imp"
CH = NEXTNONSP(INCONST);
                                                                //   1222              ptr = ptr+1
#line 1222 "regression-bugs-tmp/soap80-a.imp"
PTR = (((int)(PTR)) + (1));
                                                                //   1223              %unless 32<ch<=92 %and X'80000000'>>(ch&31)&X'1004000E'#0 %then %c
#line 1223 "regression-bugs-tmp/soap80-a.imp"
if ((((32) >= (CH))) || (((CH) > (92)))) goto L_0190;
#line 1223 "regression-bugs-tmp/soap80-a.imp"
if ((((((int)((((unsigned int)((-2147483648))) >> (((CH) & (31)))))) & (268697614))) != (0))) goto L_0194;
#line 1223 "regression-bugs-tmp/soap80-a.imp"
L_0190:;
#line 1223 "regression-bugs-tmp/soap80-a.imp"
RES = 0;
#line 1223 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
#line 1223 "regression-bugs-tmp/soap80-a.imp"
L_0194:;
                                                                //   1224               res = false %and ->inc
                                                                //   1225              %if ch='=' %start
#line 1225 "regression-bugs-tmp/soap80-a.imp"
if (((CH) != (61))) goto L_0195;
                                                                //   1226                 %if nextnonsp(inconst)=ch %then %c
#line 1226 "regression-bugs-tmp/soap80-a.imp"
if (((NEXTNONSP(INCONST)) != (CH))) goto L_0196;
#line 1226 "regression-bugs-tmp/soap80-a.imp"
PTR = (((int)(PTR)) + (1));
#line 1226 "regression-bugs-tmp/soap80-a.imp"
INSERT(15677, P.SPACOP, P.SPACOP);
#line 1226 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
#line 1226 "regression-bugs-tmp/soap80-a.imp"
L_0196:;
                                                                //   1227                  ptr = ptr+1 %and insert(M'==', p_spacop, p_spacop) %and ->inc
                                                                //   1228                 insert('=', p_spacop, p_spacop)
#line 1228 "regression-bugs-tmp/soap80-a.imp"
INSERT(61, P.SPACOP, P.SPACOP);
                                                                //   1229                 ->inc
#line 1229 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
                                                                //   1230              %finish
#line 1230 "regression-bugs-tmp/soap80-a.imp"
L_0195:;
                                                                //   1231              %if ch='#' %start
#line 1231 "regression-bugs-tmp/soap80-a.imp"
if (((CH) != (35))) goto L_0197;
                                                                //   1232                 %if nextnonsp(inconst)=ch %then %c
#line 1232 "regression-bugs-tmp/soap80-a.imp"
if (((NEXTNONSP(INCONST)) != (CH))) goto L_0198;
#line 1232 "regression-bugs-tmp/soap80-a.imp"
PTR = (((int)(PTR)) + (1));
#line 1232 "regression-bugs-tmp/soap80-a.imp"
INSERT(8995, P.SPACOP, P.SPACOP);
#line 1232 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
#line 1232 "regression-bugs-tmp/soap80-a.imp"
L_0198:;
                                                                //   1233                  ptr = ptr+1 %and insert(M'##', p_spacop, p_spacop) %and ->inc
                                                                //   1234                 insert('#', p_spacop, p_spacop)
#line 1234 "regression-bugs-tmp/soap80-a.imp"
INSERT(35, P.SPACOP, P.SPACOP);
                                                                //   1235                 ->inc
#line 1235 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
                                                                //   1236              %finish
#line 1236 "regression-bugs-tmp/soap80-a.imp"
L_0197:;
                                                                //   1237              %if ch='\' %and nextnonsp(inconst)='=' %start
#line 1237 "regression-bugs-tmp/soap80-a.imp"
if (((CH) != (92))) goto L_0199;
#line 1237 "regression-bugs-tmp/soap80-a.imp"
if (((NEXTNONSP(INCONST)) != (61))) goto L_0199;
                                                                //   1238                 ptr = ptr+1
#line 1238 "regression-bugs-tmp/soap80-a.imp"
PTR = (((int)(PTR)) + (1));
                                                                //   1239                 %if nextnonsp(inconst)='=' %then %c
#line 1239 "regression-bugs-tmp/soap80-a.imp"
if (((NEXTNONSP(INCONST)) != (61))) goto L_019a;
#line 1239 "regression-bugs-tmp/soap80-a.imp"
PTR = (((int)(PTR)) + (1));
#line 1239 "regression-bugs-tmp/soap80-a.imp"
INSERT(4013404, P.SPACOP, P.SPACOP);
#line 1239 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
#line 1239 "regression-bugs-tmp/soap80-a.imp"
L_019a:;
                                                                //   1240                  ptr = ptr+1 %and insert(M'==\', p_spacop, p_spacop) %and ->inc
                                                                //   1241                 insert(M'=\', p_spacop, p_spacop)
#line 1241 "regression-bugs-tmp/soap80-a.imp"
INSERT(15708, P.SPACOP, P.SPACOP);
                                                                //   1242                 ->inc
#line 1242 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
                                                                //   1243              %finish
#line 1243 "regression-bugs-tmp/soap80-a.imp"
L_0199:;
                                                                //   1244              %if ch='>' %start
#line 1244 "regression-bugs-tmp/soap80-a.imp"
if (((CH) != (62))) goto L_019b;
                                                                //   1245                 %if nextnonsp(inconst)='=' %then %c
#line 1245 "regression-bugs-tmp/soap80-a.imp"
if (((NEXTNONSP(INCONST)) != (61))) goto L_019c;
#line 1245 "regression-bugs-tmp/soap80-a.imp"
PTR = (((int)(PTR)) + (1));
#line 1245 "regression-bugs-tmp/soap80-a.imp"
INSERT(15678, P.SPACOP, P.SPACOP);
#line 1245 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
#line 1245 "regression-bugs-tmp/soap80-a.imp"
L_019c:;
                                                                //   1246                  ptr = ptr+1 %and insert(M'=>', p_spacop, p_spacop) %and ->inc
                                                                //   1247                 insert('>', p_spacop, p_spacop)
#line 1247 "regression-bugs-tmp/soap80-a.imp"
INSERT(62, P.SPACOP, P.SPACOP);
                                                                //   1248                 ->inc
#line 1248 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
                                                                //   1249              %finish
#line 1249 "regression-bugs-tmp/soap80-a.imp"
L_019b:;
                                                                //   1250              %if ch='<' %start
#line 1250 "regression-bugs-tmp/soap80-a.imp"
if (((CH) != (60))) goto L_019d;
                                                                //   1251                 %if nextnonsp(inconst)='=' %then %c
#line 1251 "regression-bugs-tmp/soap80-a.imp"
if (((NEXTNONSP(INCONST)) != (61))) goto L_019e;
#line 1251 "regression-bugs-tmp/soap80-a.imp"
PTR = (((int)(PTR)) + (1));
#line 1251 "regression-bugs-tmp/soap80-a.imp"
INSERT(15676, P.SPACOP, P.SPACOP);
#line 1251 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
#line 1251 "regression-bugs-tmp/soap80-a.imp"
L_019e:;
                                                                //   1252                  ptr = ptr+1 %and insert(M'=<', p_spacop, p_spacop) %and ->inc
                                                                //   1253                 %if nextnonsp(inconst)='>' %then %c
#line 1253 "regression-bugs-tmp/soap80-a.imp"
if (((NEXTNONSP(INCONST)) != (62))) goto L_019f;
#line 1253 "regression-bugs-tmp/soap80-a.imp"
PTR = (((int)(PTR)) + (1));
#line 1253 "regression-bugs-tmp/soap80-a.imp"
INSERT(15932, P.SPACOP, P.SPACOP);
#line 1253 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
#line 1253 "regression-bugs-tmp/soap80-a.imp"
L_019f:;
                                                                //   1254                  ptr = ptr+1 %and insert(M'><', p_spacop, p_spacop) %and ->inc
                                                                //   1255                 insert('<', p_spacop, p_spacop)
#line 1255 "regression-bugs-tmp/soap80-a.imp"
INSERT(60, P.SPACOP, P.SPACOP);
                                                                //   1256                 ->inc
#line 1256 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
                                                                //   1257              %finish
#line 1257 "regression-bugs-tmp/soap80-a.imp"
L_019d:;
                                                                //   1258              %if ch='-' %and nextnonsp(inconst)='>' %then %c
#line 1258 "regression-bugs-tmp/soap80-a.imp"
if (((CH) != (45))) goto L_01a0;
#line 1258 "regression-bugs-tmp/soap80-a.imp"
if (((NEXTNONSP(INCONST)) != (62))) goto L_01a0;
#line 1258 "regression-bugs-tmp/soap80-a.imp"
PTR = (((int)(PTR)) + (1));
#line 1258 "regression-bugs-tmp/soap80-a.imp"
INSERT(15917, P.SPACOP, P.SPACOP);
#line 1258 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
#line 1258 "regression-bugs-tmp/soap80-a.imp"
L_01a0:;
                                                                //   1259               ptr = ptr+1 %and insert(M'>-', p_spacop, p_spacop) %and ->inc
                                                                //   1260              res = false
#line 1260 "regression-bugs-tmp/soap80-a.imp"
RES = 0;
                                                                //   1261              ->inc
#line 1261 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
                                                                //   1262  bip(1033):! Assop.
#line 1262 "regression-bugs-tmp/soap80-a.imp"
sw1_BIP_1033:;
                                                                //   1263              ch = nextnonsp(inconst)
#line 1263 "regression-bugs-tmp/soap80-a.imp"
CH = NEXTNONSP(INCONST);
                                                                //   1264              ptr = ptr+1
#line 1264 "regression-bugs-tmp/soap80-a.imp"
PTR = (((int)(PTR)) + (1));
                                                                //   1265              %if ch='=' %start
#line 1265 "regression-bugs-tmp/soap80-a.imp"
if (((CH) != (61))) goto L_01a1;
                                                                //   1266                 %if nextnonsp(inconst)='=' %then %c
#line 1266 "regression-bugs-tmp/soap80-a.imp"
if (((NEXTNONSP(INCONST)) != (61))) goto L_01a2;
#line 1266 "regression-bugs-tmp/soap80-a.imp"
PTR = (((int)(PTR)) + (1));
#line 1266 "regression-bugs-tmp/soap80-a.imp"
INSERT(15677, P.SPACASS, P.SPACASS);
#line 1266 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
#line 1266 "regression-bugs-tmp/soap80-a.imp"
L_01a2:;
                                                                //   1267                  ptr = ptr+1 %and insert(M'==', p_spacass, p_spacass) %and ->inc
                                                                //   1268                 insert('=', p_spacass, p_spacass)
#line 1268 "regression-bugs-tmp/soap80-a.imp"
INSERT(61, P.SPACASS, P.SPACASS);
                                                                //   1269                 ->inc
#line 1269 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
                                                                //   1270              %finish
#line 1270 "regression-bugs-tmp/soap80-a.imp"
L_01a1:;
                                                                //   1271              %if ch='<' %and nextnonsp(inconst)='-' %then %c
#line 1271 "regression-bugs-tmp/soap80-a.imp"
if (((CH) != (60))) goto L_01a3;
#line 1271 "regression-bugs-tmp/soap80-a.imp"
if (((NEXTNONSP(INCONST)) != (45))) goto L_01a3;
#line 1271 "regression-bugs-tmp/soap80-a.imp"
PTR = (((int)(PTR)) + (1));
#line 1271 "regression-bugs-tmp/soap80-a.imp"
INSERT(11580, P.SPACASS, P.SPACASS);
#line 1271 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
#line 1271 "regression-bugs-tmp/soap80-a.imp"
L_01a3:;
                                                                //   1272               ptr = ptr+1 %and insert(M'-<', p_spacass, p_spacass) %and ->inc
                                                                //   1273              %if ch='-' %and nextnonsp(inconst)='>' %then %c
#line 1273 "regression-bugs-tmp/soap80-a.imp"
if (((CH) != (45))) goto L_01a4;
#line 1273 "regression-bugs-tmp/soap80-a.imp"
if (((NEXTNONSP(INCONST)) != (62))) goto L_01a4;
#line 1273 "regression-bugs-tmp/soap80-a.imp"
PTR = (((int)(PTR)) + (1));
#line 1273 "regression-bugs-tmp/soap80-a.imp"
INSERT(15917, P.SPACASS, P.SPACASS);
#line 1273 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
#line 1273 "regression-bugs-tmp/soap80-a.imp"
L_01a4:;
                                                                //   1274               ptr = ptr+1 %and insert(M'>-', p_spacass, p_spacass) %and ->inc
                                                                //   1275              res = false
#line 1275 "regression-bugs-tmp/soap80-a.imp"
RES = 0;
                                                                //   1276  bip(1008):! Bighole.
#line 1276 "regression-bugs-tmp/soap80-a.imp"
sw1_BIP_1008:;
                                                                //   1277              ->inc
#line 1277 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
                                                                //   1278  bip(1010):! Hole.
#line 1278 "regression-bugs-tmp/soap80-a.imp"
sw1_BIP_1010:;
                                                                //   1279  bip(1011):! Mark.
#line 1279 "regression-bugs-tmp/soap80-a.imp"
sw1_BIP_1011:;
                                                                //   1280              ->inc
#line 1280 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
                                                                //   1281  bip(1013):! Alias.
#line 1281 "regression-bugs-tmp/soap80-a.imp"
sw1_BIP_1013:;
                                                                //   1282              ch = nextnonsp(inconst)
#line 1282 "regression-bugs-tmp/soap80-a.imp"
CH = NEXTNONSP(INCONST);
                                                                //   1283              ptr = ptr+1
#line 1283 "regression-bugs-tmp/soap80-a.imp"
PTR = (((int)(PTR)) + (1));
                                                                //   1284              %if ch#'"' %then res = false %and ->inc
#line 1284 "regression-bugs-tmp/soap80-a.imp"
if (((CH) == (34))) goto L_01a5;
#line 1284 "regression-bugs-tmp/soap80-a.imp"
RES = 0;
#line 1284 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
#line 1284 "regression-bugs-tmp/soap80-a.imp"
L_01a5:;
                                                                //   1285              outbuf(obp) = ' '; obp = obp+1
#line 1285 "regression-bugs-tmp/soap80-a.imp"
OUTBUF[OBP] = 32;
#line 1285 "regression-bugs-tmp/soap80-a.imp"
OBP = (((int)(OBP)) + (1));
                                                                //   1286              outbuf(obp) = '"'; obp = obp+1
#line 1286 "regression-bugs-tmp/soap80-a.imp"
OUTBUF[OBP] = 34;
#line 1286 "regression-bugs-tmp/soap80-a.imp"
OBP = (((int)(OBP)) + (1));
                                                                //   1287              %cycle
#line 1287 "regression-bugs-tmp/soap80-a.imp"
L_01a6:;
                                                                //   1288                 %if sc(ptr)='"' %start
#line 1288 "regression-bugs-tmp/soap80-a.imp"
if (((SC[PTR]) != (34))) goto L_01a9;
                                                                //   1289                    outbuf(obp) = '"'!instring
#line 1289 "regression-bugs-tmp/soap80-a.imp"
OUTBUF[OBP] = ((34) | (256));
                                                                //   1290                    %if sc(ptr+1)#'"' %then %exit
#line 1290 "regression-bugs-tmp/soap80-a.imp"
if (((SC[(((int)(PTR)) + (1))]) == (34))) goto L_01aa;
#line 1290 "regression-bugs-tmp/soap80-a.imp"
goto L_01a7;
#line 1290 "regression-bugs-tmp/soap80-a.imp"
L_01aa:;
                                                                //   1291                    outbuf(obp+1) = '"'!instring
#line 1291 "regression-bugs-tmp/soap80-a.imp"
OUTBUF[(((int)(OBP)) + (1))] = ((34) | (256));
                                                                //   1292                    obp = obp+2; ptr = ptr+2
#line 1292 "regression-bugs-tmp/soap80-a.imp"
OBP = (((int)(OBP)) + (2));
#line 1292 "regression-bugs-tmp/soap80-a.imp"
PTR = (((int)(PTR)) + (2));
                                                                //   1293                 %finish %else %start
#line 1293 "regression-bugs-tmp/soap80-a.imp"
goto L_01ab;
#line 1293 "regression-bugs-tmp/soap80-a.imp"
L_01a9:;
                                                                //   1294                    ch = sc(ptr)
#line 1294 "regression-bugs-tmp/soap80-a.imp"
CH = SC[PTR];
                                                                //   1295                    outbuf(obp) = ch!instring
#line 1295 "regression-bugs-tmp/soap80-a.imp"
OUTBUF[OBP] = ((CH) | (256));
                                                                //   1296                    obp = obp+1; ptr = ptr+1
#line 1296 "regression-bugs-tmp/soap80-a.imp"
OBP = (((int)(OBP)) + (1));
#line 1296 "regression-bugs-tmp/soap80-a.imp"
PTR = (((int)(PTR)) + (1));
                                                                //   1297                    getline(ptr) %if ch=nl
#line 1297 "regression-bugs-tmp/soap80-a.imp"
if (((CH) != (10))) goto L_01ac;
#line 1297 "regression-bugs-tmp/soap80-a.imp"
GETLINE(PTR);
#line 1297 "regression-bugs-tmp/soap80-a.imp"
L_01ac:;
                                                                //   1298                 %finish
#line 1298 "regression-bugs-tmp/soap80-a.imp"
L_01ab:;
                                                                //   1299              %repeat
#line 1299 "regression-bugs-tmp/soap80-a.imp"
goto L_01a6;
#line 1299 "regression-bugs-tmp/soap80-a.imp"
L_01a7:;
                                                                //   1300              ptr = ptr+1; obp = obp+1
#line 1300 "regression-bugs-tmp/soap80-a.imp"
PTR = (((int)(PTR)) + (1));
#line 1300 "regression-bugs-tmp/soap80-a.imp"
OBP = (((int)(OBP)) + (1));
                                                                //   1301              ->inc
#line 1301 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
                                                                //   1302  bip(1014):! Dummyapp.
#line 1302 "regression-bugs-tmp/soap80-a.imp"
sw1_BIP_1014:;
                                                                //   1303  bip(1017):! Liston.
#line 1303 "regression-bugs-tmp/soap80-a.imp"
sw1_BIP_1017:;
                                                                //   1304  bip(1018):! List off.
#line 1304 "regression-bugs-tmp/soap80-a.imp"
sw1_BIP_1018:;
                                                                //   1305  bip(1020):! Note const.
#line 1305 "regression-bugs-tmp/soap80-a.imp"
sw1_BIP_1020:;
                                                                //   1306  bip(1021):! Trace.
#line 1306 "regression-bugs-tmp/soap80-a.imp"
sw1_BIP_1021:;
                                                                //   1307              ->inc
#line 1307 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
                                                                //   1308  bip(1039):! Dummy start
#line 1308 "regression-bugs-tmp/soap80-a.imp"
sw1_BIP_1039:;
                                                                //   1309              %if p_expkey=true %start; ! Expand %else to %finish %else %start
#line 1309 "regression-bugs-tmp/soap80-a.imp"
if (((P.EXPKEY) != (255))) goto L_01ad;
                                                                //   1310                 obp = obp-4
#line 1310 "regression-bugs-tmp/soap80-a.imp"
OBP = (((int)(OBP)) - (4));
                                                                //   1311                 %for i = 1, 1, 19 %cycle
#line 1311 "regression-bugs-tmp/soap80-a.imp"
I = 0;
if ((((19)-(1)) % (1)) != 0) _imp_signal(5,1,0,"Illegal cycle I = 1, 1, 19");
L_01ae:;
if (I == 19) goto L_01af;
I += 1;
                                                                //   1312                    j = charno(fes, i)
#line 1312 "regression-bugs-tmp/soap80-a.imp"
J = *_imp_CHARNO(&FES, I);
                                                                //   1313                    %continue %if p_sepkey=false %and (j=' ' %or j='%')
#line 1313 "regression-bugs-tmp/soap80-a.imp"
if (((P.SEPKEY) != (0))) goto L_01b1;
#line 1313 "regression-bugs-tmp/soap80-a.imp"
if (((J) == (32))) goto L_01b2;
#line 1313 "regression-bugs-tmp/soap80-a.imp"
if (((J) != (37))) goto L_01b1;
#line 1313 "regression-bugs-tmp/soap80-a.imp"
L_01b2:;
#line 1313 "regression-bugs-tmp/soap80-a.imp"
goto L_01b0;
#line 1313 "regression-bugs-tmp/soap80-a.imp"
L_01b1:;
                                                                //   1314                    j = j!32 %if p_uckey=false %and 'A'<=j<='Z'
#line 1314 "regression-bugs-tmp/soap80-a.imp"
if (((P.UCKEY) != (0))) goto L_01b3;
#line 1314 "regression-bugs-tmp/soap80-a.imp"
if ((((65) > (J))) || (((J) > (90)))) goto L_01b3;
#line 1314 "regression-bugs-tmp/soap80-a.imp"
J = ((J) | (32));
#line 1314 "regression-bugs-tmp/soap80-a.imp"
L_01b3:;
                                                                //   1315                    outbuf(obp) = j; obp = obp+1
#line 1315 "regression-bugs-tmp/soap80-a.imp"
OUTBUF[OBP] = J;
#line 1315 "regression-bugs-tmp/soap80-a.imp"
OBP = (((int)(OBP)) + (1));
                                                                //   1316                 %repeat
#line 1316 "regression-bugs-tmp/soap80-a.imp"
L_01b0:;
#line 1316 "regression-bugs-tmp/soap80-a.imp"
goto L_01ae;
#line 1316 "regression-bugs-tmp/soap80-a.imp"
L_01af:;
                                                                //   1317              %finish
#line 1317 "regression-bugs-tmp/soap80-a.imp"
L_01ad:;
                                                                //   1318  bip(1029):! Note cycle
#line 1318 "regression-bugs-tmp/soap80-a.imp"
sw1_BIP_1029:;
                                                                //   1319  bip(1034):! Note start
#line 1319 "regression-bugs-tmp/soap80-a.imp"
sw1_BIP_1034:;
                                                                //   1320              increm = true; ->inc
#line 1320 "regression-bugs-tmp/soap80-a.imp"
INCREM = 255;
#line 1320 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
                                                                //   1321  bip(1035):! Note finish
#line 1321 "regression-bugs-tmp/soap80-a.imp"
sw1_BIP_1035:;
                                                                //   1322  bip(1036):! Note repeat
#line 1322 "regression-bugs-tmp/soap80-a.imp"
sw1_BIP_1036:;
                                                                //   1323              %if in>0 %then in = in-1; ->inc
#line 1323 "regression-bugs-tmp/soap80-a.imp"
if (((IN) <= (0))) goto L_01b4;
#line 1323 "regression-bugs-tmp/soap80-a.imp"
IN = (((int)(IN)) - (1));
#line 1323 "regression-bugs-tmp/soap80-a.imp"
L_01b4:;
#line 1323 "regression-bugs-tmp/soap80-a.imp"
goto U_1003;
                                                                //   1324  inc:
#line 1324 "regression-bugs-tmp/soap80-a.imp"
U_1003:;
                                                                //   1325              pos = pos+1
#line 1325 "regression-bugs-tmp/soap80-a.imp"
POS = (((int)(POS)) + (1));
                                                                //   1326  bypass:
#line 1326 "regression-bugs-tmp/soap80-a.imp"
U_1002:;
                                                                //   1327              %if res=false %start
#line 1327 "regression-bugs-tmp/soap80-a.imp"
if (((RES) != (0))) goto L_01b5;
                                                                //   1328                 pos = subdefend
#line 1328 "regression-bugs-tmp/soap80-a.imp"
POS = SUBDEFEND;
                                                                //   1329                 obp = rsobj
#line 1329 "regression-bugs-tmp/soap80-a.imp"
OBP = RSOBJ;
                                                                //   1330                 %if ptr>maxptr %then maxptr = ptr %and maxitem = item
#line 1330 "regression-bugs-tmp/soap80-a.imp"
if (((PTR) <= (MAXPTR))) goto L_01b6;
#line 1330 "regression-bugs-tmp/soap80-a.imp"
MAXPTR = PTR;
#line 1330 "regression-bugs-tmp/soap80-a.imp"
MAXITEM = ITEM;
#line 1330 "regression-bugs-tmp/soap80-a.imp"
L_01b6:;
                                                                //   1331                 ptr = rsptr
#line 1331 "regression-bugs-tmp/soap80-a.imp"
PTR = RSPTR;
                                                                //   1332              %finish
#line 1332 "regression-bugs-tmp/soap80-a.imp"
L_01b5:;
                                                                //   1333           %repeat
#line 1333 "regression-bugs-tmp/soap80-a.imp"
goto L_0107;
#line 1333 "regression-bugs-tmp/soap80-a.imp"
L_0108:;
                                                                //   1334           %if res=true %then depth = depth-1 %and %result = true
#line 1334 "regression-bugs-tmp/soap80-a.imp"
if (((RES) != (255))) goto L_01b7;
#line 1334 "regression-bugs-tmp/soap80-a.imp"
DEPTH = (((int)(DEPTH)) - (1));
#line 1334 "regression-bugs-tmp/soap80-a.imp"
/* Remove %on %event handler here if present for this block */
return 255;
#line 1334 "regression-bugs-tmp/soap80-a.imp"
L_01b7:;
                                                                //   1335        %repeat
#line 1335 "regression-bugs-tmp/soap80-a.imp"
goto L_0103;
#line 1335 "regression-bugs-tmp/soap80-a.imp"
L_0104:;
                                                                //   1336        ptr = rsptr; obp = rsobj
#line 1336 "regression-bugs-tmp/soap80-a.imp"
PTR = RSPTR;
#line 1336 "regression-bugs-tmp/soap80-a.imp"
OBP = RSOBJ;
                                                                //   1337        depth = depth-1
#line 1337 "regression-bugs-tmp/soap80-a.imp"
DEPTH = (((int)(DEPTH)) - (1));
                                                                //   1338        %result = false
#line 1338 "regression-bugs-tmp/soap80-a.imp"
/* Remove %on %event handler here if present for this block */
return 0;
                                                                //   1339     %end
#line 1339 "regression-bugs-tmp/soap80-a.imp"
} // End of block CHECK at level 2
                                                                //   1340  
                                                                //   1341  
                                                                //   1342  !***********************************************************************
                                                                //   1343  !*                                                                     *
                                                                //   1344  !*                Main calling routine.                                *
                                                                //   1345  !*                                                                     *
                                                                //   1346  !***********************************************************************
                                                                //   1347     s = "test.imp,.out,SPCOMMA=Y,EXPKEY=Y"; ! cliparam
#line 1347 "regression-bugs-tmp/soap80-a.imp"
S = _imp_str_literal("test.imp,.out,SPCOMMA=Y,EXPKEY=Y");
                                                                //   1348  !printstring("preopt".snl)
                                                                //   1349     opt(s, p); ! Call option setting routine to set parameters.
#line 1349 "regression-bugs-tmp/soap80-a.imp"
OPT(S, &P);
                                                                //   1350  !printstring("preconnect ".infile.snl)
                                                                //   1351     connect(infile, 0, 0, 0, rec, eflag); ! Open input file.
#line 1351 "regression-bugs-tmp/soap80-a.imp"
CONNECT(&INFILE, 0, 0, 0, &REC, &EFLAG);
                                                                //   1352  !printstring("postconnect".snl)
                                                                //   1353     %if eflag#0 %then fail(eflag, 5)
#line 1353 "regression-bugs-tmp/soap80-a.imp"
if (((EFLAG) == (0))) goto L_01b8;
#line 1353 "regression-bugs-tmp/soap80-a.imp"
FAIL(EFLAG, 5);
#line 1353 "regression-bugs-tmp/soap80-a.imp"
L_01b8:;
                                                                //   1354     %if rec_filetype#charfile %then setfname(infile) %and fail(267, 5)
#line 1354 "regression-bugs-tmp/soap80-a.imp"
if (((REC.FILETYPE) == (3))) goto L_01b9;
#line 1354 "regression-bugs-tmp/soap80-a.imp"
SETFNAME(INFILE);
#line 1354 "regression-bugs-tmp/soap80-a.imp"
FAIL(267, 5);
#line 1354 "regression-bugs-tmp/soap80-a.imp"
L_01b9:;
                                                                //   1355     inptr = rec_conad+rec_datastart; ! Start of data.
#line 1355 "regression-bugs-tmp/soap80-a.imp"
INPTR = (((int)(REC.CONAD)) + (REC.DATASTART));
                                                                //   1356     dataend = rec_conad+rec_dataend; ! End of data.
#line 1356 "regression-bugs-tmp/soap80-a.imp"
DATAEND = (((int)(REC.CONAD)) + (REC.DATAEND));
                                                                //   1357  
                                                                //   1358     ! Set output stream, possibilities are:
                                                                //   1359     ! Terminal, file, same file or output device.
                                                                //   1360     %if outf=".OUT" %then stream = terminal %else %start
#line 1360 "regression-bugs-tmp/soap80-a.imp"
if ((_imp_strcmp(OUTF, _imp_str_literal(".OUT")) != 0)) goto L_01ba;
#line 1360 "regression-bugs-tmp/soap80-a.imp"
STREAM = 1;
#line 1360 "regression-bugs-tmp/soap80-a.imp"
goto L_01bb;
#line 1360 "regression-bugs-tmp/soap80-a.imp"
L_01ba:;
                                                                //   1361        %if infile=outf %then stream = samefile %else %start
#line 1361 "regression-bugs-tmp/soap80-a.imp"
if ((_imp_strcmp(INFILE, OUTF) != 0)) goto L_01bc;
#line 1361 "regression-bugs-tmp/soap80-a.imp"
STREAM = 3;
#line 1361 "regression-bugs-tmp/soap80-a.imp"
goto L_01bd;
#line 1361 "regression-bugs-tmp/soap80-a.imp"
L_01bc:;
                                                                //   1362           %if charno(outf, 1)='.' %start
#line 1362 "regression-bugs-tmp/soap80-a.imp"
if (((*_imp_CHARNO(&OUTF, 1)) != (46))) goto L_01be;
                                                                //   1363              %if devcode(outf)<=0 %start
#line 1363 "regression-bugs-tmp/soap80-a.imp"
if (((DEVCODE(OUTF)) > (0))) goto L_01bf;
                                                                //   1364                 ! Invalid output device.
                                                                //   1365                 setfname(outf)
#line 1365 "regression-bugs-tmp/soap80-a.imp"
SETFNAME(OUTF);
                                                                //   1366                 fail(264, 5)
#line 1366 "regression-bugs-tmp/soap80-a.imp"
FAIL(264, 5);
                                                                //   1367              %finish %else stream = device
#line 1367 "regression-bugs-tmp/soap80-a.imp"
goto L_01c0;
#line 1367 "regression-bugs-tmp/soap80-a.imp"
L_01bf:;
#line 1367 "regression-bugs-tmp/soap80-a.imp"
STREAM = 4;
#line 1367 "regression-bugs-tmp/soap80-a.imp"
L_01c0:;
                                                                //   1368           %finish %else stream = file
#line 1368 "regression-bugs-tmp/soap80-a.imp"
goto L_01c1;
#line 1368 "regression-bugs-tmp/soap80-a.imp"
L_01be:;
#line 1368 "regression-bugs-tmp/soap80-a.imp"
STREAM = 2;
#line 1368 "regression-bugs-tmp/soap80-a.imp"
L_01c1:;
                                                                //   1369        %finish
#line 1369 "regression-bugs-tmp/soap80-a.imp"
L_01bd:;
                                                                //   1370     %finish
#line 1370 "regression-bugs-tmp/soap80-a.imp"
L_01bb:;
                                                                //   1371  
                                                                //   1372     ! Create tempory output file?
                                                                //   1373     %if stream=samefile %or stream=device %then workfile = "T#".nexttemp %else %c
#line 1373 "regression-bugs-tmp/soap80-a.imp"
if (((STREAM) == (3))) goto L_0105;
#line 1373 "regression-bugs-tmp/soap80-a.imp"
if (((STREAM) != (4))) goto L_01c2;
#line 1373 "regression-bugs-tmp/soap80-a.imp"
L_0105:;
#line 1373 "regression-bugs-tmp/soap80-a.imp"
WORKFILE = _imp_join((_imp_string)_imp_str_literal("T#"),(_imp_string)NEXTTEMP());
#line 1373 "regression-bugs-tmp/soap80-a.imp"
goto L_01c3;
#line 1373 "regression-bugs-tmp/soap80-a.imp"
L_01c2:;
#line 1373 "regression-bugs-tmp/soap80-a.imp"
WORKFILE = OUTF;
#line 1373 "regression-bugs-tmp/soap80-a.imp"
L_01c3:;
                                                                //   1374      workfile = outf
                                                                //   1375     %if stream#terminal %start
#line 1375 "regression-bugs-tmp/soap80-a.imp"
if (((STREAM) == (1))) goto L_01c4;
                                                                //   1376        filesizeptr = 1
#line 1376 "regression-bugs-tmp/soap80-a.imp"
FILESIZEPTR = 1;
                                                                //   1377        filesize = fstable(filesizeptr)
#line 1377 "regression-bugs-tmp/soap80-a.imp"
FILESIZE = (FSTABLE-1)[FILESIZEPTR];
                                                                //   1378  !printstring("outfile: ".workfile.snl)
                                                                //   1379        outfile(workfile, filesize, 0, 0, conad, eflag)
#line 1379 "regression-bugs-tmp/soap80-a.imp"
OUTFILE(&WORKFILE, FILESIZE, 0, 0, &CONAD, &EFLAG);
                                                                //   1380        %if eflag#0 %then fail(eflag, 5)
#line 1380 "regression-bugs-tmp/soap80-a.imp"
if (((EFLAG) == (0))) goto L_01c5;
#line 1380 "regression-bugs-tmp/soap80-a.imp"
FAIL(EFLAG, 5);
#line 1380 "regression-bugs-tmp/soap80-a.imp"
L_01c5:;
                                                                //   1381        outrec == record(conad)
#line 1381 "regression-bugs-tmp/soap80-a.imp"
OUTREC =  (FHDR *) _imp_RECORD(CONAD);
                                                                //   1382        writeaddress = conad+outrec_datastart; wa0 = write address
#line 1382 "regression-bugs-tmp/soap80-a.imp"
WRITEADDRESS = (((int)(CONAD)) + (OUTREC->DATASTART));
#line 1382 "regression-bugs-tmp/soap80-a.imp"
WA0 = WRITEADDRESS;
                                                                //   1383        outrec_filetype = charfile
#line 1383 "regression-bugs-tmp/soap80-a.imp"
OUTREC->FILETYPE = 3;
                                                                //   1384        ! Rest of record elements to be fill in at end of indentation.
                                                                //   1385     %finish
#line 1385 "regression-bugs-tmp/soap80-a.imp"
L_01c4:;
                                                                //   1386  
                                                                //   1387     outbuf(0) = 0; sc(0) = 0
#line 1387 "regression-bugs-tmp/soap80-a.imp"
OUTBUF[0] = 0;
#line 1387 "regression-bugs-tmp/soap80-a.imp"
SC[0] = 0;
                                                                //   1388     level = 0; obp = 1; in = 0
#line 1388 "regression-bugs-tmp/soap80-a.imp"
LEVEL = 0;
#line 1388 "regression-bugs-tmp/soap80-a.imp"
OBP = 1;
#line 1388 "regression-bugs-tmp/soap80-a.imp"
IN = 0;
                                                                //   1389     inline = 1; line = 0 {output line}
#line 1389 "regression-bugs-tmp/soap80-a.imp"
INLINE = 1;
#line 1389 "regression-bugs-tmp/soap80-a.imp"
LINE = 0;
                                                                //   1390     errors = 0; erptr = 0; charsin = 0
#line 1390 "regression-bugs-tmp/soap80-a.imp"
ERRORS = 0;
#line 1390 "regression-bugs-tmp/soap80-a.imp"
ERPTR = 0;
#line 1390 "regression-bugs-tmp/soap80-a.imp"
CHARSIN = 0;
                                                                //   1391     str = false
#line 1391 "regression-bugs-tmp/soap80-a.imp"
STR = 0;
                                                                //   1392     stop = false; semicolon = false; increm = false; inlabel = false
#line 1392 "regression-bugs-tmp/soap80-a.imp"
STOP = 0;
#line 1392 "regression-bugs-tmp/soap80-a.imp"
SEMICOLON = 0;
#line 1392 "regression-bugs-tmp/soap80-a.imp"
INCREM = 0;
#line 1392 "regression-bugs-tmp/soap80-a.imp"
INLABEL = 0;
                                                                //   1393     ersave = false
#line 1393 "regression-bugs-tmp/soap80-a.imp"
ERSAVE = 0;
                                                                //   1394     %if p_uckey=true %then percentc = "%C" %else percentc = "%c"
#line 1394 "regression-bugs-tmp/soap80-a.imp"
if (((P.UCKEY) != (255))) goto L_01c6;
#line 1394 "regression-bugs-tmp/soap80-a.imp"
PERCENTC = _imp_str_literal("%C");
#line 1394 "regression-bugs-tmp/soap80-a.imp"
goto L_01c7;
#line 1394 "regression-bugs-tmp/soap80-a.imp"
L_01c6:;
#line 1394 "regression-bugs-tmp/soap80-a.imp"
PERCENTC = _imp_str_literal("%c");
#line 1394 "regression-bugs-tmp/soap80-a.imp"
L_01c7:;
                                                                //   1395     %cycle
#line 1395 "regression-bugs-tmp/soap80-a.imp"
L_01c8:;
                                                                //   1396        bheading = false
#line 1396 "regression-bugs-tmp/soap80-a.imp"
BHEADING = 0;
                                                                //   1397        maxptr = 0
#line 1397 "regression-bugs-tmp/soap80-a.imp"
MAXPTR = 0;
                                                                //   1398        ! Is there more to analyse in this statement.
                                                                //   1399        colon = inlabel
#line 1399 "regression-bugs-tmp/soap80-a.imp"
COLON = INLABEL;
                                                                //   1400        %if inlabel=false %then getline(1) %else inlabel = false
#line 1400 "regression-bugs-tmp/soap80-a.imp"
if (((INLABEL) != (0))) goto L_01cb;
#line 1400 "regression-bugs-tmp/soap80-a.imp"
GETLINE(1);
#line 1400 "regression-bugs-tmp/soap80-a.imp"
goto L_01cc;
#line 1400 "regression-bugs-tmp/soap80-a.imp"
L_01cb:;
#line 1400 "regression-bugs-tmp/soap80-a.imp"
INLABEL = 0;
#line 1400 "regression-bugs-tmp/soap80-a.imp"
L_01cc:;
                                                                //   1401        %if check(ss)=false %start
#line 1401 "regression-bugs-tmp/soap80-a.imp"
if (((CHECK(2041)) != (0))) goto L_01cd;
                                                                //   1402           printstring(snl."Syntax analysis fails on input line ".itos(inline-1,0))
#line 1402 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSTRING(_imp_join((_imp_string)_imp_join((_imp_string)_imp_SNL(),(_imp_string)_imp_str_literal("Syntax analysis fails on input line ")),(_imp_string)_imp_ITOS((((int)(INLINE)) - (1)), 0)));
                                                                //   1403           printstring(" (output line ".itos(line+1,0).")".snl)
#line 1403 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSTRING(_imp_join((_imp_string)_imp_join((_imp_string)_imp_join((_imp_string)_imp_str_literal(" (output line "),(_imp_string)_imp_ITOS((((int)(LINE)) + (1)), 0)),(_imp_string)_imp_str_literal(")")),(_imp_string)_imp_SNL()));
                                                                //   1404           z = 1
#line 1404 "regression-bugs-tmp/soap80-a.imp"
Z = 1;
                                                                //   1405           %while chartype(sc(z))&endst=0 %cycle
#line 1405 "regression-bugs-tmp/soap80-a.imp"
L_01ce:;
#line 1405 "regression-bugs-tmp/soap80-a.imp"
if (((((CHARTYPE[SC[Z]]) & (8))) != (0))) goto L_01cf;
                                                                //   1406              %if sc(z)&127=rs %then printstring(snl) %else printsymbol(sc(z)&127)
#line 1406 "regression-bugs-tmp/soap80-a.imp"
if (((((SC[Z]) & (127))) != (30))) goto L_01d1;
#line 1406 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSTRING(_imp_SNL());
#line 1406 "regression-bugs-tmp/soap80-a.imp"
goto L_01d2;
#line 1406 "regression-bugs-tmp/soap80-a.imp"
L_01d1:;
#line 1406 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSYMBOL(((SC[Z]) & (127)));
#line 1406 "regression-bugs-tmp/soap80-a.imp"
L_01d2:;
                                                                //   1407              z = z+1
#line 1407 "regression-bugs-tmp/soap80-a.imp"
Z = (((int)(Z)) + (1));
                                                                //   1408           %repeat
#line 1408 "regression-bugs-tmp/soap80-a.imp"
goto L_01ce;
#line 1408 "regression-bugs-tmp/soap80-a.imp"
L_01cf:;
                                                                //   1409           %if sc(z)=';' %then printsymbol(';')
#line 1409 "regression-bugs-tmp/soap80-a.imp"
if (((SC[Z]) != (59))) goto L_01d3;
#line 1409 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSYMBOL(59);
#line 1409 "regression-bugs-tmp/soap80-a.imp"
L_01d3:;
                                                                //   1410           printstring(snl)
#line 1410 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSTRING(_imp_SNL());
                                                                //   1411           spaces(maxptr-1); printsymbol('!'); printstring(snl)
#line 1411 "regression-bugs-tmp/soap80-a.imp"
_imp_SPACES((((int)(MAXPTR)) - (1)));
#line 1411 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSYMBOL(33);
#line 1411 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSTRING(_imp_SNL());
                                                                //   1412           startline = startline+1 %while byteinteger(startline)=' '
#line 1412 "regression-bugs-tmp/soap80-a.imp"
L_01d4:;
#line 1412 "regression-bugs-tmp/soap80-a.imp"
if (((*_imp_BYTEINTEGER(STARTLINE)) != (32))) goto L_01d5;
#line 1412 "regression-bugs-tmp/soap80-a.imp"
STARTLINE = (((int)(STARTLINE)) + (1));
#line 1412 "regression-bugs-tmp/soap80-a.imp"
goto L_01d4;
#line 1412 "regression-bugs-tmp/soap80-a.imp"
L_01d5:;
                                                                //   1413           %if stream#terminal %start
#line 1413 "regression-bugs-tmp/soap80-a.imp"
if (((STREAM) == (1))) goto L_01d7;
                                                                //   1414              obp = 1
#line 1414 "regression-bugs-tmp/soap80-a.imp"
OBP = 1;
                                                                //   1415              ! Line failed - Input line to output routine.
                                                                //   1416              z = byteinteger(startline)
#line 1416 "regression-bugs-tmp/soap80-a.imp"
Z = *_imp_BYTEINTEGER(STARTLINE);
                                                                //   1417              %while chartype(z)&endst=0 %cycle
#line 1417 "regression-bugs-tmp/soap80-a.imp"
L_01d8:;
#line 1417 "regression-bugs-tmp/soap80-a.imp"
if (((((CHARTYPE[Z]) & (8))) != (0))) goto L_01d9;
                                                                //   1418                 %if chartype(z)&quotes#0 %start
#line 1418 "regression-bugs-tmp/soap80-a.imp"
if (((((CHARTYPE[Z]) & (4))) == (0))) goto L_01db;
                                                                //   1419                    strdelimiter = z
#line 1419 "regression-bugs-tmp/soap80-a.imp"
STRDELIMITER = Z;
                                                                //   1420                    outbuf(obp) = strdelimiter; obp = obp+1
#line 1420 "regression-bugs-tmp/soap80-a.imp"
OUTBUF[OBP] = STRDELIMITER;
#line 1420 "regression-bugs-tmp/soap80-a.imp"
OBP = (((int)(OBP)) + (1));
                                                                //   1421                    startline = startline+1
#line 1421 "regression-bugs-tmp/soap80-a.imp"
STARTLINE = (((int)(STARTLINE)) + (1));
                                                                //   1422                    z = byteinteger(startline)
#line 1422 "regression-bugs-tmp/soap80-a.imp"
Z = *_imp_BYTEINTEGER(STARTLINE);
                                                                //   1423                    %while z#strdelimiter %cycle
#line 1423 "regression-bugs-tmp/soap80-a.imp"
L_01dc:;
#line 1423 "regression-bugs-tmp/soap80-a.imp"
if (((Z) == (STRDELIMITER))) goto L_01dd;
                                                                //   1424                       outbuf(obp) = z
#line 1424 "regression-bugs-tmp/soap80-a.imp"
OUTBUF[OBP] = Z;
                                                                //   1425                       obp = obp+1; startline = startline+1
#line 1425 "regression-bugs-tmp/soap80-a.imp"
OBP = (((int)(OBP)) + (1));
#line 1425 "regression-bugs-tmp/soap80-a.imp"
STARTLINE = (((int)(STARTLINE)) + (1));
                                                                //   1426                       z = byteinteger(startline)
#line 1426 "regression-bugs-tmp/soap80-a.imp"
Z = *_imp_BYTEINTEGER(STARTLINE);
                                                                //   1427                    %repeat
#line 1427 "regression-bugs-tmp/soap80-a.imp"
goto L_01dc;
#line 1427 "regression-bugs-tmp/soap80-a.imp"
L_01dd:;
                                                                //   1428                 %finish
#line 1428 "regression-bugs-tmp/soap80-a.imp"
L_01db:;
                                                                //   1429                 outbuf(obp) = z
#line 1429 "regression-bugs-tmp/soap80-a.imp"
OUTBUF[OBP] = Z;
                                                                //   1430                 obp = obp+1; startline = startline+1
#line 1430 "regression-bugs-tmp/soap80-a.imp"
OBP = (((int)(OBP)) + (1));
#line 1430 "regression-bugs-tmp/soap80-a.imp"
STARTLINE = (((int)(STARTLINE)) + (1));
                                                                //   1431                 z = byteinteger(startline)
#line 1431 "regression-bugs-tmp/soap80-a.imp"
Z = *_imp_BYTEINTEGER(STARTLINE);
                                                                //   1432              %repeat
#line 1432 "regression-bugs-tmp/soap80-a.imp"
goto L_01d8;
#line 1432 "regression-bugs-tmp/soap80-a.imp"
L_01d9:;
                                                                //   1433              outbuf(obp) = z; obp = obp+1
#line 1433 "regression-bugs-tmp/soap80-a.imp"
OUTBUF[OBP] = Z;
#line 1433 "regression-bugs-tmp/soap80-a.imp"
OBP = (((int)(OBP)) + (1));
                                                                //   1434              punch
#line 1434 "regression-bugs-tmp/soap80-a.imp"
PUNCH();
                                                                //   1435           %finish
#line 1435 "regression-bugs-tmp/soap80-a.imp"
L_01d7:;
                                                                //   1436           str = false
#line 1436 "regression-bugs-tmp/soap80-a.imp"
STR = 0;
                                                                //   1437           errors = errors+1
#line 1437 "regression-bugs-tmp/soap80-a.imp"
ERRORS = (((int)(ERRORS)) + (1));
                                                                //   1438        %finish %else %start
#line 1438 "regression-bugs-tmp/soap80-a.imp"
goto L_01df;
#line 1438 "regression-bugs-tmp/soap80-a.imp"
L_01cd:;
                                                                //   1439           %if inlabel=false %then punch
#line 1439 "regression-bugs-tmp/soap80-a.imp"
if (((INLABEL) != (0))) goto L_01e0;
#line 1439 "regression-bugs-tmp/soap80-a.imp"
PUNCH();
#line 1439 "regression-bugs-tmp/soap80-a.imp"
L_01e0:;
                                                                //   1440        %finish
#line 1440 "regression-bugs-tmp/soap80-a.imp"
L_01df:;
                                                                //   1441  
                                                                //   1442        %if stop=true %start
#line 1442 "regression-bugs-tmp/soap80-a.imp"
if (((STOP) != (255))) goto L_01e1;
                                                                //   1443           %if errors=0 %then closedown(true) %else closedown(false)
#line 1443 "regression-bugs-tmp/soap80-a.imp"
if (((ERRORS) != (0))) goto L_01e2;
#line 1443 "regression-bugs-tmp/soap80-a.imp"
CLOSEDOWN(255);
#line 1443 "regression-bugs-tmp/soap80-a.imp"
L_01e2:;
#line 1443 "regression-bugs-tmp/soap80-a.imp"
CLOSEDOWN(0);
                                                                //   1444        %finish
#line 1444 "regression-bugs-tmp/soap80-a.imp"
L_01e1:;
                                                                //   1445     %repeat
#line 1445 "regression-bugs-tmp/soap80-a.imp"
goto L_01c8;
                                                                //   1446     ! DOES NOT  COME THROUGH HERE
                                                                //   1447  
                                                                //   1448     %routine fail(%integer type, action)
#line 1448 "regression-bugs-tmp/soap80-a.imp"
void FAIL( int TYPE, int ACTION )
#line 1448 "regression-bugs-tmp/soap80-a.imp"
{
                                                                //   1449        %if action#5 %start
#line 1449 "regression-bugs-tmp/soap80-a.imp"
if (((ACTION) == (5))) goto L_01c9;
                                                                //   1450           %if action&2=0 %then %c
#line 1450 "regression-bugs-tmp/soap80-a.imp"
if (((((ACTION) & (2))) != (0))) goto L_01e3;
#line 1450 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSTRING(_imp_join((_imp_string)_imp_SNL(),(_imp_string)_imp_str_literal("*** Error: ")));
#line 1450 "regression-bugs-tmp/soap80-a.imp"
ERRORS = (((int)(ERRORS)) + (1));
#line 1450 "regression-bugs-tmp/soap80-a.imp"
goto L_01e4;
#line 1450 "regression-bugs-tmp/soap80-a.imp"
L_01e3:;
#line 1450 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSTRING(_imp_join((_imp_string)_imp_SNL(),(_imp_string)_imp_str_literal("*** Warning: ")));
#line 1450 "regression-bugs-tmp/soap80-a.imp"
L_01e4:;
                                                                //   1451            printstring(snl."*** Error: ") %and errors = errors+1 %else %c
                                                                //   1452            printstring(snl."*** Warning: ")
                                                                //   1453        %finish
#line 1453 "regression-bugs-tmp/soap80-a.imp"
L_01c9:;
                                                                //   1454  
                                                                //   1455        %if action&4=0 %start
#line 1455 "regression-bugs-tmp/soap80-a.imp"
if (((((ACTION) & (4))) != (0))) goto L_01e5;
                                                                //   1456           printstring(fault(type).snl)
#line 1456 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSTRING(_imp_join((_imp_string)(FAULT-1)[TYPE],(_imp_string)_imp_SNL()));
                                                                //   1457           printstring("*** In input line ".itos(inline,0)." (output line ".itos(line,0).")".snl)
#line 1457 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSTRING(_imp_join((_imp_string)_imp_join((_imp_string)_imp_join((_imp_string)_imp_join((_imp_string)_imp_join((_imp_string)_imp_str_literal("*** In input line "),(_imp_string)_imp_ITOS(INLINE, 0)),(_imp_string)_imp_str_literal(" (output line ")),(_imp_string)_imp_ITOS(LINE, 0)),(_imp_string)_imp_str_literal(")")),(_imp_string)_imp_SNL()));
                                                                //   1458        %finish %else printstring("*** Soap80 fails -".failuremessage(type)) %c
#line 1458 "regression-bugs-tmp/soap80-a.imp"
goto L_01e6;
#line 1458 "regression-bugs-tmp/soap80-a.imp"
L_01e5:;
#line 1458 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSTRING(_imp_join((_imp_string)_imp_str_literal("*** Soap80 fails -"),(_imp_string)FAILUREMESSAGE(TYPE)));
#line 1458 "regression-bugs-tmp/soap80-a.imp"
exit(0);
#line 1458 "regression-bugs-tmp/soap80-a.imp"
L_01e6:;
                                                                //   1459         %and %stop
                                                                //   1460  
                                                                //   1461        %if action&1=1 %then closedown(false)
#line 1461 "regression-bugs-tmp/soap80-a.imp"
if (((((ACTION) & (1))) != (1))) goto L_01e7;
#line 1461 "regression-bugs-tmp/soap80-a.imp"
CLOSEDOWN(0);
#line 1461 "regression-bugs-tmp/soap80-a.imp"
L_01e7:;
                                                                //   1462     %end
#line 1462 "regression-bugs-tmp/soap80-a.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block FAIL at level 2
                                                                //   1463  
                                                                //   1464     %routine opt(%string (255) parm, %record (pformat) %name p)
#line 1464 "regression-bugs-tmp/soap80-a.imp"
void OPT( _imp_string /*%string(255)*/ PARM,  PFORMAT /*name*/*P )
#line 1464 "regression-bugs-tmp/soap80-a.imp"
{
                                                                //   1465  !***********************************************************************
                                                                //   1466  !*    THIS ROUTINE PROCESSES THE USER OPTION LIST                      *
                                                                //   1467  !***********************************************************************
                                                                //   1468        %routine %spec readline
#line 1468 "regression-bugs-tmp/soap80-a.imp"
auto void READLINE( void );
                                                                //   1469        %routine %spec setline
#line 1469 "regression-bugs-tmp/soap80-a.imp"
auto void SETLINE( void );
                                                                //   1470        %integer %fn %spec stoi(%string (255) snum)
#line 1470 "regression-bugs-tmp/soap80-a.imp"
auto int STOI( _imp_string /*%string(255)*/ SNUM );
                                                                //   1471        %routine %spec ask(%integer optno)
#line 1471 "regression-bugs-tmp/soap80-a.imp"
auto void ASK( int OPTNO );
                                                                //   1472        %integer i, j, temp, flag, prof vsn
#line 1472 "regression-bugs-tmp/soap80-a.imp"
int I;
#line 1472 "regression-bugs-tmp/soap80-a.imp"
int J;
#line 1472 "regression-bugs-tmp/soap80-a.imp"
int TEMP;
#line 1472 "regression-bugs-tmp/soap80-a.imp"
int FLAG;
#line 1472 "regression-bugs-tmp/soap80-a.imp"
int PROFVSN;
                                                                //   1473        %string (80) line, option, value, filename
#line 1473 "regression-bugs-tmp/soap80-a.imp"
_imp_string /*%string(80)*/ LINE;
#line 1473 "regression-bugs-tmp/soap80-a.imp"
_imp_string /*%string(80)*/ OPTION;
#line 1473 "regression-bugs-tmp/soap80-a.imp"
_imp_string /*%string(80)*/ VALUE;
#line 1473 "regression-bugs-tmp/soap80-a.imp"
_imp_string /*%string(80)*/ FILENAME;
                                                                //   1474        %const %integer prog vsn= 3
                                                                //   1475        %switch prof(0:prog vsn)
#line 1475 "regression-bugs-tmp/soap80-a.imp"
static int sw2_PROF_idx;
static const void * /*SWITCH*/ sw2_PROF[4] = { &&sw2_PROF_0, &&sw2_PROF_1, &&sw2_PROF_2, &&sw2_PROF_3,  };
                                                                //   1476  
                                                                //   1477        prof vsn = 0; flag = 5;
#line 1477 "regression-bugs-tmp/soap80-a.imp"
PROFVSN = 0;
#line 1477 "regression-bugs-tmp/soap80-a.imp"
FLAG = 5;
                                                                //   1478        !read profile("Soap80key", p, prof vsn, flag)
                                                                //   1479        %if flag>4 %start
#line 1479 "regression-bugs-tmp/soap80-a.imp"
if (((FLAG) <= (4))) goto L_01e8;
                                                                //   1480           printstring( %c
#line 1480 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSTRING(_imp_join((_imp_string)_imp_str_literal("Failed to read file SS#PROFILE.  Defaults options assumed."),(_imp_string)_imp_SNL()));
                                                                //   1481            "Failed to read file SS#PROFILE.  Defaults options assumed.".snl)
                                                                //   1482        %finish
#line 1482 "regression-bugs-tmp/soap80-a.imp"
L_01e8:;
                                                                //   1483  
                                                                //   1484        ->prof(prof vsn)
#line 1484 "regression-bugs-tmp/soap80-a.imp"
sw2_PROF_idx = PROFVSN; if ((0 <= sw2_PROF_idx) && (sw2_PROF_idx <= 3)) goto *sw2_PROF[sw2_PROF_idx]; else {
   /*_imp_signal(8, 2, sw2_PROF_idx);*/
   fprintf(stderr, "%%SWITCH index PROF(%d) not in range 0:3 at %s:%d\n",
           sw2_PROF_idx, (_imp_current_file != 0 ? _imp_current_file : __FILE__),
           (_imp_current_line != 0 ? _imp_current_line : __LINE__));
           exit(1);
}
                                                                //   1485  
                                                                //   1486        ! In the following profile-handling code, we work with array p_a
                                                                //   1487        ! (alternative format) rather than the actual option names (p_sepkey
                                                                //   1488        ! etc.).  This is because the p_a operations remain valid even if the
                                                                //   1489        ! record format is subsequently changed.
                                                                //   1490  
                                                                //   1491  prof(0):
#line 1491 "regression-bugs-tmp/soap80-a.imp"
sw2_PROF_0:;
                                                                //   1492        ! Code to set up profile vsn 1 data:
                                                                //   1493        ! This consists of 14 options followed by 21 tab values.
                                                                //   1494  
                                                                //   1495        ! original defaults
                                                                //   1496        !p_a(1) = 80; ! line - lines are broken into two if length is greater than 80.
                                                                //   1497        !p_a(2) = 3; ! icontin - continuation of line have an addition indentation of 3.
                                                                //   1498        !p_a(3) = 41; ! poscom - position for right hand comments.
                                                                //   1499        !p_a(4) = true; ! movecom - main comment are indented to POSCOM.
                                                                //   1500        !p_a(5) = true; ! uckey - keywords output in upper case.
                                                                //   1501        !p_a(6) = false; ! sepkey - adjacent keywords are compounded.
                                                                //   1502        !p_a(7) = true; ! lcasnam - case of names left alone.
                                                                //   1503        !p_a(8) = true; ! spacnam - spaces are left within names.
                                                                //   1504        !p_a(9) = true; ! spacass - spaces are added round assignment operators.
                                                                //   1505        !p_a(10) = false; ! spacop - spaces are not added round other operators.
                                                                //   1506        !p_a(11) = true; ! lclist - const lists to be left alone.
                                                                //   1507        !p_a(12) = true; ! iblock - block contents are indented w.r.t. block heading.
                                                                //   1508        !p_a(13) = false; ! istat - statements are aligned with declarations.
                                                                //   1509        !p_a(14) = false; ! seplab -  Labels and statements may occupy the same line.
                                                                //   1510  
                                                                //   1511        ! graham's preferred defaults
                                                                //   1512        p_a(1) = 80; ! line - lines are broken into two if length is greater than 80.
#line 1512 "regression-bugs-tmp/soap80-a.imp"
P->A[0] = 80;
                                                                //   1513        p_a(2) = 2; ! icontin - continuation of line have an addition indentation of 3.
#line 1513 "regression-bugs-tmp/soap80-a.imp"
P->A[1] = 2;
                                                                //   1514        p_a(3) = 41; ! poscom - position for right hand comments.
#line 1514 "regression-bugs-tmp/soap80-a.imp"
P->A[2] = 41;
                                                                //   1515        p_a(4) = false; ! movecom - main comment are indented to POSCOM.
#line 1515 "regression-bugs-tmp/soap80-a.imp"
P->A[3] = 0;
                                                                //   1516        p_a(5) = false; ! uckey - keywords output in upper case.
#line 1516 "regression-bugs-tmp/soap80-a.imp"
P->A[4] = 0;
                                                                //   1517        p_a(6) = true; ! sepkey - adjacent keywords are compounded.
#line 1517 "regression-bugs-tmp/soap80-a.imp"
P->A[5] = 255;
                                                                //   1518        p_a(7) = false; ! lcasnam - case of names left alone.
#line 1518 "regression-bugs-tmp/soap80-a.imp"
P->A[6] = 0;
                                                                //   1519        p_a(8) = true; ! spacnam - spaces are left within names.
#line 1519 "regression-bugs-tmp/soap80-a.imp"
P->A[7] = 255;
                                                                //   1520        p_a(9) = true; ! spacass - spaces are added round assignment operators.
#line 1520 "regression-bugs-tmp/soap80-a.imp"
P->A[8] = 255;
                                                                //   1521        p_a(10) = false; ! spacop - spaces are not added round other operators.
#line 1521 "regression-bugs-tmp/soap80-a.imp"
P->A[9] = 0;
                                                                //   1522        p_a(11) = true; ! lclist - const lists to be left alone.
#line 1522 "regression-bugs-tmp/soap80-a.imp"
P->A[10] = 255;
                                                                //   1523        p_a(12) = true; ! iblock - block contents are indented w.r.t. block heading.
#line 1523 "regression-bugs-tmp/soap80-a.imp"
P->A[11] = 255;
                                                                //   1524        p_a(13) = false; ! istat - statements are aligned with declarations.
#line 1524 "regression-bugs-tmp/soap80-a.imp"
P->A[12] = 0;
                                                                //   1525        p_a(14) = false; ! seplab -  Labels and statements may occupy the same line.
#line 1525 "regression-bugs-tmp/soap80-a.imp"
P->A[13] = 0;
                                                                //   1526  
                                                                //   1527  
                                                                //   1528        ! Set default indentation values.
                                                                //   1529        p_a(i+15) = 3*i %for i = 0, 1, 10
#line 1529 "regression-bugs-tmp/soap80-a.imp"
I = (-1);
if ((((10)-(0)) % (1)) != 0) _imp_signal(5,1,0,"Illegal cycle I = 0, 1, 10");
L_01e9:;
if (I == 10) goto L_01ea;
I += 1;
#line 1529 "regression-bugs-tmp/soap80-a.imp"
P->A[(((int)((((int)(I)) + (15)))) - (1))] = (((int)(3)) * (I));
#line 1529 "regression-bugs-tmp/soap80-a.imp"
goto L_01e9;
#line 1529 "regression-bugs-tmp/soap80-a.imp"
L_01ea:;
                                                                //   1530        p_a(i+15) = 5*i-20 %for i = 11, 1, 20
#line 1530 "regression-bugs-tmp/soap80-a.imp"
I = 10;
if ((((20)-(11)) % (1)) != 0) _imp_signal(5,1,0,"Illegal cycle I = 11, 1, 20");
L_01ec:;
if (I == 20) goto L_01ed;
I += 1;
#line 1530 "regression-bugs-tmp/soap80-a.imp"
P->A[(((int)((((int)(I)) + (15)))) - (1))] = (((int)((((int)(5)) * (I)))) - (20));
#line 1530 "regression-bugs-tmp/soap80-a.imp"
goto L_01ec;
#line 1530 "regression-bugs-tmp/soap80-a.imp"
L_01ed:;
                                                                //   1531  
                                                                //   1532  prof(1):
#line 1532 "regression-bugs-tmp/soap80-a.imp"
sw2_PROF_1:;
                                                                //   1533        ! Code to set up profile vsn 2 data:
                                                                //   1534        ! This consists of 15 options followed by 21 tab values.
                                                                //   1535        p_a(i) = p_a(i-1) %for i = 36, -1, 16; ! Move tab values down to make room.
#line 1535 "regression-bugs-tmp/soap80-a.imp"
I = 37;
if ((((16)-(36)) % ((-1))) != 0) _imp_signal(5,1,0,"Illegal cycle I = 36, (-1), 16");
L_01ef:;
if (I == 16) goto L_01f0;
I += (-1);
#line 1535 "regression-bugs-tmp/soap80-a.imp"
P->A[(((int)(I)) - (1))] = P->A[(((int)((((int)(I)) - (1)))) - (1))];
#line 1535 "regression-bugs-tmp/soap80-a.imp"
goto L_01ef;
#line 1535 "regression-bugs-tmp/soap80-a.imp"
L_01f0:;
                                                                //   1536        printstring("**New parameter available: SPCOMMA".snl)
#line 1536 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSTRING(_imp_join((_imp_string)_imp_str_literal("**New parameter available: SPCOMMA"),(_imp_string)_imp_SNL()));
                                                                //   1537        printstring("      Y : One space character inserted after commas.".snl)
#line 1537 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSTRING(_imp_join((_imp_string)_imp_str_literal("      Y : One space character inserted after commas."),(_imp_string)_imp_SNL()));
                                                                //   1538        printstring( %c
#line 1538 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSTRING(_imp_join((_imp_string)_imp_join((_imp_string)_imp_str_literal("      N : No space character inserted after commas (default)."),(_imp_string)_imp_SNL()),(_imp_string)_imp_SNL()));
                                                                //   1539         "      N : No space character inserted after commas (default).".snl.snl)
                                                                //   1540        p_a(15) = false; ! spcomma - default false.
#line 1540 "regression-bugs-tmp/soap80-a.imp"
P->A[14] = 0;
                                                                //   1541  prof(2):
#line 1541 "regression-bugs-tmp/soap80-a.imp"
sw2_PROF_2:;
                                                                //   1542        ! Code to set up profile vsn 3 data:
                                                                //   1543        ! This consists of 21 tab values followed by 16 options.
                                                                //   1544        %begin
#line 1544 "regression-bugs-tmp/soap80-a.imp"
void _BLOCK_1_LEVEL_2_(void) {
                                                                //   1545           %integer i
#line 1545 "regression-bugs-tmp/soap80-a.imp"
int I;
                                                                //   1546           %byte %integer %array tab(0:20)
#line 1546 "regression-bugs-tmp/soap80-a.imp"
unsigned char TAB[21];
                                                                //   1547           tab(i) = p_a(i+16) %for i = 0, 1, 20; ! Copy tab values out.
#line 1547 "regression-bugs-tmp/soap80-a.imp"
I = (-1);
if ((((20)-(0)) % (1)) != 0) _imp_signal(5,1,0,"Illegal cycle I = 0, 1, 20");
L_01f2:;
if (I == 20) goto L_01f3;
I += 1;
#line 1547 "regression-bugs-tmp/soap80-a.imp"
TAB[I] = P->A[(((int)((((int)(I)) + (16)))) - (1))];
#line 1547 "regression-bugs-tmp/soap80-a.imp"
goto L_01f2;
#line 1547 "regression-bugs-tmp/soap80-a.imp"
L_01f3:;
                                                                //   1548           p_a(i+21) = p_a(i) %for i = 1, 1, 6; ! Move options down.
#line 1548 "regression-bugs-tmp/soap80-a.imp"
I = 0;
if ((((6)-(1)) % (1)) != 0) _imp_signal(5,1,0,"Illegal cycle I = 1, 1, 6");
L_01f5:;
if (I == 6) goto L_01f6;
I += 1;
#line 1548 "regression-bugs-tmp/soap80-a.imp"
P->A[(((int)((((int)(I)) + (21)))) - (1))] = P->A[(((int)(I)) - (1))];
#line 1548 "regression-bugs-tmp/soap80-a.imp"
goto L_01f5;
#line 1548 "regression-bugs-tmp/soap80-a.imp"
L_01f6:;
                                                                //   1549           ! Item _a(28) will be the new parameter (expkey).
                                                                //   1550           p_a(i+22) = p_a(i) %for i = 7, 1, 15; ! Move options down.
#line 1550 "regression-bugs-tmp/soap80-a.imp"
I = 6;
if ((((15)-(7)) % (1)) != 0) _imp_signal(5,1,0,"Illegal cycle I = 7, 1, 15");
L_01f8:;
if (I == 15) goto L_01f9;
I += 1;
#line 1550 "regression-bugs-tmp/soap80-a.imp"
P->A[(((int)((((int)(I)) + (22)))) - (1))] = P->A[(((int)(I)) - (1))];
#line 1550 "regression-bugs-tmp/soap80-a.imp"
goto L_01f8;
#line 1550 "regression-bugs-tmp/soap80-a.imp"
L_01f9:;
                                                                //   1551           p_a(i+1) = tab(i) %for i = 0, 1, 20; ! Copy tab values back.
#line 1551 "regression-bugs-tmp/soap80-a.imp"
I = (-1);
if ((((20)-(0)) % (1)) != 0) _imp_signal(5,1,0,"Illegal cycle I = 0, 1, 20");
L_01fb:;
if (I == 20) goto L_01fc;
I += 1;
#line 1551 "regression-bugs-tmp/soap80-a.imp"
P->A[(((int)((((int)(I)) + (1)))) - (1))] = TAB[I];
#line 1551 "regression-bugs-tmp/soap80-a.imp"
goto L_01fb;
#line 1551 "regression-bugs-tmp/soap80-a.imp"
L_01fc:;
                                                                //   1552        %end
#line 1552 "regression-bugs-tmp/soap80-a.imp"
return;
} // End of block _BLOCK_1_LEVEL_2_ at level 3
_BLOCK_1_LEVEL_2_();
                                                                //   1553        printstring("**New parameter available: EXPKEY".snl)
#line 1553 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSTRING(_imp_join((_imp_string)_imp_str_literal("**New parameter available: EXPKEY"),(_imp_string)_imp_SNL()));
                                                                //   1554        printstring( %c
#line 1554 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSTRING(_imp_join((_imp_string)_imp_str_literal("      Y : Keywords %FN, %CONST and (sometimes) %ELSE expanded."),(_imp_string)_imp_SNL()));
                                                                //   1555         "      Y : Keywords %FN, %CONST and (sometimes) %ELSE expanded.".snl)
                                                                //   1556        printstring("      N : %FN, %CONST and %ELSE left alone (default).". %c
#line 1556 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSTRING(_imp_join((_imp_string)_imp_join((_imp_string)_imp_str_literal("      N : %FN, %CONST and %ELSE left alone (default)."),(_imp_string)_imp_SNL()),(_imp_string)_imp_SNL()));
                                                                //   1557         snl.snl)
                                                                //   1558        p_a(28) = false; ! expkey default - false.
#line 1558 "regression-bugs-tmp/soap80-a.imp"
P->A[27] = 0;
                                                                //   1559  
                                                                //   1560        ! The following two lines should always be just before the final 'prof'
                                                                //   1561        ! switch label.
                                                                //   1562        prof vsn = prog vsn
#line 1562 "regression-bugs-tmp/soap80-a.imp"
PROFVSN = 3;
                                                                //   1563        %begin
#line 1563 "regression-bugs-tmp/soap80-a.imp"
void _BLOCK_2_LEVEL_2_(void) {
                                                                //   1564          %string(11) key
#line 1564 "regression-bugs-tmp/soap80-a.imp"
_imp_string /*%string(11)*/ KEY;
                                                                //   1565          key = "Soap80key"
#line 1565 "regression-bugs-tmp/soap80-a.imp"
KEY = _imp_str_literal("Soap80key");
                                                                //   1566          write profile(key, p, prof vsn, flag)
#line 1566 "regression-bugs-tmp/soap80-a.imp"
WRITEPROFILE(&KEY, P, &PROFVSN, &FLAG);
                                                                //   1567        %end
#line 1567 "regression-bugs-tmp/soap80-a.imp"
return;
} // End of block _BLOCK_2_LEVEL_2_ at level 3
_BLOCK_2_LEVEL_2_();
                                                                //   1568  prof(3):
#line 1568 "regression-bugs-tmp/soap80-a.imp"
sw2_PROF_3:;
                                                                //   1569  
                                                                //   1570        ! Split up parameters and change default values.
                                                                //   1571        %if parm->filename.(",").outf %start
#line 1571 "regression-bugs-tmp/soap80-a.imp"
if (!(_imp_resolve(PARM, &FILENAME, _imp_str_literal(","), &OUTF))) goto L_01fe;
                                                                //   1572           %unless outf->outf.(",").parm %then parm = ""
#line 1572 "regression-bugs-tmp/soap80-a.imp"
if (_imp_resolve(OUTF, &OUTF, _imp_str_literal(","), &PARM)) goto L_01ff;
#line 1572 "regression-bugs-tmp/soap80-a.imp"
PARM = _imp_str_literal("");
#line 1572 "regression-bugs-tmp/soap80-a.imp"
L_01ff:;
                                                                //   1573        %finish %else filename = parm %and outf = parm %and parm = ""
#line 1573 "regression-bugs-tmp/soap80-a.imp"
goto L_0200;
#line 1573 "regression-bugs-tmp/soap80-a.imp"
L_01fe:;
#line 1573 "regression-bugs-tmp/soap80-a.imp"
FILENAME = PARM;
#line 1573 "regression-bugs-tmp/soap80-a.imp"
OUTF = PARM;
#line 1573 "regression-bugs-tmp/soap80-a.imp"
PARM = _imp_str_literal("");
#line 1573 "regression-bugs-tmp/soap80-a.imp"
L_0200:;
                                                                //   1574        infile = filename
#line 1574 "regression-bugs-tmp/soap80-a.imp"
INFILE = FILENAME;
                                                                //   1575        %if outf="" %then outf = filename
#line 1575 "regression-bugs-tmp/soap80-a.imp"
if ((_imp_strcmp(OUTF, _imp_str_literal("")) != 0)) goto L_0201;
#line 1575 "regression-bugs-tmp/soap80-a.imp"
OUTF = FILENAME;
#line 1575 "regression-bugs-tmp/soap80-a.imp"
L_0201:;
                                                                //   1576        %if parm="" %then %return
#line 1576 "regression-bugs-tmp/soap80-a.imp"
if ((_imp_strcmp(PARM, _imp_str_literal("")) != 0)) goto L_0202;
#line 1576 "regression-bugs-tmp/soap80-a.imp"
/* Remove %on %event handler here if present for this block */
return;
#line 1576 "regression-bugs-tmp/soap80-a.imp"
L_0202:;
                                                                //   1577  
                                                                //   1578  
                                                                //   1579        temp = charno(parm, length(parm))
#line 1579 "regression-bugs-tmp/soap80-a.imp"
TEMP = *_imp_CHARNO(&PARM, *_imp_LENGTH(&PARM));
                                                                //   1580        %if temp#'*' %and temp#'?' %then parm = parm.",END"
#line 1580 "regression-bugs-tmp/soap80-a.imp"
if (((TEMP) == (42))) goto L_0203;
#line 1580 "regression-bugs-tmp/soap80-a.imp"
if (((TEMP) == (63))) goto L_0203;
#line 1580 "regression-bugs-tmp/soap80-a.imp"
PARM = _imp_join((_imp_string)PARM,(_imp_string)_imp_str_literal(",END"));
#line 1580 "regression-bugs-tmp/soap80-a.imp"
L_0203:;
                                                                //   1581        %cycle
#line 1581 "regression-bugs-tmp/soap80-a.imp"
L_0204:;
                                                                //   1582           %if parm="" %then %start
#line 1582 "regression-bugs-tmp/soap80-a.imp"
if ((_imp_strcmp(PARM, _imp_str_literal("")) != 0)) goto L_0207;
                                                                //   1583             %begin
#line 1583 "regression-bugs-tmp/soap80-a.imp"
void _BLOCK_3_LEVEL_2_(void) {
                                                                //   1584               %string(15) s
#line 1584 "regression-bugs-tmp/soap80-a.imp"
_imp_string /*%string(15)*/ S;
                                                                //   1585               s = "Soap80: "
#line 1585 "regression-bugs-tmp/soap80-a.imp"
S = _imp_str_literal("Soap80: ");
                                                                //   1586               prompt(s); ! not a real imp prompt unfortunately
#line 1586 "regression-bugs-tmp/soap80-a.imp"
_imp_PROMPT(S);
                                                                //   1587             %end
#line 1587 "regression-bugs-tmp/soap80-a.imp"
return;
} // End of block _BLOCK_3_LEVEL_2_ at level 3
_BLOCK_3_LEVEL_2_();
                                                                //   1588             readline
#line 1588 "regression-bugs-tmp/soap80-a.imp"
READLINE();
                                                                //   1589           %finish %else %start
#line 1589 "regression-bugs-tmp/soap80-a.imp"
goto L_0208;
#line 1589 "regression-bugs-tmp/soap80-a.imp"
L_0207:;
                                                                //   1590             setline
#line 1590 "regression-bugs-tmp/soap80-a.imp"
SETLINE();
                                                                //   1591           %finish
#line 1591 "regression-bugs-tmp/soap80-a.imp"
L_0208:;
                                                                //   1592           %if line="END" %or line=".END" %then %return
#line 1592 "regression-bugs-tmp/soap80-a.imp"
if ((_imp_strcmp(LINE, _imp_str_literal("END")) == 0)) goto L_0109;
#line 1592 "regression-bugs-tmp/soap80-a.imp"
if ((_imp_strcmp(LINE, _imp_str_literal(".END")) != 0)) goto L_0209;
#line 1592 "regression-bugs-tmp/soap80-a.imp"
L_0109:;
#line 1592 "regression-bugs-tmp/soap80-a.imp"
/* Remove %on %event handler here if present for this block */
return;
#line 1592 "regression-bugs-tmp/soap80-a.imp"
L_0209:;
                                                                //   1593           ! End of parameter settings.
                                                                //   1594           %if line="GO" %or line=".GO" %then %return
#line 1594 "regression-bugs-tmp/soap80-a.imp"
if ((_imp_strcmp(LINE, _imp_str_literal("GO")) == 0)) goto L_020a;
#line 1594 "regression-bugs-tmp/soap80-a.imp"
if ((_imp_strcmp(LINE, _imp_str_literal(".GO")) != 0)) goto L_020b;
#line 1594 "regression-bugs-tmp/soap80-a.imp"
L_020a:;
#line 1594 "regression-bugs-tmp/soap80-a.imp"
/* Remove %on %event handler here if present for this block */
return;
#line 1594 "regression-bugs-tmp/soap80-a.imp"
L_020b:;
                                                                //   1595           ! End of parameter settings.
                                                                //   1596           %if line="STOP" %or line=".STOP" %then %stop; ! Abandon Soap80.
#line 1596 "regression-bugs-tmp/soap80-a.imp"
if ((_imp_strcmp(LINE, _imp_str_literal("STOP")) == 0)) goto L_020c;
#line 1596 "regression-bugs-tmp/soap80-a.imp"
if ((_imp_strcmp(LINE, _imp_str_literal(".STOP")) != 0)) goto L_020d;
#line 1596 "regression-bugs-tmp/soap80-a.imp"
L_020c:;
#line 1596 "regression-bugs-tmp/soap80-a.imp"
exit(0);
#line 1596 "regression-bugs-tmp/soap80-a.imp"
L_020d:;
                                                                //   1597  
                                                                //   1598           %if line="SAVE" %or line=".SAVE" %start
#line 1598 "regression-bugs-tmp/soap80-a.imp"
if ((_imp_strcmp(LINE, _imp_str_literal("SAVE")) == 0)) goto L_020e;
#line 1598 "regression-bugs-tmp/soap80-a.imp"
if ((_imp_strcmp(LINE, _imp_str_literal(".SAVE")) != 0)) goto L_020f;
#line 1598 "regression-bugs-tmp/soap80-a.imp"
L_020e:;
                                                                //   1599              %begin
#line 1599 "regression-bugs-tmp/soap80-a.imp"
void _BLOCK_4_LEVEL_2_(void) {
                                                                //   1600                %string(11) key
#line 1600 "regression-bugs-tmp/soap80-a.imp"
_imp_string /*%string(11)*/ KEY;
                                                                //   1601                key = "Soap80key"
#line 1601 "regression-bugs-tmp/soap80-a.imp"
KEY = _imp_str_literal("Soap80key");
                                                                //   1602                write profile(key, p, prof vsn, flag)
#line 1602 "regression-bugs-tmp/soap80-a.imp"
WRITEPROFILE(&KEY, P, &PROFVSN, &FLAG);
                                                                //   1603              %end
#line 1603 "regression-bugs-tmp/soap80-a.imp"
return;
} // End of block _BLOCK_4_LEVEL_2_ at level 3
_BLOCK_4_LEVEL_2_();
                                                                //   1604              printstring("Profile file SS#PROFILE created and cherished.".snl) %c
#line 1604 "regression-bugs-tmp/soap80-a.imp"
if (((FLAG) != (1))) goto L_0210;
#line 1604 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSTRING(_imp_join((_imp_string)_imp_str_literal("Profile file SS#PROFILE created and cherished."),(_imp_string)_imp_SNL()));
#line 1604 "regression-bugs-tmp/soap80-a.imp"
L_0210:;
                                                                //   1605                %if flag=1
                                                                //   1606           %finish %else %if line="?" %start
#line 1606 "regression-bugs-tmp/soap80-a.imp"
goto L_0211;
#line 1606 "regression-bugs-tmp/soap80-a.imp"
L_020f:;
#line 1606 "regression-bugs-tmp/soap80-a.imp"
if ((_imp_strcmp(LINE, _imp_str_literal("?")) != 0)) goto L_0212;
                                                                //   1607              ! Print options so far.
                                                                //   1608              printstring( %c
#line 1608 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSTRING(_imp_join((_imp_string)_imp_str_literal("Option name:{current setting}Meaning of current setting"),(_imp_string)_imp_SNL()));
                                                                //   1609               "Option name:{current setting}Meaning of current setting".snl)
                                                                //   1610              %for i = 1, 1, maxopt %cycle
#line 1610 "regression-bugs-tmp/soap80-a.imp"
I = 0;
if ((((16)-(1)) % (1)) != 0) _imp_signal(5,1,0,"Illegal cycle I = 1, 1, 16");
L_0213:;
if (I == 16) goto L_0214;
I += 1;
                                                                //   1611                 printstring(optname(i))
#line 1611 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSTRING((OPTNAME-1)[I]);
                                                                //   1612                 spaces(7-length(optname(i)))
#line 1612 "regression-bugs-tmp/soap80-a.imp"
_imp_SPACES(((7) - (*(int *)(_imp_LENGTH(&(OPTNAME-1)[I])))));
                                                                //   1613                 printstring(":{")
#line 1613 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSTRING(_imp_str_literal(":{"));
                                                                //   1614                 j = p_optarr(i)
#line 1614 "regression-bugs-tmp/soap80-a.imp"
J = P->OPTARR[(((int)(I)) - (1))];
                                                                //   1615                 %if j=false %then printsymbol('N') %else %if j=true %then %c
#line 1615 "regression-bugs-tmp/soap80-a.imp"
if (((J) != (0))) goto L_0216;
#line 1615 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSYMBOL(78);
#line 1615 "regression-bugs-tmp/soap80-a.imp"
goto L_0217;
#line 1615 "regression-bugs-tmp/soap80-a.imp"
L_0216:;
#line 1615 "regression-bugs-tmp/soap80-a.imp"
if (((J) != (255))) goto L_0218;
#line 1615 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSYMBOL(89);
#line 1615 "regression-bugs-tmp/soap80-a.imp"
goto L_0217;
#line 1615 "regression-bugs-tmp/soap80-a.imp"
L_0218:;
#line 1615 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSTRING(_imp_ITOS(J, 0));
#line 1615 "regression-bugs-tmp/soap80-a.imp"
L_0217:;
                                                                //   1616                  printsymbol('Y') %else printstring(itos(j,0))
                                                                //   1617                 j = 1 %if j>0
#line 1617 "regression-bugs-tmp/soap80-a.imp"
if (((J) <= (0))) goto L_0219;
#line 1617 "regression-bugs-tmp/soap80-a.imp"
J = 1;
#line 1617 "regression-bugs-tmp/soap80-a.imp"
L_0219:;
                                                                //   1618                 printstring("}".optmess(j+i*2).snl)
#line 1618 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSTRING(_imp_join((_imp_string)_imp_join((_imp_string)_imp_str_literal("}"),(_imp_string)(OPTMESS-2)[((J) + ((int)((((int)(I)) * (2)))))]),(_imp_string)_imp_SNL()));
                                                                //   1619              %repeat
#line 1619 "regression-bugs-tmp/soap80-a.imp"
goto L_0213;
#line 1619 "regression-bugs-tmp/soap80-a.imp"
L_0214:;
                                                                //   1620              printstring("TAB    :{")
#line 1620 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSTRING(_imp_str_literal("TAB    :{"));
                                                                //   1621              %for i = 1, 1, 20 %cycle
#line 1621 "regression-bugs-tmp/soap80-a.imp"
I = 0;
if ((((20)-(1)) % (1)) != 0) _imp_signal(5,1,0,"Illegal cycle I = 1, 1, 20");
L_021a:;
if (I == 20) goto L_021b;
I += 1;
                                                                //   1622                 printstring(itos(p_tab(i),0))
#line 1622 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSTRING(_imp_ITOS(P->TAB[I], 0));
                                                                //   1623                 printsymbol(':') %unless i=20
#line 1623 "regression-bugs-tmp/soap80-a.imp"
if (((I) == (20))) goto L_021d;
#line 1623 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSYMBOL(58);
#line 1623 "regression-bugs-tmp/soap80-a.imp"
L_021d:;
                                                                //   1624              %repeat
#line 1624 "regression-bugs-tmp/soap80-a.imp"
goto L_021a;
#line 1624 "regression-bugs-tmp/soap80-a.imp"
L_021b:;
                                                                //   1625              printsymbol('}')
#line 1625 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSYMBOL(125);
                                                                //   1626              printstring(snl)
#line 1626 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSTRING(_imp_SNL());
                                                                //   1627              printstring("        Indenting values".snl)
#line 1627 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSTRING(_imp_join((_imp_string)_imp_str_literal("        Indenting values"),(_imp_string)_imp_SNL()));
                                                                //   1628              printstring( %c
#line 1628 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSTRING(_imp_join((_imp_string)_imp_str_literal("SAVE     : Save current option settings, for defaults henceforth.\nGO or END: Cause SOAP80 to start processing the input.\nSTOP     : Cause SOAP80 to stop immediately."),(_imp_string)_imp_SNL()));
                                                                //   1629               "SAVE     : Save current option settings, for defaults henceforth.
                                                                //   1630  GO or END: Cause SOAP80 to start processing the input.
                                                                //   1631  STOP     : Cause SOAP80 to stop immediately.".snl)
                                                                //   1632           %finish %else %start
#line 1632 "regression-bugs-tmp/soap80-a.imp"
goto L_0211;
#line 1632 "regression-bugs-tmp/soap80-a.imp"
L_0212:;
                                                                //   1633              %if line->option.("=").value %and value#"" %start
#line 1633 "regression-bugs-tmp/soap80-a.imp"
if (!(_imp_resolve(LINE, &OPTION, _imp_str_literal("="), &VALUE))) goto L_021e;
#line 1633 "regression-bugs-tmp/soap80-a.imp"
if ((_imp_strcmp(VALUE, _imp_str_literal("")) == 0)) goto L_021e;
                                                                //   1634                 flag = 0
#line 1634 "regression-bugs-tmp/soap80-a.imp"
FLAG = 0;
                                                                //   1635                 %for i = 1, 1, maxopt %cycle
#line 1635 "regression-bugs-tmp/soap80-a.imp"
I = 0;
if ((((16)-(1)) % (1)) != 0) _imp_signal(5,1,0,"Illegal cycle I = 1, 1, 16");
L_021f:;
if (I == 16) goto L_0220;
I += 1;
                                                                //   1636                    %continue %unless option=optname(i)
#line 1636 "regression-bugs-tmp/soap80-a.imp"
if ((_imp_strcmp(OPTION, (OPTNAME-1)[I]) == 0)) goto L_0222;
#line 1636 "regression-bugs-tmp/soap80-a.imp"
goto L_0221;
#line 1636 "regression-bugs-tmp/soap80-a.imp"
L_0222:;
                                                                //   1637                    flag = 1; ! Option identified.
#line 1637 "regression-bugs-tmp/soap80-a.imp"
FLAG = 1;
                                                                //   1638                    %if value="?" %start
#line 1638 "regression-bugs-tmp/soap80-a.imp"
if ((_imp_strcmp(VALUE, _imp_str_literal("?")) != 0)) goto L_0223;
                                                                //   1639                       printstring(optname(i)); spaces(7-length(optname(i)))
#line 1639 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSTRING((OPTNAME-1)[I]);
#line 1639 "regression-bugs-tmp/soap80-a.imp"
_imp_SPACES(((7) - (*(int *)(_imp_LENGTH(&(OPTNAME-1)[I])))));
                                                                //   1640                       printstring(":{")
#line 1640 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSTRING(_imp_str_literal(":{"));
                                                                //   1641                       j = p_optarr(i)
#line 1641 "regression-bugs-tmp/soap80-a.imp"
J = P->OPTARR[(((int)(I)) - (1))];
                                                                //   1642                       %if j=false %then printsymbol('N') %else %if %c
#line 1642 "regression-bugs-tmp/soap80-a.imp"
if (((J) != (0))) goto L_0224;
#line 1642 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSYMBOL(78);
#line 1642 "regression-bugs-tmp/soap80-a.imp"
goto L_0225;
#line 1642 "regression-bugs-tmp/soap80-a.imp"
L_0224:;
#line 1642 "regression-bugs-tmp/soap80-a.imp"
if (((J) != (255))) goto L_0226;
#line 1642 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSYMBOL(89);
#line 1642 "regression-bugs-tmp/soap80-a.imp"
goto L_0225;
#line 1642 "regression-bugs-tmp/soap80-a.imp"
L_0226:;
#line 1642 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSTRING(_imp_ITOS(J, 0));
#line 1642 "regression-bugs-tmp/soap80-a.imp"
L_0225:;
                                                                //   1643                        j=true %then printsymbol('Y') %else printstring(itos(j,0))
                                                                //   1644                       j = 1 %if j>0
#line 1644 "regression-bugs-tmp/soap80-a.imp"
if (((J) <= (0))) goto L_0227;
#line 1644 "regression-bugs-tmp/soap80-a.imp"
J = 1;
#line 1644 "regression-bugs-tmp/soap80-a.imp"
L_0227:;
                                                                //   1645                       printstring("}".optmess(j+i*2).snl)
#line 1645 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSTRING(_imp_join((_imp_string)_imp_join((_imp_string)_imp_str_literal("}"),(_imp_string)(OPTMESS-2)[((J) + ((int)((((int)(I)) * (2)))))]),(_imp_string)_imp_SNL()));
                                                                //   1646                    %finish %else %start
#line 1646 "regression-bugs-tmp/soap80-a.imp"
goto L_0228;
#line 1646 "regression-bugs-tmp/soap80-a.imp"
L_0223:;
                                                                //   1647                       %if i<=numopt %start; ! Numerical value.
#line 1647 "regression-bugs-tmp/soap80-a.imp"
if (((I) > (3))) goto L_0229;
                                                                //   1648                          temp = stoi(value)
#line 1648 "regression-bugs-tmp/soap80-a.imp"
TEMP = STOI(VALUE);
                                                                //   1649                          %if option="LINE" %and (temp<30 %or temp>160) %start
#line 1649 "regression-bugs-tmp/soap80-a.imp"
if ((_imp_strcmp(OPTION, _imp_str_literal("LINE")) != 0)) goto L_022a;
#line 1649 "regression-bugs-tmp/soap80-a.imp"
if (((TEMP) < (30))) goto L_022b;
#line 1649 "regression-bugs-tmp/soap80-a.imp"
if (((TEMP) <= (160))) goto L_022a;
#line 1649 "regression-bugs-tmp/soap80-a.imp"
L_022b:;
                                                                //   1650                             printstring( %c
#line 1650 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSTRING(_imp_join((_imp_string)_imp_str_literal("Bad line length - Only from 30 to 160"),(_imp_string)_imp_SNL()));
                                                                //   1651                              "Bad line length - Only from 30 to 160".snl)
                                                                //   1652                             %exit
#line 1652 "regression-bugs-tmp/soap80-a.imp"
goto L_0220;
                                                                //   1653                          %finish
#line 1653 "regression-bugs-tmp/soap80-a.imp"
L_022a:;
                                                                //   1654                          temp = -1 %if temp>255
#line 1654 "regression-bugs-tmp/soap80-a.imp"
if (((TEMP) <= (255))) goto L_022c;
#line 1654 "regression-bugs-tmp/soap80-a.imp"
TEMP = (-1);
#line 1654 "regression-bugs-tmp/soap80-a.imp"
L_022c:;
                                                                //   1655                          %if temp=-1 %then %c
#line 1655 "regression-bugs-tmp/soap80-a.imp"
if (((TEMP) != ((-1)))) goto L_022d;
#line 1655 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSTRING(_imp_join((_imp_string)_imp_join((_imp_string)VALUE,(_imp_string)_imp_str_literal(" - ")),(_imp_string)FAILUREMESSAGE(320)));
#line 1655 "regression-bugs-tmp/soap80-a.imp"
goto L_022e;
#line 1655 "regression-bugs-tmp/soap80-a.imp"
L_022d:;
#line 1655 "regression-bugs-tmp/soap80-a.imp"
P->OPTARR[(((int)(I)) - (1))] = TEMP;
#line 1655 "regression-bugs-tmp/soap80-a.imp"
L_022e:;
                                                                //   1656                           printstring(value." - ".failure message(320)) %else %c
                                                                //   1657                           p_optarr(i) = temp
                                                                //   1658                       %finish %else ask(i)
#line 1658 "regression-bugs-tmp/soap80-a.imp"
goto L_022f;
#line 1658 "regression-bugs-tmp/soap80-a.imp"
L_0229:;
#line 1658 "regression-bugs-tmp/soap80-a.imp"
ASK(I);
#line 1658 "regression-bugs-tmp/soap80-a.imp"
L_022f:;
                                                                //   1659                    %finish
#line 1659 "regression-bugs-tmp/soap80-a.imp"
L_0228:;
                                                                //   1660                    %exit
#line 1660 "regression-bugs-tmp/soap80-a.imp"
goto L_0220;
                                                                //   1661                 %repeat
#line 1661 "regression-bugs-tmp/soap80-a.imp"
L_0221:;
#line 1661 "regression-bugs-tmp/soap80-a.imp"
goto L_021f;
#line 1661 "regression-bugs-tmp/soap80-a.imp"
L_0220:;
                                                                //   1662                 %continue %if flag=1; ! Cycle found option name.
#line 1662 "regression-bugs-tmp/soap80-a.imp"
if (((FLAG) != (1))) goto L_0230;
#line 1662 "regression-bugs-tmp/soap80-a.imp"
goto L_0206;
#line 1662 "regression-bugs-tmp/soap80-a.imp"
L_0230:;
                                                                //   1663                 %if option="TAB" %start
#line 1663 "regression-bugs-tmp/soap80-a.imp"
if ((_imp_strcmp(OPTION, _imp_str_literal("TAB")) != 0)) goto L_0231;
                                                                //   1664                    ! Set indenting value.
                                                                //   1665                    %if value="?" %start
#line 1665 "regression-bugs-tmp/soap80-a.imp"
if ((_imp_strcmp(VALUE, _imp_str_literal("?")) != 0)) goto L_0232;
                                                                //   1666                       printstring("TAB    :{")
#line 1666 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSTRING(_imp_str_literal("TAB    :{"));
                                                                //   1667                       %for i = 1, 1, 20 %cycle
#line 1667 "regression-bugs-tmp/soap80-a.imp"
I = 0;
if ((((20)-(1)) % (1)) != 0) _imp_signal(5,1,0,"Illegal cycle I = 1, 1, 20");
L_0233:;
if (I == 20) goto L_0234;
I += 1;
                                                                //   1668                          printstring(itos(p_tab(i),0))
#line 1668 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSTRING(_imp_ITOS(P->TAB[I], 0));
                                                                //   1669                          printsymbol(':') %unless i=20
#line 1669 "regression-bugs-tmp/soap80-a.imp"
if (((I) == (20))) goto L_0236;
#line 1669 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSYMBOL(58);
#line 1669 "regression-bugs-tmp/soap80-a.imp"
L_0236:;
                                                                //   1670                       %repeat
#line 1670 "regression-bugs-tmp/soap80-a.imp"
goto L_0233;
#line 1670 "regression-bugs-tmp/soap80-a.imp"
L_0234:;
                                                                //   1671                       printsymbol('}')
#line 1671 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSYMBOL(125);
                                                                //   1672                       printstring(snl)
#line 1672 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSTRING(_imp_SNL());
                                                                //   1673                       printstring("        Indenting values".snl)
#line 1673 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSTRING(_imp_join((_imp_string)_imp_str_literal("        Indenting values"),(_imp_string)_imp_SNL()));
                                                                //   1674                    %finish %else %start
#line 1674 "regression-bugs-tmp/soap80-a.imp"
goto L_0237;
#line 1674 "regression-bugs-tmp/soap80-a.imp"
L_0232:;
                                                                //   1675                       i = 1
#line 1675 "regression-bugs-tmp/soap80-a.imp"
I = 1;
                                                                //   1676                       %while i<=20 %and value#"" %cycle
#line 1676 "regression-bugs-tmp/soap80-a.imp"
L_0238:;
#line 1676 "regression-bugs-tmp/soap80-a.imp"
if (((I) > (20))) goto L_0239;
#line 1676 "regression-bugs-tmp/soap80-a.imp"
if ((_imp_strcmp(VALUE, _imp_str_literal("")) == 0)) goto L_0239;
                                                                //   1677                          temp = stoi(value)
#line 1677 "regression-bugs-tmp/soap80-a.imp"
TEMP = STOI(VALUE);
                                                                //   1678                          %if temp=-1 %then %c
#line 1678 "regression-bugs-tmp/soap80-a.imp"
if (((TEMP) != ((-1)))) goto L_023b;
#line 1678 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSTRING(_imp_join((_imp_string)_imp_join((_imp_string)VALUE,(_imp_string)_imp_str_literal(" - ")),(_imp_string)FAILUREMESSAGE(320)));
#line 1678 "regression-bugs-tmp/soap80-a.imp"
goto L_0239;
#line 1678 "regression-bugs-tmp/soap80-a.imp"
L_023b:;
                                                                //   1679                           printstring(value." - ".failuremessage(320)) %and %c
                                                                //   1680                           %exit
                                                                //   1681                          p_tab(i) = temp
#line 1681 "regression-bugs-tmp/soap80-a.imp"
P->TAB[I] = TEMP;
                                                                //   1682                          %if length(value)=0 %then i = i+1 %and %exit
#line 1682 "regression-bugs-tmp/soap80-a.imp"
if (((*_imp_LENGTH(&VALUE)) != (0))) goto L_023c;
#line 1682 "regression-bugs-tmp/soap80-a.imp"
I = (((int)(I)) + (1));
#line 1682 "regression-bugs-tmp/soap80-a.imp"
goto L_0239;
#line 1682 "regression-bugs-tmp/soap80-a.imp"
L_023c:;
                                                                //   1683                          %if charno(value, 1)#':' %start
#line 1683 "regression-bugs-tmp/soap80-a.imp"
if (((*_imp_CHARNO(&VALUE, 1)) == (58))) goto L_023d;
                                                                //   1684                             printstring(value." - ".failuremessage(320))
#line 1684 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSTRING(_imp_join((_imp_string)_imp_join((_imp_string)VALUE,(_imp_string)_imp_str_literal(" - ")),(_imp_string)FAILUREMESSAGE(320)));
                                                                //   1685                             i = 21
#line 1685 "regression-bugs-tmp/soap80-a.imp"
I = 21;
                                                                //   1686                          %finish %else value = substring(value, 2,
#line 1686 "regression-bugs-tmp/soap80-a.imp"
goto L_023e;
#line 1686 "regression-bugs-tmp/soap80-a.imp"
L_023d:;
#line 1686 "regression-bugs-tmp/soap80-a.imp"
VALUE = _imp_SUBSTRING(&VALUE, 2, *_imp_LENGTH(&VALUE));
#line 1686 "regression-bugs-tmp/soap80-a.imp"
L_023e:;
                                                                //   1687                            length(value))
                                                                //   1688                          i = i+1
#line 1688 "regression-bugs-tmp/soap80-a.imp"
I = (((int)(I)) + (1));
                                                                //   1689                       %repeat
#line 1689 "regression-bugs-tmp/soap80-a.imp"
goto L_0238;
#line 1689 "regression-bugs-tmp/soap80-a.imp"
L_0239:;
                                                                //   1690                       ! End of indenting value, make up the rest
                                                                //   1691                       %for j = i, 1, 20 %cycle
#line 1691 "regression-bugs-tmp/soap80-a.imp"
J = (((int)(I)) - (1));
if ((((20)-(I)) % (1)) != 0) _imp_signal(5,1,0,"Illegal cycle J = I, 1, 20");
L_023f:;
if (J == 20) goto L_0240;
J += 1;
                                                                //   1692                          p_tab(j) = 2*p_tab(j-1)-p_tab(j-2)
#line 1692 "regression-bugs-tmp/soap80-a.imp"
P->TAB[J] = (((unsigned char)(((2) * ((int)(P->TAB[(((int)(J)) - (1))]))))) - (P->TAB[(((int)(J)) - (2))]));
                                                                //   1693                          %if p_tab(j)>p_line %then p_tab(j) = p_line
#line 1693 "regression-bugs-tmp/soap80-a.imp"
if (((P->TAB[J]) <= (P->LINE))) goto L_0242;
#line 1693 "regression-bugs-tmp/soap80-a.imp"
P->TAB[J] = P->LINE;
#line 1693 "regression-bugs-tmp/soap80-a.imp"
L_0242:;
                                                                //   1694                       %repeat
#line 1694 "regression-bugs-tmp/soap80-a.imp"
goto L_023f;
#line 1694 "regression-bugs-tmp/soap80-a.imp"
L_0240:;
                                                                //   1695                    %finish
#line 1695 "regression-bugs-tmp/soap80-a.imp"
L_0237:;
                                                                //   1696                    %continue
#line 1696 "regression-bugs-tmp/soap80-a.imp"
goto L_0206;
                                                                //   1697                 %finish
#line 1697 "regression-bugs-tmp/soap80-a.imp"
L_0231:;
                                                                //   1698                 printstring(option." - ".failuremessage(322))
#line 1698 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSTRING(_imp_join((_imp_string)_imp_join((_imp_string)OPTION,(_imp_string)_imp_str_literal(" - ")),(_imp_string)FAILUREMESSAGE(322)));
                                                                //   1699                 ! Keyword not recognised.
                                                                //   1700              %finish %else %start
#line 1700 "regression-bugs-tmp/soap80-a.imp"
goto L_0243;
#line 1700 "regression-bugs-tmp/soap80-a.imp"
L_021e:;
                                                                //   1701                 printstring(line." -  invalid: format should be
#line 1701 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSTRING(_imp_join((_imp_string)_imp_join((_imp_string)LINE,(_imp_string)_imp_str_literal(" -  invalid: format should be\n      'keyword = value'      or     'keyword = ?'     or    '?'    or\n      'SAVE'    or    'END'     or    'GO'     or     'STOP'")),(_imp_string)_imp_SNL()));
                                                                //   1702        'keyword = value'      or     'keyword = ?'     or    '?'    or
                                                                //   1703        'SAVE'    or    'END'     or    'GO'     or     'STOP'".snl)
                                                                //   1704              %finish
#line 1704 "regression-bugs-tmp/soap80-a.imp"
L_0243:;
                                                                //   1705           %finish
#line 1705 "regression-bugs-tmp/soap80-a.imp"
L_0211:;
                                                                //   1706        %repeat
#line 1706 "regression-bugs-tmp/soap80-a.imp"
L_0206:;
#line 1706 "regression-bugs-tmp/soap80-a.imp"
goto L_0204;
                                                                //   1707        !%return
                                                                //   1708  
                                                                //   1709        %routine readline
#line 1709 "regression-bugs-tmp/soap80-a.imp"
void READLINE( void )
#line 1709 "regression-bugs-tmp/soap80-a.imp"
{
                                                                //   1710  !***********************************************************************
                                                                //   1711  !*    READLINE creates a line from the input device, converting all    *
                                                                //   1712  !*    lower case characters to upper case.                             *
                                                                //   1713  !***********************************************************************
                                                                //   1714           %integer ch
#line 1714 "regression-bugs-tmp/soap80-a.imp"
int CH;
                                                                //   1715           %cycle
#line 1715 "regression-bugs-tmp/soap80-a.imp"
L_0244:;
                                                                //   1716              line = ""
#line 1716 "regression-bugs-tmp/soap80-a.imp"
LINE = _imp_str_literal("");
                                                                //   1717              %cycle
#line 1717 "regression-bugs-tmp/soap80-a.imp"
L_0247:;
                                                                //   1718                 readsymbol(ch); %if ch=nl %then %exit
#line 1718 "regression-bugs-tmp/soap80-a.imp"
_imp_READSYMBOL(&CH);
#line 1718 "regression-bugs-tmp/soap80-a.imp"
if (((CH) != (10))) goto L_024a;
#line 1718 "regression-bugs-tmp/soap80-a.imp"
goto L_0248;
#line 1718 "regression-bugs-tmp/soap80-a.imp"
L_024a:;
                                                                //   1719                 %if ch=' ' %then %continue
#line 1719 "regression-bugs-tmp/soap80-a.imp"
if (((CH) != (32))) goto L_024b;
#line 1719 "regression-bugs-tmp/soap80-a.imp"
goto L_0249;
#line 1719 "regression-bugs-tmp/soap80-a.imp"
L_024b:;
                                                                //   1720                 ! Convert lower to upper.
                                                                //   1721                 line = line.tostring(onecase(ch))
#line 1721 "regression-bugs-tmp/soap80-a.imp"
LINE = _imp_join((_imp_string)LINE,(_imp_string)_imp_TOSTRING(ONECASE[CH]));
                                                                //   1722              %repeat
#line 1722 "regression-bugs-tmp/soap80-a.imp"
L_0249:;
#line 1722 "regression-bugs-tmp/soap80-a.imp"
goto L_0247;
#line 1722 "regression-bugs-tmp/soap80-a.imp"
L_0248:;
                                                                //   1723              ! Return only if the line has some thing on it.
                                                                //   1724              %if length(line)>0 %then %return
#line 1724 "regression-bugs-tmp/soap80-a.imp"
if (((*_imp_LENGTH(&LINE)) <= (0))) goto L_024c;
#line 1724 "regression-bugs-tmp/soap80-a.imp"
/* Remove %on %event handler here if present for this block */
return;
#line 1724 "regression-bugs-tmp/soap80-a.imp"
L_024c:;
                                                                //   1725           %repeat
#line 1725 "regression-bugs-tmp/soap80-a.imp"
goto L_0244;
                                                                //   1726        %end
#line 1726 "regression-bugs-tmp/soap80-a.imp"
return;
} // End of block READLINE at level 3
                                                                //   1727  
                                                                //   1728        %routine setline
#line 1728 "regression-bugs-tmp/soap80-a.imp"
void SETLINE( void )
#line 1728 "regression-bugs-tmp/soap80-a.imp"
{
                                                                //   1729  !***********************************************************************
                                                                //   1730  !*    SETLINE breaks the parameter list into single commands.          *
                                                                //   1731  !************************************************************************
                                                                //   1732           %unless parm->line.(",").parm %start
#line 1732 "regression-bugs-tmp/soap80-a.imp"
if (_imp_resolve(PARM, &LINE, _imp_str_literal(","), &PARM)) goto L_0245;
                                                                //   1733              ! Last command in parameter.
                                                                //   1734              %if charno(parm, length(parm))='*' %then readline %else line = parm
#line 1734 "regression-bugs-tmp/soap80-a.imp"
if (((*_imp_CHARNO(&PARM, *_imp_LENGTH(&PARM))) != (42))) goto L_024d;
#line 1734 "regression-bugs-tmp/soap80-a.imp"
READLINE();
#line 1734 "regression-bugs-tmp/soap80-a.imp"
goto L_024e;
#line 1734 "regression-bugs-tmp/soap80-a.imp"
L_024d:;
#line 1734 "regression-bugs-tmp/soap80-a.imp"
LINE = PARM;
#line 1734 "regression-bugs-tmp/soap80-a.imp"
L_024e:;
                                                                //   1735              parm = ""
#line 1735 "regression-bugs-tmp/soap80-a.imp"
PARM = _imp_str_literal("");
                                                                //   1736           %finish
#line 1736 "regression-bugs-tmp/soap80-a.imp"
L_0245:;
                                                                //   1737        %end
#line 1737 "regression-bugs-tmp/soap80-a.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block SETLINE at level 3
                                                                //   1738  
                                                                //   1739        %routine ask(%integer i)
#line 1739 "regression-bugs-tmp/soap80-a.imp"
void ASK( int I )
#line 1739 "regression-bugs-tmp/soap80-a.imp"
{
                                                                //   1740  !***********************************************************************
                                                                //   1741  !*    ASK checks that value starts with Y or N and                     *
                                                                //   1742  !*    assigns True or False accordingly to P_OPTARR(I).                *
                                                                //   1743  !***********************************************************************
                                                                //   1744           %integer s
#line 1744 "regression-bugs-tmp/soap80-a.imp"
int S;
                                                                //   1745           s = charno(value, 1)
#line 1745 "regression-bugs-tmp/soap80-a.imp"
S = *_imp_CHARNO(&VALUE, 1);
                                                                //   1746           %if s='Y' %then p_optarr(i) = true %else %if s='N' %then %c
#line 1746 "regression-bugs-tmp/soap80-a.imp"
if (((S) != (89))) goto L_024f;
#line 1746 "regression-bugs-tmp/soap80-a.imp"
P->OPTARR[(((int)(I)) - (1))] = 255;
#line 1746 "regression-bugs-tmp/soap80-a.imp"
goto L_0250;
#line 1746 "regression-bugs-tmp/soap80-a.imp"
L_024f:;
#line 1746 "regression-bugs-tmp/soap80-a.imp"
if (((S) != (78))) goto L_0251;
#line 1746 "regression-bugs-tmp/soap80-a.imp"
P->OPTARR[(((int)(I)) - (1))] = 0;
#line 1746 "regression-bugs-tmp/soap80-a.imp"
goto L_0250;
#line 1746 "regression-bugs-tmp/soap80-a.imp"
L_0251:;
#line 1746 "regression-bugs-tmp/soap80-a.imp"
_imp_PRINTSTRING(_imp_join((_imp_string)_imp_str_literal("Answer Yes or No or ?"),(_imp_string)_imp_SNL()));
#line 1746 "regression-bugs-tmp/soap80-a.imp"
L_0250:;
                                                                //   1747            p_optarr(i) = false %else printstring("Answer Yes or No or ?".snl)
                                                                //   1748        %end
#line 1748 "regression-bugs-tmp/soap80-a.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block ASK at level 3
                                                                //   1749  
                                                                //   1750        %integer %fn stoi(%string (255) snum)
#line 1750 "regression-bugs-tmp/soap80-a.imp"
int STOI( _imp_string /*%string(255)*/ SNUM )
#line 1750 "regression-bugs-tmp/soap80-a.imp"
{
                                                                //   1751  !***********************************************************************
                                                                //   1752  !*    STOI builts up an integer in INUM from the string SNUM, in       *
                                                                //   1753  !*    doing so characters are deleted from this string.                *
                                                                //   1754  !*    It is an error if the first character of the string is not a     *
                                                                //   1755  !*    number.  This is signalled by returning -1.                      *
                                                                //   1756  !***********************************************************************
                                                                //   1757           %integer i, inum
#line 1757 "regression-bugs-tmp/soap80-a.imp"
int I;
#line 1757 "regression-bugs-tmp/soap80-a.imp"
int INUM;
                                                                //   1758           %unless '0'<=charno(snum, 1)<='9' %then %result = -1
#line 1758 "regression-bugs-tmp/soap80-a.imp"
if (({int tmp1 = 48, tmp2 = *_imp_CHARNO(&SNUM, 1), tmp3 = 57; (tmp1 > tmp2) || (tmp2 <= tmp3);})) goto L_0252;
#line 1758 "regression-bugs-tmp/soap80-a.imp"
L_0246:;
#line 1758 "regression-bugs-tmp/soap80-a.imp"
/* Remove %on %event handler here if present for this block */
return (-1);
#line 1758 "regression-bugs-tmp/soap80-a.imp"
L_0252:;
                                                                //   1759           i = 1; inum = 0
#line 1759 "regression-bugs-tmp/soap80-a.imp"
I = 1;
#line 1759 "regression-bugs-tmp/soap80-a.imp"
INUM = 0;
                                                                //   1760           %while '0'<=charno(snum, i)<='9' %cycle
#line 1760 "regression-bugs-tmp/soap80-a.imp"
L_0253:;
#line 1760 "regression-bugs-tmp/soap80-a.imp"
if (({int tmp1 = 48, tmp2 = *_imp_CHARNO(&SNUM, I), tmp3 = 57; (tmp1 > tmp2) || (tmp2 > tmp3);})) goto L_0254;
                                                                //   1761              inum = inum*10+charno(snum, i)-'0'
#line 1761 "regression-bugs-tmp/soap80-a.imp"
INUM = (((int)((((unsigned char)((((int)(INUM)) * (10)))) + (*_imp_CHARNO(&SNUM, I))))) - (48));
                                                                //   1762              i = i+1
#line 1762 "regression-bugs-tmp/soap80-a.imp"
I = (((int)(I)) + (1));
                                                                //   1763              %if i>length(snum) %then %exit
#line 1763 "regression-bugs-tmp/soap80-a.imp"
if (((I) <= (*_imp_LENGTH(&SNUM)))) goto L_0256;
#line 1763 "regression-bugs-tmp/soap80-a.imp"
goto L_0254;
#line 1763 "regression-bugs-tmp/soap80-a.imp"
L_0256:;
                                                                //   1764           %repeat
#line 1764 "regression-bugs-tmp/soap80-a.imp"
goto L_0253;
#line 1764 "regression-bugs-tmp/soap80-a.imp"
L_0254:;
                                                                //   1765           %if i>=length(snum) %then snum = "" %else %c
#line 1765 "regression-bugs-tmp/soap80-a.imp"
if (((I) < (*_imp_LENGTH(&SNUM)))) goto L_0257;
#line 1765 "regression-bugs-tmp/soap80-a.imp"
SNUM = _imp_str_literal("");
#line 1765 "regression-bugs-tmp/soap80-a.imp"
goto L_0258;
#line 1765 "regression-bugs-tmp/soap80-a.imp"
L_0257:;
#line 1765 "regression-bugs-tmp/soap80-a.imp"
SNUM = _imp_SUBSTRING(&SNUM, I, *_imp_LENGTH(&SNUM));
#line 1765 "regression-bugs-tmp/soap80-a.imp"
L_0258:;
                                                                //   1766            snum = substring(snum, i, length(snum))
                                                                //   1767           %result = inum
#line 1767 "regression-bugs-tmp/soap80-a.imp"
/* Remove %on %event handler here if present for this block */
return INUM;
                                                                //   1768        %end
#line 1768 "regression-bugs-tmp/soap80-a.imp"
} // End of block STOI at level 3
                                                                //   1769     %end
#line 1769 "regression-bugs-tmp/soap80-a.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block OPT at level 2
                                                                //   1770  %end %of %program
#line 1770 "regression-bugs-tmp/soap80-a.imp"
/* Remove %on %event handler here if present for this block */
return 0;
} // End of block _imp_main at level 1
#line 1770 "regression-bugs-tmp/soap80-a.imp"
// End of file
