#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"
#define GTK_DOC_LINE 10
-#line 1022 "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 115 "lexer.l"
+#line 116 "lexer.l"
-#line 1187 "lexer.c"
+#line 1188 "lexer.c"
if ( yy_init )
{
{ /* beginning of action switch */
case 1:
YY_RULE_SETUP
-#line 125 "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 127 "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 149 "lexer.l"
+#line 150 "lexer.l"
{ ; /*comment, ignore*/ }
YY_BREAK
case 4:
YY_RULE_SETUP
-#line 151 "lexer.l"
+#line 152 "lexer.l"
{
char *p;
char *number;
YY_BREAK
case 5:
YY_RULE_SETUP
-#line 188 "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 205 "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 210 "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 214 "lexer.l"
+#line 215 "lexer.l"
{
char *p;
BEGIN(GTK_DOC);
YY_BREAK
case 9:
YY_RULE_SETUP
-#line 224 "lexer.l"
+#line 225 "lexer.l"
{
BEGIN(CLASS_CODE_I);
}
YY_BREAK
case 10:
YY_RULE_SETUP
-#line 227 "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 231 "lexer.l"
+#line 232 "lexer.l"
{
/* empty doc lines */
add_to_cbuf(" *\n");
YY_BREAK
case 12:
YY_RULE_SETUP
-#line 235 "lexer.l"
+#line 236 "lexer.l"
{
BEGIN(CLASS_CODE_I);
add_gtk_doc_func();
YY_BREAK
case 13:
YY_RULE_SETUP
-#line 239 "lexer.l"
+#line 240 "lexer.l"
{
fflush(stdout);
add_to_cbuf(" * ");
YY_BREAK
case 14:
YY_RULE_SETUP
-#line 244 "lexer.l"
+#line 245 "lexer.l"
{
BEGIN(CLASS_CODE_I);
}
YY_BREAK
case 15:
YY_RULE_SETUP
-#line 247 "lexer.l"
+#line 248 "lexer.l"
{
BEGIN(COMMENT);
before_comment = CLASS_CODE_I;
YY_BREAK
case 16:
YY_RULE_SETUP
-#line 251 "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 256 "lexer.l"
+#line 257 "lexer.l"
{
BEGIN(GTK_DOC);
add_to_cbuf(yytext);
YY_BREAK
case 18:
YY_RULE_SETUP
-#line 261 "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 266 "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 267 "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 268 "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 269 "lexer.l"
+#line 270 "lexer.l"
{ ; /*comment, ignore*/ }
YY_BREAK
case 23:
YY_RULE_SETUP
-#line 270 "lexer.l"
+#line 271 "lexer.l"
{BEGIN(COMMENT); before_comment = INITIAL; }
YY_BREAK
case 24:
YY_RULE_SETUP
-#line 271 "lexer.l"
+#line 272 "lexer.l"
{
add_to_cbuf(yytext);
BEGIN(COMMENT);
YY_BREAK
case 25:
YY_RULE_SETUP
-#line 276 "lexer.l"
+#line 277 "lexer.l"
{BEGIN(COMMENT); before_comment = CLASS_CODE; }
YY_BREAK
case 26:
YY_RULE_SETUP
-#line 277 "lexer.l"
+#line 278 "lexer.l"
{BEGIN(COMMENT); before_comment = CLASS_CODE_I; }
YY_BREAK
case 27:
YY_RULE_SETUP
-#line 278 "lexer.l"
+#line 279 "lexer.l"
{BEGIN(COMMENT); before_comment = PROPERTY_CODE_I; }
YY_BREAK
case 28:
YY_RULE_SETUP
-#line 279 "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 283 "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 287 "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 292 "lexer.l"
+#line 293 "lexer.l"
{
BEGIN(C_CODE);
parenth_depth = 1;
YY_BREAK
case 32:
YY_RULE_SETUP
-#line 300 "lexer.l"
+#line 301 "lexer.l"
{
BEGIN(C_CODE);
parenth_depth = 1;
YY_BREAK
case 33:
YY_RULE_SETUP
-#line 309 "lexer.l"
+#line 310 "lexer.l"
{
BEGIN(C_CODE);
parenth_depth = 1;
YY_BREAK
case 34:
YY_RULE_SETUP
-#line 317 "lexer.l"
+#line 318 "lexer.l"
{
BEGIN(C_CODE);
parenth_depth = 1;
YY_BREAK
case 35:
YY_RULE_SETUP
-#line 325 "lexer.l"
+#line 326 "lexer.l"
{
BEGIN(C_CODE);
parenth_depth = 1;
YY_BREAK
case 36:
YY_RULE_SETUP
-#line 333 "lexer.l"
+#line 334 "lexer.l"
{
BEGIN(C_CODE);
parenth_depth = 1;
YY_BREAK
case 37:
YY_RULE_SETUP
-#line 343 "lexer.l"
+#line 344 "lexer.l"
{
BEGIN(INITIAL);
yylval.cbuf = cbuf;
YY_BREAK
case 38:
YY_RULE_SETUP
-#line 352 "lexer.l"
+#line 353 "lexer.l"
{ add_to_cbuf(yytext); }
YY_BREAK
case 39:
YY_RULE_SETUP
-#line 353 "lexer.l"
+#line 354 "lexer.l"
{ add_to_cbuf(yytext); }
YY_BREAK
case 40:
YY_RULE_SETUP
-#line 354 "lexer.l"
+#line 355 "lexer.l"
{ add_to_cbuf(yytext); }
YY_BREAK
case 41:
YY_RULE_SETUP
-#line 355 "lexer.l"
+#line 356 "lexer.l"
{ add_to_cbuf(yytext); }
YY_BREAK
case 42:
YY_RULE_SETUP
-#line 356 "lexer.l"
+#line 357 "lexer.l"
{ add_to_cbuf(yytext); }
YY_BREAK
case 43:
YY_RULE_SETUP
-#line 357 "lexer.l"
+#line 358 "lexer.l"
{ add_to_cbuf(yytext); }
YY_BREAK
case 44:
YY_RULE_SETUP
-#line 359 "lexer.l"
+#line 360 "lexer.l"
{ add_to_cbuf(yytext); }
YY_BREAK
case 45:
YY_RULE_SETUP
-#line 362 "lexer.l"
+#line 363 "lexer.l"
{
BEGIN(CODE_STRING);
before_string = C_CODE;
YY_BREAK
case 46:
YY_RULE_SETUP
-#line 367 "lexer.l"
+#line 368 "lexer.l"
{
BEGIN(CODE_STRING);
before_string = PROPERTY_CODE_I;
YY_BREAK
case 47:
YY_RULE_SETUP
-#line 372 "lexer.l"
+#line 373 "lexer.l"
{ add_to_cbuf(yytext); }
YY_BREAK
case 48:
YY_RULE_SETUP
-#line 373 "lexer.l"
+#line 374 "lexer.l"
{
BEGIN(before_string);
add_to_cbuf(yytext);
YY_BREAK
case 49:
YY_RULE_SETUP
-#line 383 "lexer.l"
+#line 384 "lexer.l"
{ add_to_cbuf(yytext); }
YY_BREAK
case 50:
YY_RULE_SETUP
-#line 384 "lexer.l"
+#line 385 "lexer.l"
{ add_to_cbuf(yytext); }
YY_BREAK
case 51:
YY_RULE_SETUP
-#line 386 "lexer.l"
+#line 387 "lexer.l"
{
parenth_depth++;
add_to_cbuf(yytext);
YY_BREAK
case 52:
YY_RULE_SETUP
-#line 390 "lexer.l"
+#line 391 "lexer.l"
{
parenth_depth--;
if(parenth_depth<0) {
YY_BREAK
case 53:
YY_RULE_SETUP
-#line 403 "lexer.l"
+#line 404 "lexer.l"
{ add_to_cbuf(yytext); }
YY_BREAK
case 54:
YY_RULE_SETUP
-#line 404 "lexer.l"
+#line 405 "lexer.l"
{ add_to_cbuf(yytext); }
YY_BREAK
case 55:
YY_RULE_SETUP
-#line 406 "lexer.l"
+#line 407 "lexer.l"
{
static int found_classes = 0;
look_for_includes = 2;
YY_BREAK
case 56:
YY_RULE_SETUP
-#line 419 "lexer.l"
+#line 420 "lexer.l"
{ return ERROR; }
YY_BREAK
case 57:
YY_RULE_SETUP
-#line 420 "lexer.l"
+#line 421 "lexer.l"
{ return ENUM; }
YY_BREAK
case 58:
YY_RULE_SETUP
-#line 421 "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 423 "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 464 "lexer.l"
+#line 465 "lexer.l"
{
if(for_cpp) {
error_printf(GOB_WARN, line_no,
YY_BREAK
case 61:
YY_RULE_SETUP
-#line 474 "lexer.l"
+#line 475 "lexer.l"
{return FROM;}
YY_BREAK
case 62:
YY_RULE_SETUP
-#line 476 "lexer.l"
+#line 477 "lexer.l"
{return VOID;}
YY_BREAK
case 63:
YY_RULE_SETUP
-#line 477 "lexer.l"
+#line 478 "lexer.l"
{return STRUCT;}
YY_BREAK
case 64:
YY_RULE_SETUP
-#line 478 "lexer.l"
+#line 479 "lexer.l"
{return UNION;}
YY_BREAK
case 65:
YY_RULE_SETUP
-#line 479 "lexer.l"
+#line 480 "lexer.l"
{return ENUM;}
YY_BREAK
case 66:
YY_RULE_SETUP
-#line 480 "lexer.l"
+#line 481 "lexer.l"
{return SIGNED;}
YY_BREAK
case 67:
YY_RULE_SETUP
-#line 481 "lexer.l"
+#line 482 "lexer.l"
{return UNSIGNED;}
YY_BREAK
case 68:
YY_RULE_SETUP
-#line 482 "lexer.l"
+#line 483 "lexer.l"
{return LONG;}
YY_BREAK
case 69:
YY_RULE_SETUP
-#line 483 "lexer.l"
+#line 484 "lexer.l"
{return SHORT;}
YY_BREAK
case 70:
YY_RULE_SETUP
-#line 484 "lexer.l"
+#line 485 "lexer.l"
{return INT;}
YY_BREAK
case 71:
YY_RULE_SETUP
-#line 485 "lexer.l"
+#line 486 "lexer.l"
{return FLOAT;}
YY_BREAK
case 72:
YY_RULE_SETUP
-#line 486 "lexer.l"
+#line 487 "lexer.l"
{return DOUBLE;}
YY_BREAK
case 73:
YY_RULE_SETUP
-#line 487 "lexer.l"
+#line 488 "lexer.l"
{return CHAR;}
YY_BREAK
case 74:
YY_RULE_SETUP
-#line 488 "lexer.l"
+#line 489 "lexer.l"
{return CONST;}
YY_BREAK
case 75:
YY_RULE_SETUP
-#line 490 "lexer.l"
+#line 491 "lexer.l"
{return THREEDOTS;}
YY_BREAK
case 76:
YY_RULE_SETUP
-#line 492 "lexer.l"
+#line 493 "lexer.l"
{yylval.line = line_no; return PUBLIC;}
YY_BREAK
case 77:
YY_RULE_SETUP
-#line 493 "lexer.l"
+#line 494 "lexer.l"
{yylval.line = line_no; return PRIVATE;}
YY_BREAK
case 78:
YY_RULE_SETUP
-#line 494 "lexer.l"
+#line 495 "lexer.l"
{yylval.line = line_no; return PROTECTED;}
YY_BREAK
case 79:
YY_RULE_SETUP
-#line 495 "lexer.l"
+#line 496 "lexer.l"
{yylval.line = line_no; return CLASSWIDE;}
YY_BREAK
case 80:
YY_RULE_SETUP
-#line 496 "lexer.l"
+#line 497 "lexer.l"
{yylval.line = line_no; return ARGUMENT;}
YY_BREAK
case 81:
YY_RULE_SETUP
-#line 497 "lexer.l"
+#line 498 "lexer.l"
{yylval.line = line_no; return VIRTUAL;}
YY_BREAK
case 82:
YY_RULE_SETUP
-#line 498 "lexer.l"
+#line 499 "lexer.l"
{yylval.line = line_no; return SIGNAL;}
YY_BREAK
case 83:
YY_RULE_SETUP
-#line 499 "lexer.l"
+#line 500 "lexer.l"
{yylval.line = line_no; return OVERRIDE;}
YY_BREAK
case 84:
YY_RULE_SETUP
-#line 500 "lexer.l"
+#line 501 "lexer.l"
{
yylval.line = line_no;
BEGIN(PROPERTY_CODE);
YY_BREAK
case 85:
YY_RULE_SETUP
-#line 505 "lexer.l"
+#line 506 "lexer.l"
{ yylval.line = line_no; return NICK; }
YY_BREAK
case 86:
YY_RULE_SETUP
-#line 506 "lexer.l"
+#line 507 "lexer.l"
{ yylval.line = line_no; return BLURB; }
YY_BREAK
case 87:
YY_RULE_SETUP
-#line 507 "lexer.l"
+#line 508 "lexer.l"
{ yylval.line = line_no; return MAXIMUM; }
YY_BREAK
case 88:
YY_RULE_SETUP
-#line 508 "lexer.l"
+#line 509 "lexer.l"
{ yylval.line = line_no; return MINIMUM; }
YY_BREAK
case 89:
YY_RULE_SETUP
-#line 509 "lexer.l"
+#line 510 "lexer.l"
{ yylval.line = line_no; return DEFAULT_VALUE; }
YY_BREAK
case 90:
YY_RULE_SETUP
-#line 510 "lexer.l"
+#line 511 "lexer.l"
{ yylval.line = line_no; return FLAGS; }
YY_BREAK
case 91:
YY_RULE_SETUP
-#line 511 "lexer.l"
+#line 512 "lexer.l"
{ yylval.line = line_no; return TYPE; }
YY_BREAK
case 92:
YY_RULE_SETUP
-#line 512 "lexer.l"
+#line 513 "lexer.l"
{ yylval.line = line_no; return FLAGS_TYPE; }
YY_BREAK
case 93:
YY_RULE_SETUP
-#line 513 "lexer.l"
+#line 514 "lexer.l"
{ yylval.line = line_no; return ENUM_TYPE; }
YY_BREAK
case 94:
YY_RULE_SETUP
-#line 514 "lexer.l"
+#line 515 "lexer.l"
{ yylval.line = line_no; return PARAM_TYPE; }
YY_BREAK
case 95:
YY_RULE_SETUP
-#line 515 "lexer.l"
+#line 516 "lexer.l"
{ yylval.line = line_no; return BOXED_TYPE; }
YY_BREAK
case 96:
YY_RULE_SETUP
-#line 516 "lexer.l"
+#line 517 "lexer.l"
{ yylval.line = line_no; return OBJECT_TYPE; }
YY_BREAK
case 97:
YY_RULE_SETUP
-#line 517 "lexer.l"
+#line 518 "lexer.l"
{
yylval.line = line_no;
property_paren_depth = 1;
YY_BREAK
case 98:
YY_RULE_SETUP
-#line 523 "lexer.l"
+#line 524 "lexer.l"
{
yylval.line = line_no;
property_paren_depth++;
YY_BREAK
case 99:
YY_RULE_SETUP
-#line 528 "lexer.l"
+#line 529 "lexer.l"
{
yylval.line = line_no;
property_paren_depth--;
YY_BREAK
case 100:
YY_RULE_SETUP
-#line 537 "lexer.l"
+#line 538 "lexer.l"
{
yylval.id = g_strdup(yytext);
return NUMBER;
YY_BREAK
case 101:
YY_RULE_SETUP
-#line 541 "lexer.l"
+#line 542 "lexer.l"
{
/* This is cpp kind of token thingie */
if (for_cpp) {
YY_BREAK
case 102:
YY_RULE_SETUP
-#line 550 "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 555 "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 560 "lexer.l"
+#line 561 "lexer.l"
{
yylval.id = g_strdup(yytext);
return TOKEN;
YY_BREAK
case 105:
YY_RULE_SETUP
-#line 564 "lexer.l"
+#line 565 "lexer.l"
{
yylval.id = g_strdup(yytext);
return SINGLE_CHAR;
YY_BREAK
case 106:
YY_RULE_SETUP
-#line 569 "lexer.l"
+#line 570 "lexer.l"
{
yylval.id = g_strdup(yytext);
return ARRAY_DIM;
YY_BREAK
case 107:
YY_RULE_SETUP
-#line 574 "lexer.l"
+#line 575 "lexer.l"
{
BEGIN(CLASS_CODE_I);
return '{';
YY_BREAK
case 108:
YY_RULE_SETUP
-#line 578 "lexer.l"
+#line 579 "lexer.l"
{
BEGIN(C_CODE);
parenth_depth=1;
YY_BREAK
case 109:
YY_RULE_SETUP
-#line 587 "lexer.l"
+#line 588 "lexer.l"
{
BEGIN(INITIAL);
return '}';
YY_BREAK
case 110:
YY_RULE_SETUP
-#line 592 "lexer.l"
+#line 593 "lexer.l"
; /*ignore*/
YY_BREAK
case 111:
YY_RULE_SETUP
-#line 594 "lexer.l"
+#line 595 "lexer.l"
{
yylval.line = line_no;
return yytext[0];
YY_BREAK
case 112:
YY_RULE_SETUP
-#line 599 "lexer.l"
+#line 600 "lexer.l"
; /*ignore*/
YY_BREAK
case 113:
YY_RULE_SETUP
-#line 601 "lexer.l"
+#line 602 "lexer.l"
ECHO;
YY_BREAK
-#line 2208 "lexer.c"
+#line 2209 "lexer.c"
case YY_STATE_EOF(INITIAL):
case YY_STATE_EOF(COMMENT):
case YY_STATE_EOF(C_CODE):
return 0;
}
#endif
-#line 601 "lexer.l"
+#line 602 "lexer.l"