Fix minor case inversion issue in the XML marked up output
authorNick Downing <nick@ndcode.org>
Tue, 15 Jan 2019 01:58:23 +0000 (12:58 +1100)
committerNick Downing <nick@ndcode.org>
Tue, 15 Jan 2019 01:58:23 +0000 (12:58 +1100)
src/parse.c
src/parse.y

index 4cc4596..7f04f79 100644 (file)
@@ -622,10 +622,10 @@ static const yytype_uint16 yyrline[] =
      514,   517,   562,   581,   589,   594,   621,   631,   634,   665,
      682,   707,   716,   724,   732,   763,   780,   802,   844,   862,
      872,   875,   881,   884,   890,   895,   901,   919,   925,   929,
-     934,   936,   945,  1010,  1033,  1043,  1052,  1056,  1060,  1064,
-    1068,  1072,  1076,  1090,  1094,  1098,  1102,  1106,  1121,  1125,
-    1129,  1133,  1137,  1141,  1145,  1149,  1153,  1157,  1161,  1169,
-    1179,  1200
+     934,   936,   945,  1014,  1040,  1050,  1059,  1063,  1067,  1071,
+    1075,  1079,  1083,  1097,  1101,  1105,  1109,  1113,  1128,  1132,
+    1136,  1140,  1144,  1148,  1152,  1156,  1160,  1164,  1168,  1176,
+    1186,  1207
 };
 #endif
 
@@ -2544,6 +2544,10 @@ yyreduce:
 
                     cclsorted = cclsorted && ((yyvsp[-2]) > lastchar);
                     lastchar = (yyvsp[0]);
+
+                    /* Nick, doesn't really matter but undo for the below */
+                    (yyvsp[-2]) = reverse_case ((yyvsp[-2]));
+                    (yyvsp[0]) = reverse_case ((yyvsp[0]));
                 }
 
                                }
@@ -2555,11 +2559,11 @@ yyreduce:
  insert_before(1, piece_temp);
  insert_before(0, "<RegexCharacterOr>");
                        }
-#line 2548 "parse.c" /* yacc.c:1648  */
+#line 2552 "parse.c" /* yacc.c:1648  */
     break;
 
   case 73:
-#line 1011 "parse.y" /* yacc.c:1648  */
+#line 1015 "parse.y" /* yacc.c:1648  */
     {
                        ccladd( (yyvsp[-1]), (yyvsp[0]) );
                        cclsorted = cclsorted && ((yyvsp[0]) > lastchar);
@@ -2572,6 +2576,9 @@ yyreduce:
 
                 cclsorted = cclsorted && ((yyvsp[0]) > lastchar);
                 lastchar = (yyvsp[0]);
+
+                /* Nick, doesn't really matter but undo for the below */
+                (yyvsp[0]) = reverse_case ((yyvsp[0]));
             }
 
                        (yyval) = (yyvsp[-1]);
@@ -2581,11 +2588,11 @@ yyreduce:
  insert_before(1, piece_temp);
  insert_before(0, "<RegexCharacterOr>");
                        }
-#line 2574 "parse.c" /* yacc.c:1648  */
+#line 2581 "parse.c" /* yacc.c:1648  */
     break;
 
   case 74:
-#line 1034 "parse.y" /* yacc.c:1648  */
+#line 1041 "parse.y" /* yacc.c:1648  */
     {
                        /* Too hard to properly maintain cclsorted. */
                        cclsorted = false;
@@ -2593,76 +2600,76 @@ yyreduce:
  insert_after(1, "</RegexCharacterOr>");
  insert_before(0, "<RegexCharacterOr>");
                        }
-#line 2586 "parse.c" /* yacc.c:1648  */
+#line 2593 "parse.c" /* yacc.c:1648  */
     break;
 
   case 75:
-#line 1043 "parse.y" /* yacc.c:1648  */
+#line 1050 "parse.y" /* yacc.c:1648  */
     {
                        cclsorted = true;
                        lastchar = 0;
                        currccl = (yyval) = cclinit();
  insert_before(0, "<RegexCharacterLiteral character_set=\"\" />");
                        }
-#line 2597 "parse.c" /* yacc.c:1648  */
+#line 2604 "parse.c" /* yacc.c:1648  */
     break;
 
   case 76:
-#line 1052 "parse.y" /* yacc.c:1648  */
+#line 1059 "parse.y" /* yacc.c:1648  */
     { CCL_EXPR(isalnum); /*}*/
  insert_after(0, "</RegexCharacterLiteral>");
  insert_before(0, "<RegexCharacterLiteral character_set=\"48 58 65 91 97 123\">");
  }
-#line 2606 "parse.c" /* yacc.c:1648  */
+#line 2613 "parse.c" /* yacc.c:1648  */
     break;
 
   case 77:
