/* A recursive-descent parser generated by peg 0.1.18 */ #include #include #include #define YYRULECOUNT 27 #ifndef YY_MALLOC #define YY_MALLOC(C, N) malloc(N) #endif #ifndef YY_REALLOC #define YY_REALLOC(C, P, N) realloc(P, N) #endif #ifndef YY_FREE #define YY_FREE(C, P) free(P) #endif #ifndef YY_LOCAL #define YY_LOCAL(T) static T #endif #ifndef YY_ACTION #define YY_ACTION(T) static T #endif #ifndef YY_RULE #define YY_RULE(T) static T #endif #ifndef YY_PARSE #define YY_PARSE(T) T #endif #ifndef YYPARSE #define YYPARSE yyparse #endif #ifndef YYPARSEFROM #define YYPARSEFROM yyparsefrom #endif #ifndef YYRELEASE #define YYRELEASE yyrelease #endif #ifndef YY_BEGIN #define YY_BEGIN ( yy->__begin= yy->__pos, 1) #endif #ifndef YY_END #define YY_END ( yy->__end= yy->__pos, 1) #endif #ifdef YY_DEBUG # define yyprintf(args) fprintf args #else # define yyprintf(args) #endif #ifndef YYSTYPE #define YYSTYPE int #endif #ifndef YY_STACK_SIZE #define YY_STACK_SIZE 128 #endif #ifndef YY_BUFFER_SIZE #define YY_BUFFER_SIZE 1024 #endif #ifndef YY_PART typedef struct _yycontext yycontext; typedef void (*yyaction)(yycontext *yy, char *yytext, int yyleng); typedef struct _yythunk { int begin, end; yyaction action; struct _yythunk *next; } yythunk; struct _yycontext { char *__buf; int __buflen; int __pos; int __limit; char *__text; int __textlen; int __begin; int __end; int __textmax; yythunk *__thunks; int __thunkslen; int __thunkpos; YYSTYPE __; YYSTYPE *__val; YYSTYPE *__vals; int __valslen; #ifdef YY_CTX_MEMBERS YY_CTX_MEMBERS #endif }; #ifdef YY_CTX_LOCAL #define YY_CTX_PARAM_ yycontext *yyctx, #define YY_CTX_PARAM yycontext *yyctx #define YY_CTX_ARG_ yyctx, #define YY_CTX_ARG yyctx #ifndef YY_INPUT #define YY_INPUT(yy, buf, result, max_size) \ { \ int yyc= getchar(); \ result= (EOF == yyc) ? 0 : (*(buf)= yyc, 1); \ yyprintf((stderr, "<%c>", yyc)); \ } #endif #else #define YY_CTX_PARAM_ #define YY_CTX_PARAM #define YY_CTX_ARG_ #define YY_CTX_ARG yycontext _yyctx= { 0, 0 }; yycontext *yyctx= &_yyctx; #ifndef YY_INPUT #define YY_INPUT(buf, result, max_size) \ { \ int yyc= getchar(); \ result= (EOF == yyc) ? 0 : (*(buf)= yyc, 1); \ yyprintf((stderr, "<%c>", yyc)); \ } #endif #endif YY_LOCAL(int) yyrefill(yycontext *yy) { int yyn; while (yy->__buflen - yy->__pos < 512) { yy->__buflen *= 2; yy->__buf= (char *)YY_REALLOC(yy, yy->__buf, yy->__buflen); } #ifdef YY_CTX_LOCAL YY_INPUT(yy, (yy->__buf + yy->__pos), yyn, (yy->__buflen - yy->__pos)); #else YY_INPUT((yy->__buf + yy->__pos), yyn, (yy->__buflen - yy->__pos)); #endif if (!yyn) return 0; yy->__limit += yyn; return 1; } YY_LOCAL(int) yymatchDot(yycontext *yy) { if (yy->__pos >= yy->__limit && !yyrefill(yy)) return 0; ++yy->__pos; return 1; } YY_LOCAL(int) yymatchChar(yycontext *yy, int c) { if (yy->__pos >= yy->__limit && !yyrefill(yy)) return 0; if ((unsigned char)yy->__buf[yy->__pos] == c) { ++yy->__pos; yyprintf((stderr, " ok yymatchChar(yy, %c) @ %s\n", c, yy->__buf+yy->__pos)); return 1; } yyprintf((stderr, " fail yymatchChar(yy, %c) @ %s\n", c, yy->__buf+yy->__pos)); return 0; } YY_LOCAL(int) yymatchString(yycontext *yy, const char *s) { int yysav= yy->__pos; while (*s) { if (yy->__pos >= yy->__limit && !yyrefill(yy)) return 0; if (yy->__buf[yy->__pos] != *s) { yy->__pos= yysav; return 0; } ++s; ++yy->__pos; } return 1; } YY_LOCAL(int) yymatchClass(yycontext *yy, unsigned char *bits) { int c; if (yy->__pos >= yy->__limit && !yyrefill(yy)) return 0; c= (unsigned char)yy->__buf[yy->__pos]; if (bits[c >> 3] & (1 << (c & 7))) { ++yy->__pos; yyprintf((stderr, " ok yymatchClass @ %s\n", yy->__buf+yy->__pos)); return 1; } yyprintf((stderr, " fail yymatchClass @ %s\n", yy->__buf+yy->__pos)); return 0; } YY_LOCAL(void) yyDo(yycontext *yy, yyaction action, int begin, int end) { while (yy->__thunkpos >= yy->__thunkslen) { yy->__thunkslen *= 2; yy->__thunks= (yythunk *)YY_REALLOC(yy, yy->__thunks, sizeof(yythunk) * yy->__thunkslen); } yy->__thunks[yy->__thunkpos].begin= begin; yy->__thunks[yy->__thunkpos].end= end; yy->__thunks[yy->__thunkpos].action= action; ++yy->__thunkpos; } YY_LOCAL(int) yyText(yycontext *yy, int begin, int end) { int yyleng= end - begin; if (yyleng <= 0) yyleng= 0; else { while (yy->__textlen < (yyleng + 1)) { yy->__textlen *= 2; yy->__text= (char *)YY_REALLOC(yy, yy->__text, yy->__textlen); } memcpy(yy->__text, yy->__buf + begin, yyleng); } yy->__text[yyleng]= '\0'; return yyleng; } YY_LOCAL(void) yyDone(yycontext *yy) { int pos; for (pos= 0; pos < yy->__thunkpos; ++pos) { yythunk *thunk= &yy->__thunks[pos]; int yyleng= thunk->end ? yyText(yy, thunk->begin, thunk->end) : thunk->begin; yyprintf((stderr, "DO [%d] %p %s\n", pos, thunk->action, yy->__text)); thunk->action(yy, yy->__text, yyleng); } yy->__thunkpos= 0; } YY_LOCAL(void) yyCommit(yycontext *yy) { if ((yy->__limit -= yy->__pos)) { memmove(yy->__buf, yy->__buf + yy->__pos, yy->__limit); } yy->__begin -= yy->__pos; yy->__end -= yy->__pos; yy->__pos= yy->__thunkpos= 0; } YY_LOCAL(int) yyAccept(yycontext *yy, int tp0) { if (tp0) { fprintf(stderr, "accept denied at %d\n", tp0); return 0; } else { yyDone(yy); yyCommit(yy); } return 1; } YY_LOCAL(void) yyPush(yycontext *yy, char *text, int count) { yy->__val += count; while (yy->__valslen <= yy->__val - yy->__vals) { long offset= yy->__val - yy->__vals; yy->__valslen *= 2; yy->__vals= (YYSTYPE *)YY_REALLOC(yy, yy->__vals, sizeof(YYSTYPE) * yy->__valslen); yy->__val= yy->__vals + offset; } } YY_LOCAL(void) yyPop(yycontext *yy, char *text, int count) { yy->__val -= count; } YY_LOCAL(void) yySet(yycontext *yy, char *text, int count) { yy->__val[count]= yy->__; } #endif /* YY_PART */ #define YYACCEPT yyAccept(yy, yythunkpos0) YY_RULE(int) yy_comment(yycontext *yy); /* 27 */ YY_RULE(int) yy_space(yycontext *yy); /* 26 */ YY_RULE(int) yy_float1(yycontext *yy); /* 25 */ YY_RULE(int) yy_octal(yycontext *yy); /* 24 */ YY_RULE(int) yy_hex(yycontext *yy); /* 23 */ YY_RULE(int) yy_decimal(yycontext *yy); /* 22 */ YY_RULE(int) yy_integer(yycontext *yy); /* 21 */ YY_RULE(int) yy_float(yycontext *yy); /* 20 */ YY_RULE(int) yy_hex_digit(yycontext *yy); /* 19 */ YY_RULE(int) yy_character(yycontext *yy); /* 18 */ YY_RULE(int) yy_end_of_line(yycontext *yy); /* 17 */ YY_RULE(int) yy_char(yycontext *yy); /* 16 */ YY_RULE(int) yy_string1(yycontext *yy); /* 15 */ YY_RULE(int) yy_number(yycontext *yy); /* 14 */ YY_RULE(int) yy_expr0(yycontext *yy); /* 13 */ YY_RULE(int) yy_word(yycontext *yy); /* 12 */ YY_RULE(int) yy_array_item(yycontext *yy); /* 11 */ YY_RULE(int) yy_array(yycontext *yy); /* 10 */ YY_RULE(int) yy_identifier(yycontext *yy); /* 9 */ YY_RULE(int) yy_expr(yycontext *yy); /* 8 */ YY_RULE(int) yy_lvalue(yycontext *yy); /* 7 */ YY_RULE(int) yy_string(yycontext *yy); /* 6 */ YY_RULE(int) yy_end_of_file(yycontext *yy); /* 5 */ YY_RULE(int) yy_config(yycontext *yy); /* 4 */ YY_RULE(int) yy_include(yycontext *yy); /* 3 */ YY_RULE(int) yy_spaces(yycontext *yy); /* 2 */ YY_RULE(int) yy_configs(yycontext *yy); /* 1 */ YY_ACTION(void) yy_1_end_of_line(yycontext *yy, char *yytext, int yyleng) { #define __ yy->__ #define yypos yy->__pos #define yythunkpos yy->__thunkpos yyprintf((stderr, "do yy_1_end_of_line\n")); { #line 0 ++ParseLineNr; ; } #undef yythunkpos #undef yypos #undef yy } YY_ACTION(void) yy_1_float(yycontext *yy, char *yytext, int yyleng) { #define __ yy->__ #define yypos yy->__pos #define yythunkpos yy->__thunkpos yyprintf((stderr, "do yy_1_float\n")); { #line 0 ParsePushF(strtod(yytext, NULL)); ; } #undef yythunkpos #undef yypos #undef yy } YY_ACTION(void) yy_1_integer(yycontext *yy, char *yytext, int yyleng) { #define __ yy->__ #define yypos yy->__pos #define yythunkpos yy->__thunkpos yyprintf((stderr, "do yy_1_integer\n")); { #line 0 ParsePushI(strtol(yytext, NULL, 0)); ; } #undef yythunkpos #undef yypos #undef yy } YY_ACTION(void) yy_1_character(yycontext *yy, char *yytext, int yyleng) { #define __ yy->__ #define yypos yy->__pos #define yythunkpos yy->__thunkpos yyprintf((stderr, "do yy_1_character\n")); { #line 0 ParsePushI(*yytext); ; } #undef yythunkpos #undef yypos #undef yy } YY_ACTION(void) yy_1_string(yycontext *yy, char *yytext, int yyleng) { #define __ yy->__ #define yypos yy->__pos #define yythunkpos yy->__thunkpos yyprintf((stderr, "do yy_1_string\n")); { #line 0 ParsePushS(yytext); ; } #undef yythunkpos #undef yypos #undef yy } YY_ACTION(void) yy_1_identifier(yycontext *yy, char *yytext, int yyleng) { #define __ yy->__ #define yypos yy->__pos #define yythunkpos yy->__thunkpos yyprintf((stderr, "do yy_1_identifier\n")); { #line 0 ParsePushS(yytext); ; } #undef yythunkpos #undef yypos #undef yy } YY_ACTION(void) yy_4_expr0(yycontext *yy, char *yytext, int yyleng) { #define __ yy->__ #define yypos yy->__pos #define yythunkpos yy->__thunkpos yyprintf((stderr, "do yy_4_expr0\n")); { #line 0 ParseVariable(ParsePop()); ; } #undef yythunkpos #undef yypos #undef yy } YY_ACTION(void) yy_3_expr0(yycontext *yy, char *yytext, int yyleng) { #define __ yy->__ #define yypos yy->__pos #define yythunkpos yy->__thunkpos yyprintf((stderr, "do yy_3_expr0\n")); { #line 0 ParsePushI(1); ; } #undef yythunkpos #undef yypos #undef yy } YY_ACTION(void) yy_2_expr0(yycontext *yy, char *yytext, int yyleng) { #define __ yy->__ #define yypos yy->__pos #define yythunkpos yy->__thunkpos yyprintf((stderr, "do yy_2_expr0\n")); { #line 0 ParsePushI(0); ; } #undef yythunkpos #undef yypos #undef yy } YY_ACTION(void) yy_1_expr0(yycontext *yy, char *yytext, int yyleng) { #define __ yy->__ #define yypos yy->__pos #define yythunkpos yy->__thunkpos yyprintf((stderr, "do yy_1_expr0\n")); { #line 0 ParsePushNil(); ; } #undef yythunkpos #undef yypos #undef yy } YY_ACTION(void) yy_1_expr(yycontext *yy, char *yytext, int yyleng) { #define __ yy->__ #define yypos yy->__pos #define yythunkpos yy->__thunkpos yyprintf((stderr, "do yy_1_expr\n")); { #line 0 const ConfigObject * v1 = ParsePop(); ParseStringCat(ParsePop(), v1); ; } #undef yythunkpos #undef yypos #undef yy } YY_ACTION(void) yy_3_array_item(yycontext *yy, char *yytext, int yyleng) { #define __ yy->__ #define yypos yy->__pos #define yythunkpos yy->__thunkpos yyprintf((stderr, "do yy_3_array_item\n")); { #line 0 ParseArrayNextItem(ParsePop()); ; } #undef yythunkpos #undef yypos #undef yy } YY_ACTION(void) yy_2_array_item(yycontext *yy, char *yytext, int yyleng) { #define __ yy->__ #define yypos yy->__pos #define yythunkpos yy->__thunkpos yyprintf((stderr, "do yy_2_array_item\n")); { #line 0 const ConfigObject * v1 = ParsePop(); ParseArrayAddItem(ParsePop(), v1); ; } #undef yythunkpos #undef yypos #undef yy } YY_ACTION(void) yy_1_array_item(yycontext *yy, char *yytext, int yyleng) { #define __ yy->__ #define yypos yy->__pos #define yythunkpos yy->__thunkpos yyprintf((stderr, "do yy_1_array_item\n")); { #line 0 const ConfigObject * v1 = ParsePop(); ParseArrayAddItem(ParsePop(), v1); ; } #undef yythunkpos #undef yypos #undef yy } YY_ACTION(void) yy_2_array(yycontext *yy, char *yytext, int yyleng) { #define __ yy->__ #define yypos yy->__pos #define yythunkpos yy->__thunkpos yyprintf((stderr, "do yy_2_array\n")); { #line 0 ParseArrayFinal(); ; } #undef yythunkpos #undef yypos #undef yy } YY_ACTION(void) yy_1_array(yycontext *yy, char *yytext, int yyleng) { #define __ yy->__ #define yypos yy->__pos #define yythunkpos yy->__thunkpos yyprintf((stderr, "do yy_1_array\n")); { #line 0 ParseArrayStart(); ; } #undef yythunkpos #undef yypos #undef yy } YY_ACTION(void) yy_2_lvalue(yycontext *yy, char *yytext, int yyleng) { #define __ yy->__ #define yypos yy->__pos #define yythunkpos yy->__thunkpos yyprintf((stderr, "do yy_2_lvalue\n")); { #line 0 const ConfigObject * v1 = ParsePop(); ParseDot(ParsePop(), v1); ; } #undef yythunkpos #undef yypos #undef yy } YY_ACTION(void) yy_1_lvalue(yycontext *yy, char *yytext, int yyleng) { #define __ yy->__ #define yypos yy->__pos #define yythunkpos yy->__thunkpos yyprintf((stderr, "do yy_1_lvalue\n")); { #line 0 ParseLvalue() ; } #undef yythunkpos #undef yypos #undef yy } YY_ACTION(void) yy_1_config(yycontext *yy, char *yytext, int yyleng) { #define __ yy->__ #define yypos yy->__pos #define yythunkpos yy->__thunkpos yyprintf((stderr, "do yy_1_config\n")); { #line 0 const ConfigObject * v1 = ParsePop(); ParseAssign(ParsePop(), v1); ; } #undef yythunkpos #undef yypos #undef yy } YY_ACTION(void) yy_1_include(yycontext *yy, char *yytext, int yyleng) { #define __ yy->__ #define yypos yy->__pos #define yythunkpos yy->__thunkpos yyprintf((stderr, "do yy_1_include\n")); { #line 0 ParseInclude(ParsePop()); ; } #undef yythunkpos #undef yypos #undef yy } YY_RULE(int) yy_comment(yycontext *yy) { int yypos0= yy->__pos, yythunkpos0= yy->__thunkpos; yyprintf((stderr, "%s\n", "comment")); { int yypos2= yy->__pos, yythunkpos2= yy->__thunkpos; if (!yymatchString(yy, ";{")) goto l3; l4:; { int yypos5= yy->__pos, yythunkpos5= yy->__thunkpos; { int yypos6= yy->__pos, yythunkpos6= yy->__thunkpos; if (!yymatchString(yy, ";}")) goto l6; goto l5; l6:; yy->__pos= yypos6; yy->__thunkpos= yythunkpos6; } if (!yymatchDot(yy)) goto l5; goto l4; l5:; yy->__pos= yypos5; yy->__thunkpos= yythunkpos5; } if (!yymatchString(yy, ";}")) goto l3; goto l2; l3:; yy->__pos= yypos2; yy->__thunkpos= yythunkpos2; if (!yymatchChar(yy, ';')) goto l1; l7:; { int yypos8= yy->__pos, yythunkpos8= yy->__thunkpos; { int yypos9= yy->__pos, yythunkpos9= yy->__thunkpos; if (!yy_end_of_line(yy)) goto l9; goto l8; l9:; yy->__pos= yypos9; yy->__thunkpos= yythunkpos9; } if (!yymatchDot(yy)) goto l8; goto l7; l8:; yy->__pos= yypos8; yy->__thunkpos= yythunkpos8; } if (!yy_end_of_line(yy)) goto l1; } l2:; yyprintf((stderr, " ok %s @ %s\n", "comment", yy->__buf+yy->__pos)); return 1; l1:; yy->__pos= yypos0; yy->__thunkpos= yythunkpos0; yyprintf((stderr, " fail %s @ %s\n", "comment", yy->__buf+yy->__pos)); return 0; } YY_RULE(int) yy_space(yycontext *yy) { int yypos0= yy->__pos, yythunkpos0= yy->__thunkpos; yyprintf((stderr, "%s\n", "space")); { int yypos11= yy->__pos, yythunkpos11= yy->__thunkpos; if (!yymatchChar(yy, ' ')) goto l12; goto l11; l12:; yy->__pos= yypos11; yy->__thunkpos= yythunkpos11; if (!yymatchChar(yy, '\t')) goto l13; goto l11; l13:; yy->__pos= yypos11; yy->__thunkpos= yythunkpos11; if (!yymatchChar(yy, '\f')) goto l14; goto l11; l14:; yy->__pos= yypos11; yy->__thunkpos= yythunkpos11; if (!yymatchChar(yy, '\v')) goto l15; goto l11; l15:; yy->__pos= yypos11; yy->__thunkpos= yythunkpos11; if (!yy_end_of_line(yy)) goto l10; } l11:; yyprintf((stderr, " ok %s @ %s\n", "space", yy->__buf+yy->__pos)); return 1; l10:; yy->__pos= yypos0; yy->__thunkpos= yythunkpos0; yyprintf((stderr, " fail %s @ %s\n", "space", yy->__buf+yy->__pos)); return 0; } YY_RULE(int) yy_float1(yycontext *yy) { int yypos0= yy->__pos, yythunkpos0= yy->__thunkpos; yyprintf((stderr, "%s\n", "float1")); { int yypos17= yy->__pos, yythunkpos17= yy->__thunkpos; yyText(yy, yy->__begin, yy->__end); { #define yytext yy->__text #define yyleng yy->__textlen if (!(YY_BEGIN)) goto l18; #undef yytext #undef yyleng } { int yypos19= yy->__pos, yythunkpos19= yy->__thunkpos; if (!yymatchClass(yy, (unsigned char *)"\000\000\000\000\000\050\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l19; goto l20; l19:; yy->__pos= yypos19; yy->__thunkpos= yythunkpos19; } l20:; if (!yymatchClass(yy, (unsigned char *)"\000\000\000\000\000\000\377\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l18; l21:; { int yypos22= yy->__pos, yythunkpos22= yy->__thunkpos; if (!yymatchClass(yy, (unsigned char *)"\000\000\000\000\000\000\377\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l22; goto l21; l22:; yy->__pos= yypos22; yy->__thunkpos= yythunkpos22; } if (!yymatchChar(yy, '.')) goto l18; l23:; { int yypos24= yy->__pos, yythunkpos24= yy->__thunkpos; if (!yymatchClass(yy, (unsigned char *)"\000\000\000\000\000\000\377\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l24; goto l23; l24:; yy->__pos= yypos24; yy->__thunkpos= yythunkpos24; } { int yypos25= yy->__pos, yythunkpos25= yy->__thunkpos; if (!yymatchClass(yy, (unsigned char *)"\000\000\000\000\000\000\000\000\040\000\000\000\040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l25; l27:; { int yypos28= yy->__pos, yythunkpos28= yy->__thunkpos; if (!yymatchClass(yy, (unsigned char *)"\000\000\000\000\001\370\377\377\377\377\377\077\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l28; goto l27; l28:; yy->__pos= yypos28; yy->__thunkpos= yythunkpos28; } goto l26; l25:; yy->__pos= yypos25; yy->__thunkpos= yythunkpos25; } l26:; yyText(yy, yy->__begin, yy->__end); { #define yytext yy->__text #define yyleng yy->__textlen if (!(YY_END)) goto l18; #undef yytext #undef yyleng } if (!yy_spaces(yy)) goto l18; goto l17; l18:; yy->__pos= yypos17; yy->__thunkpos= yythunkpos17; yyText(yy, yy->__begin, yy->__end); { #define yytext yy->__text #define yyleng yy->__textlen if (!(YY_BEGIN)) goto l29; #undef yytext #undef yyleng } { int yypos30= yy->__pos, yythunkpos30= yy->__thunkpos; if (!yymatchClass(yy, (unsigned char *)"\000\000\000\000\000\050\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l30; goto l31; l30:; yy->__pos= yypos30; yy->__thunkpos= yythunkpos30; } l31:; l32:; { int yypos33= yy->__pos, yythunkpos33= yy->__thunkpos; if (!yymatchClass(yy, (unsigned char *)"\000\000\000\000\000\000\377\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l33; goto l32; l33:; yy->__pos= yypos33; yy->__thunkpos= yythunkpos33; } if (!yymatchChar(yy, '.')) goto l29; if (!yymatchClass(yy, (unsigned char *)"\000\000\000\000\000\000\377\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l29; l34:; { int yypos35= yy->__pos, yythunkpos35= yy->__thunkpos; if (!yymatchClass(yy, (unsigned char *)"\000\000\000\000\000\000\377\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l35; goto l34; l35:; yy->__pos= yypos35; yy->__thunkpos= yythunkpos35; } { int yypos36= yy->__pos, yythunkpos36= yy->__thunkpos; if (!yymatchClass(yy, (unsigned char *)"\000\000\000\000\000\000\000\000\040\000\000\000\040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l36; l38:; { int yypos39= yy->__pos, yythunkpos39= yy->__thunkpos; if (!yymatchClass(yy, (unsigned char *)"\000\000\000\000\001\370\377\377\377\377\377\077\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l39; goto l38; l39:; yy->__pos= yypos39; yy->__thunkpos= yythunkpos39; } goto l37; l36:; yy->__pos= yypos36; yy->__thunkpos= yythunkpos36; } l37:; yyText(yy, yy->__begin, yy->__end); { #define yytext yy->__text #define yyleng yy->__textlen if (!(YY_END)) goto l29; #undef yytext #undef yyleng } if (!yy_spaces(yy)) goto l29; goto l17; l29:; yy->__pos= yypos17; yy->__thunkpos= yythunkpos17; yyText(yy, yy->__begin, yy->__end); { #define yytext yy->__text #define yyleng yy->__textlen if (!(YY_BEGIN)) goto l16; #undef yytext #undef yyleng } { int yypos40= yy->__pos, yythunkpos40= yy->__thunkpos; if (!yymatchClass(yy, (unsigned char *)"\000\000\000\000\000\050\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l40; goto l41; l40:; yy->__pos= yypos40; yy->__thunkpos= yythunkpos40; } l41:; if (!yymatchClass(yy, (unsigned char *)"\000\000\000\000\000\000\377\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l16; l42:; { int yypos43= yy->__pos, yythunkpos43= yy->__thunkpos; if (!yymatchClass(yy, (unsigned char *)"\000\000\000\000\000\000\377\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l43; goto l42; l43:; yy->__pos= yypos43; yy->__thunkpos= yythunkpos43; } if (!yymatchClass(yy, (unsigned char *)"\000\000\000\000\000\000\000\000\040\000\000\000\040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l16; l44:; { int yypos45= yy->__pos, yythunkpos45= yy->__thunkpos; if (!yymatchClass(yy, (unsigned char *)"\000\000\000\000\001\370\377\377\377\377\377\077\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l45; goto l44; l45:; yy->__pos= yypos45; yy->__thunkpos= yythunkpos45; } yyText(yy, yy->__begin, yy->__end); { #define yytext yy->__text #define yyleng yy->__textlen if (!(YY_END)) goto l16; #undef yytext #undef yyleng } if (!yy_spaces(yy)) goto l16; } l17:; yyprintf((stderr, " ok %s @ %s\n", "float1", yy->__buf+yy->__pos)); return 1; l16:; yy->__pos= yypos0; yy->__thunkpos= yythunkpos0; yyprintf((stderr, " fail %s @ %s\n", "float1", yy->__buf+yy->__pos)); return 0; } YY_RULE(int) yy_octal(yycontext *yy) { int yypos0= yy->__pos, yythunkpos0= yy->__thunkpos; yyprintf((stderr, "%s\n", "octal")); yyText(yy, yy->__begin, yy->__end); { #define yytext yy->__text #define yyleng yy->__textlen if (!(YY_BEGIN)) goto l46; #undef yytext #undef yyleng } if (!yymatchChar(yy, '0')) goto l46; l47:; { int yypos48= yy->__pos, yythunkpos48= yy->__thunkpos; if (!yymatchClass(yy, (unsigned char *)"\000\000\000\000\000\000\377\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l48; goto l47; l48:; yy->__pos= yypos48; yy->__thunkpos= yythunkpos48; } yyText(yy, yy->__begin, yy->__end); { #define yytext yy->__text #define yyleng yy->__textlen if (!(YY_END)) goto l46; #undef yytext #undef yyleng } yyprintf((stderr, " ok %s @ %s\n", "octal", yy->__buf+yy->__pos)); return 1; l46:; yy->__pos= yypos0; yy->__thunkpos= yythunkpos0; yyprintf((stderr, " fail %s @ %s\n", "octal", yy->__buf+yy->__pos)); return 0; } YY_RULE(int) yy_hex(yycontext *yy) { int yypos0= yy->__pos, yythunkpos0= yy->__thunkpos; yyprintf((stderr, "%s\n", "hex")); yyText(yy, yy->__begin, yy->__end); { #define yytext yy->__text #define yyleng yy->__textlen if (!(YY_BEGIN)) goto l49; #undef yytext #undef yyleng } if (!yymatchChar(yy, '0')) goto l49; if (!yymatchClass(yy, (unsigned char *)"\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l49; if (!yy_hex_digit(yy)) goto l49; l50:; { int yypos51= yy->__pos, yythunkpos51= yy->__thunkpos; if (!yy_hex_digit(yy)) goto l51; goto l50; l51:; yy->__pos= yypos51; yy->__thunkpos= yythunkpos51; } yyText(yy, yy->__begin, yy->__end); { #define yytext yy->__text #define yyleng yy->__textlen if (!(YY_END)) goto l49; #undef yytext #undef yyleng } yyprintf((stderr, " ok %s @ %s\n", "hex", yy->__buf+yy->__pos)); return 1; l49:; yy->__pos= yypos0; yy->__thunkpos= yythunkpos0; yyprintf((stderr, " fail %s @ %s\n", "hex", yy->__buf+yy->__pos)); return 0; } YY_RULE(int) yy_decimal(yycontext *yy) { int yypos0= yy->__pos, yythunkpos0= yy->__thunkpos; yyprintf((stderr, "%s\n", "decimal")); yyText(yy, yy->__begin, yy->__end); { #define yytext yy->__text #define yyleng yy->__textlen if (!(YY_BEGIN)) goto l52; #undef yytext #undef yyleng } { int yypos53= yy->__pos, yythunkpos53= yy->__thunkpos; if (!yymatchClass(yy, (unsigned char *)"\000\000\000\000\000\050\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l53; goto l54; l53:; yy->__pos= yypos53; yy->__thunkpos= yythunkpos53; } l54:; if (!yymatchClass(yy, (unsigned char *)"\000\000\000\000\000\000\376\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l52; l55:; { int yypos56= yy->__pos, yythunkpos56= yy->__thunkpos; if (!yymatchClass(yy, (unsigned char *)"\000\000\000\000\000\000\377\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l56; goto l55; l56:; yy->__pos= yypos56; yy->__thunkpos= yythunkpos56; } yyText(yy, yy->__begin, yy->__end); { #define yytext yy->__text #define yyleng yy->__textlen if (!(YY_END)) goto l52; #undef yytext #undef yyleng } yyprintf((stderr, " ok %s @ %s\n", "decimal", yy->__buf+yy->__pos)); return 1; l52:; yy->__pos= yypos0; yy->__thunkpos= yythunkpos0; yyprintf((stderr, " fail %s @ %s\n", "decimal", yy->__buf+yy->__pos)); return 0; } YY_RULE(int) yy_integer(yycontext *yy) { int yypos0= yy->__pos, yythunkpos0= yy->__thunkpos; yyprintf((stderr, "%s\n", "integer")); { int yypos58= yy->__pos, yythunkpos58= yy->__thunkpos; if (!yy_decimal(yy)) goto l59; goto l58; l59:; yy->__pos= yypos58; yy->__thunkpos= yythunkpos58; if (!yy_hex(yy)) goto l60; goto l58; l60:; yy->__pos= yypos58; yy->__thunkpos= yythunkpos58; if (!yy_octal(yy)) goto l57; } l58:; if (!yy_spaces(yy)) goto l57; yyDo(yy, yy_1_integer, yy->__begin, yy->__end); yyprintf((stderr, " ok %s @ %s\n", "integer", yy->__buf+yy->__pos)); return 1; l57:; yy->__pos= yypos0; yy->__thunkpos= yythunkpos0; yyprintf((stderr, " fail %s @ %s\n", "integer", yy->__buf+yy->__pos)); return 0; } YY_RULE(int) yy_float(yycontext *yy) { int yypos0= yy->__pos, yythunkpos0= yy->__thunkpos; yyprintf((stderr, "%s\n", "float")); if (!yy_float1(yy)) goto l61; yyDo(yy, yy_1_float, yy->__begin, yy->__end); yyprintf((stderr, " ok %s @ %s\n", "float", yy->__buf+yy->__pos)); return 1; l61:; yy->__pos= yypos0; yy->__thunkpos= yythunkpos0; yyprintf((stderr, " fail %s @ %s\n", "float", yy->__buf+yy->__pos)); return 0; } YY_RULE(int) yy_hex_digit(yycontext *yy) { int yypos0= yy->__pos, yythunkpos0= yy->__thunkpos; yyprintf((stderr, "%s\n", "hex_digit")); if (!yymatchClass(yy, (unsigned char *)"\000\000\000\000\000\000\377\003\176\000\000\000\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l62; yyprintf((stderr, " ok %s @ %s\n", "hex_digit", yy->__buf+yy->__pos)); return 1; l62:; yy->__pos= yypos0; yy->__thunkpos= yythunkpos0; yyprintf((stderr, " fail %s @ %s\n", "hex_digit", yy->__buf+yy->__pos)); return 0; } YY_RULE(int) yy_character(yycontext *yy) { int yypos0= yy->__pos, yythunkpos0= yy->__thunkpos; yyprintf((stderr, "%s\n", "character")); if (!yymatchChar(yy, '\'')) goto l63; yyText(yy, yy->__begin, yy->__end); { #define yytext yy->__text #define yyleng yy->__textlen if (!(YY_BEGIN)) goto l63; #undef yytext #undef yyleng } if (!yy_char(yy)) goto l63; yyText(yy, yy->__begin, yy->__end); { #define yytext yy->__text #define yyleng yy->__textlen if (!(YY_END)) goto l63; #undef yytext #undef yyleng } if (!yy_spaces(yy)) goto l63; yyDo(yy, yy_1_character, yy->__begin, yy->__end); yyprintf((stderr, " ok %s @ %s\n", "character", yy->__buf+yy->__pos)); return 1; l63:; yy->__pos= yypos0; yy->__thunkpos= yythunkpos0; yyprintf((stderr, " fail %s @ %s\n", "character", yy->__buf+yy->__pos)); return 0; } YY_RULE(int) yy_end_of_line(yycontext *yy) { int yypos0= yy->__pos, yythunkpos0= yy->__thunkpos; yyprintf((stderr, "%s\n", "end_of_line")); { int yypos65= yy->__pos, yythunkpos65= yy->__thunkpos; if (!yymatchString(yy, "\r\n")) goto l66; goto l65; l66:; yy->__pos= yypos65; yy->__thunkpos= yythunkpos65; if (!yymatchChar(yy, '\r')) goto l67; goto l65; l67:; yy->__pos= yypos65; yy->__thunkpos= yythunkpos65; if (!yymatchChar(yy, '\n')) goto l64; yyDo(yy, yy_1_end_of_line, yy->__begin, yy->__end); } l65:; yyprintf((stderr, " ok %s @ %s\n", "end_of_line", yy->__buf+yy->__pos)); return 1; l64:; yy->__pos= yypos0; yy->__thunkpos= yythunkpos0; yyprintf((stderr, " fail %s @ %s\n", "end_of_line", yy->__buf+yy->__pos)); return 0; } YY_RULE(int) yy_char(yycontext *yy) { int yypos0= yy->__pos, yythunkpos0= yy->__thunkpos; yyprintf((stderr, "%s\n", "char")); { int yypos69= yy->__pos, yythunkpos69= yy->__thunkpos; if (!yymatchChar(yy, '\\')) goto l70; if (!yymatchClass(yy, (unsigned char *)"\000\000\000\000\204\000\000\000\000\000\000\020\146\100\124\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l70; goto l69; l70:; yy->__pos= yypos69; yy->__thunkpos= yythunkpos69; if (!yymatchChar(yy, '\\')) goto l71; if (!yymatchClass(yy, (unsigned char *)"\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l71; if (!yy_hex_digit(yy)) goto l71; if (!yy_hex_digit(yy)) goto l71; goto l69; l71:; yy->__pos= yypos69; yy->__thunkpos= yythunkpos69; if (!yymatchChar(yy, '\\')) goto l72; if (!yymatchClass(yy, (unsigned char *)"\000\000\000\000\000\000\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l72; if (!yymatchClass(yy, (unsigned char *)"\000\000\000\000\000\000\377\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l72; if (!yymatchClass(yy, (unsigned char *)"\000\000\000\000\000\000\377\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l72; goto l69; l72:; yy->__pos= yypos69; yy->__thunkpos= yythunkpos69; if (!yymatchChar(yy, '\\')) goto l73; if (!yymatchClass(yy, (unsigned char *)"\000\000\000\000\000\000\000\000\000\000\040\000\000\000\040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l73; if (!yy_hex_digit(yy)) goto l73; if (!yy_hex_digit(yy)) goto l73; if (!yy_hex_digit(yy)) goto l73; if (!yy_hex_digit(yy)) goto l73; goto l69; l73:; yy->__pos= yypos69; yy->__thunkpos= yythunkpos69; { int yypos74= yy->__pos, yythunkpos74= yy->__thunkpos; if (!yymatchChar(yy, '\\')) goto l74; goto l68; l74:; yy->__pos= yypos74; yy->__thunkpos= yythunkpos74; } if (!yymatchDot(yy)) goto l68; } l69:; yyprintf((stderr, " ok %s @ %s\n", "char", yy->__buf+yy->__pos)); return 1; l68:; yy->__pos= yypos0; yy->__thunkpos= yythunkpos0; yyprintf((stderr, " fail %s @ %s\n", "char", yy->__buf+yy->__pos)); return 0; } YY_RULE(int) yy_string1(yycontext *yy) { int yypos0= yy->__pos, yythunkpos0= yy->__thunkpos; yyprintf((stderr, "%s\n", "string1")); { int yypos76= yy->__pos, yythunkpos76= yy->__thunkpos; if (!yymatchChar(yy, '"')) goto l77; yyText(yy, yy->__begin, yy->__end); { #define yytext yy->__text #define yyleng yy->__textlen if (!(YY_BEGIN)) goto l77; #undef yytext #undef yyleng } l78:; { int yypos79= yy->__pos, yythunkpos79= yy->__thunkpos; { int yypos80= yy->__pos, yythunkpos80= yy->__thunkpos; if (!yymatchChar(yy, '"')) goto l80; goto l79; l80:; yy->__pos= yypos80; yy->__thunkpos= yythunkpos80; } if (!yy_char(yy)) goto l79; goto l78; l79:; yy->__pos= yypos79; yy->__thunkpos= yythunkpos79; } yyText(yy, yy->__begin, yy->__end); { #define yytext yy->__text #define yyleng yy->__textlen if (!(YY_END)) goto l77; #undef yytext #undef yyleng } if (!yymatchChar(yy, '"')) goto l77; if (!yy_spaces(yy)) goto l77; goto l76; l77:; yy->__pos= yypos76; yy->__thunkpos= yythunkpos76; if (!yymatchChar(yy, '{')) goto l75; { int yypos81= yy->__pos, yythunkpos81= yy->__thunkpos; if (!yy_end_of_line(yy)) goto l81; goto l82; l81:; yy->__pos= yypos81; yy->__thunkpos= yythunkpos81; } l82:; yyText(yy, yy->__begin, yy->__end); { #define yytext yy->__text #define yyleng yy->__textlen if (!(YY_BEGIN)) goto l75; #undef yytext #undef yyleng } l83:; { int yypos84= yy->__pos, yythunkpos84= yy->__thunkpos; { int yypos85= yy->__pos, yythunkpos85= yy->__thunkpos; { int yypos86= yy->__pos, yythunkpos86= yy->__thunkpos; if (!yy_end_of_line(yy)) goto l86; goto l87; l86:; yy->__pos= yypos86; yy->__thunkpos= yythunkpos86; } l87:; if (!yymatchChar(yy, '}')) goto l85; goto l84; l85:; yy->__pos= yypos85; yy->__thunkpos= yythunkpos85; } if (!yymatchDot(yy)) goto l84; goto l83; l84:; yy->__pos= yypos84; yy->__thunkpos= yythunkpos84; } yyText(yy, yy->__begin, yy->__end); { #define yytext yy->__text #define yyleng yy->__textlen if (!(YY_END)) goto l75; #undef yytext #undef yyleng } { int yypos88= yy->__pos, yythunkpos88= yy->__thunkpos; if (!yy_end_of_line(yy)) goto l88; goto l89; l88:; yy->__pos= yypos88; yy->__thunkpos= yythunkpos88; } l89:; if (!yymatchChar(yy, '}')) goto l75; if (!yy_spaces(yy)) goto l75; } l76:; yyprintf((stderr, " ok %s @ %s\n", "string1", yy->__buf+yy->__pos)); return 1; l75:; yy->__pos= yypos0; yy->__thunkpos= yythunkpos0; yyprintf((stderr, " fail %s @ %s\n", "string1", yy->__buf+yy->__pos)); return 0; } YY_RULE(int) yy_number(yycontext *yy) { int yypos0= yy->__pos, yythunkpos0= yy->__thunkpos; yyprintf((stderr, "%s\n", "number")); { int yypos91= yy->__pos, yythunkpos91= yy->__thunkpos; if (!yy_float(yy)) goto l92; goto l91; l92:; yy->__pos= yypos91; yy->__thunkpos= yythunkpos91; if (!yy_integer(yy)) goto l93; goto l91; l93:; yy->__pos= yypos91; yy->__thunkpos= yythunkpos91; if (!yy_character(yy)) goto l90; } l91:; yyprintf((stderr, " ok %s @ %s\n", "number", yy->__buf+yy->__pos)); return 1; l90:; yy->__pos= yypos0; yy->__thunkpos= yythunkpos0; yyprintf((stderr, " fail %s @ %s\n", "number", yy->__buf+yy->__pos)); return 0; } YY_RULE(int) yy_expr0(yycontext *yy) { int yypos0= yy->__pos, yythunkpos0= yy->__thunkpos; yyprintf((stderr, "%s\n", "expr0")); { int yypos95= yy->__pos, yythunkpos95= yy->__thunkpos; if (!yymatchString(yy, "nil")) goto l96; if (!yy_spaces(yy)) goto l96; yyDo(yy, yy_1_expr0, yy->__begin, yy->__end); goto l95; l96:; yy->__pos= yypos95; yy->__thunkpos= yythunkpos95; if (!yymatchString(yy, "false")) goto l97; if (!yy_spaces(yy)) goto l97; yyDo(yy, yy_2_expr0, yy->__begin, yy->__end); goto l95; l97:; yy->__pos= yypos95; yy->__thunkpos= yythunkpos95; if (!yymatchString(yy, "true")) goto l98; if (!yy_spaces(yy)) goto l98; yyDo(yy, yy_3_expr0, yy->__begin, yy->__end); goto l95; l98:; yy->__pos= yypos95; yy->__thunkpos= yythunkpos95; if (!yy_number(yy)) goto l99; goto l95; l99:; yy->__pos= yypos95; yy->__thunkpos= yythunkpos95; if (!yy_string(yy)) goto l100; goto l95; l100:; yy->__pos= yypos95; yy->__thunkpos= yythunkpos95; if (!yy_word(yy)) goto l101; goto l95; l101:; yy->__pos= yypos95; yy->__thunkpos= yythunkpos95; if (!yy_identifier(yy)) goto l102; yyDo(yy, yy_4_expr0, yy->__begin, yy->__end); goto l95; l102:; yy->__pos= yypos95; yy->__thunkpos= yythunkpos95; if (!yy_array(yy)) goto l94; } l95:; yyprintf((stderr, " ok %s @ %s\n", "expr0", yy->__buf+yy->__pos)); return 1; l94:; yy->__pos= yypos0; yy->__thunkpos= yythunkpos0; yyprintf((stderr, " fail %s @ %s\n", "expr0", yy->__buf+yy->__pos)); return 0; } YY_RULE(int) yy_word(yycontext *yy) { int yypos0= yy->__pos, yythunkpos0= yy->__thunkpos; yyprintf((stderr, "%s\n", "word")); if (!yymatchChar(yy, '`')) goto l103; if (!yy_identifier(yy)) goto l103; yyprintf((stderr, " ok %s @ %s\n", "word", yy->__buf+yy->__pos)); return 1; l103:; yy->__pos= yypos0; yy->__thunkpos= yythunkpos0; yyprintf((stderr, " fail %s @ %s\n", "word", yy->__buf+yy->__pos)); return 0; } YY_RULE(int) yy_array_item(yycontext *yy) { int yypos0= yy->__pos, yythunkpos0= yy->__thunkpos; yyprintf((stderr, "%s\n", "array_item")); { int yypos105= yy->__pos, yythunkpos105= yy->__thunkpos; if (!yymatchChar(yy, '[')) goto l106; if (!yy_spaces(yy)) goto l106; if (!yy_expr(yy)) goto l106; if (!yymatchChar(yy, ']')) goto l106; if (!yy_spaces(yy)) goto l106; if (!yymatchChar(yy, '=')) goto l106; if (!yy_spaces(yy)) goto l106; if (!yy_expr(yy)) goto l106; yyDo(yy, yy_1_array_item, yy->__begin, yy->__end); goto l105; l106:; yy->__pos= yypos105; yy->__thunkpos= yythunkpos105; { int yypos108= yy->__pos, yythunkpos108= yy->__thunkpos; if (!yy_identifier(yy)) goto l109; goto l108; l109:; yy->__pos= yypos108; yy->__thunkpos= yythunkpos108; if (!yy_word(yy)) goto l107; } l108:; if (!yymatchChar(yy, '=')) goto l107; if (!yy_spaces(yy)) goto l107; if (!yy_expr(yy)) goto l107; yyDo(yy, yy_2_array_item, yy->__begin, yy->__end); goto l105; l107:; yy->__pos= yypos105; yy->__thunkpos= yythunkpos105; if (!yy_expr(yy)) goto l104; yyDo(yy, yy_3_array_item, yy->__begin, yy->__end); } l105:; yyprintf((stderr, " ok %s @ %s\n", "array_item", yy->__buf+yy->__pos)); return 1; l104:; yy->__pos= yypos0; yy->__thunkpos= yythunkpos0; yyprintf((stderr, " fail %s @ %s\n", "array_item", yy->__buf+yy->__pos)); return 0; } YY_RULE(int) yy_array(yycontext *yy) { int yypos0= yy->__pos, yythunkpos0= yy->__thunkpos; yyprintf((stderr, "%s\n", "array")); yyDo(yy, yy_1_array, yy->__begin, yy->__end); if (!yymatchChar(yy, '[')) goto l110; if (!yy_spaces(yy)) goto l110; l111:; { int yypos112= yy->__pos, yythunkpos112= yy->__thunkpos; if (!yy_array_item(yy)) goto l112; { int yypos113= yy->__pos, yythunkpos113= yy->__thunkpos; if (!yymatchChar(yy, ',')) goto l113; if (!yy_spaces(yy)) goto l113; goto l114; l113:; yy->__pos= yypos113; yy->__thunkpos= yythunkpos113; } l114:; goto l111; l112:; yy->__pos= yypos112; yy->__thunkpos= yythunkpos112; } if (!yymatchChar(yy, ']')) goto l110; if (!yy_spaces(yy)) goto l110; yyDo(yy, yy_2_array, yy->__begin, yy->__end); yyprintf((stderr, " ok %s @ %s\n", "array", yy->__buf+yy->__pos)); return 1; l110:; yy->__pos= yypos0; yy->__thunkpos= yythunkpos0; yyprintf((stderr, " fail %s @ %s\n", "array", yy->__buf+yy->__pos)); return 0; } YY_RULE(int) yy_identifier(yycontext *yy) { int yypos0= yy->__pos, yythunkpos0= yy->__thunkpos; yyprintf((stderr, "%s\n", "identifier")); yyText(yy, yy->__begin, yy->__end); { #define yytext yy->__text #define yyleng yy->__textlen if (!(YY_BEGIN)) goto l115; #undef yytext #undef yyleng } if (!yymatchClass(yy, (unsigned char *)"\000\000\000\000\000\000\000\000\376\377\377\207\376\377\377\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l115; l116:; { int yypos117= yy->__pos, yythunkpos117= yy->__thunkpos; if (!yymatchClass(yy, (unsigned char *)"\000\000\000\000\000\040\377\003\376\377\377\207\376\377\377\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l117; goto l116; l117:; yy->__pos= yypos117; yy->__thunkpos= yythunkpos117; } yyText(yy, yy->__begin, yy->__end); { #define yytext yy->__text #define yyleng yy->__textlen if (!(YY_END)) goto l115; #undef yytext #undef yyleng } if (!yy_spaces(yy)) goto l115; yyDo(yy, yy_1_identifier, yy->__begin, yy->__end); yyprintf((stderr, " ok %s @ %s\n", "identifier", yy->__buf+yy->__pos)); return 1; l115:; yy->__pos= yypos0; yy->__thunkpos= yythunkpos0; yyprintf((stderr, " fail %s @ %s\n", "identifier", yy->__buf+yy->__pos)); return 0; } YY_RULE(int) yy_expr(yycontext *yy) { int yypos0= yy->__pos, yythunkpos0= yy->__thunkpos; yyprintf((stderr, "%s\n", "expr")); { int yypos119= yy->__pos, yythunkpos119= yy->__thunkpos; if (!yymatchChar(yy, '(')) goto l120; if (!yy_spaces(yy)) goto l120; if (!yy_expr(yy)) goto l120; if (!yymatchChar(yy, ')')) goto l120; if (!yy_spaces(yy)) goto l120; goto l119; l120:; yy->__pos= yypos119; yy->__thunkpos= yythunkpos119; if (!yy_expr0(yy)) goto l121; if (!yymatchChar(yy, '~')) goto l121; if (!yy_spaces(yy)) goto l121; if (!yy_expr(yy)) goto l121; yyDo(yy, yy_1_expr, yy->__begin, yy->__end); goto l119; l121:; yy->__pos= yypos119; yy->__thunkpos= yythunkpos119; if (!yy_expr0(yy)) goto l118; } l119:; yyprintf((stderr, " ok %s @ %s\n", "expr", yy->__buf+yy->__pos)); return 1; l118:; yy->__pos= yypos0; yy->__thunkpos= yythunkpos0; yyprintf((stderr, " fail %s @ %s\n", "expr", yy->__buf+yy->__pos)); return 0; } YY_RULE(int) yy_lvalue(yycontext *yy) { int yypos0= yy->__pos, yythunkpos0= yy->__thunkpos; yyprintf((stderr, "%s\n", "lvalue")); if (!yy_identifier(yy)) goto l122; yyDo(yy, yy_1_lvalue, yy->__begin, yy->__end); l123:; { int yypos124= yy->__pos, yythunkpos124= yy->__thunkpos; { int yypos125= yy->__pos, yythunkpos125= yy->__thunkpos; if (!yymatchChar(yy, '.')) goto l126; if (!yy_spaces(yy)) goto l126; if (!yy_identifier(yy)) goto l126; goto l125; l126:; yy->__pos= yypos125; yy->__thunkpos= yythunkpos125; if (!yymatchChar(yy, '[')) goto l124; if (!yy_spaces(yy)) goto l124; if (!yy_expr(yy)) goto l124; if (!yymatchChar(yy, ']')) goto l124; if (!yy_spaces(yy)) goto l124; } l125:; yyDo(yy, yy_2_lvalue, yy->__begin, yy->__end); goto l123; l124:; yy->__pos= yypos124; yy->__thunkpos= yythunkpos124; } yyprintf((stderr, " ok %s @ %s\n", "lvalue", yy->__buf+yy->__pos)); return 1; l122:; yy->__pos= yypos0; yy->__thunkpos= yythunkpos0; yyprintf((stderr, " fail %s @ %s\n", "lvalue", yy->__buf+yy->__pos)); return 0; } YY_RULE(int) yy_string(yycontext *yy) { int yypos0= yy->__pos, yythunkpos0= yy->__thunkpos; yyprintf((stderr, "%s\n", "string")); if (!yy_string1(yy)) goto l127; yyDo(yy, yy_1_string, yy->__begin, yy->__end); yyprintf((stderr, " ok %s @ %s\n", "string", yy->__buf+yy->__pos)); return 1; l127:; yy->__pos= yypos0; yy->__thunkpos= yythunkpos0; yyprintf((stderr, " fail %s @ %s\n", "string", yy->__buf+yy->__pos)); return 0; } YY_RULE(int) yy_end_of_file(yycontext *yy) { int yypos0= yy->__pos, yythunkpos0= yy->__thunkpos; yyprintf((stderr, "%s\n", "end_of_file")); { int yypos129= yy->__pos, yythunkpos129= yy->__thunkpos; if (!yymatchDot(yy)) goto l129; goto l128; l129:; yy->__pos= yypos129; yy->__thunkpos= yythunkpos129; } yyprintf((stderr, " ok %s @ %s\n", "end_of_file", yy->__buf+yy->__pos)); return 1; l128:; yy->__pos= yypos0; yy->__thunkpos= yythunkpos0; yyprintf((stderr, " fail %s @ %s\n", "end_of_file", yy->__buf+yy->__pos)); return 0; } YY_RULE(int) yy_config(yycontext *yy) { int yypos0= yy->__pos, yythunkpos0= yy->__thunkpos; yyprintf((stderr, "%s\n", "config")); if (!yy_lvalue(yy)) goto l130; if (!yymatchChar(yy, '=')) goto l130; if (!yy_spaces(yy)) goto l130; if (!yy_expr(yy)) goto l130; yyDo(yy, yy_1_config, yy->__begin, yy->__end); yyprintf((stderr, " ok %s @ %s\n", "config", yy->__buf+yy->__pos)); return 1; l130:; yy->__pos= yypos0; yy->__thunkpos= yythunkpos0; yyprintf((stderr, " fail %s @ %s\n", "config", yy->__buf+yy->__pos)); return 0; } YY_RULE(int) yy_include(yycontext *yy) { int yypos0= yy->__pos, yythunkpos0= yy->__thunkpos; yyprintf((stderr, "%s\n", "include")); if (!yymatchString(yy, "include")) goto l131; if (!yy_spaces(yy)) goto l131; if (!yy_string(yy)) goto l131; yyDo(yy, yy_1_include, yy->__begin, yy->__end); yyprintf((stderr, " ok %s @ %s\n", "include", yy->__buf+yy->__pos)); return 1; l131:; yy->__pos= yypos0; yy->__thunkpos= yythunkpos0; yyprintf((stderr, " fail %s @ %s\n", "include", yy->__buf+yy->__pos)); return 0; } YY_RULE(int) yy_spaces(yycontext *yy) { yyprintf((stderr, "%s\n", "spaces")); l133:; { int yypos134= yy->__pos, yythunkpos134= yy->__thunkpos; { int yypos135= yy->__pos, yythunkpos135= yy->__thunkpos; if (!yy_space(yy)) goto l136; goto l135; l136:; yy->__pos= yypos135; yy->__thunkpos= yythunkpos135; if (!yy_comment(yy)) goto l134; } l135:; goto l133; l134:; yy->__pos= yypos134; yy->__thunkpos= yythunkpos134; } yyprintf((stderr, " ok %s @ %s\n", "spaces", yy->__buf+yy->__pos)); return 1; } YY_RULE(int) yy_configs(yycontext *yy) { int yypos0= yy->__pos, yythunkpos0= yy->__thunkpos; yyprintf((stderr, "%s\n", "configs")); if (!yy_spaces(yy)) goto l137; l138:; { int yypos139= yy->__pos, yythunkpos139= yy->__thunkpos; { int yypos140= yy->__pos, yythunkpos140= yy->__thunkpos; if (!yy_include(yy)) goto l141; yyText(yy, yy->__begin, yy->__end); { #define yytext yy->__text #define yyleng yy->__textlen if (!(YYACCEPT)) goto l141; #undef yytext #undef yyleng } goto l140; l141:; yy->__pos= yypos140; yy->__thunkpos= yythunkpos140; if (!yy_config(yy)) goto l139; yyText(yy, yy->__begin, yy->__end); { #define yytext yy->__text #define yyleng yy->__textlen if (!(YYACCEPT)) goto l139; #undef yytext #undef yyleng } } l140:; goto l138; l139:; yy->__pos= yypos139; yy->__thunkpos= yythunkpos139; } if (!yy_end_of_file(yy)) goto l137; yyprintf((stderr, " ok %s @ %s\n", "configs", yy->__buf+yy->__pos)); return 1; l137:; yy->__pos= yypos0; yy->__thunkpos= yythunkpos0; yyprintf((stderr, " fail %s @ %s\n", "configs", yy->__buf+yy->__pos)); return 0; } #ifndef YY_PART typedef int (*yyrule)(yycontext *yy); YY_PARSE(int) YYPARSEFROM(YY_CTX_PARAM_ yyrule yystart) { int yyok; if (!yyctx->__buflen) { yyctx->__buflen= YY_BUFFER_SIZE; yyctx->__buf= (char *)YY_MALLOC(yyctx, yyctx->__buflen); yyctx->__textlen= YY_BUFFER_SIZE; yyctx->__text= (char *)YY_MALLOC(yyctx, yyctx->__textlen); yyctx->__thunkslen= YY_STACK_SIZE; yyctx->__thunks= (yythunk *)YY_MALLOC(yyctx, sizeof(yythunk) * yyctx->__thunkslen); yyctx->__valslen= YY_STACK_SIZE; yyctx->__vals= (YYSTYPE *)YY_MALLOC(yyctx, sizeof(YYSTYPE) * yyctx->__valslen); yyctx->__begin= yyctx->__end= yyctx->__pos= yyctx->__limit= yyctx->__thunkpos= 0; } yyctx->__begin= yyctx->__end= yyctx->__pos; yyctx->__thunkpos= 0; yyctx->__val= yyctx->__vals; yyok= yystart(yyctx); if (yyok) yyDone(yyctx); yyCommit(yyctx); return yyok; } YY_PARSE(int) YYPARSE(YY_CTX_PARAM) { return YYPARSEFROM(YY_CTX_ARG_ yy_configs); } YY_PARSE(yycontext *) YYRELEASE(yycontext *yyctx) { if (yyctx->__buflen) { yyctx->__buflen= 0; YY_FREE(yyctx, yyctx->__buf); YY_FREE(yyctx, yyctx->__text); YY_FREE(yyctx, yyctx->__thunks); YY_FREE(yyctx, yyctx->__vals); } return yyctx; } #endif