diff --git a/core/oql/oql-parser.php b/core/oql/oql-parser.php index 6986bada6..9168a3611 100644 --- a/core/oql/oql-parser.php +++ b/core/oql/oql-parser.php @@ -188,9 +188,9 @@ class OQLParserRaw#line 104 "..\oql-parser.php" const F_FLOOR = 73; const F_INET_ATON = 74; const F_INET_NTOA = 75; - const YY_NO_ACTION = 302; - const YY_ACCEPT_ACTION = 301; - const YY_ERROR_ACTION = 300; + const YY_NO_ACTION = 300; + const YY_ACCEPT_ACTION = 299; + const YY_ERROR_ACTION = 298; /* Next are that tables used to determine what action to take based on the ** current state and lookahead token. These tables are used to implement @@ -242,100 +242,96 @@ class OQLParserRaw#line 104 "..\oql-parser.php" ** shifting non-terminals after a reduce. ** self::$yy_default Default action for each state. */ - const YY_SZ_ACTTAB = 581; + const YY_SZ_ACTTAB = 543; static public $yy_action = array( - /* 0 */ 28, 108, 40, 184, 184, 52, 39, 55, 42, 67, - /* 10 */ 42, 8, 122, 69, 92, 126, 5, 48, 125, 127, - /* 20 */ 63, 58, 167, 165, 158, 106, 131, 109, 108, 103, - /* 30 */ 65, 112, 113, 74, 119, 111, 118, 104, 105, 62, - /* 40 */ 23, 20, 22, 24, 26, 25, 27, 21, 19, 30, - /* 50 */ 4, 71, 60, 1, 114, 115, 116, 117, 137, 120, - /* 60 */ 138, 157, 159, 160, 161, 162, 163, 164, 168, 169, - /* 70 */ 170, 171, 172, 173, 5, 38, 7, 10, 134, 71, - /* 80 */ 167, 165, 158, 106, 130, 109, 108, 103, 65, 112, - /* 90 */ 113, 88, 143, 144, 42, 5, 107, 51, 132, 133, - /* 100 */ 42, 167, 165, 158, 106, 71, 109, 108, 103, 65, - /* 110 */ 112, 113, 114, 115, 116, 117, 137, 120, 138, 157, - /* 120 */ 159, 160, 161, 162, 163, 164, 168, 169, 170, 171, - /* 130 */ 172, 173, 241, 114, 115, 116, 117, 137, 120, 138, - /* 140 */ 157, 159, 160, 161, 162, 163, 164, 168, 169, 170, - /* 150 */ 171, 172, 173, 6, 110, 148, 155, 47, 301, 101, - /* 160 */ 66, 174, 67, 9, 128, 141, 142, 75, 126, 31, - /* 170 */ 49, 125, 127, 63, 13, 135, 47, 17, 79, 14, - /* 180 */ 67, 36, 37, 130, 11, 53, 91, 119, 111, 118, - /* 190 */ 104, 105, 62, 68, 61, 73, 67, 132, 133, 166, - /* 200 */ 156, 64, 126, 32, 49, 125, 127, 63, 90, 41, - /* 210 */ 62, 17, 71, 14, 12, 36, 2, 70, 57, 136, - /* 220 */ 129, 119, 111, 118, 104, 105, 62, 67, 45, 43, - /* 230 */ 44, 71, 72, 126, 33, 49, 125, 127, 63, 59, - /* 240 */ 39, 67, 17, 67, 14, 245, 36, 89, 99, 56, - /* 250 */ 93, 123, 119, 111, 118, 104, 105, 62, 124, 67, - /* 260 */ 71, 50, 71, 3, 42, 126, 31, 49, 125, 127, - /* 270 */ 63, 62, 28, 62, 17, 67, 14, 121, 36, 46, - /* 280 */ 77, 56, 80, 39, 119, 111, 118, 104, 105, 62, - /* 290 */ 54, 8, 245, 67, 245, 245, 78, 245, 245, 126, - /* 300 */ 33, 49, 125, 127, 63, 62, 131, 67, 17, 245, - /* 310 */ 14, 245, 36, 84, 245, 245, 81, 245, 119, 111, - /* 320 */ 118, 104, 105, 62, 67, 245, 245, 245, 245, 245, - /* 330 */ 126, 16, 49, 125, 127, 63, 245, 62, 67, 17, - /* 340 */ 67, 14, 245, 36, 100, 245, 85, 245, 245, 119, - /* 350 */ 111, 118, 104, 105, 62, 245, 67, 245, 245, 245, - /* 360 */ 245, 245, 126, 29, 49, 125, 127, 63, 62, 245, - /* 370 */ 62, 17, 245, 14, 245, 36, 245, 245, 245, 245, - /* 380 */ 245, 119, 111, 118, 104, 105, 62, 245, 245, 245, - /* 390 */ 67, 245, 245, 245, 245, 245, 126, 34, 49, 125, - /* 400 */ 127, 63, 245, 245, 67, 17, 245, 14, 245, 36, - /* 410 */ 87, 245, 245, 245, 245, 119, 111, 118, 104, 105, - /* 420 */ 62, 67, 67, 245, 245, 245, 245, 126, 83, 49, - /* 430 */ 125, 127, 63, 245, 62, 67, 17, 245, 14, 245, - /* 440 */ 35, 86, 245, 245, 245, 245, 119, 111, 118, 104, - /* 450 */ 105, 62, 62, 67, 245, 245, 245, 245, 245, 126, - /* 460 */ 245, 49, 125, 127, 63, 62, 245, 245, 17, 245, - /* 470 */ 15, 245, 245, 245, 245, 245, 245, 245, 119, 111, - /* 480 */ 118, 104, 105, 62, 245, 245, 245, 67, 245, 245, - /* 490 */ 245, 245, 245, 126, 245, 49, 125, 127, 63, 245, - /* 500 */ 245, 67, 18, 146, 245, 245, 245, 76, 245, 245, - /* 510 */ 245, 245, 119, 111, 118, 104, 105, 62, 245, 245, - /* 520 */ 245, 245, 245, 245, 245, 245, 149, 245, 245, 145, - /* 530 */ 140, 62, 245, 245, 245, 147, 150, 151, 152, 153, - /* 540 */ 154, 139, 102, 245, 245, 245, 245, 245, 82, 98, - /* 550 */ 97, 96, 95, 94, 245, 245, 245, 245, 245, 245, - /* 560 */ 245, 245, 245, 245, 245, 130, 245, 245, 245, 245, - /* 570 */ 245, 245, 245, 245, 245, 245, 245, 245, 245, 132, - /* 580 */ 133, + /* 0 */ 21, 154, 140, 99, 98, 97, 96, 95, 94, 66, + /* 10 */ 139, 141, 142, 109, 88, 55, 5, 40, 39, 128, + /* 20 */ 130, 54, 167, 166, 164, 107, 130, 103, 109, 110, + /* 30 */ 65, 113, 114, 149, 132, 133, 145, 146, 130, 61, + /* 40 */ 132, 133, 148, 150, 151, 152, 153, 138, 102, 91, + /* 50 */ 49, 73, 132, 133, 115, 116, 117, 136, 120, 137, + /* 60 */ 156, 158, 159, 160, 161, 162, 163, 157, 168, 169, + /* 70 */ 170, 171, 172, 165, 5, 64, 7, 41, 183, 183, + /* 80 */ 167, 166, 164, 107, 11, 103, 109, 110, 65, 113, + /* 90 */ 114, 129, 119, 38, 48, 5, 122, 62, 12, 155, + /* 100 */ 147, 167, 166, 164, 107, 73, 103, 109, 110, 65, + /* 110 */ 113, 114, 115, 116, 117, 136, 120, 137, 156, 158, + /* 120 */ 159, 160, 161, 162, 163, 157, 168, 169, 170, 171, + /* 130 */ 172, 165, 108, 115, 116, 117, 136, 120, 137, 156, + /* 140 */ 158, 159, 160, 161, 162, 163, 157, 168, 169, 170, + /* 150 */ 171, 172, 165, 58, 4, 27, 76, 84, 299, 101, + /* 160 */ 63, 173, 66, 8, 37, 50, 82, 53, 126, 31, + /* 170 */ 45, 125, 127, 68, 1, 239, 13, 17, 131, 14, + /* 180 */ 37, 36, 43, 73, 10, 60, 73, 111, 118, 104, + /* 190 */ 105, 106, 61, 67, 59, 73, 66, 73, 135, 143, + /* 200 */ 144, 112, 126, 33, 45, 125, 127, 68, 70, 52, + /* 210 */ 66, 17, 73, 14, 9, 36, 100, 79, 57, 2, + /* 220 */ 134, 111, 118, 104, 105, 106, 61, 66, 42, 78, + /* 230 */ 8, 77, 46, 126, 32, 45, 125, 127, 68, 56, + /* 240 */ 61, 66, 17, 66, 14, 131, 36, 90, 80, 55, + /* 250 */ 93, 51, 111, 118, 104, 105, 106, 61, 124, 66, + /* 260 */ 71, 244, 21, 3, 47, 126, 31, 45, 125, 127, + /* 270 */ 68, 61, 244, 61, 17, 66, 14, 121, 36, 89, + /* 280 */ 87, 69, 6, 123, 111, 118, 104, 105, 106, 61, + /* 290 */ 244, 244, 244, 66, 244, 244, 75, 244, 244, 126, + /* 300 */ 32, 45, 125, 127, 68, 61, 244, 66, 17, 244, + /* 310 */ 14, 244, 36, 92, 244, 244, 81, 244, 111, 118, + /* 320 */ 104, 105, 106, 61, 66, 244, 244, 244, 244, 244, + /* 330 */ 126, 34, 45, 125, 127, 68, 244, 61, 66, 17, + /* 340 */ 66, 14, 244, 36, 85, 244, 72, 244, 244, 111, + /* 350 */ 118, 104, 105, 106, 61, 244, 66, 244, 244, 244, + /* 360 */ 244, 244, 126, 16, 45, 125, 127, 68, 61, 244, + /* 370 */ 61, 17, 244, 14, 244, 36, 244, 244, 244, 244, + /* 380 */ 244, 111, 118, 104, 105, 106, 61, 244, 244, 244, + /* 390 */ 66, 244, 244, 244, 244, 244, 126, 30, 45, 125, + /* 400 */ 127, 68, 244, 244, 66, 17, 244, 14, 244, 36, + /* 410 */ 74, 244, 244, 244, 244, 111, 118, 104, 105, 106, + /* 420 */ 61, 66, 66, 244, 244, 244, 244, 126, 83, 45, + /* 430 */ 125, 127, 68, 244, 61, 66, 17, 244, 14, 244, + /* 440 */ 35, 86, 244, 244, 244, 244, 111, 118, 104, 105, + /* 450 */ 106, 61, 61, 66, 244, 244, 244, 244, 244, 126, + /* 460 */ 244, 45, 125, 127, 68, 61, 244, 244, 17, 244, + /* 470 */ 15, 244, 244, 244, 244, 244, 244, 244, 111, 118, + /* 480 */ 104, 105, 106, 61, 244, 244, 244, 66, 244, 244, + /* 490 */ 244, 244, 244, 126, 244, 45, 125, 127, 68, 66, + /* 500 */ 244, 244, 18, 244, 244, 126, 244, 44, 125, 127, + /* 510 */ 68, 244, 111, 118, 104, 105, 106, 61, 244, 244, + /* 520 */ 244, 244, 244, 244, 111, 118, 104, 105, 106, 61, + /* 530 */ 244, 244, 244, 244, 24, 25, 26, 19, 28, 29, + /* 540 */ 20, 23, 22, ); static public $yy_lookahead = array( - /* 0 */ 2, 30, 3, 4, 5, 82, 7, 82, 85, 81, - /* 10 */ 85, 102, 78, 79, 105, 87, 18, 89, 90, 91, - /* 20 */ 92, 81, 24, 25, 26, 27, 117, 29, 30, 31, - /* 30 */ 32, 33, 34, 83, 106, 107, 108, 109, 110, 111, - /* 40 */ 9, 10, 11, 12, 13, 14, 15, 16, 17, 81, - /* 50 */ 6, 111, 84, 18, 56, 57, 58, 59, 60, 61, + /* 0 */ 2, 39, 40, 21, 22, 23, 24, 25, 26, 81, + /* 10 */ 9, 49, 50, 30, 86, 87, 18, 4, 5, 19, + /* 20 */ 38, 81, 24, 25, 26, 27, 38, 29, 30, 31, + /* 30 */ 32, 33, 34, 32, 52, 53, 35, 36, 38, 111, + /* 40 */ 52, 53, 41, 42, 43, 44, 45, 46, 47, 48, + /* 50 */ 82, 111, 52, 53, 56, 57, 58, 59, 60, 61, /* 60 */ 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, - /* 70 */ 72, 73, 74, 75, 18, 81, 20, 99, 95, 111, - /* 80 */ 24, 25, 26, 27, 38, 29, 30, 31, 32, 33, - /* 90 */ 34, 82, 114, 115, 85, 18, 111, 82, 52, 53, - /* 100 */ 85, 24, 25, 26, 27, 111, 29, 30, 31, 32, + /* 70 */ 72, 73, 74, 75, 18, 81, 20, 3, 4, 5, + /* 80 */ 24, 25, 26, 27, 97, 29, 30, 31, 32, 33, + /* 90 */ 34, 54, 55, 3, 82, 18, 78, 79, 8, 112, + /* 100 */ 113, 24, 25, 26, 27, 111, 29, 30, 31, 32, /* 110 */ 33, 34, 56, 57, 58, 59, 60, 61, 62, 63, /* 120 */ 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, - /* 130 */ 74, 75, 28, 56, 57, 58, 59, 60, 61, 62, + /* 130 */ 74, 75, 111, 56, 57, 58, 59, 60, 61, 62, /* 140 */ 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, - /* 150 */ 73, 74, 75, 5, 31, 39, 40, 1, 77, 78, - /* 160 */ 79, 80, 81, 101, 19, 49, 50, 19, 87, 88, - /* 170 */ 89, 90, 91, 92, 8, 19, 1, 96, 116, 98, - /* 180 */ 81, 100, 81, 38, 97, 28, 87, 106, 107, 108, - /* 190 */ 109, 110, 111, 78, 79, 19, 81, 52, 53, 112, - /* 200 */ 113, 81, 87, 88, 89, 90, 91, 92, 83, 3, - /* 210 */ 111, 96, 111, 98, 8, 100, 18, 83, 103, 54, - /* 220 */ 55, 106, 107, 108, 109, 110, 111, 81, 4, 5, - /* 230 */ 81, 111, 81, 87, 88, 89, 90, 91, 92, 93, - /* 240 */ 7, 81, 96, 81, 98, 118, 100, 87, 86, 87, - /* 250 */ 104, 83, 106, 107, 108, 109, 110, 111, 80, 81, - /* 260 */ 111, 82, 111, 5, 85, 87, 88, 89, 90, 91, - /* 270 */ 92, 111, 2, 111, 96, 81, 98, 19, 100, 3, - /* 280 */ 86, 87, 37, 7, 106, 107, 108, 109, 110, 111, - /* 290 */ 94, 102, 118, 81, 118, 118, 51, 118, 118, 87, - /* 300 */ 88, 89, 90, 91, 92, 111, 117, 81, 96, 118, + /* 150 */ 73, 74, 75, 81, 6, 7, 81, 85, 77, 78, + /* 160 */ 79, 80, 81, 102, 1, 81, 105, 81, 87, 88, + /* 170 */ 89, 90, 91, 92, 18, 28, 8, 96, 117, 98, + /* 180 */ 1, 100, 81, 111, 99, 84, 111, 106, 107, 108, + /* 190 */ 109, 110, 111, 78, 79, 111, 81, 111, 19, 114, + /* 200 */ 115, 31, 87, 88, 89, 90, 91, 92, 19, 28, + /* 210 */ 81, 96, 111, 98, 101, 100, 87, 37, 103, 18, + /* 220 */ 95, 106, 107, 108, 109, 110, 111, 81, 3, 116, + /* 230 */ 102, 51, 82, 87, 88, 89, 90, 91, 92, 93, + /* 240 */ 111, 81, 96, 81, 98, 117, 100, 87, 86, 87, + /* 250 */ 104, 94, 106, 107, 108, 109, 110, 111, 80, 81, + /* 260 */ 83, 118, 2, 5, 82, 87, 88, 89, 90, 91, + /* 270 */ 92, 111, 118, 111, 96, 81, 98, 19, 100, 83, + /* 280 */ 83, 87, 5, 83, 106, 107, 108, 109, 110, 111, + /* 290 */ 118, 118, 118, 81, 118, 118, 19, 118, 118, 87, + /* 300 */ 88, 89, 90, 91, 92, 111, 118, 81, 96, 118, /* 310 */ 98, 118, 100, 87, 118, 118, 104, 118, 106, 107, /* 320 */ 108, 109, 110, 111, 81, 118, 118, 118, 118, 118, /* 330 */ 87, 88, 89, 90, 91, 92, 118, 111, 81, 96, @@ -354,37 +350,33 @@ static public $yy_action = array( /* 460 */ 118, 89, 90, 91, 92, 111, 118, 118, 96, 118, /* 470 */ 98, 118, 118, 118, 118, 118, 118, 118, 106, 107, /* 480 */ 108, 109, 110, 111, 118, 118, 118, 81, 118, 118, - /* 490 */ 118, 118, 118, 87, 118, 89, 90, 91, 92, 118, - /* 500 */ 118, 81, 96, 9, 118, 118, 118, 87, 118, 118, - /* 510 */ 118, 118, 106, 107, 108, 109, 110, 111, 118, 118, - /* 520 */ 118, 118, 118, 118, 118, 118, 32, 118, 118, 35, - /* 530 */ 36, 111, 118, 118, 118, 41, 42, 43, 44, 45, - /* 540 */ 46, 47, 48, 118, 118, 118, 118, 118, 21, 22, - /* 550 */ 23, 24, 25, 26, 118, 118, 118, 118, 118, 118, - /* 560 */ 118, 118, 118, 118, 118, 38, 118, 118, 118, 118, - /* 570 */ 118, 118, 118, 118, 118, 118, 118, 118, 118, 52, - /* 580 */ 53, + /* 490 */ 118, 118, 118, 87, 118, 89, 90, 91, 92, 81, + /* 500 */ 118, 118, 96, 118, 118, 87, 118, 89, 90, 91, + /* 510 */ 92, 118, 106, 107, 108, 109, 110, 111, 118, 118, + /* 520 */ 118, 118, 118, 118, 106, 107, 108, 109, 110, 111, + /* 530 */ 118, 118, 118, 118, 9, 10, 11, 12, 13, 14, + /* 540 */ 15, 16, 17, ); - const YY_SHIFT_USE_DFLT = -30; - const YY_SHIFT_MAX = 69; + const YY_SHIFT_USE_DFLT = -39; + const YY_SHIFT_MAX = 68; static public $yy_shift_ofst = array( /* 0 */ -2, -2, 56, 56, 77, 77, 77, 77, 77, 77, - /* 10 */ 77, 77, -29, -29, 494, 494, 527, 116, 116, -29, - /* 20 */ -29, -29, -29, -29, -29, -29, -29, -29, -29, 145, - /* 30 */ -1, 46, 46, 46, 46, 245, 245, 276, 233, -29, - /* 40 */ -29, -29, 233, -29, 233, -29, -29, 270, 165, 165, - /* 50 */ 44, 44, 44, -29, 35, 44, 31, 148, 206, 258, - /* 60 */ 224, 156, 104, 198, 166, 123, 175, 157, 176, 175, + /* 10 */ 77, 77, -17, -17, 1, 1, -18, -38, -38, -17, + /* 20 */ -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, + /* 30 */ 0, -12, -12, -12, -12, 180, 180, 260, -17, -17, + /* 40 */ -17, -17, -17, 74, 37, 37, 148, 148, 148, 148, + /* 50 */ 225, 156, -17, -39, -39, 525, 258, 277, 90, 179, + /* 60 */ 13, 147, 163, 163, 168, 170, 181, 189, 201, ); - const YY_REDUCE_USE_DFLT = -92; - const YY_REDUCE_MAX = 55; + const YY_REDUCE_USE_DFLT = -73; + const YY_REDUCE_MAX = 54; static public $yy_reduce_ofst = array( - /* 0 */ 81, 115, 146, 212, 178, 275, 309, 243, 340, 372, - /* 10 */ 406, -72, 194, 162, -22, -22, -91, 87, 87, 420, - /* 20 */ 354, 341, 323, 259, 257, 226, 160, 99, -32, 189, - /* 30 */ 179, 189, 189, 189, 189, 62, 62, -75, -77, -60, - /* 40 */ -6, 120, 9, 151, 15, 101, 149, -66, 196, 196, - /* 50 */ 168, 134, 125, -15, -17, -50, + /* 0 */ 81, 115, 146, 212, 178, 309, 243, 275, 340, 372, + /* 10 */ 406, 418, 162, -72, 85, 85, 61, -13, -13, 354, + /* 20 */ 341, 101, 323, 259, 257, 226, 194, 72, 160, 129, + /* 30 */ 128, 128, 128, 128, 128, 113, 113, 18, -6, 75, + /* 40 */ 84, 86, -60, 182, 157, 157, 196, 200, 197, 177, + /* 50 */ 150, 125, 21, 12, -32, ); static public $yyExpectedTokens = array( /* 0 */ array(2, 18, 24, 25, 26, 27, 29, 30, 31, 32, 33, 34, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, ), @@ -416,47 +408,47 @@ static public $yy_action = array( /* 26 */ array(30, ), /* 27 */ array(30, ), /* 28 */ array(30, ), - /* 29 */ array(19, 38, 52, 53, ), - /* 30 */ array(3, 4, 5, 7, ), + /* 29 */ array(30, ), + /* 30 */ array(19, 38, 52, 53, ), /* 31 */ array(38, 52, 53, ), /* 32 */ array(38, 52, 53, ), /* 33 */ array(38, 52, 53, ), /* 34 */ array(38, 52, 53, ), /* 35 */ array(37, 51, ), /* 36 */ array(37, 51, ), - /* 37 */ array(3, 7, ), - /* 38 */ array(7, ), + /* 37 */ array(2, ), + /* 38 */ array(30, ), /* 39 */ array(30, ), /* 40 */ array(30, ), /* 41 */ array(30, ), - /* 42 */ array(7, ), - /* 43 */ array(30, ), - /* 44 */ array(7, ), - /* 45 */ array(30, ), - /* 46 */ array(30, ), - /* 47 */ array(2, ), - /* 48 */ array(54, 55, ), - /* 49 */ array(54, 55, ), - /* 50 */ array(6, ), - /* 51 */ array(6, ), - /* 52 */ array(6, ), - /* 53 */ array(30, ), - /* 54 */ array(18, ), - /* 55 */ array(6, ), - /* 56 */ array(9, 10, 11, 12, 13, 14, 15, 16, 17, ), + /* 42 */ array(30, ), + /* 43 */ array(3, 4, 5, ), + /* 44 */ array(54, 55, ), + /* 45 */ array(54, 55, ), + /* 46 */ array(6, 7, ), + /* 47 */ array(6, 7, ), + /* 48 */ array(6, 7, ), + /* 49 */ array(6, 7, ), + /* 50 */ array(3, ), + /* 51 */ array(18, ), + /* 52 */ array(30, ), + /* 53 */ array(), + /* 54 */ array(), + /* 55 */ array(9, 10, 11, 12, 13, 14, 15, 16, 17, ), + /* 56 */ array(5, 19, ), /* 57 */ array(5, 19, ), /* 58 */ array(3, 8, ), - /* 59 */ array(5, 19, ), + /* 59 */ array(1, 19, ), /* 60 */ array(4, 5, ), - /* 61 */ array(1, 19, ), - /* 62 */ array(28, ), - /* 63 */ array(18, ), + /* 61 */ array(28, ), + /* 62 */ array(1, ), + /* 63 */ array(1, ), /* 64 */ array(8, ), /* 65 */ array(31, ), - /* 66 */ array(1, ), - /* 67 */ array(28, ), - /* 68 */ array(19, ), - /* 69 */ array(1, ), + /* 66 */ array(28, ), + /* 67 */ array(19, ), + /* 68 */ array(18, ), + /* 69 */ array(), /* 70 */ array(), /* 71 */ array(), /* 72 */ array(), @@ -561,27 +553,26 @@ static public $yy_action = array( /* 171 */ array(), /* 172 */ array(), /* 173 */ array(), - /* 174 */ array(), ); static public $yy_default = array( - /* 0 */ 300, 300, 222, 300, 300, 300, 300, 300, 300, 300, - /* 10 */ 300, 300, 300, 300, 213, 214, 300, 211, 212, 300, - /* 20 */ 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, - /* 30 */ 190, 202, 220, 225, 221, 216, 215, 190, 190, 300, - /* 40 */ 300, 300, 189, 300, 190, 300, 300, 300, 210, 209, - /* 50 */ 187, 187, 187, 300, 300, 187, 300, 300, 300, 300, - /* 60 */ 300, 300, 239, 300, 300, 300, 176, 300, 300, 178, - /* 70 */ 183, 241, 185, 219, 182, 217, 201, 192, 272, 256, - /* 80 */ 255, 224, 227, 200, 198, 193, 194, 195, 188, 197, - /* 90 */ 181, 199, 226, 223, 232, 231, 230, 229, 228, 191, - /* 100 */ 196, 175, 269, 244, 236, 237, 238, 240, 243, 242, - /* 110 */ 245, 234, 246, 247, 277, 278, 279, 280, 235, 233, - /* 120 */ 282, 206, 179, 180, 186, 203, 204, 205, 207, 276, - /* 130 */ 257, 258, 273, 274, 208, 218, 275, 281, 283, 268, - /* 140 */ 254, 270, 271, 250, 251, 252, 253, 261, 259, 262, - /* 150 */ 263, 264, 265, 266, 267, 260, 249, 284, 291, 285, - /* 160 */ 286, 287, 288, 289, 290, 292, 248, 293, 294, 295, - /* 170 */ 296, 297, 298, 299, 177, + /* 0 */ 298, 298, 220, 298, 298, 298, 298, 298, 298, 298, + /* 10 */ 298, 298, 298, 298, 211, 212, 298, 209, 210, 298, + /* 20 */ 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, + /* 30 */ 298, 200, 223, 218, 219, 214, 213, 298, 298, 298, + /* 40 */ 298, 298, 298, 188, 208, 207, 186, 186, 186, 186, + /* 50 */ 188, 298, 298, 188, 188, 298, 298, 298, 298, 298, + /* 60 */ 298, 237, 177, 175, 298, 298, 298, 298, 298, 193, + /* 70 */ 217, 182, 198, 239, 199, 215, 184, 270, 254, 253, + /* 80 */ 190, 222, 224, 197, 187, 191, 194, 180, 189, 181, + /* 90 */ 195, 267, 192, 221, 230, 229, 228, 227, 226, 225, + /* 100 */ 196, 174, 266, 240, 233, 234, 235, 236, 238, 241, + /* 110 */ 242, 231, 243, 244, 245, 275, 276, 277, 232, 274, + /* 120 */ 279, 204, 178, 179, 185, 201, 202, 203, 205, 273, + /* 130 */ 255, 256, 271, 272, 206, 216, 278, 280, 265, 251, + /* 140 */ 258, 268, 269, 248, 249, 250, 252, 247, 259, 260, + /* 150 */ 261, 262, 263, 264, 257, 246, 281, 288, 282, 283, + /* 160 */ 284, 285, 286, 287, 289, 297, 290, 291, 292, 293, + /* 170 */ 294, 295, 296, 176, ); /* The next thing included is series of defines which control ** various aspects of the generated parser. @@ -600,8 +591,8 @@ static public $yy_action = array( */ const YYNOCODE = 119; const YYSTACKDEPTH = 1000; - const YYNSTATE = 175; - const YYNRULE = 125; + const YYNSTATE = 174; + const YYNRULE = 124; const YYERRORSYMBOL = 76; const YYERRSYMDT = 'yy0'; const YYFALLBACK = 0; @@ -734,118 +725,117 @@ static public $yy_action = array( /* 10 */ "class_list ::= class_list COMA class_name", /* 11 */ "where_statement ::= WHERE condition", /* 12 */ "where_statement ::=", - /* 13 */ "join_statement ::= join_item join_statement", - /* 14 */ "join_statement ::= join_item", - /* 15 */ "join_statement ::=", - /* 16 */ "join_item ::= JOIN class_name AS_ALIAS class_name ON join_condition", - /* 17 */ "join_item ::= JOIN class_name ON join_condition", - /* 18 */ "join_condition ::= field_id EQ field_id", - /* 19 */ "join_condition ::= field_id BELOW field_id", - /* 20 */ "join_condition ::= field_id BELOW_STRICT field_id", - /* 21 */ "join_condition ::= field_id NOT_BELOW field_id", - /* 22 */ "join_condition ::= field_id NOT_BELOW_STRICT field_id", - /* 23 */ "join_condition ::= field_id ABOVE field_id", - /* 24 */ "join_condition ::= field_id ABOVE_STRICT field_id", - /* 25 */ "join_condition ::= field_id NOT_ABOVE field_id", - /* 26 */ "join_condition ::= field_id NOT_ABOVE_STRICT field_id", - /* 27 */ "condition ::= expression_prio4", - /* 28 */ "expression_basic ::= scalar", - /* 29 */ "expression_basic ::= field_id", - /* 30 */ "expression_basic ::= var_name", - /* 31 */ "expression_basic ::= func_name PAR_OPEN arg_list PAR_CLOSE", - /* 32 */ "expression_basic ::= PAR_OPEN expression_prio4 PAR_CLOSE", - /* 33 */ "expression_basic ::= expression_basic list_operator list", - /* 34 */ "expression_prio1 ::= expression_basic", - /* 35 */ "expression_prio1 ::= expression_prio1 operator1 expression_basic", - /* 36 */ "expression_prio2 ::= expression_prio1", - /* 37 */ "expression_prio2 ::= expression_prio2 operator2 expression_prio1", - /* 38 */ "expression_prio3 ::= expression_prio2", - /* 39 */ "expression_prio3 ::= expression_prio3 operator3 expression_prio2", - /* 40 */ "expression_prio4 ::= expression_prio3", - /* 41 */ "expression_prio4 ::= expression_prio4 operator4 expression_prio3", - /* 42 */ "list ::= PAR_OPEN list_items PAR_CLOSE", - /* 43 */ "list ::= PAR_OPEN query PAR_CLOSE", - /* 44 */ "list ::= PAR_OPEN union PAR_CLOSE", - /* 45 */ "list_items ::= expression_prio4", - /* 46 */ "list_items ::= list_items COMA expression_prio4", - /* 47 */ "arg_list ::=", - /* 48 */ "arg_list ::= argument", - /* 49 */ "arg_list ::= arg_list COMA argument", - /* 50 */ "argument ::= expression_prio4", - /* 51 */ "argument ::= INTERVAL expression_prio4 interval_unit", - /* 52 */ "interval_unit ::= F_SECOND", - /* 53 */ "interval_unit ::= F_MINUTE", - /* 54 */ "interval_unit ::= F_HOUR", - /* 55 */ "interval_unit ::= F_DAY", - /* 56 */ "interval_unit ::= F_MONTH", - /* 57 */ "interval_unit ::= F_YEAR", - /* 58 */ "scalar ::= num_scalar", - /* 59 */ "scalar ::= str_scalar", - /* 60 */ "scalar ::= null_scalar", - /* 61 */ "num_scalar ::= num_value", - /* 62 */ "str_scalar ::= str_value", - /* 63 */ "null_scalar ::= NULL_VAL", - /* 64 */ "field_id ::= name", - /* 65 */ "field_id ::= class_name DOT name", - /* 66 */ "class_name ::= name", - /* 67 */ "var_name ::= VARNAME", - /* 68 */ "name ::= NAME", - /* 69 */ "num_value ::= NUMVAL", - /* 70 */ "num_value ::= MATH_MINUS NUMVAL", - /* 71 */ "num_value ::= HEXVAL", - /* 72 */ "str_value ::= STRVAL", - /* 73 */ "operator1 ::= num_operator1", - /* 74 */ "operator1 ::= bitwise_operator1", - /* 75 */ "operator2 ::= num_operator2", - /* 76 */ "operator2 ::= str_operator", - /* 77 */ "operator2 ::= REGEXP", - /* 78 */ "operator2 ::= EQ", - /* 79 */ "operator2 ::= NOT_EQ", - /* 80 */ "operator3 ::= LOG_AND", - /* 81 */ "operator3 ::= bitwise_operator3", - /* 82 */ "operator4 ::= LOG_OR", - /* 83 */ "operator4 ::= bitwise_operator4", - /* 84 */ "num_operator1 ::= MATH_DIV", - /* 85 */ "num_operator1 ::= MATH_MULT", - /* 86 */ "num_operator2 ::= MATH_PLUS", - /* 87 */ "num_operator2 ::= MATH_MINUS", - /* 88 */ "num_operator2 ::= GT", - /* 89 */ "num_operator2 ::= LT", - /* 90 */ "num_operator2 ::= GE", - /* 91 */ "num_operator2 ::= LE", - /* 92 */ "str_operator ::= LIKE", - /* 93 */ "str_operator ::= NOT_LIKE", - /* 94 */ "str_operator ::= MATCHES", - /* 95 */ "bitwise_operator1 ::= BITWISE_LEFT_SHIFT", - /* 96 */ "bitwise_operator1 ::= BITWISE_RIGHT_SHIFT", - /* 97 */ "bitwise_operator3 ::= BITWISE_AND", - /* 98 */ "bitwise_operator4 ::= BITWISE_OR", - /* 99 */ "bitwise_operator4 ::= BITWISE_XOR", - /* 100 */ "list_operator ::= IN", - /* 101 */ "list_operator ::= NOT_IN", - /* 102 */ "func_name ::= F_IF", - /* 103 */ "func_name ::= F_ELT", - /* 104 */ "func_name ::= F_COALESCE", - /* 105 */ "func_name ::= F_ISNULL", - /* 106 */ "func_name ::= F_CONCAT", - /* 107 */ "func_name ::= F_SUBSTR", - /* 108 */ "func_name ::= F_TRIM", - /* 109 */ "func_name ::= F_DATE", - /* 110 */ "func_name ::= F_DATE_FORMAT", - /* 111 */ "func_name ::= F_CURRENT_DATE", - /* 112 */ "func_name ::= F_NOW", - /* 113 */ "func_name ::= F_TIME", - /* 114 */ "func_name ::= F_TO_DAYS", - /* 115 */ "func_name ::= F_FROM_DAYS", - /* 116 */ "func_name ::= F_YEAR", - /* 117 */ "func_name ::= F_MONTH", - /* 118 */ "func_name ::= F_DAY", - /* 119 */ "func_name ::= F_DATE_ADD", - /* 120 */ "func_name ::= F_DATE_SUB", - /* 121 */ "func_name ::= F_ROUND", - /* 122 */ "func_name ::= F_FLOOR", - /* 123 */ "func_name ::= F_INET_ATON", - /* 124 */ "func_name ::= F_INET_NTOA", + /* 13 */ "join_statement ::= join_statement JOIN join_item", + /* 14 */ "join_statement ::=", + /* 15 */ "join_item ::= class_name AS_ALIAS class_name ON join_condition", + /* 16 */ "join_item ::= class_name ON join_condition", + /* 17 */ "join_condition ::= field_id EQ field_id", + /* 18 */ "join_condition ::= field_id BELOW field_id", + /* 19 */ "join_condition ::= field_id BELOW_STRICT field_id", + /* 20 */ "join_condition ::= field_id NOT_BELOW field_id", + /* 21 */ "join_condition ::= field_id NOT_BELOW_STRICT field_id", + /* 22 */ "join_condition ::= field_id ABOVE field_id", + /* 23 */ "join_condition ::= field_id ABOVE_STRICT field_id", + /* 24 */ "join_condition ::= field_id NOT_ABOVE field_id", + /* 25 */ "join_condition ::= field_id NOT_ABOVE_STRICT field_id", + /* 26 */ "condition ::= expression_prio4", + /* 27 */ "expression_basic ::= scalar", + /* 28 */ "expression_basic ::= field_id", + /* 29 */ "expression_basic ::= var_name", + /* 30 */ "expression_basic ::= func_name PAR_OPEN arg_list PAR_CLOSE", + /* 31 */ "expression_basic ::= PAR_OPEN expression_prio4 PAR_CLOSE", + /* 32 */ "expression_basic ::= expression_basic list_operator list", + /* 33 */ "expression_prio1 ::= expression_basic", + /* 34 */ "expression_prio1 ::= expression_prio1 operator1 expression_basic", + /* 35 */ "expression_prio2 ::= expression_prio1", + /* 36 */ "expression_prio2 ::= expression_prio2 operator2 expression_prio1", + /* 37 */ "expression_prio3 ::= expression_prio2", + /* 38 */ "expression_prio3 ::= expression_prio3 operator3 expression_prio2", + /* 39 */ "expression_prio4 ::= expression_prio3", + /* 40 */ "expression_prio4 ::= expression_prio4 operator4 expression_prio3", + /* 41 */ "list ::= PAR_OPEN list_items PAR_CLOSE", + /* 42 */ "list ::= PAR_OPEN query PAR_CLOSE", + /* 43 */ "list ::= PAR_OPEN union PAR_CLOSE", + /* 44 */ "list_items ::= expression_prio4", + /* 45 */ "list_items ::= list_items COMA expression_prio4", + /* 46 */ "arg_list ::=", + /* 47 */ "arg_list ::= argument", + /* 48 */ "arg_list ::= arg_list COMA argument", + /* 49 */ "argument ::= expression_prio4", + /* 50 */ "argument ::= INTERVAL expression_prio4 interval_unit", + /* 51 */ "interval_unit ::= F_SECOND", + /* 52 */ "interval_unit ::= F_MINUTE", + /* 53 */ "interval_unit ::= F_HOUR", + /* 54 */ "interval_unit ::= F_DAY", + /* 55 */ "interval_unit ::= F_MONTH", + /* 56 */ "interval_unit ::= F_YEAR", + /* 57 */ "scalar ::= num_scalar", + /* 58 */ "scalar ::= str_scalar", + /* 59 */ "scalar ::= null_scalar", + /* 60 */ "num_scalar ::= num_value", + /* 61 */ "str_scalar ::= str_value", + /* 62 */ "null_scalar ::= NULL_VAL", + /* 63 */ "field_id ::= name", + /* 64 */ "field_id ::= class_name DOT name", + /* 65 */ "class_name ::= name", + /* 66 */ "var_name ::= VARNAME", + /* 67 */ "name ::= NAME", + /* 68 */ "num_value ::= NUMVAL", + /* 69 */ "num_value ::= MATH_MINUS NUMVAL", + /* 70 */ "num_value ::= HEXVAL", + /* 71 */ "str_value ::= STRVAL", + /* 72 */ "operator1 ::= num_operator1", + /* 73 */ "operator1 ::= bitwise_operator1", + /* 74 */ "operator2 ::= num_operator2", + /* 75 */ "operator2 ::= str_operator", + /* 76 */ "operator2 ::= REGEXP", + /* 77 */ "operator2 ::= EQ", + /* 78 */ "operator2 ::= NOT_EQ", + /* 79 */ "operator3 ::= LOG_AND", + /* 80 */ "operator3 ::= bitwise_operator3", + /* 81 */ "operator4 ::= LOG_OR", + /* 82 */ "operator4 ::= bitwise_operator4", + /* 83 */ "num_operator1 ::= MATH_DIV", + /* 84 */ "num_operator1 ::= MATH_MULT", + /* 85 */ "num_operator2 ::= MATH_PLUS", + /* 86 */ "num_operator2 ::= MATH_MINUS", + /* 87 */ "num_operator2 ::= GT", + /* 88 */ "num_operator2 ::= LT", + /* 89 */ "num_operator2 ::= GE", + /* 90 */ "num_operator2 ::= LE", + /* 91 */ "str_operator ::= LIKE", + /* 92 */ "str_operator ::= NOT_LIKE", + /* 93 */ "str_operator ::= MATCHES", + /* 94 */ "bitwise_operator1 ::= BITWISE_LEFT_SHIFT", + /* 95 */ "bitwise_operator1 ::= BITWISE_RIGHT_SHIFT", + /* 96 */ "bitwise_operator3 ::= BITWISE_AND", + /* 97 */ "bitwise_operator4 ::= BITWISE_OR", + /* 98 */ "bitwise_operator4 ::= BITWISE_XOR", + /* 99 */ "list_operator ::= IN", + /* 100 */ "list_operator ::= NOT_IN", + /* 101 */ "func_name ::= F_IF", + /* 102 */ "func_name ::= F_ELT", + /* 103 */ "func_name ::= F_COALESCE", + /* 104 */ "func_name ::= F_ISNULL", + /* 105 */ "func_name ::= F_CONCAT", + /* 106 */ "func_name ::= F_SUBSTR", + /* 107 */ "func_name ::= F_TRIM", + /* 108 */ "func_name ::= F_DATE", + /* 109 */ "func_name ::= F_DATE_FORMAT", + /* 110 */ "func_name ::= F_CURRENT_DATE", + /* 111 */ "func_name ::= F_NOW", + /* 112 */ "func_name ::= F_TIME", + /* 113 */ "func_name ::= F_TO_DAYS", + /* 114 */ "func_name ::= F_FROM_DAYS", + /* 115 */ "func_name ::= F_YEAR", + /* 116 */ "func_name ::= F_MONTH", + /* 117 */ "func_name ::= F_DAY", + /* 118 */ "func_name ::= F_DATE_ADD", + /* 119 */ "func_name ::= F_DATE_SUB", + /* 120 */ "func_name ::= F_ROUND", + /* 121 */ "func_name ::= F_FLOOR", + /* 122 */ "func_name ::= F_INET_ATON", + /* 123 */ "func_name ::= F_INET_NTOA", ); /** @@ -1180,7 +1170,7 @@ static public $yy_action = array( #line 30 "..\oql-parser.y" throw new OQLParserStackOverFlowException($this->m_sSourceQuery, $this->m_iLine, $this->m_iCol); -#line 1188 "..\oql-parser.php" +#line 1178 "..\oql-parser.php" return; } $yytos = new OQLParser_yyStackEntry; @@ -1227,11 +1217,10 @@ throw new OQLParserStackOverFlowException($this->m_sSourceQuery, $this->m_iLine, array( 'lhs' => 84, 'rhs' => 3 ), array( 'lhs' => 83, 'rhs' => 2 ), array( 'lhs' => 83, 'rhs' => 0 ), - array( 'lhs' => 82, 'rhs' => 2 ), - array( 'lhs' => 82, 'rhs' => 1 ), + array( 'lhs' => 82, 'rhs' => 3 ), array( 'lhs' => 82, 'rhs' => 0 ), - array( 'lhs' => 85, 'rhs' => 6 ), - array( 'lhs' => 85, 'rhs' => 4 ), + array( 'lhs' => 85, 'rhs' => 5 ), + array( 'lhs' => 85, 'rhs' => 3 ), array( 'lhs' => 86, 'rhs' => 3 ), array( 'lhs' => 86, 'rhs' => 3 ), array( 'lhs' => 86, 'rhs' => 3 ), @@ -1358,16 +1347,16 @@ throw new OQLParserStackOverFlowException($this->m_sSourceQuery, $this->m_iLine, 7 => 7, 8 => 8, 9 => 9, - 45 => 9, - 48 => 9, + 44 => 9, + 47 => 9, 10 => 10, - 46 => 10, - 49 => 10, + 45 => 10, + 48 => 10, 11 => 11, 12 => 12, - 15 => 12, 13 => 13, 14 => 14, + 15 => 15, 16 => 16, 17 => 17, 18 => 18, @@ -1379,100 +1368,99 @@ throw new OQLParserStackOverFlowException($this->m_sSourceQuery, $this->m_iLine, 24 => 24, 25 => 25, 26 => 26, - 27 => 27, - 28 => 27, - 29 => 27, - 30 => 27, - 34 => 27, - 36 => 27, - 38 => 27, - 40 => 27, - 50 => 27, - 52 => 27, - 53 => 27, - 54 => 27, - 55 => 27, - 56 => 27, - 57 => 27, - 58 => 27, - 59 => 27, - 60 => 27, + 27 => 26, + 28 => 26, + 29 => 26, + 33 => 26, + 35 => 26, + 37 => 26, + 39 => 26, + 49 => 26, + 51 => 26, + 52 => 26, + 53 => 26, + 54 => 26, + 55 => 26, + 56 => 26, + 57 => 26, + 58 => 26, + 59 => 26, + 30 => 30, 31 => 31, 32 => 32, - 33 => 33, - 35 => 33, - 39 => 33, - 41 => 33, - 37 => 37, + 34 => 32, + 38 => 32, + 40 => 32, + 36 => 36, + 41 => 41, 42 => 42, - 43 => 43, - 44 => 43, - 47 => 47, - 51 => 51, - 61 => 61, - 62 => 61, + 43 => 42, + 46 => 46, + 50 => 50, + 60 => 60, + 61 => 60, + 62 => 62, 63 => 63, 64 => 64, 65 => 65, + 101 => 65, + 102 => 65, + 103 => 65, + 104 => 65, + 105 => 65, + 106 => 65, + 107 => 65, + 108 => 65, + 109 => 65, + 110 => 65, + 111 => 65, + 112 => 65, + 113 => 65, + 114 => 65, + 115 => 65, + 116 => 65, + 117 => 65, + 118 => 65, + 119 => 65, + 120 => 65, + 121 => 65, + 122 => 65, + 123 => 65, 66 => 66, - 102 => 66, - 103 => 66, - 104 => 66, - 105 => 66, - 106 => 66, - 107 => 66, - 108 => 66, - 109 => 66, - 110 => 66, - 111 => 66, - 112 => 66, - 113 => 66, - 114 => 66, - 115 => 66, - 116 => 66, - 117 => 66, - 118 => 66, - 119 => 66, - 120 => 66, - 121 => 66, - 122 => 66, - 123 => 66, - 124 => 66, 67 => 67, 68 => 68, 69 => 69, 70 => 70, 71 => 71, 72 => 72, - 73 => 73, - 74 => 73, - 75 => 73, - 76 => 73, - 77 => 73, - 78 => 73, - 79 => 73, - 80 => 73, - 81 => 73, - 82 => 73, - 83 => 73, - 84 => 73, - 85 => 73, - 86 => 73, - 87 => 73, - 88 => 73, - 89 => 73, - 90 => 73, - 91 => 73, - 92 => 73, - 93 => 73, - 94 => 73, - 95 => 73, - 96 => 73, - 97 => 73, - 98 => 73, - 99 => 73, - 100 => 73, - 101 => 73, + 73 => 72, + 74 => 72, + 75 => 72, + 76 => 72, + 77 => 72, + 78 => 72, + 79 => 72, + 80 => 72, + 81 => 72, + 82 => 72, + 83 => 72, + 84 => 72, + 85 => 72, + 86 => 72, + 87 => 72, + 88 => 72, + 89 => 72, + 90 => 72, + 91 => 72, + 92 => 72, + 93 => 72, + 94 => 72, + 95 => 72, + 96 => 72, + 97 => 72, + 98 => 72, + 99 => 72, + 100 => 72, ); /* Beginning here are the reduction cases. A typical example ** follows: @@ -1482,115 +1470,113 @@ throw new OQLParserStackOverFlowException($this->m_sSourceQuery, $this->m_iLine, */ #line 37 "..\oql-parser.y" function yy_r0(){ $this->my_result = $this->yystack[$this->yyidx + 0]->minor; } -#line 1490 "..\oql-parser.php" +#line 1478 "..\oql-parser.php" #line 41 "..\oql-parser.y" function yy_r3(){ $this->_retvalue = new OqlUnionQuery($this->yystack[$this->yyidx + -2]->minor, $this->yystack[$this->yyidx + 0]->minor); } -#line 1495 "..\oql-parser.php" +#line 1483 "..\oql-parser.php" #line 48 "..\oql-parser.y" function yy_r5(){ $this->_retvalue = new OqlObjectQuery($this->yystack[$this->yyidx + -2]->minor, $this->yystack[$this->yyidx + -2]->minor, $this->yystack[$this->yyidx + 0]->minor, $this->yystack[$this->yyidx + -1]->minor, array($this->yystack[$this->yyidx + -2]->minor)); } -#line 1500 "..\oql-parser.php" +#line 1488 "..\oql-parser.php" #line 51 "..\oql-parser.y" function yy_r6(){ $this->_retvalue = new OqlObjectQuery($this->yystack[$this->yyidx + -4]->minor, $this->yystack[$this->yyidx + -2]->minor, $this->yystack[$this->yyidx + 0]->minor, $this->yystack[$this->yyidx + -1]->minor, array($this->yystack[$this->yyidx + -2]->minor)); } -#line 1505 "..\oql-parser.php" +#line 1493 "..\oql-parser.php" #line 55 "..\oql-parser.y" function yy_r7(){ $this->_retvalue = new OqlObjectQuery($this->yystack[$this->yyidx + -2]->minor, $this->yystack[$this->yyidx + -2]->minor, $this->yystack[$this->yyidx + 0]->minor, $this->yystack[$this->yyidx + -1]->minor, $this->yystack[$this->yyidx + -4]->minor); } -#line 1510 "..\oql-parser.php" +#line 1498 "..\oql-parser.php" #line 58 "..\oql-parser.y" function yy_r8(){ $this->_retvalue = new OqlObjectQuery($this->yystack[$this->yyidx + -4]->minor, $this->yystack[$this->yyidx + -2]->minor, $this->yystack[$this->yyidx + 0]->minor, $this->yystack[$this->yyidx + -1]->minor, $this->yystack[$this->yyidx + -6]->minor); } -#line 1515 "..\oql-parser.php" +#line 1503 "..\oql-parser.php" #line 63 "..\oql-parser.y" function yy_r9(){ $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor); } -#line 1520 "..\oql-parser.php" +#line 1508 "..\oql-parser.php" #line 66 "..\oql-parser.y" function yy_r10(){ array_push($this->yystack[$this->yyidx + -2]->minor, $this->yystack[$this->yyidx + 0]->minor); $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor; } -#line 1526 "..\oql-parser.php" +#line 1514 "..\oql-parser.php" #line 71 "..\oql-parser.y" function yy_r11(){ $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor; } -#line 1529 "..\oql-parser.php" +#line 1517 "..\oql-parser.php" #line 72 "..\oql-parser.y" function yy_r12(){ $this->_retvalue = null; } -#line 1532 "..\oql-parser.php" +#line 1520 "..\oql-parser.php" #line 74 "..\oql-parser.y" function yy_r13(){ // insert the join statement on top of the existing list - array_unshift($this->yystack[$this->yyidx + 0]->minor, $this->yystack[$this->yyidx + -1]->minor); + array_push($this->yystack[$this->yyidx + -2]->minor, $this->yystack[$this->yyidx + 0]->minor); // and return the updated array - $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor; + $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor; } -#line 1540 "..\oql-parser.php" +#line 1528 "..\oql-parser.php" #line 80 "..\oql-parser.y" - function yy_r14(){ - $this->_retvalue = Array($this->yystack[$this->yyidx + 0]->minor); - } -#line 1545 "..\oql-parser.php" -#line 86 "..\oql-parser.y" - function yy_r16(){ + function yy_r14(){ $this->_retvalue = []; } +#line 1531 "..\oql-parser.php" +#line 83 "..\oql-parser.y" + function yy_r15(){ // create an array with one single item $this->_retvalue = new OqlJoinSpec($this->yystack[$this->yyidx + -4]->minor, $this->yystack[$this->yyidx + -2]->minor, $this->yystack[$this->yyidx + 0]->minor); } -#line 1551 "..\oql-parser.php" -#line 91 "..\oql-parser.y" - function yy_r17(){ +#line 1537 "..\oql-parser.php" +#line 88 "..\oql-parser.y" + function yy_r16(){ // create an array with one single item $this->_retvalue = new OqlJoinSpec($this->yystack[$this->yyidx + -2]->minor, $this->yystack[$this->yyidx + -2]->minor, $this->yystack[$this->yyidx + 0]->minor); } -#line 1557 "..\oql-parser.php" +#line 1543 "..\oql-parser.php" +#line 92 "..\oql-parser.y" + function yy_r17(){ $this->_retvalue = new BinaryOqlExpression($this->yystack[$this->yyidx + -2]->minor, '=', $this->yystack[$this->yyidx + 0]->minor); } +#line 1546 "..\oql-parser.php" +#line 93 "..\oql-parser.y" + function yy_r18(){ $this->_retvalue = new BinaryOqlExpression($this->yystack[$this->yyidx + -2]->minor, 'BELOW', $this->yystack[$this->yyidx + 0]->minor); } +#line 1549 "..\oql-parser.php" +#line 94 "..\oql-parser.y" + function yy_r19(){ $this->_retvalue = new BinaryOqlExpression($this->yystack[$this->yyidx + -2]->minor, 'BELOW_STRICT', $this->yystack[$this->yyidx + 0]->minor); } +#line 1552 "..\oql-parser.php" +#line 95 "..\oql-parser.y" + function yy_r20(){ $this->_retvalue = new BinaryOqlExpression($this->yystack[$this->yyidx + -2]->minor, 'NOT_BELOW', $this->yystack[$this->yyidx + 0]->minor); } +#line 1555 "..\oql-parser.php" #line 96 "..\oql-parser.y" - function yy_r18(){ $this->_retvalue = new BinaryOqlExpression($this->yystack[$this->yyidx + -2]->minor, '=', $this->yystack[$this->yyidx + 0]->minor); } -#line 1560 "..\oql-parser.php" + function yy_r21(){ $this->_retvalue = new BinaryOqlExpression($this->yystack[$this->yyidx + -2]->minor, 'NOT_BELOW_STRICT', $this->yystack[$this->yyidx + 0]->minor); } +#line 1558 "..\oql-parser.php" #line 97 "..\oql-parser.y" - function yy_r19(){ $this->_retvalue = new BinaryOqlExpression($this->yystack[$this->yyidx + -2]->minor, 'BELOW', $this->yystack[$this->yyidx + 0]->minor); } -#line 1563 "..\oql-parser.php" + function yy_r22(){ $this->_retvalue = new BinaryOqlExpression($this->yystack[$this->yyidx + -2]->minor, 'ABOVE', $this->yystack[$this->yyidx + 0]->minor); } +#line 1561 "..\oql-parser.php" #line 98 "..\oql-parser.y" - function yy_r20(){ $this->_retvalue = new BinaryOqlExpression($this->yystack[$this->yyidx + -2]->minor, 'BELOW_STRICT', $this->yystack[$this->yyidx + 0]->minor); } -#line 1566 "..\oql-parser.php" + function yy_r23(){ $this->_retvalue = new BinaryOqlExpression($this->yystack[$this->yyidx + -2]->minor, 'ABOVE_STRICT', $this->yystack[$this->yyidx + 0]->minor); } +#line 1564 "..\oql-parser.php" #line 99 "..\oql-parser.y" - function yy_r21(){ $this->_retvalue = new BinaryOqlExpression($this->yystack[$this->yyidx + -2]->minor, 'NOT_BELOW', $this->yystack[$this->yyidx + 0]->minor); } -#line 1569 "..\oql-parser.php" + function yy_r24(){ $this->_retvalue = new BinaryOqlExpression($this->yystack[$this->yyidx + -2]->minor, 'NOT_ABOVE', $this->yystack[$this->yyidx + 0]->minor); } +#line 1567 "..\oql-parser.php" #line 100 "..\oql-parser.y" - function yy_r22(){ $this->_retvalue = new BinaryOqlExpression($this->yystack[$this->yyidx + -2]->minor, 'NOT_BELOW_STRICT', $this->yystack[$this->yyidx + 0]->minor); } -#line 1572 "..\oql-parser.php" -#line 101 "..\oql-parser.y" - function yy_r23(){ $this->_retvalue = new BinaryOqlExpression($this->yystack[$this->yyidx + -2]->minor, 'ABOVE', $this->yystack[$this->yyidx + 0]->minor); } -#line 1575 "..\oql-parser.php" + function yy_r25(){ $this->_retvalue = new BinaryOqlExpression($this->yystack[$this->yyidx + -2]->minor, 'NOT_ABOVE_STRICT', $this->yystack[$this->yyidx + 0]->minor); } +#line 1570 "..\oql-parser.php" #line 102 "..\oql-parser.y" - function yy_r24(){ $this->_retvalue = new BinaryOqlExpression($this->yystack[$this->yyidx + -2]->minor, 'ABOVE_STRICT', $this->yystack[$this->yyidx + 0]->minor); } -#line 1578 "..\oql-parser.php" -#line 103 "..\oql-parser.y" - function yy_r25(){ $this->_retvalue = new BinaryOqlExpression($this->yystack[$this->yyidx + -2]->minor, 'NOT_ABOVE', $this->yystack[$this->yyidx + 0]->minor); } -#line 1581 "..\oql-parser.php" -#line 104 "..\oql-parser.y" - function yy_r26(){ $this->_retvalue = new BinaryOqlExpression($this->yystack[$this->yyidx + -2]->minor, 'NOT_ABOVE_STRICT', $this->yystack[$this->yyidx + 0]->minor); } -#line 1584 "..\oql-parser.php" -#line 106 "..\oql-parser.y" - function yy_r27(){ $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor; } -#line 1587 "..\oql-parser.php" -#line 111 "..\oql-parser.y" - function yy_r31(){ $this->_retvalue = new FunctionOqlExpression($this->yystack[$this->yyidx + -3]->minor, $this->yystack[$this->yyidx + -1]->minor); } -#line 1590 "..\oql-parser.php" -#line 112 "..\oql-parser.y" - function yy_r32(){ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor; } -#line 1593 "..\oql-parser.php" -#line 113 "..\oql-parser.y" - function yy_r33(){ $this->_retvalue = new BinaryOqlExpression($this->yystack[$this->yyidx + -2]->minor, $this->yystack[$this->yyidx + -1]->minor, $this->yystack[$this->yyidx + 0]->minor); } -#line 1596 "..\oql-parser.php" -#line 119 "..\oql-parser.y" - function yy_r37(){ + function yy_r26(){ $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor; } +#line 1573 "..\oql-parser.php" +#line 107 "..\oql-parser.y" + function yy_r30(){ $this->_retvalue = new FunctionOqlExpression($this->yystack[$this->yyidx + -3]->minor, $this->yystack[$this->yyidx + -1]->minor); } +#line 1576 "..\oql-parser.php" +#line 108 "..\oql-parser.y" + function yy_r31(){ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor; } +#line 1579 "..\oql-parser.php" +#line 109 "..\oql-parser.y" + function yy_r32(){ $this->_retvalue = new BinaryOqlExpression($this->yystack[$this->yyidx + -2]->minor, $this->yystack[$this->yyidx + -1]->minor, $this->yystack[$this->yyidx + 0]->minor); } +#line 1582 "..\oql-parser.php" +#line 115 "..\oql-parser.y" + function yy_r36(){ if ($this->yystack[$this->yyidx + -1]->minor == 'MATCHES') { $this->_retvalue = new MatchOqlExpression($this->yystack[$this->yyidx + -2]->minor, $this->yystack[$this->yyidx + 0]->minor); @@ -1600,45 +1586,45 @@ throw new OQLParserStackOverFlowException($this->m_sSourceQuery, $this->m_iLine, $this->_retvalue = new BinaryOqlExpression($this->yystack[$this->yyidx + -2]->minor, $this->yystack[$this->yyidx + -1]->minor, $this->yystack[$this->yyidx + 0]->minor); } } -#line 1608 "..\oql-parser.php" -#line 136 "..\oql-parser.y" - function yy_r42(){ +#line 1594 "..\oql-parser.php" +#line 132 "..\oql-parser.y" + function yy_r41(){ $this->_retvalue = new ListOqlExpression($this->yystack[$this->yyidx + -1]->minor); } -#line 1613 "..\oql-parser.php" -#line 139 "..\oql-parser.y" - function yy_r43(){ +#line 1599 "..\oql-parser.php" +#line 135 "..\oql-parser.y" + function yy_r42(){ $this->_retvalue = new NestedQueryOqlExpression($this->yystack[$this->yyidx + -1]->minor); } -#line 1618 "..\oql-parser.php" -#line 154 "..\oql-parser.y" - function yy_r47(){ +#line 1604 "..\oql-parser.php" +#line 150 "..\oql-parser.y" + function yy_r46(){ $this->_retvalue = array(); } -#line 1623 "..\oql-parser.php" -#line 165 "..\oql-parser.y" - function yy_r51(){ $this->_retvalue = new IntervalOqlExpression($this->yystack[$this->yyidx + -1]->minor, $this->yystack[$this->yyidx + 0]->minor); } -#line 1626 "..\oql-parser.php" +#line 1609 "..\oql-parser.php" +#line 161 "..\oql-parser.y" + function yy_r50(){ $this->_retvalue = new IntervalOqlExpression($this->yystack[$this->yyidx + -1]->minor, $this->yystack[$this->yyidx + 0]->minor); } +#line 1612 "..\oql-parser.php" +#line 174 "..\oql-parser.y" + function yy_r60(){ $this->_retvalue = new ScalarOqlExpression($this->yystack[$this->yyidx + 0]->minor); } +#line 1615 "..\oql-parser.php" +#line 176 "..\oql-parser.y" + function yy_r62(){ $this->_retvalue = new ScalarOqlExpression(null); } +#line 1618 "..\oql-parser.php" #line 178 "..\oql-parser.y" - function yy_r61(){ $this->_retvalue = new ScalarOqlExpression($this->yystack[$this->yyidx + 0]->minor); } -#line 1629 "..\oql-parser.php" + function yy_r63(){ $this->_retvalue = new FieldOqlExpression($this->yystack[$this->yyidx + 0]->minor); } +#line 1621 "..\oql-parser.php" +#line 179 "..\oql-parser.y" + function yy_r64(){ $this->_retvalue = new FieldOqlExpression($this->yystack[$this->yyidx + 0]->minor, $this->yystack[$this->yyidx + -2]->minor); } +#line 1624 "..\oql-parser.php" #line 180 "..\oql-parser.y" - function yy_r63(){ $this->_retvalue = new ScalarOqlExpression(null); } -#line 1632 "..\oql-parser.php" -#line 182 "..\oql-parser.y" - function yy_r64(){ $this->_retvalue = new FieldOqlExpression($this->yystack[$this->yyidx + 0]->minor); } -#line 1635 "..\oql-parser.php" + function yy_r65(){ $this->_retvalue=$this->yystack[$this->yyidx + 0]->minor; } +#line 1627 "..\oql-parser.php" #line 183 "..\oql-parser.y" - function yy_r65(){ $this->_retvalue = new FieldOqlExpression($this->yystack[$this->yyidx + 0]->minor, $this->yystack[$this->yyidx + -2]->minor); } -#line 1638 "..\oql-parser.php" -#line 184 "..\oql-parser.y" - function yy_r66(){ $this->_retvalue=$this->yystack[$this->yyidx + 0]->minor; } -#line 1641 "..\oql-parser.php" -#line 187 "..\oql-parser.y" - function yy_r67(){ $this->_retvalue = new VariableOqlExpression(substr($this->yystack[$this->yyidx + 0]->minor, 1)); } -#line 1644 "..\oql-parser.php" -#line 189 "..\oql-parser.y" - function yy_r68(){ + function yy_r66(){ $this->_retvalue = new VariableOqlExpression(substr($this->yystack[$this->yyidx + 0]->minor, 1)); } +#line 1630 "..\oql-parser.php" +#line 185 "..\oql-parser.y" + function yy_r67(){ if ($this->yystack[$this->yyidx + 0]->minor[0] == '`') { $name = substr($this->yystack[$this->yyidx + 0]->minor, 1, strlen($this->yystack[$this->yyidx + 0]->minor) - 2); @@ -1649,22 +1635,22 @@ throw new OQLParserStackOverFlowException($this->m_sSourceQuery, $this->m_iLine, } $this->_retvalue = new OqlName($name, $this->m_iColPrev); } -#line 1657 "..\oql-parser.php" -#line 200 "..\oql-parser.y" - function yy_r69(){$this->_retvalue=(int)$this->yystack[$this->yyidx + 0]->minor; } -#line 1660 "..\oql-parser.php" -#line 201 "..\oql-parser.y" - function yy_r70(){$this->_retvalue=(int)-$this->yystack[$this->yyidx + 0]->minor; } -#line 1663 "..\oql-parser.php" +#line 1643 "..\oql-parser.php" +#line 196 "..\oql-parser.y" + function yy_r68(){$this->_retvalue=(int)$this->yystack[$this->yyidx + 0]->minor; } +#line 1646 "..\oql-parser.php" +#line 197 "..\oql-parser.y" + function yy_r69(){$this->_retvalue=(int)-$this->yystack[$this->yyidx + 0]->minor; } +#line 1649 "..\oql-parser.php" +#line 198 "..\oql-parser.y" + function yy_r70(){$this->_retvalue=new OqlHexValue($this->yystack[$this->yyidx + 0]->minor); } +#line 1652 "..\oql-parser.php" +#line 199 "..\oql-parser.y" + function yy_r71(){$this->_retvalue=stripslashes(substr($this->yystack[$this->yyidx + 0]->minor, 1, strlen($this->yystack[$this->yyidx + 0]->minor) - 2)); } +#line 1655 "..\oql-parser.php" #line 202 "..\oql-parser.y" - function yy_r71(){$this->_retvalue=new OqlHexValue($this->yystack[$this->yyidx + 0]->minor); } -#line 1666 "..\oql-parser.php" -#line 203 "..\oql-parser.y" - function yy_r72(){$this->_retvalue=stripslashes(substr($this->yystack[$this->yyidx + 0]->minor, 1, strlen($this->yystack[$this->yyidx + 0]->minor) - 2)); } -#line 1669 "..\oql-parser.php" -#line 206 "..\oql-parser.y" - function yy_r73(){$this->_retvalue=$this->yystack[$this->yyidx + 0]->minor; } -#line 1672 "..\oql-parser.php" + function yy_r72(){$this->_retvalue=$this->yystack[$this->yyidx + 0]->minor; } +#line 1658 "..\oql-parser.php" /** * placeholder for the left hand side in a reduce operation. @@ -1768,7 +1754,7 @@ throw new OQLParserStackOverFlowException($this->m_sSourceQuery, $this->m_iLine, #line 33 "..\oql-parser.y" throw new OQLParserParseFailureException($this->m_sSourceQuery, $this->m_iLine, $this->m_iCol); -#line 1777 "..\oql-parser.php" +#line 1763 "..\oql-parser.php" } /** @@ -1783,7 +1769,7 @@ throw new OQLParserParseFailureException($this->m_sSourceQuery, $this->m_iLine, #line 25 "..\oql-parser.y" throw new OQLParserSyntaxErrorException($this->m_sSourceQuery, $this->m_iLine, $this->m_iCol, $this->tokenName($yymajor), $TOKEN); -#line 1793 "..\oql-parser.php" +#line 1779 "..\oql-parser.php" } /** @@ -1950,7 +1936,7 @@ throw new OQLParserSyntaxErrorException($this->m_sSourceQuery, $this->m_iLine, $ } while ($yymajor != self::YYNOCODE && $this->yyidx >= 0); } } -#line 271 "..\oql-parser.y" +#line 267 "..\oql-parser.y" class OQLParserException extends OQLException @@ -2043,4 +2029,4 @@ class OQLParser extends OQLParserRaw } } -#line 2054 "..\oql-parser.php" +#line 2040 "..\oql-parser.php" diff --git a/core/oql/oql-parser.y b/core/oql/oql-parser.y index 33cd9b1aa..7e7076db9 100644 --- a/core/oql/oql-parser.y +++ b/core/oql/oql-parser.y @@ -71,28 +71,24 @@ class_list(A) ::= class_list(L) COMA class_name(X). { where_statement(A) ::= WHERE condition(C). { A = C;} where_statement(A) ::= . { A = null;} -join_statement(A) ::= join_item(J) join_statement(S). { +join_statement(A) ::= join_statement(S) JOIN join_item(J). { // insert the join statement on top of the existing list - array_unshift(S, J); + array_push(S, J); // and return the updated array A = S; } -join_statement(A) ::= join_item(J). { - A = Array(J); -} -join_statement(A) ::= . { A = null;} +join_statement(A) ::= . { A = [];} -join_item(A) ::= JOIN class_name(X) AS_ALIAS class_name(Y) ON join_condition(C). +join_item(A) ::= class_name(X) AS_ALIAS class_name(Y) ON join_condition(C). { // create an array with one single item A = new OqlJoinSpec(X, Y, C); } -join_item(A) ::= JOIN class_name(X) ON join_condition(C). +join_item(A) ::= class_name(X) ON join_condition(C). { // create an array with one single item A = new OqlJoinSpec(X, X, C); } - join_condition(A) ::= field_id(X) EQ field_id(Y). { A = new BinaryOqlExpression(X, '=', Y); } join_condition(A) ::= field_id(X) BELOW field_id(Y). { A = new BinaryOqlExpression(X, 'BELOW', Y); } join_condition(A) ::= field_id(X) BELOW_STRICT field_id(Y). { A = new BinaryOqlExpression(X, 'BELOW_STRICT', Y); }