-#line 1056 "parse.y" /* yacc.c:1648  */
+#line 1063 "parse.y" /* yacc.c:1648  */
     { CCL_EXPR(isalpha); /*}*/
  insert_after(0, "</RegexCharacterLiteral>");
  insert_before(0, "<RegexCharacterLiteral character_set=\"65 91 97 123\">");
  }
-#line 2615 "parse.c" /* yacc.c:1648  */
+#line 2622 "parse.c" /* yacc.c:1648  */
     break;
 
   case 78:
-#line 1060 "parse.y" /* yacc.c:1648  */
+#line 1067 "parse.y" /* yacc.c:1648  */
     { CCL_EXPR(IS_BLANK); /*}*/
  insert_after(0, "</RegexCharacterLiteral>");
  insert_before(0, "<RegexCharacterLiteral character_set=\"9 10 32 33\">");
  }
-#line 2624 "parse.c" /* yacc.c:1648  */
+#line 2631 "parse.c" /* yacc.c:1648  */
     break;
 
   case 79:
-#line 1064 "parse.y" /* yacc.c:1648  */
+#line 1071 "parse.y" /* yacc.c:1648  */
     { CCL_EXPR(iscntrl); /*}*/
  insert_after(0, "</RegexCharacterLiteral>");
  insert_before(0, "<RegexCharacterLiteral character_set=\"0 32\">");
  }
-#line 2633 "parse.c" /* yacc.c:1648  */
+#line 2640 "parse.c" /* yacc.c:1648  */
     break;
 
   case 80:
-#line 1068 "parse.y" /* yacc.c:1648  */
+#line 1075 "parse.y" /* yacc.c:1648  */
     { CCL_EXPR(isdigit); /*}*/
  insert_after(0, "</RegexCharacterLiteral>");
  insert_before(0, "<RegexCharacterLiteral character_set=\"48 58\">");
  }
-#line 2642 "parse.c" /* yacc.c:1648  */
+#line 2649 "parse.c" /* yacc.c:1648  */
     break;
 
   case 81:
-#line 1072 "parse.y" /* yacc.c:1648  */
+#line 1079 "parse.y" /* yacc.c:1648  */
     { CCL_EXPR(isgraph); /*}*/
  insert_after(0, "</RegexCharacterLiteral>");
  insert_before(0, "<RegexCharacterLiteral character_set=\"33 127\">");
  }
-#line 2651 "parse.c" /* yacc.c:1648  */
+#line 2658 "parse.c" /* yacc.c:1648  */
     break;
 
   case 82:
-#line 1076 "parse.y" /* yacc.c:1648  */
+#line 1083 "parse.y" /* yacc.c:1648  */
     { 
                           CCL_EXPR(islower);
                           if (sf_case_ins())
@@ -2677,47 +2684,47 @@ yyreduce:
  insert_before(0, "<RegexCharacterLiteral character_set=\"97 123\">");
  }
                         }
-#line 2670 "parse.c" /* yacc.c:1648  */
+#line 2677 "parse.c" /* yacc.c:1648  */
     break;
 
   case 83:
-#line 1090 "parse.y" /* yacc.c:1648  */
+#line 1097 "parse.y" /* yacc.c:1648  */
     { CCL_EXPR(isprint); /*}*/
  insert_after(0, "</RegexCharacterLiteral>");
  insert_before(0, "<RegexCharacterLiteral character_set=\"32 127\">");
  }
-#line 2679 "parse.c" /* yacc.c:1648  */
+#line 2686 "parse.c" /* yacc.c:1648  */
     break;
 
   case 84:
-#line 1094 "parse.y" /* yacc.c:1648  */
+#line 1101 "parse.y" /* yacc.c:1648  */
     { CCL_EXPR(ispunct); /*}*/
  insert_after(0, "</RegexCharacterLiteral>");
  insert_before(0, "<RegexCharacterLiteral character_set=\"33 48 58 65 91 97 123 127\">");
  }
-#line 2688 "parse.c" /* yacc.c:1648  */
+#line 2695 "parse.c" /* yacc.c:1648  */
     break;
 
   case 85:
-#line 1098 "parse.y" /* yacc.c:1648  */
+#line 1105 "parse.y" /* yacc.c:1648  */
     { CCL_EXPR(isspace); /*}*/
  insert_after(0, "</RegexCharacterLiteral>");
  insert_before(0, "<RegexCharacterLiteral character_set=\"9 14 32 33\">");
  }
-#line 2697 "parse.c" /* yacc.c:1648  */
+#line 2704 "parse.c" /* yacc.c:1648  */
     break;
 
   case 86:
-#line 1102 "parse.y" /* yacc.c:1648  */
+#line 1109 "parse.y" /* yacc.c:1648  */
     { CCL_EXPR(isxdigit); /*}*/
  insert_after(0, "</RegexCharacterLiteral>");
  insert_before(0, "<RegexCharacterLiteral character_set=\"48 58 65 71 97 103\">");
  }
