security/nss/cmd/modutil/installparse.c

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/security/nss/cmd/modutil/installparse.c	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,433 @@
     1.4 +/* This Source Code Form is subject to the terms of the Mozilla Public
     1.5 + * License, v. 2.0. If a copy of the MPL was not distributed with this
     1.6 + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     1.7 +
     1.8 +#ifndef lint
     1.9 +char yysccsid[] = "@(#)yaccpar	1.4 (Berkeley) 02/25/90";
    1.10 +#endif
    1.11 +#line 37 "installparse.y"
    1.12 + 
    1.13 +#define yyparse Pk11Install_yyparse
    1.14 +#define yylex Pk11Install_yylex
    1.15 +#define yyerror Pk11Install_yyerror
    1.16 +#define yychar Pk11Install_yychar
    1.17 +#define yyval Pk11Install_yyval
    1.18 +#define yylval Pk11Install_yylval
    1.19 +#define yydebug Pk11Install_yydebug
    1.20 +#define yynerrs Pk11Install_yynerrs
    1.21 +#define yyerrflag Pk11Install_yyerrflag
    1.22 +#define yyss Pk11Install_yyss
    1.23 +#define yyssp Pk11Install_yyssp
    1.24 +#define yyvs Pk11Install_yyvs
    1.25 +#define yyvsp Pk11Install_yyvsp
    1.26 +#define yylhs Pk11Install_yylhs
    1.27 +#define yylen Pk11Install_yylen
    1.28 +#define yydefred Pk11Install_yydefred
    1.29 +#define yydgoto Pk11Install_yydgoto
    1.30 +#define yysindex Pk11Install_yysindex
    1.31 +#define yyrindex Pk11Install_yyrindex
    1.32 +#define yygindex Pk11Install_yygindex
    1.33 +#define yytable Pk11Install_yytable
    1.34 +#define yycheck Pk11Install_yycheck
    1.35 +#define yyname Pk11Install_yyname
    1.36 +#define yyrule Pk11Install_yyrule
    1.37 +
    1.38 +/* C Stuff */
    1.39 +#include "install-ds.h"
    1.40 +#include <prprf.h>
    1.41 +
    1.42 +#define YYSTYPE Pk11Install_Pointer
    1.43 +extern char *Pk11Install_yytext;
    1.44 +char *Pk11Install_yyerrstr=NULL;
    1.45 +
    1.46 +#line 40 "ytab.c"
    1.47 +#define OPENBRACE 257
    1.48 +#define CLOSEBRACE 258
    1.49 +#define STRING 259
    1.50 +#define YYERRCODE 256
    1.51 +short yylhs[] = {                                        -1,
    1.52 +    0,    1,    1,    2,    2,    3,    4,
    1.53 +};
    1.54 +short yylen[] = {                                         2,
    1.55 +    1,    2,    0,    1,    1,    4,    1,
    1.56 +};
    1.57 +short yydefred[] = {                                      0,
    1.58 +    0,    0,    1,    0,    4,    0,    2,    0,    0,    6,
    1.59 +};
    1.60 +short yydgoto[] = {                                       2,
    1.61 +    3,    4,    5,    6,
    1.62 +};
    1.63 +short yysindex[] = {                                   -257,
    1.64 +    0,    0,    0, -257,    0, -252,    0, -257, -251,    0,
    1.65 +};
    1.66 +short yyrindex[] = {                                      6,
    1.67 +    1,    0,    0,    3,    0,    0,    0, -250,    0,    0,
    1.68 +};
    1.69 +short yygindex[] = {                                      0,
    1.70 +   -4,    0,    0,    0,
    1.71 +};
    1.72 +#define YYTABLESIZE 261
    1.73 +short yytable[] = {                                       7,
    1.74 +    5,    1,    3,    9,    8,    3,   10,    3,    0,    0,
    1.75 +    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    1.76 +    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    1.77 +    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    1.78 +    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    1.79 +    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    1.80 +    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    1.81 +    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    1.82 +    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    1.83 +    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    1.84 +    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    1.85 +    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    1.86 +    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    1.87 +    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    1.88 +    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    1.89 +    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    1.90 +    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    1.91 +    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    1.92 +    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    1.93 +    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    1.94 +    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    1.95 +    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    1.96 +    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    1.97 +    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    1.98 +    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    1.99 +    0,    0,    0,    0,    0,    0,    0,    7,    5,    5,
   1.100 +    3,
   1.101 +};
   1.102 +short yycheck[] = {                                       4,
   1.103 +    0,  259,    0,    8,  257,    0,  258,  258,   -1,   -1,
   1.104 +   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   1.105 +   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   1.106 +   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   1.107 +   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   1.108 +   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   1.109 +   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   1.110 +   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   1.111 +   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   1.112 +   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   1.113 +   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   1.114 +   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   1.115 +   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   1.116 +   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   1.117 +   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   1.118 +   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   1.119 +   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   1.120 +   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   1.121 +   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   1.122 +   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   1.123 +   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   1.124 +   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   1.125 +   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   1.126 +   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   1.127 +   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   1.128 +   -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,  258,  259,
   1.129 +  258,
   1.130 +};
   1.131 +#define YYFINAL 2
   1.132 +#ifndef YYDEBUG
   1.133 +#define YYDEBUG 0
   1.134 +#endif
   1.135 +#define YYMAXTOKEN 259
   1.136 +#if YYDEBUG
   1.137 +char *yyname[] = {
   1.138 +"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,
   1.139 +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,
   1.140 +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,
   1.141 +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,
   1.142 +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,
   1.143 +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,
   1.144 +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",
   1.145 +};
   1.146 +char *yyrule[] = {
   1.147 +"$accept : toplist",
   1.148 +"toplist : valuelist",
   1.149 +"valuelist : value valuelist",
   1.150 +"valuelist :",
   1.151 +"value : key_value_pair",
   1.152 +"value : STRING",
   1.153 +"key_value_pair : key OPENBRACE valuelist CLOSEBRACE",
   1.154 +"key : STRING",
   1.155 +};
   1.156 +#endif
   1.157 +#ifndef YYSTYPE
   1.158 +typedef int YYSTYPE;
   1.159 +#endif
   1.160 +#define yyclearin (yychar=(-1))
   1.161 +#define yyerrok (yyerrflag=0)
   1.162 +#ifndef YYSTACKSIZE
   1.163 +#ifdef YYMAXDEPTH
   1.164 +#define YYSTACKSIZE YYMAXDEPTH
   1.165 +#else
   1.166 +#define YYSTACKSIZE 300
   1.167 +#endif
   1.168 +#endif
   1.169 +int yydebug;
   1.170 +int yynerrs;
   1.171 +int yyerrflag;
   1.172 +int yychar;
   1.173 +short *yyssp;
   1.174 +YYSTYPE *yyvsp;
   1.175 +YYSTYPE yyval;
   1.176 +YYSTYPE yylval;
   1.177 +#define yystacksize YYSTACKSIZE
   1.178 +short yyss[YYSTACKSIZE];
   1.179 +YYSTYPE yyvs[YYSTACKSIZE];
   1.180 +#line 118 "installparse.y"
   1.181 +/*----------------------- Program Section --------------------------------*/
   1.182 +
   1.183 +/*************************************************************************/
   1.184 +void
   1.185 +Pk11Install_yyerror(char *message)
   1.186 +{
   1.187 +	char *tmp;
   1.188 +	if(Pk11Install_yyerrstr) {
   1.189 +		tmp=PR_smprintf("%sline %d: %s\n", Pk11Install_yyerrstr,
   1.190 +			Pk11Install_yylinenum, message);
   1.191 +		PR_smprintf_free(Pk11Install_yyerrstr);
   1.192 +	} else {
   1.193 +		tmp = PR_smprintf("line %d: %s\n", Pk11Install_yylinenum, message);
   1.194 +	}
   1.195 +	Pk11Install_yyerrstr=tmp;
   1.196 +}
   1.197 +#line 191 "ytab.c"
   1.198 +#define YYABORT goto yyabort
   1.199 +#define YYACCEPT goto yyaccept
   1.200 +#define YYERROR goto yyerrlab
   1.201 +int
   1.202 +yyparse()
   1.203 +{
   1.204 +    register int yym, yyn, yystate;
   1.205 +#if YYDEBUG
   1.206 +    register char *yys;
   1.207 +    extern char *getenv();
   1.208 +
   1.209 +    if (yys = getenv("YYDEBUG"))
   1.210 +    {
   1.211 +        yyn = *yys;
   1.212 +        if (yyn >= '0' && yyn <= '9')
   1.213 +            yydebug = yyn - '0';
   1.214 +    }
   1.215 +#endif
   1.216 +
   1.217 +    yynerrs = 0;
   1.218 +    yyerrflag = 0;
   1.219 +    yychar = (-1);
   1.220 +
   1.221 +    yyssp = yyss;
   1.222 +    yyvsp = yyvs;
   1.223 +    *yyssp = yystate = 0;
   1.224 +
   1.225 +yyloop:
   1.226 +    if (yyn = yydefred[yystate]) goto yyreduce;
   1.227 +    if (yychar < 0)
   1.228 +    {
   1.229 +        if ((yychar = yylex()) < 0) yychar = 0;
   1.230 +#if YYDEBUG
   1.231 +        if (yydebug)
   1.232 +        {
   1.233 +            yys = 0;
   1.234 +            if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
   1.235 +            if (!yys) yys = "illegal-symbol";
   1.236 +            printf("yydebug: state %d, reading %d (%s)\n", yystate,
   1.237 +                    yychar, yys);
   1.238 +        }
   1.239 +#endif
   1.240 +    }
   1.241 +    if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&
   1.242 +            yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
   1.243 +    {
   1.244 +#if YYDEBUG
   1.245 +        if (yydebug)
   1.246 +            printf("yydebug: state %d, shifting to state %d\n",
   1.247 +                    yystate, yytable[yyn]);
   1.248 +#endif
   1.249 +        if (yyssp >= yyss + yystacksize - 1)
   1.250 +        {
   1.251 +            goto yyoverflow;
   1.252 +        }
   1.253 +        *++yyssp = yystate = yytable[yyn];
   1.254 +        *++yyvsp = yylval;
   1.255 +        yychar = (-1);
   1.256 +        if (yyerrflag > 0)  --yyerrflag;
   1.257 +        goto yyloop;
   1.258 +    }
   1.259 +    if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&
   1.260 +            yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
   1.261 +    {
   1.262 +        yyn = yytable[yyn];
   1.263 +        goto yyreduce;
   1.264 +    }
   1.265 +    if (yyerrflag) goto yyinrecovery;
   1.266 +#ifdef lint
   1.267 +    goto yynewerror;
   1.268 +yynewerror:
   1.269 +#endif
   1.270 +    yyerror("syntax error");
   1.271 +#ifdef lint
   1.272 +    goto yyerrlab;
   1.273 +yyerrlab:
   1.274 +#endif
   1.275 +    ++yynerrs;
   1.276 +yyinrecovery:
   1.277 +    if (yyerrflag < 3)
   1.278 +    {
   1.279 +        yyerrflag = 3;
   1.280 +        for (;;)
   1.281 +        {
   1.282 +            if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 &&
   1.283 +                    yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)
   1.284 +            {
   1.285 +#if YYDEBUG
   1.286 +                if (yydebug)
   1.287 +                    printf("yydebug: state %d, error recovery shifting\
   1.288 + to state %d\n", *yyssp, yytable[yyn]);
   1.289 +#endif
   1.290 +                if (yyssp >= yyss + yystacksize - 1)
   1.291 +                {
   1.292 +                    goto yyoverflow;
   1.293 +                }
   1.294 +                *++yyssp = yystate = yytable[yyn];
   1.295 +                *++yyvsp = yylval;
   1.296 +                goto yyloop;
   1.297 +            }
   1.298 +            else
   1.299 +            {
   1.300 +#if YYDEBUG
   1.301 +                if (yydebug)
   1.302 +                    printf("yydebug: error recovery discarding state %d\n",
   1.303 +                            *yyssp);
   1.304 +#endif
   1.305 +                if (yyssp <= yyss) goto yyabort;
   1.306 +                --yyssp;
   1.307 +                --yyvsp;
   1.308 +            }
   1.309 +        }
   1.310 +    }
   1.311 +    else
   1.312 +    {
   1.313 +        if (yychar == 0) goto yyabort;
   1.314 +#if YYDEBUG
   1.315 +        if (yydebug)
   1.316 +        {
   1.317 +            yys = 0;
   1.318 +            if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
   1.319 +            if (!yys) yys = "illegal-symbol";
   1.320 +            printf("yydebug: state %d, error recovery discards token %d (%s)\n",
   1.321 +                    yystate, yychar, yys);
   1.322 +        }
   1.323 +#endif
   1.324 +        yychar = (-1);
   1.325 +        goto yyloop;
   1.326 +    }
   1.327 +yyreduce:
   1.328 +#if YYDEBUG
   1.329 +    if (yydebug)
   1.330 +        printf("yydebug: state %d, reducing by rule %d (%s)\n",
   1.331 +                yystate, yyn, yyrule[yyn]);
   1.332 +#endif
   1.333 +    yym = yylen[yyn];
   1.334 +    yyval = yyvsp[1-yym];
   1.335 +    switch (yyn)
   1.336 +    {
   1.337 +case 1:
   1.338 +#line 84 "installparse.y"
   1.339 +{
   1.340 +	Pk11Install_valueList = yyvsp[0].list;
   1.341 +}
   1.342 +break;
   1.343 +case 2:
   1.344 +#line 89 "installparse.y"
   1.345 +{ 
   1.346 +	Pk11Install_ValueList_AddItem(yyvsp[0].list,yyvsp[-1].value);
   1.347 +	yyval .list = yyvsp[0].list; 
   1.348 +}
   1.349 +break;
   1.350 +case 3:
   1.351 +#line 94 "installparse.y"
   1.352 +{ 
   1.353 +	yyval .list = Pk11Install_ValueList_new(); 
   1.354 +}
   1.355 +break;
   1.356 +case 4:
   1.357 +#line 99 "installparse.y"
   1.358 +{
   1.359 +	yyval .value= Pk11Install_Value_new(PAIR_VALUE,yyvsp[0]);
   1.360 +}
   1.361 +break;
   1.362 +case 5:
   1.363 +#line 103 "installparse.y"
   1.364 +{
   1.365 +	yyval .value= Pk11Install_Value_new(STRING_VALUE, yyvsp[0]);
   1.366 +}
   1.367 +break;
   1.368 +case 6:
   1.369 +#line 108 "installparse.y"
   1.370 +{
   1.371 +	yyval .pair = Pk11Install_Pair_new(yyvsp[-3].string,yyvsp[-1].list);
   1.372 +}
   1.373 +break;
   1.374 +case 7:
   1.375 +#line 113 "installparse.y"
   1.376 +{
   1.377 +	yyval .string = yyvsp[0].string;
   1.378 +}
   1.379 +break;
   1.380 +#line 374 "ytab.c"
   1.381 +    }
   1.382 +    yyssp -= yym;
   1.383 +    yystate = *yyssp;
   1.384 +    yyvsp -= yym;
   1.385 +    yym = yylhs[yyn];
   1.386 +    if (yystate == 0 && yym == 0)
   1.387 +    {
   1.388 +#ifdef YYDEBUG
   1.389 +        if (yydebug)
   1.390 +            printf("yydebug: after reduction, shifting from state 0 to\
   1.391 + state %d\n", YYFINAL);
   1.392 +#endif
   1.393 +        yystate = YYFINAL;
   1.394 +        *++yyssp = YYFINAL;
   1.395 +        *++yyvsp = yyval;
   1.396 +        if (yychar < 0)
   1.397 +        {
   1.398 +            if ((yychar = yylex()) < 0) yychar = 0;
   1.399 +#if YYDEBUG
   1.400 +            if (yydebug)
   1.401 +            {
   1.402 +                yys = 0;
   1.403 +                if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
   1.404 +                if (!yys) yys = "illegal-symbol";
   1.405 +                printf("yydebug: state %d, reading %d (%s)\n",
   1.406 +                        YYFINAL, yychar, yys);
   1.407 +            }
   1.408 +#endif
   1.409 +        }
   1.410 +        if (yychar == 0) goto yyaccept;
   1.411 +        goto yyloop;
   1.412 +    }
   1.413 +    if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
   1.414 +            yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
   1.415 +        yystate = yytable[yyn];
   1.416 +    else
   1.417 +        yystate = yydgoto[yym];
   1.418 +#ifdef YYDEBUG
   1.419 +    if (yydebug)
   1.420 +        printf("yydebug: after reduction, shifting from state %d \
   1.421 +to state %d\n", *yyssp, yystate);
   1.422 +#endif
   1.423 +    if (yyssp >= yyss + yystacksize - 1)
   1.424 +    {
   1.425 +        goto yyoverflow;
   1.426 +    }
   1.427 +    *++yyssp = yystate;
   1.428 +    *++yyvsp = yyval;
   1.429 +    goto yyloop;
   1.430 +yyoverflow:
   1.431 +    yyerror("yacc stack overflow");
   1.432 +yyabort:
   1.433 +    return (1);
   1.434 +yyaccept:
   1.435 +    return (0);
   1.436 +}

mercurial