|
|
@@ -300,21 +300,25 @@ static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
|
|
|
*yy_cp = '\0'; \
|
|
|
yy_c_buf_p = yy_cp;
|
|
|
|
|
|
-#define YY_NUM_RULES 26
|
|
|
-#define YY_END_OF_BUFFER 27
|
|
|
-static yyconst short int yy_accept[99] =
|
|
|
+#define YY_NUM_RULES 34
|
|
|
+#define YY_END_OF_BUFFER 35
|
|
|
+static yyconst short int yy_accept[132] =
|
|
|
{ 0,
|
|
|
- 0, 0, 27, 25, 2, 1, 21, 4, 22, 25,
|
|
|
- 24, 25, 25, 18, 18, 23, 24, 24, 24, 24,
|
|
|
- 24, 24, 24, 24, 24, 24, 1, 4, 0, 18,
|
|
|
- 24, 18, 0, 20, 3, 20, 19, 24, 24, 24,
|
|
|
- 24, 24, 24, 24, 24, 24, 24, 24, 24, 17,
|
|
|
- 0, 3, 19, 24, 24, 24, 24, 24, 24, 24,
|
|
|
- 24, 24, 24, 24, 24, 0, 20, 24, 6, 7,
|
|
|
- 24, 24, 24, 24, 24, 24, 24, 24, 16, 5,
|
|
|
- 24, 24, 10, 11, 24, 24, 14, 24, 24, 9,
|
|
|
- 12, 24, 24, 8, 24, 15, 13, 0
|
|
|
-
|
|
|
+ 0, 0, 35, 34, 2, 1, 31, 4, 34, 10,
|
|
|
+ 33, 9, 34, 26, 11, 32, 7, 8, 33, 33,
|
|
|
+ 33, 33, 33, 33, 33, 33, 33, 33, 5, 6,
|
|
|
+ 1, 4, 0, 26, 33, 26, 0, 3, 29, 0,
|
|
|
+ 27, 33, 33, 33, 33, 33, 33, 33, 33, 33,
|
|
|
+ 33, 33, 33, 33, 33, 30, 28, 0, 3, 0,
|
|
|
+ 0, 0, 0, 33, 33, 33, 33, 33, 33, 33,
|
|
|
+ 33, 33, 33, 33, 33, 33, 33, 0, 0, 0,
|
|
|
+ 0, 0, 0, 0, 0, 33, 13, 14, 33, 33,
|
|
|
+ 33, 33, 33, 33, 33, 33, 33, 33, 25, 0,
|
|
|
+
|
|
|
+ 0, 0, 0, 12, 33, 33, 17, 19, 33, 33,
|
|
|
+ 24, 33, 22, 33, 0, 0, 33, 16, 18, 20,
|
|
|
+ 33, 33, 0, 0, 0, 0, 15, 33, 23, 21,
|
|
|
+ 0
|
|
|
} ;
|
|
|
|
|
|
static yyconst int yy_ec[256] =
|
|
|
@@ -322,17 +326,17 @@ static yyconst int yy_ec[256] =
|
|
|
1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
|
|
|
1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
|
|
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
|
- 1, 2, 1, 4, 5, 1, 1, 1, 6, 1,
|
|
|
- 1, 1, 7, 1, 8, 9, 10, 11, 12, 12,
|
|
|
- 12, 12, 12, 12, 12, 12, 12, 1, 1, 13,
|
|
|
- 1, 1, 1, 1, 15, 16, 17, 18, 19, 20,
|
|
|
- 21, 22, 23, 14, 14, 24, 25, 26, 27, 28,
|
|
|
- 14, 29, 30, 31, 32, 14, 33, 34, 35, 14,
|
|
|
- 1, 1, 1, 1, 14, 1, 15, 16, 17, 18,
|
|
|
-
|
|
|
- 19, 20, 21, 22, 23, 14, 14, 24, 25, 26,
|
|
|
- 27, 28, 14, 29, 30, 31, 32, 14, 33, 34,
|
|
|
- 35, 14, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
|
+ 1, 2, 1, 4, 5, 1, 1, 1, 1, 1,
|
|
|
+ 1, 1, 6, 7, 8, 9, 10, 11, 11, 11,
|
|
|
+ 11, 11, 11, 11, 11, 11, 11, 1, 12, 13,
|
|
|
+ 1, 1, 1, 1, 17, 18, 19, 20, 21, 22,
|
|
|
+ 23, 24, 25, 16, 16, 26, 27, 28, 29, 30,
|
|
|
+ 16, 31, 32, 33, 34, 16, 35, 16, 36, 16,
|
|
|
+ 14, 1, 15, 1, 16, 1, 17, 18, 19, 20,
|
|
|
+
|
|
|
+ 21, 22, 23, 24, 25, 16, 16, 26, 27, 28,
|
|
|
+ 29, 30, 16, 31, 32, 33, 34, 16, 35, 16,
|
|
|
+ 36, 16, 37, 1, 38, 1, 1, 1, 1, 1,
|
|
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
|
@@ -349,106 +353,126 @@ static yyconst int yy_ec[256] =
|
|
|
1, 1, 1, 1, 1
|
|
|
} ;
|
|
|
|
|
|
-static yyconst int yy_meta[36] =
|
|
|
+static yyconst int yy_meta[39] =
|
|
|
{ 0,
|
|
|
1, 1, 2, 1, 1, 1, 1, 3, 3, 1,
|
|
|
- 4, 4, 1, 3, 4, 4, 4, 4, 4, 4,
|
|
|
+ 3, 1, 1, 1, 1, 3, 3, 3, 3, 3,
|
|
|
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
|
|
|
- 3, 3, 3, 3, 3
|
|
|
+ 3, 3, 3, 3, 3, 3, 1, 1
|
|
|
} ;
|
|
|
|
|
|
-static yyconst short int yy_base[104] =
|
|
|
+static yyconst short int yy_base[136] =
|
|
|
{ 0,
|
|
|
- 0, 0, 207, 208, 208, 0, 208, 0, 208, 27,
|
|
|
- 31, 35, 196, 39, 43, 208, 196, 28, 32, 36,
|
|
|
- 44, 40, 47, 50, 53, 54, 0, 0, 49, 63,
|
|
|
- 195, 71, 194, 73, 0, 75, 0, 59, 67, 80,
|
|
|
- 81, 82, 84, 88, 87, 92, 91, 95, 90, 208,
|
|
|
- 95, 0, 0, 111, 112, 96, 99, 113, 101, 118,
|
|
|
- 100, 115, 123, 125, 126, 125, 128, 132, 191, 185,
|
|
|
- 136, 137, 138, 139, 140, 141, 142, 145, 181, 178,
|
|
|
- 143, 144, 175, 174, 153, 149, 173, 159, 164, 172,
|
|
|
- 171, 148, 167, 166, 169, 151, 146, 208, 188, 192,
|
|
|
-
|
|
|
- 194, 198, 61
|
|
|
+ 0, 0, 271, 272, 272, 0, 272, 0, 30, 272,
|
|
|
+ 31, 259, 259, 36, 272, 272, 272, 272, 259, 35,
|
|
|
+ 37, 40, 41, 42, 45, 46, 43, 48, 272, 272,
|
|
|
+ 0, 0, 256, 49, 257, 72, 75, 0, 82, 87,
|
|
|
+ 89, 44, 76, 93, 80, 82, 83, 92, 94, 95,
|
|
|
+ 96, 97, 50, 98, 102, 109, 126, 130, 0, 254,
|
|
|
+ 120, 253, 128, 105, 121, 119, 134, 135, 136, 137,
|
|
|
+ 139, 138, 140, 142, 143, 147, 149, 146, 252, 150,
|
|
|
+ 153, 251, 164, 249, 167, 161, 248, 245, 167, 168,
|
|
|
+ 171, 172, 173, 174, 175, 177, 176, 179, 242, 189,
|
|
|
+
|
|
|
+ 202, 178, 200, 241, 178, 205, 240, 239, 207, 192,
|
|
|
+ 237, 208, 236, 209, 222, 226, 213, 235, 233, 232,
|
|
|
+ 210, 226, 220, 213, 187, 227, 184, 231, 110, 60,
|
|
|
+ 272, 252, 255, 60, 258
|
|
|
} ;
|
|
|
|
|
|
-static yyconst short int yy_def[104] =
|
|
|
+static yyconst short int yy_def[136] =
|
|
|
{ 0,
|
|
|
- 98, 1, 98, 98, 98, 99, 98, 100, 98, 98,
|
|
|
- 101, 98, 98, 98, 98, 98, 101, 101, 101, 101,
|
|
|
- 101, 101, 101, 101, 101, 101, 99, 100, 98, 98,
|
|
|
- 101, 101, 98, 98, 102, 98, 103, 101, 101, 101,
|
|
|
- 101, 101, 101, 101, 101, 101, 101, 101, 101, 98,
|
|
|
- 98, 102, 103, 101, 101, 101, 101, 101, 101, 101,
|
|
|
- 101, 101, 101, 101, 101, 98, 98, 101, 101, 101,
|
|
|
- 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
|
|
|
- 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
|
|
|
- 101, 101, 101, 101, 101, 101, 101, 0, 98, 98,
|
|
|
-
|
|
|
- 98, 98, 98
|
|
|
+ 131, 1, 131, 131, 131, 132, 131, 133, 131, 131,
|
|
|
+ 134, 131, 131, 131, 131, 131, 131, 131, 134, 134,
|
|
|
+ 134, 134, 134, 134, 134, 134, 134, 134, 131, 131,
|
|
|
+ 132, 133, 131, 131, 134, 134, 131, 135, 131, 131,
|
|
|
+ 131, 134, 134, 134, 134, 134, 134, 134, 134, 134,
|
|
|
+ 134, 134, 134, 134, 134, 131, 131, 131, 135, 131,
|
|
|
+ 131, 131, 131, 134, 134, 134, 134, 134, 134, 134,
|
|
|
+ 134, 134, 134, 134, 134, 134, 134, 131, 131, 131,
|
|
|
+ 131, 131, 131, 131, 131, 134, 134, 134, 134, 134,
|
|
|
+ 134, 134, 134, 134, 134, 134, 134, 134, 134, 131,
|
|
|
+
|
|
|
+ 131, 131, 131, 134, 134, 134, 134, 134, 134, 134,
|
|
|
+ 134, 134, 134, 134, 131, 131, 134, 134, 134, 134,
|
|
|
+ 134, 134, 131, 131, 131, 131, 134, 134, 134, 134,
|
|
|
+ 0, 131, 131, 131, 131
|
|
|
} ;
|
|
|
|
|
|
-static yyconst short int yy_nxt[244] =
|
|
|
+static yyconst short int yy_nxt[311] =
|
|
|
{ 0,
|
|
|
4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
|
|
|
- 14, 15, 16, 17, 18, 19, 20, 21, 17, 22,
|
|
|
- 17, 17, 17, 17, 17, 17, 17, 17, 17, 23,
|
|
|
- 24, 25, 26, 17, 17, 29, 98, 30, 30, 29,
|
|
|
- 98, 32, 32, 33, 98, 34, 34, 36, 98, 30,
|
|
|
- 30, 36, 98, 30, 30, 98, 38, 40, 98, 34,
|
|
|
- 34, 98, 98, 44, 53, 41, 39, 98, 46, 47,
|
|
|
- 42, 36, 37, 30, 30, 98, 43, 45, 48, 36,
|
|
|
- 49, 32, 32, 34, 34, 34, 34, 54, 98, 98,
|
|
|
- 98, 51, 98, 51, 56, 98, 98, 55, 98, 98,
|
|
|
-
|
|
|
- 98, 66, 66, 98, 98, 67, 67, 98, 98, 98,
|
|
|
- 59, 57, 63, 58, 60, 61, 62, 64, 65, 98,
|
|
|
- 98, 98, 75, 98, 70, 68, 98, 71, 72, 73,
|
|
|
- 69, 98, 74, 98, 98, 67, 67, 77, 67, 67,
|
|
|
- 98, 78, 76, 79, 98, 98, 98, 98, 98, 98,
|
|
|
- 98, 98, 98, 98, 98, 83, 98, 98, 81, 98,
|
|
|
- 82, 98, 90, 92, 86, 85, 80, 98, 89, 84,
|
|
|
- 87, 88, 98, 91, 98, 98, 93, 98, 95, 98,
|
|
|
- 98, 98, 98, 98, 94, 96, 98, 97, 27, 98,
|
|
|
- 27, 27, 28, 98, 28, 28, 31, 31, 52, 98,
|
|
|
-
|
|
|
- 52, 52, 50, 98, 98, 35, 98, 3, 98, 98,
|
|
|
- 98, 98, 98, 98, 98, 98, 98, 98, 98, 98,
|
|
|
- 98, 98, 98, 98, 98, 98, 98, 98, 98, 98,
|
|
|
- 98, 98, 98, 98, 98, 98, 98, 98, 98, 98,
|
|
|
- 98, 98, 98
|
|
|
+ 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
|
|
|
+ 19, 24, 19, 19, 19, 19, 19, 19, 19, 19,
|
|
|
+ 19, 25, 26, 27, 28, 19, 29, 30, 33, 33,
|
|
|
+ 34, 36, 39, 131, 40, 131, 34, 41, 131, 131,
|
|
|
+ 131, 131, 131, 131, 131, 39, 131, 40, 131, 34,
|
|
|
+ 41, 53, 35, 44, 49, 42, 52, 48, 131, 46,
|
|
|
+ 54, 45, 43, 75, 64, 47, 55, 50, 39, 51,
|
|
|
+ 40, 56, 36, 41, 131, 37, 57, 60, 131, 60,
|
|
|
+ 131, 131, 61, 56, 62, 58, 62, 37, 57, 63,
|
|
|
+
|
|
|
+ 131, 131, 131, 131, 131, 131, 131, 58, 65, 66,
|
|
|
+ 131, 69, 67, 131, 78, 68, 78, 79, 131, 80,
|
|
|
+ 70, 86, 76, 74, 73, 72, 39, 131, 71, 131,
|
|
|
+ 61, 81, 77, 81, 82, 84, 83, 84, 63, 41,
|
|
|
+ 85, 87, 131, 131, 131, 131, 131, 131, 131, 88,
|
|
|
+ 131, 131, 90, 92, 79, 131, 80, 131, 101, 97,
|
|
|
+ 80, 82, 94, 83, 89, 98, 91, 93, 99, 131,
|
|
|
+ 95, 96, 103, 56, 83, 131, 131, 85, 57, 131,
|
|
|
+ 131, 131, 131, 131, 131, 131, 131, 131, 102, 57,
|
|
|
+ 107, 105, 131, 106, 111, 56, 104, 126, 116, 100,
|
|
|
+
|
|
|
+ 131, 110, 112, 109, 108, 117, 113, 114, 56, 115,
|
|
|
+ 102, 57, 100, 131, 120, 131, 131, 131, 131, 56,
|
|
|
+ 116, 131, 115, 124, 121, 118, 119, 123, 122, 123,
|
|
|
+ 124, 125, 124, 125, 131, 127, 126, 126, 57, 131,
|
|
|
+ 131, 131, 128, 131, 131, 131, 129, 131, 131, 131,
|
|
|
+ 131, 130, 31, 131, 31, 32, 131, 32, 59, 85,
|
|
|
+ 59, 102, 100, 63, 61, 131, 37, 131, 38, 37,
|
|
|
+ 131, 3, 131, 131, 131, 131, 131, 131, 131, 131,
|
|
|
+ 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
|
|
|
+ 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
|
|
|
+
|
|
|
+ 131, 131, 131, 131, 131, 131, 131, 131, 131, 131
|
|
|
} ;
|
|
|
|
|
|
-static yyconst short int yy_chk[244] =
|
|
|
+static yyconst short int yy_chk[311] =
|
|
|
{ 0,
|
|
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
|
- 1, 1, 1, 1, 1, 10, 18, 10, 10, 11,
|
|
|
- 19, 11, 11, 12, 20, 12, 12, 14, 22, 14,
|
|
|
- 14, 15, 21, 15, 15, 23, 18, 20, 24, 29,
|
|
|
- 29, 25, 26, 22, 103, 20, 19, 38, 24, 25,
|
|
|
- 21, 30, 14, 30, 30, 39, 21, 23, 25, 32,
|
|
|
- 26, 32, 32, 34, 34, 36, 36, 38, 40, 41,
|
|
|
- 42, 34, 43, 36, 40, 45, 44, 39, 49, 47,
|
|
|
-
|
|
|
- 46, 51, 51, 48, 56, 51, 51, 57, 61, 59,
|
|
|
- 43, 41, 47, 42, 44, 45, 46, 48, 49, 54,
|
|
|
- 55, 58, 61, 62, 56, 54, 60, 57, 58, 59,
|
|
|
- 55, 63, 60, 64, 65, 66, 66, 63, 67, 67,
|
|
|
- 68, 64, 62, 65, 71, 72, 73, 74, 75, 76,
|
|
|
- 77, 81, 82, 78, 97, 73, 92, 86, 71, 96,
|
|
|
- 72, 85, 82, 86, 76, 75, 68, 88, 81, 74,
|
|
|
- 77, 78, 89, 85, 94, 93, 88, 95, 92, 91,
|
|
|
- 90, 87, 84, 83, 89, 93, 80, 95, 99, 79,
|
|
|
- 99, 99, 100, 70, 100, 100, 101, 101, 102, 69,
|
|
|
-
|
|
|
- 102, 102, 33, 31, 17, 13, 3, 98, 98, 98,
|
|
|
- 98, 98, 98, 98, 98, 98, 98, 98, 98, 98,
|
|
|
- 98, 98, 98, 98, 98, 98, 98, 98, 98, 98,
|
|
|
- 98, 98, 98, 98, 98, 98, 98, 98, 98, 98,
|
|
|
- 98, 98, 98
|
|
|
+ 1, 1, 1, 1, 1, 1, 1, 1, 9, 11,
|
|
|
+ 9, 11, 14, 20, 14, 21, 14, 14, 22, 23,
|
|
|
+ 24, 27, 42, 25, 26, 34, 28, 34, 53, 34,
|
|
|
+ 34, 27, 134, 22, 25, 20, 26, 24, 130, 23,
|
|
|
+ 27, 22, 21, 53, 42, 23, 28, 25, 36, 25,
|
|
|
+ 36, 37, 36, 36, 43, 37, 37, 39, 45, 39,
|
|
|
+ 46, 47, 39, 40, 41, 37, 41, 40, 40, 41,
|
|
|
+
|
|
|
+ 48, 44, 49, 50, 51, 52, 54, 40, 43, 44,
|
|
|
+ 55, 47, 45, 64, 56, 46, 56, 56, 129, 56,
|
|
|
+ 48, 64, 54, 52, 51, 50, 61, 66, 49, 65,
|
|
|
+ 61, 57, 55, 57, 57, 58, 57, 58, 63, 63,
|
|
|
+ 58, 65, 67, 68, 69, 70, 72, 71, 73, 66,
|
|
|
+ 74, 75, 68, 70, 78, 76, 78, 77, 80, 75,
|
|
|
+ 80, 81, 72, 81, 67, 76, 69, 71, 77, 86,
|
|
|
+ 73, 74, 83, 85, 83, 89, 90, 85, 85, 91,
|
|
|
+ 92, 93, 94, 95, 97, 96, 105, 98, 102, 102,
|
|
|
+ 91, 89, 127, 90, 95, 100, 86, 125, 102, 100,
|
|
|
+
|
|
|
+ 110, 94, 96, 93, 92, 105, 97, 98, 101, 100,
|
|
|
+ 103, 103, 101, 106, 110, 109, 112, 114, 121, 124,
|
|
|
+ 103, 117, 101, 124, 112, 106, 109, 115, 114, 115,
|
|
|
+ 123, 116, 115, 116, 122, 117, 116, 126, 126, 128,
|
|
|
+ 120, 119, 121, 118, 113, 111, 122, 108, 107, 104,
|
|
|
+ 99, 128, 132, 88, 132, 133, 87, 133, 135, 84,
|
|
|
+ 135, 82, 79, 62, 60, 35, 33, 19, 13, 12,
|
|
|
+ 3, 131, 131, 131, 131, 131, 131, 131, 131, 131,
|
|
|
+ 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
|
|
|
+ 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
|
|
|
+
|
|
|
+ 131, 131, 131, 131, 131, 131, 131, 131, 131, 131
|
|
|
} ;
|
|
|
|
|
|
static yy_state_type yy_last_accepting_state;
|
|
|
@@ -475,6 +499,7 @@ char *yytext;
|
|
|
#include "xParserDefs.h"
|
|
|
#include "xParser.h"
|
|
|
#include "indent.h"
|
|
|
+#include "string_utils.h"
|
|
|
#include "notify.h"
|
|
|
|
|
|
static int yyinput(void); // declared by flex.
|
|
|
@@ -805,6 +830,42 @@ scan_guid_string() {
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
+// Parses the text into a list of integers and returns them.
|
|
|
+static PTA_int
|
|
|
+parse_int_list(const string &text, const string &delimiter) {
|
|
|
+ PTA_int result;
|
|
|
+
|
|
|
+ vector_string words;
|
|
|
+ tokenize(text, words, delimiter);
|
|
|
+
|
|
|
+ vector_string::const_iterator wi;
|
|
|
+ for (wi = words.begin(); wi != words.end(); ++wi) {
|
|
|
+ int number = 0;
|
|
|
+ string_to_int(*wi, number);
|
|
|
+ result.push_back(number);
|
|
|
+ }
|
|
|
+
|
|
|
+ return result;
|
|
|
+}
|
|
|
+
|
|
|
+// Parses the text into a list of doubles and returns them.
|
|
|
+static PTA_double
|
|
|
+parse_double_list(const string &text, const string &delimiter) {
|
|
|
+ PTA_double result;
|
|
|
+
|
|
|
+ vector_string words;
|
|
|
+ tokenize(text, words, delimiter);
|
|
|
+
|
|
|
+ vector_string::const_iterator wi;
|
|
|
+ for (wi = words.begin(); wi != words.end(); ++wi) {
|
|
|
+ double number = 0;
|
|
|
+ string_to_double(*wi, number);
|
|
|
+ result.push_back(number);
|
|
|
+ }
|
|
|
+
|
|
|
+ return result;
|
|
|
+}
|
|
|
+
|
|
|
|
|
|
|
|
|
// accept() is called below as each piece is pulled off and
|
|
|
@@ -813,7 +874,7 @@ inline void accept() {
|
|
|
col_number += yyleng;
|
|
|
}
|
|
|
|
|
|
-#line 818 "lex.yy.c"
|
|
|
+#line 879 "lex.yy.c"
|
|
|
|
|
|
/* Macros after this point can all be overridden by user definitions in
|
|
|
* section 1.
|
|
|
@@ -964,13 +1025,13 @@ YY_DECL
|
|
|
register char *yy_cp = NULL, *yy_bp = NULL;
|
|
|
register int yy_act;
|
|
|
|
|
|
-#line 357 "xLexer.lxx"
|
|
|
+#line 393 "xLexer.lxx"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-#line 975 "lex.yy.c"
|
|
|
+#line 1036 "lex.yy.c"
|
|
|
|
|
|
if ( yy_init )
|
|
|
{
|
|
|
@@ -1021,13 +1082,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 >= 99 )
|
|
|
+ if ( yy_current_state >= 132 )
|
|
|
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_base[yy_current_state] != 208 );
|
|
|
+ while ( yy_base[yy_current_state] != 272 );
|
|
|
|
|
|
yy_find_action:
|
|
|
yy_act = yy_accept[yy_current_state];
|
|
|
@@ -1055,7 +1116,7 @@ do_action: /* This label is used only to access EOF actions. */
|
|
|
|
|
|
case 1:
|
|
|
YY_RULE_SETUP
|
|
|
-#line 362 "xLexer.lxx"
|
|
|
+#line 398 "xLexer.lxx"
|
|
|
{
|
|
|
// New line. Save a copy of the line so we can print it out for the
|
|
|
// benefit of the user in case we get an error.
|
|
|
@@ -1072,7 +1133,7 @@ YY_RULE_SETUP
|
|
|
YY_BREAK
|
|
|
case 2:
|
|
|
YY_RULE_SETUP
|
|
|
-#line 376 "xLexer.lxx"
|
|
|
+#line 412 "xLexer.lxx"
|
|
|
{
|
|
|
// Eat whitespace.
|
|
|
accept();
|
|
|
@@ -1080,7 +1141,7 @@ YY_RULE_SETUP
|
|
|
YY_BREAK
|
|
|
case 3:
|
|
|
YY_RULE_SETUP
|
|
|
-#line 381 "xLexer.lxx"
|
|
|
+#line 417 "xLexer.lxx"
|
|
|
{
|
|
|
// Eat C++-style comments.
|
|
|
accept();
|
|
|
@@ -1088,7 +1149,7 @@ YY_RULE_SETUP
|
|
|
YY_BREAK
|
|
|
case 4:
|
|
|
YY_RULE_SETUP
|
|
|
-#line 386 "xLexer.lxx"
|
|
|
+#line 422 "xLexer.lxx"
|
|
|
{
|
|
|
// Eat sh-style comments.
|
|
|
accept();
|
|
|
@@ -1096,184 +1157,245 @@ YY_RULE_SETUP
|
|
|
YY_BREAK
|
|
|
case 5:
|
|
|
YY_RULE_SETUP
|
|
|
-#line 392 "xLexer.lxx"
|
|
|
+#line 427 "xLexer.lxx"
|
|
|
{
|
|
|
accept();
|
|
|
- return KW_ARRAY;
|
|
|
+ return TOKEN_OBRACE;
|
|
|
}
|
|
|
YY_BREAK
|
|
|
case 6:
|
|
|
YY_RULE_SETUP
|
|
|
-#line 397 "xLexer.lxx"
|
|
|
+#line 432 "xLexer.lxx"
|
|
|
{
|
|
|
accept();
|
|
|
- return KW_BYTE;
|
|
|
+ return TOKEN_CBRACE;
|
|
|
}
|
|
|
YY_BREAK
|
|
|
case 7:
|
|
|
YY_RULE_SETUP
|
|
|
-#line 402 "xLexer.lxx"
|
|
|
+#line 437 "xLexer.lxx"
|
|
|
{
|
|
|
accept();
|
|
|
- return KW_CHAR;
|
|
|
+ return TOKEN_OBRACKET;
|
|
|
}
|
|
|
YY_BREAK
|
|
|
case 8:
|
|
|
YY_RULE_SETUP
|
|
|
-#line 407 "xLexer.lxx"
|
|
|
+#line 442 "xLexer.lxx"
|
|
|
{
|
|
|
accept();
|
|
|
- return KW_CSTRING;
|
|
|
+ return TOKEN_CBRACKET;
|
|
|
}
|
|
|
YY_BREAK
|
|
|
case 9:
|
|
|
YY_RULE_SETUP
|
|
|
-#line 412 "xLexer.lxx"
|
|
|
+#line 447 "xLexer.lxx"
|
|
|
{
|
|
|
accept();
|
|
|
- return KW_DOUBLE;
|
|
|
+ return TOKEN_DOT;
|
|
|
}
|
|
|
YY_BREAK
|
|
|
case 10:
|
|
|
YY_RULE_SETUP
|
|
|
-#line 417 "xLexer.lxx"
|
|
|
+#line 452 "xLexer.lxx"
|
|
|
{
|
|
|
accept();
|
|
|
- return KW_DWORD;
|
|
|
+ return TOKEN_COMMA;
|
|
|
}
|
|
|
YY_BREAK
|
|
|
case 11:
|
|
|
YY_RULE_SETUP
|
|
|
-#line 422 "xLexer.lxx"
|
|
|
+#line 457 "xLexer.lxx"
|
|
|
{
|
|
|
accept();
|
|
|
- return KW_FLOAT;
|
|
|
+ return TOKEN_SEMICOLON;
|
|
|
}
|
|
|
YY_BREAK
|
|
|
case 12:
|
|
|
YY_RULE_SETUP
|
|
|
-#line 427 "xLexer.lxx"
|
|
|
+#line 462 "xLexer.lxx"
|
|
|
{
|
|
|
accept();
|
|
|
- return KW_STRING;
|
|
|
+ return TOKEN_ARRAY;
|
|
|
}
|
|
|
YY_BREAK
|
|
|
case 13:
|
|
|
YY_RULE_SETUP
|
|
|
-#line 432 "xLexer.lxx"
|
|
|
+#line 467 "xLexer.lxx"
|
|
|
{
|
|
|
accept();
|
|
|
- return KW_TEMPLATE;
|
|
|
+ return TOKEN_UCHAR;
|
|
|
}
|
|
|
YY_BREAK
|
|
|
case 14:
|
|
|
YY_RULE_SETUP
|
|
|
-#line 437 "xLexer.lxx"
|
|
|
+#line 472 "xLexer.lxx"
|
|
|
{
|
|
|
accept();
|
|
|
- return KW_UCHAR;
|
|
|
+ return TOKEN_CHAR;
|
|
|
}
|
|
|
YY_BREAK
|
|
|
case 15:
|
|
|
YY_RULE_SETUP
|
|
|
-#line 442 "xLexer.lxx"
|
|
|
+#line 477 "xLexer.lxx"
|
|
|
{
|
|
|
accept();
|
|
|
- return KW_UNICODE;
|
|
|
+ return TOKEN_CSTRING;
|
|
|
}
|
|
|
YY_BREAK
|
|
|
case 16:
|
|
|
YY_RULE_SETUP
|
|
|
-#line 447 "xLexer.lxx"
|
|
|
+#line 482 "xLexer.lxx"
|
|
|
{
|
|
|
accept();
|
|
|
- return KW_WORD;
|
|
|
+ return TOKEN_DOUBLE;
|
|
|
}
|
|
|
YY_BREAK
|
|
|
case 17:
|
|
|
YY_RULE_SETUP
|
|
|
-#line 452 "xLexer.lxx"
|
|
|
+#line 487 "xLexer.lxx"
|
|
|
{
|
|
|
accept();
|
|
|
- return ELLIPSIS;
|
|
|
+ return TOKEN_DWORD;
|
|
|
}
|
|
|
YY_BREAK
|
|
|
case 18:
|
|
|
YY_RULE_SETUP
|
|
|
-#line 457 "xLexer.lxx"
|
|
|
-{
|
|
|
- // A signed or unsigned integer number.
|
|
|
+#line 492 "xLexer.lxx"
|
|
|
+{
|
|
|
accept();
|
|
|
- xyylval.u.s_int = atol(xyytext);
|
|
|
- xyylval.str = yytext;
|
|
|
-
|
|
|
- return INTEGER;
|
|
|
+ return TOKEN_SDWORD;
|
|
|
}
|
|
|
YY_BREAK
|
|
|
case 19:
|
|
|
YY_RULE_SETUP
|
|
|
-#line 466 "xLexer.lxx"
|
|
|
+#line 497 "xLexer.lxx"
|
|
|
{
|
|
|
- // A hexadecimal integer number.
|
|
|
- accept();
|
|
|
-
|
|
|
- // As above, we'll decode the hex string by hand.
|
|
|
- xyylval.str = xyytext;
|
|
|
- xyylval.u.s_int = 0;
|
|
|
- const char *p = xyytext + 2;
|
|
|
- while (*p != '\0') {
|
|
|
- int next_value = xyylval.u.s_int * 16;
|
|
|
- if (next_value < xyylval.u.s_int) {
|
|
|
- xyyerror("Number out of range.");
|
|
|
- xyylval.u.s_int = 1;
|
|
|
- return INTEGER;
|
|
|
- }
|
|
|
-
|
|
|
- if (isalpha(*p)) {
|
|
|
- xyylval.u.s_int = next_value + (tolower(*p) - 'a' + 10);
|
|
|
- } else {
|
|
|
- xyylval.u.s_int = next_value + (*p - '0');
|
|
|
- }
|
|
|
- ++p;
|
|
|
- }
|
|
|
-
|
|
|
- return INTEGER;
|
|
|
+ accept();
|
|
|
+ return TOKEN_FLOAT;
|
|
|
}
|
|
|
YY_BREAK
|
|
|
case 20:
|
|
|
YY_RULE_SETUP
|
|
|
-#line 493 "xLexer.lxx"
|
|
|
-{
|
|
|
- // A floating-point number.
|
|
|
- accept();
|
|
|
- xyylval.u.real = atof(xyytext);
|
|
|
- xyylval.str = xyytext;
|
|
|
- return REAL;
|
|
|
+#line 502 "xLexer.lxx"
|
|
|
+{
|
|
|
+ accept();
|
|
|
+ return TOKEN_LPSTR;
|
|
|
}
|
|
|
YY_BREAK
|
|
|
case 21:
|
|
|
YY_RULE_SETUP
|
|
|
-#line 501 "xLexer.lxx"
|
|
|
+#line 507 "xLexer.lxx"
|
|
|
{
|
|
|
- // Quoted string.
|
|
|
accept();
|
|
|
- xyylval.str = scan_quoted_string('"');
|
|
|
- return STRING;
|
|
|
+ return TOKEN_TEMPLATE;
|
|
|
}
|
|
|
YY_BREAK
|
|
|
case 22:
|
|
|
YY_RULE_SETUP
|
|
|
-#line 508 "xLexer.lxx"
|
|
|
+#line 512 "xLexer.lxx"
|
|
|
{
|
|
|
- // Single-quoted string.
|
|
|
accept();
|
|
|
- xyylval.str = scan_quoted_string('\'');
|
|
|
- return STRING;
|
|
|
+ return TOKEN_UCHAR;
|
|
|
}
|
|
|
YY_BREAK
|
|
|
case 23:
|
|
|
YY_RULE_SETUP
|
|
|
-#line 515 "xLexer.lxx"
|
|
|
+#line 517 "xLexer.lxx"
|
|
|
+{
|
|
|
+ accept();
|
|
|
+ return TOKEN_UNICODE;
|
|
|
+}
|
|
|
+ YY_BREAK
|
|
|
+case 24:
|
|
|
+YY_RULE_SETUP
|
|
|
+#line 522 "xLexer.lxx"
|
|
|
+{
|
|
|
+ accept();
|
|
|
+ return TOKEN_SWORD;
|
|
|
+}
|
|
|
+ YY_BREAK
|
|
|
+case 25:
|
|
|
+YY_RULE_SETUP
|
|
|
+#line 527 "xLexer.lxx"
|
|
|
+{
|
|
|
+ accept();
|
|
|
+ return TOKEN_WORD;
|
|
|
+}
|
|
|
+ YY_BREAK
|
|
|
+case 26:
|
|
|
+YY_RULE_SETUP
|
|
|
+#line 532 "xLexer.lxx"
|
|
|
+{
|
|
|
+ // A signed or unsigned integer number.
|
|
|
+ accept();
|
|
|
+ xyylval.u.number = atol(xyytext);
|
|
|
+ xyylval.str = yytext;
|
|
|
+
|
|
|
+ return TOKEN_INTEGER;
|
|
|
+}
|
|
|
+ YY_BREAK
|
|
|
+case 27:
|
|
|
+YY_RULE_SETUP
|
|
|
+#line 541 "xLexer.lxx"
|
|
|
+{
|
|
|
+ // An integer as part of a semicolon-delimited list.
|
|
|
+ accept();
|
|
|
+ xyylval.int_list = parse_int_list(xyytext, ";");
|
|
|
+ xyylval.u.separator_token = TOKEN_SEMICOLON;
|
|
|
+
|
|
|
+ return TOKEN_INTEGER_LIST;
|
|
|
+}
|
|
|
+ YY_BREAK
|
|
|
+case 28:
|
|
|
+YY_RULE_SETUP
|
|
|
+#line 550 "xLexer.lxx"
|
|
|
+{
|
|
|
+ // A floating-point number as part of a semicolon-delimited list.
|
|
|
+ accept();
|
|
|
+ xyylval.double_list = parse_double_list(xyytext, ";");
|
|
|
+ xyylval.u.separator_token = TOKEN_SEMICOLON;
|
|
|
+
|
|
|
+ return TOKEN_REALNUM_LIST;
|
|
|
+}
|
|
|
+ YY_BREAK
|
|
|
+case 29:
|
|
|
+YY_RULE_SETUP
|
|
|
+#line 559 "xLexer.lxx"
|
|
|
+{
|
|
|
+ // An integer as part of a semicolon-delimited list.
|
|
|
+ accept();
|
|
|
+ xyylval.int_list = parse_int_list(xyytext, ",");
|
|
|
+ xyylval.u.separator_token = TOKEN_COMMA;
|
|
|
+
|
|
|
+ return TOKEN_INTEGER_LIST;
|
|
|
+}
|
|
|
+ YY_BREAK
|
|
|
+case 30:
|
|
|
+YY_RULE_SETUP
|
|
|
+#line 568 "xLexer.lxx"
|
|
|
+{
|
|
|
+ // A floating-point number as part of a semicolon-delimited list.
|
|
|
+ accept();
|
|
|
+ xyylval.double_list = parse_double_list(xyytext, ",");
|
|
|
+ xyylval.u.separator_token = TOKEN_COMMA;
|
|
|
+
|
|
|
+ return TOKEN_REALNUM_LIST;
|
|
|
+}
|
|
|
+ YY_BREAK
|
|
|
+case 31:
|
|
|
+YY_RULE_SETUP
|
|
|
+#line 577 "xLexer.lxx"
|
|
|
+{
|
|
|
+ // Quoted string.
|
|
|
+ accept();
|
|
|
+ xyylval.str = scan_quoted_string('"');
|
|
|
+ return TOKEN_STRING;
|
|
|
+}
|
|
|
+ YY_BREAK
|
|
|
+case 32:
|
|
|
+YY_RULE_SETUP
|
|
|
+#line 584 "xLexer.lxx"
|
|
|
{
|
|
|
// Long GUID string.
|
|
|
accept();
|
|
|
@@ -1283,34 +1405,25 @@ YY_RULE_SETUP
|
|
|
xyyerror("Malformed GUID.");
|
|
|
}
|
|
|
|
|
|
- return WINDOWS_GUID;
|
|
|
+ return TOKEN_GUID;
|
|
|
}
|
|
|
YY_BREAK
|
|
|
-case 24:
|
|
|
+case 33:
|
|
|
YY_RULE_SETUP
|
|
|
-#line 527 "xLexer.lxx"
|
|
|
+#line 596 "xLexer.lxx"
|
|
|
{
|
|
|
// Identifier.
|
|
|
accept();
|
|
|
xyylval.str = xyytext;
|
|
|
- return IDENTIFIER;
|
|
|
+ return TOKEN_NAME;
|
|
|
}
|
|
|
YY_BREAK
|
|
|
-case 25:
|
|
|
+case 34:
|
|
|
YY_RULE_SETUP
|
|
|
-#line 535 "xLexer.lxx"
|
|
|
-{
|
|
|
- // Send any other printable character as itself.
|
|
|
- accept();
|
|
|
- return xyytext[0];
|
|
|
-}
|
|
|
- YY_BREAK
|
|
|
-case 26:
|
|
|
-YY_RULE_SETUP
|
|
|
-#line 541 "xLexer.lxx"
|
|
|
+#line 604 "xLexer.lxx"
|
|
|
ECHO;
|
|
|
YY_BREAK
|
|
|
-#line 1315 "lex.yy.c"
|
|
|
+#line 1428 "lex.yy.c"
|
|
|
case YY_STATE_EOF(INITIAL):
|
|
|
yyterminate();
|
|
|
|
|
|
@@ -1602,7 +1715,7 @@ static yy_state_type yy_get_previous_state()
|
|
|
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 >= 99 )
|
|
|
+ if ( yy_current_state >= 132 )
|
|
|
yy_c = yy_meta[(unsigned int) yy_c];
|
|
|
}
|
|
|
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
|
|
|
@@ -1637,11 +1750,11 @@ yy_state_type yy_current_state;
|
|
|
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 >= 99 )
|
|
|
+ if ( yy_current_state >= 132 )
|
|
|
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 == 98);
|
|
|
+ yy_is_jam = (yy_current_state == 131);
|
|
|
|
|
|
return yy_is_jam ? 0 : yy_current_state;
|
|
|
}
|
|
|
@@ -2191,4 +2304,4 @@ int main()
|
|
|
return 0;
|
|
|
}
|
|
|
#endif
|
|
|
-#line 541 "xLexer.lxx"
|
|
|
+#line 604 "xLexer.lxx"
|