#include <perms.h>

                                                                //      1  %begin
#line 1 "regression-bugs-tmp/dscond.imp"
int main(int argc, char **argv) {
  _imp_initialise(argc, argv);
                                                                //      2  
                                                                //      3    %integerfn getchar
#line 3 "regression-bugs-tmp/dscond.imp"
int GETCHAR( void )
#line 3 "regression-bugs-tmp/dscond.imp"
{
                                                                //      4      %integer sym
#line 4 "regression-bugs-tmp/dscond.imp"
int SYM;
                                                                //      5      readsymbol(sym)
#line 5 "regression-bugs-tmp/dscond.imp"
_imp_READSYMBOL(&SYM);
                                                                //      6      printstring("Call returned "); printsymbol(sym); newline
#line 6 "regression-bugs-tmp/dscond.imp"
_imp_PRINTSTRING(_imp_str_literal("Call returned "));
#line 6 "regression-bugs-tmp/dscond.imp"
_imp_PRINTSYMBOL(SYM);
#line 6 "regression-bugs-tmp/dscond.imp"
_imp_NEWLINE();
                                                                //      7      %result = sym
#line 7 "regression-bugs-tmp/dscond.imp"
/* Remove %on %event handler here if present for this block */
return SYM;
                                                                //      8    %end
#line 8 "regression-bugs-tmp/dscond.imp"
} // End of block GETCHAR at level 2
                                                                //      9    
                                                                //     10    printstring("Please enter the word BUG when I ask for data:"); newline
#line 10 "regression-bugs-tmp/dscond.imp"
_imp_PRINTSTRING(_imp_str_literal("Please enter the word BUG when I ask for data:"));
#line 10 "regression-bugs-tmp/dscond.imp"
_imp_NEWLINE();
                                                                //     11  
                                                                //     12    %if 'A' <= getchar <= 'C' %start
#line 12 "regression-bugs-tmp/dscond.imp"
if (({int tmp1 = 65, tmp2 = GETCHAR(), tmp3 = 67; (tmp1 > tmp2) || (tmp2 > tmp3);})) goto L_0002;
                                                                //     13      printstring("Test successful."); newline
#line 13 "regression-bugs-tmp/dscond.imp"
_imp_PRINTSTRING(_imp_str_literal("Test successful."));
#line 13 "regression-bugs-tmp/dscond.imp"
_imp_NEWLINE();
                                                                //     14    %else
#line 14 "regression-bugs-tmp/dscond.imp"
goto L_0003;
#line 14 "regression-bugs-tmp/dscond.imp"
L_0002:;
                                                                //     15      printstring("Test failed - getchar was called twice."); newline
#line 15 "regression-bugs-tmp/dscond.imp"
_imp_PRINTSTRING(_imp_str_literal("Test failed - getchar was called twice."));
#line 15 "regression-bugs-tmp/dscond.imp"
_imp_NEWLINE();
                                                                //     16    %finish
#line 16 "regression-bugs-tmp/dscond.imp"
L_0003:;
                                                                //     17  
                                                                //     18  %endofprogram
#line 18 "regression-bugs-tmp/dscond.imp"
/* Remove %on %event handler here if present for this block */
return 0;
} // End of block _imp_main at level 1
#line 18 "regression-bugs-tmp/dscond.imp"
// End of file
