tor-browser

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

installparse.y (2517B)


      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 /* yacc file for parsing PKCS #11 module installation instructions */
      6 /*------------------------ Definition Section ---------------------------*/
      7 
      8 %{ 
      9 #define yyparse Pk11Install_yyparse
     10 #define yylex Pk11Install_yylex
     11 #define yyerror Pk11Install_yyerror
     12 #define yychar Pk11Install_yychar
     13 #define yyval Pk11Install_yyval
     14 #define yylval Pk11Install_yylval
     15 #define yydebug Pk11Install_yydebug
     16 #define yynerrs Pk11Install_yynerrs
     17 #define yyerrflag Pk11Install_yyerrflag
     18 #define yyss Pk11Install_yyss
     19 #define yyssp Pk11Install_yyssp
     20 #define yyvs Pk11Install_yyvs
     21 #define yyvsp Pk11Install_yyvsp
     22 #define yylhs Pk11Install_yylhs
     23 #define yylen Pk11Install_yylen
     24 #define yydefred Pk11Install_yydefred
     25 #define yydgoto Pk11Install_yydgoto
     26 #define yysindex Pk11Install_yysindex
     27 #define yyrindex Pk11Install_yyrindex
     28 #define yygindex Pk11Install_yygindex
     29 #define yytable Pk11Install_yytable
     30 #define yycheck Pk11Install_yycheck
     31 #define yyname Pk11Install_yyname
     32 #define yyrule Pk11Install_yyrule
     33 
     34 /* C Stuff */
     35 #include "install-ds.h"
     36 #include <prprf.h>
     37 
     38 #define YYSTYPE Pk11Install_Pointer
     39 extern char *Pk11Install_yytext;
     40 char *Pk11Install_yyerrstr=NULL;
     41 
     42 %}
     43 
     44 /* Tokens */
     45 %token OPENBRACE
     46 %token CLOSEBRACE
     47 %token STRING
     48 %start toplist
     49 
     50 %%
     51 
     52 /*--------------------------- Productions -------------------------------*/
     53 
     54 toplist		: valuelist	
     55 {
     56 	Pk11Install_valueList = $1.list;
     57 }
     58 
     59 valuelist	: value valuelist
     60 { 
     61 	Pk11Install_ValueList_AddItem($2.list,$1.value);
     62 	$$.list = $2.list; 
     63 }
     64 |
     65 { 
     66 	$$.list = Pk11Install_ValueList_new(); 
     67 };
     68 
     69 value		: key_value_pair
     70 {
     71 	$$.value= Pk11Install_Value_new(PAIR_VALUE,$1);
     72 }
     73 | STRING
     74 {
     75 	$$.value= Pk11Install_Value_new(STRING_VALUE, $1);
     76 };
     77 
     78 key_value_pair	: key OPENBRACE valuelist CLOSEBRACE 
     79 {
     80 	$$.pair = Pk11Install_Pair_new($1.string,$3.list);
     81 };
     82 
     83 key			: STRING
     84 {
     85 	$$.string = $1.string;
     86 };
     87 
     88 %%
     89 /*----------------------- Program Section --------------------------------*/
     90 
     91 /*************************************************************************/
     92 void
     93 Pk11Install_yyerror(char *message)
     94 {
     95 	char *tmp;
     96 	if(Pk11Install_yyerrstr) {
     97 		tmp=PR_smprintf("%sline %d: %s\n", Pk11Install_yyerrstr,
     98 			Pk11Install_yylinenum, message);
     99 		PR_smprintf_free(Pk11Install_yyerrstr);
    100 	} else {
    101 		tmp = PR_smprintf("line %d: %s\n", Pk11Install_yylinenum, message);
    102 	}
    103 	Pk11Install_yyerrstr=tmp;
    104 }