Put a PYACC.SymbolRef inside PYACC.Production.SymbolRef to do the heavy lifting
authorNick Downing <downing.nick@gmail.com>
Sun, 29 Jul 2018 01:28:25 +0000 (11:28 +1000)
committerNick Downing <downing.nick@gmail.com>
Sun, 29 Jul 2018 01:28:25 +0000 (11:28 +1000)
src/parse-gram.c
src/parse-gram.h
src/parse-gram.y

index f06880a..14661b0 100644 (file)
@@ -129,7 +129,7 @@ extern int gram_debug;
     param_parse  = 1 << 1,
     param_both   = param_lex | param_parse
   } param_type;
-#line 872 "src/parse-gram.y" /* yacc.c:355  */
+#line 873 "src/parse-gram.y" /* yacc.c:355  */
 #include "muscle-tab.h"
 
 #line 136 "src/parse-gram.c" /* yacc.c:355  */
@@ -223,7 +223,7 @@ named_ref *named_ref;
 param_type param;
 #line 549 "src/parse-gram.y" /* yacc.c:355  */
 code_props_type code_type;
-#line 874 "src/parse-gram.y" /* yacc.c:355  */
+#line 875 "src/parse-gram.y" /* yacc.c:355  */
 
   struct
   {
@@ -652,10 +652,10 @@ static const yytype_uint16 yyrline[] =
      616,   634,   635,   636,   637,   641,   642,   647,   649,   654,
      661,   674,   679,   687,   688,   692,   696,   700,   701,   702,
      707,   712,   719,   728,   736,   750,   751,   760,   761,   767,
-     768,   769,   776,   776,   789,   793,   797,   802,   814,   819,
-     828,   830,   835,   842,   848,   856,   857,   867,   868,   893,
-     894,   895,   896,   908,   910,   919,   924,   925,   930,   938,
-     939
+     768,   769,   776,   776,   789,   793,   797,   802,   814,   820,
+     829,   831,   836,   843,   849,   857,   858,   868,   869,   894,
+     895,   896,   897,   909,   911,   920,   925,   926,   931,   939,
+     940
 };
 #endif
 
@@ -1140,7 +1140,7 @@ yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvalue
         break;
 
     case 89: /* value  */
