@@ -544,10 +544,10 @@ static const yytype_int8 yytranslate[] =
544544/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
545545static const yytype_uint8 yyrline [] =
546546{
547- 0 , 87 , 87 , 88 , 89 , 92 , 95 , 96 , 97 , 98 ,
548- 102 , 105 , 106 , 109 , 112 , 113 , 116 , 117 , 120 , 121 ,
549- 126 , 128 , 132 , 133 , 137 , 138 , 141 , 144 , 147 , 148 ,
550- 149 , 150 , 151 , 152
547+ 0 , 90 , 90 , 91 , 92 , 95 , 98 , 99 , 100 , 101 ,
548+ 105 , 108 , 109 , 112 , 115 , 116 , 119 , 120 , 123 , 124 ,
549+ 129 , 131 , 135 , 136 , 140 , 141 , 144 , 147 , 150 , 151 ,
550+ 152 , 153 , 154 , 155
551551};
552552#endif
553553
@@ -909,6 +909,48 @@ yydestruct (const char *yymsg,
909909#line 910 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.c"
910910 break ;
911911
912+ case YYSYMBOL_alternate_list : /* alternate_list */
913+ #line 86 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.y"
914+ { jsgf_rhs_free (((* yyvaluep ).rhs )); }
915+ #line 916 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.c"
916+ break ;
917+
918+ case YYSYMBOL_rule_expansion : /* rule_expansion */
919+ #line 86 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.y"
920+ { jsgf_rhs_free (((* yyvaluep ).rhs )); }
921+ #line 922 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.c"
922+ break ;
923+
924+ case YYSYMBOL_tagged_rule_item : /* tagged_rule_item */
925+ #line 87 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.y"
926+ { jsgf_atom_free (((* yyvaluep ).atom )); }
927+ #line 928 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.c"
928+ break ;
929+
930+ case YYSYMBOL_rule_item : /* rule_item */
931+ #line 87 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.y"
932+ { jsgf_atom_free (((* yyvaluep ).atom )); }
933+ #line 934 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.c"
934+ break ;
935+
936+ case YYSYMBOL_rule_group : /* rule_group */
937+ #line 85 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.y"
938+ { jsgf_rule_free (((* yyvaluep ).rule )); }
939+ #line 940 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.c"
940+ break ;
941+
942+ case YYSYMBOL_rule_optional : /* rule_optional */
943+ #line 85 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.y"
944+ { jsgf_rule_free (((* yyvaluep ).rule )); }
945+ #line 946 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.c"
946+ break ;
947+
948+ case YYSYMBOL_rule_atom : /* rule_atom */
949+ #line 87 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.y"
950+ { jsgf_atom_free (((* yyvaluep ).atom )); }
951+ #line 952 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.c"
952+ break ;
953+
912954 default :
913955 break ;
914956 }
@@ -1180,145 +1222,145 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
11801222 switch (yyn )
11811223 {
11821224 case 5 : /* header: jsgf_header grammar_header */
1183- #line 92 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.y"
1225+ #line 95 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.y"
11841226 { jsgf -> name = (yyvsp [0 ].name ); }
1185- #line 1186 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.c"
1227+ #line 1228 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.c"
11861228 break ;
11871229
11881230 case 7 : /* jsgf_header: HEADER TOKEN ';' */
1189- #line 96 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.y"
1231+ #line 99 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.y"
11901232 { jsgf -> version = (yyvsp [-1 ].name ); }
1191- #line 1192 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.c"
1233+ #line 1234 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.c"
11921234 break ;
11931235
11941236 case 8 : /* jsgf_header: HEADER TOKEN TOKEN ';' */
1195- #line 97 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.y"
1237+ #line 100 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.y"
11961238 { jsgf -> version = (yyvsp [-2 ].name ); jsgf -> charset = (yyvsp [-1 ].name ); }
1197- #line 1198 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.c"
1239+ #line 1240 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.c"
11981240 break ;
11991241
12001242 case 9 : /* jsgf_header: HEADER TOKEN TOKEN TOKEN ';' */
1201- #line 98 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.y"
1243+ #line 101 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.y"
12021244 { jsgf -> version = (yyvsp [-3 ].name ); jsgf -> charset = (yyvsp [-2 ].name );
12031245 jsgf -> locale = (yyvsp [-1 ].name ); }
1204- #line 1205 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.c"
1246+ #line 1247 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.c"
12051247 break ;
12061248
12071249 case 10 : /* grammar_header: GRAMMAR TOKEN ';' */
1208- #line 102 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.y"
1250+ #line 105 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.y"
12091251 { (yyval .name ) = (yyvsp [-1 ].name ); }
1210- #line 1211 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.c"
1252+ #line 1253 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.c"
12111253 break ;
12121254
12131255 case 13 : /* import_statement: IMPORT RULENAME ';' */
1214- #line 109 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.y"
1256+ #line 112 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.y"
12151257 { jsgf_import_rule (jsgf , (yyvsp [-1 ].name )); ckd_free ((yyvsp [-1 ].name )); }
1216- #line 1217 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.c"
1258+ #line 1259 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.c"
12171259 break ;
12181260
12191261 case 16 : /* rule: RULENAME '=' alternate_list ';' */
1220- #line 116 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.y"
1262+ #line 119 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.y"
12211263 { jsgf_define_rule (jsgf , (yyvsp [-3 ].name ), (yyvsp [-1 ].rhs ), 0 ); ckd_free ((yyvsp [-3 ].name )); }
1222- #line 1223 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.c"
1264+ #line 1265 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.c"
12231265 break ;
12241266
12251267 case 17 : /* rule: PUBLIC RULENAME '=' alternate_list ';' */
1226- #line 117 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.y"
1268+ #line 120 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.y"
12271269 { jsgf_define_rule (jsgf , (yyvsp [-3 ].name ), (yyvsp [-1 ].rhs ), 1 ); ckd_free ((yyvsp [-3 ].name )); }
1228- #line 1229 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.c"
1270+ #line 1271 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.c"
12291271 break ;
12301272
12311273 case 18 : /* alternate_list: rule_expansion */
1232- #line 120 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.y"
1274+ #line 123 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.y"
12331275 { (yyval .rhs ) = (yyvsp [0 ].rhs ); (yyval .rhs )-> atoms = glist_reverse ((yyval .rhs )-> atoms ); }
1234- #line 1235 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.c"
1276+ #line 1277 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.c"
12351277 break ;
12361278
12371279 case 19 : /* alternate_list: alternate_list '|' rule_expansion */
1238- #line 121 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.y"
1280+ #line 124 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.y"
12391281 { (yyval .rhs ) = (yyvsp [0 ].rhs );
12401282 (yyval .rhs )-> atoms = glist_reverse ((yyval .rhs )-> atoms );
12411283 (yyval .rhs )-> alt = (yyvsp [-2 ].rhs ); }
1242- #line 1243 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.c"
1284+ #line 1285 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.c"
12431285 break ;
12441286
12451287 case 20 : /* rule_expansion: tagged_rule_item */
1246- #line 126 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.y"
1288+ #line 129 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.y"
12471289 { (yyval .rhs ) = ckd_calloc (1 , sizeof (* (yyval .rhs )));
12481290 (yyval .rhs )-> atoms = glist_add_ptr ((yyval .rhs )-> atoms , (yyvsp [0 ].atom )); }
1249- #line 1250 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.c"
1291+ #line 1292 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.c"
12501292 break ;
12511293
12521294 case 21 : /* rule_expansion: rule_expansion tagged_rule_item */
1253- #line 128 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.y"
1295+ #line 131 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.y"
12541296 { (yyval .rhs ) = (yyvsp [-1 ].rhs );
12551297 (yyval .rhs )-> atoms = glist_add_ptr ((yyval .rhs )-> atoms , (yyvsp [0 ].atom )); }
1256- #line 1257 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.c"
1298+ #line 1299 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.c"
12571299 break ;
12581300
12591301 case 23 : /* tagged_rule_item: tagged_rule_item TAG */
1260- #line 133 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.y"
1302+ #line 136 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.y"
12611303 { (yyval .atom ) = (yyvsp [-1 ].atom );
12621304 (yyval .atom )-> tags = glist_add_ptr ((yyval .atom )-> tags , (yyvsp [0 ].name )); }
1263- #line 1264 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.c"
1305+ #line 1306 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.c"
12641306 break ;
12651307
12661308 case 25 : /* rule_item: WEIGHT rule_atom */
1267- #line 138 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.y"
1309+ #line 141 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.y"
12681310 { (yyval .atom ) = (yyvsp [0 ].atom ); (yyval .atom )-> weight = (yyvsp [-1 ].weight ); }
1269- #line 1270 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.c"
1311+ #line 1312 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.c"
12701312 break ;
12711313
12721314 case 26 : /* rule_group: '(' alternate_list ')' */
1273- #line 141 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.y"
1315+ #line 144 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.y"
12741316 { (yyval .rule ) = jsgf_define_rule (jsgf , NULL , (yyvsp [-1 ].rhs ), 0 ); }
1275- #line 1276 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.c"
1317+ #line 1318 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.c"
12761318 break ;
12771319
12781320 case 27 : /* rule_optional: '[' alternate_list ']' */
1279- #line 144 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.y"
1321+ #line 147 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.y"
12801322 { (yyval .rule ) = jsgf_optional_new (jsgf , (yyvsp [-1 ].rhs )); }
1281- #line 1282 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.c"
1323+ #line 1324 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.c"
12821324 break ;
12831325
12841326 case 28 : /* rule_atom: TOKEN */
1285- #line 147 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.y"
1327+ #line 150 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.y"
12861328 { (yyval .atom ) = jsgf_atom_new ((yyvsp [0 ].name ), 1.0 ); ckd_free ((yyvsp [0 ].name )); }
1287- #line 1288 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.c"
1329+ #line 1330 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.c"
12881330 break ;
12891331
12901332 case 29 : /* rule_atom: RULENAME */
1291- #line 148 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.y"
1333+ #line 151 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.y"
12921334 { (yyval .atom ) = jsgf_atom_new ((yyvsp [0 ].name ), 1.0 ); ckd_free ((yyvsp [0 ].name )); }
1293- #line 1294 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.c"
1335+ #line 1336 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.c"
12941336 break ;
12951337
12961338 case 30 : /* rule_atom: rule_group */
1297- #line 149 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.y"
1339+ #line 152 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.y"
12981340 { (yyval .atom ) = jsgf_atom_new ((yyvsp [0 ].rule )-> name , 1.0 ); }
1299- #line 1300 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.c"
1341+ #line 1342 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.c"
13001342 break ;
13011343
13021344 case 31 : /* rule_atom: rule_optional */
1303- #line 150 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.y"
1345+ #line 153 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.y"
13041346 { (yyval .atom ) = jsgf_atom_new ((yyvsp [0 ].rule )-> name , 1.0 ); }
1305- #line 1306 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.c"
1347+ #line 1348 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.c"
13061348 break ;
13071349
13081350 case 32 : /* rule_atom: rule_atom '*' */
1309- #line 151 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.y"
1351+ #line 154 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.y"
13101352 { (yyval .atom ) = jsgf_kleene_new (jsgf , (yyvsp [-1 ].atom ), 0 ); }
1311- #line 1312 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.c"
1353+ #line 1354 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.c"
13121354 break ;
13131355
13141356 case 33 : /* rule_atom: rule_atom '+' */
1315- #line 152 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.y"
1357+ #line 155 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.y"
13161358 { (yyval .atom ) = jsgf_kleene_new (jsgf , (yyvsp [-1 ].atom ), 1 ); }
1317- #line 1318 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.c"
1359+ #line 1360 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.c"
13181360 break ;
13191361
13201362
1321- #line 1322 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.c"
1363+ #line 1364 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.c"
13221364
13231365 default : break ;
13241366 }
@@ -1511,7 +1553,7 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
15111553 return yyresult ;
15121554}
15131555
1514- #line 155 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.y"
1556+ #line 158 "/home/dhd/work/pocketsphinx/src/lm/jsgf_parser.y"
15151557
15161558
15171559void
0 commit comments