|
Packit |
40b132 |
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
Packit |
40b132 |
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
Packit |
40b132 |
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
Packit |
40b132 |
|
|
Packit |
40b132 |
/* yacc file for parsing PKCS #11 module installation instructions */
|
|
Packit |
40b132 |
/*------------------------ Definition Section ---------------------------*/
|
|
Packit |
40b132 |
|
|
Packit |
40b132 |
%{
|
|
Packit |
40b132 |
#define yyparse Pk11Install_yyparse
|
|
Packit |
40b132 |
#define yylex Pk11Install_yylex
|
|
Packit |
40b132 |
#define yyerror Pk11Install_yyerror
|
|
Packit |
40b132 |
#define yychar Pk11Install_yychar
|
|
Packit |
40b132 |
#define yyval Pk11Install_yyval
|
|
Packit |
40b132 |
#define yylval Pk11Install_yylval
|
|
Packit |
40b132 |
#define yydebug Pk11Install_yydebug
|
|
Packit |
40b132 |
#define yynerrs Pk11Install_yynerrs
|
|
Packit |
40b132 |
#define yyerrflag Pk11Install_yyerrflag
|
|
Packit |
40b132 |
#define yyss Pk11Install_yyss
|
|
Packit |
40b132 |
#define yyssp Pk11Install_yyssp
|
|
Packit |
40b132 |
#define yyvs Pk11Install_yyvs
|
|
Packit |
40b132 |
#define yyvsp Pk11Install_yyvsp
|
|
Packit |
40b132 |
#define yylhs Pk11Install_yylhs
|
|
Packit |
40b132 |
#define yylen Pk11Install_yylen
|
|
Packit |
40b132 |
#define yydefred Pk11Install_yydefred
|
|
Packit |
40b132 |
#define yydgoto Pk11Install_yydgoto
|
|
Packit |
40b132 |
#define yysindex Pk11Install_yysindex
|
|
Packit |
40b132 |
#define yyrindex Pk11Install_yyrindex
|
|
Packit |
40b132 |
#define yygindex Pk11Install_yygindex
|
|
Packit |
40b132 |
#define yytable Pk11Install_yytable
|
|
Packit |
40b132 |
#define yycheck Pk11Install_yycheck
|
|
Packit |
40b132 |
#define yyname Pk11Install_yyname
|
|
Packit |
40b132 |
#define yyrule Pk11Install_yyrule
|
|
Packit |
40b132 |
|
|
Packit |
40b132 |
/* C Stuff */
|
|
Packit |
40b132 |
#include "install-ds.h"
|
|
Packit |
40b132 |
#include <prprf.h>
|
|
Packit |
40b132 |
|
|
Packit |
40b132 |
#define YYSTYPE Pk11Install_Pointer
|
|
Packit |
40b132 |
extern char *Pk11Install_yytext;
|
|
Packit |
40b132 |
char *Pk11Install_yyerrstr=NULL;
|
|
Packit |
40b132 |
|
|
Packit |
40b132 |
%}
|
|
Packit |
40b132 |
|
|
Packit |
40b132 |
/* Tokens */
|
|
Packit |
40b132 |
%token OPENBRACE
|
|
Packit |
40b132 |
%token CLOSEBRACE
|
|
Packit |
40b132 |
%token STRING
|
|
Packit |
40b132 |
%start toplist
|
|
Packit |
40b132 |
|
|
Packit |
40b132 |
%%
|
|
Packit |
40b132 |
|
|
Packit |
40b132 |
/*--------------------------- Productions -------------------------------*/
|
|
Packit |
40b132 |
|
|
Packit |
40b132 |
toplist : valuelist
|
|
Packit |
40b132 |
{
|
|
Packit |
40b132 |
Pk11Install_valueList = $1.list;
|
|
Packit |
40b132 |
}
|
|
Packit |
40b132 |
|
|
Packit |
40b132 |
valuelist : value valuelist
|
|
Packit |
40b132 |
{
|
|
Packit |
40b132 |
Pk11Install_ValueList_AddItem($2.list,$1.value);
|
|
Packit |
40b132 |
$$.list = $2.list;
|
|
Packit |
40b132 |
}
|
|
Packit |
40b132 |
|
|
|
Packit |
40b132 |
{
|
|
Packit |
40b132 |
$$.list = Pk11Install_ValueList_new();
|
|
Packit |
40b132 |
};
|
|
Packit |
40b132 |
|
|
Packit |
40b132 |
value : key_value_pair
|
|
Packit |
40b132 |
{
|
|
Packit |
40b132 |
$$.value= Pk11Install_Value_new(PAIR_VALUE,$1);
|
|
Packit |
40b132 |
}
|
|
Packit |
40b132 |
| STRING
|
|
Packit |
40b132 |
{
|
|
Packit |
40b132 |
$$.value= Pk11Install_Value_new(STRING_VALUE, $1);
|
|
Packit |
40b132 |
};
|
|
Packit |
40b132 |
|
|
Packit |
40b132 |
key_value_pair : key OPENBRACE valuelist CLOSEBRACE
|
|
Packit |
40b132 |
{
|
|
Packit |
40b132 |
$$.pair = Pk11Install_Pair_new($1.string,$3.list);
|
|
Packit |
40b132 |
};
|
|
Packit |
40b132 |
|
|
Packit |
40b132 |
key : STRING
|
|
Packit |
40b132 |
{
|
|
Packit |
40b132 |
$$.string = $1.string;
|
|
Packit |
40b132 |
};
|
|
Packit |
40b132 |
|
|
Packit |
40b132 |
%%
|
|
Packit |
40b132 |
/*----------------------- Program Section --------------------------------*/
|
|
Packit |
40b132 |
|
|
Packit |
40b132 |
/*************************************************************************/
|
|
Packit |
40b132 |
void
|
|
Packit |
40b132 |
Pk11Install_yyerror(char *message)
|
|
Packit |
40b132 |
{
|
|
Packit |
40b132 |
char *tmp;
|
|
Packit |
40b132 |
if(Pk11Install_yyerrstr) {
|
|
Packit |
40b132 |
tmp=PR_smprintf("%sline %d: %s\n", Pk11Install_yyerrstr,
|
|
Packit |
40b132 |
Pk11Install_yylinenum, message);
|
|
Packit |
40b132 |
PR_smprintf_free(Pk11Install_yyerrstr);
|
|
Packit |
40b132 |
} else {
|
|
Packit |
40b132 |
tmp = PR_smprintf("line %d: %s\n", Pk11Install_yylinenum, message);
|
|
Packit |
40b132 |
}
|
|
Packit |
40b132 |
Pk11Install_yyerrstr=tmp;
|
|
Packit |
40b132 |
}
|