-#line 883 "src/parse-gram.y" /* yacc.c:684  */
+#line 884 "src/parse-gram.y" /* yacc.c:684  */
       {
   switch (((*yyvaluep).value).kind)
     {
@@ -2825,13 +2825,14 @@ yyreduce:
 #line 815 "src/parse-gram.y" /* yacc.c:1648  */
     { grammar_current_rule_symbol_append ((yyvsp[-1].symbol), (yylsp[-1]), (yyvsp[0].named_ref)); /*}*/
  insert_after(2, "</PYACC_Production_SymbolRef>");
- insert_before(1, "<PYACC_Production_SymbolRef>");
+ insert_after(1, "</PYACC_SymbolRef>");
+ insert_before(1, "<PYACC_Production_SymbolRef><PYACC_SymbolRef>");
  }
-#line 2820 "src/parse-gram.c" /* yacc.c:1648  */
+#line 2821 "src/parse-gram.c" /* yacc.c:1648  */
     break;
 
   case 89:
-#line 820 "src/parse-gram.y" /* yacc.c:1648  */
+#line 821 "src/parse-gram.y" /* yacc.c:1648  */
     { code_piece_append("<PYACC_BracedCode>"); grammar_current_rule_action_append ((yyvsp[-1].code), (yylsp[-1]), (yyvsp[0].named_ref), false); /*}*/
  code_piece_append("</PYACC_BracedCode>");
  code_piece_pack();
@@ -2840,129 +2841,129 @@ yyreduce:
  insert_after(2, "</PYACC_Production_Action>");
  insert_before(1, "<PYACC_Production_Action>");
  }
-#line 2833 "src/parse-gram.c" /* yacc.c:1648  */
+#line 2834 "src/parse-gram.c" /* yacc.c:1648  */
     break;
 
   case 90:
-#line 829 "src/parse-gram.y" /* yacc.c:1648  */
+#line 830 "src/parse-gram.y" /* yacc.c:1648  */
     { grammar_current_rule_action_append ((yyvsp[0].code), (yylsp[0]), NULL, true); }
-#line 2839 "src/parse-gram.c" /* yacc.c:1648  */
+#line 2840 "src/parse-gram.c" /* yacc.c:1648  */
     break;
 
   case 91:
-#line 831 "src/parse-gram.y" /* yacc.c:1648  */
+#line 832 "src/parse-gram.y" /* yacc.c:1648  */
     { grammar_current_rule_empty_set ((yylsp[0])); /*}*/
  insert_after(1, "</PYACC_Production_Empty>");
  insert_before(1, "<PYACC_Production_Empty>");
  }
-#line 2848 "src/parse-gram.c" /* yacc.c:1648  */
+#line 2849 "src/parse-gram.c" /* yacc.c:1648  */
     break;
 
   case 92:
-#line 836 "src/parse-gram.y" /* yacc.c:1648  */
+#line 837 "src/parse-gram.y" /* yacc.c:1648  */
     { grammar_current_rule_prec_set ((yyvsp[0].symbol), (yylsp[0])); /*}*/
  insert_after(2, "</PYACC_Production_Prec>");
  insert_after(2, "</PYACC_SymbolRef>");
  insert_before(2, "<PYACC_SymbolRef>");
  insert_before(1, "<PYACC_Production_Prec>");
  }
-#line 2859 "src/parse-gram.c" /* yacc.c:1648  */
+#line 2860 "src/parse-gram.c" /* yacc.c:1648  */
     break;
 
   case 93:
-#line 843 "src/parse-gram.y" /* yacc.c:1648  */
+#line 844 "src/parse-gram.y" /* yacc.c:1648  */
     { grammar_current_rule_dprec_set ((yyvsp[0].integer), (yylsp[0])); /*}*/
  insert_after(2, "</PYACC_Production_DPrec>");
  sprintf(gram_piece_temp, "<PYACC_Production_DPrec value=\"%d\">", (yyvsp[0].integer));
  insert_before(1, gram_piece_temp);
  }
-#line 2869 "src/parse-gram.c" /* yacc.c:1648  */
+#line 2870 "src/parse-gram.c" /* yacc.c:1648  */
     break;
 
   case 94:
-#line 849 "src/parse-gram.y" /* yacc.c:1648  */
+#line 850 "src/parse-gram.y" /* yacc.c:1648  */
     { grammar_current_rule_merge_set ((yyvsp[0].uniqstr), (yylsp[0])); /*}*/
  insert_after(2, "</PYACC_Production_Merge>");
  insert_before(1, "<PYACC_Production_Merge>");
  }
-#line 2878 "src/parse-gram.c" /* yacc.c:1648  */
+#line 2879 "src/parse-gram.c" /* yacc.c:1648  */
     break;
 
   case 95:
-#line 856 "src/parse-gram.y" /* yacc.c:1648  */
+#line 857 "src/parse-gram.y" /* yacc.c:1648  */
     { (yyval.named_ref) = 0; }
-#line 2884 "src/parse-gram.c" /* yacc.c:1648  */
+#line 2885 "src/parse-gram.c" /* yacc.c:1648  */
     break;
 
   case 96:
-#line 857 "src/parse-gram.y" /* yacc.c:1648  */
+#line 858 "src/parse-gram.y" /* yacc.c:1648  */
     { (yyval.named_ref) = named_ref_new ((yyvsp[0].uniqstr), (yylsp[0])); }
-#line 2890 "src/parse-gram.c" /* yacc.c:1648  */
+#line 2891 "src/parse-gram.c" /* yacc.c:1648  */
     break;
 
   case 98:
-#line 868 "src/parse-gram.y" /* yacc.c:1648  */
+#line 869 "src/parse-gram.y" /* yacc.c:1648  */
     { (yyval.uniqstr) = uniqstr_new ((yyvsp[0].code)); }
-#line 2896 "src/parse-gram.c" /* yacc.c:1648  */
+#line 2897 "src/parse-gram.c" /* yacc.c:1648  */
     break;
 
   case 99:
-#line 893 "src/parse-gram.y" /* yacc.c:1648  */
+#line 894 "src/parse-gram.y" /* yacc.c:1648  */
     { (yyval.value).kind = muscle_keyword; (yyval.value).chars = ""; }
-#line 2902 "src/parse-gram.c" /* yacc.c:1648  */
+#line 2903 "src/parse-gram.c" /* yacc.c:1648  */
     break;
 
   case 100:
-#line 894 "src/parse-gram.y" /* yacc.c:1648  */
+#line 895 "src/parse-gram.y" /* yacc.c:1648  */
     { (yyval.value).kind = muscle_keyword; (yyval.value).chars = (yyvsp[0].uniqstr); }
-#line 2908 "src/parse-gram.c" /* yacc.c:1648  */
+#line 2909 "src/parse-gram.c" /* yacc.c:1648  */
     break;
 
   case 101:
-#line 895 "src/parse-gram.y" /* yacc.c:1648  */
+#line 896 "src/parse-gram.y" /* yacc.c:1648  */
     { (yyval.value).kind = muscle_string;  (yyval.value).chars = (yyvsp[0].code); }
-#line 2914 "src/parse-gram.c" /* yacc.c:1648  */
+#line 2915 "src/parse-gram.c" /* yacc.c:1648  */
     break;
 
   case 102:
-#line 896 "src/parse-gram.y" /* yacc.c:1648  */
+#line 897 "src/parse-gram.y" /* yacc.c:1648  */
     { (yyval.value).kind = muscle_code;    (yyval.value).chars = strip_braces ((yyvsp[0].code)); }
-#line 2920 "src/parse-gram.c" /* yacc.c:1648  */
+#line 2921 "src/parse-gram.c" /* yacc.c:1648  */
     break;
 
   case 103:
-#line 909 "src/parse-gram.y" /* yacc.c:1648  */
+#line 910 "src/parse-gram.y" /* yacc.c:1648  */
     { (yyval.symbol) = symbol_from_uniqstr ((yyvsp[0].uniqstr), (yylsp[0])); }
-#line 2926 "src/parse-gram.c" /* yacc.c:1648  */
+#line 2927 "src/parse-gram.c" /* yacc.c:1648  */
     break;
 
   case 104:
-#line 911 "src/parse-gram.y" /* yacc.c:1648  */
+#line 912 "src/parse-gram.y" /* yacc.c:1648  */
     {
       (yyval.symbol) = symbol_get (char_name ((yyvsp[0].character)), (yylsp[0]));
       symbol_class_set ((yyval.symbol), token_sym, (yylsp[0]), false);
       symbol_user_token_number_set ((yyval.symbol), (yyvsp[0].character), (yylsp[0]));
     }
-#line 2936 "src/parse-gram.c" /* yacc.c:1648  */
+#line 2937 "src/parse-gram.c" /* yacc.c:1648  */
     break;
 
   case 105:
-#line 919 "src/parse-gram.y" /* yacc.c:1648  */
+#line 920 "src/parse-gram.y" /* yacc.c:1648  */
     { (yyval.symbol) = symbol_from_uniqstr ((yyvsp[0].uniqstr), (yylsp[0])); }
-#line 2942 "src/parse-gram.c" /* yacc.c:1648  */
+#line 2943 "src/parse-gram.c" /* yacc.c:1648  */
     break;
 
   case 108:
-#line 931 "src/parse-gram.y" /* yacc.c:1648  */
+#line 932 "src/parse-gram.y" /* yacc.c:1648  */
     {
       (yyval.symbol) = symbol_get (quotearg_style (c_quoting_style, (yyvsp[0].code)), (yylsp[0]));
       symbol_class_set ((yyval.symbol), token_sym, (yylsp[0]), false);
     }
-#line 2951 "src/parse-gram.c" /* yacc.c:1648  */
+#line 2952 "src/parse-gram.c" /* yacc.c:1648  */
     break;
 
   case 110:
-#line 940 "src/parse-gram.y" /* yacc.c:1648  */
+#line 941 "src/parse-gram.y" /* yacc.c:1648  */
     {
 #if 0
  int gram_piece0_save = gram_piece0, gram_piece1_save = gram_piece1;
@@ -2983,11 +2984,11 @@ yyreduce:
  insert_after(1, "</PYACC_Section3>");
  insert_after(0, "<PYACC_Section3>");
     }
-#line 2976 "src/parse-gram.c" /* yacc.c:1648  */
+#line 2977 "src/parse-gram.c" /* yacc.c:1648  */
     break;
 
 
-#line 2980 "src/parse-gram.c" /* yacc.c:1648  */
+#line 2981 "src/parse-gram.c" /* yacc.c:1648  */
         default: break;
       }
     if (yychar_backup != yychar)
@@ -3250,7 +3251,7 @@ yyreturn:
 #endif
   return yyresult;
 }
