Author: kjs
Date: Fri Aug 22 02:57:34 2008
New Revision: 30436
Modified:
trunk/compilers/pirc/new/pir.l
trunk/compilers/pirc/new/pirlexer.c
trunk/compilers/pirc/new/pirlexer.h
Log:
[pirc/new] improve lexer to handle difference between '.' concat and '.' method
call dot.
{WS}"."{WS} means concatenation (as in $P0 . $P1)
{WS}"." means concatenation (as in $P0 .$P1)
"."{WS} means concatenation (as in $P0. $P1)
"." means method call (as in $P0.$P1)
Modified: trunk/compilers/pirc/new/pir.l
==============================================================================
--- trunk/compilers/pirc/new/pir.l (original)
+++ trunk/compilers/pirc/new/pir.l Fri Aug 22 02:57:34 2008
@@ -287,9 +287,22 @@
{WS}"."{WS} { /* if the dot is surrounded by whitespace, it's a concatenation
operator */
return TK_CONC;
}
-".." { return TK_CONC; }
-"." { return '.'; }
+{WS}"." { /* $P0 .$P1 means concatenation */
+ return TK_CONC;
+ }
+
+"."{WS} { /* $P0. $P1 means concatenation */
+ return TK_CONC;
+ }
+
+"." { /* at this point all dot-whitespace combinations have been
covered;
+ * so we can be sure that the dot does not have any surrounding
+ * whitespace: that's the method-call dot, as in $P0.$P1().
+ */
+ return '.';
+ }
+
"=" { return '='; }
";" { return ';'; }
Modified: trunk/compilers/pirc/new/pirlexer.c
==============================================================================
--- trunk/compilers/pirc/new/pirlexer.c (original)
+++ trunk/compilers/pirc/new/pirlexer.c Fri Aug 22 02:57:34 2008
@@ -444,8 +444,8 @@
yyg->yy_c_buf_p = yy_cp;
/* %% [4.0] data tables for the DFA and the user's section 1 definitions go
here */
-#define YY_NUM_RULES 121
-#define YY_END_OF_BUFFER 122
+#define YY_NUM_RULES 122
+#define YY_END_OF_BUFFER 123
/* This struct is not used in this scanner,
but its presence is necessary. */
struct yy_trans_info
@@ -455,49 +455,49 @@
};
static yyconst flex_int16_t yy_accept[399] =
{ 0,
- 0, 0, 122, 120, 1, 3, 1, 24, 120, 120,
- 120, 21, 120, 120, 27, 28, 22, 20, 29, 26,
- 34, 23, 116, 116, 120, 36, 14, 35, 15, 114,
- 30, 31, 114, 114, 114, 114, 114, 114, 114, 114,
- 114, 114, 120, 25, 0, 3, 3, 11, 0, 108,
- 0, 0, 2, 0, 0, 0, 0, 41, 17, 44,
- 0, 0, 40, 0, 116, 37, 38, 33, 115, 47,
+ 0, 0, 123, 121, 1, 3, 1, 24, 121, 121,
+ 121, 21, 121, 121, 27, 28, 22, 20, 29, 26,
+ 35, 23, 117, 117, 121, 37, 14, 36, 15, 115,
+ 30, 31, 115, 115, 115, 115, 115, 115, 115, 115,
+ 115, 115, 121, 25, 33, 3, 3, 11, 0, 109,
+ 0, 0, 2, 0, 0, 0, 0, 42, 17, 45,
+ 0, 0, 41, 0, 117, 38, 39, 34, 116, 48,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 16, 39, 115, 0, 0, 0,
+ 0, 0, 0, 0, 16, 40, 116, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 8, 12, 10, 9, 13, 7, 114, 113,
- 114, 114, 114, 114, 48, 114, 114, 114, 114, 114,
- 114, 114, 114, 43, 18, 46, 19, 32, 112, 111,
- 109, 110, 42, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 8, 12, 10, 9, 13, 7, 115, 114,
+ 115, 115, 115, 115, 49, 115, 115, 115, 115, 115,
+ 115, 115, 115, 44, 18, 47, 19, 32, 113, 112,
+ 110, 111, 43, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 45, 115, 118, 0, 115, 119, 117, 0,
+ 0, 0, 46, 116, 119, 0, 116, 120, 118, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 6, 5, 53, 56, 114,
- 114, 58, 55, 114, 59, 60, 52, 114, 54, 114,
- 0, 115, 67, 62, 0, 0, 0, 64, 0, 0,
+ 0, 0, 0, 0, 0, 6, 5, 54, 57, 115,
+ 115, 59, 56, 115, 60, 61, 53, 115, 55, 115,
+ 0, 116, 68, 63, 0, 0, 0, 65, 0, 0,
- 0, 70, 0, 0, 0, 0, 0, 0, 0, 0,
- 86, 0, 0, 0, 0, 0, 0, 0, 95, 0,
+ 0, 71, 0, 0, 0, 0, 0, 0, 0, 0,
+ 87, 0, 0, 0, 0, 0, 0, 0, 96, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 4, 57, 49, 51, 114, 114, 0, 0, 80, 0,
+ 4, 58, 50, 52, 115, 115, 0, 0, 81, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 88, 106, 0, 89, 0, 0, 0,
- 90, 93, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 114, 114, 0, 0, 63, 0, 0, 0,
- 0, 0, 0, 0, 72, 0, 0, 0, 76, 0,
- 0, 87, 0, 0, 0, 99, 0, 98, 105, 0,
+ 0, 0, 0, 89, 107, 0, 90, 0, 0, 0,
+ 91, 94, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 115, 115, 0, 0, 64, 0, 0, 0,
+ 0, 0, 0, 0, 73, 0, 0, 0, 77, 0,
+ 0, 88, 0, 0, 0, 100, 0, 99, 106, 0,
- 0, 96, 0, 0, 0, 0, 61, 50, 0, 0,
+ 0, 97, 0, 0, 0, 0, 62, 51, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 84, 85, 0, 0, 0, 94, 0, 0, 0, 104,
- 0, 97, 68, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 71, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 81, 0, 0, 0,
- 0, 69, 0, 0, 75, 0, 0, 107, 103, 102,
- 91, 0, 0, 0, 0, 0, 83, 0, 0, 73,
- 74, 92, 0, 0, 77, 0, 0, 82, 0, 0,
- 100, 101, 0, 79, 65, 66, 78, 0
+ 85, 86, 0, 0, 0, 95, 0, 0, 0, 105,
+ 0, 98, 69, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 72, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 82, 0, 0, 0,
+ 0, 70, 0, 0, 76, 0, 0, 108, 104, 103,
+ 92, 0, 0, 0, 0, 0, 84, 0, 0, 74,
+ 75, 93, 0, 0, 78, 0, 0, 83, 0, 0,
+ 101, 102, 0, 80, 66, 67, 79, 0
} ;
@@ -546,51 +546,51 @@
static yyconst flex_int16_t yy_base[404] =
{ 0,
- 0, 0, 606, 607, 586, 68, 69, 576, 67, 600,
- 40, 574, 65, 589, 607, 607, 63, 62, 607, 73,
- 92, 78, 141, 100, 162, 607, 72, 74, 76, 575,
- 607, 607, 82, 64, 83, 87, 84, 92, 102, 105,
- 130, 100, 100, 101, 132, 173, 181, 607, 160, 607,
- 0, 596, 607, 174, 188, 207, 211, 607, 607, 607,
- 586, 569, 607, 215, 221, 607, 607, 607, 225, 607,
- 560, 534, 544, 123, 536, 32, 535, 127, 541, 141,
- 544, 539, 524, 533, 558, 607, 229, 150, 243, 179,
- 0, 528, 529, 148, 156, 210, 537, 204, 524, 526,
-
- 523, 516, 607, 607, 607, 607, 607, 194, 553, 607,
- 232, 127, 216, 230, 552, 244, 247, 248, 251, 252,
- 253, 258, 255, 607, 607, 607, 607, 607, 263, 267,
- 273, 295, 607, 304, 540, 523, 522, 518, 515, 522,
- 507, 511, 503, 501, 252, 503, 509, 510, 502, 246,
- 515, 511, 607, 308, 290, 312, 316, 321, 0, 502,
- 513, 502, 259, 491, 510, 501, 491, 498, 496, 488,
- 487, 487, 484, 493, 500, 607, 517, 519, 518, 281,
- 298, 517, 516, 320, 515, 514, 513, 322, 512, 165,
- 327, 331, 491, 607, 481, 479, 471, 487, 486, 483,
-
- 471, 607, 479, 481, 473, 475, 479, 477, 458, 457,
- 607, 465, 462, 455, 467, 453, 452, 456, 459, 463,
- 454, 457, 446, 458, 247, 457, 443, 444, 444, 456,
- 607, 477, 476, 475, 332, 334, 443, 441, 607, 434,
- 312, 435, 449, 446, 438, 437, 446, 428, 441, 432,
- 432, 425, 436, 607, 607, 435, 607, 437, 434, 432,
- 607, 607, 422, 425, 429, 426, 418, 414, 426, 414,
- 408, 416, 336, 337, 424, 424, 607, 422, 417, 412,
- 415, 409, 417, 408, 607, 413, 401, 413, 607, 395,
- 400, 607, 402, 398, 408, 607, 404, 607, 607, 397,
-
- 394, 607, 392, 382, 398, 397, 421, 420, 385, 316,
- 388, 379, 391, 378, 391, 381, 390, 390, 389, 379,
- 607, 607, 387, 384, 374, 607, 384, 383, 372, 607,
- 382, 607, 607, 380, 375, 370, 368, 358, 366, 356,
- 361, 355, 607, 362, 368, 360, 351, 359, 338, 346,
- 342, 336, 333, 338, 329, 341, 607, 329, 338, 331,
- 328, 607, 329, 332, 607, 331, 322, 607, 607, 607,
- 607, 328, 319, 308, 316, 313, 607, 306, 306, 607,
- 607, 607, 316, 314, 607, 304, 314, 607, 220, 162,
- 607, 607, 101, 607, 607, 607, 607, 607, 399, 403,
+ 0, 0, 608, 609, 588, 68, 69, 578, 67, 602,
+ 40, 576, 65, 591, 609, 609, 63, 62, 609, 73,
+ 109, 78, 158, 96, 179, 609, 72, 74, 76, 577,
+ 609, 609, 87, 62, 96, 64, 83, 84, 98, 82,
+ 110, 101, 99, 100, 137, 147, 181, 609, 144, 609,
+ 0, 598, 609, 171, 179, 188, 196, 609, 609, 609,
+ 588, 571, 609, 205, 226, 609, 609, 609, 230, 609,
+ 562, 536, 546, 139, 538, 205, 537, 148, 543, 167,
+ 546, 541, 526, 535, 560, 609, 244, 103, 263, 200,
+ 0, 530, 531, 97, 181, 211, 539, 205, 526, 528,
+
+ 525, 518, 609, 609, 609, 609, 609, 160, 555, 609,
+ 207, 217, 150, 215, 554, 233, 237, 245, 247, 246,
+ 153, 258, 248, 609, 609, 609, 609, 609, 267, 289,
+ 293, 297, 609, 306, 542, 525, 524, 520, 517, 524,
+ 509, 513, 505, 503, 251, 505, 511, 512, 504, 244,
+ 517, 513, 609, 310, 304, 314, 318, 323, 0, 504,
+ 515, 504, 293, 493, 512, 503, 493, 500, 498, 490,
+ 489, 489, 486, 495, 502, 609, 519, 521, 520, 283,
+ 298, 519, 518, 249, 517, 516, 515, 324, 514, 122,
+ 329, 340, 493, 609, 483, 481, 473, 489, 488, 485,
+
+ 473, 609, 481, 483, 475, 477, 481, 479, 460, 459,
+ 609, 467, 464, 457, 469, 455, 454, 458, 461, 465,
+ 456, 459, 448, 460, 248, 459, 445, 446, 446, 458,
+ 609, 479, 478, 477, 329, 332, 445, 443, 609, 436,
+ 318, 437, 451, 448, 440, 439, 448, 430, 443, 434,
+ 434, 427, 438, 609, 609, 437, 609, 439, 436, 434,
+ 609, 609, 424, 427, 431, 428, 420, 416, 428, 416,
+ 410, 418, 340, 334, 426, 426, 609, 424, 419, 414,
+ 417, 411, 419, 410, 609, 415, 403, 415, 609, 397,
+ 402, 609, 404, 400, 410, 609, 406, 609, 609, 399,
+
+ 396, 609, 394, 384, 400, 399, 423, 422, 387, 320,
+ 390, 381, 393, 380, 393, 383, 392, 392, 391, 381,
+ 609, 609, 389, 386, 376, 609, 386, 385, 374, 609,
+ 384, 609, 609, 382, 377, 372, 370, 360, 368, 358,
+ 363, 357, 609, 364, 370, 362, 353, 365, 351, 361,
+ 357, 352, 345, 343, 332, 343, 609, 330, 341, 334,
+ 331, 609, 329, 333, 609, 332, 322, 609, 609, 609,
+ 609, 327, 321, 311, 319, 316, 609, 309, 309, 609,
+ 609, 609, 319, 317, 609, 306, 249, 609, 184, 144,
+ 609, 609, 87, 609, 609, 609, 609, 609, 396, 400,
- 407, 409, 140
+ 404, 406, 79
} ;
static yyconst flex_int16_t yy_def[404] =
@@ -642,7 +642,7 @@
398, 398, 398
} ;
-static yyconst flex_int16_t yy_nxt[677] =
+static yyconst flex_int16_t yy_nxt[679] =
{ 0,
4, 5, 6, 5, 7, 8, 9, 10, 11, 12,
13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
@@ -652,75 +652,75 @@
35, 36, 30, 37, 30, 38, 39, 30, 40, 30,
30, 41, 30, 42, 30, 30, 30, 43, 44, 46,
46, 47, 46, 50, 54, 59, 55, 62, 56, 57,
- 64, 141, 65, 65, 65, 65, 142, 45, 110, 66,
+ 64, 159, 65, 65, 65, 65, 110, 45, 110, 66,
63, 64, 60, 65, 65, 65, 65, 85, 103, 104,
67, 105, 106, 107, 108, 86, 110, 110, 110, 51,
- 68, 110, 69, 69, 69, 69, 110, 112, 87, 70,
- 65, 65, 65, 65, 110, 71, 110, 124, 126, 110,
- 111, 113, 89, 128, 115, 128, 128, 72, 73, 74,
- 116, 75, 159, 76, 114, 77, 78, 79, 80, 89,
- 81, 110, 82, 83, 110, 117, 123, 397, 84, 87,
- 119, 65, 65, 65, 65, 118, 50, 125, 138, 127,
- 155, 155, 88, 89, 46, 46, 144, 46, 90, 120,
- 139, 91, 46, 46, 145, 46, 147, 88, 148, 110,
- 89, 179, 121, 122, 129, 129, 129, 129, 90, 158,
-
- 158, 158, 51, 162, 163, 164, 91, 92, 130, 130,
- 130, 130, 93, 165, 236, 94, 95, 96, 97, 98,
- 99, 176, 177, 100, 396, 101, 102, 131, 131, 131,
- 131, 132, 132, 132, 132, 69, 69, 69, 69, 87,
- 110, 65, 65, 65, 65, 69, 69, 69, 69, 154,
- 154, 154, 154, 89, 110, 166, 110, 134, 156, 167,
- 156, 134, 170, 157, 157, 157, 157, 171, 110, 180,
- 89, 110, 110, 168, 134, 110, 110, 110, 134, 110,
- 178, 395, 110, 129, 129, 129, 129, 130, 130, 130,
- 130, 266, 181, 131, 131, 131, 131, 203, 186, 204,
-
- 267, 183, 184, 185, 189, 110, 182, 209, 210, 190,
- 155, 155, 216, 188, 187, 132, 132, 132, 132, 191,
- 217, 191, 110, 218, 192, 192, 192, 192, 154, 154,
- 154, 154, 157, 157, 157, 157, 157, 157, 157, 157,
- 134, 158, 158, 158, 110, 232, 110, 192, 192, 192,
- 192, 192, 192, 192, 192, 233, 110, 134, 110, 278,
- 110, 110, 394, 334, 393, 392, 391, 390, 389, 388,
- 387, 386, 279, 385, 234, 235, 335, 384, 280, 383,
- 382, 381, 336, 380, 379, 378, 377, 307, 273, 376,
- 375, 374, 373, 372, 371, 274, 370, 369, 308, 49,
-
- 368, 49, 49, 52, 52, 52, 52, 61, 367, 61,
- 61, 109, 109, 366, 365, 364, 363, 362, 361, 360,
- 359, 358, 357, 356, 355, 354, 353, 352, 351, 350,
- 349, 348, 347, 346, 345, 344, 343, 342, 341, 340,
- 339, 338, 337, 333, 110, 110, 332, 331, 330, 329,
- 328, 327, 326, 325, 324, 323, 322, 321, 320, 319,
- 318, 317, 316, 315, 314, 313, 312, 311, 310, 309,
- 306, 305, 304, 303, 302, 301, 300, 299, 298, 297,
- 296, 295, 294, 293, 292, 291, 290, 289, 288, 287,
- 286, 285, 284, 283, 282, 281, 277, 276, 275, 110,
-
- 110, 110, 272, 271, 270, 269, 268, 265, 264, 263,
- 262, 261, 260, 259, 258, 257, 256, 255, 254, 253,
- 252, 251, 250, 249, 248, 247, 246, 245, 244, 243,
- 242, 241, 240, 239, 238, 237, 110, 110, 110, 110,
- 110, 110, 110, 110, 231, 230, 229, 228, 227, 226,
- 225, 224, 223, 222, 221, 220, 219, 215, 214, 213,
- 212, 211, 208, 207, 206, 205, 202, 201, 200, 199,
- 198, 197, 196, 195, 194, 193, 110, 110, 175, 174,
- 173, 172, 169, 161, 160, 153, 152, 151, 150, 149,
- 146, 143, 140, 137, 136, 135, 133, 50, 53, 110,
+ 68, 110, 68, 68, 87, 112, 65, 65, 65, 65,
+ 110, 114, 110, 155, 155, 110, 124, 126, 89, 69,
+ 69, 69, 69, 115, 110, 111, 70, 119, 128, 116,
+ 128, 128, 71, 397, 113, 89, 110, 117, 46, 46,
+ 50, 46, 162, 163, 72, 73, 74, 123, 75, 120,
+ 76, 118, 77, 78, 79, 80, 125, 81, 127, 82,
+ 83, 236, 121, 122, 110, 84, 87, 110, 65, 65,
+ 65, 65, 46, 46, 138, 46, 51, 176, 177, 88,
+ 89, 129, 129, 129, 129, 90, 139, 144, 91, 130,
+
+ 130, 130, 130, 180, 88, 145, 396, 89, 131, 131,
+ 131, 131, 147, 188, 148, 90, 132, 132, 132, 132,
+ 158, 158, 158, 91, 92, 69, 69, 69, 69, 93,
+ 164, 110, 94, 95, 96, 97, 98, 99, 165, 110,
+ 100, 110, 101, 102, 87, 395, 65, 65, 65, 65,
+ 69, 69, 69, 69, 141, 178, 166, 110, 89, 142,
+ 167, 110, 134, 170, 154, 154, 154, 154, 171, 110,
+ 110, 110, 110, 110, 168, 89, 134, 181, 156, 134,
+ 156, 179, 110, 157, 157, 157, 157, 129, 129, 129,
+ 129, 183, 266, 134, 186, 182, 203, 394, 204, 184,
+
+ 185, 267, 190, 234, 189, 209, 210, 110, 187, 130,
+ 130, 130, 130, 131, 131, 131, 131, 132, 132, 132,
+ 132, 191, 110, 191, 155, 155, 192, 192, 192, 192,
+ 154, 154, 154, 154, 157, 157, 157, 157, 157, 157,
+ 157, 157, 134, 158, 158, 158, 216, 232, 110, 192,
+ 192, 192, 192, 110, 217, 233, 110, 218, 110, 134,
+ 192, 192, 192, 192, 110, 278, 393, 334, 392, 391,
+ 390, 389, 388, 387, 386, 385, 384, 235, 279, 383,
+ 335, 382, 381, 380, 280, 273, 336, 379, 378, 377,
+ 376, 307, 375, 274, 374, 308, 49, 373, 49, 49,
+
+ 52, 52, 52, 52, 61, 372, 61, 61, 109, 109,
+ 371, 370, 369, 368, 367, 366, 365, 364, 363, 362,
+ 361, 360, 359, 358, 357, 356, 355, 354, 353, 352,
+ 351, 350, 349, 348, 347, 346, 345, 344, 343, 342,
+ 341, 340, 339, 338, 337, 333, 110, 110, 332, 331,
+ 330, 329, 328, 327, 326, 325, 324, 323, 322, 321,
+ 320, 319, 318, 317, 316, 315, 314, 313, 312, 311,
+ 310, 309, 306, 305, 304, 303, 302, 301, 300, 299,
+ 298, 297, 296, 295, 294, 293, 292, 291, 290, 289,
+ 288, 287, 286, 285, 284, 283, 282, 281, 277, 276,
+
+ 275, 110, 110, 110, 272, 271, 270, 269, 268, 265,
+ 264, 263, 262, 261, 260, 259, 258, 257, 256, 255,
+ 254, 253, 252, 251, 250, 249, 248, 247, 246, 245,
+ 244, 243, 242, 241, 240, 239, 238, 237, 110, 110,
+ 110, 110, 110, 110, 110, 110, 231, 230, 229, 228,
+ 227, 226, 225, 224, 223, 222, 221, 220, 219, 215,
+ 214, 213, 212, 211, 208, 207, 206, 205, 202, 201,
+ 200, 199, 198, 197, 196, 195, 194, 193, 110, 110,
+ 175, 174, 173, 172, 169, 161, 160, 153, 152, 151,
+ 150, 149, 146, 143, 140, 137, 136, 135, 133, 50,
- 50, 58, 53, 48, 45, 398, 3, 398, 398, 398,
+ 53, 110, 50, 58, 53, 48, 45, 398, 3, 398,
398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
- 398, 398, 398, 398, 398, 398
+ 398, 398, 398, 398, 398, 398, 398, 398
} ;
-static yyconst flex_int16_t yy_chk[677] =
+static yyconst flex_int16_t yy_chk[679] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -730,76 +730,76 @@
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 6,
6, 7, 6, 9, 11, 13, 11, 17, 11, 11,
- 18, 76, 18, 18, 18, 18, 76, 7, 34, 18,
+ 18, 403, 18, 18, 18, 18, 34, 7, 36, 18,
17, 20, 13, 20, 20, 20, 20, 22, 27, 27,
- 20, 28, 28, 29, 29, 22, 33, 35, 37, 9,
- 21, 36, 21, 21, 21, 21, 38, 34, 24, 21,
- 24, 24, 24, 24, 42, 21, 39, 43, 44, 40,
- 33, 35, 24, 45, 37, 45, 45, 21, 21, 21,
- 37, 21, 403, 21, 36, 21, 21, 21, 21, 24,
- 21, 112, 21, 21, 41, 38, 42, 393, 21, 23,
- 40, 23, 23, 23, 23, 39, 49, 43, 74, 44,
- 88, 88, 23, 23, 46, 46, 78, 46, 23, 41,
- 74, 23, 47, 47, 78, 47, 80, 23, 80, 190,
- 23, 112, 41, 41, 54, 54, 54, 54, 23, 90,
-
- 90, 90, 49, 94, 94, 95, 23, 25, 55, 55,
- 55, 55, 25, 95, 190, 25, 25, 25, 25, 25,
- 25, 108, 108, 25, 390, 25, 25, 56, 56, 56,
- 56, 57, 57, 57, 57, 64, 64, 64, 64, 65,
- 113, 65, 65, 65, 65, 69, 69, 69, 69, 87,
- 87, 87, 87, 65, 114, 96, 111, 69, 89, 96,
- 89, 87, 98, 89, 89, 89, 89, 98, 116, 113,
- 65, 117, 118, 96, 69, 119, 120, 121, 87, 123,
- 111, 389, 122, 129, 129, 129, 129, 130, 130, 130,
- 130, 225, 114, 131, 131, 131, 131, 145, 119, 145,
-
- 225, 117, 118, 118, 122, 180, 116, 150, 150, 123,
- 155, 155, 163, 121, 120, 132, 132, 132, 132, 134,
- 163, 134, 181, 163, 134, 134, 134, 134, 154, 154,
- 154, 154, 156, 156, 156, 156, 157, 157, 157, 157,
- 154, 158, 158, 158, 184, 180, 188, 191, 191, 191,
- 191, 192, 192, 192, 192, 181, 235, 154, 236, 241,
- 273, 274, 387, 310, 386, 384, 383, 379, 378, 376,
- 375, 374, 241, 373, 184, 188, 310, 372, 241, 367,
- 366, 364, 310, 363, 361, 360, 359, 273, 235, 358,
- 356, 355, 354, 353, 352, 236, 351, 350, 274, 399,
-
- 349, 399, 399, 400, 400, 400, 400, 401, 348, 401,
- 401, 402, 402, 347, 346, 345, 344, 342, 341, 340,
- 339, 338, 337, 336, 335, 334, 331, 329, 328, 327,
- 325, 324, 323, 320, 319, 318, 317, 316, 315, 314,
- 313, 312, 311, 309, 308, 307, 306, 305, 304, 303,
- 301, 300, 297, 295, 294, 293, 291, 290, 288, 287,
- 286, 284, 283, 282, 281, 280, 279, 278, 276, 275,
- 272, 271, 270, 269, 268, 267, 266, 265, 264, 263,
- 260, 259, 258, 256, 253, 252, 251, 250, 249, 248,
- 247, 246, 245, 244, 243, 242, 240, 238, 237, 234,
-
- 233, 232, 230, 229, 228, 227, 226, 224, 223, 222,
- 221, 220, 219, 218, 217, 216, 215, 214, 213, 212,
- 210, 209, 208, 207, 206, 205, 204, 203, 201, 200,
- 199, 198, 197, 196, 195, 193, 189, 187, 186, 185,
- 183, 182, 179, 178, 177, 175, 174, 173, 172, 171,
- 170, 169, 168, 167, 166, 165, 164, 162, 161, 160,
- 152, 151, 149, 148, 147, 146, 144, 143, 142, 141,
- 140, 139, 138, 137, 136, 135, 115, 109, 102, 101,
- 100, 99, 97, 93, 92, 85, 84, 83, 82, 81,
- 79, 77, 75, 73, 72, 71, 62, 61, 52, 30,
+ 20, 28, 28, 29, 29, 22, 40, 37, 38, 9,
+ 21, 33, 21, 21, 24, 34, 24, 24, 24, 24,
+ 35, 36, 39, 88, 88, 42, 43, 44, 24, 21,
+ 21, 21, 21, 37, 41, 33, 21, 40, 45, 37,
+ 45, 45, 21, 393, 35, 24, 190, 38, 46, 46,
+ 49, 46, 94, 94, 21, 21, 21, 42, 21, 41,
+ 21, 39, 21, 21, 21, 21, 43, 21, 44, 21,
+ 21, 190, 41, 41, 113, 21, 23, 121, 23, 23,
+ 23, 23, 47, 47, 74, 47, 49, 108, 108, 23,
+ 23, 54, 54, 54, 54, 23, 74, 78, 23, 55,
+
+ 55, 55, 55, 113, 23, 78, 390, 23, 56, 56,
+ 56, 56, 80, 121, 80, 23, 57, 57, 57, 57,
+ 90, 90, 90, 23, 25, 64, 64, 64, 64, 25,
+ 95, 111, 25, 25, 25, 25, 25, 25, 95, 114,
+ 25, 112, 25, 25, 65, 389, 65, 65, 65, 65,
+ 69, 69, 69, 69, 76, 111, 96, 116, 65, 76,
+ 96, 117, 69, 98, 87, 87, 87, 87, 98, 118,
+ 120, 119, 123, 184, 96, 65, 87, 114, 89, 69,
+ 89, 112, 122, 89, 89, 89, 89, 129, 129, 129,
+ 129, 117, 225, 87, 119, 116, 145, 387, 145, 118,
+
+ 118, 225, 123, 184, 122, 150, 150, 180, 120, 130,
+ 130, 130, 130, 131, 131, 131, 131, 132, 132, 132,
+ 132, 134, 181, 134, 155, 155, 134, 134, 134, 134,
+ 154, 154, 154, 154, 156, 156, 156, 156, 157, 157,
+ 157, 157, 154, 158, 158, 158, 163, 180, 188, 191,
+ 191, 191, 191, 235, 163, 181, 236, 163, 274, 154,
+ 192, 192, 192, 192, 273, 241, 386, 310, 384, 383,
+ 379, 378, 376, 375, 374, 373, 372, 188, 241, 367,
+ 310, 366, 364, 363, 241, 235, 310, 361, 360, 359,
+ 358, 273, 356, 236, 355, 274, 399, 354, 399, 399,
+
+ 400, 400, 400, 400, 401, 353, 401, 401, 402, 402,
+ 352, 351, 350, 349, 348, 347, 346, 345, 344, 342,
+ 341, 340, 339, 338, 337, 336, 335, 334, 331, 329,
+ 328, 327, 325, 324, 323, 320, 319, 318, 317, 316,
+ 315, 314, 313, 312, 311, 309, 308, 307, 306, 305,
+ 304, 303, 301, 300, 297, 295, 294, 293, 291, 290,
+ 288, 287, 286, 284, 283, 282, 281, 280, 279, 278,
+ 276, 275, 272, 271, 270, 269, 268, 267, 266, 265,
+ 264, 263, 260, 259, 258, 256, 253, 252, 251, 250,
+ 249, 248, 247, 246, 245, 244, 243, 242, 240, 238,
+
+ 237, 234, 233, 232, 230, 229, 228, 227, 226, 224,
+ 223, 222, 221, 220, 219, 218, 217, 216, 215, 214,
+ 213, 212, 210, 209, 208, 207, 206, 205, 204, 203,
+ 201, 200, 199, 198, 197, 196, 195, 193, 189, 187,
+ 186, 185, 183, 182, 179, 178, 177, 175, 174, 173,
+ 172, 171, 170, 169, 168, 167, 166, 165, 164, 162,
+ 161, 160, 152, 151, 149, 148, 147, 146, 144, 143,
+ 142, 141, 140, 139, 138, 137, 136, 135, 115, 109,
+ 102, 101, 100, 99, 97, 93, 92, 85, 84, 83,
+ 82, 81, 79, 77, 75, 73, 72, 71, 62, 61,
- 14, 12, 10, 8, 5, 3, 398, 398, 398, 398,
+ 52, 30, 14, 12, 10, 8, 5, 3, 398, 398,
398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
- 398, 398, 398, 398, 398, 398
+ 398, 398, 398, 398, 398, 398, 398, 398
} ;
/* Table of booleans, true if rule could match eol. */
-static yyconst flex_int32_t yy_rule_can_match_eol[122] =
+static yyconst flex_int32_t yy_rule_can_match_eol[123] =
{ 0,
0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -807,23 +807,24 @@
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, };
+ 0, 0, 0, };
-static yyconst flex_int16_t yy_rule_linenum[121] =
+static yyconst flex_int16_t yy_rule_linenum[122] =
{ 0,
248, 250, 252, 256, 257, 258, 259, 260, 261, 262,
263, 264, 265, 266, 267, 269, 270, 271, 272, 274,
275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
- 285, 287, 290, 292, 293, 294, 296, 297, 298, 299,
- 300, 301, 302, 303, 304, 305, 306, 308, 309, 310,
- 311, 313, 314, 315, 316, 317, 318, 320, 321, 322,
- 323, 325, 326, 327, 329, 330, 331, 332, 333, 334,
- 335, 336, 338, 339, 340, 341, 342, 343, 344, 345,
- 346, 347, 348, 349, 350, 351, 352, 354, 355, 356,
- 357, 358, 359, 360, 361, 362, 363, 364, 365, 366,
-
- 368, 369, 370, 371, 372, 373, 374, 377, 382, 383,
- 384, 385, 387, 392, 441, 442, 443, 444, 445, 450
+ 285, 287, 291, 295, 299, 306, 307, 309, 310, 311,
+ 312, 313, 314, 315, 316, 317, 318, 319, 321, 322,
+ 323, 324, 326, 327, 328, 329, 330, 331, 333, 334,
+ 335, 336, 338, 339, 340, 342, 343, 344, 345, 346,
+ 347, 348, 349, 351, 352, 353, 354, 355, 356, 357,
+ 358, 359, 360, 361, 362, 363, 364, 365, 367, 368,
+ 369, 370, 371, 372, 373, 374, 375, 376, 377, 378,
+
+ 379, 381, 382, 383, 384, 385, 386, 387, 390, 395,
+ 396, 397, 398, 400, 405, 454, 455, 456, 457, 458,
+ 463
} ;
/* The intent behind this definition is that it'll catch
@@ -1030,7 +1031,7 @@
/* make yywrap() always return true. */
/* always show warnings if something's wrong with our spec. */
/* create a scanner in debug mode */
-#line 1034 "pirlexer.c"
+#line 1035 "pirlexer.c"
#define INITIAL 0
@@ -1323,7 +1324,7 @@
-#line 1327 "pirlexer.c"
+#line 1328 "pirlexer.c"
yylval = yylval_param;
@@ -1425,13 +1426,13 @@
{
if ( yy_act == 0 )
fprintf( stderr, "--scanner backing up\n" );
- else if ( yy_act < 121 )
+ else if ( yy_act < 122 )
fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n",
(long)yy_rule_linenum[yy_act], yytext );
- else if ( yy_act == 121 )
+ else if ( yy_act == 122 )
fprintf( stderr, "--accepting default rule (\"%s\")\n",
yytext );
- else if ( yy_act == 122 )
+ else if ( yy_act == 123 )
fprintf( stderr, "--(end of buffer or a NUL)\n" );
else
fprintf( stderr, "--EOF (start condition %d)\n", YY_START );
@@ -1615,418 +1616,432 @@
YY_BREAK
case 33:
YY_RULE_SETUP
-#line 290 "pir.l"
-{ return TK_CONC; }
+#line 291 "pir.l"
+{ /* $P0 .$P1 means concatenation */
+ return TK_CONC;
+ }
YY_BREAK
case 34:
YY_RULE_SETUP
-#line 292 "pir.l"
-{ return '.'; }
+#line 295 "pir.l"
+{ /* $P0. $P1 means concatenation */
+ return TK_CONC;
+ }
YY_BREAK
case 35:
YY_RULE_SETUP
-#line 293 "pir.l"
-{ return '='; }
+#line 299 "pir.l"
+{ /* at this point all dot-whitespace combinations have been covered;
+ * so we can be sure that the dot does not have any surrounding
+ * whitespace: that's the method-call dot, as in $P0.$P1().
+ */
+ return '.';
+ }
YY_BREAK
case 36:
YY_RULE_SETUP
-#line 294 "pir.l"
-{ return ';'; }
+#line 306 "pir.l"
+{ return '='; }
YY_BREAK
case 37:
YY_RULE_SETUP
-#line 296 "pir.l"
-{ return TK_ASSIGN_INC; }
+#line 307 "pir.l"
+{ return ';'; }
YY_BREAK
case 38:
YY_RULE_SETUP
-#line 297 "pir.l"
-{ return TK_ASSIGN_DEC; }
+#line 309 "pir.l"
+{ return TK_ASSIGN_INC; }
YY_BREAK
case 39:
YY_RULE_SETUP
-#line 298 "pir.l"
-{ return TK_ASSIGN_DIV; }
+#line 310 "pir.l"
+{ return TK_ASSIGN_DEC; }
YY_BREAK
case 40:
YY_RULE_SETUP
-#line 299 "pir.l"
-{ return TK_ASSIGN_MUL; }
+#line 311 "pir.l"
+{ return TK_ASSIGN_DIV; }
YY_BREAK
case 41:
YY_RULE_SETUP
-#line 300 "pir.l"
-{ return TK_ASSIGN_MOD; }
+#line 312 "pir.l"
+{ return TK_ASSIGN_MUL; }
YY_BREAK
case 42:
YY_RULE_SETUP
-#line 301 "pir.l"
-{ return TK_ASSIGN_POW; }
+#line 313 "pir.l"
+{ return TK_ASSIGN_MOD; }
YY_BREAK
case 43:
YY_RULE_SETUP
-#line 302 "pir.l"
-{ return TK_ASSIGN_BOR; }
+#line 314 "pir.l"
+{ return TK_ASSIGN_POW; }
YY_BREAK
case 44:
YY_RULE_SETUP
-#line 303 "pir.l"
-{ return TK_ASSIGN_BAND; }
+#line 315 "pir.l"
+{ return TK_ASSIGN_BOR; }
YY_BREAK
case 45:
YY_RULE_SETUP
-#line 304 "pir.l"
-{ return TK_ASSIGN_FDIV; }
+#line 316 "pir.l"
+{ return TK_ASSIGN_BAND; }
YY_BREAK
case 46:
YY_RULE_SETUP
-#line 305 "pir.l"
-{ return TK_ASSIGN_BNOT; }
+#line 317 "pir.l"
+{ return TK_ASSIGN_FDIV; }
YY_BREAK
case 47:
YY_RULE_SETUP
-#line 306 "pir.l"
-{ return TK_ASSIGN_CONC; }
+#line 318 "pir.l"
+{ return TK_ASSIGN_BNOT; }
YY_BREAK
case 48:
YY_RULE_SETUP
-#line 308 "pir.l"
-{ return TK_IF; }
+#line 319 "pir.l"
+{ return TK_ASSIGN_CONC; }
YY_BREAK
case 49:
YY_RULE_SETUP
-#line 309 "pir.l"
-{ return TK_GOTO; }
+#line 321 "pir.l"
+{ return TK_IF; }
YY_BREAK
case 50:
YY_RULE_SETUP
-#line 310 "pir.l"
-{ return TK_UNLESS; }
+#line 322 "pir.l"
+{ return TK_GOTO; }
YY_BREAK
case 51:
YY_RULE_SETUP
-#line 311 "pir.l"
-{ return TK_NULL; }
+#line 323 "pir.l"
+{ return TK_UNLESS; }
YY_BREAK
case 52:
YY_RULE_SETUP
-#line 313 "pir.l"
-{ return TK_PARROT_SET; }
+#line 324 "pir.l"
+{ return TK_NULL; }
YY_BREAK
case 53:
YY_RULE_SETUP
-#line 314 "pir.l"
-{ return TK_PARROT_ADD; }
+#line 326 "pir.l"
+{ return TK_PARROT_SET; }
YY_BREAK
case 54:
YY_RULE_SETUP
-#line 315 "pir.l"
-{ return TK_PARROT_SUB; }
+#line 327 "pir.l"
+{ return TK_PARROT_ADD; }
YY_BREAK
case 55:
YY_RULE_SETUP
-#line 316 "pir.l"
-{ return TK_PARROT_MUL; }
+#line 328 "pir.l"
+{ return TK_PARROT_SUB; }
YY_BREAK
case 56:
YY_RULE_SETUP
-#line 317 "pir.l"
-{ return TK_PARROT_DIV; }
+#line 329 "pir.l"
+{ return TK_PARROT_MUL; }
YY_BREAK
case 57:
YY_RULE_SETUP
-#line 318 "pir.l"
-{ return TK_PARROT_FDIV; }
+#line 330 "pir.l"
+{ return TK_PARROT_DIV; }
YY_BREAK
case 58:
YY_RULE_SETUP
-#line 320 "pir.l"
-{ return TK_INT; }
+#line 331 "pir.l"
+{ return TK_PARROT_FDIV; }
YY_BREAK
case 59:
YY_RULE_SETUP
-#line 321 "pir.l"
-{ return TK_NUM; }
+#line 333 "pir.l"
+{ return TK_INT; }
YY_BREAK
case 60:
YY_RULE_SETUP
-#line 322 "pir.l"
-{ return TK_PMC; }
+#line 334 "pir.l"
+{ return TK_NUM; }
YY_BREAK
case 61:
YY_RULE_SETUP
-#line 323 "pir.l"
-{ return TK_STRING; }
+#line 335 "pir.l"
+{ return TK_PMC; }
YY_BREAK
case 62:
YY_RULE_SETUP
-#line 325 "pir.l"
-{ return TK_ARG; }
+#line 336 "pir.l"
+{ return TK_STRING; }
YY_BREAK
case 63:
YY_RULE_SETUP
-#line 326 "pir.l"
-{ return TK_CONST; }
+#line 338 "pir.l"
+{ return TK_ARG; }
YY_BREAK
case 64:
YY_RULE_SETUP
-#line 327 "pir.l"
-{ return TK_END; }
+#line 339 "pir.l"
+{ return TK_CONST; }
YY_BREAK
case 65:
YY_RULE_SETUP
-#line 329 "pir.l"
-{ return TK_GET_RESULTS; }
+#line 340 "pir.l"
+{ return TK_END; }
YY_BREAK
case 66:
YY_RULE_SETUP
-#line 330 "pir.l"
-{ return TK_GLOBALCONST; }
+#line 342 "pir.l"
+{ return TK_GET_RESULTS; }
YY_BREAK
case 67:
YY_RULE_SETUP
-#line 331 "pir.l"
-{ return TK_HLL; }
+#line 343 "pir.l"
+{ return TK_GLOBALCONST; }
YY_BREAK
case 68:
YY_RULE_SETUP
-#line 332 "pir.l"
-{ return TK_HLL_MAP; }
+#line 344 "pir.l"
+{ return TK_HLL; }
YY_BREAK
case 69:
YY_RULE_SETUP
-#line 333 "pir.l"
-{ return TK_INVOCANT; }
+#line 345 "pir.l"
+{ return TK_HLL_MAP; }
YY_BREAK
case 70:
YY_RULE_SETUP
-#line 334 "pir.l"
-{ return TK_LEX; }
+#line 346 "pir.l"
+{ return TK_INVOCANT; }
YY_BREAK
case 71:
YY_RULE_SETUP
-#line 335 "pir.l"
-{ return TK_LOADLIB; }
+#line 347 "pir.l"
+{ return TK_LEX; }
YY_BREAK
case 72:
YY_RULE_SETUP
-#line 336 "pir.l"
-{ return TK_LOCAL; }
+#line 348 "pir.l"
+{ return TK_LOADLIB; }
YY_BREAK
case 73:
YY_RULE_SETUP
-#line 338 "pir.l"
-{ return TK_METH_CALL; }
+#line 349 "pir.l"
+{ return TK_LOCAL; }
YY_BREAK
case 74:
YY_RULE_SETUP
-#line 339 "pir.l"
-{ return TK_NAMESPACE; }
+#line 351 "pir.l"
+{ return TK_METH_CALL; }
YY_BREAK
case 75:
YY_RULE_SETUP
-#line 340 "pir.l"
-{ return TK_NCI_CALL; }
+#line 352 "pir.l"
+{ return TK_NAMESPACE; }
YY_BREAK
case 76:
YY_RULE_SETUP
-#line 341 "pir.l"
-{ return TK_PARAM; }
+#line 353 "pir.l"
+{ return TK_NCI_CALL; }
YY_BREAK
case 77:
YY_RULE_SETUP
-#line 342 "pir.l"
-{ return TK_BEGIN_CALL; }
+#line 354 "pir.l"
+{ return TK_PARAM; }
YY_BREAK
case 78:
YY_RULE_SETUP
-#line 343 "pir.l"
-{ return TK_BEGIN_RETURN; }
+#line 355 "pir.l"
+{ return TK_BEGIN_CALL; }
YY_BREAK
case 79:
YY_RULE_SETUP
-#line 344 "pir.l"
-{ return TK_BEGIN_YIELD; }
+#line 356 "pir.l"
+{ return TK_BEGIN_RETURN; }
YY_BREAK
case 80:
YY_RULE_SETUP
-#line 345 "pir.l"
-{ return TK_CALL; }
+#line 357 "pir.l"
+{ return TK_BEGIN_YIELD; }
YY_BREAK
case 81:
YY_RULE_SETUP
-#line 346 "pir.l"
-{ return TK_END_CALL; }
+#line 358 "pir.l"
+{ return TK_CALL; }
YY_BREAK
case 82:
YY_RULE_SETUP
-#line 347 "pir.l"
-{ return TK_END_RETURN; }
+#line 359 "pir.l"
+{ return TK_END_CALL; }
YY_BREAK
case 83:
YY_RULE_SETUP
-#line 348 "pir.l"
-{ return TK_END_YIELD; }
+#line 360 "pir.l"
+{ return TK_END_RETURN; }
YY_BREAK
case 84:
YY_RULE_SETUP
-#line 349 "pir.l"
-{ return TK_RESULT; }
+#line 361 "pir.l"
+{ return TK_END_YIELD; }
YY_BREAK
case 85:
YY_RULE_SETUP
-#line 350 "pir.l"
-{ return TK_RETURN; }
+#line 362 "pir.l"
+{ return TK_RESULT; }
YY_BREAK
case 86:
YY_RULE_SETUP
-#line 351 "pir.l"
-{ return TK_SUB; }
+#line 363 "pir.l"
+{ return TK_RETURN; }
YY_BREAK
case 87:
YY_RULE_SETUP
-#line 352 "pir.l"
-{ return TK_YIELD; }
+#line 364 "pir.l"
+{ return TK_SUB; }
YY_BREAK
case 88:
YY_RULE_SETUP
-#line 354 "pir.l"
-{ return TK_FLAG_ANON; }
+#line 365 "pir.l"
+{ return TK_YIELD; }
YY_BREAK
case 89:
YY_RULE_SETUP
-#line 355 "pir.l"
-{ return TK_FLAG_INIT; }
+#line 367 "pir.l"
+{ return TK_FLAG_ANON; }
YY_BREAK
case 90:
YY_RULE_SETUP
-#line 356 "pir.l"
-{ return TK_FLAG_LOAD; }
+#line 368 "pir.l"
+{ return TK_FLAG_INIT; }
YY_BREAK
case 91:
YY_RULE_SETUP
-#line 357 "pir.l"
-{ return TK_FLAG_POSTCOMP; }
+#line 369 "pir.l"
+{ return TK_FLAG_LOAD; }
YY_BREAK
case 92:
YY_RULE_SETUP
-#line 358 "pir.l"
-{ return TK_FLAG_IMMEDIATE; }
+#line 370 "pir.l"
+{ return TK_FLAG_POSTCOMP; }
YY_BREAK
case 93:
YY_RULE_SETUP
-#line 359 "pir.l"
-{ return TK_FLAG_MAIN; }
+#line 371 "pir.l"
+{ return TK_FLAG_IMMEDIATE; }
YY_BREAK
case 94:
YY_RULE_SETUP
-#line 360 "pir.l"
-{ return TK_FLAG_METHOD; }
+#line 372 "pir.l"
+{ return TK_FLAG_MAIN; }
YY_BREAK
case 95:
YY_RULE_SETUP
-#line 361 "pir.l"
-{ return TK_FLAG_LEX; }
+#line 373 "pir.l"
+{ return TK_FLAG_METHOD; }
YY_BREAK
case 96:
YY_RULE_SETUP
-#line 362 "pir.l"
-{ return TK_FLAG_OUTER; }
+#line 374 "pir.l"
+{ return TK_FLAG_LEX; }
YY_BREAK
case 97:
YY_RULE_SETUP
-#line 363 "pir.l"
-{ return TK_FLAG_VTABLE; }
+#line 375 "pir.l"
+{ return TK_FLAG_OUTER; }
YY_BREAK
case 98:
YY_RULE_SETUP
-#line 364 "pir.l"
-{ return TK_FLAG_MULTI; }
+#line 376 "pir.l"
+{ return TK_FLAG_VTABLE; }
YY_BREAK
case 99:
YY_RULE_SETUP
-#line 365 "pir.l"
-{ return TK_FLAG_LEXID; }
+#line 377 "pir.l"
+{ return TK_FLAG_MULTI; }
YY_BREAK
case 100:
YY_RULE_SETUP
-#line 366 "pir.l"
-{ return TK_INSTANCEOF; }
+#line 378 "pir.l"
+{ return TK_FLAG_LEXID; }
YY_BREAK
case 101:
YY_RULE_SETUP
-#line 368 "pir.l"
-{ return TK_FLAG_UNIQUE_REG; }
+#line 379 "pir.l"
+{ return TK_INSTANCEOF; }
YY_BREAK
case 102:
YY_RULE_SETUP
-#line 369 "pir.l"
-{ return TK_FLAG_OPTIONAL; }
+#line 381 "pir.l"
+{ return TK_FLAG_UNIQUE_REG; }
YY_BREAK
case 103:
YY_RULE_SETUP
-#line 370 "pir.l"
-{ return TK_FLAG_OPT_FLAG; }
+#line 382 "pir.l"
+{ return TK_FLAG_OPTIONAL; }
YY_BREAK
case 104:
YY_RULE_SETUP
-#line 371 "pir.l"
-{ return TK_FLAG_SLURPY; }
+#line 383 "pir.l"
+{ return TK_FLAG_OPT_FLAG; }
YY_BREAK
case 105:
YY_RULE_SETUP
-#line 372 "pir.l"
-{ return TK_FLAG_NAMED; }
+#line 384 "pir.l"
+{ return TK_FLAG_SLURPY; }
YY_BREAK
case 106:
YY_RULE_SETUP
-#line 373 "pir.l"
-{ return TK_FLAG_FLAT; }
+#line 385 "pir.l"
+{ return TK_FLAG_NAMED; }
YY_BREAK
case 107:
YY_RULE_SETUP
-#line 374 "pir.l"
-{ return TK_FLAG_INVOCANT; }
+#line 386 "pir.l"
+{ return TK_FLAG_FLAT; }
YY_BREAK
case 108:
YY_RULE_SETUP
-#line 377 "pir.l"
+#line 387 "pir.l"
+{ return TK_FLAG_INVOCANT; }
+ YY_BREAK
+case 109:
+YY_RULE_SETUP
+#line 390 "pir.l"
{ /* copy the string, remove the quotes. */
yylval->sval = dupstrn(yytext + 1, yyleng - 2);
return TK_STRINGC;
}
YY_BREAK
-case 109:
+case 110:
YY_RULE_SETUP
-#line 382 "pir.l"
+#line 395 "pir.l"
{ yylval->ival = atoi(yytext + 2); return TK_PREG; }
YY_BREAK
-case 110:
+case 111:
YY_RULE_SETUP
-#line 383 "pir.l"
+#line 396 "pir.l"
{ yylval->ival = atoi(yytext + 2); return TK_SREG; }
YY_BREAK
-case 111:
+case 112:
YY_RULE_SETUP
-#line 384 "pir.l"
+#line 397 "pir.l"
{ yylval->ival = atoi(yytext + 2); return TK_NREG; }
YY_BREAK
-case 112:
+case 113:
YY_RULE_SETUP
-#line 385 "pir.l"
+#line 398 "pir.l"
{ yylval->ival = atoi(yytext + 2); return TK_IREG; }
YY_BREAK
-case 113:
+case 114:
YY_RULE_SETUP
-#line 387 "pir.l"
+#line 400 "pir.l"
{ /* make the label Id available in the parser. remove the ":" first. */
yylval->sval = dupstrn(yytext, yyleng - 1);
return TK_LABEL;
}
YY_BREAK
-case 114:
+case 115:
YY_RULE_SETUP
-#line 392 "pir.l"
+#line 405 "pir.l"
{ /* identifier; can be a global (sub or const), local or parrot op */
lexer_state *lexer = yyget_extra(yyscanner);
symbol *sym = find_symbol(lexer, yytext);
@@ -2075,50 +2090,50 @@
return TK_IDENT;
}
YY_BREAK
-case 115:
-YY_RULE_SETUP
-#line 441 "pir.l"
-{ yylval->dval = atof(yytext); return TK_NUMC; }
- YY_BREAK
case 116:
YY_RULE_SETUP
-#line 442 "pir.l"
-{ yylval->ival = atoi(yytext); return TK_INTC; }
+#line 454 "pir.l"
+{ yylval->dval = atof(yytext); return TK_NUMC; }
YY_BREAK
case 117:
YY_RULE_SETUP
-#line 443 "pir.l"
+#line 455 "pir.l"
{ yylval->ival = atoi(yytext); return TK_INTC; }
YY_BREAK
case 118:
YY_RULE_SETUP
-#line 444 "pir.l"
+#line 456 "pir.l"
{ yylval->ival = atoi(yytext); return TK_INTC; }
YY_BREAK
case 119:
YY_RULE_SETUP
-#line 445 "pir.l"
+#line 457 "pir.l"
{ yylval->ival = atoi(yytext); return TK_INTC; }
YY_BREAK
case 120:
YY_RULE_SETUP
-#line 450 "pir.l"
+#line 458 "pir.l"
+{ yylval->ival = atoi(yytext); return TK_INTC; }
+ YY_BREAK
+case 121:
+YY_RULE_SETUP
+#line 463 "pir.l"
{ /* any character not covered in the rules above is an error. */
yyerror(yyscanner, yyget_extra(yyscanner), "Unexpected character");
}
YY_BREAK
case YY_STATE_EOF(INITIAL):
-#line 455 "pir.l"
+#line 468 "pir.l"
{ /* end of file, stop scanning. */
yyterminate();
}
YY_BREAK
-case 121:
+case 122:
YY_RULE_SETUP
-#line 459 "pir.l"
+#line 472 "pir.l"
ECHO;
YY_BREAK
-#line 2122 "pirlexer.c"
+#line 2137 "pirlexer.c"
case YY_END_OF_BUFFER:
{
@@ -3335,7 +3350,7 @@
/* %ok-for-header */
-#line 459 "pir.l"
+#line 472 "pir.l"
Modified: trunk/compilers/pirc/new/pirlexer.h
==============================================================================
--- trunk/compilers/pirc/new/pirlexer.h (original)
+++ trunk/compilers/pirc/new/pirlexer.h Fri Aug 22 02:57:34 2008
@@ -443,7 +443,7 @@
#undef YY_DECL
#endif
-#line 459 "pir.l"
+#line 472 "pir.l"
#line 450 "pirlexer.h"