#line 22 "lexer.l"
#include "config.h"
-#include <glib.h>
+#include <stdlib.h>
#include <string.h>
#include <ctype.h>
+#include <glib.h>
#include "treefuncs.h"
#include "parse.h"
#include "util.h"
static int parenth_depth = 0;
-static int before_comment = INITIAL;
+static int before_comment
+/* New flex is on drugs */
+#if defined(FLEX_SCANNER) && ! defined(INITIAL)
+ = 0;
+#else
+ = INITIAL;
+#endif
static gboolean class_after_c = FALSE;
static int code_type = CCODE;
static int before_string;
#define GTK_DOC_LINE 10
-#line 1016 "lexer.c"
+#line 1023 "lexer.c"
/* Macros after this point can all be overridden by user definitions in
* section 1.
register char *yy_cp = NULL, *yy_bp = NULL;
register int yy_act;
-#line 109 "lexer.l"
+#line 116 "lexer.l"
-#line 1181 "lexer.c"
+#line 1188 "lexer.c"
if ( yy_init )
{
{ /* beginning of action switch */
case 1:
YY_RULE_SETUP
-#line 119 "lexer.l"
+#line 126 "lexer.l"
{ line_no++; REJECT; }
YY_BREAK
case 2:
yy_c_buf_p = yy_cp -= 1;
YY_DO_BEFORE_ACTION; /* set up yytext again */
YY_RULE_SETUP
-#line 121 "lexer.l"
+#line 128 "lexer.l"
{
/* Thy evil easter egg */
#define QQ(x) long x
yy_c_buf_p = yy_cp -= 1;
YY_DO_BEFORE_ACTION; /* set up yytext again */
YY_RULE_SETUP
-#line 143 "lexer.l"
+#line 150 "lexer.l"
{ ; /*comment, ignore*/ }
YY_BREAK
case 4:
YY_RULE_SETUP
-#line 145 "lexer.l"
+#line 152 "lexer.l"
{
char *p;
char *number;
YY_BREAK
case 5:
YY_RULE_SETUP
-#line 182 "lexer.l"
+#line 189 "lexer.l"
{
if(look_for_includes==1) {
char *p;
yy_c_buf_p = yy_cp -= 1;
YY_DO_BEFORE_ACTION; /* set up yytext again */
YY_RULE_SETUP
-#line 199 "lexer.l"
+#line 206 "lexer.l"
{
/* eat out gtk doc stuff */
BEGIN(GTK_DOC_BEFORE_NAME);
yy_c_buf_p = yy_cp -= 1;
YY_DO_BEFORE_ACTION; /* set up yytext again */
YY_RULE_SETUP
-#line 204 "lexer.l"
+#line 211 "lexer.l"
{
/* empty doc lines */
;
yy_c_buf_p = yy_cp -= 1;
YY_DO_BEFORE_ACTION; /* set up yytext again */
YY_RULE_SETUP
-#line 208 "lexer.l"
+#line 215 "lexer.l"
{
char *p;
BEGIN(GTK_DOC);
YY_BREAK
case 9:
YY_RULE_SETUP
-#line 218 "lexer.l"
+#line 225 "lexer.l"
{
BEGIN(CLASS_CODE_I);
}
YY_BREAK
case 10:
YY_RULE_SETUP
-#line 221 "lexer.l"
+#line 228 "lexer.l"
{
BEGIN(COMMENT);
before_comment = CLASS_CODE_I;
yy_c_buf_p = yy_cp -= 1;
YY_DO_BEFORE_ACTION; /* set up yytext again */
YY_RULE_SETUP
-#line 225 "lexer.l"
+#line 232 "lexer.l"
{
/* empty doc lines */
add_to_cbuf(" *\n");
YY_BREAK
case 12:
YY_RULE_SETUP
-#line 229 "lexer.l"
+#line 236 "lexer.l"
{
BEGIN(CLASS_CODE_I);
add_gtk_doc_func();
YY_BREAK
case 13:
YY_RULE_SETUP
-#line 233 "lexer.l"
+#line 240 "lexer.l"
{
fflush(stdout);
add_to_cbuf(" * ");
YY_BREAK
case 14:
YY_RULE_SETUP
-#line 238 "lexer.l"
+#line 245 "lexer.l"
{
BEGIN(CLASS_CODE_I);
}
YY_BREAK
case 15:
YY_RULE_SETUP
-#line 241 "lexer.l"
+#line 248 "lexer.l"
{
BEGIN(COMMENT);
before_comment = CLASS_CODE_I;
YY_BREAK
case 16:
YY_RULE_SETUP
-#line 245 "lexer.l"
+#line 252 "lexer.l"
{
BEGIN(CLASS_CODE_I);
add_to_cbuf("\n");
yy_c_buf_p = yy_cp -= 1;
YY_DO_BEFORE_ACTION; /* set up yytext again */
YY_RULE_SETUP
-#line 250 "lexer.l"
+#line 257 "lexer.l"
{
BEGIN(GTK_DOC);
add_to_cbuf(yytext);
YY_BREAK
case 18:
YY_RULE_SETUP
-#line 255 "lexer.l"
+#line 262 "lexer.l"
{
fflush(stdout);
add_to_cbuf(yytext);
yy_c_buf_p = yy_cp -= 1;
YY_DO_BEFORE_ACTION; /* set up yytext again */
YY_RULE_SETUP
-#line 260 "lexer.l"
+#line 267 "lexer.l"
{ add_to_cbuf(yytext); /*comment, ignore*/ }
YY_BREAK
case 20:
yy_c_buf_p = yy_cp -= 1;
YY_DO_BEFORE_ACTION; /* set up yytext again */
YY_RULE_SETUP
-#line 261 "lexer.l"
+#line 268 "lexer.l"
{ ; /*comment, ignore*/ }
YY_BREAK
case 21:
yy_c_buf_p = yy_cp -= 1;
YY_DO_BEFORE_ACTION; /* set up yytext again */
YY_RULE_SETUP
-#line 262 "lexer.l"
+#line 269 "lexer.l"
{ ; /*comment, ignore*/ }
YY_BREAK
case 22:
yy_c_buf_p = yy_cp -= 1;
YY_DO_BEFORE_ACTION; /* set up yytext again */
YY_RULE_SETUP
-#line 263 "lexer.l"
+#line 270 "lexer.l"
{ ; /*comment, ignore*/ }
YY_BREAK
case 23:
YY_RULE_SETUP
-#line 264 "lexer.l"
+#line 271 "lexer.l"
{BEGIN(COMMENT); before_comment = INITIAL; }
YY_BREAK
case 24:
YY_RULE_SETUP
-#line 265 "lexer.l"
+#line 272 "lexer.l"
{
add_to_cbuf(yytext);
BEGIN(COMMENT);
YY_BREAK
case 25:
YY_RULE_SETUP
-#line 270 "lexer.l"
+#line 277 "lexer.l"
{BEGIN(COMMENT); before_comment = CLASS_CODE; }
YY_BREAK
case 26:
YY_RULE_SETUP
-#line 271 "lexer.l"
+#line 278 "lexer.l"
{BEGIN(COMMENT); before_comment = CLASS_CODE_I; }
YY_BREAK
case 27:
YY_RULE_SETUP
-#line 272 "lexer.l"
+#line 279 "lexer.l"
{BEGIN(COMMENT); before_comment = PROPERTY_CODE_I; }
YY_BREAK
case 28:
YY_RULE_SETUP
-#line 273 "lexer.l"
+#line 280 "lexer.l"
{
if(before_comment == C_CODE) add_to_cbuf(yytext);
BEGIN(before_comment);
YY_BREAK
case 29:
YY_RULE_SETUP
-#line 277 "lexer.l"
+#line 284 "lexer.l"
{
/* comment, ignore */
if(before_comment == C_CODE) add_to_cbuf(yytext);
YY_BREAK
case 30:
YY_RULE_SETUP
-#line 281 "lexer.l"
+#line 288 "lexer.l"
{
/* comment, ignore */
if(before_comment == C_CODE) add_to_cbuf(yytext);
YY_BREAK
case 31:
YY_RULE_SETUP
-#line 286 "lexer.l"
+#line 293 "lexer.l"
{
BEGIN(C_CODE);
parenth_depth = 1;
YY_BREAK
case 32:
YY_RULE_SETUP
-#line 294 "lexer.l"
+#line 301 "lexer.l"
{
BEGIN(C_CODE);
parenth_depth = 1;
YY_BREAK
case 33:
YY_RULE_SETUP
-#line 303 "lexer.l"
+#line 310 "lexer.l"
{
BEGIN(C_CODE);
parenth_depth = 1;
YY_BREAK
case 34:
YY_RULE_SETUP
-#line 311 "lexer.l"
+#line 318 "lexer.l"
{
BEGIN(C_CODE);
parenth_depth = 1;
YY_BREAK
case 35:
YY_RULE_SETUP
-#line 319 "lexer.l"
+#line 326 "lexer.l"
{
BEGIN(C_CODE);
parenth_depth = 1;
YY_BREAK
case 36:
YY_RULE_SETUP
-#line 327 "lexer.l"
+#line 334 "lexer.l"
{
BEGIN(C_CODE);
parenth_depth = 1;
YY_BREAK
case 37:
YY_RULE_SETUP
-#line 337 "lexer.l"
+#line 344 "lexer.l"
{
BEGIN(INITIAL);
yylval.cbuf = cbuf;
YY_BREAK
case 38:
YY_RULE_SETUP
-#line 346 "lexer.l"
+#line 353 "lexer.l"
{ add_to_cbuf(yytext); }
YY_BREAK
case 39:
YY_RULE_SETUP
-#line 347 "lexer.l"
+#line 354 "lexer.l"
{ add_to_cbuf(yytext); }
YY_BREAK
case 40:
YY_RULE_SETUP
-#line 348 "lexer.l"
+#line 355 "lexer.l"
{ add_to_cbuf(yytext); }
YY_BREAK
case 41:
YY_RULE_SETUP
-#line 349 "lexer.l"
+#line 356 "lexer.l"
{ add_to_cbuf(yytext); }
YY_BREAK
case 42:
YY_RULE_SETUP
-#line 350 "lexer.l"
+#line 357 "lexer.l"
{ add_to_cbuf(yytext); }
YY_BREAK
case 43:
YY_RULE_SETUP
-#line 351 "lexer.l"
+#line 358 "lexer.l"
{ add_to_cbuf(yytext); }
YY_BREAK
case 44:
YY_RULE_SETUP
-#line 353 "lexer.l"
+#line 360 "lexer.l"
{ add_to_cbuf(yytext); }
YY_BREAK
case 45:
YY_RULE_SETUP
-#line 356 "lexer.l"
+#line 363 "lexer.l"
{
BEGIN(CODE_STRING);
before_string = C_CODE;
YY_BREAK
case 46:
YY_RULE_SETUP
-#line 361 "lexer.l"
+#line 368 "lexer.l"
{
BEGIN(CODE_STRING);
before_string = PROPERTY_CODE_I;
YY_BREAK
case 47:
YY_RULE_SETUP
-#line 366 "lexer.l"
+#line 373 "lexer.l"
{ add_to_cbuf(yytext); }
YY_BREAK
case 48:
YY_RULE_SETUP
-#line 367 "lexer.l"
+#line 374 "lexer.l"
{
BEGIN(before_string);
add_to_cbuf(yytext);
YY_BREAK
case 49:
YY_RULE_SETUP
-#line 377 "lexer.l"
+#line 384 "lexer.l"
{ add_to_cbuf(yytext); }
YY_BREAK
case 50:
YY_RULE_SETUP
-#line 378 "lexer.l"
+#line 385 "lexer.l"
{ add_to_cbuf(yytext); }
YY_BREAK
case 51:
YY_RULE_SETUP
-#line 380 "lexer.l"
+#line 387 "lexer.l"
{
parenth_depth++;
add_to_cbuf(yytext);
YY_BREAK
case 52:
YY_RULE_SETUP
-#line 384 "lexer.l"
+#line 391 "lexer.l"
{
parenth_depth--;
if(parenth_depth<0) {
YY_BREAK
case 53:
YY_RULE_SETUP
-#line 397 "lexer.l"
+#line 404 "lexer.l"
{ add_to_cbuf(yytext); }
YY_BREAK
case 54:
YY_RULE_SETUP
-#line 398 "lexer.l"
+#line 405 "lexer.l"
{ add_to_cbuf(yytext); }
YY_BREAK
case 55:
YY_RULE_SETUP
-#line 400 "lexer.l"
+#line 407 "lexer.l"
{
static int found_classes = 0;
look_for_includes = 2;
YY_BREAK
case 56:
YY_RULE_SETUP
-#line 413 "lexer.l"
+#line 420 "lexer.l"
{ return ERROR; }
YY_BREAK
case 57:
YY_RULE_SETUP
-#line 414 "lexer.l"
+#line 421 "lexer.l"
{ return ENUM; }
YY_BREAK
case 58:
YY_RULE_SETUP
-#line 415 "lexer.l"
+#line 422 "lexer.l"
{ return FLAGS; }
YY_BREAK
case 59:
yy_c_buf_p = yy_cp -= 1;
YY_DO_BEFORE_ACTION; /* set up yytext again */
YY_RULE_SETUP
-#line 417 "lexer.l"
+#line 424 "lexer.l"
{
int maj = 0, min = 0, pl = 0;
int rmaj = 0, rmin = 0, rpl = 0;
YY_BREAK
case 60:
YY_RULE_SETUP
-#line 458 "lexer.l"
+#line 465 "lexer.l"
{
if(for_cpp) {
error_printf(GOB_WARN, line_no,
YY_BREAK
case 61:
YY_RULE_SETUP
-#line 468 "lexer.l"
+#line 475 "lexer.l"
{return FROM;}
YY_BREAK
case 62:
YY_RULE_SETUP
-#line 470 "lexer.l"
+#line 477 "lexer.l"
{return VOID;}
YY_BREAK
case 63:
YY_RULE_SETUP
-#line 471 "lexer.l"
+#line 478 "lexer.l"
{return STRUCT;}
YY_BREAK
case 64:
YY_RULE_SETUP
-#line 472 "lexer.l"
+#line 479 "lexer.l"
{return UNION;}
YY_BREAK
case 65:
YY_RULE_SETUP
-#line 473 "lexer.l"
+#line 480 "lexer.l"
{return ENUM;}
YY_BREAK
case 66:
YY_RULE_SETUP
-#line 474 "lexer.l"
+#line 481 "lexer.l"
{return SIGNED;}
YY_BREAK
case 67:
YY_RULE_SETUP
-#line 475 "lexer.l"
+#line 482 "lexer.l"
{return UNSIGNED;}
YY_BREAK
case 68:
YY_RULE_SETUP
-#line 476 "lexer.l"
+#line 483 "lexer.l"
{return LONG;}
YY_BREAK
case 69:
YY_RULE_SETUP
-#line 477 "lexer.l"
+#line 484 "lexer.l"
{return SHORT;}
YY_BREAK
case 70:
YY_RULE_SETUP
-#line 478 "lexer.l"
+#line 485 "lexer.l"
{return INT;}
YY_BREAK
case 71:
YY_RULE_SETUP
-#line 479 "lexer.l"
+#line 486 "lexer.l"
{return FLOAT;}
YY_BREAK
case 72:
YY_RULE_SETUP
-#line 480 "lexer.l"
+#line 487 "lexer.l"
{return DOUBLE;}
YY_BREAK
case 73:
YY_RULE_SETUP
-#line 481 "lexer.l"
+#line 488 "lexer.l"
{return CHAR;}
YY_BREAK
case 74:
YY_RULE_SETUP
-#line 482 "lexer.l"
+#line 489 "lexer.l"
{return CONST;}
YY_BREAK
case 75:
YY_RULE_SETUP
-#line 484 "lexer.l"
+#line 491 "lexer.l"
{return THREEDOTS;}
YY_BREAK
case 76:
YY_RULE_SETUP
-#line 486 "lexer.l"
+#line 493 "lexer.l"
{yylval.line = line_no; return PUBLIC;}
YY_BREAK
case 77:
YY_RULE_SETUP
-#line 487 "lexer.l"
+#line 494 "lexer.l"
{yylval.line = line_no; return PRIVATE;}
YY_BREAK
case 78:
YY_RULE_SETUP
-#line 488 "lexer.l"
+#line 495 "lexer.l"
{yylval.line = line_no; return PROTECTED;}
YY_BREAK
case 79:
YY_RULE_SETUP
-#line 489 "lexer.l"
+#line 496 "lexer.l"
{yylval.line = line_no; return CLASSWIDE;}
YY_BREAK
case 80:
YY_RULE_SETUP
-#line 490 "lexer.l"
+#line 497 "lexer.l"
{yylval.line = line_no; return ARGUMENT;}
YY_BREAK
case 81:
YY_RULE_SETUP
-#line 491 "lexer.l"
+#line 498 "lexer.l"
{yylval.line = line_no; return VIRTUAL;}
YY_BREAK
case 82:
YY_RULE_SETUP
-#line 492 "lexer.l"
+#line 499 "lexer.l"
{yylval.line = line_no; return SIGNAL;}
YY_BREAK
case 83:
YY_RULE_SETUP
-#line 493 "lexer.l"
+#line 500 "lexer.l"
{yylval.line = line_no; return OVERRIDE;}
YY_BREAK
case 84:
YY_RULE_SETUP
-#line 494 "lexer.l"
+#line 501 "lexer.l"
{
yylval.line = line_no;
BEGIN(PROPERTY_CODE);
YY_BREAK
case 85:
YY_RULE_SETUP
-#line 499 "lexer.l"
+#line 506 "lexer.l"
{ yylval.line = line_no; return NICK; }
YY_BREAK
case 86:
YY_RULE_SETUP
-#line 500 "lexer.l"
+#line 507 "lexer.l"
{ yylval.line = line_no; return BLURB; }
YY_BREAK
case 87:
YY_RULE_SETUP
-#line 501 "lexer.l"
+#line 508 "lexer.l"
{ yylval.line = line_no; return MAXIMUM; }
YY_BREAK
case 88:
YY_RULE_SETUP
-#line 502 "lexer.l"
+#line 509 "lexer.l"
{ yylval.line = line_no; return MINIMUM; }
YY_BREAK
case 89:
YY_RULE_SETUP
-#line 503 "lexer.l"
+#line 510 "lexer.l"
{ yylval.line = line_no; return DEFAULT_VALUE; }
YY_BREAK
case 90:
YY_RULE_SETUP
-#line 504 "lexer.l"
+#line 511 "lexer.l"
{ yylval.line = line_no; return FLAGS; }
YY_BREAK
case 91:
YY_RULE_SETUP
-#line 505 "lexer.l"
+#line 512 "lexer.l"
{ yylval.line = line_no; return TYPE; }
YY_BREAK
case 92:
YY_RULE_SETUP
-#line 506 "lexer.l"
+#line 513 "lexer.l"
{ yylval.line = line_no; return FLAGS_TYPE; }
YY_BREAK
case 93:
YY_RULE_SETUP
-#line 507 "lexer.l"
+#line 514 "lexer.l"
{ yylval.line = line_no; return ENUM_TYPE; }
YY_BREAK
case 94:
YY_RULE_SETUP
-#line 508 "lexer.l"
+#line 515 "lexer.l"
{ yylval.line = line_no; return PARAM_TYPE; }
YY_BREAK
case 95:
YY_RULE_SETUP
-#line 509 "lexer.l"
+#line 516 "lexer.l"
{ yylval.line = line_no; return BOXED_TYPE; }
YY_BREAK
case 96:
YY_RULE_SETUP
-#line 510 "lexer.l"
+#line 517 "lexer.l"
{ yylval.line = line_no; return OBJECT_TYPE; }
YY_BREAK
case 97:
YY_RULE_SETUP
-#line 511 "lexer.l"
+#line 518 "lexer.l"
{
yylval.line = line_no;
property_paren_depth = 1;
YY_BREAK
case 98:
YY_RULE_SETUP
-#line 517 "lexer.l"
+#line 524 "lexer.l"
{
yylval.line = line_no;
property_paren_depth++;
YY_BREAK
case 99:
YY_RULE_SETUP
-#line 522 "lexer.l"
+#line 529 "lexer.l"
{
yylval.line = line_no;
property_paren_depth--;
YY_BREAK
case 100:
YY_RULE_SETUP
-#line 531 "lexer.l"
+#line 538 "lexer.l"
{
yylval.id = g_strdup(yytext);
return NUMBER;
YY_BREAK
case 101:
YY_RULE_SETUP
-#line 535 "lexer.l"
+#line 542 "lexer.l"
{
/* This is cpp kind of token thingie */
if (for_cpp) {
YY_BREAK
case 102:
YY_RULE_SETUP
-#line 544 "lexer.l"
+#line 551 "lexer.l"
{
/* this one is for a classname with a namespace */
yylval.id = g_strdup(yytext);
YY_BREAK
case 103:
YY_RULE_SETUP
-#line 549 "lexer.l"
+#line 556 "lexer.l"
{
/* this is for a classname with an empty namespace */
yylval.id = g_strdup(yytext);
YY_BREAK
case 104:
YY_RULE_SETUP
-#line 554 "lexer.l"
+#line 561 "lexer.l"
{
yylval.id = g_strdup(yytext);
return TOKEN;
YY_BREAK
case 105:
YY_RULE_SETUP
-#line 558 "lexer.l"
+#line 565 "lexer.l"
{
yylval.id = g_strdup(yytext);
return SINGLE_CHAR;
YY_BREAK
case 106:
YY_RULE_SETUP
-#line 563 "lexer.l"
+#line 570 "lexer.l"
{
yylval.id = g_strdup(yytext);
return ARRAY_DIM;
YY_BREAK
case 107:
YY_RULE_SETUP
-#line 568 "lexer.l"
+#line 575 "lexer.l"
{
BEGIN(CLASS_CODE_I);
return '{';
YY_BREAK
case 108:
YY_RULE_SETUP
-#line 572 "lexer.l"
+#line 579 "lexer.l"
{
BEGIN(C_CODE);
parenth_depth=1;
YY_BREAK
case 109:
YY_RULE_SETUP
-#line 581 "lexer.l"
+#line 588 "lexer.l"
{
BEGIN(INITIAL);
return '}';
YY_BREAK
case 110:
YY_RULE_SETUP
-#line 586 "lexer.l"
+#line 593 "lexer.l"
; /*ignore*/
YY_BREAK
case 111:
YY_RULE_SETUP
-#line 588 "lexer.l"
+#line 595 "lexer.l"
{
yylval.line = line_no;
return yytext[0];
YY_BREAK
case 112:
YY_RULE_SETUP
-#line 593 "lexer.l"
+#line 600 "lexer.l"
; /*ignore*/
YY_BREAK
case 113:
YY_RULE_SETUP
-#line 595 "lexer.l"
+#line 602 "lexer.l"
ECHO;
YY_BREAK
-#line 2202 "lexer.c"
+#line 2209 "lexer.c"
case YY_STATE_EOF(INITIAL):
case YY_STATE_EOF(COMMENT):
case YY_STATE_EOF(C_CODE):
#endif /* ifndef YY_NO_UNPUT */
+#ifndef YY_NO_INPUT
#ifdef __cplusplus
static int yyinput()
#else
return c;
}
-
+#endif /* YY_NO_INPUT */
#ifdef YY_USE_PROTOS
void yyrestart( FILE *input_file )
return 0;
}
#endif
-#line 595 "lexer.l"
-
-
-/* Ugly warning avoiding */
-#ifdef FLEX_SCANNER
-static void warning_avoider(void) G_GNUC_UNUSED;
-static void warning_avoider(void) {
- yy_flex_realloc(NULL, 0);
- yyunput(0, NULL);
- warning_avoider();
-}
-#endif
+#line 602 "lexer.l"