-#line 2706 "parse.c" /* yacc.c:1648  */
+#line 2713 "parse.c" /* yacc.c:1648  */
     break;
 
   case 87:
-#line 1106 "parse.y" /* yacc.c:1648  */
+#line 1113 "parse.y" /* yacc.c:1648  */
     {
                     CCL_EXPR(isupper);
                     if (sf_case_ins())
@@ -2732,101 +2739,101 @@ yyreduce:
  insert_before(0, "<RegexCharacterLiteral character_set=\"65 91\">");
  }
                                }
-#line 2725 "parse.c" /* yacc.c:1648  */
+#line 2732 "parse.c" /* yacc.c:1648  */
     break;
 
   case 88:
-#line 1121 "parse.y" /* yacc.c:1648  */
+#line 1128 "parse.y" /* yacc.c:1648  */
     { CCL_NEG_EXPR(isalnum); /*}*/
  insert_after(0, "</RegexCharacterLiteral>");
  insert_before(0, "<RegexCharacterLiteral character_set=\"0 48 58 65 91 97 123 256\">");
  }
-#line 2734 "parse.c" /* yacc.c:1648  */
+#line 2741 "parse.c" /* yacc.c:1648  */
     break;
 
   case 89:
-#line 1125 "parse.y" /* yacc.c:1648  */
+#line 1132 "parse.y" /* yacc.c:1648  */
     { CCL_NEG_EXPR(isalpha); /*}*/
  insert_after(0, "</RegexCharacterLiteral>");
  insert_before(0, "<RegexCharacterLiteral character_set=\"0 65 91 97 123 256\">");
  }
-#line 2743 "parse.c" /* yacc.c:1648  */
+#line 2750 "parse.c" /* yacc.c:1648  */
     break;
 
   case 90:
-#line 1129 "parse.y" /* yacc.c:1648  */
+#line 1136 "parse.y" /* yacc.c:1648  */
     { CCL_NEG_EXPR(IS_BLANK); /*}*/
  insert_after(0, "</RegexCharacterLiteral>");
  insert_before(0, "<RegexCharacterLiteral character_set=\"0 9 10 32 33 256\">");
  }
-#line 2752 "parse.c" /* yacc.c:1648  */
+#line 2759 "parse.c" /* yacc.c:1648  */
     break;
 
   case 91:
-#line 1133 "parse.y" /* yacc.c:1648  */
+#line 1140 "parse.y" /* yacc.c:1648  */
     { CCL_NEG_EXPR(iscntrl); /*}*/
  insert_after(0, "</RegexCharacterLiteral>");
  insert_before(0, "<RegexCharacterLiteral character_set=\"32 256\">");
  }
-#line 2761 "parse.c" /* yacc.c:1648  */
+#line 2768 "parse.c" /* yacc.c:1648  */
     break;
 
   case 92:
-#line 1137 "parse.y" /* yacc.c:1648  */
+#line 1144 "parse.y" /* yacc.c:1648  */
     { CCL_NEG_EXPR(isdigit); /*}*/
  insert_after(0, "</RegexCharacterLiteral>");
  insert_before(0, "<RegexCharacterLiteral character_set=\"0 48 58 256\">");
  }
-#line 2770 "parse.c" /* yacc.c:1648  */
+#line 2777 "parse.c" /* yacc.c:1648  */
     break;
 
   case 93:
-#line 1141 "parse.y" /* yacc.c:1648  */
+#line 1148 "parse.y" /* yacc.c:1648  */
     { CCL_NEG_EXPR(isgraph); /*}*/
  insert_after(0, "</RegexCharacterLiteral>");
  insert_before(0, "<RegexCharacterLiteral character_set=\"0 33 127 256\">");
  }
-#line 2779 "parse.c" /* yacc.c:1648  */
+#line 2786 "parse.c" /* yacc.c:1648  */
     break;
 
   case 94:
-#line 1145 "parse.y" /* yacc.c:1648  */
+#line 1152 "parse.y" /* yacc.c:1648  */
     { CCL_NEG_EXPR(isprint); /*}*/
  insert_after(0, "</RegexCharacterLiteral>");
  insert_before(0, "<RegexCharacterLiteral character_set=\"0 32 127 256\">");
  }
-#line 2788 "parse.c" /* yacc.c:1648  */
+#line 2795 "parse.c" /* yacc.c:1648  */
     break;
 
   case 95:
-#line 1149 "parse.y" /* yacc.c:1648  */
+#line 1156 "parse.y" /* yacc.c:1648  */
     { CCL_NEG_EXPR(ispunct); /*}*/
  insert_after(0, "</RegexCharacterLiteral>");
  insert_before(0, "<RegexCharacterLiteral character_set=\"0 33 48 58 65 91 97 123 127 256\">");
  }
