aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2014-04-19 18:02:35 -0400
committerJesse Luehrs <doy@tozt.net>2014-04-19 18:02:35 -0400
commit9433f4248405144a6ce9bf64e6df8b1f34f12bc6 (patch)
treed8c0ec4d0ff031adb145681222dab26b673b3bef
parent1dc695f6a13f701d9e3464388588e275bde5d26b (diff)
downloadrunes-9433f4248405144a6ce9bf64e6df8b1f34f12bc6.tar.gz
runes-9433f4248405144a6ce9bf64e6df8b1f34f12bc6.zip
also handle splitting utf8 characters across reads
-rw-r--r--parser.c357
-rw-r--r--parser.l3
2 files changed, 185 insertions, 175 deletions
diff --git a/parser.c b/parser.c
index b111df5..d9e085f 100644
--- a/parser.c
+++ b/parser.c
@@ -351,8 +351,8 @@ static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner );
*yy_cp = '\0'; \
yyg->yy_c_buf_p = yy_cp;
-#define YY_NUM_RULES 46
-#define YY_END_OF_BUFFER 47
+#define YY_NUM_RULES 49
+#define YY_END_OF_BUFFER 50
/* This struct is not used in this scanner,
but its presence is necessary. */
struct yy_trans_info
@@ -360,22 +360,23 @@ struct yy_trans_info
flex_int32_t yy_verify;
flex_int32_t yy_nxt;
};
-static yyconst flex_int16_t yy_accept[130] =
+static yyconst flex_int16_t yy_accept[133] =
{ 0,
- 0, 0, 47, 44, 1, 2, 3, 4, 5, 6,
- 7, 37, 32, 45, 45, 45, 45, 42, 43, 12,
- 13, 8, 9, 10, 35, 36, 11, 0, 0, 0,
- 32, 0, 0, 0, 33, 0, 0, 38, 39, 34,
- 34, 39, 39, 14, 15, 16, 17, 18, 19, 20,
- 21, 22, 23, 24, 25, 26, 0, 0, 0, 40,
- 41, 41, 41, 41, 0, 0, 0, 0, 0, 0,
- 34, 34, 34, 27, 28, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 34, 0, 29, 0, 0,
- 0, 0, 30, 0, 0, 0, 0, 31, 0, 0,
-
- 0, 0, 0, 34, 34, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 23, 24, 34, 0, 0,
- 0, 34, 34, 0, 34, 34, 0, 34, 0
+ 0, 0, 50, 47, 1, 2, 3, 4, 5, 6,
+ 7, 40, 32, 48, 34, 35, 36, 45, 46, 12,
+ 13, 8, 9, 10, 38, 39, 11, 0, 0, 0,
+ 32, 0, 0, 0, 33, 35, 36, 41, 42, 37,
+ 37, 42, 42, 14, 15, 16, 17, 18, 19, 20,
+ 21, 22, 23, 24, 25, 26, 0, 0, 0, 43,
+ 44, 44, 44, 44, 0, 0, 0, 0, 0, 0,
+ 0, 36, 37, 37, 37, 27, 28, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 37, 0,
+ 29, 0, 0, 0, 0, 30, 0, 0, 0, 0,
+
+ 31, 0, 0, 0, 0, 0, 37, 37, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 23, 24,
+ 37, 0, 0, 0, 37, 37, 0, 37, 37, 0,
+ 37, 0
} ;
static yyconst flex_int32_t yy_ec[256] =
@@ -419,174 +420,174 @@ static yyconst flex_int32_t yy_meta[44] =
3, 3, 7
} ;
-static yyconst flex_int16_t yy_base[144] =
+static yyconst flex_int16_t yy_base[147] =
{ 0,
- 0, 43, 315, 511, 511, 511, 511, 511, 511, 511,
- 511, 86, 13, 511, 274, 273, 272, 511, 511, 511,
- 511, 511, 511, 511, 128, 170, 511, 271, 270, 257,
- 16, 256, 255, 254, 19, 253, 252, 511, 511, 0,
+ 0, 43, 318, 511, 511, 511, 511, 511, 511, 511,
+ 511, 86, 13, 511, 278, 277, 276, 511, 511, 511,
+ 511, 511, 511, 511, 128, 170, 511, 274, 273, 272,
+ 16, 271, 270, 257, 19, 256, 255, 511, 511, 0,
511, 212, 244, 511, 511, 511, 511, 511, 511, 511,
- 511, 511, 511, 511, 511, 511, 249, 248, 247, 511,
- 511, 268, 267, 266, 243, 242, 241, 231, 230, 228,
- 4, 45, 262, 511, 511, 227, 226, 24, 27, 30,
- 225, 224, 223, 288, 0, 9, 222, 511, 33, 212,
- 170, 169, 511, 165, 165, 164, 163, 511, 266, 162,
-
- 161, 158, 157, 0, 15, 163, 316, 156, 155, 154,
- 153, 151, 147, 334, 58, 511, 511, 350, 86, 39,
- 24, 368, 166, 384, 400, 170, 416, 0, 511, 454,
- 459, 465, 469, 472, 477, 482, 487, 490, 493, 496,
- 498, 501, 504
+ 511, 511, 511, 511, 511, 511, 254, 253, 252, 511,
+ 511, 271, 270, 269, 246, 245, 244, 243, 242, 241,
+ 231, 230, 4, 45, 262, 511, 511, 228, 227, 24,
+ 27, 30, 226, 225, 224, 223, 288, 0, 9, 222,
+ 511, 33, 212, 170, 169, 511, 165, 165, 164, 163,
+
+ 511, 266, 162, 161, 158, 157, 0, 15, 163, 316,
+ 156, 155, 154, 153, 151, 147, 334, 58, 511, 511,
+ 350, 86, 39, 24, 368, 166, 384, 400, 170, 416,
+ 0, 511, 454, 459, 465, 469, 472, 477, 482, 487,
+ 490, 493, 496, 498, 501, 504
} ;
-static yyconst flex_int16_t yy_def[144] =
+static yyconst flex_int16_t yy_def[147] =
{ 0,
- 130, 130, 129, 129, 129, 129, 129, 129, 129, 129,
- 129, 129, 131, 129, 129, 129, 129, 129, 129, 129,
- 129, 129, 129, 129, 129, 132, 129, 129, 129, 129,
- 131, 129, 129, 129, 133, 129, 129, 129, 129, 25,
- 129, 129, 42, 129, 129, 129, 129, 129, 129, 129,
- 129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
- 129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
- 134, 42, 42, 129, 129, 129, 129, 135, 136, 137,
- 129, 129, 129, 42, 129, 138, 129, 129, 135, 129,
- 129, 129, 129, 136, 129, 129, 129, 129, 137, 129,
-
- 129, 129, 129, 84, 139, 140, 73, 129, 129, 129,
- 129, 129, 129, 84, 141, 129, 129, 73, 129, 129,
- 129, 84, 142, 84, 84, 143, 84, 127, 0, 129,
- 129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
- 129, 129, 129
+ 133, 133, 132, 132, 132, 132, 132, 132, 132, 132,
+ 132, 132, 134, 132, 132, 132, 132, 132, 132, 132,
+ 132, 132, 132, 132, 132, 135, 132, 132, 132, 132,
+ 134, 132, 132, 132, 136, 132, 132, 132, 132, 25,
+ 132, 132, 42, 132, 132, 132, 132, 132, 132, 132,
+ 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
+ 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
+ 132, 132, 137, 42, 42, 132, 132, 132, 132, 138,
+ 139, 140, 132, 132, 132, 132, 42, 132, 141, 132,
+ 132, 138, 132, 132, 132, 132, 139, 132, 132, 132,
+
+ 132, 140, 132, 132, 132, 132, 87, 142, 143, 75,
+ 132, 132, 132, 132, 132, 132, 87, 144, 132, 132,
+ 75, 132, 132, 132, 87, 145, 87, 87, 146, 87,
+ 130, 0, 132, 132, 132, 132, 132, 132, 132, 132,
+ 132, 132, 132, 132, 132, 132
} ;
static yyconst flex_int16_t yy_nxt[555] =
{ 0,
- 4, 5, 6, 7, 8, 9, 10, 11, 12, 129,
- 106, 106, 106, 106, 106, 106, 71, 39, 39, 129,
- 39, 85, 85, 129, 85, 88, 85, 85, 93, 85,
- 129, 98, 85, 85, 88, 85, 129, 39, 14, 15,
+ 4, 5, 6, 7, 8, 9, 10, 11, 12, 132,
+ 109, 109, 109, 109, 109, 109, 73, 39, 39, 132,
+ 39, 88, 88, 132, 88, 91, 88, 88, 96, 88,
+ 132, 101, 88, 88, 91, 88, 132, 39, 14, 15,
16, 17, 14, 4, 5, 6, 7, 8, 9, 10,
11, 12, 32, 33, 34, 32, 33, 34, 32, 33,
- 34, 86, 99, 90, 91, 92, 95, 96, 97, 100,
- 101, 102, 90, 91, 92, 85, 85, 94, 85, 53,
+ 34, 89, 102, 93, 94, 95, 98, 99, 100, 103,
+ 104, 105, 93, 94, 95, 88, 88, 97, 88, 53,
54, 14, 15, 16, 17, 14, 18, 18, 18, 18,
18, 18, 18, 18, 18, 19, 19, 19, 19, 19,
20, 21, 19, 19, 22, 23, 19, 19, 19, 19,
19, 19, 19, 19, 19, 24, 19, 25, 26, 27,
- 19, 19, 19, 19, 89, 28, 29, 30, 38, 38,
+ 19, 19, 19, 19, 92, 28, 29, 30, 38, 38,
38, 38, 38, 38, 38, 38, 38, 39, 40, 40,
40, 40, 40, 40, 41, 42, 42, 39, 43, 44,
45, 46, 47, 48, 49, 50, 51, 39, 52, 39,
- 39, 39, 53, 54, 55, 56, 93, 57, 58, 59,
- 60, 60, 60, 60, 60, 60, 60, 60, 60, 115,
- 62, 63, 64, 85, 85, 121, 85, 85, 85, 99,
- 85, 120, 94, 119, 89, 61, 113, 116, 117, 112,
+ 39, 39, 53, 54, 55, 56, 96, 57, 58, 59,
+ 60, 60, 60, 60, 60, 60, 60, 60, 60, 118,
+ 62, 63, 64, 88, 88, 124, 88, 88, 88, 102,
+ 88, 123, 97, 122, 92, 61, 116, 119, 120, 115,
- 99, 111, 110, 94, 95, 96, 97, 109, 108, 65,
+ 102, 114, 113, 97, 98, 99, 100, 112, 111, 65,
66, 67, 38, 38, 38, 38, 38, 38, 38, 38,
- 38, 39, 72, 72, 72, 72, 72, 72, 41, 39,
+ 38, 39, 74, 74, 74, 74, 74, 74, 41, 39,
39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
- 89, 57, 58, 59, 73, 73, 73, 73, 73, 73,
- 39, 19, 103, 61, 87, 39, 35, 98, 83, 19,
- 74, 75, 73, 73, 73, 73, 73, 73, 86, 82,
- 81, 61, 80, 79, 78, 77, 76, 39, 74, 75,
- 70, 35, 37, 36, 35, 69, 53, 54, 104, 104,
-
- 104, 104, 104, 104, 105, 100, 101, 102, 68, 19,
- 37, 36, 35, 48, 129, 129, 129, 129, 129, 129,
- 129, 129, 53, 54, 55, 56, 118, 118, 118, 118,
- 118, 118, 129, 129, 129, 129, 129, 129, 129, 129,
- 129, 129, 39, 39, 122, 122, 122, 122, 122, 122,
- 123, 129, 129, 129, 129, 129, 129, 129, 129, 39,
- 118, 118, 118, 118, 118, 118, 129, 129, 129, 129,
- 129, 129, 129, 129, 129, 129, 39, 39, 122, 122,
- 122, 122, 122, 122, 123, 129, 129, 129, 129, 129,
- 129, 129, 129, 39, 125, 125, 125, 125, 125, 125,
-
- 126, 129, 129, 129, 129, 129, 129, 129, 129, 39,
- 125, 125, 125, 125, 125, 125, 126, 129, 129, 129,
- 129, 129, 129, 129, 129, 39, 128, 128, 128, 128,
- 128, 128, 126, 129, 129, 129, 129, 129, 129, 129,
- 129, 39, 129, 129, 129, 129, 129, 129, 129, 129,
- 129, 129, 129, 39, 13, 13, 13, 13, 13, 13,
+ 92, 57, 58, 59, 75, 75, 75, 75, 75, 75,
+ 39, 35, 19, 106, 61, 90, 39, 101, 35, 86,
+ 76, 77, 75, 75, 75, 75, 75, 75, 89, 35,
+ 85, 19, 84, 83, 61, 82, 81, 80, 76, 77,
+ 79, 78, 39, 72, 35, 71, 53, 54, 107, 107,
+
+ 107, 107, 107, 107, 108, 103, 104, 105, 70, 35,
+ 69, 68, 19, 48, 37, 36, 35, 132, 132, 132,
+ 132, 132, 53, 54, 55, 56, 121, 121, 121, 121,
+ 121, 121, 132, 132, 132, 132, 132, 132, 132, 132,
+ 132, 132, 39, 39, 125, 125, 125, 125, 125, 125,
+ 126, 132, 132, 132, 132, 132, 132, 132, 132, 39,
+ 121, 121, 121, 121, 121, 121, 132, 132, 132, 132,
+ 132, 132, 132, 132, 132, 132, 39, 39, 125, 125,
+ 125, 125, 125, 125, 126, 132, 132, 132, 132, 132,
+ 132, 132, 132, 39, 128, 128, 128, 128, 128, 128,
+
+ 129, 132, 132, 132, 132, 132, 132, 132, 132, 39,
+ 128, 128, 128, 128, 128, 128, 129, 132, 132, 132,
+ 132, 132, 132, 132, 132, 39, 131, 131, 131, 131,
+ 131, 131, 129, 132, 132, 132, 132, 132, 132, 132,
+ 132, 39, 132, 132, 132, 132, 132, 132, 132, 132,
+ 132, 132, 132, 39, 13, 13, 13, 13, 13, 13,
13, 31, 31, 31, 31, 61, 61, 61, 61, 61,
- 61, 35, 35, 35, 35, 84, 129, 84, 89, 89,
- 89, 89, 89, 94, 94, 94, 94, 94, 99, 99,
- 99, 99, 99, 107, 129, 107, 114, 129, 114, 106,
-
- 106, 106, 129, 106, 124, 129, 124, 127, 129, 127,
- 3, 129, 129, 129, 129, 129, 129, 129, 129, 129,
- 129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
- 129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
- 129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
- 129, 129, 129, 129
+ 61, 35, 35, 35, 35, 87, 132, 87, 92, 92,
+ 92, 92, 92, 97, 97, 97, 97, 97, 102, 102,
+ 102, 102, 102, 110, 132, 110, 117, 132, 117, 109,
+
+ 109, 109, 132, 109, 127, 132, 127, 130, 132, 130,
+ 3, 132, 132, 132, 132, 132, 132, 132, 132, 132,
+ 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
+ 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
+ 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
+ 132, 132, 132, 132
} ;
static yyconst flex_int16_t yy_chk[555] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
- 85, 85, 85, 85, 85, 85, 40, 40, 40, 0,
- 40, 71, 71, 0, 71, 78, 86, 86, 79, 86,
- 0, 80, 105, 105, 89, 105, 0, 40, 1, 1,
+ 88, 88, 88, 88, 88, 88, 40, 40, 40, 0,
+ 40, 73, 73, 0, 73, 80, 89, 89, 81, 89,
+ 0, 82, 108, 108, 92, 108, 0, 40, 1, 1,
1, 1, 1, 2, 2, 2, 2, 2, 2, 2,
2, 2, 13, 13, 13, 31, 31, 31, 35, 35,
- 35, 72, 121, 78, 78, 78, 79, 79, 79, 80,
- 80, 80, 89, 89, 89, 115, 115, 120, 115, 72,
- 72, 2, 2, 2, 2, 2, 12, 12, 12, 12,
+ 35, 74, 124, 80, 80, 80, 81, 81, 81, 82,
+ 82, 82, 92, 92, 92, 118, 118, 123, 118, 74,
+ 74, 2, 2, 2, 2, 2, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
- 12, 12, 12, 12, 119, 12, 12, 12, 25, 25,
+ 12, 12, 12, 12, 122, 12, 12, 12, 25, 25,
25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
- 25, 25, 25, 25, 25, 25, 94, 25, 25, 25,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 106,
- 26, 26, 26, 123, 123, 113, 123, 126, 126, 112,
- 126, 111, 110, 109, 108, 103, 102, 106, 106, 101,
+ 25, 25, 25, 25, 25, 25, 97, 25, 25, 25,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 109,
+ 26, 26, 26, 126, 126, 116, 126, 129, 129, 115,
+ 129, 114, 113, 112, 111, 106, 105, 109, 109, 104,
- 100, 97, 96, 95, 94, 94, 94, 92, 91, 26,
+ 103, 100, 99, 98, 97, 97, 97, 95, 94, 26,
26, 26, 42, 42, 42, 42, 42, 42, 42, 42,
42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
- 90, 42, 42, 42, 43, 43, 43, 43, 43, 43,
- 87, 83, 82, 81, 77, 76, 70, 99, 69, 68,
- 43, 43, 73, 73, 73, 73, 73, 73, 73, 67,
- 66, 65, 64, 63, 62, 59, 58, 57, 73, 73,
- 37, 36, 34, 33, 32, 30, 73, 73, 84, 84,
-
- 84, 84, 84, 84, 84, 99, 99, 99, 29, 28,
- 17, 16, 15, 84, 3, 0, 0, 0, 0, 0,
- 0, 0, 84, 84, 84, 84, 107, 107, 107, 107,
- 107, 107, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 107, 107, 114, 114, 114, 114, 114, 114,
- 114, 0, 0, 0, 0, 0, 0, 0, 0, 114,
- 118, 118, 118, 118, 118, 118, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 118, 118, 122, 122,
- 122, 122, 122, 122, 122, 0, 0, 0, 0, 0,
- 0, 0, 0, 122, 124, 124, 124, 124, 124, 124,
-
- 124, 0, 0, 0, 0, 0, 0, 0, 0, 124,
- 125, 125, 125, 125, 125, 125, 125, 0, 0, 0,
- 0, 0, 0, 0, 0, 125, 127, 127, 127, 127,
- 127, 127, 127, 0, 0, 0, 0, 0, 0, 0,
- 0, 127, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 127, 130, 130, 130, 130, 130, 130,
- 130, 131, 131, 131, 131, 132, 132, 132, 132, 132,
- 132, 133, 133, 133, 133, 134, 0, 134, 135, 135,
- 135, 135, 135, 136, 136, 136, 136, 136, 137, 137,
- 137, 137, 137, 138, 0, 138, 139, 0, 139, 140,
-
- 140, 141, 0, 141, 142, 0, 142, 143, 0, 143,
- 129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
- 129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
- 129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
- 129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
- 129, 129, 129, 129
+ 93, 42, 42, 42, 43, 43, 43, 43, 43, 43,
+ 90, 86, 85, 84, 83, 79, 78, 102, 72, 71,
+ 43, 43, 75, 75, 75, 75, 75, 75, 75, 70,
+ 69, 68, 67, 66, 65, 64, 63, 62, 75, 75,
+ 59, 58, 57, 37, 36, 34, 75, 75, 87, 87,
+
+ 87, 87, 87, 87, 87, 102, 102, 102, 33, 32,
+ 30, 29, 28, 87, 17, 16, 15, 3, 0, 0,
+ 0, 0, 87, 87, 87, 87, 110, 110, 110, 110,
+ 110, 110, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 110, 110, 117, 117, 117, 117, 117, 117,
+ 117, 0, 0, 0, 0, 0, 0, 0, 0, 117,
+ 121, 121, 121, 121, 121, 121, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 121, 121, 125, 125,
+ 125, 125, 125, 125, 125, 0, 0, 0, 0, 0,
+ 0, 0, 0, 125, 127, 127, 127, 127, 127, 127,
+
+ 127, 0, 0, 0, 0, 0, 0, 0, 0, 127,
+ 128, 128, 128, 128, 128, 128, 128, 0, 0, 0,
+ 0, 0, 0, 0, 0, 128, 130, 130, 130, 130,
+ 130, 130, 130, 0, 0, 0, 0, 0, 0, 0,
+ 0, 130, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 130, 133, 133, 133, 133, 133, 133,
+ 133, 134, 134, 134, 134, 135, 135, 135, 135, 135,
+ 135, 136, 136, 136, 136, 137, 0, 137, 138, 138,
+ 138, 138, 138, 139, 139, 139, 139, 139, 140, 140,
+ 140, 140, 140, 141, 0, 141, 142, 0, 142, 143,
+
+ 143, 144, 0, 144, 145, 0, 145, 146, 0, 146,
+ 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
+ 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
+ 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
+ 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
+ 132, 132, 132, 132
} ;
/* The intent behind this definition is that it'll catch
@@ -642,7 +643,7 @@ static void runes_parser_handle_osc1(RunesTerm *t, char *buf, size_t len);
static void runes_parser_handle_osc2(RunesTerm *t, char *buf, size_t len);
static void runes_parser_handle_ascii(RunesTerm *t, char *text, size_t len);
static void runes_parser_handle_text(RunesTerm *t, char *text, size_t len);
-#line 646 "parser.c"
+#line 647 "parser.c"
#define INITIAL 0
@@ -893,7 +894,7 @@ YY_DECL
#line 110 "parser.l"
-#line 897 "parser.c"
+#line 898 "parser.c"
while ( 1 ) /* loops until end-of-file is reached */
{
@@ -920,13 +921,13 @@ yy_match:
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 130 )
+ if ( yy_current_state >= 133 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
++yy_cp;
}
- while ( yy_current_state != 129 );
+ while ( yy_current_state != 132 );
yy_cp = yyg->yy_last_accepting_cpos;
yy_current_state = yyg->yy_last_accepting_state;
@@ -1115,18 +1116,24 @@ case 35:
case 36:
#line 154 "parser.l"
case 37:
+#line 155 "parser.l"
+case 38:
+#line 156 "parser.l"
+case 39:
+#line 157 "parser.l"
+case 40:
YY_RULE_SETUP
-#line 154 "parser.l"
+#line 157 "parser.l"
return yyleng;
YY_BREAK
case YY_STATE_EOF(INITIAL):
-#line 156 "parser.l"
+#line 159 "parser.l"
return 0;
YY_BREAK
-case 38:
-/* rule 38 can match eol */
+case 41:
+/* rule 41 can match eol */
YY_RULE_SETUP
-#line 158 "parser.l"
+#line 161 "parser.l"
{
fprintf(
stderr, "unhandled CSI sequence: \\033%*s\\%hho\n",
@@ -1134,9 +1141,9 @@ YY_RULE_SETUP
return -1;
}
YY_BREAK
-case 39:
+case 42:
YY_RULE_SETUP
-#line 165 "parser.l"
+#line 168 "parser.l"
{
fprintf(
stderr, "unhandled CSI sequence: \\033%*s\n",
@@ -1144,10 +1151,10 @@ YY_RULE_SETUP
return -1;
}
YY_BREAK
-case 40:
-/* rule 40 can match eol */
+case 43:
+/* rule 43 can match eol */
YY_RULE_SETUP
-#line 172 "parser.l"
+#line 175 "parser.l"
{
fprintf(
stderr, "unhandled OSC sequence: \\033%*s\\%hho\n",
@@ -1155,9 +1162,9 @@ YY_RULE_SETUP
return -1;
}
YY_BREAK
-case 41:
+case 44:
YY_RULE_SETUP
-#line 179 "parser.l"
+#line 182 "parser.l"
{
fprintf(
stderr, "unhandled OSC sequence: \\033%*s\n",
@@ -1165,18 +1172,18 @@ YY_RULE_SETUP
return -1;
}
YY_BREAK
-case 42:
-/* rule 42 can match eol */
+case 45:
+/* rule 45 can match eol */
YY_RULE_SETUP
-#line 186 "parser.l"
+#line 189 "parser.l"
{
fprintf(stderr, "unhandled escape sequence: \\%hho\n", yytext[1]);
return -1;
}
YY_BREAK
-case 43:
+case 46:
YY_RULE_SETUP
-#line 191 "parser.l"
+#line 194 "parser.l"
{
fprintf(
stderr, "unhandled escape sequence: %*s\n",
@@ -1184,28 +1191,28 @@ YY_RULE_SETUP
return -1;
}
YY_BREAK
-case 44:
-/* rule 44 can match eol */
+case 47:
+/* rule 47 can match eol */
YY_RULE_SETUP
-#line 198 "parser.l"
+#line 201 "parser.l"
{
fprintf(stderr, "unhandled control character: \\%hho\n", yytext[0]);
return -1;
}
YY_BREAK
-case 45:
+case 48:
YY_RULE_SETUP
-#line 203 "parser.l"
+#line 206 "parser.l"
{
fprintf(stderr, "invalid utf8 byte: \\%hho\n", yytext[0]);
}
YY_BREAK
-case 46:
+case 49:
YY_RULE_SETUP
-#line 207 "parser.l"
+#line 210 "parser.l"
YY_FATAL_ERROR( "flex scanner jammed" );
YY_BREAK
-#line 1209 "parser.c"
+#line 1216 "parser.c"
case YY_END_OF_BUFFER:
{
@@ -1499,7 +1506,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 130 )
+ if ( yy_current_state >= 133 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -1528,11 +1535,11 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 130 )
+ if ( yy_current_state >= 133 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
- yy_is_jam = (yy_current_state == 129);
+ yy_is_jam = (yy_current_state == 132);
(void)yyg;
return yy_is_jam ? 0 : yy_current_state;
@@ -2297,7 +2304,7 @@ static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner)
#define YYTABLES_NAME "yytables"
-#line 207 "parser.l"
+#line 210 "parser.l"
diff --git a/parser.l b/parser.l
index e3f0065..fdf2aa3 100644
--- a/parser.l
+++ b/parser.l
@@ -148,6 +148,9 @@ static void runes_parser_handle_text(RunesTerm *t, char *text, size_t len);
{ASCII}+ runes_parser_handle_ascii(yyextra, yytext, yyleng); return -1;
{CHAR}+ runes_parser_handle_text(yyextra, yytext, yyleng); return -1;
+{LEAD2} |
+{LEAD3}{CONT}? |
+{LEAD4}{CONT}?{CONT}? |
{CSI}[<=?]?{CSIPARAMS}[0-9;] |
{CSI} |
{OSC} |