-#line 962 "src/parse-gram.y" /* yacc.c:1907  */
+#line 963 "src/parse-gram.y" /* yacc.c:1907  */
 
 
 /* Return the location of the left-hand side of a rule whose
index 5f427fe..fb13203 100644 (file)
@@ -61,7 +61,7 @@ extern int gram_debug;
     param_parse  = 1 << 1,
     param_both   = param_lex | param_parse
   } param_type;
-#line 872 "src/parse-gram.y" /* yacc.c:1910  */
+#line 873 "src/parse-gram.y" /* yacc.c:1910  */
 #include "muscle-tab.h"
 
 #line 68 "src/parse-gram.h" /* yacc.c:1910  */
@@ -155,7 +155,7 @@ named_ref *named_ref;
 param_type param;
 #line 549 "src/parse-gram.y" /* yacc.c:1910  */
 code_props_type code_type;
-#line 874 "src/parse-gram.y" /* yacc.c:1910  */
+#line 875 "src/parse-gram.y" /* yacc.c:1910  */
 
   struct
   {
index 9c1b889..652c10a 100644 (file)
@@ -814,7 +814,8 @@ rhs:
 | rhs symbol named_ref.opt
     { grammar_current_rule_symbol_append ($2, @2, $3); /*}*/
  insert_after(2, "</PYACC_Production_SymbolRef>");
- insert_before(1, "<PYACC_Production_SymbolRef>");
+ insert_after(1, "</PYACC_SymbolRef>");
+ insert_before(1, "<PYACC_Production_SymbolRef><PYACC_SymbolRef>");
  }
 | rhs "{...}" named_ref.opt
     { code_piece_append("<PYACC_BracedCode>"); grammar_current_rule_action_append ($2, @2, $3, false); /*}*/