#define FLEX_SCANNER
#define YY_FLEX_MAJOR_VERSION 2
#define YY_FLEX_MINOR_VERSION 5
-#define YY_FLEX_SUBMINOR_VERSION 34
+#define YY_FLEX_SUBMINOR_VERSION 35
#if YY_FLEX_SUBMINOR_VERSION > 0
#define FLEX_BETA
#endif
typedef unsigned char flex_uint8_t;
typedef unsigned short int flex_uint16_t;
typedef unsigned int flex_uint32_t;
-#endif /* ! C99 */
/* Limits of integral types. */
#ifndef INT8_MIN
#define UINT32_MAX (4294967295U)
#endif
+#endif /* ! C99 */
+
#endif /* ! FLEXINT_H */
#ifdef __cplusplus
#define unput(c) yyunput( c, (yytext_ptr) )
-/* The following is because we cannot portably get our hands on size_t
- * (without autoconf's help, which isn't available because we want
- * flex-generated scanners to compile on their own).
- * Given that the standard has decreed that size_t exists since 1989,
- * I guess we can afford to depend on it. Manoj.
- */
-
#ifndef YY_TYPEDEF_YY_SIZE_T
#define YY_TYPEDEF_YY_SIZE_T
typedef size_t yy_size_t;
ick_bool re_send_token = ick_FALSE;
int lexer(void);
-static int myatoi(char *text);
+static int myatoi(const char *text);
+void yyerror(const char *errtype);
#define SETLINENO \
{if (stbeginline == 0) stbeginline = iyylineno;\
} \
}
-#line 1116 "lexer.c"
+#line 1111 "lexer.c"
#define INITIAL 0
static int yy_init_globals (void );
+/* Accessor methods to globals.
+ These are made visible to non-reentrant scanners for convenience. */
+
+int yylex_destroy (void );
+
+int yyget_debug (void );
+
+void yyset_debug (int debug_flag );
+
+YY_EXTRA_TYPE yyget_extra (void );
+
+void yyset_extra (YY_EXTRA_TYPE user_defined );
+
+FILE *yyget_in (void );
+
+void yyset_in (FILE * in_str );
+
+FILE *yyget_out (void );
+
+void yyset_out (FILE * out_str );
+
+int yyget_leng (void );
+
+char *yyget_text (void );
+
+int yyget_lineno (void );
+
+void yyset_lineno (int line_number );
+
/* Macros after this point can all be overridden by user definitions in
* section 1.
*/
/* This used to be an fputs(), but since the string might contain NUL's,
* we now use fwrite().
*/
-#define ECHO fwrite( yytext, yyleng, 1, yyout )
+#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
#endif
/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
{ \
int c = '*'; \
- int n; \
+ size_t n; \
for ( n = 0; n < max_size && \
(c = getc( yyin )) != EOF && c != '\n'; ++n ) \
buf[n] = (char) c; \
register char *yy_cp, *yy_bp;
register int yy_act;
-#line 225 "lexer.l"
+#line 226 "lexer.l"
-#line 1272 "lexer.c"
+#line 1296 "lexer.c"
if ( !(yy_init) )
{
case 1:
/* rule 1 can match eol */
YY_RULE_SETUP
-#line 227 "lexer.l"
+#line 228 "lexer.l"
{yylval.numval = myatoi(yytext); return(NUMBER);}
YY_BREAK
case 2:
YY_RULE_SETUP
-#line 228 "lexer.l"
+#line 229 "lexer.l"
{return(NOSPOT);}
YY_BREAK
case 3:
YY_RULE_SETUP
-#line 229 "lexer.l"
+#line 230 "lexer.l"
{return(ick_ONESPOT);}
YY_BREAK
case 4:
YY_RULE_SETUP
-#line 230 "lexer.l"
+#line 231 "lexer.l"
{return(ick_TWOSPOT);}
YY_BREAK
case 5:
YY_RULE_SETUP
-#line 231 "lexer.l"
+#line 232 "lexer.l"
{return(ick_TAIL);}
YY_BREAK
case 6:
YY_RULE_SETUP
-#line 232 "lexer.l"
+#line 233 "lexer.l"
{return(ick_HYBRID);}
YY_BREAK
case 7:
YY_RULE_SETUP
-#line 233 "lexer.l"
+#line 234 "lexer.l"
{return(MESH);}
YY_BREAK
case 8:
-#line 236 "lexer.l"
-case 9:
#line 237 "lexer.l"
+case 9:
+#line 238 "lexer.l"
case 10:
YY_RULE_SETUP
-#line 237 "lexer.l"
+#line 238 "lexer.l"
{return(MINGLE); /* AIS: CLC-INTERCAL ick_mingle symbols.
The \xBD is ISO-8859-1 for cent. */}
YY_BREAK
case 11:
-#line 240 "lexer.l"
-case 12:
#line 241 "lexer.l"
-case 13:
+case 12:
#line 242 "lexer.l"
-case 14:
+case 13:
#line 243 "lexer.l"
-case 15:
+case 14:
#line 244 "lexer.l"
-case 16:
+case 15:
#line 245 "lexer.l"
-case 17:
+case 16:
#line 246 "lexer.l"
-case 18:
+case 17:
#line 247 "lexer.l"
-case 19:
+case 18:
#line 248 "lexer.l"
-case 20:
+case 19:
#line 249 "lexer.l"
-case 21:
+case 20:
#line 250 "lexer.l"
-case 22:
+case 21:
#line 251 "lexer.l"
-case 23:
+case 22:
#line 252 "lexer.l"
-case 24:
+case 23:
#line 253 "lexer.l"
-case 25:
+case 24:
#line 254 "lexer.l"
-case 26:
+case 25:
#line 255 "lexer.l"
-case 27:
+case 26:
#line 256 "lexer.l"
-case 28:
+case 27:
#line 257 "lexer.l"
-case 29:
+case 28:
#line 258 "lexer.l"
-case 30:
+case 29:
#line 259 "lexer.l"
-case 31:
+case 30:
#line 260 "lexer.l"
-case 32:
+case 31:
#line 261 "lexer.l"
+case 32:
+#line 262 "lexer.l"
case 33:
YY_RULE_SETUP
-#line 261 "lexer.l"
+#line 262 "lexer.l"
{return(MINGLE);}
YY_BREAK
case 34:
YY_RULE_SETUP
-#line 263 "lexer.l"
+#line 264 "lexer.l"
{return(SELECT);}
YY_BREAK
case 35:
YY_RULE_SETUP
-#line 265 "lexer.l"
+#line 266 "lexer.l"
{return(SLAT); /* AIS: Operand overloading */}
YY_BREAK
case 36:
YY_RULE_SETUP
-#line 266 "lexer.l"
+#line 267 "lexer.l"
{return(BACKSLAT); /* ditto */}
YY_BREAK
case 37:
YY_RULE_SETUP
-#line 268 "lexer.l"
+#line 269 "lexer.l"
{yylval.numval = AND; return(UNARY);}
YY_BREAK
case 38:
YY_RULE_SETUP
-#line 269 "lexer.l"
+#line 270 "lexer.l"
{yylval.numval = OR; return(UNARY);}
YY_BREAK
case 39:
-#line 271 "lexer.l"
-case 40:
#line 272 "lexer.l"
-case 41:
+case 40:
#line 273 "lexer.l"
+case 41:
+#line 274 "lexer.l"
case 42:
YY_RULE_SETUP
-#line 273 "lexer.l"
+#line 274 "lexer.l"
{yylval.numval = XOR; return(UNARY);
/* AIS: CLC-INTERCAL uses \xBE, ISO-8859-1 for yen;
for some reason, \xA5 is what was detected by the compiler
YY_BREAK
case 43:
YY_RULE_SETUP
-#line 277 "lexer.l"
+#line 278 "lexer.l"
{if(clclex) yylval.numval = WHIRL;
else yylval.numval = XOR; return(UNARY);
/* AIS: ? is a unary operator in both C-INTERCAL and
CLC-INTERCAL, but with different meanings. */}
YY_BREAK
case 44:
-#line 282 "lexer.l"
+#line 283 "lexer.l"
case 45:
YY_RULE_SETUP
-#line 282 "lexer.l"
+#line 283 "lexer.l"
{yylval.numval = FIN; return(UNARY); /* AIS: | is CLC */}
YY_BREAK
case 46:
YY_RULE_SETUP
-#line 283 "lexer.l"
+#line 284 "lexer.l"
{if(clclex) return(NOSPOT); /* AIS: a C/CLC ambiguity */
else {yylval.numval = WHIRL; return(UNARY);}}
YY_BREAK
case 47:
/* rule 47 can match eol */
YY_RULE_SETUP
-#line 285 "lexer.l"
+#line 286 "lexer.l"
{yylval.numval = WHIRL + myatoi(yytext) - 1; return(UNARY);}
YY_BREAK
case 48:
YY_RULE_SETUP
-#line 287 "lexer.l"
+#line 288 "lexer.l"
{char temp = sparkearsstack[sparkearslev/32]&1;
STACKSPARKEARS(0); /* AIS: I added all mentions of
STACKSPARKEARS, OPEN\(SPARK\|EARS\),
YY_BREAK
case 49:
YY_RULE_SETUP
-#line 293 "lexer.l"
+#line 294 "lexer.l"
{char temp = sparkearsstack[sparkearslev/32]&1;
STACKSPARKEARS(1);
return(temp?CLOSEEARS:OPENEARS);}
case 50:
/* rule 50 can match eol */
YY_RULE_SETUP
-#line 297 "lexer.l"
+#line 298 "lexer.l"
{SETLINENO; yylval.numval = myatoi(yytext); return(LABEL);}
YY_BREAK
case 51:
YY_RULE_SETUP
-#line 299 "lexer.l"
+#line 300 "lexer.l"
{SETLINENO; CLEARSPARKEARSTACK; return(DO);}
YY_BREAK
case 52:
YY_RULE_SETUP
-#line 300 "lexer.l"
+#line 301 "lexer.l"
{SETLINENO; CLEARSPARKEARSTACK; return(DO);}
YY_BREAK
case 53:
YY_RULE_SETUP
-#line 301 "lexer.l"
+#line 302 "lexer.l"
{SETLINENO; CLEARSPARKEARSTACK; politesse++; return(DO);}
YY_BREAK
case 54:
YY_RULE_SETUP
-#line 302 "lexer.l"
+#line 303 "lexer.l"
{SETLINENO; CLEARSPARKEARSTACK; politesse++; return(DO);}
YY_BREAK
case 55:
/* rule 55 can match eol */
YY_RULE_SETUP
-#line 303 "lexer.l"
+#line 304 "lexer.l"
{SETLINENO; CLEARSPARKEARSTACK; politesse++; return(DO);}
YY_BREAK
case 56:
/* rule 56 can match eol */
YY_RULE_SETUP
-#line 304 "lexer.l"
+#line 305 "lexer.l"
{SETLINENO; CLEARSPARKEARSTACK; politesse++; return(DO);}
YY_BREAK
case 57:
YY_RULE_SETUP
-#line 305 "lexer.l"
+#line 306 "lexer.l"
{SETLINENO; CLEARSPARKEARSTACK; return(MAYBE);}
YY_BREAK
case 58:
/* rule 58 can match eol */
YY_RULE_SETUP
-#line 306 "lexer.l"
+#line 307 "lexer.l"
{SETLINENO; CLEARSPARKEARSTACK; return(MAYBE);}
YY_BREAK
case 59:
/* rule 59 can match eol */
YY_RULE_SETUP
-#line 307 "lexer.l"
+#line 308 "lexer.l"
{SETLINENO; CLEARSPARKEARSTACK; politesse++; return(MAYBE);}
YY_BREAK
case 60:
/* rule 60 can match eol */
YY_RULE_SETUP
-#line 308 "lexer.l"
+#line 309 "lexer.l"
{SETLINENO; CLEARSPARKEARSTACK; politesse++; return(MAYBE);
/* AIS: I added all the MAYBE cases. It seems that MAYBE
has no simple Latin synonym. */}
YY_BREAK
case 61:
YY_RULE_SETUP
-#line 312 "lexer.l"
+#line 313 "lexer.l"
{return(NOT);}
YY_BREAK
case 62:
YY_RULE_SETUP
-#line 313 "lexer.l"
+#line 314 "lexer.l"
{return(NOT);}
YY_BREAK
case 63:
YY_RULE_SETUP
-#line 314 "lexer.l"
+#line 315 "lexer.l"
{return(NOT);}
YY_BREAK
case 64:
YY_RULE_SETUP
-#line 315 "lexer.l"
+#line 316 "lexer.l"
{return(NOT); /* AIS: CLC-INTERCAL again, this time it's
ISO-8859-1 for the logical NOT symbol... */}
YY_BREAK
case 65:
YY_RULE_SETUP
-#line 317 "lexer.l"
+#line 318 "lexer.l"
{return(NOT); /* ... but my computer translates it to \xAC */}
YY_BREAK
case 66:
YY_RULE_SETUP
-#line 319 "lexer.l"
+#line 320 "lexer.l"
{return(ONCE);}
YY_BREAK
case 67:
YY_RULE_SETUP
-#line 320 "lexer.l"
+#line 321 "lexer.l"
{return(ONCE);}
YY_BREAK
case 68:
YY_RULE_SETUP
-#line 321 "lexer.l"
+#line 322 "lexer.l"
{return(AGAIN);}
YY_BREAK
case 69:
YY_RULE_SETUP
-#line 322 "lexer.l"
+#line 323 "lexer.l"
{return(AGAIN);}
YY_BREAK
case 70:
/* rule 70 can match eol */
YY_RULE_SETUP
-#line 324 "lexer.l"
+#line 325 "lexer.l"
{yylval.numval = myatoi(yytext);
if (yylval.numval && yylval.numval < 100)
return(OHOHSEVEN);
YY_BREAK
case 71:
YY_RULE_SETUP
-#line 329 "lexer.l"
+#line 330 "lexer.l"
{return(SUB);}
YY_BREAK
case 72:
/* rule 72 can match eol */
-#line 331 "lexer.l"
+#line 332 "lexer.l"
case 73:
/* rule 73 can match eol */
YY_RULE_SETUP
-#line 331 "lexer.l"
+#line 332 "lexer.l"
{return(BY);}
YY_BREAK
case 74:
YY_RULE_SETUP
-#line 333 "lexer.l"
+#line 334 "lexer.l"
{return(GETS);}
YY_BREAK
case 75:
-#line 335 "lexer.l"
+#line 336 "lexer.l"
case 76:
YY_RULE_SETUP
-#line 335 "lexer.l"
+#line 336 "lexer.l"
{yylval.numval = GETS; return(GERUND);}
YY_BREAK
case 77:
-#line 338 "lexer.l"
+#line 339 "lexer.l"
case 78:
YY_RULE_SETUP
-#line 338 "lexer.l"
+#line 339 "lexer.l"
{return(FORGET);}
YY_BREAK
case 79:
-#line 340 "lexer.l"
+#line 341 "lexer.l"
case 80:
YY_RULE_SETUP
-#line 340 "lexer.l"
+#line 341 "lexer.l"
{yylval.numval = FORGET; return(GERUND);}
YY_BREAK
case 81:
-#line 342 "lexer.l"
+#line 343 "lexer.l"
case 82:
YY_RULE_SETUP
-#line 342 "lexer.l"
+#line 343 "lexer.l"
{return(RESUME);}
YY_BREAK
case 83:
-#line 344 "lexer.l"
+#line 345 "lexer.l"
case 84:
YY_RULE_SETUP
-#line 344 "lexer.l"
+#line 345 "lexer.l"
{yylval.numval = RESUME; return(GERUND);}
YY_BREAK
case 85:
-#line 346 "lexer.l"
+#line 347 "lexer.l"
case 86:
YY_RULE_SETUP
-#line 346 "lexer.l"
+#line 347 "lexer.l"
{return(STASH);}
YY_BREAK
case 87:
-#line 348 "lexer.l"
+#line 349 "lexer.l"
case 88:
YY_RULE_SETUP
-#line 348 "lexer.l"
+#line 349 "lexer.l"
{yylval.numval = STASH; return(GERUND);}
YY_BREAK
case 89:
-#line 350 "lexer.l"
+#line 351 "lexer.l"
case 90:
YY_RULE_SETUP
-#line 350 "lexer.l"
+#line 351 "lexer.l"
{return(RETRIEVE);}
YY_BREAK
case 91:
-#line 352 "lexer.l"
+#line 353 "lexer.l"
case 92:
YY_RULE_SETUP
-#line 352 "lexer.l"
+#line 353 "lexer.l"
{yylval.numval = RETRIEVE; return(GERUND);}
YY_BREAK
case 93:
-#line 354 "lexer.l"
+#line 355 "lexer.l"
case 94:
YY_RULE_SETUP
-#line 354 "lexer.l"
+#line 355 "lexer.l"
{return(IGNORE);}
YY_BREAK
case 95:
-#line 356 "lexer.l"
+#line 357 "lexer.l"
case 96:
YY_RULE_SETUP
-#line 356 "lexer.l"
+#line 357 "lexer.l"
{yylval.numval = IGNORE; return(GERUND);}
YY_BREAK
case 97:
-#line 358 "lexer.l"
+#line 359 "lexer.l"
case 98:
YY_RULE_SETUP
-#line 358 "lexer.l"
+#line 359 "lexer.l"
{return(REMEMBER);}
YY_BREAK
case 99:
-#line 360 "lexer.l"
+#line 361 "lexer.l"
case 100:
YY_RULE_SETUP
-#line 360 "lexer.l"
+#line 361 "lexer.l"
{yylval.numval = REMEMBER; return(GERUND);}
YY_BREAK
case 101:
-#line 362 "lexer.l"
+#line 363 "lexer.l"
case 102:
YY_RULE_SETUP
-#line 362 "lexer.l"
+#line 363 "lexer.l"
{return(ABSTAIN);}
YY_BREAK
case 103:
-#line 364 "lexer.l"
+#line 365 "lexer.l"
case 104:
YY_RULE_SETUP
-#line 364 "lexer.l"
+#line 365 "lexer.l"
{yylval.numval = ABSTAIN; return(GERUND);}
YY_BREAK
case 105:
-#line 366 "lexer.l"
+#line 367 "lexer.l"
case 106:
YY_RULE_SETUP
-#line 366 "lexer.l"
+#line 367 "lexer.l"
{return(REINSTATE);}
YY_BREAK
case 107:
-#line 368 "lexer.l"
+#line 369 "lexer.l"
case 108:
YY_RULE_SETUP
-#line 368 "lexer.l"
+#line 369 "lexer.l"
{yylval.numval = REINSTATE; return(GERUND);}
YY_BREAK
case 109:
/* rule 109 can match eol */
-#line 370 "lexer.l"
+#line 371 "lexer.l"
case 110:
/* rule 110 can match eol */
YY_RULE_SETUP
-#line 370 "lexer.l"
+#line 371 "lexer.l"
{return(READ_OUT);}
YY_BREAK
case 111:
-#line 372 "lexer.l"
+#line 373 "lexer.l"
case 112:
/* rule 112 can match eol */
YY_RULE_SETUP
-#line 372 "lexer.l"
+#line 373 "lexer.l"
{yylval.numval = READ_OUT; return(GERUND);}
YY_BREAK
case 113:
/* rule 113 can match eol */
-#line 374 "lexer.l"
+#line 375 "lexer.l"
case 114:
/* rule 114 can match eol */
YY_RULE_SETUP
-#line 374 "lexer.l"
+#line 375 "lexer.l"
{return(WRITE_IN);}
YY_BREAK
case 115:
-#line 376 "lexer.l"
+#line 377 "lexer.l"
case 116:
/* rule 116 can match eol */
YY_RULE_SETUP
-#line 376 "lexer.l"
+#line 377 "lexer.l"
{yylval.numval = WRITE_IN; return(GERUND);}
YY_BREAK
case 117:
-#line 378 "lexer.l"
-case 118:
#line 379 "lexer.l"
-case 119:
+case 118:
#line 380 "lexer.l"
+case 119:
+#line 381 "lexer.l"
case 120:
YY_RULE_SETUP
-#line 380 "lexer.l"
+#line 381 "lexer.l"
{yylval.numval = UNKNOWN; return(GERUND);
/* AIS: An idea stolen from CLC-INTERCAL.
The Latin means literally 'remind' or 'mention'. */}
YY_BREAK
case 121:
YY_RULE_SETUP
-#line 383 "lexer.l"
+#line 384 "lexer.l"
{/* By AIS. I can't find a Latin translation for this. */
return(PIN);}
YY_BREAK
case 122:
YY_RULE_SETUP
-#line 385 "lexer.l"
+#line 386 "lexer.l"
{/* By AIS */ yylval.numval = PIN; return(GERUND);}
YY_BREAK
case 123:
/* rule 123 can match eol */
-#line 387 "lexer.l"
+#line 388 "lexer.l"
case 124:
/* rule 124 can match eol */
YY_RULE_SETUP
-#line 387 "lexer.l"
+#line 388 "lexer.l"
{/* AIS */ yylval.numval = myatoi(yytext);
return(NEXTFROMLABEL);}
YY_BREAK
case 125:
/* rule 125 can match eol */
-#line 390 "lexer.l"
+#line 391 "lexer.l"
case 126:
/* rule 126 can match eol */
YY_RULE_SETUP
-#line 390 "lexer.l"
+#line 391 "lexer.l"
{/* AIS: 'next' is not a verb, so the Latin is invented */
return(NEXTFROMEXPR);}
YY_BREAK
case 127:
-#line 393 "lexer.l"
+#line 394 "lexer.l"
case 128:
/* rule 128 can match eol */
YY_RULE_SETUP
-#line 393 "lexer.l"
+#line 394 "lexer.l"
{/* AIS */ yylval.numval = NEXTFROMLABEL; return(GERUND);}
YY_BREAK
case 129:
/* rule 129 can match eol */
-#line 395 "lexer.l"
+#line 396 "lexer.l"
case 130:
/* rule 130 can match eol */
YY_RULE_SETUP
-#line 395 "lexer.l"
+#line 396 "lexer.l"
{/* AIS */ yylval.numval = myatoi(yytext);
return(COME_FROM);}
YY_BREAK
case 131:
/* rule 131 can match eol */
-#line 398 "lexer.l"
+#line 399 "lexer.l"
case 132:
/* rule 132 can match eol */
YY_RULE_SETUP
-#line 398 "lexer.l"
+#line 399 "lexer.l"
{/* AIS */ return(COMPUCOME);}
YY_BREAK
case 133:
-#line 400 "lexer.l"
+#line 401 "lexer.l"
case 134:
/* rule 134 can match eol */
YY_RULE_SETUP
-#line 400 "lexer.l"
+#line 401 "lexer.l"
{yylval.numval = COME_FROM; return(GERUND);}
YY_BREAK
case 135:
-#line 402 "lexer.l"
+#line 403 "lexer.l"
case 136:
YY_RULE_SETUP
-#line 402 "lexer.l"
+#line 403 "lexer.l"
{stbeginline = 0; return(NEXT);}
YY_BREAK
case 137:
-#line 404 "lexer.l"
+#line 405 "lexer.l"
case 138:
YY_RULE_SETUP
-#line 404 "lexer.l"
+#line 405 "lexer.l"
{yylval.numval = NEXT; return(GERUND);}
YY_BREAK
case 139:
YY_RULE_SETUP
-#line 405 "lexer.l"
+#line 406 "lexer.l"
{return(FROM); /* AIS: Latin is 'A', which confuses the rest
of the parser */}
YY_BREAK
case 140:
-#line 408 "lexer.l"
-case 141:
#line 409 "lexer.l"
+case 141:
+#line 410 "lexer.l"
case 142:
/* rule 142 can match eol */
YY_RULE_SETUP
-#line 409 "lexer.l"
+#line 410 "lexer.l"
{return(GIVE_UP);}
YY_BREAK
case 143:
/* rule 143 can match eol */
-#line 411 "lexer.l"
+#line 412 "lexer.l"
case 144:
/* rule 144 can match eol */
YY_RULE_SETUP
-#line 411 "lexer.l"
+#line 412 "lexer.l"
{return(TRY_AGAIN);}
YY_BREAK
case 145:
YY_RULE_SETUP
-#line 412 "lexer.l"
+#line 413 "lexer.l"
{return(WHILE); /* AIS. Latin for this is needed. */}
YY_BREAK
case 146:
-#line 414 "lexer.l"
+#line 415 "lexer.l"
case 147:
YY_RULE_SETUP
-#line 414 "lexer.l"
+#line 415 "lexer.l"
{yylval.numval = WHILE; return(GERUND);}
YY_BREAK
case 148:
/* rule 148 can match eol */
YY_RULE_SETUP
-#line 415 "lexer.l"
+#line 416 "lexer.l"
{yylval.numval = TRY_AGAIN; return(GERUND);}
YY_BREAK
case 149:
/* rule 149 can match eol */
-#line 417 "lexer.l"
+#line 418 "lexer.l"
case 150:
/* rule 150 can match eol */
YY_RULE_SETUP
-#line 417 "lexer.l"
+#line 418 "lexer.l"
{return(GO_BACK);}
YY_BREAK
case 151:
/* rule 151 can match eol */
-#line 419 "lexer.l"
+#line 420 "lexer.l"
case 152:
/* rule 152 can match eol */
YY_RULE_SETUP
-#line 419 "lexer.l"
+#line 420 "lexer.l"
{yylval.numval = GO_BACK; return(GERUND);}
YY_BREAK
case 153:
/* rule 153 can match eol */
-#line 421 "lexer.l"
+#line 422 "lexer.l"
case 154:
/* rule 154 can match eol */
YY_RULE_SETUP
-#line 421 "lexer.l"
+#line 422 "lexer.l"
{return(GO_AHEAD);}
YY_BREAK
case 155:
/* rule 155 can match eol */
YY_RULE_SETUP
-#line 422 "lexer.l"
+#line 423 "lexer.l"
{yylval.numval = GO_AHEAD; return(GERUND);
/* AIS: I'm having a few deponent troubles with the Latin, so
there are no Latin gerunds around here. Besides, the Latin
YY_BREAK
case 156:
/* rule 156 can match eol */
-#line 428 "lexer.l"
+#line 429 "lexer.l"
case 157:
/* rule 157 can match eol */
YY_RULE_SETUP
-#line 428 "lexer.l"
+#line 429 "lexer.l"
{yylval.numval = myatoi(yytext); return(CREATE);}
YY_BREAK
case 158:
-#line 430 "lexer.l"
+#line 431 "lexer.l"
case 159:
YY_RULE_SETUP
-#line 430 "lexer.l"
+#line 431 "lexer.l"
{return(COMPUCREATE);}
YY_BREAK
case 160:
-#line 432 "lexer.l"
-case 161:
#line 433 "lexer.l"
+case 161:
+#line 434 "lexer.l"
case 162:
YY_RULE_SETUP
-#line 433 "lexer.l"
+#line 434 "lexer.l"
{yylval.numval = CREATE; return(GERUND);}
YY_BREAK
case 163:
YY_RULE_SETUP
-#line 435 "lexer.l"
+#line 436 "lexer.l"
{return(INTERSECTION);}
YY_BREAK
case 164:
/* rule 164 can match eol */
YY_RULE_SETUP
-#line 437 "lexer.l"
+#line 438 "lexer.l"
;
YY_BREAK
case 165:
YY_RULE_SETUP
-#line 438 "lexer.l"
+#line 439 "lexer.l"
{/* AIS */ yylval.numval = *yytext; return(UNKNOWNID);}
YY_BREAK
case 166:
YY_RULE_SETUP
-#line 439 "lexer.l"
+#line 440 "lexer.l"
{/* AIS */ yylval.numval = yytext[0]*256 + yytext[3];
if(yytext[0] > yytext[3])
yylval.numval = yytext[0] + yytext[3]*256;
YY_BREAK
case 167:
YY_RULE_SETUP
-#line 443 "lexer.l"
+#line 444 "lexer.l"
{yylval.numval = yytext[0]; /* AIS: The line below for debug */
if(yydebug) fprintf(stdout, "yylex: bad char %#x\n",(unsigned char)yytext[0]);
return(BADCHAR);}
YY_BREAK
case 168:
YY_RULE_SETUP
-#line 448 "lexer.l"
+#line 449 "lexer.l"
ECHO;
YY_BREAK
-#line 2058 "lexer.c"
+#line 2082 "lexer.c"
case YY_STATE_EOF(INITIAL):
yyterminate();
#define YYTABLES_NAME "yytables"
-#line 448 "lexer.l"
+#line 449 "lexer.l"
return(tok);
}
-static int myatoi(char *text) /* AIS */
+static int myatoi(const char *text) /* AIS */
{
#define MAXTEXT 100
static char buf[MAXTEXT];
return atoi(thinbuf);
}
-void yyerror(char *errtype)
+void yyerror(const char *errtype)
{
#ifdef MAIN
(void) printf("lextest: lexer error: %s.\n", errtype);