From f0393b5851f92044767810a2255bcae90c09a58f Mon Sep 17 00:00:00 2001 From: Famlam Date: Sat, 18 Nov 2023 13:35:09 +0100 Subject: [PATCH] Regenerate with antlr --- mapcss/generated/MapCSS.interp | 3 +- mapcss/generated/MapCSSListener.py | 9 + mapcss/generated/MapCSSParser.py | 872 +++++++++++++++-------------- 3 files changed, 472 insertions(+), 412 deletions(-) diff --git a/mapcss/generated/MapCSS.interp b/mapcss/generated/MapCSS.interp index a18a23d85..db97ff878 100644 --- a/mapcss/generated/MapCSS.interp +++ b/mapcss/generated/MapCSS.interp @@ -175,6 +175,7 @@ stylesheet entry rule_ selector +parent_child_selector_operator simple_selector_operator link_selector layer_id_selector @@ -208,4 +209,4 @@ primaryExpression atn: -[4, 1, 83, 360, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 1, 0, 5, 0, 70, 8, 0, 10, 0, 12, 0, 73, 9, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 5, 2, 82, 8, 2, 10, 2, 12, 2, 85, 9, 2, 1, 2, 5, 2, 88, 8, 2, 10, 2, 12, 2, 91, 9, 2, 1, 2, 1, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 5, 3, 103, 8, 3, 10, 3, 12, 3, 106, 9, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 114, 8, 3, 1, 4, 1, 4, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 3, 5, 130, 8, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 5, 7, 141, 8, 7, 10, 7, 12, 7, 144, 9, 7, 1, 7, 3, 7, 147, 8, 7, 1, 8, 1, 8, 1, 9, 1, 9, 1, 10, 3, 10, 154, 8, 10, 1, 10, 1, 10, 1, 11, 3, 11, 159, 8, 11, 1, 11, 1, 11, 1, 11, 5, 11, 164, 8, 11, 10, 11, 12, 11, 167, 9, 11, 1, 12, 1, 12, 1, 12, 1, 12, 1, 13, 1, 13, 3, 13, 175, 8, 13, 1, 14, 3, 14, 178, 8, 14, 1, 14, 1, 14, 3, 14, 182, 8, 14, 1, 14, 3, 14, 185, 8, 14, 1, 14, 3, 14, 188, 8, 14, 1, 14, 3, 14, 191, 8, 14, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 3, 15, 198, 8, 15, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 3, 16, 208, 8, 16, 1, 17, 1, 17, 3, 17, 212, 8, 17, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 3, 18, 220, 8, 18, 1, 19, 1, 19, 1, 19, 5, 19, 225, 8, 19, 10, 19, 12, 19, 228, 9, 19, 1, 19, 5, 19, 231, 8, 19, 10, 19, 12, 19, 234, 9, 19, 1, 20, 1, 20, 3, 20, 238, 8, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 3, 20, 245, 8, 20, 1, 21, 1, 21, 1, 22, 1, 22, 3, 22, 251, 8, 22, 1, 23, 1, 23, 3, 23, 255, 8, 23, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 3, 24, 263, 8, 24, 1, 25, 1, 25, 1, 26, 1, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 3, 27, 274, 8, 27, 1, 28, 1, 28, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 3, 29, 298, 8, 29, 1, 29, 1, 29, 1, 29, 1, 29, 5, 29, 304, 8, 29, 10, 29, 12, 29, 307, 9, 29, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 316, 8, 30, 1, 30, 1, 30, 1, 30, 5, 30, 321, 8, 30, 10, 30, 12, 30, 324, 9, 30, 1, 31, 1, 31, 3, 31, 328, 8, 31, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 5, 32, 335, 8, 32, 10, 32, 12, 32, 338, 9, 32, 3, 32, 340, 8, 32, 1, 32, 1, 32, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 3, 33, 349, 8, 33, 1, 33, 1, 33, 3, 33, 353, 8, 33, 1, 33, 1, 33, 1, 33, 3, 33, 358, 8, 33, 1, 33, 0, 2, 58, 60, 34, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 0, 8, 2, 0, 4, 9, 17, 17, 1, 0, 42, 43, 2, 0, 12, 12, 40, 40, 1, 0, 2, 3, 2, 0, 13, 14, 25, 26, 1, 0, 13, 18, 1, 0, 19, 20, 1, 0, 27, 31, 388, 0, 71, 1, 0, 0, 0, 2, 76, 1, 0, 0, 0, 4, 78, 1, 0, 0, 0, 6, 113, 1, 0, 0, 0, 8, 115, 1, 0, 0, 0, 10, 129, 1, 0, 0, 0, 12, 131, 1, 0, 0, 0, 14, 135, 1, 0, 0, 0, 16, 148, 1, 0, 0, 0, 18, 150, 1, 0, 0, 0, 20, 153, 1, 0, 0, 0, 22, 158, 1, 0, 0, 0, 24, 168, 1, 0, 0, 0, 26, 174, 1, 0, 0, 0, 28, 190, 1, 0, 0, 0, 30, 197, 1, 0, 0, 0, 32, 207, 1, 0, 0, 0, 34, 211, 1, 0, 0, 0, 36, 219, 1, 0, 0, 0, 38, 221, 1, 0, 0, 0, 40, 244, 1, 0, 0, 0, 42, 246, 1, 0, 0, 0, 44, 250, 1, 0, 0, 0, 46, 254, 1, 0, 0, 0, 48, 262, 1, 0, 0, 0, 50, 264, 1, 0, 0, 0, 52, 266, 1, 0, 0, 0, 54, 273, 1, 0, 0, 0, 56, 275, 1, 0, 0, 0, 58, 297, 1, 0, 0, 0, 60, 315, 1, 0, 0, 0, 62, 327, 1, 0, 0, 0, 64, 329, 1, 0, 0, 0, 66, 357, 1, 0, 0, 0, 68, 70, 3, 2, 1, 0, 69, 68, 1, 0, 0, 0, 70, 73, 1, 0, 0, 0, 71, 69, 1, 0, 0, 0, 71, 72, 1, 0, 0, 0, 72, 74, 1, 0, 0, 0, 73, 71, 1, 0, 0, 0, 74, 75, 5, 0, 0, 1, 75, 1, 1, 0, 0, 0, 76, 77, 3, 4, 2, 0, 77, 3, 1, 0, 0, 0, 78, 83, 3, 6, 3, 0, 79, 80, 5, 1, 0, 0, 80, 82, 3, 6, 3, 0, 81, 79, 1, 0, 0, 0, 82, 85, 1, 0, 0, 0, 83, 81, 1, 0, 0, 0, 83, 84, 1, 0, 0, 0, 84, 89, 1, 0, 0, 0, 85, 83, 1, 0, 0, 0, 86, 88, 5, 1, 0, 0, 87, 86, 1, 0, 0, 0, 88, 91, 1, 0, 0, 0, 89, 87, 1, 0, 0, 0, 89, 90, 1, 0, 0, 0, 90, 92, 1, 0, 0, 0, 91, 89, 1, 0, 0, 0, 92, 93, 3, 36, 18, 0, 93, 5, 1, 0, 0, 0, 94, 114, 3, 14, 7, 0, 95, 96, 3, 14, 7, 0, 96, 97, 3, 14, 7, 0, 97, 114, 1, 0, 0, 0, 98, 99, 3, 14, 7, 0, 99, 104, 5, 18, 0, 0, 100, 103, 3, 10, 5, 0, 101, 103, 3, 32, 16, 0, 102, 100, 1, 0, 0, 0, 102, 101, 1, 0, 0, 0, 103, 106, 1, 0, 0, 0, 104, 102, 1, 0, 0, 0, 104, 105, 1, 0, 0, 0, 105, 107, 1, 0, 0, 0, 106, 104, 1, 0, 0, 0, 107, 108, 3, 14, 7, 0, 108, 114, 1, 0, 0, 0, 109, 110, 3, 14, 7, 0, 110, 111, 3, 8, 4, 0, 111, 112, 3, 14, 7, 0, 112, 114, 1, 0, 0, 0, 113, 94, 1, 0, 0, 0, 113, 95, 1, 0, 0, 0, 113, 98, 1, 0, 0, 0, 113, 109, 1, 0, 0, 0, 114, 7, 1, 0, 0, 0, 115, 116, 7, 0, 0, 0, 116, 9, 1, 0, 0, 0, 117, 118, 5, 36, 0, 0, 118, 119, 3, 20, 10, 0, 119, 120, 3, 54, 27, 0, 120, 121, 3, 60, 30, 0, 121, 122, 5, 37, 0, 0, 122, 130, 1, 0, 0, 0, 123, 124, 5, 36, 0, 0, 124, 125, 3, 20, 10, 0, 125, 126, 3, 52, 26, 0, 126, 127, 3, 46, 23, 0, 127, 128, 5, 37, 0, 0, 128, 130, 1, 0, 0, 0, 129, 117, 1, 0, 0, 0, 129, 123, 1, 0, 0, 0, 130, 11, 1, 0, 0, 0, 131, 132, 5, 40, 0, 0, 132, 133, 5, 40, 0, 0, 133, 134, 3, 20, 10, 0, 134, 13, 1, 0, 0, 0, 135, 142, 3, 34, 17, 0, 136, 141, 3, 16, 8, 0, 137, 141, 3, 30, 15, 0, 138, 141, 3, 24, 12, 0, 139, 141, 3, 32, 16, 0, 140, 136, 1, 0, 0, 0, 140, 137, 1, 0, 0, 0, 140, 138, 1, 0, 0, 0, 140, 139, 1, 0, 0, 0, 141, 144, 1, 0, 0, 0, 142, 140, 1, 0, 0, 0, 142, 143, 1, 0, 0, 0, 143, 146, 1, 0, 0, 0, 144, 142, 1, 0, 0, 0, 145, 147, 3, 12, 6, 0, 146, 145, 1, 0, 0, 0, 146, 147, 1, 0, 0, 0, 147, 15, 1, 0, 0, 0, 148, 149, 5, 48, 0, 0, 149, 17, 1, 0, 0, 0, 150, 151, 7, 1, 0, 0, 151, 19, 1, 0, 0, 0, 152, 154, 5, 31, 0, 0, 153, 152, 1, 0, 0, 0, 153, 154, 1, 0, 0, 0, 154, 155, 1, 0, 0, 0, 155, 156, 5, 35, 0, 0, 156, 21, 1, 0, 0, 0, 157, 159, 5, 31, 0, 0, 158, 157, 1, 0, 0, 0, 158, 159, 1, 0, 0, 0, 159, 160, 1, 0, 0, 0, 160, 165, 5, 35, 0, 0, 161, 162, 7, 2, 0, 0, 162, 164, 5, 35, 0, 0, 163, 161, 1, 0, 0, 0, 164, 167, 1, 0, 0, 0, 165, 163, 1, 0, 0, 0, 165, 166, 1, 0, 0, 0, 166, 23, 1, 0, 0, 0, 167, 165, 1, 0, 0, 0, 168, 169, 5, 36, 0, 0, 169, 170, 3, 26, 13, 0, 170, 171, 5, 37, 0, 0, 171, 25, 1, 0, 0, 0, 172, 175, 3, 28, 14, 0, 173, 175, 3, 58, 29, 0, 174, 172, 1, 0, 0, 0, 174, 173, 1, 0, 0, 0, 175, 27, 1, 0, 0, 0, 176, 178, 5, 32, 0, 0, 177, 176, 1, 0, 0, 0, 177, 178, 1, 0, 0, 0, 178, 181, 1, 0, 0, 0, 179, 182, 3, 22, 11, 0, 180, 182, 3, 18, 9, 0, 181, 179, 1, 0, 0, 0, 181, 180, 1, 0, 0, 0, 182, 184, 1, 0, 0, 0, 183, 185, 7, 3, 0, 0, 184, 183, 1, 0, 0, 0, 184, 185, 1, 0, 0, 0, 185, 191, 1, 0, 0, 0, 186, 188, 5, 32, 0, 0, 187, 186, 1, 0, 0, 0, 187, 188, 1, 0, 0, 0, 188, 189, 1, 0, 0, 0, 189, 191, 3, 62, 31, 0, 190, 177, 1, 0, 0, 0, 190, 187, 1, 0, 0, 0, 191, 29, 1, 0, 0, 0, 192, 193, 5, 32, 0, 0, 193, 194, 5, 12, 0, 0, 194, 198, 3, 20, 10, 0, 195, 196, 5, 12, 0, 0, 196, 198, 3, 20, 10, 0, 197, 192, 1, 0, 0, 0, 197, 195, 1, 0, 0, 0, 198, 31, 1, 0, 0, 0, 199, 200, 5, 40, 0, 0, 200, 201, 5, 32, 0, 0, 201, 208, 3, 20, 10, 0, 202, 203, 5, 32, 0, 0, 203, 204, 5, 40, 0, 0, 204, 208, 3, 20, 10, 0, 205, 206, 5, 40, 0, 0, 206, 208, 3, 20, 10, 0, 207, 199, 1, 0, 0, 0, 207, 202, 1, 0, 0, 0, 207, 205, 1, 0, 0, 0, 208, 33, 1, 0, 0, 0, 209, 212, 3, 20, 10, 0, 210, 212, 5, 27, 0, 0, 211, 209, 1, 0, 0, 0, 211, 210, 1, 0, 0, 0, 212, 35, 1, 0, 0, 0, 213, 214, 5, 38, 0, 0, 214, 215, 3, 38, 19, 0, 215, 216, 5, 39, 0, 0, 216, 220, 1, 0, 0, 0, 217, 218, 5, 38, 0, 0, 218, 220, 5, 39, 0, 0, 219, 213, 1, 0, 0, 0, 219, 217, 1, 0, 0, 0, 220, 37, 1, 0, 0, 0, 221, 226, 3, 40, 20, 0, 222, 223, 5, 41, 0, 0, 223, 225, 3, 40, 20, 0, 224, 222, 1, 0, 0, 0, 225, 228, 1, 0, 0, 0, 226, 224, 1, 0, 0, 0, 226, 227, 1, 0, 0, 0, 227, 232, 1, 0, 0, 0, 228, 226, 1, 0, 0, 0, 229, 231, 5, 41, 0, 0, 230, 229, 1, 0, 0, 0, 231, 234, 1, 0, 0, 0, 232, 230, 1, 0, 0, 0, 232, 233, 1, 0, 0, 0, 233, 39, 1, 0, 0, 0, 234, 232, 1, 0, 0, 0, 235, 237, 5, 33, 0, 0, 236, 238, 5, 12, 0, 0, 237, 236, 1, 0, 0, 0, 237, 238, 1, 0, 0, 0, 238, 239, 1, 0, 0, 0, 239, 245, 3, 20, 10, 0, 240, 241, 3, 42, 21, 0, 241, 242, 5, 40, 0, 0, 242, 243, 3, 44, 22, 0, 243, 245, 1, 0, 0, 0, 244, 235, 1, 0, 0, 0, 244, 240, 1, 0, 0, 0, 245, 41, 1, 0, 0, 0, 246, 247, 3, 20, 10, 0, 247, 43, 1, 0, 0, 0, 248, 251, 3, 48, 24, 0, 249, 251, 3, 64, 32, 0, 250, 248, 1, 0, 0, 0, 250, 249, 1, 0, 0, 0, 251, 45, 1, 0, 0, 0, 252, 255, 5, 44, 0, 0, 253, 255, 5, 45, 0, 0, 254, 252, 1, 0, 0, 0, 254, 253, 1, 0, 0, 0, 255, 47, 1, 0, 0, 0, 256, 263, 5, 44, 0, 0, 257, 263, 5, 45, 0, 0, 258, 263, 5, 46, 0, 0, 259, 263, 5, 47, 0, 0, 260, 263, 3, 18, 9, 0, 261, 263, 3, 22, 11, 0, 262, 256, 1, 0, 0, 0, 262, 257, 1, 0, 0, 0, 262, 258, 1, 0, 0, 0, 262, 259, 1, 0, 0, 0, 262, 260, 1, 0, 0, 0, 262, 261, 1, 0, 0, 0, 263, 49, 1, 0, 0, 0, 264, 265, 7, 4, 0, 0, 265, 51, 1, 0, 0, 0, 266, 267, 7, 5, 0, 0, 267, 53, 1, 0, 0, 0, 268, 274, 3, 52, 26, 0, 269, 274, 5, 21, 0, 0, 270, 274, 5, 22, 0, 0, 271, 274, 5, 23, 0, 0, 272, 274, 5, 24, 0, 0, 273, 268, 1, 0, 0, 0, 273, 269, 1, 0, 0, 0, 273, 270, 1, 0, 0, 0, 273, 271, 1, 0, 0, 0, 273, 272, 1, 0, 0, 0, 274, 55, 1, 0, 0, 0, 275, 276, 7, 6, 0, 0, 276, 57, 1, 0, 0, 0, 277, 278, 6, 29, -1, 0, 278, 279, 5, 10, 0, 0, 279, 280, 3, 58, 29, 0, 280, 281, 5, 11, 0, 0, 281, 298, 1, 0, 0, 0, 282, 283, 5, 32, 0, 0, 283, 298, 3, 58, 29, 6, 284, 285, 3, 60, 30, 0, 285, 286, 3, 54, 27, 0, 286, 287, 3, 60, 30, 0, 287, 298, 1, 0, 0, 0, 288, 289, 3, 60, 30, 0, 289, 290, 3, 56, 28, 0, 290, 291, 3, 62, 31, 0, 291, 298, 1, 0, 0, 0, 292, 293, 3, 62, 31, 0, 293, 294, 3, 56, 28, 0, 294, 295, 3, 62, 31, 0, 295, 298, 1, 0, 0, 0, 296, 298, 3, 64, 32, 0, 297, 277, 1, 0, 0, 0, 297, 282, 1, 0, 0, 0, 297, 284, 1, 0, 0, 0, 297, 288, 1, 0, 0, 0, 297, 292, 1, 0, 0, 0, 297, 296, 1, 0, 0, 0, 298, 305, 1, 0, 0, 0, 299, 300, 10, 5, 0, 0, 300, 301, 3, 50, 25, 0, 301, 302, 3, 58, 29, 6, 302, 304, 1, 0, 0, 0, 303, 299, 1, 0, 0, 0, 304, 307, 1, 0, 0, 0, 305, 303, 1, 0, 0, 0, 305, 306, 1, 0, 0, 0, 306, 59, 1, 0, 0, 0, 307, 305, 1, 0, 0, 0, 308, 309, 6, 30, -1, 0, 309, 310, 5, 10, 0, 0, 310, 311, 3, 60, 30, 0, 311, 312, 5, 11, 0, 0, 312, 316, 1, 0, 0, 0, 313, 316, 3, 66, 33, 0, 314, 316, 3, 64, 32, 0, 315, 308, 1, 0, 0, 0, 315, 313, 1, 0, 0, 0, 315, 314, 1, 0, 0, 0, 316, 322, 1, 0, 0, 0, 317, 318, 10, 3, 0, 0, 318, 319, 7, 7, 0, 0, 319, 321, 3, 60, 30, 4, 320, 317, 1, 0, 0, 0, 321, 324, 1, 0, 0, 0, 322, 320, 1, 0, 0, 0, 322, 323, 1, 0, 0, 0, 323, 61, 1, 0, 0, 0, 324, 322, 1, 0, 0, 0, 325, 328, 3, 18, 9, 0, 326, 328, 5, 49, 0, 0, 327, 325, 1, 0, 0, 0, 327, 326, 1, 0, 0, 0, 328, 63, 1, 0, 0, 0, 329, 330, 3, 20, 10, 0, 330, 339, 5, 10, 0, 0, 331, 336, 3, 60, 30, 0, 332, 333, 5, 1, 0, 0, 333, 335, 3, 60, 30, 0, 334, 332, 1, 0, 0, 0, 335, 338, 1, 0, 0, 0, 336, 334, 1, 0, 0, 0, 336, 337, 1, 0, 0, 0, 337, 340, 1, 0, 0, 0, 338, 336, 1, 0, 0, 0, 339, 331, 1, 0, 0, 0, 339, 340, 1, 0, 0, 0, 340, 341, 1, 0, 0, 0, 341, 342, 5, 11, 0, 0, 342, 65, 1, 0, 0, 0, 343, 358, 5, 46, 0, 0, 344, 358, 5, 44, 0, 0, 345, 358, 5, 47, 0, 0, 346, 358, 5, 45, 0, 0, 347, 349, 5, 27, 0, 0, 348, 347, 1, 0, 0, 0, 348, 349, 1, 0, 0, 0, 349, 350, 1, 0, 0, 0, 350, 358, 3, 18, 9, 0, 351, 353, 5, 27, 0, 0, 352, 351, 1, 0, 0, 0, 352, 353, 1, 0, 0, 0, 353, 354, 1, 0, 0, 0, 354, 358, 3, 22, 11, 0, 355, 356, 5, 27, 0, 0, 356, 358, 3, 62, 31, 0, 357, 343, 1, 0, 0, 0, 357, 344, 1, 0, 0, 0, 357, 345, 1, 0, 0, 0, 357, 346, 1, 0, 0, 0, 357, 348, 1, 0, 0, 0, 357, 352, 1, 0, 0, 0, 357, 355, 1, 0, 0, 0, 358, 67, 1, 0, 0, 0, 41, 71, 83, 89, 102, 104, 113, 129, 140, 142, 146, 153, 158, 165, 174, 177, 181, 184, 187, 190, 197, 207, 211, 219, 226, 232, 237, 244, 250, 254, 262, 273, 297, 305, 315, 322, 327, 336, 339, 348, 352, 357] \ No newline at end of file +[4, 1, 83, 364, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 1, 0, 5, 0, 72, 8, 0, 10, 0, 12, 0, 75, 9, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 5, 2, 84, 8, 2, 10, 2, 12, 2, 87, 9, 2, 1, 2, 5, 2, 90, 8, 2, 10, 2, 12, 2, 93, 9, 2, 1, 2, 1, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 5, 3, 105, 8, 3, 10, 3, 12, 3, 108, 9, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 116, 8, 3, 1, 4, 1, 4, 1, 5, 1, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 3, 6, 134, 8, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 5, 8, 145, 8, 8, 10, 8, 12, 8, 148, 9, 8, 1, 8, 3, 8, 151, 8, 8, 1, 9, 1, 9, 1, 10, 1, 10, 1, 11, 3, 11, 158, 8, 11, 1, 11, 1, 11, 1, 12, 3, 12, 163, 8, 12, 1, 12, 1, 12, 1, 12, 5, 12, 168, 8, 12, 10, 12, 12, 12, 171, 9, 12, 1, 13, 1, 13, 1, 13, 1, 13, 1, 14, 1, 14, 3, 14, 179, 8, 14, 1, 15, 3, 15, 182, 8, 15, 1, 15, 1, 15, 3, 15, 186, 8, 15, 1, 15, 3, 15, 189, 8, 15, 1, 15, 3, 15, 192, 8, 15, 1, 15, 3, 15, 195, 8, 15, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 3, 16, 202, 8, 16, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 3, 17, 212, 8, 17, 1, 18, 1, 18, 3, 18, 216, 8, 18, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 3, 19, 224, 8, 19, 1, 20, 1, 20, 1, 20, 5, 20, 229, 8, 20, 10, 20, 12, 20, 232, 9, 20, 1, 20, 5, 20, 235, 8, 20, 10, 20, 12, 20, 238, 9, 20, 1, 21, 1, 21, 3, 21, 242, 8, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 3, 21, 249, 8, 21, 1, 22, 1, 22, 1, 23, 1, 23, 3, 23, 255, 8, 23, 1, 24, 1, 24, 3, 24, 259, 8, 24, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 3, 25, 267, 8, 25, 1, 26, 1, 26, 1, 27, 1, 27, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 3, 28, 278, 8, 28, 1, 29, 1, 29, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 302, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 5, 30, 308, 8, 30, 10, 30, 12, 30, 311, 9, 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 3, 31, 320, 8, 31, 1, 31, 1, 31, 1, 31, 5, 31, 325, 8, 31, 10, 31, 12, 31, 328, 9, 31, 1, 32, 1, 32, 3, 32, 332, 8, 32, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 5, 33, 339, 8, 33, 10, 33, 12, 33, 342, 9, 33, 3, 33, 344, 8, 33, 1, 33, 1, 33, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 3, 34, 353, 8, 34, 1, 34, 1, 34, 3, 34, 357, 8, 34, 1, 34, 1, 34, 1, 34, 3, 34, 362, 8, 34, 1, 34, 0, 2, 60, 62, 35, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 0, 9, 1, 0, 17, 18, 1, 0, 4, 9, 1, 0, 42, 43, 2, 0, 12, 12, 40, 40, 1, 0, 2, 3, 2, 0, 13, 14, 25, 26, 1, 0, 13, 18, 1, 0, 19, 20, 1, 0, 27, 31, 391, 0, 73, 1, 0, 0, 0, 2, 78, 1, 0, 0, 0, 4, 80, 1, 0, 0, 0, 6, 115, 1, 0, 0, 0, 8, 117, 1, 0, 0, 0, 10, 119, 1, 0, 0, 0, 12, 133, 1, 0, 0, 0, 14, 135, 1, 0, 0, 0, 16, 139, 1, 0, 0, 0, 18, 152, 1, 0, 0, 0, 20, 154, 1, 0, 0, 0, 22, 157, 1, 0, 0, 0, 24, 162, 1, 0, 0, 0, 26, 172, 1, 0, 0, 0, 28, 178, 1, 0, 0, 0, 30, 194, 1, 0, 0, 0, 32, 201, 1, 0, 0, 0, 34, 211, 1, 0, 0, 0, 36, 215, 1, 0, 0, 0, 38, 223, 1, 0, 0, 0, 40, 225, 1, 0, 0, 0, 42, 248, 1, 0, 0, 0, 44, 250, 1, 0, 0, 0, 46, 254, 1, 0, 0, 0, 48, 258, 1, 0, 0, 0, 50, 266, 1, 0, 0, 0, 52, 268, 1, 0, 0, 0, 54, 270, 1, 0, 0, 0, 56, 277, 1, 0, 0, 0, 58, 279, 1, 0, 0, 0, 60, 301, 1, 0, 0, 0, 62, 319, 1, 0, 0, 0, 64, 331, 1, 0, 0, 0, 66, 333, 1, 0, 0, 0, 68, 361, 1, 0, 0, 0, 70, 72, 3, 2, 1, 0, 71, 70, 1, 0, 0, 0, 72, 75, 1, 0, 0, 0, 73, 71, 1, 0, 0, 0, 73, 74, 1, 0, 0, 0, 74, 76, 1, 0, 0, 0, 75, 73, 1, 0, 0, 0, 76, 77, 5, 0, 0, 1, 77, 1, 1, 0, 0, 0, 78, 79, 3, 4, 2, 0, 79, 3, 1, 0, 0, 0, 80, 85, 3, 6, 3, 0, 81, 82, 5, 1, 0, 0, 82, 84, 3, 6, 3, 0, 83, 81, 1, 0, 0, 0, 84, 87, 1, 0, 0, 0, 85, 83, 1, 0, 0, 0, 85, 86, 1, 0, 0, 0, 86, 91, 1, 0, 0, 0, 87, 85, 1, 0, 0, 0, 88, 90, 5, 1, 0, 0, 89, 88, 1, 0, 0, 0, 90, 93, 1, 0, 0, 0, 91, 89, 1, 0, 0, 0, 91, 92, 1, 0, 0, 0, 92, 94, 1, 0, 0, 0, 93, 91, 1, 0, 0, 0, 94, 95, 3, 38, 19, 0, 95, 5, 1, 0, 0, 0, 96, 116, 3, 16, 8, 0, 97, 98, 3, 16, 8, 0, 98, 99, 3, 16, 8, 0, 99, 116, 1, 0, 0, 0, 100, 101, 3, 16, 8, 0, 101, 106, 3, 8, 4, 0, 102, 105, 3, 12, 6, 0, 103, 105, 3, 34, 17, 0, 104, 102, 1, 0, 0, 0, 104, 103, 1, 0, 0, 0, 105, 108, 1, 0, 0, 0, 106, 104, 1, 0, 0, 0, 106, 107, 1, 0, 0, 0, 107, 109, 1, 0, 0, 0, 108, 106, 1, 0, 0, 0, 109, 110, 3, 16, 8, 0, 110, 116, 1, 0, 0, 0, 111, 112, 3, 16, 8, 0, 112, 113, 3, 10, 5, 0, 113, 114, 3, 16, 8, 0, 114, 116, 1, 0, 0, 0, 115, 96, 1, 0, 0, 0, 115, 97, 1, 0, 0, 0, 115, 100, 1, 0, 0, 0, 115, 111, 1, 0, 0, 0, 116, 7, 1, 0, 0, 0, 117, 118, 7, 0, 0, 0, 118, 9, 1, 0, 0, 0, 119, 120, 7, 1, 0, 0, 120, 11, 1, 0, 0, 0, 121, 122, 5, 36, 0, 0, 122, 123, 3, 22, 11, 0, 123, 124, 3, 56, 28, 0, 124, 125, 3, 62, 31, 0, 125, 126, 5, 37, 0, 0, 126, 134, 1, 0, 0, 0, 127, 128, 5, 36, 0, 0, 128, 129, 3, 22, 11, 0, 129, 130, 3, 54, 27, 0, 130, 131, 3, 48, 24, 0, 131, 132, 5, 37, 0, 0, 132, 134, 1, 0, 0, 0, 133, 121, 1, 0, 0, 0, 133, 127, 1, 0, 0, 0, 134, 13, 1, 0, 0, 0, 135, 136, 5, 40, 0, 0, 136, 137, 5, 40, 0, 0, 137, 138, 3, 22, 11, 0, 138, 15, 1, 0, 0, 0, 139, 146, 3, 36, 18, 0, 140, 145, 3, 18, 9, 0, 141, 145, 3, 32, 16, 0, 142, 145, 3, 26, 13, 0, 143, 145, 3, 34, 17, 0, 144, 140, 1, 0, 0, 0, 144, 141, 1, 0, 0, 0, 144, 142, 1, 0, 0, 0, 144, 143, 1, 0, 0, 0, 145, 148, 1, 0, 0, 0, 146, 144, 1, 0, 0, 0, 146, 147, 1, 0, 0, 0, 147, 150, 1, 0, 0, 0, 148, 146, 1, 0, 0, 0, 149, 151, 3, 14, 7, 0, 150, 149, 1, 0, 0, 0, 150, 151, 1, 0, 0, 0, 151, 17, 1, 0, 0, 0, 152, 153, 5, 48, 0, 0, 153, 19, 1, 0, 0, 0, 154, 155, 7, 2, 0, 0, 155, 21, 1, 0, 0, 0, 156, 158, 5, 31, 0, 0, 157, 156, 1, 0, 0, 0, 157, 158, 1, 0, 0, 0, 158, 159, 1, 0, 0, 0, 159, 160, 5, 35, 0, 0, 160, 23, 1, 0, 0, 0, 161, 163, 5, 31, 0, 0, 162, 161, 1, 0, 0, 0, 162, 163, 1, 0, 0, 0, 163, 164, 1, 0, 0, 0, 164, 169, 5, 35, 0, 0, 165, 166, 7, 3, 0, 0, 166, 168, 5, 35, 0, 0, 167, 165, 1, 0, 0, 0, 168, 171, 1, 0, 0, 0, 169, 167, 1, 0, 0, 0, 169, 170, 1, 0, 0, 0, 170, 25, 1, 0, 0, 0, 171, 169, 1, 0, 0, 0, 172, 173, 5, 36, 0, 0, 173, 174, 3, 28, 14, 0, 174, 175, 5, 37, 0, 0, 175, 27, 1, 0, 0, 0, 176, 179, 3, 30, 15, 0, 177, 179, 3, 60, 30, 0, 178, 176, 1, 0, 0, 0, 178, 177, 1, 0, 0, 0, 179, 29, 1, 0, 0, 0, 180, 182, 5, 32, 0, 0, 181, 180, 1, 0, 0, 0, 181, 182, 1, 0, 0, 0, 182, 185, 1, 0, 0, 0, 183, 186, 3, 24, 12, 0, 184, 186, 3, 20, 10, 0, 185, 183, 1, 0, 0, 0, 185, 184, 1, 0, 0, 0, 186, 188, 1, 0, 0, 0, 187, 189, 7, 4, 0, 0, 188, 187, 1, 0, 0, 0, 188, 189, 1, 0, 0, 0, 189, 195, 1, 0, 0, 0, 190, 192, 5, 32, 0, 0, 191, 190, 1, 0, 0, 0, 191, 192, 1, 0, 0, 0, 192, 193, 1, 0, 0, 0, 193, 195, 3, 64, 32, 0, 194, 181, 1, 0, 0, 0, 194, 191, 1, 0, 0, 0, 195, 31, 1, 0, 0, 0, 196, 197, 5, 32, 0, 0, 197, 198, 5, 12, 0, 0, 198, 202, 3, 22, 11, 0, 199, 200, 5, 12, 0, 0, 200, 202, 3, 22, 11, 0, 201, 196, 1, 0, 0, 0, 201, 199, 1, 0, 0, 0, 202, 33, 1, 0, 0, 0, 203, 204, 5, 40, 0, 0, 204, 205, 5, 32, 0, 0, 205, 212, 3, 22, 11, 0, 206, 207, 5, 32, 0, 0, 207, 208, 5, 40, 0, 0, 208, 212, 3, 22, 11, 0, 209, 210, 5, 40, 0, 0, 210, 212, 3, 22, 11, 0, 211, 203, 1, 0, 0, 0, 211, 206, 1, 0, 0, 0, 211, 209, 1, 0, 0, 0, 212, 35, 1, 0, 0, 0, 213, 216, 3, 22, 11, 0, 214, 216, 5, 27, 0, 0, 215, 213, 1, 0, 0, 0, 215, 214, 1, 0, 0, 0, 216, 37, 1, 0, 0, 0, 217, 218, 5, 38, 0, 0, 218, 219, 3, 40, 20, 0, 219, 220, 5, 39, 0, 0, 220, 224, 1, 0, 0, 0, 221, 222, 5, 38, 0, 0, 222, 224, 5, 39, 0, 0, 223, 217, 1, 0, 0, 0, 223, 221, 1, 0, 0, 0, 224, 39, 1, 0, 0, 0, 225, 230, 3, 42, 21, 0, 226, 227, 5, 41, 0, 0, 227, 229, 3, 42, 21, 0, 228, 226, 1, 0, 0, 0, 229, 232, 1, 0, 0, 0, 230, 228, 1, 0, 0, 0, 230, 231, 1, 0, 0, 0, 231, 236, 1, 0, 0, 0, 232, 230, 1, 0, 0, 0, 233, 235, 5, 41, 0, 0, 234, 233, 1, 0, 0, 0, 235, 238, 1, 0, 0, 0, 236, 234, 1, 0, 0, 0, 236, 237, 1, 0, 0, 0, 237, 41, 1, 0, 0, 0, 238, 236, 1, 0, 0, 0, 239, 241, 5, 33, 0, 0, 240, 242, 5, 12, 0, 0, 241, 240, 1, 0, 0, 0, 241, 242, 1, 0, 0, 0, 242, 243, 1, 0, 0, 0, 243, 249, 3, 22, 11, 0, 244, 245, 3, 44, 22, 0, 245, 246, 5, 40, 0, 0, 246, 247, 3, 46, 23, 0, 247, 249, 1, 0, 0, 0, 248, 239, 1, 0, 0, 0, 248, 244, 1, 0, 0, 0, 249, 43, 1, 0, 0, 0, 250, 251, 3, 22, 11, 0, 251, 45, 1, 0, 0, 0, 252, 255, 3, 50, 25, 0, 253, 255, 3, 66, 33, 0, 254, 252, 1, 0, 0, 0, 254, 253, 1, 0, 0, 0, 255, 47, 1, 0, 0, 0, 256, 259, 5, 44, 0, 0, 257, 259, 5, 45, 0, 0, 258, 256, 1, 0, 0, 0, 258, 257, 1, 0, 0, 0, 259, 49, 1, 0, 0, 0, 260, 267, 5, 44, 0, 0, 261, 267, 5, 45, 0, 0, 262, 267, 5, 46, 0, 0, 263, 267, 5, 47, 0, 0, 264, 267, 3, 20, 10, 0, 265, 267, 3, 24, 12, 0, 266, 260, 1, 0, 0, 0, 266, 261, 1, 0, 0, 0, 266, 262, 1, 0, 0, 0, 266, 263, 1, 0, 0, 0, 266, 264, 1, 0, 0, 0, 266, 265, 1, 0, 0, 0, 267, 51, 1, 0, 0, 0, 268, 269, 7, 5, 0, 0, 269, 53, 1, 0, 0, 0, 270, 271, 7, 6, 0, 0, 271, 55, 1, 0, 0, 0, 272, 278, 3, 54, 27, 0, 273, 278, 5, 21, 0, 0, 274, 278, 5, 22, 0, 0, 275, 278, 5, 23, 0, 0, 276, 278, 5, 24, 0, 0, 277, 272, 1, 0, 0, 0, 277, 273, 1, 0, 0, 0, 277, 274, 1, 0, 0, 0, 277, 275, 1, 0, 0, 0, 277, 276, 1, 0, 0, 0, 278, 57, 1, 0, 0, 0, 279, 280, 7, 7, 0, 0, 280, 59, 1, 0, 0, 0, 281, 282, 6, 30, -1, 0, 282, 283, 5, 10, 0, 0, 283, 284, 3, 60, 30, 0, 284, 285, 5, 11, 0, 0, 285, 302, 1, 0, 0, 0, 286, 287, 5, 32, 0, 0, 287, 302, 3, 60, 30, 6, 288, 289, 3, 62, 31, 0, 289, 290, 3, 56, 28, 0, 290, 291, 3, 62, 31, 0, 291, 302, 1, 0, 0, 0, 292, 293, 3, 62, 31, 0, 293, 294, 3, 58, 29, 0, 294, 295, 3, 64, 32, 0, 295, 302, 1, 0, 0, 0, 296, 297, 3, 64, 32, 0, 297, 298, 3, 58, 29, 0, 298, 299, 3, 64, 32, 0, 299, 302, 1, 0, 0, 0, 300, 302, 3, 66, 33, 0, 301, 281, 1, 0, 0, 0, 301, 286, 1, 0, 0, 0, 301, 288, 1, 0, 0, 0, 301, 292, 1, 0, 0, 0, 301, 296, 1, 0, 0, 0, 301, 300, 1, 0, 0, 0, 302, 309, 1, 0, 0, 0, 303, 304, 10, 5, 0, 0, 304, 305, 3, 52, 26, 0, 305, 306, 3, 60, 30, 6, 306, 308, 1, 0, 0, 0, 307, 303, 1, 0, 0, 0, 308, 311, 1, 0, 0, 0, 309, 307, 1, 0, 0, 0, 309, 310, 1, 0, 0, 0, 310, 61, 1, 0, 0, 0, 311, 309, 1, 0, 0, 0, 312, 313, 6, 31, -1, 0, 313, 314, 5, 10, 0, 0, 314, 315, 3, 62, 31, 0, 315, 316, 5, 11, 0, 0, 316, 320, 1, 0, 0, 0, 317, 320, 3, 68, 34, 0, 318, 320, 3, 66, 33, 0, 319, 312, 1, 0, 0, 0, 319, 317, 1, 0, 0, 0, 319, 318, 1, 0, 0, 0, 320, 326, 1, 0, 0, 0, 321, 322, 10, 3, 0, 0, 322, 323, 7, 8, 0, 0, 323, 325, 3, 62, 31, 4, 324, 321, 1, 0, 0, 0, 325, 328, 1, 0, 0, 0, 326, 324, 1, 0, 0, 0, 326, 327, 1, 0, 0, 0, 327, 63, 1, 0, 0, 0, 328, 326, 1, 0, 0, 0, 329, 332, 3, 20, 10, 0, 330, 332, 5, 49, 0, 0, 331, 329, 1, 0, 0, 0, 331, 330, 1, 0, 0, 0, 332, 65, 1, 0, 0, 0, 333, 334, 3, 22, 11, 0, 334, 343, 5, 10, 0, 0, 335, 340, 3, 62, 31, 0, 336, 337, 5, 1, 0, 0, 337, 339, 3, 62, 31, 0, 338, 336, 1, 0, 0, 0, 339, 342, 1, 0, 0, 0, 340, 338, 1, 0, 0, 0, 340, 341, 1, 0, 0, 0, 341, 344, 1, 0, 0, 0, 342, 340, 1, 0, 0, 0, 343, 335, 1, 0, 0, 0, 343, 344, 1, 0, 0, 0, 344, 345, 1, 0, 0, 0, 345, 346, 5, 11, 0, 0, 346, 67, 1, 0, 0, 0, 347, 362, 5, 46, 0, 0, 348, 362, 5, 44, 0, 0, 349, 362, 5, 47, 0, 0, 350, 362, 5, 45, 0, 0, 351, 353, 5, 27, 0, 0, 352, 351, 1, 0, 0, 0, 352, 353, 1, 0, 0, 0, 353, 354, 1, 0, 0, 0, 354, 362, 3, 20, 10, 0, 355, 357, 5, 27, 0, 0, 356, 355, 1, 0, 0, 0, 356, 357, 1, 0, 0, 0, 357, 358, 1, 0, 0, 0, 358, 362, 3, 24, 12, 0, 359, 360, 5, 27, 0, 0, 360, 362, 3, 64, 32, 0, 361, 347, 1, 0, 0, 0, 361, 348, 1, 0, 0, 0, 361, 349, 1, 0, 0, 0, 361, 350, 1, 0, 0, 0, 361, 352, 1, 0, 0, 0, 361, 356, 1, 0, 0, 0, 361, 359, 1, 0, 0, 0, 362, 69, 1, 0, 0, 0, 41, 73, 85, 91, 104, 106, 115, 133, 144, 146, 150, 157, 162, 169, 178, 181, 185, 188, 191, 194, 201, 211, 215, 223, 230, 236, 241, 248, 254, 258, 266, 277, 301, 309, 319, 326, 331, 340, 343, 352, 356, 361] \ No newline at end of file diff --git a/mapcss/generated/MapCSSListener.py b/mapcss/generated/MapCSSListener.py index 0ae91976b..68ab28c76 100644 --- a/mapcss/generated/MapCSSListener.py +++ b/mapcss/generated/MapCSSListener.py @@ -44,6 +44,15 @@ def exitSelector(self, ctx:MapCSSParser.SelectorContext): pass + # Enter a parse tree produced by MapCSSParser#parent_child_selector_operator. + def enterParent_child_selector_operator(self, ctx:MapCSSParser.Parent_child_selector_operatorContext): + pass + + # Exit a parse tree produced by MapCSSParser#parent_child_selector_operator. + def exitParent_child_selector_operator(self, ctx:MapCSSParser.Parent_child_selector_operatorContext): + pass + + # Enter a parse tree produced by MapCSSParser#simple_selector_operator. def enterSimple_selector_operator(self, ctx:MapCSSParser.Simple_selector_operatorContext): pass diff --git a/mapcss/generated/MapCSSParser.py b/mapcss/generated/MapCSSParser.py index 28e742afd..438004c32 100644 --- a/mapcss/generated/MapCSSParser.py +++ b/mapcss/generated/MapCSSParser.py @@ -10,138 +10,139 @@ def serializedATN(): return [ - 4,1,83,360,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7, + 4,1,83,364,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7, 6,2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,2,13,7,13, 2,14,7,14,2,15,7,15,2,16,7,16,2,17,7,17,2,18,7,18,2,19,7,19,2,20, 7,20,2,21,7,21,2,22,7,22,2,23,7,23,2,24,7,24,2,25,7,25,2,26,7,26, 2,27,7,27,2,28,7,28,2,29,7,29,2,30,7,30,2,31,7,31,2,32,7,32,2,33, - 7,33,1,0,5,0,70,8,0,10,0,12,0,73,9,0,1,0,1,0,1,1,1,1,1,2,1,2,1,2, - 5,2,82,8,2,10,2,12,2,85,9,2,1,2,5,2,88,8,2,10,2,12,2,91,9,2,1,2, - 1,2,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,5,3,103,8,3,10,3,12,3,106,9, - 3,1,3,1,3,1,3,1,3,1,3,1,3,3,3,114,8,3,1,4,1,4,1,5,1,5,1,5,1,5,1, - 5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,3,5,130,8,5,1,6,1,6,1,6,1,6,1,7,1, - 7,1,7,1,7,1,7,5,7,141,8,7,10,7,12,7,144,9,7,1,7,3,7,147,8,7,1,8, - 1,8,1,9,1,9,1,10,3,10,154,8,10,1,10,1,10,1,11,3,11,159,8,11,1,11, - 1,11,1,11,5,11,164,8,11,10,11,12,11,167,9,11,1,12,1,12,1,12,1,12, - 1,13,1,13,3,13,175,8,13,1,14,3,14,178,8,14,1,14,1,14,3,14,182,8, - 14,1,14,3,14,185,8,14,1,14,3,14,188,8,14,1,14,3,14,191,8,14,1,15, - 1,15,1,15,1,15,1,15,3,15,198,8,15,1,16,1,16,1,16,1,16,1,16,1,16, - 1,16,1,16,3,16,208,8,16,1,17,1,17,3,17,212,8,17,1,18,1,18,1,18,1, - 18,1,18,1,18,3,18,220,8,18,1,19,1,19,1,19,5,19,225,8,19,10,19,12, - 19,228,9,19,1,19,5,19,231,8,19,10,19,12,19,234,9,19,1,20,1,20,3, - 20,238,8,20,1,20,1,20,1,20,1,20,1,20,3,20,245,8,20,1,21,1,21,1,22, - 1,22,3,22,251,8,22,1,23,1,23,3,23,255,8,23,1,24,1,24,1,24,1,24,1, - 24,1,24,3,24,263,8,24,1,25,1,25,1,26,1,26,1,27,1,27,1,27,1,27,1, - 27,3,27,274,8,27,1,28,1,28,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1, - 29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,3, - 29,298,8,29,1,29,1,29,1,29,1,29,5,29,304,8,29,10,29,12,29,307,9, - 29,1,30,1,30,1,30,1,30,1,30,1,30,1,30,3,30,316,8,30,1,30,1,30,1, - 30,5,30,321,8,30,10,30,12,30,324,9,30,1,31,1,31,3,31,328,8,31,1, - 32,1,32,1,32,1,32,1,32,5,32,335,8,32,10,32,12,32,338,9,32,3,32,340, - 8,32,1,32,1,32,1,33,1,33,1,33,1,33,1,33,3,33,349,8,33,1,33,1,33, - 3,33,353,8,33,1,33,1,33,1,33,3,33,358,8,33,1,33,0,2,58,60,34,0,2, - 4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48, - 50,52,54,56,58,60,62,64,66,0,8,2,0,4,9,17,17,1,0,42,43,2,0,12,12, - 40,40,1,0,2,3,2,0,13,14,25,26,1,0,13,18,1,0,19,20,1,0,27,31,388, - 0,71,1,0,0,0,2,76,1,0,0,0,4,78,1,0,0,0,6,113,1,0,0,0,8,115,1,0,0, - 0,10,129,1,0,0,0,12,131,1,0,0,0,14,135,1,0,0,0,16,148,1,0,0,0,18, - 150,1,0,0,0,20,153,1,0,0,0,22,158,1,0,0,0,24,168,1,0,0,0,26,174, - 1,0,0,0,28,190,1,0,0,0,30,197,1,0,0,0,32,207,1,0,0,0,34,211,1,0, - 0,0,36,219,1,0,0,0,38,221,1,0,0,0,40,244,1,0,0,0,42,246,1,0,0,0, - 44,250,1,0,0,0,46,254,1,0,0,0,48,262,1,0,0,0,50,264,1,0,0,0,52,266, - 1,0,0,0,54,273,1,0,0,0,56,275,1,0,0,0,58,297,1,0,0,0,60,315,1,0, - 0,0,62,327,1,0,0,0,64,329,1,0,0,0,66,357,1,0,0,0,68,70,3,2,1,0,69, - 68,1,0,0,0,70,73,1,0,0,0,71,69,1,0,0,0,71,72,1,0,0,0,72,74,1,0,0, - 0,73,71,1,0,0,0,74,75,5,0,0,1,75,1,1,0,0,0,76,77,3,4,2,0,77,3,1, - 0,0,0,78,83,3,6,3,0,79,80,5,1,0,0,80,82,3,6,3,0,81,79,1,0,0,0,82, - 85,1,0,0,0,83,81,1,0,0,0,83,84,1,0,0,0,84,89,1,0,0,0,85,83,1,0,0, - 0,86,88,5,1,0,0,87,86,1,0,0,0,88,91,1,0,0,0,89,87,1,0,0,0,89,90, - 1,0,0,0,90,92,1,0,0,0,91,89,1,0,0,0,92,93,3,36,18,0,93,5,1,0,0,0, - 94,114,3,14,7,0,95,96,3,14,7,0,96,97,3,14,7,0,97,114,1,0,0,0,98, - 99,3,14,7,0,99,104,5,18,0,0,100,103,3,10,5,0,101,103,3,32,16,0,102, - 100,1,0,0,0,102,101,1,0,0,0,103,106,1,0,0,0,104,102,1,0,0,0,104, - 105,1,0,0,0,105,107,1,0,0,0,106,104,1,0,0,0,107,108,3,14,7,0,108, - 114,1,0,0,0,109,110,3,14,7,0,110,111,3,8,4,0,111,112,3,14,7,0,112, - 114,1,0,0,0,113,94,1,0,0,0,113,95,1,0,0,0,113,98,1,0,0,0,113,109, - 1,0,0,0,114,7,1,0,0,0,115,116,7,0,0,0,116,9,1,0,0,0,117,118,5,36, - 0,0,118,119,3,20,10,0,119,120,3,54,27,0,120,121,3,60,30,0,121,122, - 5,37,0,0,122,130,1,0,0,0,123,124,5,36,0,0,124,125,3,20,10,0,125, - 126,3,52,26,0,126,127,3,46,23,0,127,128,5,37,0,0,128,130,1,0,0,0, - 129,117,1,0,0,0,129,123,1,0,0,0,130,11,1,0,0,0,131,132,5,40,0,0, - 132,133,5,40,0,0,133,134,3,20,10,0,134,13,1,0,0,0,135,142,3,34,17, - 0,136,141,3,16,8,0,137,141,3,30,15,0,138,141,3,24,12,0,139,141,3, - 32,16,0,140,136,1,0,0,0,140,137,1,0,0,0,140,138,1,0,0,0,140,139, - 1,0,0,0,141,144,1,0,0,0,142,140,1,0,0,0,142,143,1,0,0,0,143,146, - 1,0,0,0,144,142,1,0,0,0,145,147,3,12,6,0,146,145,1,0,0,0,146,147, - 1,0,0,0,147,15,1,0,0,0,148,149,5,48,0,0,149,17,1,0,0,0,150,151,7, - 1,0,0,151,19,1,0,0,0,152,154,5,31,0,0,153,152,1,0,0,0,153,154,1, - 0,0,0,154,155,1,0,0,0,155,156,5,35,0,0,156,21,1,0,0,0,157,159,5, - 31,0,0,158,157,1,0,0,0,158,159,1,0,0,0,159,160,1,0,0,0,160,165,5, - 35,0,0,161,162,7,2,0,0,162,164,5,35,0,0,163,161,1,0,0,0,164,167, - 1,0,0,0,165,163,1,0,0,0,165,166,1,0,0,0,166,23,1,0,0,0,167,165,1, - 0,0,0,168,169,5,36,0,0,169,170,3,26,13,0,170,171,5,37,0,0,171,25, - 1,0,0,0,172,175,3,28,14,0,173,175,3,58,29,0,174,172,1,0,0,0,174, - 173,1,0,0,0,175,27,1,0,0,0,176,178,5,32,0,0,177,176,1,0,0,0,177, - 178,1,0,0,0,178,181,1,0,0,0,179,182,3,22,11,0,180,182,3,18,9,0,181, - 179,1,0,0,0,181,180,1,0,0,0,182,184,1,0,0,0,183,185,7,3,0,0,184, - 183,1,0,0,0,184,185,1,0,0,0,185,191,1,0,0,0,186,188,5,32,0,0,187, - 186,1,0,0,0,187,188,1,0,0,0,188,189,1,0,0,0,189,191,3,62,31,0,190, - 177,1,0,0,0,190,187,1,0,0,0,191,29,1,0,0,0,192,193,5,32,0,0,193, - 194,5,12,0,0,194,198,3,20,10,0,195,196,5,12,0,0,196,198,3,20,10, - 0,197,192,1,0,0,0,197,195,1,0,0,0,198,31,1,0,0,0,199,200,5,40,0, - 0,200,201,5,32,0,0,201,208,3,20,10,0,202,203,5,32,0,0,203,204,5, - 40,0,0,204,208,3,20,10,0,205,206,5,40,0,0,206,208,3,20,10,0,207, - 199,1,0,0,0,207,202,1,0,0,0,207,205,1,0,0,0,208,33,1,0,0,0,209,212, - 3,20,10,0,210,212,5,27,0,0,211,209,1,0,0,0,211,210,1,0,0,0,212,35, - 1,0,0,0,213,214,5,38,0,0,214,215,3,38,19,0,215,216,5,39,0,0,216, - 220,1,0,0,0,217,218,5,38,0,0,218,220,5,39,0,0,219,213,1,0,0,0,219, - 217,1,0,0,0,220,37,1,0,0,0,221,226,3,40,20,0,222,223,5,41,0,0,223, - 225,3,40,20,0,224,222,1,0,0,0,225,228,1,0,0,0,226,224,1,0,0,0,226, - 227,1,0,0,0,227,232,1,0,0,0,228,226,1,0,0,0,229,231,5,41,0,0,230, - 229,1,0,0,0,231,234,1,0,0,0,232,230,1,0,0,0,232,233,1,0,0,0,233, - 39,1,0,0,0,234,232,1,0,0,0,235,237,5,33,0,0,236,238,5,12,0,0,237, - 236,1,0,0,0,237,238,1,0,0,0,238,239,1,0,0,0,239,245,3,20,10,0,240, - 241,3,42,21,0,241,242,5,40,0,0,242,243,3,44,22,0,243,245,1,0,0,0, - 244,235,1,0,0,0,244,240,1,0,0,0,245,41,1,0,0,0,246,247,3,20,10,0, - 247,43,1,0,0,0,248,251,3,48,24,0,249,251,3,64,32,0,250,248,1,0,0, - 0,250,249,1,0,0,0,251,45,1,0,0,0,252,255,5,44,0,0,253,255,5,45,0, - 0,254,252,1,0,0,0,254,253,1,0,0,0,255,47,1,0,0,0,256,263,5,44,0, - 0,257,263,5,45,0,0,258,263,5,46,0,0,259,263,5,47,0,0,260,263,3,18, - 9,0,261,263,3,22,11,0,262,256,1,0,0,0,262,257,1,0,0,0,262,258,1, - 0,0,0,262,259,1,0,0,0,262,260,1,0,0,0,262,261,1,0,0,0,263,49,1,0, - 0,0,264,265,7,4,0,0,265,51,1,0,0,0,266,267,7,5,0,0,267,53,1,0,0, - 0,268,274,3,52,26,0,269,274,5,21,0,0,270,274,5,22,0,0,271,274,5, - 23,0,0,272,274,5,24,0,0,273,268,1,0,0,0,273,269,1,0,0,0,273,270, - 1,0,0,0,273,271,1,0,0,0,273,272,1,0,0,0,274,55,1,0,0,0,275,276,7, - 6,0,0,276,57,1,0,0,0,277,278,6,29,-1,0,278,279,5,10,0,0,279,280, - 3,58,29,0,280,281,5,11,0,0,281,298,1,0,0,0,282,283,5,32,0,0,283, - 298,3,58,29,6,284,285,3,60,30,0,285,286,3,54,27,0,286,287,3,60,30, - 0,287,298,1,0,0,0,288,289,3,60,30,0,289,290,3,56,28,0,290,291,3, - 62,31,0,291,298,1,0,0,0,292,293,3,62,31,0,293,294,3,56,28,0,294, - 295,3,62,31,0,295,298,1,0,0,0,296,298,3,64,32,0,297,277,1,0,0,0, - 297,282,1,0,0,0,297,284,1,0,0,0,297,288,1,0,0,0,297,292,1,0,0,0, - 297,296,1,0,0,0,298,305,1,0,0,0,299,300,10,5,0,0,300,301,3,50,25, - 0,301,302,3,58,29,6,302,304,1,0,0,0,303,299,1,0,0,0,304,307,1,0, - 0,0,305,303,1,0,0,0,305,306,1,0,0,0,306,59,1,0,0,0,307,305,1,0,0, - 0,308,309,6,30,-1,0,309,310,5,10,0,0,310,311,3,60,30,0,311,312,5, - 11,0,0,312,316,1,0,0,0,313,316,3,66,33,0,314,316,3,64,32,0,315,308, - 1,0,0,0,315,313,1,0,0,0,315,314,1,0,0,0,316,322,1,0,0,0,317,318, - 10,3,0,0,318,319,7,7,0,0,319,321,3,60,30,4,320,317,1,0,0,0,321,324, - 1,0,0,0,322,320,1,0,0,0,322,323,1,0,0,0,323,61,1,0,0,0,324,322,1, - 0,0,0,325,328,3,18,9,0,326,328,5,49,0,0,327,325,1,0,0,0,327,326, - 1,0,0,0,328,63,1,0,0,0,329,330,3,20,10,0,330,339,5,10,0,0,331,336, - 3,60,30,0,332,333,5,1,0,0,333,335,3,60,30,0,334,332,1,0,0,0,335, - 338,1,0,0,0,336,334,1,0,0,0,336,337,1,0,0,0,337,340,1,0,0,0,338, - 336,1,0,0,0,339,331,1,0,0,0,339,340,1,0,0,0,340,341,1,0,0,0,341, - 342,5,11,0,0,342,65,1,0,0,0,343,358,5,46,0,0,344,358,5,44,0,0,345, - 358,5,47,0,0,346,358,5,45,0,0,347,349,5,27,0,0,348,347,1,0,0,0,348, - 349,1,0,0,0,349,350,1,0,0,0,350,358,3,18,9,0,351,353,5,27,0,0,352, - 351,1,0,0,0,352,353,1,0,0,0,353,354,1,0,0,0,354,358,3,22,11,0,355, - 356,5,27,0,0,356,358,3,62,31,0,357,343,1,0,0,0,357,344,1,0,0,0,357, - 345,1,0,0,0,357,346,1,0,0,0,357,348,1,0,0,0,357,352,1,0,0,0,357, - 355,1,0,0,0,358,67,1,0,0,0,41,71,83,89,102,104,113,129,140,142,146, - 153,158,165,174,177,181,184,187,190,197,207,211,219,226,232,237, - 244,250,254,262,273,297,305,315,322,327,336,339,348,352,357 + 7,33,2,34,7,34,1,0,5,0,72,8,0,10,0,12,0,75,9,0,1,0,1,0,1,1,1,1,1, + 2,1,2,1,2,5,2,84,8,2,10,2,12,2,87,9,2,1,2,5,2,90,8,2,10,2,12,2,93, + 9,2,1,2,1,2,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,5,3,105,8,3,10,3,12, + 3,108,9,3,1,3,1,3,1,3,1,3,1,3,1,3,3,3,116,8,3,1,4,1,4,1,5,1,5,1, + 6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,3,6,134,8,6,1,7,1, + 7,1,7,1,7,1,8,1,8,1,8,1,8,1,8,5,8,145,8,8,10,8,12,8,148,9,8,1,8, + 3,8,151,8,8,1,9,1,9,1,10,1,10,1,11,3,11,158,8,11,1,11,1,11,1,12, + 3,12,163,8,12,1,12,1,12,1,12,5,12,168,8,12,10,12,12,12,171,9,12, + 1,13,1,13,1,13,1,13,1,14,1,14,3,14,179,8,14,1,15,3,15,182,8,15,1, + 15,1,15,3,15,186,8,15,1,15,3,15,189,8,15,1,15,3,15,192,8,15,1,15, + 3,15,195,8,15,1,16,1,16,1,16,1,16,1,16,3,16,202,8,16,1,17,1,17,1, + 17,1,17,1,17,1,17,1,17,1,17,3,17,212,8,17,1,18,1,18,3,18,216,8,18, + 1,19,1,19,1,19,1,19,1,19,1,19,3,19,224,8,19,1,20,1,20,1,20,5,20, + 229,8,20,10,20,12,20,232,9,20,1,20,5,20,235,8,20,10,20,12,20,238, + 9,20,1,21,1,21,3,21,242,8,21,1,21,1,21,1,21,1,21,1,21,3,21,249,8, + 21,1,22,1,22,1,23,1,23,3,23,255,8,23,1,24,1,24,3,24,259,8,24,1,25, + 1,25,1,25,1,25,1,25,1,25,3,25,267,8,25,1,26,1,26,1,27,1,27,1,28, + 1,28,1,28,1,28,1,28,3,28,278,8,28,1,29,1,29,1,30,1,30,1,30,1,30, + 1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30, + 1,30,1,30,1,30,3,30,302,8,30,1,30,1,30,1,30,1,30,5,30,308,8,30,10, + 30,12,30,311,9,30,1,31,1,31,1,31,1,31,1,31,1,31,1,31,3,31,320,8, + 31,1,31,1,31,1,31,5,31,325,8,31,10,31,12,31,328,9,31,1,32,1,32,3, + 32,332,8,32,1,33,1,33,1,33,1,33,1,33,5,33,339,8,33,10,33,12,33,342, + 9,33,3,33,344,8,33,1,33,1,33,1,34,1,34,1,34,1,34,1,34,3,34,353,8, + 34,1,34,1,34,3,34,357,8,34,1,34,1,34,1,34,3,34,362,8,34,1,34,0,2, + 60,62,35,0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38, + 40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,0,9,1,0,17,18,1,0,4, + 9,1,0,42,43,2,0,12,12,40,40,1,0,2,3,2,0,13,14,25,26,1,0,13,18,1, + 0,19,20,1,0,27,31,391,0,73,1,0,0,0,2,78,1,0,0,0,4,80,1,0,0,0,6,115, + 1,0,0,0,8,117,1,0,0,0,10,119,1,0,0,0,12,133,1,0,0,0,14,135,1,0,0, + 0,16,139,1,0,0,0,18,152,1,0,0,0,20,154,1,0,0,0,22,157,1,0,0,0,24, + 162,1,0,0,0,26,172,1,0,0,0,28,178,1,0,0,0,30,194,1,0,0,0,32,201, + 1,0,0,0,34,211,1,0,0,0,36,215,1,0,0,0,38,223,1,0,0,0,40,225,1,0, + 0,0,42,248,1,0,0,0,44,250,1,0,0,0,46,254,1,0,0,0,48,258,1,0,0,0, + 50,266,1,0,0,0,52,268,1,0,0,0,54,270,1,0,0,0,56,277,1,0,0,0,58,279, + 1,0,0,0,60,301,1,0,0,0,62,319,1,0,0,0,64,331,1,0,0,0,66,333,1,0, + 0,0,68,361,1,0,0,0,70,72,3,2,1,0,71,70,1,0,0,0,72,75,1,0,0,0,73, + 71,1,0,0,0,73,74,1,0,0,0,74,76,1,0,0,0,75,73,1,0,0,0,76,77,5,0,0, + 1,77,1,1,0,0,0,78,79,3,4,2,0,79,3,1,0,0,0,80,85,3,6,3,0,81,82,5, + 1,0,0,82,84,3,6,3,0,83,81,1,0,0,0,84,87,1,0,0,0,85,83,1,0,0,0,85, + 86,1,0,0,0,86,91,1,0,0,0,87,85,1,0,0,0,88,90,5,1,0,0,89,88,1,0,0, + 0,90,93,1,0,0,0,91,89,1,0,0,0,91,92,1,0,0,0,92,94,1,0,0,0,93,91, + 1,0,0,0,94,95,3,38,19,0,95,5,1,0,0,0,96,116,3,16,8,0,97,98,3,16, + 8,0,98,99,3,16,8,0,99,116,1,0,0,0,100,101,3,16,8,0,101,106,3,8,4, + 0,102,105,3,12,6,0,103,105,3,34,17,0,104,102,1,0,0,0,104,103,1,0, + 0,0,105,108,1,0,0,0,106,104,1,0,0,0,106,107,1,0,0,0,107,109,1,0, + 0,0,108,106,1,0,0,0,109,110,3,16,8,0,110,116,1,0,0,0,111,112,3,16, + 8,0,112,113,3,10,5,0,113,114,3,16,8,0,114,116,1,0,0,0,115,96,1,0, + 0,0,115,97,1,0,0,0,115,100,1,0,0,0,115,111,1,0,0,0,116,7,1,0,0,0, + 117,118,7,0,0,0,118,9,1,0,0,0,119,120,7,1,0,0,120,11,1,0,0,0,121, + 122,5,36,0,0,122,123,3,22,11,0,123,124,3,56,28,0,124,125,3,62,31, + 0,125,126,5,37,0,0,126,134,1,0,0,0,127,128,5,36,0,0,128,129,3,22, + 11,0,129,130,3,54,27,0,130,131,3,48,24,0,131,132,5,37,0,0,132,134, + 1,0,0,0,133,121,1,0,0,0,133,127,1,0,0,0,134,13,1,0,0,0,135,136,5, + 40,0,0,136,137,5,40,0,0,137,138,3,22,11,0,138,15,1,0,0,0,139,146, + 3,36,18,0,140,145,3,18,9,0,141,145,3,32,16,0,142,145,3,26,13,0,143, + 145,3,34,17,0,144,140,1,0,0,0,144,141,1,0,0,0,144,142,1,0,0,0,144, + 143,1,0,0,0,145,148,1,0,0,0,146,144,1,0,0,0,146,147,1,0,0,0,147, + 150,1,0,0,0,148,146,1,0,0,0,149,151,3,14,7,0,150,149,1,0,0,0,150, + 151,1,0,0,0,151,17,1,0,0,0,152,153,5,48,0,0,153,19,1,0,0,0,154,155, + 7,2,0,0,155,21,1,0,0,0,156,158,5,31,0,0,157,156,1,0,0,0,157,158, + 1,0,0,0,158,159,1,0,0,0,159,160,5,35,0,0,160,23,1,0,0,0,161,163, + 5,31,0,0,162,161,1,0,0,0,162,163,1,0,0,0,163,164,1,0,0,0,164,169, + 5,35,0,0,165,166,7,3,0,0,166,168,5,35,0,0,167,165,1,0,0,0,168,171, + 1,0,0,0,169,167,1,0,0,0,169,170,1,0,0,0,170,25,1,0,0,0,171,169,1, + 0,0,0,172,173,5,36,0,0,173,174,3,28,14,0,174,175,5,37,0,0,175,27, + 1,0,0,0,176,179,3,30,15,0,177,179,3,60,30,0,178,176,1,0,0,0,178, + 177,1,0,0,0,179,29,1,0,0,0,180,182,5,32,0,0,181,180,1,0,0,0,181, + 182,1,0,0,0,182,185,1,0,0,0,183,186,3,24,12,0,184,186,3,20,10,0, + 185,183,1,0,0,0,185,184,1,0,0,0,186,188,1,0,0,0,187,189,7,4,0,0, + 188,187,1,0,0,0,188,189,1,0,0,0,189,195,1,0,0,0,190,192,5,32,0,0, + 191,190,1,0,0,0,191,192,1,0,0,0,192,193,1,0,0,0,193,195,3,64,32, + 0,194,181,1,0,0,0,194,191,1,0,0,0,195,31,1,0,0,0,196,197,5,32,0, + 0,197,198,5,12,0,0,198,202,3,22,11,0,199,200,5,12,0,0,200,202,3, + 22,11,0,201,196,1,0,0,0,201,199,1,0,0,0,202,33,1,0,0,0,203,204,5, + 40,0,0,204,205,5,32,0,0,205,212,3,22,11,0,206,207,5,32,0,0,207,208, + 5,40,0,0,208,212,3,22,11,0,209,210,5,40,0,0,210,212,3,22,11,0,211, + 203,1,0,0,0,211,206,1,0,0,0,211,209,1,0,0,0,212,35,1,0,0,0,213,216, + 3,22,11,0,214,216,5,27,0,0,215,213,1,0,0,0,215,214,1,0,0,0,216,37, + 1,0,0,0,217,218,5,38,0,0,218,219,3,40,20,0,219,220,5,39,0,0,220, + 224,1,0,0,0,221,222,5,38,0,0,222,224,5,39,0,0,223,217,1,0,0,0,223, + 221,1,0,0,0,224,39,1,0,0,0,225,230,3,42,21,0,226,227,5,41,0,0,227, + 229,3,42,21,0,228,226,1,0,0,0,229,232,1,0,0,0,230,228,1,0,0,0,230, + 231,1,0,0,0,231,236,1,0,0,0,232,230,1,0,0,0,233,235,5,41,0,0,234, + 233,1,0,0,0,235,238,1,0,0,0,236,234,1,0,0,0,236,237,1,0,0,0,237, + 41,1,0,0,0,238,236,1,0,0,0,239,241,5,33,0,0,240,242,5,12,0,0,241, + 240,1,0,0,0,241,242,1,0,0,0,242,243,1,0,0,0,243,249,3,22,11,0,244, + 245,3,44,22,0,245,246,5,40,0,0,246,247,3,46,23,0,247,249,1,0,0,0, + 248,239,1,0,0,0,248,244,1,0,0,0,249,43,1,0,0,0,250,251,3,22,11,0, + 251,45,1,0,0,0,252,255,3,50,25,0,253,255,3,66,33,0,254,252,1,0,0, + 0,254,253,1,0,0,0,255,47,1,0,0,0,256,259,5,44,0,0,257,259,5,45,0, + 0,258,256,1,0,0,0,258,257,1,0,0,0,259,49,1,0,0,0,260,267,5,44,0, + 0,261,267,5,45,0,0,262,267,5,46,0,0,263,267,5,47,0,0,264,267,3,20, + 10,0,265,267,3,24,12,0,266,260,1,0,0,0,266,261,1,0,0,0,266,262,1, + 0,0,0,266,263,1,0,0,0,266,264,1,0,0,0,266,265,1,0,0,0,267,51,1,0, + 0,0,268,269,7,5,0,0,269,53,1,0,0,0,270,271,7,6,0,0,271,55,1,0,0, + 0,272,278,3,54,27,0,273,278,5,21,0,0,274,278,5,22,0,0,275,278,5, + 23,0,0,276,278,5,24,0,0,277,272,1,0,0,0,277,273,1,0,0,0,277,274, + 1,0,0,0,277,275,1,0,0,0,277,276,1,0,0,0,278,57,1,0,0,0,279,280,7, + 7,0,0,280,59,1,0,0,0,281,282,6,30,-1,0,282,283,5,10,0,0,283,284, + 3,60,30,0,284,285,5,11,0,0,285,302,1,0,0,0,286,287,5,32,0,0,287, + 302,3,60,30,6,288,289,3,62,31,0,289,290,3,56,28,0,290,291,3,62,31, + 0,291,302,1,0,0,0,292,293,3,62,31,0,293,294,3,58,29,0,294,295,3, + 64,32,0,295,302,1,0,0,0,296,297,3,64,32,0,297,298,3,58,29,0,298, + 299,3,64,32,0,299,302,1,0,0,0,300,302,3,66,33,0,301,281,1,0,0,0, + 301,286,1,0,0,0,301,288,1,0,0,0,301,292,1,0,0,0,301,296,1,0,0,0, + 301,300,1,0,0,0,302,309,1,0,0,0,303,304,10,5,0,0,304,305,3,52,26, + 0,305,306,3,60,30,6,306,308,1,0,0,0,307,303,1,0,0,0,308,311,1,0, + 0,0,309,307,1,0,0,0,309,310,1,0,0,0,310,61,1,0,0,0,311,309,1,0,0, + 0,312,313,6,31,-1,0,313,314,5,10,0,0,314,315,3,62,31,0,315,316,5, + 11,0,0,316,320,1,0,0,0,317,320,3,68,34,0,318,320,3,66,33,0,319,312, + 1,0,0,0,319,317,1,0,0,0,319,318,1,0,0,0,320,326,1,0,0,0,321,322, + 10,3,0,0,322,323,7,8,0,0,323,325,3,62,31,4,324,321,1,0,0,0,325,328, + 1,0,0,0,326,324,1,0,0,0,326,327,1,0,0,0,327,63,1,0,0,0,328,326,1, + 0,0,0,329,332,3,20,10,0,330,332,5,49,0,0,331,329,1,0,0,0,331,330, + 1,0,0,0,332,65,1,0,0,0,333,334,3,22,11,0,334,343,5,10,0,0,335,340, + 3,62,31,0,336,337,5,1,0,0,337,339,3,62,31,0,338,336,1,0,0,0,339, + 342,1,0,0,0,340,338,1,0,0,0,340,341,1,0,0,0,341,344,1,0,0,0,342, + 340,1,0,0,0,343,335,1,0,0,0,343,344,1,0,0,0,344,345,1,0,0,0,345, + 346,5,11,0,0,346,67,1,0,0,0,347,362,5,46,0,0,348,362,5,44,0,0,349, + 362,5,47,0,0,350,362,5,45,0,0,351,353,5,27,0,0,352,351,1,0,0,0,352, + 353,1,0,0,0,353,354,1,0,0,0,354,362,3,20,10,0,355,357,5,27,0,0,356, + 355,1,0,0,0,356,357,1,0,0,0,357,358,1,0,0,0,358,362,3,24,12,0,359, + 360,5,27,0,0,360,362,3,64,32,0,361,347,1,0,0,0,361,348,1,0,0,0,361, + 349,1,0,0,0,361,350,1,0,0,0,361,352,1,0,0,0,361,356,1,0,0,0,361, + 359,1,0,0,0,362,69,1,0,0,0,41,73,85,91,104,106,115,133,144,146,150, + 157,162,169,178,181,185,188,191,194,201,211,215,223,230,236,241, + 248,254,258,266,277,301,309,319,326,331,340,343,352,356,361 ] class MapCSSParser ( Parser ): @@ -188,47 +189,48 @@ class MapCSSParser ( Parser ): RULE_entry = 1 RULE_rule_ = 2 RULE_selector = 3 - RULE_simple_selector_operator = 4 - RULE_link_selector = 5 - RULE_layer_id_selector = 6 - RULE_simple_selector = 7 - RULE_zoom_selector = 8 - RULE_quoted = 9 - RULE_cssident = 10 - RULE_osmtag = 11 - RULE_attribute_selector = 12 - RULE_predicate = 13 - RULE_predicate_simple = 14 - RULE_class_selector = 15 - RULE_pseudo_class_selector = 16 - RULE_type_selector = 17 - RULE_declaration_block = 18 - RULE_declarations = 19 - RULE_declaration = 20 - RULE_declaration_property = 21 - RULE_declaration_value = 22 - RULE_int_ = 23 - RULE_single_value = 24 - RULE_booleanOperator = 25 - RULE_numericOperator = 26 - RULE_valueOperator = 27 - RULE_regexOperator = 28 - RULE_booleanExpression = 29 - RULE_valueExpression = 30 - RULE_regexExpression = 31 - RULE_functionExpression = 32 - RULE_primaryExpression = 33 - - ruleNames = [ "stylesheet", "entry", "rule_", "selector", "simple_selector_operator", - "link_selector", "layer_id_selector", "simple_selector", - "zoom_selector", "quoted", "cssident", "osmtag", "attribute_selector", - "predicate", "predicate_simple", "class_selector", "pseudo_class_selector", - "type_selector", "declaration_block", "declarations", - "declaration", "declaration_property", "declaration_value", - "int_", "single_value", "booleanOperator", "numericOperator", - "valueOperator", "regexOperator", "booleanExpression", - "valueExpression", "regexExpression", "functionExpression", - "primaryExpression" ] + RULE_parent_child_selector_operator = 4 + RULE_simple_selector_operator = 5 + RULE_link_selector = 6 + RULE_layer_id_selector = 7 + RULE_simple_selector = 8 + RULE_zoom_selector = 9 + RULE_quoted = 10 + RULE_cssident = 11 + RULE_osmtag = 12 + RULE_attribute_selector = 13 + RULE_predicate = 14 + RULE_predicate_simple = 15 + RULE_class_selector = 16 + RULE_pseudo_class_selector = 17 + RULE_type_selector = 18 + RULE_declaration_block = 19 + RULE_declarations = 20 + RULE_declaration = 21 + RULE_declaration_property = 22 + RULE_declaration_value = 23 + RULE_int_ = 24 + RULE_single_value = 25 + RULE_booleanOperator = 26 + RULE_numericOperator = 27 + RULE_valueOperator = 28 + RULE_regexOperator = 29 + RULE_booleanExpression = 30 + RULE_valueExpression = 31 + RULE_regexExpression = 32 + RULE_functionExpression = 33 + RULE_primaryExpression = 34 + + ruleNames = [ "stylesheet", "entry", "rule_", "selector", "parent_child_selector_operator", + "simple_selector_operator", "link_selector", "layer_id_selector", + "simple_selector", "zoom_selector", "quoted", "cssident", + "osmtag", "attribute_selector", "predicate", "predicate_simple", + "class_selector", "pseudo_class_selector", "type_selector", + "declaration_block", "declarations", "declaration", "declaration_property", + "declaration_value", "int_", "single_value", "booleanOperator", + "numericOperator", "valueOperator", "regexOperator", + "booleanExpression", "valueExpression", "regexExpression", + "functionExpression", "primaryExpression" ] EOF = Token.EOF COMMA=1 @@ -362,17 +364,17 @@ def stylesheet(self): self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 71 + self.state = 73 self._errHandler.sync(self) _la = self._input.LA(1) while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << MapCSSParser.OP_MUL) | (1 << MapCSSParser.OP_MINUS) | (1 << MapCSSParser.NCOMPONENT))) != 0): - self.state = 68 + self.state = 70 self.entry() - self.state = 73 + self.state = 75 self._errHandler.sync(self) _la = self._input.LA(1) - self.state = 74 + self.state = 76 self.match(MapCSSParser.EOF) except RecognitionException as re: localctx.exception = re @@ -414,7 +416,7 @@ def entry(self): self.enterRule(localctx, 2, self.RULE_entry) try: self.enterOuterAlt(localctx, 1) - self.state = 76 + self.state = 78 self.rule_() except RecognitionException as re: localctx.exception = re @@ -470,32 +472,32 @@ def rule_(self): self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 78 + self.state = 80 self.selector() - self.state = 83 + self.state = 85 self._errHandler.sync(self) _alt = self._interp.adaptivePredict(self._input,1,self._ctx) while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: if _alt==1: - self.state = 79 + self.state = 81 self.match(MapCSSParser.COMMA) - self.state = 80 + self.state = 82 self.selector() - self.state = 85 + self.state = 87 self._errHandler.sync(self) _alt = self._interp.adaptivePredict(self._input,1,self._ctx) - self.state = 89 + self.state = 91 self._errHandler.sync(self) _la = self._input.LA(1) while _la==MapCSSParser.COMMA: - self.state = 86 + self.state = 88 self.match(MapCSSParser.COMMA) - self.state = 91 + self.state = 93 self._errHandler.sync(self) _la = self._input.LA(1) - self.state = 92 + self.state = 94 self.declaration_block() except RecognitionException as re: localctx.exception = re @@ -520,8 +522,9 @@ def simple_selector(self, i:int=None): return self.getTypedRuleContext(MapCSSParser.Simple_selectorContext,i) - def OP_GT(self): - return self.getToken(MapCSSParser.OP_GT, 0) + def parent_child_selector_operator(self): + return self.getTypedRuleContext(MapCSSParser.Parent_child_selector_operatorContext,0) + def link_selector(self, i:int=None): if i is None: @@ -561,62 +564,62 @@ def selector(self): self.enterRule(localctx, 6, self.RULE_selector) self._la = 0 # Token type try: - self.state = 113 + self.state = 115 self._errHandler.sync(self) la_ = self._interp.adaptivePredict(self._input,5,self._ctx) if la_ == 1: self.enterOuterAlt(localctx, 1) - self.state = 94 + self.state = 96 self.simple_selector() pass elif la_ == 2: self.enterOuterAlt(localctx, 2) - self.state = 95 + self.state = 97 self.simple_selector() - self.state = 96 + self.state = 98 self.simple_selector() pass elif la_ == 3: self.enterOuterAlt(localctx, 3) - self.state = 98 + self.state = 100 self.simple_selector() - self.state = 99 - self.match(MapCSSParser.OP_GT) - self.state = 104 + self.state = 101 + self.parent_child_selector_operator() + self.state = 106 self._errHandler.sync(self) _la = self._input.LA(1) while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << MapCSSParser.OP_NOT) | (1 << MapCSSParser.LBRACKET) | (1 << MapCSSParser.COLON))) != 0): - self.state = 102 + self.state = 104 self._errHandler.sync(self) token = self._input.LA(1) if token in [MapCSSParser.LBRACKET]: - self.state = 100 + self.state = 102 self.link_selector() pass elif token in [MapCSSParser.OP_NOT, MapCSSParser.COLON]: - self.state = 101 + self.state = 103 self.pseudo_class_selector() pass else: raise NoViableAltException(self) - self.state = 106 + self.state = 108 self._errHandler.sync(self) _la = self._input.LA(1) - self.state = 107 + self.state = 109 self.simple_selector() pass elif la_ == 4: self.enterOuterAlt(localctx, 4) - self.state = 109 + self.state = 111 self.simple_selector() - self.state = 110 + self.state = 112 self.simple_selector_operator() - self.state = 111 + self.state = 113 self.simple_selector() pass @@ -630,16 +633,63 @@ def selector(self): return localctx - class Simple_selector_operatorContext(ParserRuleContext): + class Parent_child_selector_operatorContext(ParserRuleContext): __slots__ = 'parser' def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): super().__init__(parent, invokingState) self.parser = parser + def OP_GT(self): + return self.getToken(MapCSSParser.OP_GT, 0) + def OP_LT(self): return self.getToken(MapCSSParser.OP_LT, 0) + def getRuleIndex(self): + return MapCSSParser.RULE_parent_child_selector_operator + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterParent_child_selector_operator" ): + listener.enterParent_child_selector_operator(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitParent_child_selector_operator" ): + listener.exitParent_child_selector_operator(self) + + + + + def parent_child_selector_operator(self): + + localctx = MapCSSParser.Parent_child_selector_operatorContext(self, self._ctx, self.state) + self.enterRule(localctx, 8, self.RULE_parent_child_selector_operator) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 117 + _la = self._input.LA(1) + if not(_la==MapCSSParser.OP_LT or _la==MapCSSParser.OP_GT): + self._errHandler.recoverInline(self) + else: + self._errHandler.reportMatch(self) + self.consume() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + + class Simple_selector_operatorContext(ParserRuleContext): + __slots__ = 'parser' + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + def OP_INCLUDED_IN(self): return self.getToken(MapCSSParser.OP_INCLUDED_IN, 0) @@ -675,13 +725,13 @@ def exitRule(self, listener:ParseTreeListener): def simple_selector_operator(self): localctx = MapCSSParser.Simple_selector_operatorContext(self, self._ctx, self.state) - self.enterRule(localctx, 8, self.RULE_simple_selector_operator) + self.enterRule(localctx, 10, self.RULE_simple_selector_operator) self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 115 + self.state = 119 _la = self._input.LA(1) - if not((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << MapCSSParser.OP_INCLUDED_IN) | (1 << MapCSSParser.OP_INTERSECTS) | (1 << MapCSSParser.OP_SUBSET) | (1 << MapCSSParser.OP_SUPERSET) | (1 << MapCSSParser.OP_NOSUBSET) | (1 << MapCSSParser.OP_NOSUPERSET) | (1 << MapCSSParser.OP_LT))) != 0)): + if not((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << MapCSSParser.OP_INCLUDED_IN) | (1 << MapCSSParser.OP_INTERSECTS) | (1 << MapCSSParser.OP_SUBSET) | (1 << MapCSSParser.OP_SUPERSET) | (1 << MapCSSParser.OP_NOSUBSET) | (1 << MapCSSParser.OP_NOSUPERSET))) != 0)): self._errHandler.recoverInline(self) else: self._errHandler.reportMatch(self) @@ -746,36 +796,36 @@ def exitRule(self, listener:ParseTreeListener): def link_selector(self): localctx = MapCSSParser.Link_selectorContext(self, self._ctx, self.state) - self.enterRule(localctx, 10, self.RULE_link_selector) + self.enterRule(localctx, 12, self.RULE_link_selector) try: - self.state = 129 + self.state = 133 self._errHandler.sync(self) la_ = self._interp.adaptivePredict(self._input,6,self._ctx) if la_ == 1: self.enterOuterAlt(localctx, 1) - self.state = 117 + self.state = 121 self.match(MapCSSParser.LBRACKET) - self.state = 118 + self.state = 122 self.cssident() - self.state = 119 + self.state = 123 self.valueOperator() - self.state = 120 + self.state = 124 self.valueExpression(0) - self.state = 121 + self.state = 125 self.match(MapCSSParser.RBRACKET) pass elif la_ == 2: self.enterOuterAlt(localctx, 2) - self.state = 123 + self.state = 127 self.match(MapCSSParser.LBRACKET) - self.state = 124 + self.state = 128 self.cssident() - self.state = 125 + self.state = 129 self.numericOperator() - self.state = 126 + self.state = 130 localctx.v = self.int_() - self.state = 127 + self.state = 131 self.match(MapCSSParser.RBRACKET) pass @@ -824,14 +874,14 @@ def exitRule(self, listener:ParseTreeListener): def layer_id_selector(self): localctx = MapCSSParser.Layer_id_selectorContext(self, self._ctx, self.state) - self.enterRule(localctx, 12, self.RULE_layer_id_selector) + self.enterRule(localctx, 14, self.RULE_layer_id_selector) try: self.enterOuterAlt(localctx, 1) - self.state = 131 + self.state = 135 self.match(MapCSSParser.COLON) - self.state = 132 + self.state = 136 self.match(MapCSSParser.COLON) - self.state = 133 + self.state = 137 localctx.k = self.cssident() except RecognitionException as re: localctx.exception = re @@ -902,50 +952,50 @@ def exitRule(self, listener:ParseTreeListener): def simple_selector(self): localctx = MapCSSParser.Simple_selectorContext(self, self._ctx, self.state) - self.enterRule(localctx, 14, self.RULE_simple_selector) + self.enterRule(localctx, 16, self.RULE_simple_selector) self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 135 + self.state = 139 self.type_selector() - self.state = 142 + self.state = 146 self._errHandler.sync(self) _alt = self._interp.adaptivePredict(self._input,8,self._ctx) while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: if _alt==1: - self.state = 140 + self.state = 144 self._errHandler.sync(self) la_ = self._interp.adaptivePredict(self._input,7,self._ctx) if la_ == 1: - self.state = 136 + self.state = 140 self.zoom_selector() pass elif la_ == 2: - self.state = 137 + self.state = 141 self.class_selector() pass elif la_ == 3: - self.state = 138 + self.state = 142 self.attribute_selector() pass elif la_ == 4: - self.state = 139 + self.state = 143 self.pseudo_class_selector() pass - self.state = 144 + self.state = 148 self._errHandler.sync(self) _alt = self._interp.adaptivePredict(self._input,8,self._ctx) - self.state = 146 + self.state = 150 self._errHandler.sync(self) _la = self._input.LA(1) if _la==MapCSSParser.COLON: - self.state = 145 + self.state = 149 self.layer_id_selector() @@ -985,10 +1035,10 @@ def exitRule(self, listener:ParseTreeListener): def zoom_selector(self): localctx = MapCSSParser.Zoom_selectorContext(self, self._ctx, self.state) - self.enterRule(localctx, 16, self.RULE_zoom_selector) + self.enterRule(localctx, 18, self.RULE_zoom_selector) try: self.enterOuterAlt(localctx, 1) - self.state = 148 + self.state = 152 self.match(MapCSSParser.RANGE) except RecognitionException as re: localctx.exception = re @@ -1029,11 +1079,11 @@ def exitRule(self, listener:ParseTreeListener): def quoted(self): localctx = MapCSSParser.QuotedContext(self, self._ctx, self.state) - self.enterRule(localctx, 18, self.RULE_quoted) + self.enterRule(localctx, 20, self.RULE_quoted) self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 150 + self.state = 154 _la = self._input.LA(1) if not(_la==MapCSSParser.DQUOTED_STRING or _la==MapCSSParser.SQUOTED_STRING): self._errHandler.recoverInline(self) @@ -1079,19 +1129,19 @@ def exitRule(self, listener:ParseTreeListener): def cssident(self): localctx = MapCSSParser.CssidentContext(self, self._ctx, self.state) - self.enterRule(localctx, 20, self.RULE_cssident) + self.enterRule(localctx, 22, self.RULE_cssident) self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 153 + self.state = 157 self._errHandler.sync(self) _la = self._input.LA(1) if _la==MapCSSParser.OP_MINUS: - self.state = 152 + self.state = 156 self.match(MapCSSParser.OP_MINUS) - self.state = 155 + self.state = 159 self.match(MapCSSParser.NCOMPONENT) except RecognitionException as re: localctx.exception = re @@ -1147,35 +1197,35 @@ def exitRule(self, listener:ParseTreeListener): def osmtag(self): localctx = MapCSSParser.OsmtagContext(self, self._ctx, self.state) - self.enterRule(localctx, 22, self.RULE_osmtag) + self.enterRule(localctx, 24, self.RULE_osmtag) self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 158 + self.state = 162 self._errHandler.sync(self) _la = self._input.LA(1) if _la==MapCSSParser.OP_MINUS: - self.state = 157 + self.state = 161 self.match(MapCSSParser.OP_MINUS) - self.state = 160 + self.state = 164 self.match(MapCSSParser.NCOMPONENT) - self.state = 165 + self.state = 169 self._errHandler.sync(self) _alt = self._interp.adaptivePredict(self._input,12,self._ctx) while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: if _alt==1: - self.state = 161 + self.state = 165 _la = self._input.LA(1) if not(_la==MapCSSParser.DOT or _la==MapCSSParser.COLON): self._errHandler.recoverInline(self) else: self._errHandler.reportMatch(self) self.consume() - self.state = 162 + self.state = 166 self.match(MapCSSParser.NCOMPONENT) - self.state = 167 + self.state = 171 self._errHandler.sync(self) _alt = self._interp.adaptivePredict(self._input,12,self._ctx) @@ -1222,14 +1272,14 @@ def exitRule(self, listener:ParseTreeListener): def attribute_selector(self): localctx = MapCSSParser.Attribute_selectorContext(self, self._ctx, self.state) - self.enterRule(localctx, 24, self.RULE_attribute_selector) + self.enterRule(localctx, 26, self.RULE_attribute_selector) try: self.enterOuterAlt(localctx, 1) - self.state = 168 + self.state = 172 self.match(MapCSSParser.LBRACKET) - self.state = 169 + self.state = 173 self.predicate() - self.state = 170 + self.state = 174 self.match(MapCSSParser.RBRACKET) except RecognitionException as re: localctx.exception = re @@ -1272,20 +1322,20 @@ def exitRule(self, listener:ParseTreeListener): def predicate(self): localctx = MapCSSParser.PredicateContext(self, self._ctx, self.state) - self.enterRule(localctx, 26, self.RULE_predicate) + self.enterRule(localctx, 28, self.RULE_predicate) try: - self.state = 174 + self.state = 178 self._errHandler.sync(self) la_ = self._interp.adaptivePredict(self._input,13,self._ctx) if la_ == 1: self.enterOuterAlt(localctx, 1) - self.state = 172 + self.state = 176 self.predicate_simple() pass elif la_ == 2: self.enterOuterAlt(localctx, 2) - self.state = 173 + self.state = 177 self.booleanExpression(0) pass @@ -1344,41 +1394,41 @@ def exitRule(self, listener:ParseTreeListener): def predicate_simple(self): localctx = MapCSSParser.Predicate_simpleContext(self, self._ctx, self.state) - self.enterRule(localctx, 28, self.RULE_predicate_simple) + self.enterRule(localctx, 30, self.RULE_predicate_simple) self._la = 0 # Token type try: - self.state = 190 + self.state = 194 self._errHandler.sync(self) la_ = self._interp.adaptivePredict(self._input,18,self._ctx) if la_ == 1: self.enterOuterAlt(localctx, 1) - self.state = 177 + self.state = 181 self._errHandler.sync(self) _la = self._input.LA(1) if _la==MapCSSParser.OP_NOT: - self.state = 176 + self.state = 180 self.match(MapCSSParser.OP_NOT) - self.state = 181 + self.state = 185 self._errHandler.sync(self) token = self._input.LA(1) if token in [MapCSSParser.OP_MINUS, MapCSSParser.NCOMPONENT]: - self.state = 179 + self.state = 183 self.osmtag() pass elif token in [MapCSSParser.DQUOTED_STRING, MapCSSParser.SQUOTED_STRING]: - self.state = 180 + self.state = 184 self.quoted() pass else: raise NoViableAltException(self) - self.state = 184 + self.state = 188 self._errHandler.sync(self) _la = self._input.LA(1) if _la==MapCSSParser.QUESTION_MARK or _la==MapCSSParser.QUESTION_MARK_NEGATED: - self.state = 183 + self.state = 187 _la = self._input.LA(1) if not(_la==MapCSSParser.QUESTION_MARK or _la==MapCSSParser.QUESTION_MARK_NEGATED): self._errHandler.recoverInline(self) @@ -1391,15 +1441,15 @@ def predicate_simple(self): elif la_ == 2: self.enterOuterAlt(localctx, 2) - self.state = 187 + self.state = 191 self._errHandler.sync(self) _la = self._input.LA(1) if _la==MapCSSParser.OP_NOT: - self.state = 186 + self.state = 190 self.match(MapCSSParser.OP_NOT) - self.state = 189 + self.state = 193 self.regexExpression() pass @@ -1447,25 +1497,25 @@ def exitRule(self, listener:ParseTreeListener): def class_selector(self): localctx = MapCSSParser.Class_selectorContext(self, self._ctx, self.state) - self.enterRule(localctx, 30, self.RULE_class_selector) + self.enterRule(localctx, 32, self.RULE_class_selector) try: - self.state = 197 + self.state = 201 self._errHandler.sync(self) token = self._input.LA(1) if token in [MapCSSParser.OP_NOT]: self.enterOuterAlt(localctx, 1) - self.state = 192 + self.state = 196 self.match(MapCSSParser.OP_NOT) - self.state = 193 + self.state = 197 self.match(MapCSSParser.DOT) - self.state = 194 + self.state = 198 self.cssident() pass elif token in [MapCSSParser.DOT]: self.enterOuterAlt(localctx, 2) - self.state = 195 + self.state = 199 self.match(MapCSSParser.DOT) - self.state = 196 + self.state = 200 self.cssident() pass else: @@ -1514,36 +1564,36 @@ def exitRule(self, listener:ParseTreeListener): def pseudo_class_selector(self): localctx = MapCSSParser.Pseudo_class_selectorContext(self, self._ctx, self.state) - self.enterRule(localctx, 32, self.RULE_pseudo_class_selector) + self.enterRule(localctx, 34, self.RULE_pseudo_class_selector) try: - self.state = 207 + self.state = 211 self._errHandler.sync(self) la_ = self._interp.adaptivePredict(self._input,20,self._ctx) if la_ == 1: self.enterOuterAlt(localctx, 1) - self.state = 199 + self.state = 203 self.match(MapCSSParser.COLON) - self.state = 200 + self.state = 204 self.match(MapCSSParser.OP_NOT) - self.state = 201 + self.state = 205 self.cssident() pass elif la_ == 2: self.enterOuterAlt(localctx, 2) - self.state = 202 + self.state = 206 self.match(MapCSSParser.OP_NOT) - self.state = 203 + self.state = 207 self.match(MapCSSParser.COLON) - self.state = 204 + self.state = 208 self.cssident() pass elif la_ == 3: self.enterOuterAlt(localctx, 3) - self.state = 205 + self.state = 209 self.match(MapCSSParser.COLON) - self.state = 206 + self.state = 210 self.cssident() pass @@ -1588,19 +1638,19 @@ def exitRule(self, listener:ParseTreeListener): def type_selector(self): localctx = MapCSSParser.Type_selectorContext(self, self._ctx, self.state) - self.enterRule(localctx, 34, self.RULE_type_selector) + self.enterRule(localctx, 36, self.RULE_type_selector) try: - self.state = 211 + self.state = 215 self._errHandler.sync(self) token = self._input.LA(1) if token in [MapCSSParser.OP_MINUS, MapCSSParser.NCOMPONENT]: self.enterOuterAlt(localctx, 1) - self.state = 209 + self.state = 213 self.cssident() pass elif token in [MapCSSParser.OP_MUL]: self.enterOuterAlt(localctx, 2) - self.state = 210 + self.state = 214 self.match(MapCSSParser.OP_MUL) pass else: @@ -1650,26 +1700,26 @@ def exitRule(self, listener:ParseTreeListener): def declaration_block(self): localctx = MapCSSParser.Declaration_blockContext(self, self._ctx, self.state) - self.enterRule(localctx, 36, self.RULE_declaration_block) + self.enterRule(localctx, 38, self.RULE_declaration_block) try: - self.state = 219 + self.state = 223 self._errHandler.sync(self) la_ = self._interp.adaptivePredict(self._input,22,self._ctx) if la_ == 1: self.enterOuterAlt(localctx, 1) - self.state = 213 + self.state = 217 localctx.l = self.match(MapCSSParser.LBRACE) - self.state = 214 + self.state = 218 self.declarations() - self.state = 215 + self.state = 219 self.match(MapCSSParser.RBRACE) pass elif la_ == 2: self.enterOuterAlt(localctx, 2) - self.state = 217 + self.state = 221 localctx.l = self.match(MapCSSParser.LBRACE) - self.state = 218 + self.state = 222 self.match(MapCSSParser.RBRACE) pass @@ -1720,32 +1770,32 @@ def exitRule(self, listener:ParseTreeListener): def declarations(self): localctx = MapCSSParser.DeclarationsContext(self, self._ctx, self.state) - self.enterRule(localctx, 38, self.RULE_declarations) + self.enterRule(localctx, 40, self.RULE_declarations) self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 221 + self.state = 225 self.declaration() - self.state = 226 + self.state = 230 self._errHandler.sync(self) _alt = self._interp.adaptivePredict(self._input,23,self._ctx) while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: if _alt==1: - self.state = 222 + self.state = 226 self.match(MapCSSParser.SEMICOLON) - self.state = 223 + self.state = 227 self.declaration() - self.state = 228 + self.state = 232 self._errHandler.sync(self) _alt = self._interp.adaptivePredict(self._input,23,self._ctx) - self.state = 232 + self.state = 236 self._errHandler.sync(self) _la = self._input.LA(1) while _la==MapCSSParser.SEMICOLON: - self.state = 229 + self.state = 233 self.match(MapCSSParser.SEMICOLON) - self.state = 234 + self.state = 238 self._errHandler.sync(self) _la = self._input.LA(1) @@ -1803,34 +1853,34 @@ def exitRule(self, listener:ParseTreeListener): def declaration(self): localctx = MapCSSParser.DeclarationContext(self, self._ctx, self.state) - self.enterRule(localctx, 40, self.RULE_declaration) + self.enterRule(localctx, 42, self.RULE_declaration) self._la = 0 # Token type try: - self.state = 244 + self.state = 248 self._errHandler.sync(self) token = self._input.LA(1) if token in [MapCSSParser.SET]: self.enterOuterAlt(localctx, 1) - self.state = 235 + self.state = 239 self.match(MapCSSParser.SET) - self.state = 237 + self.state = 241 self._errHandler.sync(self) _la = self._input.LA(1) if _la==MapCSSParser.DOT: - self.state = 236 + self.state = 240 self.match(MapCSSParser.DOT) - self.state = 239 + self.state = 243 self.cssident() pass elif token in [MapCSSParser.OP_MINUS, MapCSSParser.NCOMPONENT]: self.enterOuterAlt(localctx, 2) - self.state = 240 + self.state = 244 self.declaration_property() - self.state = 241 + self.state = 245 self.match(MapCSSParser.COLON) - self.state = 242 + self.state = 246 self.declaration_value() pass else: @@ -1873,10 +1923,10 @@ def exitRule(self, listener:ParseTreeListener): def declaration_property(self): localctx = MapCSSParser.Declaration_propertyContext(self, self._ctx, self.state) - self.enterRule(localctx, 42, self.RULE_declaration_property) + self.enterRule(localctx, 44, self.RULE_declaration_property) try: self.enterOuterAlt(localctx, 1) - self.state = 246 + self.state = 250 self.cssident() except RecognitionException as re: localctx.exception = re @@ -1919,20 +1969,20 @@ def exitRule(self, listener:ParseTreeListener): def declaration_value(self): localctx = MapCSSParser.Declaration_valueContext(self, self._ctx, self.state) - self.enterRule(localctx, 44, self.RULE_declaration_value) + self.enterRule(localctx, 46, self.RULE_declaration_value) try: - self.state = 250 + self.state = 254 self._errHandler.sync(self) la_ = self._interp.adaptivePredict(self._input,27,self._ctx) if la_ == 1: self.enterOuterAlt(localctx, 1) - self.state = 248 + self.state = 252 self.single_value() pass elif la_ == 2: self.enterOuterAlt(localctx, 2) - self.state = 249 + self.state = 253 self.functionExpression() pass @@ -1977,19 +2027,19 @@ def exitRule(self, listener:ParseTreeListener): def int_(self): localctx = MapCSSParser.Int_Context(self, self._ctx, self.state) - self.enterRule(localctx, 46, self.RULE_int_) + self.enterRule(localctx, 48, self.RULE_int_) try: - self.state = 254 + self.state = 258 self._errHandler.sync(self) token = self._input.LA(1) if token in [MapCSSParser.POSITIVE_INT]: self.enterOuterAlt(localctx, 1) - self.state = 252 + self.state = 256 localctx.n = self.match(MapCSSParser.POSITIVE_INT) pass elif token in [MapCSSParser.NEGATIVE_INT]: self.enterOuterAlt(localctx, 2) - self.state = 253 + self.state = 257 localctx.n = self.match(MapCSSParser.NEGATIVE_INT) pass else: @@ -2049,39 +2099,39 @@ def exitRule(self, listener:ParseTreeListener): def single_value(self): localctx = MapCSSParser.Single_valueContext(self, self._ctx, self.state) - self.enterRule(localctx, 48, self.RULE_single_value) + self.enterRule(localctx, 50, self.RULE_single_value) try: - self.state = 262 + self.state = 266 self._errHandler.sync(self) token = self._input.LA(1) if token in [MapCSSParser.POSITIVE_INT]: self.enterOuterAlt(localctx, 1) - self.state = 256 + self.state = 260 localctx.v = self.match(MapCSSParser.POSITIVE_INT) pass elif token in [MapCSSParser.NEGATIVE_INT]: self.enterOuterAlt(localctx, 2) - self.state = 257 + self.state = 261 localctx.v = self.match(MapCSSParser.NEGATIVE_INT) pass elif token in [MapCSSParser.POSITIVE_FLOAT]: self.enterOuterAlt(localctx, 3) - self.state = 258 + self.state = 262 localctx.v = self.match(MapCSSParser.POSITIVE_FLOAT) pass elif token in [MapCSSParser.NEGATIVE_FLOAT]: self.enterOuterAlt(localctx, 4) - self.state = 259 + self.state = 263 localctx.v = self.match(MapCSSParser.NEGATIVE_FLOAT) pass elif token in [MapCSSParser.DQUOTED_STRING, MapCSSParser.SQUOTED_STRING]: self.enterOuterAlt(localctx, 5) - self.state = 260 + self.state = 264 self.quoted() pass elif token in [MapCSSParser.OP_MINUS, MapCSSParser.NCOMPONENT]: self.enterOuterAlt(localctx, 6) - self.state = 261 + self.state = 265 self.osmtag() pass else: @@ -2132,11 +2182,11 @@ def exitRule(self, listener:ParseTreeListener): def booleanOperator(self): localctx = MapCSSParser.BooleanOperatorContext(self, self._ctx, self.state) - self.enterRule(localctx, 50, self.RULE_booleanOperator) + self.enterRule(localctx, 52, self.RULE_booleanOperator) self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 264 + self.state = 268 _la = self._input.LA(1) if not((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << MapCSSParser.OP_EQ) | (1 << MapCSSParser.OP_NEQ) | (1 << MapCSSParser.OP_OR) | (1 << MapCSSParser.OP_AND))) != 0)): self._errHandler.recoverInline(self) @@ -2194,11 +2244,11 @@ def exitRule(self, listener:ParseTreeListener): def numericOperator(self): localctx = MapCSSParser.NumericOperatorContext(self, self._ctx, self.state) - self.enterRule(localctx, 52, self.RULE_numericOperator) + self.enterRule(localctx, 54, self.RULE_numericOperator) self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 266 + self.state = 270 _la = self._input.LA(1) if not((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << MapCSSParser.OP_EQ) | (1 << MapCSSParser.OP_NEQ) | (1 << MapCSSParser.OP_LE) | (1 << MapCSSParser.OP_GE) | (1 << MapCSSParser.OP_LT) | (1 << MapCSSParser.OP_GT))) != 0)): self._errHandler.recoverInline(self) @@ -2254,34 +2304,34 @@ def exitRule(self, listener:ParseTreeListener): def valueOperator(self): localctx = MapCSSParser.ValueOperatorContext(self, self._ctx, self.state) - self.enterRule(localctx, 54, self.RULE_valueOperator) + self.enterRule(localctx, 56, self.RULE_valueOperator) try: - self.state = 273 + self.state = 277 self._errHandler.sync(self) token = self._input.LA(1) if token in [MapCSSParser.OP_EQ, MapCSSParser.OP_NEQ, MapCSSParser.OP_LE, MapCSSParser.OP_GE, MapCSSParser.OP_LT, MapCSSParser.OP_GT]: self.enterOuterAlt(localctx, 1) - self.state = 268 + self.state = 272 self.numericOperator() pass elif token in [MapCSSParser.OP_STARTS_WITH]: self.enterOuterAlt(localctx, 2) - self.state = 269 + self.state = 273 self.match(MapCSSParser.OP_STARTS_WITH) pass elif token in [MapCSSParser.OP_ENDS_WITH]: self.enterOuterAlt(localctx, 3) - self.state = 270 + self.state = 274 self.match(MapCSSParser.OP_ENDS_WITH) pass elif token in [MapCSSParser.OP_SUBSTRING]: self.enterOuterAlt(localctx, 4) - self.state = 271 + self.state = 275 self.match(MapCSSParser.OP_SUBSTRING) pass elif token in [MapCSSParser.OP_CONTAINS]: self.enterOuterAlt(localctx, 5) - self.state = 272 + self.state = 276 self.match(MapCSSParser.OP_CONTAINS) pass else: @@ -2326,11 +2376,11 @@ def exitRule(self, listener:ParseTreeListener): def regexOperator(self): localctx = MapCSSParser.RegexOperatorContext(self, self._ctx, self.state) - self.enterRule(localctx, 56, self.RULE_regexOperator) + self.enterRule(localctx, 58, self.RULE_regexOperator) self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 275 + self.state = 279 _la = self._input.LA(1) if not(_la==MapCSSParser.OP_MATCH or _la==MapCSSParser.OP_NOT_MATCH): self._errHandler.recoverInline(self) @@ -2418,64 +2468,64 @@ def booleanExpression(self, _p:int=0): _parentState = self.state localctx = MapCSSParser.BooleanExpressionContext(self, self._ctx, _parentState) _prevctx = localctx - _startState = 58 - self.enterRecursionRule(localctx, 58, self.RULE_booleanExpression, _p) + _startState = 60 + self.enterRecursionRule(localctx, 60, self.RULE_booleanExpression, _p) try: self.enterOuterAlt(localctx, 1) - self.state = 297 + self.state = 301 self._errHandler.sync(self) la_ = self._interp.adaptivePredict(self._input,31,self._ctx) if la_ == 1: - self.state = 278 + self.state = 282 localctx.op = self.match(MapCSSParser.PAR_OPEN) - self.state = 279 + self.state = 283 self.booleanExpression(0) - self.state = 280 + self.state = 284 self.match(MapCSSParser.PAR_CLOSE) pass elif la_ == 2: - self.state = 282 + self.state = 286 localctx.op = self.match(MapCSSParser.OP_NOT) - self.state = 283 + self.state = 287 self.booleanExpression(6) pass elif la_ == 3: - self.state = 284 + self.state = 288 self.valueExpression(0) - self.state = 285 + self.state = 289 self.valueOperator() - self.state = 286 + self.state = 290 self.valueExpression(0) pass elif la_ == 4: - self.state = 288 + self.state = 292 self.valueExpression(0) - self.state = 289 + self.state = 293 self.regexOperator() - self.state = 290 + self.state = 294 self.regexExpression() pass elif la_ == 5: - self.state = 292 + self.state = 296 self.regexExpression() - self.state = 293 + self.state = 297 self.regexOperator() - self.state = 294 + self.state = 298 self.regexExpression() pass elif la_ == 6: - self.state = 296 + self.state = 300 self.functionExpression() pass self._ctx.stop = self._input.LT(-1) - self.state = 305 + self.state = 309 self._errHandler.sync(self) _alt = self._interp.adaptivePredict(self._input,32,self._ctx) while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: @@ -2485,15 +2535,15 @@ def booleanExpression(self, _p:int=0): _prevctx = localctx localctx = MapCSSParser.BooleanExpressionContext(self, _parentctx, _parentState) self.pushNewRecursionContext(localctx, _startState, self.RULE_booleanExpression) - self.state = 299 + self.state = 303 if not self.precpred(self._ctx, 5): from antlr4.error.Errors import FailedPredicateException raise FailedPredicateException(self, "self.precpred(self._ctx, 5)") - self.state = 300 + self.state = 304 self.booleanOperator() - self.state = 301 + self.state = 305 self.booleanExpression(6) - self.state = 307 + self.state = 311 self._errHandler.sync(self) _alt = self._interp.adaptivePredict(self._input,32,self._ctx) @@ -2568,36 +2618,36 @@ def valueExpression(self, _p:int=0): _parentState = self.state localctx = MapCSSParser.ValueExpressionContext(self, self._ctx, _parentState) _prevctx = localctx - _startState = 60 - self.enterRecursionRule(localctx, 60, self.RULE_valueExpression, _p) + _startState = 62 + self.enterRecursionRule(localctx, 62, self.RULE_valueExpression, _p) self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 315 + self.state = 319 self._errHandler.sync(self) la_ = self._interp.adaptivePredict(self._input,33,self._ctx) if la_ == 1: - self.state = 309 + self.state = 313 localctx.op = self.match(MapCSSParser.PAR_OPEN) - self.state = 310 + self.state = 314 self.valueExpression(0) - self.state = 311 + self.state = 315 self.match(MapCSSParser.PAR_CLOSE) pass elif la_ == 2: - self.state = 313 + self.state = 317 self.primaryExpression() pass elif la_ == 3: - self.state = 314 + self.state = 318 self.functionExpression() pass self._ctx.stop = self._input.LT(-1) - self.state = 322 + self.state = 326 self._errHandler.sync(self) _alt = self._interp.adaptivePredict(self._input,34,self._ctx) while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: @@ -2607,11 +2657,11 @@ def valueExpression(self, _p:int=0): _prevctx = localctx localctx = MapCSSParser.ValueExpressionContext(self, _parentctx, _parentState) self.pushNewRecursionContext(localctx, _startState, self.RULE_valueExpression) - self.state = 317 + self.state = 321 if not self.precpred(self._ctx, 3): from antlr4.error.Errors import FailedPredicateException raise FailedPredicateException(self, "self.precpred(self._ctx, 3)") - self.state = 318 + self.state = 322 localctx.op = self._input.LT(1) _la = self._input.LA(1) if not((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << MapCSSParser.OP_MUL) | (1 << MapCSSParser.OP_DIV) | (1 << MapCSSParser.OP_MOD) | (1 << MapCSSParser.OP_PLUS) | (1 << MapCSSParser.OP_MINUS))) != 0)): @@ -2619,9 +2669,9 @@ def valueExpression(self, _p:int=0): else: self._errHandler.reportMatch(self) self.consume() - self.state = 319 + self.state = 323 self.valueExpression(4) - self.state = 324 + self.state = 328 self._errHandler.sync(self) _alt = self._interp.adaptivePredict(self._input,34,self._ctx) @@ -2665,19 +2715,19 @@ def exitRule(self, listener:ParseTreeListener): def regexExpression(self): localctx = MapCSSParser.RegexExpressionContext(self, self._ctx, self.state) - self.enterRule(localctx, 62, self.RULE_regexExpression) + self.enterRule(localctx, 64, self.RULE_regexExpression) try: - self.state = 327 + self.state = 331 self._errHandler.sync(self) token = self._input.LA(1) if token in [MapCSSParser.DQUOTED_STRING, MapCSSParser.SQUOTED_STRING]: self.enterOuterAlt(localctx, 1) - self.state = 325 + self.state = 329 self.quoted() pass elif token in [MapCSSParser.REGEXP]: self.enterOuterAlt(localctx, 2) - self.state = 326 + self.state = 330 self.match(MapCSSParser.REGEXP) pass else: @@ -2740,35 +2790,35 @@ def exitRule(self, listener:ParseTreeListener): def functionExpression(self): localctx = MapCSSParser.FunctionExpressionContext(self, self._ctx, self.state) - self.enterRule(localctx, 64, self.RULE_functionExpression) + self.enterRule(localctx, 66, self.RULE_functionExpression) self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 329 + self.state = 333 localctx.f = self.cssident() - self.state = 330 + self.state = 334 self.match(MapCSSParser.PAR_OPEN) - self.state = 339 + self.state = 343 self._errHandler.sync(self) _la = self._input.LA(1) if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << MapCSSParser.PAR_OPEN) | (1 << MapCSSParser.OP_MUL) | (1 << MapCSSParser.OP_MINUS) | (1 << MapCSSParser.NCOMPONENT) | (1 << MapCSSParser.DQUOTED_STRING) | (1 << MapCSSParser.SQUOTED_STRING) | (1 << MapCSSParser.POSITIVE_INT) | (1 << MapCSSParser.NEGATIVE_INT) | (1 << MapCSSParser.POSITIVE_FLOAT) | (1 << MapCSSParser.NEGATIVE_FLOAT))) != 0): - self.state = 331 + self.state = 335 self.valueExpression(0) - self.state = 336 + self.state = 340 self._errHandler.sync(self) _la = self._input.LA(1) while _la==MapCSSParser.COMMA: - self.state = 332 + self.state = 336 self.match(MapCSSParser.COMMA) - self.state = 333 + self.state = 337 self.valueExpression(0) - self.state = 338 + self.state = 342 self._errHandler.sync(self) _la = self._input.LA(1) - self.state = 341 + self.state = 345 self.match(MapCSSParser.PAR_CLOSE) except RecognitionException as re: localctx.exception = re @@ -2831,69 +2881,69 @@ def exitRule(self, listener:ParseTreeListener): def primaryExpression(self): localctx = MapCSSParser.PrimaryExpressionContext(self, self._ctx, self.state) - self.enterRule(localctx, 66, self.RULE_primaryExpression) + self.enterRule(localctx, 68, self.RULE_primaryExpression) self._la = 0 # Token type try: - self.state = 357 + self.state = 361 self._errHandler.sync(self) la_ = self._interp.adaptivePredict(self._input,40,self._ctx) if la_ == 1: self.enterOuterAlt(localctx, 1) - self.state = 343 + self.state = 347 localctx.v = self.match(MapCSSParser.POSITIVE_FLOAT) pass elif la_ == 2: self.enterOuterAlt(localctx, 2) - self.state = 344 + self.state = 348 localctx.v = self.match(MapCSSParser.POSITIVE_INT) pass elif la_ == 3: self.enterOuterAlt(localctx, 3) - self.state = 345 + self.state = 349 localctx.v = self.match(MapCSSParser.NEGATIVE_FLOAT) pass elif la_ == 4: self.enterOuterAlt(localctx, 4) - self.state = 346 + self.state = 350 localctx.v = self.match(MapCSSParser.NEGATIVE_INT) pass elif la_ == 5: self.enterOuterAlt(localctx, 5) - self.state = 348 + self.state = 352 self._errHandler.sync(self) _la = self._input.LA(1) if _la==MapCSSParser.OP_MUL: - self.state = 347 + self.state = 351 self.match(MapCSSParser.OP_MUL) - self.state = 350 + self.state = 354 self.quoted() pass elif la_ == 6: self.enterOuterAlt(localctx, 6) - self.state = 352 + self.state = 356 self._errHandler.sync(self) _la = self._input.LA(1) if _la==MapCSSParser.OP_MUL: - self.state = 351 + self.state = 355 self.match(MapCSSParser.OP_MUL) - self.state = 354 + self.state = 358 self.osmtag() pass elif la_ == 7: self.enterOuterAlt(localctx, 7) - self.state = 355 + self.state = 359 self.match(MapCSSParser.OP_MUL) - self.state = 356 + self.state = 360 self.regexExpression() pass @@ -2911,8 +2961,8 @@ def primaryExpression(self): def sempred(self, localctx:RuleContext, ruleIndex:int, predIndex:int): if self._predicates == None: self._predicates = dict() - self._predicates[29] = self.booleanExpression_sempred - self._predicates[30] = self.valueExpression_sempred + self._predicates[30] = self.booleanExpression_sempred + self._predicates[31] = self.valueExpression_sempred pred = self._predicates.get(ruleIndex, None) if pred is None: raise Exception("No predicate with index:" + str(ruleIndex))