tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

installparse.c (12353B)


      1 /* This Source Code Form is subject to the terms of the Mozilla Public
      2 * License, v. 2.0. If a copy of the MPL was not distributed with this
      3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
      4 
      5 #ifndef lint
      6 char yysccsid[] = "@(#)yaccpar	1.4 (Berkeley) 02/25/90";
      7 #endif
      8 #line 37 "installparse.y"
      9 
     10 #define yyparse Pk11Install_yyparse
     11 #define yylex Pk11Install_yylex
     12 #define yyerror Pk11Install_yyerror
     13 #define yychar Pk11Install_yychar
     14 #define yyval Pk11Install_yyval
     15 #define yylval Pk11Install_yylval
     16 #define yydebug Pk11Install_yydebug
     17 #define yynerrs Pk11Install_yynerrs
     18 #define yyerrflag Pk11Install_yyerrflag
     19 #define yyss Pk11Install_yyss
     20 #define yyssp Pk11Install_yyssp
     21 #define yyvs Pk11Install_yyvs
     22 #define yyvsp Pk11Install_yyvsp
     23 #define yylhs Pk11Install_yylhs
     24 #define yylen Pk11Install_yylen
     25 #define yydefred Pk11Install_yydefred
     26 #define yydgoto Pk11Install_yydgoto
     27 #define yysindex Pk11Install_yysindex
     28 #define yyrindex Pk11Install_yyrindex
     29 #define yygindex Pk11Install_yygindex
     30 #define yytable Pk11Install_yytable
     31 #define yycheck Pk11Install_yycheck
     32 #define yyname Pk11Install_yyname
     33 #define yyrule Pk11Install_yyrule
     34 
     35 /* C Stuff */
     36 #include "install-ds.h"
     37 #include <prprf.h>
     38 
     39 #define YYSTYPE Pk11Install_Pointer
     40 extern char *Pk11Install_yytext;
     41 char *Pk11Install_yyerrstr = NULL;
     42 
     43 #line 40 "ytab.c"
     44 #define OPENBRACE 257
     45 #define CLOSEBRACE 258
     46 #define STRING 259
     47 #define YYERRCODE 256
     48 /* clang-format on */
     49 short yylhs[] = {
     50    -1,
     51    0,
     52    1,
     53    1,
     54    2,
     55    2,
     56    3,
     57    4
     58 };
     59 short yylen[] = {
     60    2,
     61    1,
     62    2,
     63    0,
     64    1,
     65    1,
     66    4,
     67    1
     68 };
     69 short yydefred[] = {
     70    0,
     71    0,
     72    0,
     73    1,
     74    0,
     75    4,
     76    0,
     77    2,
     78    0,
     79    0,
     80    6
     81 };
     82 short yydgoto[] = {
     83    2,
     84    3,
     85    4,
     86    5,
     87    6
     88 };
     89 short yysindex[] = {
     90    -257,
     91    0,
     92    0,
     93    0,
     94    -257,
     95    0,
     96    -252,
     97    0,
     98    -257,
     99    -251,
    100    0
    101 };
    102 short yyrindex[] = {
    103    6,
    104    1,
    105    0,
    106    0,
    107    3,
    108    0,
    109    0,
    110    0,
    111    -250,
    112    0,
    113    0
    114 };
    115 short yygindex[] = {
    116    0,
    117    -4,
    118    0,
    119    0,
    120    0
    121 };
    122 #define YYTABLESIZE 261
    123 short yytable[] = {
    124    7,
    125    5, 1, 3, 9, 8, 3, 10, 3, 0, 0,
    126    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    127    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    128    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    129    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    130    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    131    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    132    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    133    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    134    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    135    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    136    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    137    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    138    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    139    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    140    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    141    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    142    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    143    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    144    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    145    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    146    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    147    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    148    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    149    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    150    0, 0, 0, 0, 0, 0, 0, 7, 5, 5,
    151    3
    152 };
    153 short yycheck[] = {
    154    4,
    155    0, 259, 0, 8, 257, 0, 258, 258, -1, -1,
    156    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
    157    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
    158    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
    159    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
    160    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
    161    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
    162    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
    163    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
    164    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
    165    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
    166    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
    167    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
    168    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
    169    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
    170    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
    171    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
    172    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
    173    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
    174    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
    175    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
    176    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
    177    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
    178    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
    179    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
    180    -1, -1, -1, -1, -1, -1, -1, 257, 258, 259,
    181    258
    182 };
    183 /* clang-format on */
    184 #define YYFINAL 2
    185 #ifndef YYDEBUG
    186 #define YYDEBUG 0
    187 #endif
    188 #define YYMAXTOKEN 259
    189 #if YYDEBUG
    190 char *yyname[] = {
    191    "end-of-file", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    192    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    193    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    194    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    195    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    196    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    197    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "OPENBRACE", "CLOSEBRACE", "STRING"
    198 };
    199 char *yyrule[] = {
    200    "$accept : toplist",
    201    "toplist : valuelist",
    202    "valuelist : value valuelist",
    203    "valuelist :",
    204    "value : key_value_pair",
    205    "value : STRING",
    206    "key_value_pair : key OPENBRACE valuelist CLOSEBRACE",
    207    "key : STRING",
    208 };
    209 #endif
    210 #ifndef YYSTYPE
    211 typedef int YYSTYPE;
    212 #endif
    213 #define yyclearin (yychar = (-1))
    214 #define yyerrok (yyerrflag = 0)
    215 #ifndef YYSTACKSIZE
    216 #ifdef YYMAXDEPTH
    217 #define YYSTACKSIZE YYMAXDEPTH
    218 #else
    219 #define YYSTACKSIZE 300
    220 #endif
    221 #endif
    222 int yydebug;
    223 int yynerrs;
    224 int yyerrflag;
    225 int yychar;
    226 short *yyssp;
    227 YYSTYPE *yyvsp;
    228 YYSTYPE yyval;
    229 YYSTYPE yylval;
    230 #define yystacksize YYSTACKSIZE
    231 short yyss[YYSTACKSIZE];
    232 YYSTYPE yyvs[YYSTACKSIZE];
    233 #line 118 "installparse.y"
    234 /*----------------------- Program Section --------------------------------*/
    235 
    236 /*************************************************************************/
    237 void
    238 Pk11Install_yyerror(char *message)
    239 {
    240    char *tmp;
    241    if (Pk11Install_yyerrstr) {
    242        tmp = PR_smprintf("%sline %d: %s\n", Pk11Install_yyerrstr,
    243                          Pk11Install_yylinenum, message);
    244        PR_smprintf_free(Pk11Install_yyerrstr);
    245    } else {
    246        tmp = PR_smprintf("line %d: %s\n", Pk11Install_yylinenum, message);
    247    }
    248    Pk11Install_yyerrstr = tmp;
    249 }
    250 #line 191 "ytab.c"
    251 #define YYABORT goto yyabort
    252 #define YYACCEPT goto yyaccept
    253 #define YYERROR goto yyerrlab
    254 int
    255 yyparse()
    256 {
    257    register int yym, yyn, yystate;
    258 #if YYDEBUG
    259    register char *yys;
    260    extern char *PR_GetEnvSecure();
    261 
    262    if ((yys = PR_GetEnvSecure("YYDEBUG")) != NULL) {
    263        yyn = *yys;
    264        if (yyn >= '0' && yyn <= '9')
    265            yydebug = yyn - '0';
    266    }
    267 #endif
    268 
    269    yynerrs = 0;
    270    yyerrflag = 0;
    271    yychar = (-1);
    272 
    273    yyssp = yyss;
    274    yyvsp = yyvs;
    275    *yyssp = yystate = 0;
    276 
    277 yyloop:
    278    if ((yyn = yydefred[yystate]) != 0)
    279        goto yyreduce;
    280    if (yychar < 0) {
    281        if ((yychar = yylex()) < 0)
    282            yychar = 0;
    283 #if YYDEBUG
    284        if (yydebug) {
    285            yys = 0;
    286            if (yychar <= YYMAXTOKEN)
    287                yys = yyname[yychar];
    288            if (!yys)
    289                yys = "illegal-symbol";
    290            printf("yydebug: state %d, reading %d (%s)\n", yystate,
    291                   yychar, yys);
    292        }
    293 #endif
    294    }
    295    if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&
    296        yyn <= YYTABLESIZE && yycheck[yyn] == yychar) {
    297 #if YYDEBUG
    298        if (yydebug)
    299            printf("yydebug: state %d, shifting to state %d\n",
    300                   yystate, yytable[yyn]);
    301 #endif
    302        if (yyssp >= yyss + yystacksize - 1) {
    303            goto yyoverflow;
    304        }
    305        *++yyssp = yystate = yytable[yyn];
    306        *++yyvsp = yylval;
    307        yychar = (-1);
    308        if (yyerrflag > 0)
    309            --yyerrflag;
    310        goto yyloop;
    311    }
    312    if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&
    313        yyn <= YYTABLESIZE && yycheck[yyn] == yychar) {
    314        yyn = yytable[yyn];
    315        goto yyreduce;
    316    }
    317    if (yyerrflag)
    318        goto yyinrecovery;
    319 #ifdef lint
    320    goto yynewerror;
    321 yynewerror:
    322 #endif
    323    yyerror("syntax error");
    324 #ifdef lint
    325    goto yyerrlab;
    326 yyerrlab:
    327 #endif
    328    ++yynerrs;
    329 yyinrecovery:
    330    if (yyerrflag < 3) {
    331        yyerrflag = 3;
    332        for (;;) {
    333            if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 &&
    334                yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE) {
    335 #if YYDEBUG
    336                if (yydebug)
    337                    printf("yydebug: state %d, error recovery shifting\
    338 to state %d\n",
    339                           *yyssp, yytable[yyn]);
    340 #endif
    341                if (yyssp >= yyss + yystacksize - 1) {
    342                    goto yyoverflow;
    343                }
    344                *++yyssp = yystate = yytable[yyn];
    345                *++yyvsp = yylval;
    346                goto yyloop;
    347            } else {
    348 #if YYDEBUG
    349                if (yydebug)
    350                    printf("yydebug: error recovery discarding state %d\n",
    351                           *yyssp);
    352 #endif
    353                if (yyssp <= yyss)
    354                    goto yyabort;
    355                --yyssp;
    356                --yyvsp;
    357            }
    358        }
    359    } else {
    360        if (yychar == 0)
    361            goto yyabort;
    362 #if YYDEBUG
    363        if (yydebug) {
    364            yys = 0;
    365            if (yychar <= YYMAXTOKEN)
    366                yys = yyname[yychar];
    367            if (!yys)
    368                yys = "illegal-symbol";
    369            printf("yydebug: state %d, error recovery discards token %d (%s)\n",
    370                   yystate, yychar, yys);
    371        }
    372 #endif
    373        yychar = (-1);
    374        goto yyloop;
    375    }
    376 yyreduce:
    377 #if YYDEBUG
    378    if (yydebug)
    379        printf("yydebug: state %d, reducing by rule %d (%s)\n",
    380               yystate, yyn, yyrule[yyn]);
    381 #endif
    382    yym = yylen[yyn];
    383    yyval = yyvsp[1 - yym];
    384    switch (yyn) {
    385        case 1:
    386 #line 84 "installparse.y"
    387        {
    388            Pk11Install_valueList = yyvsp[0].list;
    389        } break;
    390        case 2:
    391 #line 89 "installparse.y"
    392        {
    393            Pk11Install_ValueList_AddItem(yyvsp[0].list, yyvsp[-1].value);
    394            yyval.list = yyvsp[0].list;
    395        } break;
    396        case 3:
    397 #line 94 "installparse.y"
    398        {
    399            yyval.list = Pk11Install_ValueList_new();
    400        } break;
    401        case 4:
    402 #line 99 "installparse.y"
    403        {
    404            yyval.value = Pk11Install_Value_new(PAIR_VALUE, yyvsp[0]);
    405        } break;
    406        case 5:
    407 #line 103 "installparse.y"
    408        {
    409            yyval.value = Pk11Install_Value_new(STRING_VALUE, yyvsp[0]);
    410        } break;
    411        case 6:
    412 #line 108 "installparse.y"
    413        {
    414            yyval.pair = Pk11Install_Pair_new(yyvsp[-3].string, yyvsp[-1].list);
    415        } break;
    416        case 7:
    417 #line 113 "installparse.y"
    418        {
    419            yyval.string = yyvsp[0].string;
    420        } break;
    421 #line 374 "ytab.c"
    422    }
    423    yyssp -= yym;
    424    yystate = *yyssp;
    425    yyvsp -= yym;
    426    yym = yylhs[yyn];
    427    if (yystate == 0 && yym == 0) {
    428 #ifdef YYDEBUG
    429        if (yydebug)
    430            printf("yydebug: after reduction, shifting from state 0 to\
    431 state %d\n",
    432                   YYFINAL);
    433 #endif
    434        yystate = YYFINAL;
    435        *++yyssp = YYFINAL;
    436        *++yyvsp = yyval;
    437        if (yychar < 0) {
    438            if ((yychar = yylex()) < 0)
    439                yychar = 0;
    440 #if YYDEBUG
    441            if (yydebug) {
    442                yys = 0;
    443                if (yychar <= YYMAXTOKEN)
    444                    yys = yyname[yychar];
    445                if (!yys)
    446                    yys = "illegal-symbol";
    447                printf("yydebug: state %d, reading %d (%s)\n",
    448                       YYFINAL, yychar, yys);
    449            }
    450 #endif
    451        }
    452        if (yychar == 0)
    453            goto yyaccept;
    454        goto yyloop;
    455    }
    456    if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
    457        yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
    458        yystate = yytable[yyn];
    459    else
    460        yystate = yydgoto[yym];
    461 #ifdef YYDEBUG
    462    if (yydebug)
    463        printf("yydebug: after reduction, shifting from state %d \
    464 to state %d\n",
    465               *yyssp, yystate);
    466 #endif
    467    if (yyssp >= yyss + yystacksize - 1) {
    468        goto yyoverflow;
    469    }
    470    *++yyssp = yystate;
    471    *++yyvsp = yyval;
    472    goto yyloop;
    473 yyoverflow:
    474    yyerror("yacc stack overflow");
    475 yyabort:
    476    return (1);
    477 yyaccept:
    478    return (0);
    479 }