Back to index

lightning-sunbird  0.9+nobinonly
installparse.c
Go to the documentation of this file.
00001 #ifndef lint
00002 char yysccsid[] = "@(#)yaccpar     1.4 (Berkeley) 02/25/90";
00003 #endif
00004 #line 37 "installparse.y"
00005  
00006 #define yyparse Pk11Install_yyparse
00007 #define yylex Pk11Install_yylex
00008 #define yyerror Pk11Install_yyerror
00009 #define yychar Pk11Install_yychar
00010 #define yyval Pk11Install_yyval
00011 #define yylval Pk11Install_yylval
00012 #define yydebug Pk11Install_yydebug
00013 #define yynerrs Pk11Install_yynerrs
00014 #define yyerrflag Pk11Install_yyerrflag
00015 #define yyss Pk11Install_yyss
00016 #define yyssp Pk11Install_yyssp
00017 #define yyvs Pk11Install_yyvs
00018 #define yyvsp Pk11Install_yyvsp
00019 #define yylhs Pk11Install_yylhs
00020 #define yylen Pk11Install_yylen
00021 #define yydefred Pk11Install_yydefred
00022 #define yydgoto Pk11Install_yydgoto
00023 #define yysindex Pk11Install_yysindex
00024 #define yyrindex Pk11Install_yyrindex
00025 #define yygindex Pk11Install_yygindex
00026 #define yytable Pk11Install_yytable
00027 #define yycheck Pk11Install_yycheck
00028 #define yyname Pk11Install_yyname
00029 #define yyrule Pk11Install_yyrule
00030 
00031 /* C Stuff */
00032 #include "install-ds.h"
00033 #include <prprf.h>
00034 
00035 #define YYSTYPE Pk11Install_Pointer
00036 extern char *Pk11Install_yytext;
00037 char *Pk11Install_yyerrstr=NULL;
00038 
00039 #line 40 "ytab.c"
00040 #define OPENBRACE 257
00041 #define CLOSEBRACE 258
00042 #define STRING 259
00043 #define YYERRCODE 256
00044 short yylhs[] = {                                        -1,
00045     0,    1,    1,    2,    2,    3,    4,
00046 };
00047 short yylen[] = {                                         2,
00048     1,    2,    0,    1,    1,    4,    1,
00049 };
00050 short yydefred[] = {                                      0,
00051     0,    0,    1,    0,    4,    0,    2,    0,    0,    6,
00052 };
00053 short yydgoto[] = {                                       2,
00054     3,    4,    5,    6,
00055 };
00056 short yysindex[] = {                                   -257,
00057     0,    0,    0, -257,    0, -252,    0, -257, -251,    0,
00058 };
00059 short yyrindex[] = {                                      6,
00060     1,    0,    0,    3,    0,    0,    0, -250,    0,    0,
00061 };
00062 short yygindex[] = {                                      0,
00063    -4,    0,    0,    0,
00064 };
00065 #define YYTABLESIZE 261
00066 short yytable[] = {                                       7,
00067     5,    1,    3,    9,    8,    3,   10,    3,    0,    0,
00068     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00069     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00070     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00071     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00072     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00073     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00074     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00075     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00076     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00077     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00078     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00079     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00080     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00081     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00082     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00083     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00084     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00085     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00086     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00087     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00088     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00089     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00090     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00091     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00092     0,    0,    0,    0,    0,    0,    0,    7,    5,    5,
00093     3,
00094 };
00095 short yycheck[] = {                                       4,
00096     0,  259,    0,    8,  257,    0,  258,  258,   -1,   -1,
00097    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
00098    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
00099    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
00100    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
00101    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
00102    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
00103    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
00104    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
00105    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
00106    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
00107    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
00108    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
00109    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
00110    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
00111    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
00112    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
00113    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
00114    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
00115    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
00116    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
00117    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
00118    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
00119    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
00120    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
00121    -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,  258,  259,
00122   258,
00123 };
00124 #define YYFINAL 2
00125 #ifndef YYDEBUG
00126 #define YYDEBUG 0
00127 #endif
00128 #define YYMAXTOKEN 259
00129 #if YYDEBUG
00130 char *yyname[] = {
00131 "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,
00132 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,
00133 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,
00134 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,
00135 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,
00136 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,
00137 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",
00138 };
00139 char *yyrule[] = {
00140 "$accept : toplist",
00141 "toplist : valuelist",
00142 "valuelist : value valuelist",
00143 "valuelist :",
00144 "value : key_value_pair",
00145 "value : STRING",
00146 "key_value_pair : key OPENBRACE valuelist CLOSEBRACE",
00147 "key : STRING",
00148 };
00149 #endif
00150 #ifndef YYSTYPE
00151 typedef int YYSTYPE;
00152 #endif
00153 #define yyclearin (yychar=(-1))
00154 #define yyerrok (yyerrflag=0)
00155 #ifndef YYSTACKSIZE
00156 #ifdef YYMAXDEPTH
00157 #define YYSTACKSIZE YYMAXDEPTH
00158 #else
00159 #define YYSTACKSIZE 300
00160 #endif
00161 #endif
00162 int yydebug;
00163 int yynerrs;
00164 int yyerrflag;
00165 int yychar;
00166 short *yyssp;
00167 YYSTYPE *yyvsp;
00168 YYSTYPE yyval;
00169 YYSTYPE yylval;
00170 #define yystacksize YYSTACKSIZE
00171 short yyss[YYSTACKSIZE];
00172 YYSTYPE yyvs[YYSTACKSIZE];
00173 #line 118 "installparse.y"
00174 /*----------------------- Program Section --------------------------------*/
00175 
00176 /*************************************************************************/
00177 void
00178 Pk11Install_yyerror(char *message)
00179 {
00180        char *tmp;
00181        if(Pk11Install_yyerrstr) {
00182               tmp=PR_smprintf("%sline %d: %s\n", Pk11Install_yyerrstr,
00183                      Pk11Install_yylinenum, message);
00184               PR_smprintf_free(Pk11Install_yyerrstr);
00185        } else {
00186               tmp = PR_smprintf("line %d: %s\n", Pk11Install_yylinenum, message);
00187        }
00188        Pk11Install_yyerrstr=tmp;
00189 }
00190 #line 191 "ytab.c"
00191 #define YYABORT goto yyabort
00192 #define YYACCEPT goto yyaccept
00193 #define YYERROR goto yyerrlab
00194 int
00195 yyparse()
00196 {
00197     register int yym, yyn, yystate;
00198 #if YYDEBUG
00199     register char *yys;
00200     extern char *getenv();
00201 
00202     if (yys = getenv("YYDEBUG"))
00203     {
00204         yyn = *yys;
00205         if (yyn >= '0' && yyn <= '9')
00206             yydebug = yyn - '0';
00207     }
00208 #endif
00209 
00210     yynerrs = 0;
00211     yyerrflag = 0;
00212     yychar = (-1);
00213 
00214     yyssp = yyss;
00215     yyvsp = yyvs;
00216     *yyssp = yystate = 0;
00217 
00218 yyloop:
00219     if (yyn = yydefred[yystate]) goto yyreduce;
00220     if (yychar < 0)
00221     {
00222         if ((yychar = yylex()) < 0) yychar = 0;
00223 #if YYDEBUG
00224         if (yydebug)
00225         {
00226             yys = 0;
00227             if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
00228             if (!yys) yys = "illegal-symbol";
00229             printf("yydebug: state %d, reading %d (%s)\n", yystate,
00230                     yychar, yys);
00231         }
00232 #endif
00233     }
00234     if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&
00235             yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
00236     {
00237 #if YYDEBUG
00238         if (yydebug)
00239             printf("yydebug: state %d, shifting to state %d\n",
00240                     yystate, yytable[yyn]);
00241 #endif
00242         if (yyssp >= yyss + yystacksize - 1)
00243         {
00244             goto yyoverflow;
00245         }
00246         *++yyssp = yystate = yytable[yyn];
00247         *++yyvsp = yylval;
00248         yychar = (-1);
00249         if (yyerrflag > 0)  --yyerrflag;
00250         goto yyloop;
00251     }
00252     if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&
00253             yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
00254     {
00255         yyn = yytable[yyn];
00256         goto yyreduce;
00257     }
00258     if (yyerrflag) goto yyinrecovery;
00259 #ifdef lint
00260     goto yynewerror;
00261 yynewerror:
00262 #endif
00263     yyerror("syntax error");
00264 #ifdef lint
00265     goto yyerrlab;
00266 yyerrlab:
00267 #endif
00268     ++yynerrs;
00269 yyinrecovery:
00270     if (yyerrflag < 3)
00271     {
00272         yyerrflag = 3;
00273         for (;;)
00274         {
00275             if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 &&
00276                     yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)
00277             {
00278 #if YYDEBUG
00279                 if (yydebug)
00280                     printf("yydebug: state %d, error recovery shifting\
00281  to state %d\n", *yyssp, yytable[yyn]);
00282 #endif
00283                 if (yyssp >= yyss + yystacksize - 1)
00284                 {
00285                     goto yyoverflow;
00286                 }
00287                 *++yyssp = yystate = yytable[yyn];
00288                 *++yyvsp = yylval;
00289                 goto yyloop;
00290             }
00291             else
00292             {
00293 #if YYDEBUG
00294                 if (yydebug)
00295                     printf("yydebug: error recovery discarding state %d\n",
00296                             *yyssp);
00297 #endif
00298                 if (yyssp <= yyss) goto yyabort;
00299                 --yyssp;
00300                 --yyvsp;
00301             }
00302         }
00303     }
00304     else
00305     {
00306         if (yychar == 0) goto yyabort;
00307 #if YYDEBUG
00308         if (yydebug)
00309         {
00310             yys = 0;
00311             if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
00312             if (!yys) yys = "illegal-symbol";
00313             printf("yydebug: state %d, error recovery discards token %d (%s)\n",
00314                     yystate, yychar, yys);
00315         }
00316 #endif
00317         yychar = (-1);
00318         goto yyloop;
00319     }
00320 yyreduce:
00321 #if YYDEBUG
00322     if (yydebug)
00323         printf("yydebug: state %d, reducing by rule %d (%s)\n",
00324                 yystate, yyn, yyrule[yyn]);
00325 #endif
00326     yym = yylen[yyn];
00327     yyval = yyvsp[1-yym];
00328     switch (yyn)
00329     {
00330 case 1:
00331 #line 84 "installparse.y"
00332 {
00333        Pk11Install_valueList = yyvsp[0].list;
00334 }
00335 break;
00336 case 2:
00337 #line 89 "installparse.y"
00338 { 
00339        Pk11Install_ValueList_AddItem(yyvsp[0].list,yyvsp[-1].value);
00340        yyval .list = yyvsp[0].list; 
00341 }
00342 break;
00343 case 3:
00344 #line 94 "installparse.y"
00345 { 
00346        yyval .list = Pk11Install_ValueList_new(); 
00347 }
00348 break;
00349 case 4:
00350 #line 99 "installparse.y"
00351 {
00352        yyval .value= Pk11Install_Value_new(PAIR_VALUE,yyvsp[0]);
00353 }
00354 break;
00355 case 5:
00356 #line 103 "installparse.y"
00357 {
00358        yyval .value= Pk11Install_Value_new(STRING_VALUE, yyvsp[0]);
00359 }
00360 break;
00361 case 6:
00362 #line 108 "installparse.y"
00363 {
00364        yyval .pair = Pk11Install_Pair_new(yyvsp[-3].string,yyvsp[-1].list);
00365 }
00366 break;
00367 case 7:
00368 #line 113 "installparse.y"
00369 {
00370        yyval .string = yyvsp[0].string;
00371 }
00372 break;
00373 #line 374 "ytab.c"
00374     }
00375     yyssp -= yym;
00376     yystate = *yyssp;
00377     yyvsp -= yym;
00378     yym = yylhs[yyn];
00379     if (yystate == 0 && yym == 0)
00380     {
00381 #ifdef YYDEBUG
00382         if (yydebug)
00383             printf("yydebug: after reduction, shifting from state 0 to\
00384  state %d\n", YYFINAL);
00385 #endif
00386         yystate = YYFINAL;
00387         *++yyssp = YYFINAL;
00388         *++yyvsp = yyval;
00389         if (yychar < 0)
00390         {
00391             if ((yychar = yylex()) < 0) yychar = 0;
00392 #if YYDEBUG
00393             if (yydebug)
00394             {
00395                 yys = 0;
00396                 if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
00397                 if (!yys) yys = "illegal-symbol";
00398                 printf("yydebug: state %d, reading %d (%s)\n",
00399                         YYFINAL, yychar, yys);
00400             }
00401 #endif
00402         }
00403         if (yychar == 0) goto yyaccept;
00404         goto yyloop;
00405     }
00406     if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
00407             yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
00408         yystate = yytable[yyn];
00409     else
00410         yystate = yydgoto[yym];
00411 #ifdef YYDEBUG
00412     if (yydebug)
00413         printf("yydebug: after reduction, shifting from state %d \
00414 to state %d\n", *yyssp, yystate);
00415 #endif
00416     if (yyssp >= yyss + yystacksize - 1)
00417     {
00418         goto yyoverflow;
00419     }
00420     *++yyssp = yystate;
00421     *++yyvsp = yyval;
00422     goto yyloop;
00423 yyoverflow:
00424     yyerror("yacc stack overflow");
00425 yyabort:
00426     return (1);
00427 yyaccept:
00428     return (0);
00429 }