Add continued actions, fix bogus definitions of [[:blank:]] and [[:space:]]
authorNick Downing <downing.nick@gmail.com>
Tue, 24 Jul 2018 01:23:51 +0000 (11:23 +1000)
committerNick Downing <downing.nick@gmail.com>
Tue, 24 Jul 2018 02:38:00 +0000 (12:38 +1000)
.gitignore
src/main.c
src/parse.c
src/parse.y
src/scan.c
src/scan.l

index 1982534..a8c5e2b 100644 (file)
@@ -7,6 +7,7 @@ autom4te.cache/
 config.log
 config.status
 doc/Makefile
+doc/flex.taxi
 examples/Makefile
 examples/fastwc/Makefile
 examples/manual/Makefile
index 448b94b..e74b22f 100644 (file)
@@ -191,7 +191,7 @@ int flex_main (int argc, char *argv[])
        make_tables ();
 #if 1
  /* at this point flexscan() has been called to copy section 3 to the output */
- piece_append("</PLex></root>");
+ piece_append("</PLex></root>\n");
 
  extern char *piece[];
  extern int piece1;
index bc67f03..f091a77 100644 (file)
@@ -2584,7 +2584,7 @@ yyreduce:
 #line 1026 "parse.y" /* yacc.c:1646  */
     { CCL_EXPR(IS_BLANK); /*}*/
  insert_after(0, "</RegexCharacterLiteral>");
- insert_before(0, "<RegexCharacterLiteral character_set=\"9 14 32 33\">");
+ insert_before(0, "<RegexCharacterLiteral character_set=\"9 10 32 33\">");
  }
 #line 2560 "parse.c" /* yacc.c:1646  */
     break;
@@ -2657,7 +2657,7 @@ yyreduce:
 #line 1064 "parse.y" /* yacc.c:1646  */
     { CCL_EXPR(isspace); /*}*/
  insert_after(0, "</RegexCharacterLiteral>");
- insert_before(0, "<RegexCharacterLiteral character_set=\"32 33\">");
+ insert_before(0, "<RegexCharacterLiteral character_set=\"9 14 32 33\">");
  }
 #line 2633 "parse.c" /* yacc.c:1646  */
     break;
@@ -2712,7 +2712,7 @@ yyreduce:
 #line 1095 "parse.y" /* yacc.c:1646  */
     { CCL_NEG_EXPR(IS_BLANK); /*}*/
  insert_after(0, "</RegexCharacterLiteral>");
- insert_before(0, "<RegexCharacterLiteral character_set=\"0 9 14 32 33 256\">");
+ insert_before(0, "<RegexCharacterLiteral character_set=\"0 9 10 32 33 256\">");
  }
 #line 2688 "parse.c" /* yacc.c:1646  */
     break;
@@ -2766,7 +2766,7 @@ yyreduce:
 #line 1119 "parse.y" /* yacc.c:1646  */
     { CCL_NEG_EXPR(isspace); /*}*/
  insert_after(0, "</RegexCharacterLiteral>");
- insert_before(0, "<RegexCharacterLiteral character_set=\"0 32 33 256\">");
+ insert_before(0, "<RegexCharacterLiteral character_set=\"0 9 14 32 33 256\">");
  }
 #line 2742 "parse.c" /* yacc.c:1646  */
     break;