-#line 2797 "parse.c" /* yacc.c:1648  */
+#line 2804 "parse.c" /* yacc.c:1648  */
     break;
 
   case 96:
-#line 1153 "parse.y" /* yacc.c:1648  */
+#line 1160 "parse.y" /* yacc.c:1648  */
     { CCL_NEG_EXPR(isspace); /*}*/
  insert_after(0, "</RegexCharacterLiteral>");
  insert_before(0, "<RegexCharacterLiteral character_set=\"0 9 14 32 33 256\">");
  }
-#line 2806 "parse.c" /* yacc.c:1648  */
+#line 2813 "parse.c" /* yacc.c:1648  */
     break;
 
   case 97:
-#line 1157 "parse.y" /* yacc.c:1648  */
+#line 1164 "parse.y" /* yacc.c:1648  */
     { CCL_NEG_EXPR(isxdigit); /*}*/
  insert_after(0, "</RegexCharacterLiteral>");
  insert_before(0, "<RegexCharacterLiteral character_set=\"0 48 58 65 71 97 103 256\">");
  }
-#line 2815 "parse.c" /* yacc.c:1648  */
+#line 2822 "parse.c" /* yacc.c:1648  */
     break;
 
   case 98:
-#line 1161 "parse.y" /* yacc.c:1648  */
+#line 1168 "parse.y" /* yacc.c:1648  */
     { 
                                if ( sf_case_ins() )
                                        lwarn(_("[:^lower:] is ambiguous in case insensitive scanner"));
@@ -2835,11 +2842,11 @@ yyreduce:
  insert_after(0, "</RegexCharacterLiteral>");
  insert_before(0, "<RegexCharacterLiteral character_set=\"0 97 123 256\">");
                                }
-#line 2828 "parse.c" /* yacc.c:1648  */
+#line 2835 "parse.c" /* yacc.c:1648  */
     break;
 
   case 99:
-#line 1169 "parse.y" /* yacc.c:1648  */
+#line 1176 "parse.y" /* yacc.c:1648  */
     {
                                if ( sf_case_ins() )
                                        lwarn(_("[:^upper:] ambiguous in case insensitive scanner"));
@@ -2848,11 +2855,11 @@ yyreduce:
  insert_after(0, "</RegexCharacterLiteral>");
  insert_before(0, "<RegexCharacterLiteral character_set=\"0 65 91 256\">");
                                }
-#line 2841 "parse.c" /* yacc.c:1648  */
+#line 2848 "parse.c" /* yacc.c:1648  */
     break;
 
   case 100:
-#line 1180 "parse.y" /* yacc.c:1648  */
+#line 1187 "parse.y" /* yacc.c:1648  */
     {
                        if ( (yyvsp[0]) == nlch )
                                rule_has_nl[num_rules] = true;
@@ -2871,19 +2878,19 @@ yyreduce:
  insert_before(1, piece_temp);
  insert_before(0, "<RegexSequence>");
                        }
-#line 2864 "parse.c" /* yacc.c:1648  */
+#line 2871 "parse.c" /* yacc.c:1648  */
     break;
 
   case 101:
-#line 1200 "parse.y" /* yacc.c:1648  */
+#line 1207 "parse.y" /* yacc.c:1648  */
     { (yyval) = mkstate( SYM_EPSILON ); /*}*/
  insert_before(0, "<RegexEmpty />");
  }
-#line 2872 "parse.c" /* yacc.c:1648  */
+#line 2879 "parse.c" /* yacc.c:1648  */
     break;
 
 
-#line 2876 "parse.c" /* yacc.c:1648  */
+#line 2883 "parse.c" /* yacc.c:1648  */
       default: break;
     }
  int i;
@@ -3128,7 +3135,7 @@ yyreturn:
 #endif
   return yyresult;
 }
-#line 1206 "parse.y" /* yacc.c:1907  */
+#line 1213 "parse.y" /* yacc.c:1907  */
 
 
 
index 8811acc..9f94059 100644 (file)
@@ -995,6 +995,10 @@ ccl                :  ccl CHAR '-' CHAR
 
                     cclsorted = cclsorted && ($2 > lastchar);
                     lastchar = $4;
+
+                    /* Nick, doesn't really matter but undo for the below */
+                    $2 = reverse_case ($2);
+                    $4 = reverse_case ($4);
                 }
 
                                }
@@ -1020,6 +1024,9 @@ ccl               :  ccl CHAR '-' CHAR
 
                 cclsorted = cclsorted && ($2 > lastchar);
                 lastchar = $2;
+
+                /* Nick, doesn't really matter but undo for the below */
+                $2 = reverse_case ($2);
             }
 
                        $$ = $1;