diff --git a/src/g4/activityParser.g4 b/src/g4/activityParser.g4 index bb156ec1..9eea415a 100644 --- a/src/g4/activityParser.g4 +++ b/src/g4/activityParser.g4 @@ -45,11 +45,11 @@ ifBlock ; elseIfBlock - : ELSEIF condition THEN? branchLabel? (statement | ARROW)* + : inboundBranchLabel? ELSEIF condition THEN? branchLabel? (statement | ARROW)* ; elseBlock - : (ELSE branchLabel? (statement | ARROW)*) + : inboundBranchLabel? ELSE branchLabel? (statement | ARROW)* ; switchStatement @@ -137,6 +137,10 @@ conditionContent : (ACTIVITY_LABEL | ACTIVITY_CONTENT)+ ; +inboundBranchLabel + : LPAREN ACTIVITY_LABEL RPAREN + ; + branchLabel : LPAREN ACTIVITY_LABEL RPAREN ; diff --git a/src/generated-parser/activityParser.interp b/src/generated-parser/activityParser.interp index c9589d1c..950a23b5 100644 --- a/src/generated-parser/activityParser.interp +++ b/src/generated-parser/activityParser.interp @@ -160,9 +160,10 @@ swimlane condition comparisonOperator conditionContent +inboundBranchLabel branchLabel stereotypeActivity atn: -[4, 1, 66, 332, 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, 1, 0, 3, 0, 52, 8, 0, 1, 0, 5, 0, 55, 8, 0, 10, 0, 12, 0, 58, 9, 0, 1, 0, 3, 0, 61, 8, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 81, 8, 1, 1, 2, 3, 2, 84, 8, 2, 1, 2, 1, 2, 1, 3, 1, 3, 5, 3, 90, 8, 3, 10, 3, 12, 3, 93, 9, 3, 1, 3, 3, 3, 96, 8, 3, 1, 3, 1, 3, 1, 4, 1, 4, 1, 4, 3, 4, 103, 8, 4, 1, 4, 3, 4, 106, 8, 4, 1, 4, 1, 4, 5, 4, 110, 8, 4, 10, 4, 12, 4, 113, 9, 4, 1, 5, 1, 5, 1, 5, 3, 5, 118, 8, 5, 1, 5, 3, 5, 121, 8, 5, 1, 5, 1, 5, 5, 5, 125, 8, 5, 10, 5, 12, 5, 128, 9, 5, 1, 6, 1, 6, 3, 6, 132, 8, 6, 1, 6, 1, 6, 5, 6, 136, 8, 6, 10, 6, 12, 6, 139, 9, 6, 1, 7, 1, 7, 1, 7, 5, 7, 144, 8, 7, 10, 7, 12, 7, 147, 9, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 8, 5, 8, 155, 8, 8, 10, 8, 12, 8, 158, 9, 8, 1, 9, 1, 9, 1, 9, 5, 9, 163, 8, 9, 10, 9, 12, 9, 166, 9, 9, 1, 9, 1, 9, 3, 9, 170, 8, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 3, 9, 179, 8, 9, 1, 10, 1, 10, 1, 10, 1, 10, 5, 10, 185, 8, 10, 10, 10, 12, 10, 188, 9, 10, 1, 10, 1, 10, 1, 10, 1, 10, 3, 10, 194, 8, 10, 1, 11, 1, 11, 1, 11, 5, 11, 199, 8, 11, 10, 11, 12, 11, 202, 9, 11, 1, 11, 1, 11, 1, 11, 5, 11, 207, 8, 11, 10, 11, 12, 11, 210, 9, 11, 5, 11, 212, 8, 11, 10, 11, 12, 11, 215, 9, 11, 1, 11, 1, 11, 1, 11, 1, 11, 3, 11, 221, 8, 11, 1, 12, 1, 12, 1, 12, 5, 12, 226, 8, 12, 10, 12, 12, 12, 229, 9, 12, 1, 12, 1, 12, 1, 12, 5, 12, 234, 8, 12, 10, 12, 12, 12, 237, 9, 12, 5, 12, 239, 8, 12, 10, 12, 12, 12, 242, 9, 12, 1, 12, 1, 12, 1, 13, 1, 13, 3, 13, 248, 8, 13, 1, 13, 3, 13, 251, 8, 13, 1, 13, 1, 13, 1, 13, 5, 13, 256, 8, 13, 10, 13, 12, 13, 259, 9, 13, 1, 13, 3, 13, 262, 8, 13, 1, 14, 1, 14, 3, 14, 266, 8, 14, 1, 14, 1, 14, 1, 14, 5, 14, 271, 8, 14, 10, 14, 12, 14, 274, 9, 14, 1, 14, 1, 14, 1, 15, 1, 15, 5, 15, 280, 8, 15, 10, 15, 12, 15, 283, 9, 15, 1, 15, 1, 15, 1, 16, 1, 16, 1, 17, 1, 17, 1, 18, 1, 18, 1, 18, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 3, 19, 299, 8, 19, 1, 19, 3, 19, 302, 8, 19, 1, 19, 1, 19, 3, 19, 306, 8, 19, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 3, 20, 316, 8, 20, 1, 21, 1, 21, 1, 22, 4, 22, 321, 8, 22, 11, 22, 12, 22, 322, 1, 23, 1, 23, 1, 23, 1, 23, 1, 24, 1, 24, 1, 24, 1, 24, 0, 0, 25, 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, 0, 4, 1, 0, 23, 24, 1, 0, 6, 7, 2, 0, 42, 42, 46, 46, 1, 0, 60, 61, 375, 0, 51, 1, 0, 0, 0, 2, 80, 1, 0, 0, 0, 4, 83, 1, 0, 0, 0, 6, 87, 1, 0, 0, 0, 8, 99, 1, 0, 0, 0, 10, 114, 1, 0, 0, 0, 12, 129, 1, 0, 0, 0, 14, 140, 1, 0, 0, 0, 16, 150, 1, 0, 0, 0, 18, 159, 1, 0, 0, 0, 20, 180, 1, 0, 0, 0, 22, 195, 1, 0, 0, 0, 24, 222, 1, 0, 0, 0, 26, 245, 1, 0, 0, 0, 28, 263, 1, 0, 0, 0, 30, 277, 1, 0, 0, 0, 32, 286, 1, 0, 0, 0, 34, 288, 1, 0, 0, 0, 36, 290, 1, 0, 0, 0, 38, 293, 1, 0, 0, 0, 40, 307, 1, 0, 0, 0, 42, 317, 1, 0, 0, 0, 44, 320, 1, 0, 0, 0, 46, 324, 1, 0, 0, 0, 48, 328, 1, 0, 0, 0, 50, 52, 5, 1, 0, 0, 51, 50, 1, 0, 0, 0, 51, 52, 1, 0, 0, 0, 52, 56, 1, 0, 0, 0, 53, 55, 3, 2, 1, 0, 54, 53, 1, 0, 0, 0, 55, 58, 1, 0, 0, 0, 56, 54, 1, 0, 0, 0, 56, 57, 1, 0, 0, 0, 57, 60, 1, 0, 0, 0, 58, 56, 1, 0, 0, 0, 59, 61, 5, 2, 0, 0, 60, 59, 1, 0, 0, 0, 60, 61, 1, 0, 0, 0, 61, 1, 1, 0, 0, 0, 62, 81, 3, 4, 2, 0, 63, 81, 5, 3, 0, 0, 64, 81, 5, 4, 0, 0, 65, 81, 5, 5, 0, 0, 66, 81, 3, 6, 3, 0, 67, 81, 3, 14, 7, 0, 68, 81, 3, 18, 9, 0, 69, 81, 3, 20, 10, 0, 70, 81, 3, 22, 11, 0, 71, 81, 3, 24, 12, 0, 72, 81, 3, 26, 13, 0, 73, 81, 3, 28, 14, 0, 74, 81, 3, 30, 15, 0, 75, 81, 3, 32, 16, 0, 76, 81, 3, 34, 17, 0, 77, 81, 3, 36, 18, 0, 78, 81, 3, 38, 19, 0, 79, 81, 5, 57, 0, 0, 80, 62, 1, 0, 0, 0, 80, 63, 1, 0, 0, 0, 80, 64, 1, 0, 0, 0, 80, 65, 1, 0, 0, 0, 80, 66, 1, 0, 0, 0, 80, 67, 1, 0, 0, 0, 80, 68, 1, 0, 0, 0, 80, 69, 1, 0, 0, 0, 80, 70, 1, 0, 0, 0, 80, 71, 1, 0, 0, 0, 80, 72, 1, 0, 0, 0, 80, 73, 1, 0, 0, 0, 80, 74, 1, 0, 0, 0, 80, 75, 1, 0, 0, 0, 80, 76, 1, 0, 0, 0, 80, 77, 1, 0, 0, 0, 80, 78, 1, 0, 0, 0, 80, 79, 1, 0, 0, 0, 81, 3, 1, 0, 0, 0, 82, 84, 5, 55, 0, 0, 83, 82, 1, 0, 0, 0, 83, 84, 1, 0, 0, 0, 84, 85, 1, 0, 0, 0, 85, 86, 5, 60, 0, 0, 86, 5, 1, 0, 0, 0, 87, 91, 3, 8, 4, 0, 88, 90, 3, 10, 5, 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, 95, 1, 0, 0, 0, 93, 91, 1, 0, 0, 0, 94, 96, 3, 12, 6, 0, 95, 94, 1, 0, 0, 0, 95, 96, 1, 0, 0, 0, 96, 97, 1, 0, 0, 0, 97, 98, 5, 12, 0, 0, 98, 7, 1, 0, 0, 0, 99, 100, 5, 8, 0, 0, 100, 102, 3, 40, 20, 0, 101, 103, 5, 9, 0, 0, 102, 101, 1, 0, 0, 0, 102, 103, 1, 0, 0, 0, 103, 105, 1, 0, 0, 0, 104, 106, 3, 46, 23, 0, 105, 104, 1, 0, 0, 0, 105, 106, 1, 0, 0, 0, 106, 111, 1, 0, 0, 0, 107, 110, 3, 2, 1, 0, 108, 110, 5, 57, 0, 0, 109, 107, 1, 0, 0, 0, 109, 108, 1, 0, 0, 0, 110, 113, 1, 0, 0, 0, 111, 109, 1, 0, 0, 0, 111, 112, 1, 0, 0, 0, 112, 9, 1, 0, 0, 0, 113, 111, 1, 0, 0, 0, 114, 115, 5, 11, 0, 0, 115, 117, 3, 40, 20, 0, 116, 118, 5, 9, 0, 0, 117, 116, 1, 0, 0, 0, 117, 118, 1, 0, 0, 0, 118, 120, 1, 0, 0, 0, 119, 121, 3, 46, 23, 0, 120, 119, 1, 0, 0, 0, 120, 121, 1, 0, 0, 0, 121, 126, 1, 0, 0, 0, 122, 125, 3, 2, 1, 0, 123, 125, 5, 57, 0, 0, 124, 122, 1, 0, 0, 0, 124, 123, 1, 0, 0, 0, 125, 128, 1, 0, 0, 0, 126, 124, 1, 0, 0, 0, 126, 127, 1, 0, 0, 0, 127, 11, 1, 0, 0, 0, 128, 126, 1, 0, 0, 0, 129, 131, 5, 10, 0, 0, 130, 132, 3, 46, 23, 0, 131, 130, 1, 0, 0, 0, 131, 132, 1, 0, 0, 0, 132, 137, 1, 0, 0, 0, 133, 136, 3, 2, 1, 0, 134, 136, 5, 57, 0, 0, 135, 133, 1, 0, 0, 0, 135, 134, 1, 0, 0, 0, 136, 139, 1, 0, 0, 0, 137, 135, 1, 0, 0, 0, 137, 138, 1, 0, 0, 0, 138, 13, 1, 0, 0, 0, 139, 137, 1, 0, 0, 0, 140, 141, 5, 17, 0, 0, 141, 145, 3, 40, 20, 0, 142, 144, 3, 16, 8, 0, 143, 142, 1, 0, 0, 0, 144, 147, 1, 0, 0, 0, 145, 143, 1, 0, 0, 0, 145, 146, 1, 0, 0, 0, 146, 148, 1, 0, 0, 0, 147, 145, 1, 0, 0, 0, 148, 149, 5, 19, 0, 0, 149, 15, 1, 0, 0, 0, 150, 151, 5, 18, 0, 0, 151, 156, 3, 40, 20, 0, 152, 155, 3, 2, 1, 0, 153, 155, 5, 57, 0, 0, 154, 152, 1, 0, 0, 0, 154, 153, 1, 0, 0, 0, 155, 158, 1, 0, 0, 0, 156, 154, 1, 0, 0, 0, 156, 157, 1, 0, 0, 0, 157, 17, 1, 0, 0, 0, 158, 156, 1, 0, 0, 0, 159, 164, 5, 13, 0, 0, 160, 163, 3, 2, 1, 0, 161, 163, 5, 57, 0, 0, 162, 160, 1, 0, 0, 0, 162, 161, 1, 0, 0, 0, 163, 166, 1, 0, 0, 0, 164, 162, 1, 0, 0, 0, 164, 165, 1, 0, 0, 0, 165, 169, 1, 0, 0, 0, 166, 164, 1, 0, 0, 0, 167, 168, 5, 30, 0, 0, 168, 170, 3, 4, 2, 0, 169, 167, 1, 0, 0, 0, 169, 170, 1, 0, 0, 0, 170, 171, 1, 0, 0, 0, 171, 172, 5, 14, 0, 0, 172, 178, 3, 40, 20, 0, 173, 174, 5, 42, 0, 0, 174, 175, 3, 46, 23, 0, 175, 176, 5, 20, 0, 0, 176, 177, 3, 46, 23, 0, 177, 179, 1, 0, 0, 0, 178, 173, 1, 0, 0, 0, 178, 179, 1, 0, 0, 0, 179, 19, 1, 0, 0, 0, 180, 181, 5, 15, 0, 0, 181, 186, 3, 40, 20, 0, 182, 185, 3, 2, 1, 0, 183, 185, 5, 57, 0, 0, 184, 182, 1, 0, 0, 0, 184, 183, 1, 0, 0, 0, 185, 188, 1, 0, 0, 0, 186, 184, 1, 0, 0, 0, 186, 187, 1, 0, 0, 0, 187, 189, 1, 0, 0, 0, 188, 186, 1, 0, 0, 0, 189, 193, 5, 16, 0, 0, 190, 191, 5, 47, 0, 0, 191, 192, 5, 61, 0, 0, 192, 194, 5, 48, 0, 0, 193, 190, 1, 0, 0, 0, 193, 194, 1, 0, 0, 0, 194, 21, 1, 0, 0, 0, 195, 200, 5, 21, 0, 0, 196, 199, 3, 2, 1, 0, 197, 199, 5, 57, 0, 0, 198, 196, 1, 0, 0, 0, 198, 197, 1, 0, 0, 0, 199, 202, 1, 0, 0, 0, 200, 198, 1, 0, 0, 0, 200, 201, 1, 0, 0, 0, 201, 213, 1, 0, 0, 0, 202, 200, 1, 0, 0, 0, 203, 208, 5, 22, 0, 0, 204, 207, 3, 2, 1, 0, 205, 207, 5, 57, 0, 0, 206, 204, 1, 0, 0, 0, 206, 205, 1, 0, 0, 0, 207, 210, 1, 0, 0, 0, 208, 206, 1, 0, 0, 0, 208, 209, 1, 0, 0, 0, 209, 212, 1, 0, 0, 0, 210, 208, 1, 0, 0, 0, 211, 203, 1, 0, 0, 0, 212, 215, 1, 0, 0, 0, 213, 211, 1, 0, 0, 0, 213, 214, 1, 0, 0, 0, 214, 216, 1, 0, 0, 0, 215, 213, 1, 0, 0, 0, 216, 220, 7, 0, 0, 0, 217, 218, 5, 49, 0, 0, 218, 219, 5, 61, 0, 0, 219, 221, 5, 50, 0, 0, 220, 217, 1, 0, 0, 0, 220, 221, 1, 0, 0, 0, 221, 23, 1, 0, 0, 0, 222, 227, 5, 25, 0, 0, 223, 226, 3, 2, 1, 0, 224, 226, 5, 57, 0, 0, 225, 223, 1, 0, 0, 0, 225, 224, 1, 0, 0, 0, 226, 229, 1, 0, 0, 0, 227, 225, 1, 0, 0, 0, 227, 228, 1, 0, 0, 0, 228, 240, 1, 0, 0, 0, 229, 227, 1, 0, 0, 0, 230, 235, 5, 26, 0, 0, 231, 234, 3, 2, 1, 0, 232, 234, 5, 57, 0, 0, 233, 231, 1, 0, 0, 0, 233, 232, 1, 0, 0, 0, 234, 237, 1, 0, 0, 0, 235, 233, 1, 0, 0, 0, 235, 236, 1, 0, 0, 0, 236, 239, 1, 0, 0, 0, 237, 235, 1, 0, 0, 0, 238, 230, 1, 0, 0, 0, 239, 242, 1, 0, 0, 0, 240, 238, 1, 0, 0, 0, 240, 241, 1, 0, 0, 0, 241, 243, 1, 0, 0, 0, 242, 240, 1, 0, 0, 0, 243, 244, 5, 27, 0, 0, 244, 25, 1, 0, 0, 0, 245, 247, 5, 32, 0, 0, 246, 248, 5, 41, 0, 0, 247, 246, 1, 0, 0, 0, 247, 248, 1, 0, 0, 0, 248, 250, 1, 0, 0, 0, 249, 251, 7, 1, 0, 0, 250, 249, 1, 0, 0, 0, 250, 251, 1, 0, 0, 0, 251, 252, 1, 0, 0, 0, 252, 257, 5, 61, 0, 0, 253, 256, 3, 2, 1, 0, 254, 256, 5, 57, 0, 0, 255, 253, 1, 0, 0, 0, 255, 254, 1, 0, 0, 0, 256, 259, 1, 0, 0, 0, 257, 255, 1, 0, 0, 0, 257, 258, 1, 0, 0, 0, 258, 261, 1, 0, 0, 0, 259, 257, 1, 0, 0, 0, 260, 262, 5, 33, 0, 0, 261, 260, 1, 0, 0, 0, 261, 262, 1, 0, 0, 0, 262, 27, 1, 0, 0, 0, 263, 265, 5, 34, 0, 0, 264, 266, 5, 61, 0, 0, 265, 264, 1, 0, 0, 0, 265, 266, 1, 0, 0, 0, 266, 267, 1, 0, 0, 0, 267, 272, 5, 49, 0, 0, 268, 271, 3, 2, 1, 0, 269, 271, 5, 57, 0, 0, 270, 268, 1, 0, 0, 0, 270, 269, 1, 0, 0, 0, 271, 274, 1, 0, 0, 0, 272, 270, 1, 0, 0, 0, 272, 273, 1, 0, 0, 0, 273, 275, 1, 0, 0, 0, 274, 272, 1, 0, 0, 0, 275, 276, 5, 50, 0, 0, 276, 29, 1, 0, 0, 0, 277, 281, 5, 35, 0, 0, 278, 280, 3, 2, 1, 0, 279, 278, 1, 0, 0, 0, 280, 283, 1, 0, 0, 0, 281, 279, 1, 0, 0, 0, 281, 282, 1, 0, 0, 0, 282, 284, 1, 0, 0, 0, 283, 281, 1, 0, 0, 0, 284, 285, 5, 36, 0, 0, 285, 31, 1, 0, 0, 0, 286, 287, 5, 28, 0, 0, 287, 33, 1, 0, 0, 0, 288, 289, 5, 29, 0, 0, 289, 35, 1, 0, 0, 0, 290, 291, 5, 31, 0, 0, 291, 292, 5, 62, 0, 0, 292, 37, 1, 0, 0, 0, 293, 298, 5, 53, 0, 0, 294, 295, 5, 51, 0, 0, 295, 296, 5, 55, 0, 0, 296, 297, 5, 53, 0, 0, 297, 299, 5, 52, 0, 0, 298, 294, 1, 0, 0, 0, 298, 299, 1, 0, 0, 0, 299, 301, 1, 0, 0, 0, 300, 302, 5, 62, 0, 0, 301, 300, 1, 0, 0, 0, 301, 302, 1, 0, 0, 0, 302, 303, 1, 0, 0, 0, 303, 305, 5, 53, 0, 0, 304, 306, 5, 61, 0, 0, 305, 304, 1, 0, 0, 0, 305, 306, 1, 0, 0, 0, 306, 39, 1, 0, 0, 0, 307, 308, 5, 47, 0, 0, 308, 309, 3, 44, 22, 0, 309, 315, 5, 48, 0, 0, 310, 311, 3, 42, 21, 0, 311, 312, 5, 47, 0, 0, 312, 313, 3, 44, 22, 0, 313, 314, 5, 48, 0, 0, 314, 316, 1, 0, 0, 0, 315, 310, 1, 0, 0, 0, 315, 316, 1, 0, 0, 0, 316, 41, 1, 0, 0, 0, 317, 318, 7, 2, 0, 0, 318, 43, 1, 0, 0, 0, 319, 321, 7, 3, 0, 0, 320, 319, 1, 0, 0, 0, 321, 322, 1, 0, 0, 0, 322, 320, 1, 0, 0, 0, 322, 323, 1, 0, 0, 0, 323, 45, 1, 0, 0, 0, 324, 325, 5, 47, 0, 0, 325, 326, 5, 61, 0, 0, 326, 327, 5, 48, 0, 0, 327, 47, 1, 0, 0, 0, 328, 329, 3, 4, 2, 0, 329, 330, 5, 56, 0, 0, 330, 49, 1, 0, 0, 0, 53, 51, 56, 60, 80, 83, 91, 95, 102, 105, 109, 111, 117, 120, 124, 126, 131, 135, 137, 145, 154, 156, 162, 164, 169, 178, 184, 186, 193, 198, 200, 206, 208, 213, 220, 225, 227, 233, 235, 240, 247, 250, 255, 257, 261, 265, 270, 272, 281, 298, 301, 305, 315, 322] \ No newline at end of file +[4, 1, 66, 344, 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, 1, 0, 3, 0, 54, 8, 0, 1, 0, 5, 0, 57, 8, 0, 10, 0, 12, 0, 60, 9, 0, 1, 0, 3, 0, 63, 8, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 83, 8, 1, 1, 2, 3, 2, 86, 8, 2, 1, 2, 1, 2, 1, 3, 1, 3, 5, 3, 92, 8, 3, 10, 3, 12, 3, 95, 9, 3, 1, 3, 3, 3, 98, 8, 3, 1, 3, 1, 3, 1, 4, 1, 4, 1, 4, 3, 4, 105, 8, 4, 1, 4, 3, 4, 108, 8, 4, 1, 4, 1, 4, 5, 4, 112, 8, 4, 10, 4, 12, 4, 115, 9, 4, 1, 5, 3, 5, 118, 8, 5, 1, 5, 1, 5, 1, 5, 3, 5, 123, 8, 5, 1, 5, 3, 5, 126, 8, 5, 1, 5, 1, 5, 5, 5, 130, 8, 5, 10, 5, 12, 5, 133, 9, 5, 1, 6, 3, 6, 136, 8, 6, 1, 6, 1, 6, 3, 6, 140, 8, 6, 1, 6, 1, 6, 5, 6, 144, 8, 6, 10, 6, 12, 6, 147, 9, 6, 1, 7, 1, 7, 1, 7, 5, 7, 152, 8, 7, 10, 7, 12, 7, 155, 9, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 8, 5, 8, 163, 8, 8, 10, 8, 12, 8, 166, 9, 8, 1, 9, 1, 9, 1, 9, 5, 9, 171, 8, 9, 10, 9, 12, 9, 174, 9, 9, 1, 9, 1, 9, 3, 9, 178, 8, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 3, 9, 187, 8, 9, 1, 10, 1, 10, 1, 10, 1, 10, 5, 10, 193, 8, 10, 10, 10, 12, 10, 196, 9, 10, 1, 10, 1, 10, 1, 10, 1, 10, 3, 10, 202, 8, 10, 1, 11, 1, 11, 1, 11, 5, 11, 207, 8, 11, 10, 11, 12, 11, 210, 9, 11, 1, 11, 1, 11, 1, 11, 5, 11, 215, 8, 11, 10, 11, 12, 11, 218, 9, 11, 5, 11, 220, 8, 11, 10, 11, 12, 11, 223, 9, 11, 1, 11, 1, 11, 1, 11, 1, 11, 3, 11, 229, 8, 11, 1, 12, 1, 12, 1, 12, 5, 12, 234, 8, 12, 10, 12, 12, 12, 237, 9, 12, 1, 12, 1, 12, 1, 12, 5, 12, 242, 8, 12, 10, 12, 12, 12, 245, 9, 12, 5, 12, 247, 8, 12, 10, 12, 12, 12, 250, 9, 12, 1, 12, 1, 12, 1, 13, 1, 13, 3, 13, 256, 8, 13, 1, 13, 3, 13, 259, 8, 13, 1, 13, 1, 13, 1, 13, 5, 13, 264, 8, 13, 10, 13, 12, 13, 267, 9, 13, 1, 13, 3, 13, 270, 8, 13, 1, 14, 1, 14, 3, 14, 274, 8, 14, 1, 14, 1, 14, 1, 14, 5, 14, 279, 8, 14, 10, 14, 12, 14, 282, 9, 14, 1, 14, 1, 14, 1, 15, 1, 15, 5, 15, 288, 8, 15, 10, 15, 12, 15, 291, 9, 15, 1, 15, 1, 15, 1, 16, 1, 16, 1, 17, 1, 17, 1, 18, 1, 18, 1, 18, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 3, 19, 307, 8, 19, 1, 19, 3, 19, 310, 8, 19, 1, 19, 1, 19, 3, 19, 314, 8, 19, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 3, 20, 324, 8, 20, 1, 21, 1, 21, 1, 22, 4, 22, 329, 8, 22, 11, 22, 12, 22, 330, 1, 23, 1, 23, 1, 23, 1, 23, 1, 24, 1, 24, 1, 24, 1, 24, 1, 25, 1, 25, 1, 25, 1, 25, 0, 0, 26, 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, 0, 4, 1, 0, 23, 24, 1, 0, 6, 7, 2, 0, 42, 42, 46, 46, 1, 0, 60, 61, 388, 0, 53, 1, 0, 0, 0, 2, 82, 1, 0, 0, 0, 4, 85, 1, 0, 0, 0, 6, 89, 1, 0, 0, 0, 8, 101, 1, 0, 0, 0, 10, 117, 1, 0, 0, 0, 12, 135, 1, 0, 0, 0, 14, 148, 1, 0, 0, 0, 16, 158, 1, 0, 0, 0, 18, 167, 1, 0, 0, 0, 20, 188, 1, 0, 0, 0, 22, 203, 1, 0, 0, 0, 24, 230, 1, 0, 0, 0, 26, 253, 1, 0, 0, 0, 28, 271, 1, 0, 0, 0, 30, 285, 1, 0, 0, 0, 32, 294, 1, 0, 0, 0, 34, 296, 1, 0, 0, 0, 36, 298, 1, 0, 0, 0, 38, 301, 1, 0, 0, 0, 40, 315, 1, 0, 0, 0, 42, 325, 1, 0, 0, 0, 44, 328, 1, 0, 0, 0, 46, 332, 1, 0, 0, 0, 48, 336, 1, 0, 0, 0, 50, 340, 1, 0, 0, 0, 52, 54, 5, 1, 0, 0, 53, 52, 1, 0, 0, 0, 53, 54, 1, 0, 0, 0, 54, 58, 1, 0, 0, 0, 55, 57, 3, 2, 1, 0, 56, 55, 1, 0, 0, 0, 57, 60, 1, 0, 0, 0, 58, 56, 1, 0, 0, 0, 58, 59, 1, 0, 0, 0, 59, 62, 1, 0, 0, 0, 60, 58, 1, 0, 0, 0, 61, 63, 5, 2, 0, 0, 62, 61, 1, 0, 0, 0, 62, 63, 1, 0, 0, 0, 63, 1, 1, 0, 0, 0, 64, 83, 3, 4, 2, 0, 65, 83, 5, 3, 0, 0, 66, 83, 5, 4, 0, 0, 67, 83, 5, 5, 0, 0, 68, 83, 3, 6, 3, 0, 69, 83, 3, 14, 7, 0, 70, 83, 3, 18, 9, 0, 71, 83, 3, 20, 10, 0, 72, 83, 3, 22, 11, 0, 73, 83, 3, 24, 12, 0, 74, 83, 3, 26, 13, 0, 75, 83, 3, 28, 14, 0, 76, 83, 3, 30, 15, 0, 77, 83, 3, 32, 16, 0, 78, 83, 3, 34, 17, 0, 79, 83, 3, 36, 18, 0, 80, 83, 3, 38, 19, 0, 81, 83, 5, 57, 0, 0, 82, 64, 1, 0, 0, 0, 82, 65, 1, 0, 0, 0, 82, 66, 1, 0, 0, 0, 82, 67, 1, 0, 0, 0, 82, 68, 1, 0, 0, 0, 82, 69, 1, 0, 0, 0, 82, 70, 1, 0, 0, 0, 82, 71, 1, 0, 0, 0, 82, 72, 1, 0, 0, 0, 82, 73, 1, 0, 0, 0, 82, 74, 1, 0, 0, 0, 82, 75, 1, 0, 0, 0, 82, 76, 1, 0, 0, 0, 82, 77, 1, 0, 0, 0, 82, 78, 1, 0, 0, 0, 82, 79, 1, 0, 0, 0, 82, 80, 1, 0, 0, 0, 82, 81, 1, 0, 0, 0, 83, 3, 1, 0, 0, 0, 84, 86, 5, 55, 0, 0, 85, 84, 1, 0, 0, 0, 85, 86, 1, 0, 0, 0, 86, 87, 1, 0, 0, 0, 87, 88, 5, 60, 0, 0, 88, 5, 1, 0, 0, 0, 89, 93, 3, 8, 4, 0, 90, 92, 3, 10, 5, 0, 91, 90, 1, 0, 0, 0, 92, 95, 1, 0, 0, 0, 93, 91, 1, 0, 0, 0, 93, 94, 1, 0, 0, 0, 94, 97, 1, 0, 0, 0, 95, 93, 1, 0, 0, 0, 96, 98, 3, 12, 6, 0, 97, 96, 1, 0, 0, 0, 97, 98, 1, 0, 0, 0, 98, 99, 1, 0, 0, 0, 99, 100, 5, 12, 0, 0, 100, 7, 1, 0, 0, 0, 101, 102, 5, 8, 0, 0, 102, 104, 3, 40, 20, 0, 103, 105, 5, 9, 0, 0, 104, 103, 1, 0, 0, 0, 104, 105, 1, 0, 0, 0, 105, 107, 1, 0, 0, 0, 106, 108, 3, 48, 24, 0, 107, 106, 1, 0, 0, 0, 107, 108, 1, 0, 0, 0, 108, 113, 1, 0, 0, 0, 109, 112, 3, 2, 1, 0, 110, 112, 5, 57, 0, 0, 111, 109, 1, 0, 0, 0, 111, 110, 1, 0, 0, 0, 112, 115, 1, 0, 0, 0, 113, 111, 1, 0, 0, 0, 113, 114, 1, 0, 0, 0, 114, 9, 1, 0, 0, 0, 115, 113, 1, 0, 0, 0, 116, 118, 3, 46, 23, 0, 117, 116, 1, 0, 0, 0, 117, 118, 1, 0, 0, 0, 118, 119, 1, 0, 0, 0, 119, 120, 5, 11, 0, 0, 120, 122, 3, 40, 20, 0, 121, 123, 5, 9, 0, 0, 122, 121, 1, 0, 0, 0, 122, 123, 1, 0, 0, 0, 123, 125, 1, 0, 0, 0, 124, 126, 3, 48, 24, 0, 125, 124, 1, 0, 0, 0, 125, 126, 1, 0, 0, 0, 126, 131, 1, 0, 0, 0, 127, 130, 3, 2, 1, 0, 128, 130, 5, 57, 0, 0, 129, 127, 1, 0, 0, 0, 129, 128, 1, 0, 0, 0, 130, 133, 1, 0, 0, 0, 131, 129, 1, 0, 0, 0, 131, 132, 1, 0, 0, 0, 132, 11, 1, 0, 0, 0, 133, 131, 1, 0, 0, 0, 134, 136, 3, 46, 23, 0, 135, 134, 1, 0, 0, 0, 135, 136, 1, 0, 0, 0, 136, 137, 1, 0, 0, 0, 137, 139, 5, 10, 0, 0, 138, 140, 3, 48, 24, 0, 139, 138, 1, 0, 0, 0, 139, 140, 1, 0, 0, 0, 140, 145, 1, 0, 0, 0, 141, 144, 3, 2, 1, 0, 142, 144, 5, 57, 0, 0, 143, 141, 1, 0, 0, 0, 143, 142, 1, 0, 0, 0, 144, 147, 1, 0, 0, 0, 145, 143, 1, 0, 0, 0, 145, 146, 1, 0, 0, 0, 146, 13, 1, 0, 0, 0, 147, 145, 1, 0, 0, 0, 148, 149, 5, 17, 0, 0, 149, 153, 3, 40, 20, 0, 150, 152, 3, 16, 8, 0, 151, 150, 1, 0, 0, 0, 152, 155, 1, 0, 0, 0, 153, 151, 1, 0, 0, 0, 153, 154, 1, 0, 0, 0, 154, 156, 1, 0, 0, 0, 155, 153, 1, 0, 0, 0, 156, 157, 5, 19, 0, 0, 157, 15, 1, 0, 0, 0, 158, 159, 5, 18, 0, 0, 159, 164, 3, 40, 20, 0, 160, 163, 3, 2, 1, 0, 161, 163, 5, 57, 0, 0, 162, 160, 1, 0, 0, 0, 162, 161, 1, 0, 0, 0, 163, 166, 1, 0, 0, 0, 164, 162, 1, 0, 0, 0, 164, 165, 1, 0, 0, 0, 165, 17, 1, 0, 0, 0, 166, 164, 1, 0, 0, 0, 167, 172, 5, 13, 0, 0, 168, 171, 3, 2, 1, 0, 169, 171, 5, 57, 0, 0, 170, 168, 1, 0, 0, 0, 170, 169, 1, 0, 0, 0, 171, 174, 1, 0, 0, 0, 172, 170, 1, 0, 0, 0, 172, 173, 1, 0, 0, 0, 173, 177, 1, 0, 0, 0, 174, 172, 1, 0, 0, 0, 175, 176, 5, 30, 0, 0, 176, 178, 3, 4, 2, 0, 177, 175, 1, 0, 0, 0, 177, 178, 1, 0, 0, 0, 178, 179, 1, 0, 0, 0, 179, 180, 5, 14, 0, 0, 180, 186, 3, 40, 20, 0, 181, 182, 5, 42, 0, 0, 182, 183, 3, 48, 24, 0, 183, 184, 5, 20, 0, 0, 184, 185, 3, 48, 24, 0, 185, 187, 1, 0, 0, 0, 186, 181, 1, 0, 0, 0, 186, 187, 1, 0, 0, 0, 187, 19, 1, 0, 0, 0, 188, 189, 5, 15, 0, 0, 189, 194, 3, 40, 20, 0, 190, 193, 3, 2, 1, 0, 191, 193, 5, 57, 0, 0, 192, 190, 1, 0, 0, 0, 192, 191, 1, 0, 0, 0, 193, 196, 1, 0, 0, 0, 194, 192, 1, 0, 0, 0, 194, 195, 1, 0, 0, 0, 195, 197, 1, 0, 0, 0, 196, 194, 1, 0, 0, 0, 197, 201, 5, 16, 0, 0, 198, 199, 5, 47, 0, 0, 199, 200, 5, 61, 0, 0, 200, 202, 5, 48, 0, 0, 201, 198, 1, 0, 0, 0, 201, 202, 1, 0, 0, 0, 202, 21, 1, 0, 0, 0, 203, 208, 5, 21, 0, 0, 204, 207, 3, 2, 1, 0, 205, 207, 5, 57, 0, 0, 206, 204, 1, 0, 0, 0, 206, 205, 1, 0, 0, 0, 207, 210, 1, 0, 0, 0, 208, 206, 1, 0, 0, 0, 208, 209, 1, 0, 0, 0, 209, 221, 1, 0, 0, 0, 210, 208, 1, 0, 0, 0, 211, 216, 5, 22, 0, 0, 212, 215, 3, 2, 1, 0, 213, 215, 5, 57, 0, 0, 214, 212, 1, 0, 0, 0, 214, 213, 1, 0, 0, 0, 215, 218, 1, 0, 0, 0, 216, 214, 1, 0, 0, 0, 216, 217, 1, 0, 0, 0, 217, 220, 1, 0, 0, 0, 218, 216, 1, 0, 0, 0, 219, 211, 1, 0, 0, 0, 220, 223, 1, 0, 0, 0, 221, 219, 1, 0, 0, 0, 221, 222, 1, 0, 0, 0, 222, 224, 1, 0, 0, 0, 223, 221, 1, 0, 0, 0, 224, 228, 7, 0, 0, 0, 225, 226, 5, 49, 0, 0, 226, 227, 5, 61, 0, 0, 227, 229, 5, 50, 0, 0, 228, 225, 1, 0, 0, 0, 228, 229, 1, 0, 0, 0, 229, 23, 1, 0, 0, 0, 230, 235, 5, 25, 0, 0, 231, 234, 3, 2, 1, 0, 232, 234, 5, 57, 0, 0, 233, 231, 1, 0, 0, 0, 233, 232, 1, 0, 0, 0, 234, 237, 1, 0, 0, 0, 235, 233, 1, 0, 0, 0, 235, 236, 1, 0, 0, 0, 236, 248, 1, 0, 0, 0, 237, 235, 1, 0, 0, 0, 238, 243, 5, 26, 0, 0, 239, 242, 3, 2, 1, 0, 240, 242, 5, 57, 0, 0, 241, 239, 1, 0, 0, 0, 241, 240, 1, 0, 0, 0, 242, 245, 1, 0, 0, 0, 243, 241, 1, 0, 0, 0, 243, 244, 1, 0, 0, 0, 244, 247, 1, 0, 0, 0, 245, 243, 1, 0, 0, 0, 246, 238, 1, 0, 0, 0, 247, 250, 1, 0, 0, 0, 248, 246, 1, 0, 0, 0, 248, 249, 1, 0, 0, 0, 249, 251, 1, 0, 0, 0, 250, 248, 1, 0, 0, 0, 251, 252, 5, 27, 0, 0, 252, 25, 1, 0, 0, 0, 253, 255, 5, 32, 0, 0, 254, 256, 5, 41, 0, 0, 255, 254, 1, 0, 0, 0, 255, 256, 1, 0, 0, 0, 256, 258, 1, 0, 0, 0, 257, 259, 7, 1, 0, 0, 258, 257, 1, 0, 0, 0, 258, 259, 1, 0, 0, 0, 259, 260, 1, 0, 0, 0, 260, 265, 5, 61, 0, 0, 261, 264, 3, 2, 1, 0, 262, 264, 5, 57, 0, 0, 263, 261, 1, 0, 0, 0, 263, 262, 1, 0, 0, 0, 264, 267, 1, 0, 0, 0, 265, 263, 1, 0, 0, 0, 265, 266, 1, 0, 0, 0, 266, 269, 1, 0, 0, 0, 267, 265, 1, 0, 0, 0, 268, 270, 5, 33, 0, 0, 269, 268, 1, 0, 0, 0, 269, 270, 1, 0, 0, 0, 270, 27, 1, 0, 0, 0, 271, 273, 5, 34, 0, 0, 272, 274, 5, 61, 0, 0, 273, 272, 1, 0, 0, 0, 273, 274, 1, 0, 0, 0, 274, 275, 1, 0, 0, 0, 275, 280, 5, 49, 0, 0, 276, 279, 3, 2, 1, 0, 277, 279, 5, 57, 0, 0, 278, 276, 1, 0, 0, 0, 278, 277, 1, 0, 0, 0, 279, 282, 1, 0, 0, 0, 280, 278, 1, 0, 0, 0, 280, 281, 1, 0, 0, 0, 281, 283, 1, 0, 0, 0, 282, 280, 1, 0, 0, 0, 283, 284, 5, 50, 0, 0, 284, 29, 1, 0, 0, 0, 285, 289, 5, 35, 0, 0, 286, 288, 3, 2, 1, 0, 287, 286, 1, 0, 0, 0, 288, 291, 1, 0, 0, 0, 289, 287, 1, 0, 0, 0, 289, 290, 1, 0, 0, 0, 290, 292, 1, 0, 0, 0, 291, 289, 1, 0, 0, 0, 292, 293, 5, 36, 0, 0, 293, 31, 1, 0, 0, 0, 294, 295, 5, 28, 0, 0, 295, 33, 1, 0, 0, 0, 296, 297, 5, 29, 0, 0, 297, 35, 1, 0, 0, 0, 298, 299, 5, 31, 0, 0, 299, 300, 5, 62, 0, 0, 300, 37, 1, 0, 0, 0, 301, 306, 5, 53, 0, 0, 302, 303, 5, 51, 0, 0, 303, 304, 5, 55, 0, 0, 304, 305, 5, 53, 0, 0, 305, 307, 5, 52, 0, 0, 306, 302, 1, 0, 0, 0, 306, 307, 1, 0, 0, 0, 307, 309, 1, 0, 0, 0, 308, 310, 5, 62, 0, 0, 309, 308, 1, 0, 0, 0, 309, 310, 1, 0, 0, 0, 310, 311, 1, 0, 0, 0, 311, 313, 5, 53, 0, 0, 312, 314, 5, 61, 0, 0, 313, 312, 1, 0, 0, 0, 313, 314, 1, 0, 0, 0, 314, 39, 1, 0, 0, 0, 315, 316, 5, 47, 0, 0, 316, 317, 3, 44, 22, 0, 317, 323, 5, 48, 0, 0, 318, 319, 3, 42, 21, 0, 319, 320, 5, 47, 0, 0, 320, 321, 3, 44, 22, 0, 321, 322, 5, 48, 0, 0, 322, 324, 1, 0, 0, 0, 323, 318, 1, 0, 0, 0, 323, 324, 1, 0, 0, 0, 324, 41, 1, 0, 0, 0, 325, 326, 7, 2, 0, 0, 326, 43, 1, 0, 0, 0, 327, 329, 7, 3, 0, 0, 328, 327, 1, 0, 0, 0, 329, 330, 1, 0, 0, 0, 330, 328, 1, 0, 0, 0, 330, 331, 1, 0, 0, 0, 331, 45, 1, 0, 0, 0, 332, 333, 5, 47, 0, 0, 333, 334, 5, 61, 0, 0, 334, 335, 5, 48, 0, 0, 335, 47, 1, 0, 0, 0, 336, 337, 5, 47, 0, 0, 337, 338, 5, 61, 0, 0, 338, 339, 5, 48, 0, 0, 339, 49, 1, 0, 0, 0, 340, 341, 3, 4, 2, 0, 341, 342, 5, 56, 0, 0, 342, 51, 1, 0, 0, 0, 55, 53, 58, 62, 82, 85, 93, 97, 104, 107, 111, 113, 117, 122, 125, 129, 131, 135, 139, 143, 145, 153, 162, 164, 170, 172, 177, 186, 192, 194, 201, 206, 208, 214, 216, 221, 228, 233, 235, 241, 243, 248, 255, 258, 263, 265, 269, 273, 278, 280, 289, 306, 309, 313, 323, 330] \ No newline at end of file diff --git a/src/generated-parser/activityParser.js b/src/generated-parser/activityParser.js index 5b9e069f..453288c1 100644 --- a/src/generated-parser/activityParser.js +++ b/src/generated-parser/activityParser.js @@ -2,117 +2,121 @@ // jshint ignore: start import antlr4 from 'antlr4'; import activityParserListener from './activityParserListener.js'; -const serializedATN = [4,1,66,332,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7, +const serializedATN = [4,1,66,344,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,1,0,3,0,52,8,0,1,0,5,0,55, -8,0,10,0,12,0,58,9,0,1,0,3,0,61,8,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,81,8,1,1,2,3,2,84,8,2,1,2,1,2,1, -3,1,3,5,3,90,8,3,10,3,12,3,93,9,3,1,3,3,3,96,8,3,1,3,1,3,1,4,1,4,1,4,3,4, -103,8,4,1,4,3,4,106,8,4,1,4,1,4,5,4,110,8,4,10,4,12,4,113,9,4,1,5,1,5,1, -5,3,5,118,8,5,1,5,3,5,121,8,5,1,5,1,5,5,5,125,8,5,10,5,12,5,128,9,5,1,6, -1,6,3,6,132,8,6,1,6,1,6,5,6,136,8,6,10,6,12,6,139,9,6,1,7,1,7,1,7,5,7,144, -8,7,10,7,12,7,147,9,7,1,7,1,7,1,8,1,8,1,8,1,8,5,8,155,8,8,10,8,12,8,158, -9,8,1,9,1,9,1,9,5,9,163,8,9,10,9,12,9,166,9,9,1,9,1,9,3,9,170,8,9,1,9,1, -9,1,9,1,9,1,9,1,9,1,9,3,9,179,8,9,1,10,1,10,1,10,1,10,5,10,185,8,10,10,10, -12,10,188,9,10,1,10,1,10,1,10,1,10,3,10,194,8,10,1,11,1,11,1,11,5,11,199, -8,11,10,11,12,11,202,9,11,1,11,1,11,1,11,5,11,207,8,11,10,11,12,11,210,9, -11,5,11,212,8,11,10,11,12,11,215,9,11,1,11,1,11,1,11,1,11,3,11,221,8,11, -1,12,1,12,1,12,5,12,226,8,12,10,12,12,12,229,9,12,1,12,1,12,1,12,5,12,234, -8,12,10,12,12,12,237,9,12,5,12,239,8,12,10,12,12,12,242,9,12,1,12,1,12,1, -13,1,13,3,13,248,8,13,1,13,3,13,251,8,13,1,13,1,13,1,13,5,13,256,8,13,10, -13,12,13,259,9,13,1,13,3,13,262,8,13,1,14,1,14,3,14,266,8,14,1,14,1,14,1, -14,5,14,271,8,14,10,14,12,14,274,9,14,1,14,1,14,1,15,1,15,5,15,280,8,15, -10,15,12,15,283,9,15,1,15,1,15,1,16,1,16,1,17,1,17,1,18,1,18,1,18,1,19,1, -19,1,19,1,19,1,19,3,19,299,8,19,1,19,3,19,302,8,19,1,19,1,19,3,19,306,8, -19,1,20,1,20,1,20,1,20,1,20,1,20,1,20,1,20,3,20,316,8,20,1,21,1,21,1,22, -4,22,321,8,22,11,22,12,22,322,1,23,1,23,1,23,1,23,1,24,1,24,1,24,1,24,0, -0,25,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,0,4,1,0,23,24,1,0,6,7,2,0,42,42,46,46,1,0,60,61,375,0,51,1,0,0,0,2,80, -1,0,0,0,4,83,1,0,0,0,6,87,1,0,0,0,8,99,1,0,0,0,10,114,1,0,0,0,12,129,1,0, -0,0,14,140,1,0,0,0,16,150,1,0,0,0,18,159,1,0,0,0,20,180,1,0,0,0,22,195,1, -0,0,0,24,222,1,0,0,0,26,245,1,0,0,0,28,263,1,0,0,0,30,277,1,0,0,0,32,286, -1,0,0,0,34,288,1,0,0,0,36,290,1,0,0,0,38,293,1,0,0,0,40,307,1,0,0,0,42,317, -1,0,0,0,44,320,1,0,0,0,46,324,1,0,0,0,48,328,1,0,0,0,50,52,5,1,0,0,51,50, -1,0,0,0,51,52,1,0,0,0,52,56,1,0,0,0,53,55,3,2,1,0,54,53,1,0,0,0,55,58,1, -0,0,0,56,54,1,0,0,0,56,57,1,0,0,0,57,60,1,0,0,0,58,56,1,0,0,0,59,61,5,2, -0,0,60,59,1,0,0,0,60,61,1,0,0,0,61,1,1,0,0,0,62,81,3,4,2,0,63,81,5,3,0,0, -64,81,5,4,0,0,65,81,5,5,0,0,66,81,3,6,3,0,67,81,3,14,7,0,68,81,3,18,9,0, -69,81,3,20,10,0,70,81,3,22,11,0,71,81,3,24,12,0,72,81,3,26,13,0,73,81,3, -28,14,0,74,81,3,30,15,0,75,81,3,32,16,0,76,81,3,34,17,0,77,81,3,36,18,0, -78,81,3,38,19,0,79,81,5,57,0,0,80,62,1,0,0,0,80,63,1,0,0,0,80,64,1,0,0,0, -80,65,1,0,0,0,80,66,1,0,0,0,80,67,1,0,0,0,80,68,1,0,0,0,80,69,1,0,0,0,80, -70,1,0,0,0,80,71,1,0,0,0,80,72,1,0,0,0,80,73,1,0,0,0,80,74,1,0,0,0,80,75, -1,0,0,0,80,76,1,0,0,0,80,77,1,0,0,0,80,78,1,0,0,0,80,79,1,0,0,0,81,3,1,0, -0,0,82,84,5,55,0,0,83,82,1,0,0,0,83,84,1,0,0,0,84,85,1,0,0,0,85,86,5,60, -0,0,86,5,1,0,0,0,87,91,3,8,4,0,88,90,3,10,5,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,95,1,0,0,0,93,91,1,0,0,0,94,96,3,12,6,0, -95,94,1,0,0,0,95,96,1,0,0,0,96,97,1,0,0,0,97,98,5,12,0,0,98,7,1,0,0,0,99, -100,5,8,0,0,100,102,3,40,20,0,101,103,5,9,0,0,102,101,1,0,0,0,102,103,1, -0,0,0,103,105,1,0,0,0,104,106,3,46,23,0,105,104,1,0,0,0,105,106,1,0,0,0, -106,111,1,0,0,0,107,110,3,2,1,0,108,110,5,57,0,0,109,107,1,0,0,0,109,108, -1,0,0,0,110,113,1,0,0,0,111,109,1,0,0,0,111,112,1,0,0,0,112,9,1,0,0,0,113, -111,1,0,0,0,114,115,5,11,0,0,115,117,3,40,20,0,116,118,5,9,0,0,117,116,1, -0,0,0,117,118,1,0,0,0,118,120,1,0,0,0,119,121,3,46,23,0,120,119,1,0,0,0, -120,121,1,0,0,0,121,126,1,0,0,0,122,125,3,2,1,0,123,125,5,57,0,0,124,122, -1,0,0,0,124,123,1,0,0,0,125,128,1,0,0,0,126,124,1,0,0,0,126,127,1,0,0,0, -127,11,1,0,0,0,128,126,1,0,0,0,129,131,5,10,0,0,130,132,3,46,23,0,131,130, -1,0,0,0,131,132,1,0,0,0,132,137,1,0,0,0,133,136,3,2,1,0,134,136,5,57,0,0, -135,133,1,0,0,0,135,134,1,0,0,0,136,139,1,0,0,0,137,135,1,0,0,0,137,138, -1,0,0,0,138,13,1,0,0,0,139,137,1,0,0,0,140,141,5,17,0,0,141,145,3,40,20, -0,142,144,3,16,8,0,143,142,1,0,0,0,144,147,1,0,0,0,145,143,1,0,0,0,145,146, -1,0,0,0,146,148,1,0,0,0,147,145,1,0,0,0,148,149,5,19,0,0,149,15,1,0,0,0, -150,151,5,18,0,0,151,156,3,40,20,0,152,155,3,2,1,0,153,155,5,57,0,0,154, -152,1,0,0,0,154,153,1,0,0,0,155,158,1,0,0,0,156,154,1,0,0,0,156,157,1,0, -0,0,157,17,1,0,0,0,158,156,1,0,0,0,159,164,5,13,0,0,160,163,3,2,1,0,161, -163,5,57,0,0,162,160,1,0,0,0,162,161,1,0,0,0,163,166,1,0,0,0,164,162,1,0, -0,0,164,165,1,0,0,0,165,169,1,0,0,0,166,164,1,0,0,0,167,168,5,30,0,0,168, -170,3,4,2,0,169,167,1,0,0,0,169,170,1,0,0,0,170,171,1,0,0,0,171,172,5,14, -0,0,172,178,3,40,20,0,173,174,5,42,0,0,174,175,3,46,23,0,175,176,5,20,0, -0,176,177,3,46,23,0,177,179,1,0,0,0,178,173,1,0,0,0,178,179,1,0,0,0,179, -19,1,0,0,0,180,181,5,15,0,0,181,186,3,40,20,0,182,185,3,2,1,0,183,185,5, -57,0,0,184,182,1,0,0,0,184,183,1,0,0,0,185,188,1,0,0,0,186,184,1,0,0,0,186, -187,1,0,0,0,187,189,1,0,0,0,188,186,1,0,0,0,189,193,5,16,0,0,190,191,5,47, -0,0,191,192,5,61,0,0,192,194,5,48,0,0,193,190,1,0,0,0,193,194,1,0,0,0,194, -21,1,0,0,0,195,200,5,21,0,0,196,199,3,2,1,0,197,199,5,57,0,0,198,196,1,0, -0,0,198,197,1,0,0,0,199,202,1,0,0,0,200,198,1,0,0,0,200,201,1,0,0,0,201, -213,1,0,0,0,202,200,1,0,0,0,203,208,5,22,0,0,204,207,3,2,1,0,205,207,5,57, -0,0,206,204,1,0,0,0,206,205,1,0,0,0,207,210,1,0,0,0,208,206,1,0,0,0,208, -209,1,0,0,0,209,212,1,0,0,0,210,208,1,0,0,0,211,203,1,0,0,0,212,215,1,0, -0,0,213,211,1,0,0,0,213,214,1,0,0,0,214,216,1,0,0,0,215,213,1,0,0,0,216, -220,7,0,0,0,217,218,5,49,0,0,218,219,5,61,0,0,219,221,5,50,0,0,220,217,1, -0,0,0,220,221,1,0,0,0,221,23,1,0,0,0,222,227,5,25,0,0,223,226,3,2,1,0,224, -226,5,57,0,0,225,223,1,0,0,0,225,224,1,0,0,0,226,229,1,0,0,0,227,225,1,0, -0,0,227,228,1,0,0,0,228,240,1,0,0,0,229,227,1,0,0,0,230,235,5,26,0,0,231, -234,3,2,1,0,232,234,5,57,0,0,233,231,1,0,0,0,233,232,1,0,0,0,234,237,1,0, -0,0,235,233,1,0,0,0,235,236,1,0,0,0,236,239,1,0,0,0,237,235,1,0,0,0,238, -230,1,0,0,0,239,242,1,0,0,0,240,238,1,0,0,0,240,241,1,0,0,0,241,243,1,0, -0,0,242,240,1,0,0,0,243,244,5,27,0,0,244,25,1,0,0,0,245,247,5,32,0,0,246, -248,5,41,0,0,247,246,1,0,0,0,247,248,1,0,0,0,248,250,1,0,0,0,249,251,7,1, -0,0,250,249,1,0,0,0,250,251,1,0,0,0,251,252,1,0,0,0,252,257,5,61,0,0,253, -256,3,2,1,0,254,256,5,57,0,0,255,253,1,0,0,0,255,254,1,0,0,0,256,259,1,0, -0,0,257,255,1,0,0,0,257,258,1,0,0,0,258,261,1,0,0,0,259,257,1,0,0,0,260, -262,5,33,0,0,261,260,1,0,0,0,261,262,1,0,0,0,262,27,1,0,0,0,263,265,5,34, -0,0,264,266,5,61,0,0,265,264,1,0,0,0,265,266,1,0,0,0,266,267,1,0,0,0,267, -272,5,49,0,0,268,271,3,2,1,0,269,271,5,57,0,0,270,268,1,0,0,0,270,269,1, -0,0,0,271,274,1,0,0,0,272,270,1,0,0,0,272,273,1,0,0,0,273,275,1,0,0,0,274, -272,1,0,0,0,275,276,5,50,0,0,276,29,1,0,0,0,277,281,5,35,0,0,278,280,3,2, -1,0,279,278,1,0,0,0,280,283,1,0,0,0,281,279,1,0,0,0,281,282,1,0,0,0,282, -284,1,0,0,0,283,281,1,0,0,0,284,285,5,36,0,0,285,31,1,0,0,0,286,287,5,28, -0,0,287,33,1,0,0,0,288,289,5,29,0,0,289,35,1,0,0,0,290,291,5,31,0,0,291, -292,5,62,0,0,292,37,1,0,0,0,293,298,5,53,0,0,294,295,5,51,0,0,295,296,5, -55,0,0,296,297,5,53,0,0,297,299,5,52,0,0,298,294,1,0,0,0,298,299,1,0,0,0, -299,301,1,0,0,0,300,302,5,62,0,0,301,300,1,0,0,0,301,302,1,0,0,0,302,303, -1,0,0,0,303,305,5,53,0,0,304,306,5,61,0,0,305,304,1,0,0,0,305,306,1,0,0, -0,306,39,1,0,0,0,307,308,5,47,0,0,308,309,3,44,22,0,309,315,5,48,0,0,310, -311,3,42,21,0,311,312,5,47,0,0,312,313,3,44,22,0,313,314,5,48,0,0,314,316, -1,0,0,0,315,310,1,0,0,0,315,316,1,0,0,0,316,41,1,0,0,0,317,318,7,2,0,0,318, -43,1,0,0,0,319,321,7,3,0,0,320,319,1,0,0,0,321,322,1,0,0,0,322,320,1,0,0, -0,322,323,1,0,0,0,323,45,1,0,0,0,324,325,5,47,0,0,325,326,5,61,0,0,326,327, -5,48,0,0,327,47,1,0,0,0,328,329,3,4,2,0,329,330,5,56,0,0,330,49,1,0,0,0, -53,51,56,60,80,83,91,95,102,105,109,111,117,120,124,126,131,135,137,145, -154,156,162,164,169,178,184,186,193,198,200,206,208,213,220,225,227,233, -235,240,247,250,255,257,261,265,270,272,281,298,301,305,315,322]; +20,7,20,2,21,7,21,2,22,7,22,2,23,7,23,2,24,7,24,2,25,7,25,1,0,3,0,54,8,0, +1,0,5,0,57,8,0,10,0,12,0,60,9,0,1,0,3,0,63,8,0,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,83,8,1,1,2,3,2,86,8,2, +1,2,1,2,1,3,1,3,5,3,92,8,3,10,3,12,3,95,9,3,1,3,3,3,98,8,3,1,3,1,3,1,4,1, +4,1,4,3,4,105,8,4,1,4,3,4,108,8,4,1,4,1,4,5,4,112,8,4,10,4,12,4,115,9,4, +1,5,3,5,118,8,5,1,5,1,5,1,5,3,5,123,8,5,1,5,3,5,126,8,5,1,5,1,5,5,5,130, +8,5,10,5,12,5,133,9,5,1,6,3,6,136,8,6,1,6,1,6,3,6,140,8,6,1,6,1,6,5,6,144, +8,6,10,6,12,6,147,9,6,1,7,1,7,1,7,5,7,152,8,7,10,7,12,7,155,9,7,1,7,1,7, +1,8,1,8,1,8,1,8,5,8,163,8,8,10,8,12,8,166,9,8,1,9,1,9,1,9,5,9,171,8,9,10, +9,12,9,174,9,9,1,9,1,9,3,9,178,8,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,3,9,187,8, +9,1,10,1,10,1,10,1,10,5,10,193,8,10,10,10,12,10,196,9,10,1,10,1,10,1,10, +1,10,3,10,202,8,10,1,11,1,11,1,11,5,11,207,8,11,10,11,12,11,210,9,11,1,11, +1,11,1,11,5,11,215,8,11,10,11,12,11,218,9,11,5,11,220,8,11,10,11,12,11,223, +9,11,1,11,1,11,1,11,1,11,3,11,229,8,11,1,12,1,12,1,12,5,12,234,8,12,10,12, +12,12,237,9,12,1,12,1,12,1,12,5,12,242,8,12,10,12,12,12,245,9,12,5,12,247, +8,12,10,12,12,12,250,9,12,1,12,1,12,1,13,1,13,3,13,256,8,13,1,13,3,13,259, +8,13,1,13,1,13,1,13,5,13,264,8,13,10,13,12,13,267,9,13,1,13,3,13,270,8,13, +1,14,1,14,3,14,274,8,14,1,14,1,14,1,14,5,14,279,8,14,10,14,12,14,282,9,14, +1,14,1,14,1,15,1,15,5,15,288,8,15,10,15,12,15,291,9,15,1,15,1,15,1,16,1, +16,1,17,1,17,1,18,1,18,1,18,1,19,1,19,1,19,1,19,1,19,3,19,307,8,19,1,19, +3,19,310,8,19,1,19,1,19,3,19,314,8,19,1,20,1,20,1,20,1,20,1,20,1,20,1,20, +1,20,3,20,324,8,20,1,21,1,21,1,22,4,22,329,8,22,11,22,12,22,330,1,23,1,23, +1,23,1,23,1,24,1,24,1,24,1,24,1,25,1,25,1,25,1,25,0,0,26,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,0,4,1,0,23,24,1, +0,6,7,2,0,42,42,46,46,1,0,60,61,388,0,53,1,0,0,0,2,82,1,0,0,0,4,85,1,0,0, +0,6,89,1,0,0,0,8,101,1,0,0,0,10,117,1,0,0,0,12,135,1,0,0,0,14,148,1,0,0, +0,16,158,1,0,0,0,18,167,1,0,0,0,20,188,1,0,0,0,22,203,1,0,0,0,24,230,1,0, +0,0,26,253,1,0,0,0,28,271,1,0,0,0,30,285,1,0,0,0,32,294,1,0,0,0,34,296,1, +0,0,0,36,298,1,0,0,0,38,301,1,0,0,0,40,315,1,0,0,0,42,325,1,0,0,0,44,328, +1,0,0,0,46,332,1,0,0,0,48,336,1,0,0,0,50,340,1,0,0,0,52,54,5,1,0,0,53,52, +1,0,0,0,53,54,1,0,0,0,54,58,1,0,0,0,55,57,3,2,1,0,56,55,1,0,0,0,57,60,1, +0,0,0,58,56,1,0,0,0,58,59,1,0,0,0,59,62,1,0,0,0,60,58,1,0,0,0,61,63,5,2, +0,0,62,61,1,0,0,0,62,63,1,0,0,0,63,1,1,0,0,0,64,83,3,4,2,0,65,83,5,3,0,0, +66,83,5,4,0,0,67,83,5,5,0,0,68,83,3,6,3,0,69,83,3,14,7,0,70,83,3,18,9,0, +71,83,3,20,10,0,72,83,3,22,11,0,73,83,3,24,12,0,74,83,3,26,13,0,75,83,3, +28,14,0,76,83,3,30,15,0,77,83,3,32,16,0,78,83,3,34,17,0,79,83,3,36,18,0, +80,83,3,38,19,0,81,83,5,57,0,0,82,64,1,0,0,0,82,65,1,0,0,0,82,66,1,0,0,0, +82,67,1,0,0,0,82,68,1,0,0,0,82,69,1,0,0,0,82,70,1,0,0,0,82,71,1,0,0,0,82, +72,1,0,0,0,82,73,1,0,0,0,82,74,1,0,0,0,82,75,1,0,0,0,82,76,1,0,0,0,82,77, +1,0,0,0,82,78,1,0,0,0,82,79,1,0,0,0,82,80,1,0,0,0,82,81,1,0,0,0,83,3,1,0, +0,0,84,86,5,55,0,0,85,84,1,0,0,0,85,86,1,0,0,0,86,87,1,0,0,0,87,88,5,60, +0,0,88,5,1,0,0,0,89,93,3,8,4,0,90,92,3,10,5,0,91,90,1,0,0,0,92,95,1,0,0, +0,93,91,1,0,0,0,93,94,1,0,0,0,94,97,1,0,0,0,95,93,1,0,0,0,96,98,3,12,6,0, +97,96,1,0,0,0,97,98,1,0,0,0,98,99,1,0,0,0,99,100,5,12,0,0,100,7,1,0,0,0, +101,102,5,8,0,0,102,104,3,40,20,0,103,105,5,9,0,0,104,103,1,0,0,0,104,105, +1,0,0,0,105,107,1,0,0,0,106,108,3,48,24,0,107,106,1,0,0,0,107,108,1,0,0, +0,108,113,1,0,0,0,109,112,3,2,1,0,110,112,5,57,0,0,111,109,1,0,0,0,111,110, +1,0,0,0,112,115,1,0,0,0,113,111,1,0,0,0,113,114,1,0,0,0,114,9,1,0,0,0,115, +113,1,0,0,0,116,118,3,46,23,0,117,116,1,0,0,0,117,118,1,0,0,0,118,119,1, +0,0,0,119,120,5,11,0,0,120,122,3,40,20,0,121,123,5,9,0,0,122,121,1,0,0,0, +122,123,1,0,0,0,123,125,1,0,0,0,124,126,3,48,24,0,125,124,1,0,0,0,125,126, +1,0,0,0,126,131,1,0,0,0,127,130,3,2,1,0,128,130,5,57,0,0,129,127,1,0,0,0, +129,128,1,0,0,0,130,133,1,0,0,0,131,129,1,0,0,0,131,132,1,0,0,0,132,11,1, +0,0,0,133,131,1,0,0,0,134,136,3,46,23,0,135,134,1,0,0,0,135,136,1,0,0,0, +136,137,1,0,0,0,137,139,5,10,0,0,138,140,3,48,24,0,139,138,1,0,0,0,139,140, +1,0,0,0,140,145,1,0,0,0,141,144,3,2,1,0,142,144,5,57,0,0,143,141,1,0,0,0, +143,142,1,0,0,0,144,147,1,0,0,0,145,143,1,0,0,0,145,146,1,0,0,0,146,13,1, +0,0,0,147,145,1,0,0,0,148,149,5,17,0,0,149,153,3,40,20,0,150,152,3,16,8, +0,151,150,1,0,0,0,152,155,1,0,0,0,153,151,1,0,0,0,153,154,1,0,0,0,154,156, +1,0,0,0,155,153,1,0,0,0,156,157,5,19,0,0,157,15,1,0,0,0,158,159,5,18,0,0, +159,164,3,40,20,0,160,163,3,2,1,0,161,163,5,57,0,0,162,160,1,0,0,0,162,161, +1,0,0,0,163,166,1,0,0,0,164,162,1,0,0,0,164,165,1,0,0,0,165,17,1,0,0,0,166, +164,1,0,0,0,167,172,5,13,0,0,168,171,3,2,1,0,169,171,5,57,0,0,170,168,1, +0,0,0,170,169,1,0,0,0,171,174,1,0,0,0,172,170,1,0,0,0,172,173,1,0,0,0,173, +177,1,0,0,0,174,172,1,0,0,0,175,176,5,30,0,0,176,178,3,4,2,0,177,175,1,0, +0,0,177,178,1,0,0,0,178,179,1,0,0,0,179,180,5,14,0,0,180,186,3,40,20,0,181, +182,5,42,0,0,182,183,3,48,24,0,183,184,5,20,0,0,184,185,3,48,24,0,185,187, +1,0,0,0,186,181,1,0,0,0,186,187,1,0,0,0,187,19,1,0,0,0,188,189,5,15,0,0, +189,194,3,40,20,0,190,193,3,2,1,0,191,193,5,57,0,0,192,190,1,0,0,0,192,191, +1,0,0,0,193,196,1,0,0,0,194,192,1,0,0,0,194,195,1,0,0,0,195,197,1,0,0,0, +196,194,1,0,0,0,197,201,5,16,0,0,198,199,5,47,0,0,199,200,5,61,0,0,200,202, +5,48,0,0,201,198,1,0,0,0,201,202,1,0,0,0,202,21,1,0,0,0,203,208,5,21,0,0, +204,207,3,2,1,0,205,207,5,57,0,0,206,204,1,0,0,0,206,205,1,0,0,0,207,210, +1,0,0,0,208,206,1,0,0,0,208,209,1,0,0,0,209,221,1,0,0,0,210,208,1,0,0,0, +211,216,5,22,0,0,212,215,3,2,1,0,213,215,5,57,0,0,214,212,1,0,0,0,214,213, +1,0,0,0,215,218,1,0,0,0,216,214,1,0,0,0,216,217,1,0,0,0,217,220,1,0,0,0, +218,216,1,0,0,0,219,211,1,0,0,0,220,223,1,0,0,0,221,219,1,0,0,0,221,222, +1,0,0,0,222,224,1,0,0,0,223,221,1,0,0,0,224,228,7,0,0,0,225,226,5,49,0,0, +226,227,5,61,0,0,227,229,5,50,0,0,228,225,1,0,0,0,228,229,1,0,0,0,229,23, +1,0,0,0,230,235,5,25,0,0,231,234,3,2,1,0,232,234,5,57,0,0,233,231,1,0,0, +0,233,232,1,0,0,0,234,237,1,0,0,0,235,233,1,0,0,0,235,236,1,0,0,0,236,248, +1,0,0,0,237,235,1,0,0,0,238,243,5,26,0,0,239,242,3,2,1,0,240,242,5,57,0, +0,241,239,1,0,0,0,241,240,1,0,0,0,242,245,1,0,0,0,243,241,1,0,0,0,243,244, +1,0,0,0,244,247,1,0,0,0,245,243,1,0,0,0,246,238,1,0,0,0,247,250,1,0,0,0, +248,246,1,0,0,0,248,249,1,0,0,0,249,251,1,0,0,0,250,248,1,0,0,0,251,252, +5,27,0,0,252,25,1,0,0,0,253,255,5,32,0,0,254,256,5,41,0,0,255,254,1,0,0, +0,255,256,1,0,0,0,256,258,1,0,0,0,257,259,7,1,0,0,258,257,1,0,0,0,258,259, +1,0,0,0,259,260,1,0,0,0,260,265,5,61,0,0,261,264,3,2,1,0,262,264,5,57,0, +0,263,261,1,0,0,0,263,262,1,0,0,0,264,267,1,0,0,0,265,263,1,0,0,0,265,266, +1,0,0,0,266,269,1,0,0,0,267,265,1,0,0,0,268,270,5,33,0,0,269,268,1,0,0,0, +269,270,1,0,0,0,270,27,1,0,0,0,271,273,5,34,0,0,272,274,5,61,0,0,273,272, +1,0,0,0,273,274,1,0,0,0,274,275,1,0,0,0,275,280,5,49,0,0,276,279,3,2,1,0, +277,279,5,57,0,0,278,276,1,0,0,0,278,277,1,0,0,0,279,282,1,0,0,0,280,278, +1,0,0,0,280,281,1,0,0,0,281,283,1,0,0,0,282,280,1,0,0,0,283,284,5,50,0,0, +284,29,1,0,0,0,285,289,5,35,0,0,286,288,3,2,1,0,287,286,1,0,0,0,288,291, +1,0,0,0,289,287,1,0,0,0,289,290,1,0,0,0,290,292,1,0,0,0,291,289,1,0,0,0, +292,293,5,36,0,0,293,31,1,0,0,0,294,295,5,28,0,0,295,33,1,0,0,0,296,297, +5,29,0,0,297,35,1,0,0,0,298,299,5,31,0,0,299,300,5,62,0,0,300,37,1,0,0,0, +301,306,5,53,0,0,302,303,5,51,0,0,303,304,5,55,0,0,304,305,5,53,0,0,305, +307,5,52,0,0,306,302,1,0,0,0,306,307,1,0,0,0,307,309,1,0,0,0,308,310,5,62, +0,0,309,308,1,0,0,0,309,310,1,0,0,0,310,311,1,0,0,0,311,313,5,53,0,0,312, +314,5,61,0,0,313,312,1,0,0,0,313,314,1,0,0,0,314,39,1,0,0,0,315,316,5,47, +0,0,316,317,3,44,22,0,317,323,5,48,0,0,318,319,3,42,21,0,319,320,5,47,0, +0,320,321,3,44,22,0,321,322,5,48,0,0,322,324,1,0,0,0,323,318,1,0,0,0,323, +324,1,0,0,0,324,41,1,0,0,0,325,326,7,2,0,0,326,43,1,0,0,0,327,329,7,3,0, +0,328,327,1,0,0,0,329,330,1,0,0,0,330,328,1,0,0,0,330,331,1,0,0,0,331,45, +1,0,0,0,332,333,5,47,0,0,333,334,5,61,0,0,334,335,5,48,0,0,335,47,1,0,0, +0,336,337,5,47,0,0,337,338,5,61,0,0,338,339,5,48,0,0,339,49,1,0,0,0,340, +341,3,4,2,0,341,342,5,56,0,0,342,51,1,0,0,0,55,53,58,62,82,85,93,97,104, +107,111,113,117,122,125,129,131,135,139,143,145,153,162,164,170,172,177, +186,192,194,201,206,208,214,216,221,228,233,235,241,243,248,255,258,263, +265,269,273,278,280,289,306,309,313,323,330]; const atn = new antlr4.atn.ATNDeserializer().deserialize(serializedATN); @@ -159,8 +163,8 @@ export default class activityParser extends antlr4.Parser { "forkStatement", "splitStatement", "noteStatement", "partitionStatement", "groupStatement", "detachStatement", "killStatement", "gotoStatement", "swimlane", "condition", - "comparisonOperator", "conditionContent", "branchLabel", - "stereotypeActivity" ]; + "comparisonOperator", "conditionContent", "inboundBranchLabel", + "branchLabel", "stereotypeActivity" ]; constructor(input) { super(input); @@ -182,29 +186,29 @@ export default class activityParser extends antlr4.Parser { var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 51; + this.state = 53; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===1) { - this.state = 50; + this.state = 52; this.match(activityParser.STARTUML); } - this.state = 56; + this.state = 58; this._errHandler.sync(this); _la = this._input.LA(1); while((((_la) & ~0x1f) == 0 && ((1 << _la) & 2988613944) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & 312475661) !== 0)) { - this.state = 53; + this.state = 55; this.statement(); - this.state = 58; + this.state = 60; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 60; + this.state = 62; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===2) { - this.state = 59; + this.state = 61; this.match(activityParser.ENDUML); } @@ -228,98 +232,98 @@ export default class activityParser extends antlr4.Parser { let localctx = new StatementContext(this, this._ctx, this.state); this.enterRule(localctx, 2, activityParser.RULE_statement); try { - this.state = 80; + this.state = 82; this._errHandler.sync(this); switch(this._input.LA(1)) { case 55: case 60: this.enterOuterAlt(localctx, 1); - this.state = 62; + this.state = 64; this.activity(); break; case 3: this.enterOuterAlt(localctx, 2); - this.state = 63; + this.state = 65; this.match(activityParser.START); break; case 4: this.enterOuterAlt(localctx, 3); - this.state = 64; + this.state = 66; this.match(activityParser.STOP); break; case 5: this.enterOuterAlt(localctx, 4); - this.state = 65; + this.state = 67; this.match(activityParser.END); break; case 8: this.enterOuterAlt(localctx, 5); - this.state = 66; + this.state = 68; this.ifStatement(); break; case 17: this.enterOuterAlt(localctx, 6); - this.state = 67; + this.state = 69; this.switchStatement(); break; case 13: this.enterOuterAlt(localctx, 7); - this.state = 68; + this.state = 70; this.repeatStatement(); break; case 15: this.enterOuterAlt(localctx, 8); - this.state = 69; + this.state = 71; this.whileStatement(); break; case 21: this.enterOuterAlt(localctx, 9); - this.state = 70; + this.state = 72; this.forkStatement(); break; case 25: this.enterOuterAlt(localctx, 10); - this.state = 71; + this.state = 73; this.splitStatement(); break; case 32: this.enterOuterAlt(localctx, 11); - this.state = 72; + this.state = 74; this.noteStatement(); break; case 34: this.enterOuterAlt(localctx, 12); - this.state = 73; + this.state = 75; this.partitionStatement(); break; case 35: this.enterOuterAlt(localctx, 13); - this.state = 74; + this.state = 76; this.groupStatement(); break; case 28: this.enterOuterAlt(localctx, 14); - this.state = 75; + this.state = 77; this.detachStatement(); break; case 29: this.enterOuterAlt(localctx, 15); - this.state = 76; + this.state = 78; this.killStatement(); break; case 31: this.enterOuterAlt(localctx, 16); - this.state = 77; + this.state = 79; this.gotoStatement(); break; case 53: this.enterOuterAlt(localctx, 17); - this.state = 78; + this.state = 80; this.swimlane(); break; case 57: this.enterOuterAlt(localctx, 18); - this.state = 79; + this.state = 81; this.match(activityParser.ARROW); break; default: @@ -347,15 +351,15 @@ export default class activityParser extends antlr4.Parser { var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 83; + this.state = 85; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===55) { - this.state = 82; + this.state = 84; this.match(activityParser.COLOR_ANNOTATION); } - this.state = 85; + this.state = 87; this.match(activityParser.ACTIVITY_CONTENT); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -379,27 +383,30 @@ export default class activityParser extends antlr4.Parser { var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 87; + this.state = 89; this.ifBlock(); - this.state = 91; + this.state = 93; this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===11) { - this.state = 88; - this.elseIfBlock(); - this.state = 93; + var _alt = this._interp.adaptivePredict(this._input,5,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 90; + this.elseIfBlock(); + } + this.state = 95; this._errHandler.sync(this); - _la = this._input.LA(1); + _alt = this._interp.adaptivePredict(this._input,5,this._ctx); } - this.state = 95; + + this.state = 97; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===10) { - this.state = 94; + if(_la===10 || _la===47) { + this.state = 96; this.elseBlock(); } - this.state = 97; + this.state = 99; this.match(activityParser.ENDIF); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -423,46 +430,46 @@ export default class activityParser extends antlr4.Parser { var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 99; + this.state = 101; this.match(activityParser.IF); - this.state = 100; - this.condition(); this.state = 102; + this.condition(); + this.state = 104; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===9) { - this.state = 101; + this.state = 103; this.match(activityParser.THEN); } - this.state = 105; + this.state = 107; this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===47) { - this.state = 104; + var la_ = this._interp.adaptivePredict(this._input,8,this._ctx); + if(la_===1) { + this.state = 106; this.branchLabel(); - } - this.state = 111; + } + this.state = 113; this._errHandler.sync(this); _la = this._input.LA(1); while((((_la) & ~0x1f) == 0 && ((1 << _la) & 2988613944) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & 312475661) !== 0)) { - this.state = 109; + this.state = 111; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,9,this._ctx); switch(la_) { case 1: - this.state = 107; + this.state = 109; this.statement(); break; case 2: - this.state = 108; + this.state = 110; this.match(activityParser.ARROW); break; } - this.state = 113; + this.state = 115; this._errHandler.sync(this); _la = this._input.LA(1); } @@ -488,46 +495,54 @@ export default class activityParser extends antlr4.Parser { var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 114; - this.match(activityParser.ELSEIF); - this.state = 115; - this.condition(); this.state = 117; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===9) { + if(_la===47) { this.state = 116; - this.match(activityParser.THEN); + this.inboundBranchLabel(); } + this.state = 119; + this.match(activityParser.ELSEIF); this.state = 120; + this.condition(); + this.state = 122; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===47) { - this.state = 119; - this.branchLabel(); + if(_la===9) { + this.state = 121; + this.match(activityParser.THEN); } - this.state = 126; + this.state = 125; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,13,this._ctx); + if(la_===1) { + this.state = 124; + this.branchLabel(); + + } + this.state = 131; this._errHandler.sync(this); _la = this._input.LA(1); while((((_la) & ~0x1f) == 0 && ((1 << _la) & 2988613944) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & 312475661) !== 0)) { - this.state = 124; + this.state = 129; this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,13,this._ctx); + var la_ = this._interp.adaptivePredict(this._input,14,this._ctx); switch(la_) { case 1: - this.state = 122; + this.state = 127; this.statement(); break; case 2: - this.state = 123; + this.state = 128; this.match(activityParser.ARROW); break; } - this.state = 128; + this.state = 133; this._errHandler.sync(this); _la = this._input.LA(1); } @@ -553,36 +568,44 @@ export default class activityParser extends antlr4.Parser { var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 129; + this.state = 135; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===47) { + this.state = 134; + this.inboundBranchLabel(); + } + + this.state = 137; this.match(activityParser.ELSE); - this.state = 131; + this.state = 139; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===47) { - this.state = 130; + this.state = 138; this.branchLabel(); } - this.state = 137; + this.state = 145; this._errHandler.sync(this); _la = this._input.LA(1); while((((_la) & ~0x1f) == 0 && ((1 << _la) & 2988613944) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & 312475661) !== 0)) { - this.state = 135; + this.state = 143; this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,16,this._ctx); + var la_ = this._interp.adaptivePredict(this._input,18,this._ctx); switch(la_) { case 1: - this.state = 133; + this.state = 141; this.statement(); break; case 2: - this.state = 134; + this.state = 142; this.match(activityParser.ARROW); break; } - this.state = 139; + this.state = 147; this._errHandler.sync(this); _la = this._input.LA(1); } @@ -608,21 +631,21 @@ export default class activityParser extends antlr4.Parser { var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 140; + this.state = 148; this.match(activityParser.SWITCH); - this.state = 141; + this.state = 149; this.condition(); - this.state = 145; + this.state = 153; this._errHandler.sync(this); _la = this._input.LA(1); while(_la===18) { - this.state = 142; + this.state = 150; this.caseStatement(); - this.state = 147; + this.state = 155; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 148; + this.state = 156; this.match(activityParser.ENDSWITCH); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -646,30 +669,30 @@ export default class activityParser extends antlr4.Parser { var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 150; + this.state = 158; this.match(activityParser.CASE); - this.state = 151; + this.state = 159; this.condition(); - this.state = 156; + this.state = 164; this._errHandler.sync(this); _la = this._input.LA(1); while((((_la) & ~0x1f) == 0 && ((1 << _la) & 2988613944) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & 312475661) !== 0)) { - this.state = 154; + this.state = 162; this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,19,this._ctx); + var la_ = this._interp.adaptivePredict(this._input,21,this._ctx); switch(la_) { case 1: - this.state = 152; + this.state = 160; this.statement(); break; case 2: - this.state = 153; + this.state = 161; this.match(activityParser.ARROW); break; } - this.state = 158; + this.state = 166; this._errHandler.sync(this); _la = this._input.LA(1); } @@ -695,56 +718,56 @@ export default class activityParser extends antlr4.Parser { var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 159; + this.state = 167; this.match(activityParser.REPEAT); - this.state = 164; + this.state = 172; this._errHandler.sync(this); _la = this._input.LA(1); while((((_la) & ~0x1f) == 0 && ((1 << _la) & 2988613944) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & 312475661) !== 0)) { - this.state = 162; + this.state = 170; this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,21,this._ctx); + var la_ = this._interp.adaptivePredict(this._input,23,this._ctx); switch(la_) { case 1: - this.state = 160; + this.state = 168; this.statement(); break; case 2: - this.state = 161; + this.state = 169; this.match(activityParser.ARROW); break; } - this.state = 166; + this.state = 174; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 169; + this.state = 177; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===30) { - this.state = 167; + this.state = 175; this.match(activityParser.BACKWARD); - this.state = 168; + this.state = 176; this.activity(); } - this.state = 171; + this.state = 179; this.match(activityParser.REPEAT_WHILE); - this.state = 172; + this.state = 180; this.condition(); - this.state = 178; + this.state = 186; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===42) { - this.state = 173; + this.state = 181; this.match(activityParser.IS); - this.state = 174; + this.state = 182; this.branchLabel(); - this.state = 175; + this.state = 183; this.match(activityParser.NOT); - this.state = 176; + this.state = 184; this.branchLabel(); } @@ -770,47 +793,47 @@ export default class activityParser extends antlr4.Parser { var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 180; + this.state = 188; this.match(activityParser.WHILE); - this.state = 181; + this.state = 189; this.condition(); - this.state = 186; + this.state = 194; this._errHandler.sync(this); _la = this._input.LA(1); while((((_la) & ~0x1f) == 0 && ((1 << _la) & 2988613944) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & 312475661) !== 0)) { - this.state = 184; + this.state = 192; this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,25,this._ctx); + var la_ = this._interp.adaptivePredict(this._input,27,this._ctx); switch(la_) { case 1: - this.state = 182; + this.state = 190; this.statement(); break; case 2: - this.state = 183; + this.state = 191; this.match(activityParser.ARROW); break; } - this.state = 188; + this.state = 196; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 189; + this.state = 197; this.match(activityParser.ENDWHILE); - this.state = 193; + this.state = 201; this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===47) { - this.state = 190; + var la_ = this._interp.adaptivePredict(this._input,29,this._ctx); + if(la_===1) { + this.state = 198; this.match(activityParser.LPAREN); - this.state = 191; + this.state = 199; this.match(activityParser.ACTIVITY_LABEL); - this.state = 192; + this.state = 200; this.match(activityParser.RPAREN); - } + } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -833,65 +856,65 @@ export default class activityParser extends antlr4.Parser { var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 195; + this.state = 203; this.match(activityParser.FORK); - this.state = 200; + this.state = 208; this._errHandler.sync(this); _la = this._input.LA(1); while((((_la) & ~0x1f) == 0 && ((1 << _la) & 2988613944) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & 312475661) !== 0)) { - this.state = 198; + this.state = 206; this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,28,this._ctx); + var la_ = this._interp.adaptivePredict(this._input,30,this._ctx); switch(la_) { case 1: - this.state = 196; + this.state = 204; this.statement(); break; case 2: - this.state = 197; + this.state = 205; this.match(activityParser.ARROW); break; } - this.state = 202; + this.state = 210; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 213; + this.state = 221; this._errHandler.sync(this); _la = this._input.LA(1); while(_la===22) { - this.state = 203; + this.state = 211; this.match(activityParser.FORK_AGAIN); - this.state = 208; + this.state = 216; this._errHandler.sync(this); _la = this._input.LA(1); while((((_la) & ~0x1f) == 0 && ((1 << _la) & 2988613944) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & 312475661) !== 0)) { - this.state = 206; + this.state = 214; this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,30,this._ctx); + var la_ = this._interp.adaptivePredict(this._input,32,this._ctx); switch(la_) { case 1: - this.state = 204; + this.state = 212; this.statement(); break; case 2: - this.state = 205; + this.state = 213; this.match(activityParser.ARROW); break; } - this.state = 210; + this.state = 218; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 215; + this.state = 223; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 216; + this.state = 224; _la = this._input.LA(1); if(!(_la===23 || _la===24)) { this._errHandler.recoverInline(this); @@ -900,15 +923,15 @@ export default class activityParser extends antlr4.Parser { this._errHandler.reportMatch(this); this.consume(); } - this.state = 220; + this.state = 228; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===49) { - this.state = 217; + this.state = 225; this.match(activityParser.LBRACE); - this.state = 218; + this.state = 226; this.match(activityParser.ACTIVITY_LABEL); - this.state = 219; + this.state = 227; this.match(activityParser.RBRACE); } @@ -934,65 +957,65 @@ export default class activityParser extends antlr4.Parser { var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 222; + this.state = 230; this.match(activityParser.SPLIT); - this.state = 227; + this.state = 235; this._errHandler.sync(this); _la = this._input.LA(1); while((((_la) & ~0x1f) == 0 && ((1 << _la) & 2988613944) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & 312475661) !== 0)) { - this.state = 225; + this.state = 233; this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,34,this._ctx); + var la_ = this._interp.adaptivePredict(this._input,36,this._ctx); switch(la_) { case 1: - this.state = 223; + this.state = 231; this.statement(); break; case 2: - this.state = 224; + this.state = 232; this.match(activityParser.ARROW); break; } - this.state = 229; + this.state = 237; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 240; + this.state = 248; this._errHandler.sync(this); _la = this._input.LA(1); while(_la===26) { - this.state = 230; + this.state = 238; this.match(activityParser.SPLIT_AGAIN); - this.state = 235; + this.state = 243; this._errHandler.sync(this); _la = this._input.LA(1); while((((_la) & ~0x1f) == 0 && ((1 << _la) & 2988613944) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & 312475661) !== 0)) { - this.state = 233; + this.state = 241; this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,36,this._ctx); + var la_ = this._interp.adaptivePredict(this._input,38,this._ctx); switch(la_) { case 1: - this.state = 231; + this.state = 239; this.statement(); break; case 2: - this.state = 232; + this.state = 240; this.match(activityParser.ARROW); break; } - this.state = 237; + this.state = 245; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 242; + this.state = 250; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 243; + this.state = 251; this.match(activityParser.END_SPLIT); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -1016,21 +1039,21 @@ export default class activityParser extends antlr4.Parser { var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 245; + this.state = 253; this.match(activityParser.NOTE); - this.state = 247; + this.state = 255; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===41) { - this.state = 246; + this.state = 254; this.match(activityParser.FLOATING); } - this.state = 250; + this.state = 258; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===6 || _la===7) { - this.state = 249; + this.state = 257; _la = this._input.LA(1); if(!(_la===6 || _la===7)) { this._errHandler.recoverInline(this); @@ -1041,39 +1064,39 @@ export default class activityParser extends antlr4.Parser { } } - this.state = 252; + this.state = 260; this.match(activityParser.ACTIVITY_LABEL); - this.state = 257; + this.state = 265; this._errHandler.sync(this); - var _alt = this._interp.adaptivePredict(this._input,42,this._ctx) + var _alt = this._interp.adaptivePredict(this._input,44,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { - this.state = 255; + this.state = 263; this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,41,this._ctx); + var la_ = this._interp.adaptivePredict(this._input,43,this._ctx); switch(la_) { case 1: - this.state = 253; + this.state = 261; this.statement(); break; case 2: - this.state = 254; + this.state = 262; this.match(activityParser.ARROW); break; } } - this.state = 259; + this.state = 267; this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,42,this._ctx); + _alt = this._interp.adaptivePredict(this._input,44,this._ctx); } - this.state = 261; + this.state = 269; this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,43,this._ctx); + var la_ = this._interp.adaptivePredict(this._input,45,this._ctx); if(la_===1) { - this.state = 260; + this.state = 268; this.match(activityParser.END_NOTE); } @@ -1099,42 +1122,42 @@ export default class activityParser extends antlr4.Parser { var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 263; + this.state = 271; this.match(activityParser.PARTITION); - this.state = 265; + this.state = 273; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===61) { - this.state = 264; + this.state = 272; this.match(activityParser.ACTIVITY_LABEL); } - this.state = 267; + this.state = 275; this.match(activityParser.LBRACE); - this.state = 272; + this.state = 280; this._errHandler.sync(this); _la = this._input.LA(1); while((((_la) & ~0x1f) == 0 && ((1 << _la) & 2988613944) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & 312475661) !== 0)) { - this.state = 270; + this.state = 278; this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,45,this._ctx); + var la_ = this._interp.adaptivePredict(this._input,47,this._ctx); switch(la_) { case 1: - this.state = 268; + this.state = 276; this.statement(); break; case 2: - this.state = 269; + this.state = 277; this.match(activityParser.ARROW); break; } - this.state = 274; + this.state = 282; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 275; + this.state = 283; this.match(activityParser.RBRACE); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -1158,19 +1181,19 @@ export default class activityParser extends antlr4.Parser { var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 277; + this.state = 285; this.match(activityParser.GROUP); - this.state = 281; + this.state = 289; this._errHandler.sync(this); _la = this._input.LA(1); while((((_la) & ~0x1f) == 0 && ((1 << _la) & 2988613944) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & 312475661) !== 0)) { - this.state = 278; + this.state = 286; this.statement(); - this.state = 283; + this.state = 291; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 284; + this.state = 292; this.match(activityParser.END_GROUP); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -1193,7 +1216,7 @@ export default class activityParser extends antlr4.Parser { this.enterRule(localctx, 32, activityParser.RULE_detachStatement); try { this.enterOuterAlt(localctx, 1); - this.state = 286; + this.state = 294; this.match(activityParser.DETACH); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -1216,7 +1239,7 @@ export default class activityParser extends antlr4.Parser { this.enterRule(localctx, 34, activityParser.RULE_killStatement); try { this.enterOuterAlt(localctx, 1); - this.state = 288; + this.state = 296; this.match(activityParser.KILL); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -1239,9 +1262,9 @@ export default class activityParser extends antlr4.Parser { this.enterRule(localctx, 36, activityParser.RULE_gotoStatement); try { this.enterOuterAlt(localctx, 1); - this.state = 290; + this.state = 298; this.match(activityParser.GOTO); - this.state = 291; + this.state = 299; this.match(activityParser.IDENTIFIER); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -1265,37 +1288,37 @@ export default class activityParser extends antlr4.Parser { var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 293; + this.state = 301; this.match(activityParser.PIPE); - this.state = 298; + this.state = 306; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===51) { - this.state = 294; + this.state = 302; this.match(activityParser.LBRACKET); - this.state = 295; + this.state = 303; this.match(activityParser.COLOR_ANNOTATION); - this.state = 296; + this.state = 304; this.match(activityParser.PIPE); - this.state = 297; + this.state = 305; this.match(activityParser.RBRACKET); } - this.state = 301; + this.state = 309; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===62) { - this.state = 300; + this.state = 308; this.match(activityParser.IDENTIFIER); } - this.state = 303; + this.state = 311; this.match(activityParser.PIPE); - this.state = 305; + this.state = 313; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===61) { - this.state = 304; + this.state = 312; this.match(activityParser.ACTIVITY_LABEL); } @@ -1320,23 +1343,23 @@ export default class activityParser extends antlr4.Parser { this.enterRule(localctx, 40, activityParser.RULE_condition); try { this.enterOuterAlt(localctx, 1); - this.state = 307; + this.state = 315; this.match(activityParser.LPAREN); - this.state = 308; + this.state = 316; this.conditionContent(); - this.state = 309; + this.state = 317; this.match(activityParser.RPAREN); - this.state = 315; + this.state = 323; this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,51,this._ctx); + var la_ = this._interp.adaptivePredict(this._input,53,this._ctx); if(la_===1) { - this.state = 310; + this.state = 318; this.comparisonOperator(); - this.state = 311; + this.state = 319; this.match(activityParser.LPAREN); - this.state = 312; + this.state = 320; this.conditionContent(); - this.state = 313; + this.state = 321; this.match(activityParser.RPAREN); } @@ -1362,7 +1385,7 @@ export default class activityParser extends antlr4.Parser { var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 317; + this.state = 325; _la = this._input.LA(1); if(!(_la===42 || _la===46)) { this._errHandler.recoverInline(this); @@ -1393,11 +1416,11 @@ export default class activityParser extends antlr4.Parser { var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 320; + this.state = 328; this._errHandler.sync(this); _la = this._input.LA(1); do { - this.state = 319; + this.state = 327; _la = this._input.LA(1); if(!(_la===60 || _la===61)) { this._errHandler.recoverInline(this); @@ -1406,7 +1429,7 @@ export default class activityParser extends antlr4.Parser { this._errHandler.reportMatch(this); this.consume(); } - this.state = 322; + this.state = 330; this._errHandler.sync(this); _la = this._input.LA(1); } while(_la===60 || _la===61); @@ -1426,16 +1449,43 @@ export default class activityParser extends antlr4.Parser { + inboundBranchLabel() { + let localctx = new InboundBranchLabelContext(this, this._ctx, this.state); + this.enterRule(localctx, 46, activityParser.RULE_inboundBranchLabel); + try { + this.enterOuterAlt(localctx, 1); + this.state = 332; + this.match(activityParser.LPAREN); + this.state = 333; + this.match(activityParser.ACTIVITY_LABEL); + this.state = 334; + this.match(activityParser.RPAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + branchLabel() { let localctx = new BranchLabelContext(this, this._ctx, this.state); - this.enterRule(localctx, 46, activityParser.RULE_branchLabel); + this.enterRule(localctx, 48, activityParser.RULE_branchLabel); try { this.enterOuterAlt(localctx, 1); - this.state = 324; + this.state = 336; this.match(activityParser.LPAREN); - this.state = 325; + this.state = 337; this.match(activityParser.ACTIVITY_LABEL); - this.state = 326; + this.state = 338; this.match(activityParser.RPAREN); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -1455,12 +1505,12 @@ export default class activityParser extends antlr4.Parser { stereotypeActivity() { let localctx = new StereotypeActivityContext(this, this._ctx, this.state); - this.enterRule(localctx, 48, activityParser.RULE_stereotypeActivity); + this.enterRule(localctx, 50, activityParser.RULE_stereotypeActivity); try { this.enterOuterAlt(localctx, 1); - this.state = 328; + this.state = 340; this.activity(); - this.state = 329; + this.state = 341; this.match(activityParser.STEREOTYPE); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -1570,8 +1620,9 @@ activityParser.RULE_swimlane = 19; activityParser.RULE_condition = 20; activityParser.RULE_comparisonOperator = 21; activityParser.RULE_conditionContent = 22; -activityParser.RULE_branchLabel = 23; -activityParser.RULE_stereotypeActivity = 24; +activityParser.RULE_inboundBranchLabel = 23; +activityParser.RULE_branchLabel = 24; +activityParser.RULE_stereotypeActivity = 25; class ActivityDiagramContext extends antlr4.ParserRuleContext { @@ -1911,6 +1962,10 @@ class ElseIfBlockContext extends antlr4.ParserRuleContext { return this.getTypedRuleContext(ConditionContext,0); }; + inboundBranchLabel() { + return this.getTypedRuleContext(InboundBranchLabelContext,0); + }; + THEN() { return this.getToken(activityParser.THEN, 0); }; @@ -1977,6 +2032,10 @@ class ElseBlockContext extends antlr4.ParserRuleContext { return this.getToken(activityParser.ELSE, 0); }; + inboundBranchLabel() { + return this.getTypedRuleContext(InboundBranchLabelContext,0); + }; + branchLabel() { return this.getTypedRuleContext(BranchLabelContext,0); }; @@ -3006,6 +3065,49 @@ class ConditionContentContext extends antlr4.ParserRuleContext { +class InboundBranchLabelContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = activityParser.RULE_inboundBranchLabel; + } + + LPAREN() { + return this.getToken(activityParser.LPAREN, 0); + }; + + ACTIVITY_LABEL() { + return this.getToken(activityParser.ACTIVITY_LABEL, 0); + }; + + RPAREN() { + return this.getToken(activityParser.RPAREN, 0); + }; + + enterRule(listener) { + if(listener instanceof activityParserListener ) { + listener.enterInboundBranchLabel(this); + } + } + + exitRule(listener) { + if(listener instanceof activityParserListener ) { + listener.exitInboundBranchLabel(this); + } + } + + +} + + + class BranchLabelContext extends antlr4.ParserRuleContext { constructor(parser, parent, invokingState) { @@ -3112,5 +3214,6 @@ activityParser.SwimlaneContext = SwimlaneContext; activityParser.ConditionContext = ConditionContext; activityParser.ComparisonOperatorContext = ComparisonOperatorContext; activityParser.ConditionContentContext = ConditionContentContext; +activityParser.InboundBranchLabelContext = InboundBranchLabelContext; activityParser.BranchLabelContext = BranchLabelContext; activityParser.StereotypeActivityContext = StereotypeActivityContext; diff --git a/src/generated-parser/activityParserListener.js b/src/generated-parser/activityParserListener.js index 699c86a0..d8aeca3a 100644 --- a/src/generated-parser/activityParserListener.js +++ b/src/generated-parser/activityParserListener.js @@ -212,6 +212,15 @@ export default class activityParserListener extends antlr4.tree.ParseTreeListene } + // Enter a parse tree produced by activityParser#inboundBranchLabel. + enterInboundBranchLabel(ctx) { + } + + // Exit a parse tree produced by activityParser#inboundBranchLabel. + exitInboundBranchLabel(ctx) { + } + + // Enter a parse tree produced by activityParser#branchLabel. enterBranchLabel(ctx) { } diff --git a/src/parser/activity/ifStatement.spec.ts b/src/parser/activity/ifStatement.spec.ts index bf835b44..02923ba0 100644 --- a/src/parser/activity/ifStatement.spec.ts +++ b/src/parser/activity/ifStatement.spec.ts @@ -3,18 +3,16 @@ import activityParser from "./index"; describe("If Statement", () => { it("should parse correctly", () => { const code = `@startuml - start - -if (Graphviz installed?) then (yes) +if (Graphviz installed?) then (yes1) :process all\\ndiagrams; -else (no) +(inbound label2) elseif (yes2) + :other action; +(inbound label3) else (no3) :process only __sequence__ and __activity__ diagrams; endif - stop - @enduml `; const result = activityParser.RootContext(code); @@ -27,17 +25,26 @@ stop expect(condition.conditionContent()[0].getFormattedText()).toBe( "Graphviz installed?", ); - const activityLabel = ifBlock.branchLabel().ACTIVITY_LABEL(); - expect(activityLabel.getText()).toBe("yes"); - // Additional test expectations + const activityLabel = ifBlock.branchLabel(); + expect(activityLabel.ACTIVITY_LABEL().getText()).toBe("yes1"); + const elseIfBlock = ifStatement.elseIfBlock()[0]; + const elseIfCondition = elseIfBlock.condition(); + expect(elseIfCondition.conditionContent()[0].getFormattedText()).toBe( + "yes2", + ); + const elseIfInboundLabel = elseIfBlock.inboundBranchLabel(); + expect(elseIfInboundLabel.ACTIVITY_LABEL().getText()).toBe( + "inbound label2", + ); + const elseBlock = ifStatement.elseBlock(); const branchLabel = elseBlock.branchLabel(); const elseLabel = branchLabel.ACTIVITY_LABEL(); - expect(elseLabel.getText()).toBe("no"); - + expect(elseLabel.getText()).toBe("no3"); + const elseInboundLabel = elseBlock.inboundBranchLabel(); + expect(elseInboundLabel.ACTIVITY_LABEL().getText()).toBe("inbound label3"); const elseStatements = elseBlock.statement(); - expect(elseStatements).to.have.lengthOf(1); const firstElseStatement = elseStatements[0].activity(); expect(firstElseStatement.getFormattedText()).toBe(