index d710a61..f524e83 100644 (file)
@@ -1025,7 +1025,7 @@ ccl_expr:
  }
                |  CCE_BLANK    { CCL_EXPR(IS_BLANK); /*}*/
  insert_after(0, "</RegexCharacterLiteral>");
- insert_before(0, "<RegexCharacterLiteral character_set=\"9 14 32 33\">");
+ insert_before(0, "<RegexCharacterLiteral character_set=\"9 10 32 33\">");
  }
                |  CCE_CNTRL    { CCL_EXPR(iscntrl); /*}*/
  insert_after(0, "</RegexCharacterLiteral>");
@@ -1063,7 +1063,7 @@ ccl_expr:
  }
                |  CCE_SPACE    { CCL_EXPR(isspace); /*}*/
  insert_after(0, "</RegexCharacterLiteral>");
- insert_before(0, "<RegexCharacterLiteral character_set=\"32 33\">");
+ insert_before(0, "<RegexCharacterLiteral character_set=\"9 14 32 33\">");
  }
                |  CCE_XDIGIT   { CCL_EXPR(isxdigit); /*}*/
  insert_after(0, "</RegexCharacterLiteral>");
@@ -1094,7 +1094,7 @@ ccl_expr:
  }
                |  CCE_NEG_BLANK        { CCL_NEG_EXPR(IS_BLANK); /*}*/
  insert_after(0, "</RegexCharacterLiteral>");
- insert_before(0, "<RegexCharacterLiteral character_set=\"0 9 14 32 33 256\">");
+ insert_before(0, "<RegexCharacterLiteral character_set=\"0 9 10 32 33 256\">");
  }
                |  CCE_NEG_CNTRL        { CCL_NEG_EXPR(iscntrl); /*}*/
  insert_after(0, "</RegexCharacterLiteral>");
@@ -1118,7 +1118,7 @@ ccl_expr:
  }
                |  CCE_NEG_SPACE        { CCL_NEG_EXPR(isspace); /*}*/
  insert_after(0, "</RegexCharacterLiteral>");
- insert_before(0, "<RegexCharacterLiteral character_set=\"0 32 33 256\">");
+ insert_before(0, "<RegexCharacterLiteral character_set=\"0 9 14 32 33 256\">");
  }
                |  CCE_NEG_XDIGIT       { CCL_NEG_EXPR(isxdigit); /*}*/
  insert_after(0, "</RegexCharacterLiteral>");
index e1bf326..b6781bf 100644 (file)
@@ -9201,13 +9201,27 @@ YY_RULE_SETUP
                             add_action("]""]");
                             continued_action = true;
                             ++linenum;
+#if 1
+ int i;
+ for (i = 0; yytext[i] == '\t' || yytext[i] == ' '; ++i)
+  ;
+ piece_esc(yytext, i);
+ yytext += i;
+ piece_pack();
+ piece_append("<PLex_Section2_Rule_Action continued=\"true\">");
+ piece_esc(yytext, strlen(yytext));
+ piece_append("</PLex_Section2_Rule_Action>");
+ piece_pack();
+ return ~'\n';
+#else
                             return '\n';
+#endif
                         }
                     }
        YY_BREAK
 case 146:
 YY_RULE_SETUP
