michael@0: /* This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: #ifndef lint michael@0: char yysccsid[] = "@(#)yaccpar 1.4 (Berkeley) 02/25/90"; michael@0: #endif michael@0: #line 37 "installparse.y" michael@0: michael@0: #define yyparse Pk11Install_yyparse michael@0: #define yylex Pk11Install_yylex michael@0: #define yyerror Pk11Install_yyerror michael@0: #define yychar Pk11Install_yychar michael@0: #define yyval Pk11Install_yyval michael@0: #define yylval Pk11Install_yylval michael@0: #define yydebug Pk11Install_yydebug michael@0: #define yynerrs Pk11Install_yynerrs michael@0: #define yyerrflag Pk11Install_yyerrflag michael@0: #define yyss Pk11Install_yyss michael@0: #define yyssp Pk11Install_yyssp michael@0: #define yyvs Pk11Install_yyvs michael@0: #define yyvsp Pk11Install_yyvsp michael@0: #define yylhs Pk11Install_yylhs michael@0: #define yylen Pk11Install_yylen michael@0: #define yydefred Pk11Install_yydefred michael@0: #define yydgoto Pk11Install_yydgoto michael@0: #define yysindex Pk11Install_yysindex michael@0: #define yyrindex Pk11Install_yyrindex michael@0: #define yygindex Pk11Install_yygindex michael@0: #define yytable Pk11Install_yytable michael@0: #define yycheck Pk11Install_yycheck michael@0: #define yyname Pk11Install_yyname michael@0: #define yyrule Pk11Install_yyrule michael@0: michael@0: /* C Stuff */ michael@0: #include "install-ds.h" michael@0: #include michael@0: michael@0: #define YYSTYPE Pk11Install_Pointer michael@0: extern char *Pk11Install_yytext; michael@0: char *Pk11Install_yyerrstr=NULL; michael@0: michael@0: #line 40 "ytab.c" michael@0: #define OPENBRACE 257 michael@0: #define CLOSEBRACE 258 michael@0: #define STRING 259 michael@0: #define YYERRCODE 256 michael@0: short yylhs[] = { -1, michael@0: 0, 1, 1, 2, 2, 3, 4, michael@0: }; michael@0: short yylen[] = { 2, michael@0: 1, 2, 0, 1, 1, 4, 1, michael@0: }; michael@0: short yydefred[] = { 0, michael@0: 0, 0, 1, 0, 4, 0, 2, 0, 0, 6, michael@0: }; michael@0: short yydgoto[] = { 2, michael@0: 3, 4, 5, 6, michael@0: }; michael@0: short yysindex[] = { -257, michael@0: 0, 0, 0, -257, 0, -252, 0, -257, -251, 0, michael@0: }; michael@0: short yyrindex[] = { 6, michael@0: 1, 0, 0, 3, 0, 0, 0, -250, 0, 0, michael@0: }; michael@0: short yygindex[] = { 0, michael@0: -4, 0, 0, 0, michael@0: }; michael@0: #define YYTABLESIZE 261 michael@0: short yytable[] = { 7, michael@0: 5, 1, 3, 9, 8, 3, 10, 3, 0, 0, michael@0: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, michael@0: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, michael@0: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, michael@0: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, michael@0: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, michael@0: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, michael@0: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, michael@0: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, michael@0: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, michael@0: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, michael@0: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, michael@0: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, michael@0: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, michael@0: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, michael@0: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, michael@0: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, michael@0: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, michael@0: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, michael@0: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, michael@0: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, michael@0: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, michael@0: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, michael@0: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, michael@0: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, michael@0: 0, 0, 0, 0, 0, 0, 0, 7, 5, 5, michael@0: 3, michael@0: }; michael@0: short yycheck[] = { 4, michael@0: 0, 259, 0, 8, 257, 0, 258, 258, -1, -1, michael@0: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, michael@0: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, michael@0: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, michael@0: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, michael@0: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, michael@0: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, michael@0: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, michael@0: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, michael@0: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, michael@0: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, michael@0: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, michael@0: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, michael@0: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, michael@0: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, michael@0: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, michael@0: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, michael@0: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, michael@0: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, michael@0: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, michael@0: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, michael@0: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, michael@0: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, michael@0: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, michael@0: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, michael@0: -1, -1, -1, -1, -1, -1, -1, 257, 258, 259, michael@0: 258, michael@0: }; michael@0: #define YYFINAL 2 michael@0: #ifndef YYDEBUG michael@0: #define YYDEBUG 0 michael@0: #endif michael@0: #define YYMAXTOKEN 259 michael@0: #if YYDEBUG michael@0: char *yyname[] = { michael@0: "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, michael@0: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, michael@0: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, michael@0: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, michael@0: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, michael@0: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, michael@0: 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", michael@0: }; michael@0: char *yyrule[] = { michael@0: "$accept : toplist", michael@0: "toplist : valuelist", michael@0: "valuelist : value valuelist", michael@0: "valuelist :", michael@0: "value : key_value_pair", michael@0: "value : STRING", michael@0: "key_value_pair : key OPENBRACE valuelist CLOSEBRACE", michael@0: "key : STRING", michael@0: }; michael@0: #endif michael@0: #ifndef YYSTYPE michael@0: typedef int YYSTYPE; michael@0: #endif michael@0: #define yyclearin (yychar=(-1)) michael@0: #define yyerrok (yyerrflag=0) michael@0: #ifndef YYSTACKSIZE michael@0: #ifdef YYMAXDEPTH michael@0: #define YYSTACKSIZE YYMAXDEPTH michael@0: #else michael@0: #define YYSTACKSIZE 300 michael@0: #endif michael@0: #endif michael@0: int yydebug; michael@0: int yynerrs; michael@0: int yyerrflag; michael@0: int yychar; michael@0: short *yyssp; michael@0: YYSTYPE *yyvsp; michael@0: YYSTYPE yyval; michael@0: YYSTYPE yylval; michael@0: #define yystacksize YYSTACKSIZE michael@0: short yyss[YYSTACKSIZE]; michael@0: YYSTYPE yyvs[YYSTACKSIZE]; michael@0: #line 118 "installparse.y" michael@0: /*----------------------- Program Section --------------------------------*/ michael@0: michael@0: /*************************************************************************/ michael@0: void michael@0: Pk11Install_yyerror(char *message) michael@0: { michael@0: char *tmp; michael@0: if(Pk11Install_yyerrstr) { michael@0: tmp=PR_smprintf("%sline %d: %s\n", Pk11Install_yyerrstr, michael@0: Pk11Install_yylinenum, message); michael@0: PR_smprintf_free(Pk11Install_yyerrstr); michael@0: } else { michael@0: tmp = PR_smprintf("line %d: %s\n", Pk11Install_yylinenum, message); michael@0: } michael@0: Pk11Install_yyerrstr=tmp; michael@0: } michael@0: #line 191 "ytab.c" michael@0: #define YYABORT goto yyabort michael@0: #define YYACCEPT goto yyaccept michael@0: #define YYERROR goto yyerrlab michael@0: int michael@0: yyparse() michael@0: { michael@0: register int yym, yyn, yystate; michael@0: #if YYDEBUG michael@0: register char *yys; michael@0: extern char *getenv(); michael@0: michael@0: if (yys = getenv("YYDEBUG")) michael@0: { michael@0: yyn = *yys; michael@0: if (yyn >= '0' && yyn <= '9') michael@0: yydebug = yyn - '0'; michael@0: } michael@0: #endif michael@0: michael@0: yynerrs = 0; michael@0: yyerrflag = 0; michael@0: yychar = (-1); michael@0: michael@0: yyssp = yyss; michael@0: yyvsp = yyvs; michael@0: *yyssp = yystate = 0; michael@0: michael@0: yyloop: michael@0: if (yyn = yydefred[yystate]) goto yyreduce; michael@0: if (yychar < 0) michael@0: { michael@0: if ((yychar = yylex()) < 0) yychar = 0; michael@0: #if YYDEBUG michael@0: if (yydebug) michael@0: { michael@0: yys = 0; michael@0: if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; michael@0: if (!yys) yys = "illegal-symbol"; michael@0: printf("yydebug: state %d, reading %d (%s)\n", yystate, michael@0: yychar, yys); michael@0: } michael@0: #endif michael@0: } michael@0: if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 && michael@0: yyn <= YYTABLESIZE && yycheck[yyn] == yychar) michael@0: { michael@0: #if YYDEBUG michael@0: if (yydebug) michael@0: printf("yydebug: state %d, shifting to state %d\n", michael@0: yystate, yytable[yyn]); michael@0: #endif michael@0: if (yyssp >= yyss + yystacksize - 1) michael@0: { michael@0: goto yyoverflow; michael@0: } michael@0: *++yyssp = yystate = yytable[yyn]; michael@0: *++yyvsp = yylval; michael@0: yychar = (-1); michael@0: if (yyerrflag > 0) --yyerrflag; michael@0: goto yyloop; michael@0: } michael@0: if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 && michael@0: yyn <= YYTABLESIZE && yycheck[yyn] == yychar) michael@0: { michael@0: yyn = yytable[yyn]; michael@0: goto yyreduce; michael@0: } michael@0: if (yyerrflag) goto yyinrecovery; michael@0: #ifdef lint michael@0: goto yynewerror; michael@0: yynewerror: michael@0: #endif michael@0: yyerror("syntax error"); michael@0: #ifdef lint michael@0: goto yyerrlab; michael@0: yyerrlab: michael@0: #endif michael@0: ++yynerrs; michael@0: yyinrecovery: michael@0: if (yyerrflag < 3) michael@0: { michael@0: yyerrflag = 3; michael@0: for (;;) michael@0: { michael@0: if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 && michael@0: yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE) michael@0: { michael@0: #if YYDEBUG michael@0: if (yydebug) michael@0: printf("yydebug: state %d, error recovery shifting\ michael@0: to state %d\n", *yyssp, yytable[yyn]); michael@0: #endif michael@0: if (yyssp >= yyss + yystacksize - 1) michael@0: { michael@0: goto yyoverflow; michael@0: } michael@0: *++yyssp = yystate = yytable[yyn]; michael@0: *++yyvsp = yylval; michael@0: goto yyloop; michael@0: } michael@0: else michael@0: { michael@0: #if YYDEBUG michael@0: if (yydebug) michael@0: printf("yydebug: error recovery discarding state %d\n", michael@0: *yyssp); michael@0: #endif michael@0: if (yyssp <= yyss) goto yyabort; michael@0: --yyssp; michael@0: --yyvsp; michael@0: } michael@0: } michael@0: } michael@0: else michael@0: { michael@0: if (yychar == 0) goto yyabort; michael@0: #if YYDEBUG michael@0: if (yydebug) michael@0: { michael@0: yys = 0; michael@0: if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; michael@0: if (!yys) yys = "illegal-symbol"; michael@0: printf("yydebug: state %d, error recovery discards token %d (%s)\n", michael@0: yystate, yychar, yys); michael@0: } michael@0: #endif michael@0: yychar = (-1); michael@0: goto yyloop; michael@0: } michael@0: yyreduce: michael@0: #if YYDEBUG michael@0: if (yydebug) michael@0: printf("yydebug: state %d, reducing by rule %d (%s)\n", michael@0: yystate, yyn, yyrule[yyn]); michael@0: #endif michael@0: yym = yylen[yyn]; michael@0: yyval = yyvsp[1-yym]; michael@0: switch (yyn) michael@0: { michael@0: case 1: michael@0: #line 84 "installparse.y" michael@0: { michael@0: Pk11Install_valueList = yyvsp[0].list; michael@0: } michael@0: break; michael@0: case 2: michael@0: #line 89 "installparse.y" michael@0: { michael@0: Pk11Install_ValueList_AddItem(yyvsp[0].list,yyvsp[-1].value); michael@0: yyval .list = yyvsp[0].list; michael@0: } michael@0: break; michael@0: case 3: michael@0: #line 94 "installparse.y" michael@0: { michael@0: yyval .list = Pk11Install_ValueList_new(); michael@0: } michael@0: break; michael@0: case 4: michael@0: #line 99 "installparse.y" michael@0: { michael@0: yyval .value= Pk11Install_Value_new(PAIR_VALUE,yyvsp[0]); michael@0: } michael@0: break; michael@0: case 5: michael@0: #line 103 "installparse.y" michael@0: { michael@0: yyval .value= Pk11Install_Value_new(STRING_VALUE, yyvsp[0]); michael@0: } michael@0: break; michael@0: case 6: michael@0: #line 108 "installparse.y" michael@0: { michael@0: yyval .pair = Pk11Install_Pair_new(yyvsp[-3].string,yyvsp[-1].list); michael@0: } michael@0: break; michael@0: case 7: michael@0: #line 113 "installparse.y" michael@0: { michael@0: yyval .string = yyvsp[0].string; michael@0: } michael@0: break; michael@0: #line 374 "ytab.c" michael@0: } michael@0: yyssp -= yym; michael@0: yystate = *yyssp; michael@0: yyvsp -= yym; michael@0: yym = yylhs[yyn]; michael@0: if (yystate == 0 && yym == 0) michael@0: { michael@0: #ifdef YYDEBUG michael@0: if (yydebug) michael@0: printf("yydebug: after reduction, shifting from state 0 to\ michael@0: state %d\n", YYFINAL); michael@0: #endif michael@0: yystate = YYFINAL; michael@0: *++yyssp = YYFINAL; michael@0: *++yyvsp = yyval; michael@0: if (yychar < 0) michael@0: { michael@0: if ((yychar = yylex()) < 0) yychar = 0; michael@0: #if YYDEBUG michael@0: if (yydebug) michael@0: { michael@0: yys = 0; michael@0: if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; michael@0: if (!yys) yys = "illegal-symbol"; michael@0: printf("yydebug: state %d, reading %d (%s)\n", michael@0: YYFINAL, yychar, yys); michael@0: } michael@0: #endif michael@0: } michael@0: if (yychar == 0) goto yyaccept; michael@0: goto yyloop; michael@0: } michael@0: if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 && michael@0: yyn <= YYTABLESIZE && yycheck[yyn] == yystate) michael@0: yystate = yytable[yyn]; michael@0: else michael@0: yystate = yydgoto[yym]; michael@0: #ifdef YYDEBUG michael@0: if (yydebug) michael@0: printf("yydebug: after reduction, shifting from state %d \ michael@0: to state %d\n", *yyssp, yystate); michael@0: #endif michael@0: if (yyssp >= yyss + yystacksize - 1) michael@0: { michael@0: goto yyoverflow; michael@0: } michael@0: *++yyssp = yystate; michael@0: *++yyvsp = yyval; michael@0: goto yyloop; michael@0: yyoverflow: michael@0: yyerror("yacc stack overflow"); michael@0: yyabort: michael@0: return (1); michael@0: yyaccept: michael@0: return (0); michael@0: }