-#line 619 "scan.l"
+#line 633 "scan.l"
 {
 
                 if (sf_skip_ws()){
@@ -9224,12 +9238,12 @@ YY_RULE_SETUP
        YY_BREAK
 case 147:
 YY_RULE_SETUP
-#line 633 "scan.l"
+#line 647 "scan.l"
 /* allow indented rules */ ;
        YY_BREAK
 case 148:
 YY_RULE_SETUP
-#line 635 "scan.l"
+#line 649 "scan.l"
 {
             if (sf_skip_ws()){
                 /* We're in the middle of a (?x: ) pattern. */
@@ -9263,7 +9277,7 @@ YY_RULE_SETUP
 case 149:
 /* rule 149 can match eol */
 YY_RULE_SETUP
-#line 665 "scan.l"
+#line 679 "scan.l"
 {
             if (sf_skip_ws()){
                 /* We're in the middle of a (?x: ) pattern. */
@@ -9297,15 +9311,15 @@ YY_RULE_SETUP
                        }
        YY_BREAK
 case 150:
-#line 698 "scan.l"
+#line 712 "scan.l"
 case 151:
 YY_RULE_SETUP
-#line 698 "scan.l"
+#line 712 "scan.l"
 return EOF_OP;
        YY_BREAK
 case 152:
 YY_RULE_SETUP
-#line 700 "scan.l"
+#line 714 "scan.l"
 {
                        sectnum = 3;
                        BEGIN(no_section3_escape ? SECT3_NOESCAPE : SECT3);
@@ -9325,7 +9339,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 153:
 YY_RULE_SETUP
-#line 717 "scan.l"
+#line 731 "scan.l"
 {
                        int cclval;
 
@@ -9375,12 +9389,12 @@ YY_RULE_SETUP
        YY_BREAK
 case 154:
 YY_RULE_SETUP
-#line 763 "scan.l"
+#line 777 "scan.l"
 return CCL_OP_DIFF;
        YY_BREAK
 case 155:
 YY_RULE_SETUP
-#line 764 "scan.l"
+#line 778 "scan.l"
 return CCL_OP_UNION;
        YY_BREAK
 /* Check for :space: at the end of the rule so we don't
@@ -9390,7 +9404,7 @@ return CCL_OP_UNION;
 case 156:
 /* rule 156 can match eol */
 YY_RULE_SETUP
-#line 771 "scan.l"
+#line 785 "scan.l"
 {
                        char *nmdefptr;
             int end_is_ws, end_ch;
@@ -9445,7 +9459,7 @@ nmstr[yyleng - 2 - end_is_ws] = '\0';  /* chop trailing brace */
        YY_BREAK
 case 157:
 YY_RULE_SETUP
-#line 823 "scan.l"
+#line 837 "scan.l"
 {
                     if (sf_skip_ws())
                         yy_push_state(COMMENT_DISCARD);
@@ -9458,7 +9472,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 158:
 YY_RULE_SETUP
-#line 833 "scan.l"
+#line 847 "scan.l"
 {
                     if (lex_compat || posix_compat){
                         /* Push back the "?#" and treat it like a normal parens. */
@@ -9472,7 +9486,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 159:
 YY_RULE_SETUP
-#line 843 "scan.l"
+#line 857 "scan.l"
 {
                     sf_push();
                     if (lex_compat || posix_compat)
@@ -9485,12 +9499,12 @@ YY_RULE_SETUP
        YY_BREAK
 case 160:
 YY_RULE_SETUP
-#line 852 "scan.l"
+#line 866 "scan.l"
 sf_push(); return '(';
        YY_BREAK
 case 161:
 YY_RULE_SETUP
-#line 853 "scan.l"
+#line 867 "scan.l"
 {
                     if (_sf_top_ix > 0) {
                         sf_pop();
@@ -9501,17 +9515,17 @@ YY_RULE_SETUP
        YY_BREAK
 case 162:
 YY_RULE_SETUP
-#line 861 "scan.l"
+#line 875 "scan.l"
 return (unsigned char) yytext[0];
        YY_BREAK
 case 163:
 YY_RULE_SETUP
-#line 862 "scan.l"
+#line 876 "scan.l"
 RETURNCHAR;
        YY_BREAK
 /* Nick added this rule for consistency with rest of scanner */
 case YY_STATE_EOF(SECT2):
-#line 865 "scan.l"
+#line 879 "scan.l"
 {
                        sectnum = 0;
 #if 1
@@ -9529,17 +9543,17 @@ case YY_STATE_EOF(SECT2):
 case 164:
 /* rule 164 can match eol */
 YY_RULE_SETUP
-#line 880 "scan.l"
+#line 894 "scan.l"
 ++linenum;     /* Allow blank lines & continuations */
        YY_BREAK
 case 165:
 YY_RULE_SETUP
-#line 881 "scan.l"
+#line 895 "scan.l"
 return (unsigned char) yytext[0];
        YY_BREAK
 case 166:
 YY_RULE_SETUP
-#line 882 "scan.l"
+#line 896 "scan.l"
 BEGIN(SECT2); return '>';
        YY_BREAK
 case 167:
@@ -9547,17 +9561,17 @@ case 167:
 (yy_c_buf_p) = yy_cp = yy_bp + 1;
 YY_DO_BEFORE_ACTION; /* set up yytext again */
 YY_RULE_SETUP
-#line 883 "scan.l"
+#line 897 "scan.l"
 BEGIN(CARETISBOL); return '>';
        YY_BREAK
 case 168:
 YY_RULE_SETUP
-#line 884 "scan.l"
+#line 898 "scan.l"
 RETURNNAME;
        YY_BREAK
 case 169:
 YY_RULE_SETUP
-#line 885 "scan.l"
+#line 899 "scan.l"
 {
                        format_synerr( _( "bad <start condition>: %s" ),
                                yytext );
@@ -9566,24 +9580,24 @@ YY_RULE_SETUP
 
 case 170:
 YY_RULE_SETUP
-#line 891 "scan.l"
+#line 905 "scan.l"
 BEGIN(SECT2); return '^';
        YY_BREAK
 
 case 171:
 YY_RULE_SETUP
-#line 895 "scan.l"
+#line 909 "scan.l"
 RETURNCHAR;
        YY_BREAK
 case 172:
 YY_RULE_SETUP
-#line 896 "scan.l"
+#line 910 "scan.l"
 BEGIN(SECT2); return '"';
        YY_BREAK
 case 173:
 /* rule 173 can match eol */
 YY_RULE_SETUP
-#line 898 "scan.l"
+#line 912 "scan.l"
 {
                        synerr( _( "missing quote" ) );
                        BEGIN(SECT2);
@@ -9595,49 +9609,49 @@ YY_RULE_SETUP
 
 case 174:
 YY_RULE_SETUP
-#line 907 "scan.l"
+#line 921 "scan.l"
 BEGIN(SECT2);
        YY_BREAK
 case 175:
 YY_RULE_SETUP
-#line 908 "scan.l"
+#line 922 "scan.l"
 BEGIN(GROUP_MINUS_PARAMS);
        YY_BREAK
 case 176:
 YY_RULE_SETUP
-#line 909 "scan.l"
+#line 923 "scan.l"
 sf_set_case_ins(1);
        YY_BREAK
 case 177:
 YY_RULE_SETUP
-#line 910 "scan.l"
+#line 924 "scan.l"
 sf_set_dot_all(1);
        YY_BREAK
 case 178:
 YY_RULE_SETUP
-#line 911 "scan.l"
+#line 925 "scan.l"
 sf_set_skip_ws(1);
        YY_BREAK
 
 
 case 179:
 YY_RULE_SETUP
-#line 914 "scan.l"
+#line 928 "scan.l"
 BEGIN(SECT2);
        YY_BREAK
 case 180:
 YY_RULE_SETUP
-#line 915 "scan.l"
+#line 929 "scan.l"
 sf_set_case_ins(0);
        YY_BREAK
 case 181:
 YY_RULE_SETUP
-#line 916 "scan.l"
+#line 930 "scan.l"
 sf_set_dot_all(0);
        YY_BREAK
 case 182:
 YY_RULE_SETUP
-#line 917 "scan.l"
+#line 931 "scan.l"
 sf_set_skip_ws(0);
        YY_BREAK
 
@@ -9647,7 +9661,7 @@ case 183:
 (yy_c_buf_p) = yy_cp = yy_bp + 1;
 YY_DO_BEFORE_ACTION; /* set up yytext again */
 YY_RULE_SETUP
-#line 921 "scan.l"
+#line 935 "scan.l"
 BEGIN(CCL); return '^';
        YY_BREAK
 case 184:
@@ -9655,12 +9669,12 @@ case 184:
 (yy_c_buf_p) = yy_cp = yy_bp + 1;
 YY_DO_BEFORE_ACTION; /* set up yytext again */
 YY_RULE_SETUP
-#line 922 "scan.l"
+#line 936 "scan.l"
 return '^';
        YY_BREAK
 case 185:
 YY_RULE_SETUP
-#line 923 "scan.l"
+#line 937 "scan.l"
 BEGIN(CCL); RETURNCHAR;
        YY_BREAK
 
@@ -9670,23 +9684,23 @@ case 186:
 (yy_c_buf_p) = yy_cp = yy_bp + 1;
 YY_DO_BEFORE_ACTION; /* set up yytext again */
 YY_RULE_SETUP
-#line 927 "scan.l"
+#line 941 "scan.l"
 return '-';
        YY_BREAK
 case 187:
 YY_RULE_SETUP
-#line 928 "scan.l"
+#line 942 "scan.l"
 RETURNCHAR;
        YY_BREAK
 case 188:
 YY_RULE_SETUP
-#line 929 "scan.l"
+#line 943 "scan.l"
 BEGIN(SECT2); return ']';
        YY_BREAK
 case 189:
 /* rule 189 can match eol */
 YY_RULE_SETUP
-#line 930 "scan.l"
+#line 944 "scan.l"
 {
                        synerr( _( "bad character class" ) );
                        BEGIN(SECT2);
@@ -9697,127 +9711,127 @@ YY_RULE_SETUP
 
 case 190:
 YY_RULE_SETUP
-#line 938 "scan.l"
+#line 952 "scan.l"
 BEGIN(CCL); return CCE_ALNUM;
        YY_BREAK
 case 191:
 YY_RULE_SETUP
-#line 939 "scan.l"
+#line 953 "scan.l"
 BEGIN(CCL); return CCE_ALPHA;
        YY_BREAK
 case 192:
 YY_RULE_SETUP
-#line 940 "scan.l"
+#line 954 "scan.l"
 BEGIN(CCL); return CCE_BLANK;
        YY_BREAK
 case 193:
 YY_RULE_SETUP
-#line 941 "scan.l"
+#line 955 "scan.l"
 BEGIN(CCL); return CCE_CNTRL;
        YY_BREAK
 case 194:
 YY_RULE_SETUP
-#line 942 "scan.l"
+#line 956 "scan.l"
 BEGIN(CCL); return CCE_DIGIT;
        YY_BREAK
 case 195:
 YY_RULE_SETUP
-#line 943 "scan.l"
+#line 957 "scan.l"
 BEGIN(CCL); return CCE_GRAPH;
        YY_BREAK
 case 196:
 YY_RULE_SETUP
-#line 944 "scan.l"
+#line 958 "scan.l"
 BEGIN(CCL); return CCE_LOWER;
        YY_BREAK
 case 197:
 YY_RULE_SETUP
-#line 945 "scan.l"
+#line 959 "scan.l"
 BEGIN(CCL); return CCE_PRINT;
        YY_BREAK
 case 198:
 YY_RULE_SETUP
-#line 946 "scan.l"
+#line 960 "scan.l"
 BEGIN(CCL); return CCE_PUNCT;
        YY_BREAK
 case 199:
 YY_RULE_SETUP
-#line 947 "scan.l"
+#line 961 "scan.l"
 BEGIN(CCL); return CCE_SPACE;
        YY_BREAK
 case 200:
 YY_RULE_SETUP
-#line 948 "scan.l"
+#line 962 "scan.l"
 BEGIN(CCL); return CCE_UPPER;
        YY_BREAK
 case 201:
 YY_RULE_SETUP
-#line 949 "scan.l"
+#line 963 "scan.l"
 BEGIN(CCL); return CCE_XDIGIT;
        YY_BREAK
 case 202:
 YY_RULE_SETUP
-#line 951 "scan.l"
+#line 965 "scan.l"
 BEGIN(CCL); return CCE_NEG_ALNUM;
        YY_BREAK
 case 203:
 YY_RULE_SETUP
-#line 952 "scan.l"
+#line 966 "scan.l"
 BEGIN(CCL); return CCE_NEG_ALPHA;
        YY_BREAK
 case 204:
 YY_RULE_SETUP
-#line 953 "scan.l"
+#line 967 "scan.l"
 BEGIN(CCL); return CCE_NEG_BLANK;
        YY_BREAK
 case 205:
 YY_RULE_SETUP
-#line 954 "scan.l"
+#line 968 "scan.l"
 BEGIN(CCL); return CCE_NEG_CNTRL;
        YY_BREAK
 case 206:
 YY_RULE_SETUP
-#line 955 "scan.l"
+#line 969 "scan.l"
 BEGIN(CCL); return CCE_NEG_DIGIT;
        YY_BREAK
 case 207:
 YY_RULE_SETUP
-#line 956 "scan.l"
+#line 970 "scan.l"
 BEGIN(CCL); return CCE_NEG_GRAPH;
        YY_BREAK
 case 208:
 YY_RULE_SETUP
-#line 957 "scan.l"
+#line 971 "scan.l"
 BEGIN(CCL); return CCE_NEG_LOWER;
        YY_BREAK
 case 209:
 YY_RULE_SETUP
-#line 958 "scan.l"
+#line 972 "scan.l"
 BEGIN(CCL); return CCE_NEG_PRINT;
        YY_BREAK
 case 210:
 YY_RULE_SETUP
-#line 959 "scan.l"
+#line 973 "scan.l"
 BEGIN(CCL); return CCE_NEG_PUNCT;
        YY_BREAK
 case 211:
 YY_RULE_SETUP
-#line 960 "scan.l"
+#line 974 "scan.l"
 BEGIN(CCL); return CCE_NEG_SPACE;
        YY_BREAK
 case 212:
 YY_RULE_SETUP
-#line 961 "scan.l"
+#line 975 "scan.l"
 BEGIN(CCL); return CCE_NEG_UPPER;
        YY_BREAK
 case 213:
 YY_RULE_SETUP
-#line 962 "scan.l"
+#line 976 "scan.l"
 BEGIN(CCL); return CCE_NEG_XDIGIT;
        YY_BREAK
 case 214:
 YY_RULE_SETUP
-#line 963 "scan.l"
+#line 977 "scan.l"
 {
                        format_synerr(
                                _( "bad character class expression: %s" ),
@@ -9829,7 +9843,7 @@ YY_RULE_SETUP
 
 case 215:
 YY_RULE_SETUP
-#line 972 "scan.l"
+#line 986 "scan.l"
 {
                        yylval = myctoi( yytext );
                        return NUMBER;
@@ -9837,12 +9851,12 @@ YY_RULE_SETUP
        YY_BREAK
 case 216:
 YY_RULE_SETUP
-#line 977 "scan.l"
+#line 991 "scan.l"
 return ',';
        YY_BREAK
 case 217:
 YY_RULE_SETUP
-#line 978 "scan.l"
+#line 992 "scan.l"
 {
                        BEGIN(SECT2);
                        if ( lex_compat || posix_compat )
@@ -9853,7 +9867,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 218:
 YY_RULE_SETUP
-#line 986 "scan.l"
+#line 1000 "scan.l"
 {
                        synerr( _( "bad character inside {}'s" ) );
                        BEGIN(SECT2);
@@ -9863,7 +9877,7 @@ YY_RULE_SETUP
 case 219:
 /* rule 219 can match eol */
 YY_RULE_SETUP
-#line 992 "scan.l"
+#line 1006 "scan.l"
 {
                        synerr( _( "missing }" ) );
                        BEGIN(SECT2);
@@ -9875,18 +9889,18 @@ YY_RULE_SETUP
 
 case 220:
 YY_RULE_SETUP
-#line 1002 "scan.l"
+#line 1016 "scan.l"
 bracelevel = 0; piece_append("</PLex_Text>");
        YY_BREAK
 case 221:
 YY_RULE_SETUP
-#line 1004 "scan.l"
+#line 1018 "scan.l"
 ACTION_ECHO; yy_push_state( CODE_COMMENT );
        YY_BREAK
 
 case 222:
 YY_RULE_SETUP
-#line 1007 "scan.l"
+#line 1021 "scan.l"
 {
             ACTION_ECHO;
             CHECK_REJECT(yytext);
@@ -9894,7 +9908,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 223:
 YY_RULE_SETUP
-#line 1011 "scan.l"
+#line 1025 "scan.l"
 {
             ACTION_ECHO;
             CHECK_YYMORE(yytext);
@@ -9903,13 +9917,13 @@ YY_RULE_SETUP
 
 case 224:
 YY_RULE_SETUP
-#line 1017 "scan.l"
+#line 1031 "scan.l"
 ACTION_ECHO;
        YY_BREAK
 case 225:
 /* rule 225 can match eol */
 YY_RULE_SETUP
-#line 1018 "scan.l"
+#line 1032 "scan.l"
 {
                ++linenum;
                ACTION_ECHO;
@@ -9932,43 +9946,43 @@ YY_RULE_SETUP
 
 case 226:
 YY_RULE_SETUP
-#line 1039 "scan.l"
+#line 1053 "scan.l"
 ACTION_ECHO; ++bracelevel;
        YY_BREAK
 case 227:
 YY_RULE_SETUP
-#line 1040 "scan.l"
+#line 1054 "scan.l"
 ACTION_ECHO; --bracelevel;
        YY_BREAK
 case 228:
 YY_RULE_SETUP
-#line 1041 "scan.l"
+#line 1055 "scan.l"
 ACTION_ECHO;
        YY_BREAK
 case 229:
 YY_RULE_SETUP
-#line 1042 "scan.l"
+#line 1056 "scan.l"
 ACTION_ECHO;
        YY_BREAK
 case 230:
 YY_RULE_SETUP
-#line 1043 "scan.l"
+#line 1057 "scan.l"
 ACTION_ECHO; /* character constant */
        YY_BREAK
 case 231:
 YY_RULE_SETUP
-#line 1044 "scan.l"
+#line 1058 "scan.l"
 ACTION_ECHO; BEGIN(CHARACTER_CONSTANT);
        YY_BREAK
 case 232:
 YY_RULE_SETUP
-#line 1045 "scan.l"
+#line 1059 "scan.l"
 ACTION_ECHO; BEGIN(ACTION_STRING);
        YY_BREAK
 case 233:
 /* rule 233 can match eol */
 YY_RULE_SETUP
-#line 1046 "scan.l"
+#line 1060 "scan.l"
 {
                 ++linenum;
                 ACTION_ECHO;
@@ -9987,31 +10001,31 @@ YY_RULE_SETUP
        YY_BREAK
 case 234:
 YY_RULE_SETUP
-#line 1061 "scan.l"
+#line 1075 "scan.l"
 ACTION_ECHO;
        YY_BREAK
 
 
 case 235:
 YY_RULE_SETUP
-#line 1065 "scan.l"
+#line 1079 "scan.l"
 ACTION_ECHO;
        YY_BREAK
 case 236:
 YY_RULE_SETUP
-#line 1066 "scan.l"
+#line 1080 "scan.l"
 ACTION_ECHO; BEGIN(ACTION);
        YY_BREAK
 
 
 case 237:
 YY_RULE_SETUP
-#line 1069 "scan.l"
+#line 1083 "scan.l"
 ACTION_ECHO;
        YY_BREAK
 case 238:
 YY_RULE_SETUP
-#line 1070 "scan.l"
+#line 1084 "scan.l"
 ACTION_ECHO; BEGIN(ACTION);
        YY_BREAK
 
@@ -10019,24 +10033,24 @@ ACTION_ECHO; BEGIN(ACTION);
 case 239:
 /* rule 239 can match eol */
 YY_RULE_SETUP
-#line 1073 "scan.l"
+#line 1087 "scan.l"
 ACTION_ECHO;
        YY_BREAK
 case 240:
 /* rule 240 can match eol */
 YY_RULE_SETUP
-#line 1074 "scan.l"
+#line 1088 "scan.l"
 ACTION_ECHO;
        YY_BREAK
 case 241:
 /* rule 241 can match eol */
 YY_RULE_SETUP
-#line 1075 "scan.l"
+#line 1089 "scan.l"
 ++linenum; ACTION_ECHO; if (bracelevel <= 0) { BEGIN(SECT2); flush(); if (doing_rule_action) markup_action("</PLex_Text></PLex_Section2_Rule_Action>"); } else { BEGIN(ACTION); }
        YY_BREAK
 case 242:
 YY_RULE_SETUP
-#line 1076 "scan.l"
+#line 1090 "scan.l"
 ACTION_ECHO;
        YY_BREAK
 
@@ -10046,7 +10060,7 @@ case YY_STATE_EOF(COMMENT_DISCARD):
 case YY_STATE_EOF(ACTION):
 case YY_STATE_EOF(ACTION_STRING):
 case YY_STATE_EOF(CHARACTER_CONSTANT):
-#line 1079 "scan.l"
+#line 1093 "scan.l"
 {
                        synerr( _( "EOF encountered inside an action" ) );
                        yyterminate();
@@ -10055,7 +10069,7 @@ case YY_STATE_EOF(CHARACTER_CONSTANT):
 case YY_STATE_EOF(EXTENDED_COMMENT):
 case YY_STATE_EOF(GROUP_WITH_PARAMS):
 case YY_STATE_EOF(GROUP_MINUS_PARAMS):
-#line 1084 "scan.l"
+#line 1098 "scan.l"
 {
                        synerr( _( "EOF encountered inside pattern" ) );
                        yyterminate();
@@ -10063,7 +10077,7 @@ case YY_STATE_EOF(GROUP_MINUS_PARAMS):
        YY_BREAK
 case 243:
 YY_RULE_SETUP
-#line 1089 "scan.l"
+#line 1103 "scan.l"
 {
                        yylval = myesc( (unsigned char *) yytext );
 
@@ -10076,27 +10090,27 @@ YY_RULE_SETUP
 
 case 244:
 YY_RULE_SETUP
-#line 1099 "scan.l"
+#line 1113 "scan.l"
 fputs(escaped_qstart, yyout);
        YY_BREAK
 case 245:
 YY_RULE_SETUP
-#line 1100 "scan.l"
+#line 1114 "scan.l"
 fputs(escaped_qend, yyout);
        YY_BREAK
 case 246:
 /* rule 246 can match eol */
 YY_RULE_SETUP
-#line 1101 "scan.l"
+#line 1115 "scan.l"
 ECHO;
        YY_BREAK
 case 247:
 YY_RULE_SETUP
-#line 1102 "scan.l"
+#line 1116 "scan.l"
 ECHO;
        YY_BREAK
 case YY_STATE_EOF(SECT3):
-#line 1103 "scan.l"
+#line 1117 "scan.l"
 {
         sectnum = 0;
 #if 1
@@ -10113,27 +10127,27 @@ case YY_STATE_EOF(SECT3):
 
 case 248:
 YY_RULE_SETUP
-#line 1116 "scan.l"
+#line 1130 "scan.l"
 fprintf(yyout, "[""[%s]""]", escaped_qstart);
        YY_BREAK
 case 249:
 YY_RULE_SETUP
-#line 1117 "scan.l"
+#line 1131 "scan.l"
 fprintf(yyout, "[""[%s]""]", escaped_qend);
        YY_BREAK
 case 250:
 /* rule 250 can match eol */
 YY_RULE_SETUP
-#line 1118 "scan.l"
+#line 1132 "scan.l"
 ECHO;
        YY_BREAK
 case 251:
 YY_RULE_SETUP
-#line 1119 "scan.l"
+#line 1133 "scan.l"
 ECHO;
        YY_BREAK
 case YY_STATE_EOF(SECT3_NOESCAPE):
-#line 1120 "scan.l"
+#line 1134 "scan.l"
 {
        sectnum = 0;
 #if 1
@@ -10150,15 +10164,15 @@ case YY_STATE_EOF(SECT3_NOESCAPE):
 case 252:
 /* rule 252 can match eol */
 YY_RULE_SETUP
-#line 1132 "scan.l"
+#line 1146 "scan.l"
 format_synerr( _( "bad character: %s" ), yytext );
        YY_BREAK
 case 253:
 YY_RULE_SETUP
-#line 1134 "scan.l"
+#line 1148 "scan.l"
 YY_FATAL_ERROR( "flex scanner jammed" );
        YY_BREAK
-#line 10050 "scan.c"
+#line 10064 "scan.c"
 case YY_STATE_EOF(INITIAL):
 case YY_STATE_EOF(CODEBLOCK):
 case YY_STATE_EOF(PICKUPDEF):
@@ -11206,7 +11220,7 @@ void yyfree (void * ptr )
 
 #define YYTABLES_NAME "yytables"
 
-#line 1134 "scan.l"
+#line 1148 "scan.l"
 
 
 
index f8818cc..a90c987 100644 (file)
@@ -612,7 +612,21 @@ M4QEND      "]""]"
                             add_action("]""]");
                             continued_action = true;
                             ++linenum;
+#if 1
+ int i;
+ for (i = 0; yytext[i] == '\t' || yytext[i] == ' '; ++i)
+  ;
+ piece_esc(yytext, i);
+ yytext += i;
+ piece_pack();
+ piece_append("<PLex_Section2_Rule_Action continued=\"true\">");
+ piece_esc(yytext, strlen(yytext));
+ piece_append("</PLex_Section2_Rule_Action>");
+ piece_pack();
+ return ~'\n';
+#else
                             return '\n';
+#endif
                         }
                     }