mirror of
https://github.com/ProtonMail/proton-bridge.git
synced 2025-12-10 04:36:43 +00:00
13327 lines
332 KiB
Go
13327 lines
332 KiB
Go
// Copyright (c) 2020 Proton Technologies AG
|
|
//
|
|
// This file is part of ProtonMail Bridge.
|
|
//
|
|
// ProtonMail Bridge is free software: you can redistribute it and/or modify
|
|
// it under the terms of the GNU General Public License as published by
|
|
// the Free Software Foundation, either version 3 of the License, or
|
|
// (at your option) any later version.
|
|
//
|
|
// ProtonMail Bridge is distributed in the hope that it will be useful,
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
// GNU General Public License for more details.
|
|
//
|
|
// You should have received a copy of the GNU General Public License
|
|
// along with ProtonMail Bridge. If not, see <https://www.gnu.org/licenses/>.
|
|
|
|
// Code generated from RFC5322Parser.g4 by ANTLR 4.8. DO NOT EDIT.
|
|
|
|
package parser // RFC5322Parser
|
|
|
|
import (
|
|
"fmt"
|
|
"reflect"
|
|
"strconv"
|
|
|
|
"github.com/antlr/antlr4/runtime/Go/antlr"
|
|
)
|
|
|
|
// Suppress unused import errors
|
|
var _ = fmt.Printf
|
|
var _ = reflect.Copy
|
|
var _ = strconv.Itoa
|
|
|
|
var parserATN = []uint16{
|
|
3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 3, 72, 1014,
|
|
4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7,
|
|
4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13,
|
|
9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9,
|
|
18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23,
|
|
4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4,
|
|
29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 4, 33, 9, 33, 4, 34,
|
|
9, 34, 4, 35, 9, 35, 4, 36, 9, 36, 4, 37, 9, 37, 4, 38, 9, 38, 4, 39, 9,
|
|
39, 4, 40, 9, 40, 4, 41, 9, 41, 4, 42, 9, 42, 4, 43, 9, 43, 4, 44, 9, 44,
|
|
4, 45, 9, 45, 4, 46, 9, 46, 4, 47, 9, 47, 4, 48, 9, 48, 4, 49, 9, 49, 4,
|
|
50, 9, 50, 4, 51, 9, 51, 4, 52, 9, 52, 4, 53, 9, 53, 4, 54, 9, 54, 4, 55,
|
|
9, 55, 4, 56, 9, 56, 4, 57, 9, 57, 4, 58, 9, 58, 4, 59, 9, 59, 4, 60, 9,
|
|
60, 4, 61, 9, 61, 4, 62, 9, 62, 4, 63, 9, 63, 4, 64, 9, 64, 4, 65, 9, 65,
|
|
4, 66, 9, 66, 4, 67, 9, 67, 3, 2, 3, 2, 5, 2, 137, 10, 2, 3, 3, 3, 3, 3,
|
|
3, 5, 3, 142, 10, 3, 3, 4, 7, 4, 145, 10, 4, 12, 4, 14, 4, 148, 11, 4,
|
|
3, 4, 5, 4, 151, 10, 4, 3, 4, 6, 4, 154, 10, 4, 13, 4, 14, 4, 155, 3, 4,
|
|
5, 4, 159, 10, 4, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5,
|
|
3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5,
|
|
3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5,
|
|
5, 5, 194, 10, 5, 3, 6, 3, 6, 3, 6, 5, 6, 199, 10, 6, 3, 7, 3, 7, 5, 7,
|
|
203, 10, 7, 3, 7, 7, 7, 206, 10, 7, 12, 7, 14, 7, 209, 11, 7, 3, 7, 5,
|
|
7, 212, 10, 7, 3, 7, 3, 7, 3, 8, 5, 8, 217, 10, 8, 3, 8, 6, 8, 220, 10,
|
|
8, 13, 8, 14, 8, 221, 3, 8, 5, 8, 225, 10, 8, 3, 8, 5, 8, 228, 10, 8, 3,
|
|
9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3,
|
|
9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 5, 9, 252, 10,
|
|
9, 3, 10, 6, 10, 255, 10, 10, 13, 10, 14, 10, 256, 3, 11, 6, 11, 260, 10,
|
|
11, 13, 11, 14, 11, 261, 3, 11, 3, 11, 6, 11, 266, 10, 11, 13, 11, 14,
|
|
11, 267, 7, 11, 270, 10, 11, 12, 11, 14, 11, 273, 11, 11, 3, 11, 5, 11,
|
|
276, 10, 11, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3,
|
|
12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12,
|
|
3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3,
|
|
12, 3, 12, 3, 12, 3, 12, 3, 12, 5, 12, 312, 10, 12, 3, 13, 3, 13, 5, 13,
|
|
316, 10, 13, 3, 14, 5, 14, 319, 10, 14, 3, 14, 7, 14, 322, 10, 14, 12,
|
|
14, 14, 14, 325, 11, 14, 3, 15, 3, 15, 3, 15, 5, 15, 330, 10, 15, 3, 15,
|
|
3, 15, 3, 16, 5, 16, 335, 10, 16, 3, 16, 3, 16, 5, 16, 339, 10, 16, 3,
|
|
16, 5, 16, 342, 10, 16, 3, 16, 3, 16, 5, 16, 346, 10, 16, 3, 16, 5, 16,
|
|
349, 10, 16, 3, 16, 3, 16, 5, 16, 353, 10, 16, 3, 16, 5, 16, 356, 10, 16,
|
|
3, 17, 3, 17, 3, 17, 5, 17, 361, 10, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3,
|
|
17, 3, 17, 3, 17, 3, 17, 5, 17, 371, 10, 17, 3, 17, 5, 17, 374, 10, 17,
|
|
3, 17, 5, 17, 377, 10, 17, 3, 17, 3, 17, 3, 18, 5, 18, 382, 10, 18, 3,
|
|
18, 3, 18, 5, 18, 386, 10, 18, 3, 18, 3, 18, 5, 18, 390, 10, 18, 5, 18,
|
|
392, 10, 18, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3,
|
|
19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19,
|
|
3, 19, 3, 19, 5, 19, 415, 10, 19, 3, 20, 5, 20, 418, 10, 20, 3, 20, 3,
|
|
20, 5, 20, 422, 10, 20, 3, 20, 3, 20, 5, 20, 426, 10, 20, 3, 20, 3, 20,
|
|
5, 20, 430, 10, 20, 3, 20, 5, 20, 433, 10, 20, 5, 20, 435, 10, 20, 3, 21,
|
|
3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3,
|
|
21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21,
|
|
3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3,
|
|
21, 3, 21, 3, 21, 3, 21, 5, 21, 473, 10, 21, 3, 22, 3, 22, 3, 22, 3, 22,
|
|
3, 22, 3, 22, 3, 22, 3, 22, 5, 22, 483, 10, 22, 3, 22, 3, 22, 3, 22, 5,
|
|
22, 488, 10, 22, 5, 22, 490, 10, 22, 3, 23, 5, 23, 493, 10, 23, 3, 23,
|
|
3, 23, 5, 23, 497, 10, 23, 3, 23, 5, 23, 500, 10, 23, 3, 23, 3, 23, 5,
|
|
23, 504, 10, 23, 5, 23, 506, 10, 23, 3, 24, 3, 24, 3, 24, 5, 24, 511, 10,
|
|
24, 3, 24, 3, 24, 3, 24, 5, 24, 516, 10, 24, 5, 24, 518, 10, 24, 3, 25,
|
|
3, 25, 3, 25, 5, 25, 523, 10, 25, 3, 25, 3, 25, 3, 25, 5, 25, 528, 10,
|
|
25, 5, 25, 530, 10, 25, 3, 26, 5, 26, 533, 10, 26, 3, 26, 3, 26, 3, 26,
|
|
3, 26, 3, 26, 3, 27, 3, 27, 3, 27, 3, 27, 5, 27, 544, 10, 27, 3, 28, 3,
|
|
28, 5, 28, 548, 10, 28, 3, 29, 3, 29, 5, 29, 552, 10, 29, 3, 30, 5, 30,
|
|
555, 10, 30, 3, 30, 3, 30, 3, 31, 5, 31, 560, 10, 31, 3, 31, 3, 31, 5,
|
|
31, 564, 10, 31, 3, 31, 3, 31, 5, 31, 568, 10, 31, 3, 31, 5, 31, 571, 10,
|
|
31, 3, 32, 3, 32, 3, 32, 5, 32, 576, 10, 32, 3, 32, 3, 32, 5, 32, 580,
|
|
10, 32, 3, 33, 6, 33, 583, 10, 33, 13, 33, 14, 33, 584, 3, 33, 3, 33, 3,
|
|
33, 3, 33, 7, 33, 591, 10, 33, 12, 33, 14, 33, 594, 11, 33, 5, 33, 596,
|
|
10, 33, 3, 34, 3, 34, 3, 34, 7, 34, 601, 10, 34, 12, 34, 14, 34, 604, 11,
|
|
34, 3, 34, 5, 34, 607, 10, 34, 3, 35, 3, 35, 3, 35, 7, 35, 612, 10, 35,
|
|
12, 35, 14, 35, 615, 11, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 5, 35,
|
|
622, 10, 35, 3, 36, 3, 36, 3, 36, 5, 36, 627, 10, 36, 3, 37, 3, 37, 3,
|
|
37, 3, 37, 3, 37, 5, 37, 634, 10, 37, 3, 38, 5, 38, 637, 10, 38, 3, 38,
|
|
3, 38, 5, 38, 641, 10, 38, 3, 38, 5, 38, 644, 10, 38, 3, 38, 3, 38, 5,
|
|
38, 648, 10, 38, 3, 38, 5, 38, 651, 10, 38, 3, 39, 6, 39, 654, 10, 39,
|
|
13, 39, 14, 39, 655, 3, 40, 5, 40, 659, 10, 40, 3, 40, 3, 40, 5, 40, 663,
|
|
10, 40, 3, 40, 5, 40, 666, 10, 40, 3, 40, 3, 40, 5, 40, 670, 10, 40, 3,
|
|
40, 5, 40, 673, 10, 40, 3, 40, 3, 40, 5, 40, 677, 10, 40, 5, 40, 679, 10,
|
|
40, 3, 41, 3, 41, 5, 41, 683, 10, 41, 3, 41, 7, 41, 686, 10, 41, 12, 41,
|
|
14, 41, 689, 11, 41, 3, 41, 5, 41, 692, 10, 41, 3, 41, 3, 41, 3, 42, 3,
|
|
42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42,
|
|
3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3,
|
|
42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 5, 42,
|
|
728, 10, 42, 3, 43, 3, 43, 3, 44, 3, 44, 3, 45, 3, 45, 3, 46, 3, 46, 3,
|
|
46, 3, 46, 3, 46, 5, 46, 741, 10, 46, 3, 47, 6, 47, 744, 10, 47, 13, 47,
|
|
14, 47, 745, 3, 47, 3, 47, 6, 47, 750, 10, 47, 13, 47, 14, 47, 751, 3,
|
|
48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48,
|
|
3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3,
|
|
48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48,
|
|
5, 48, 786, 10, 48, 3, 49, 5, 49, 789, 10, 49, 3, 49, 3, 49, 3, 49, 3,
|
|
49, 3, 49, 5, 49, 796, 10, 49, 3, 50, 3, 50, 3, 50, 3, 51, 3, 51, 7, 51,
|
|
803, 10, 51, 12, 51, 14, 51, 806, 11, 51, 3, 51, 3, 51, 3, 51, 3, 51, 5,
|
|
51, 812, 10, 51, 3, 51, 3, 51, 5, 51, 816, 10, 51, 7, 51, 818, 10, 51,
|
|
12, 51, 14, 51, 821, 11, 51, 3, 52, 5, 52, 824, 10, 52, 3, 52, 7, 52, 827,
|
|
10, 52, 12, 52, 14, 52, 830, 11, 52, 3, 52, 3, 52, 3, 52, 3, 52, 5, 52,
|
|
836, 10, 52, 7, 52, 838, 10, 52, 12, 52, 14, 52, 841, 11, 52, 3, 53, 5,
|
|
53, 844, 10, 53, 3, 53, 7, 53, 847, 10, 53, 12, 53, 14, 53, 850, 11, 53,
|
|
3, 53, 3, 53, 3, 53, 3, 53, 5, 53, 856, 10, 53, 7, 53, 858, 10, 53, 12,
|
|
53, 14, 53, 861, 11, 53, 3, 54, 5, 54, 864, 10, 54, 3, 54, 6, 54, 867,
|
|
10, 54, 13, 54, 14, 54, 868, 3, 54, 5, 54, 872, 10, 54, 3, 55, 3, 55, 3,
|
|
55, 7, 55, 877, 10, 55, 12, 55, 14, 55, 880, 11, 55, 3, 56, 3, 56, 3, 56,
|
|
7, 56, 885, 10, 56, 12, 56, 14, 56, 888, 11, 56, 3, 57, 3, 57, 3, 57, 3,
|
|
57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 58, 3, 58, 3, 59, 3, 59,
|
|
3, 60, 6, 60, 905, 10, 60, 13, 60, 14, 60, 906, 3, 61, 3, 61, 3, 61, 3,
|
|
61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61,
|
|
3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 5, 61, 928, 10, 61, 3, 62, 6, 62, 931,
|
|
10, 62, 13, 62, 14, 62, 932, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63,
|
|
3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3,
|
|
63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63,
|
|
3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 5, 63, 968, 10, 63, 3, 64, 3,
|
|
64, 3, 64, 3, 65, 3, 65, 3, 66, 3, 66, 3, 66, 3, 66, 3, 66, 3, 66, 3, 66,
|
|
3, 66, 3, 66, 3, 66, 3, 66, 3, 66, 3, 66, 3, 66, 3, 66, 3, 66, 3, 66, 3,
|
|
66, 3, 66, 3, 66, 3, 66, 3, 66, 3, 66, 3, 66, 3, 66, 3, 66, 3, 66, 3, 66,
|
|
3, 66, 3, 66, 3, 66, 3, 66, 3, 66, 3, 66, 3, 66, 5, 66, 1010, 10, 66, 3,
|
|
67, 3, 67, 3, 67, 2, 2, 68, 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, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96,
|
|
98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126,
|
|
128, 130, 132, 2, 6, 4, 2, 22, 22, 24, 24, 6, 2, 4, 4, 7, 8, 10, 10, 45,
|
|
45, 4, 2, 5, 5, 11, 11, 3, 2, 47, 72, 2, 1306, 2, 136, 3, 2, 2, 2, 4, 141,
|
|
3, 2, 2, 2, 6, 158, 3, 2, 2, 2, 8, 193, 3, 2, 2, 2, 10, 198, 3, 2, 2, 2,
|
|
12, 200, 3, 2, 2, 2, 14, 227, 3, 2, 2, 2, 16, 251, 3, 2, 2, 2, 18, 254,
|
|
3, 2, 2, 2, 20, 259, 3, 2, 2, 2, 22, 311, 3, 2, 2, 2, 24, 315, 3, 2, 2,
|
|
2, 26, 323, 3, 2, 2, 2, 28, 326, 3, 2, 2, 2, 30, 355, 3, 2, 2, 2, 32, 360,
|
|
3, 2, 2, 2, 34, 391, 3, 2, 2, 2, 36, 414, 3, 2, 2, 2, 38, 434, 3, 2, 2,
|
|
2, 40, 472, 3, 2, 2, 2, 42, 489, 3, 2, 2, 2, 44, 505, 3, 2, 2, 2, 46, 517,
|
|
3, 2, 2, 2, 48, 529, 3, 2, 2, 2, 50, 532, 3, 2, 2, 2, 52, 543, 3, 2, 2,
|
|
2, 54, 547, 3, 2, 2, 2, 56, 551, 3, 2, 2, 2, 58, 554, 3, 2, 2, 2, 60, 570,
|
|
3, 2, 2, 2, 62, 572, 3, 2, 2, 2, 64, 595, 3, 2, 2, 2, 66, 606, 3, 2, 2,
|
|
2, 68, 621, 3, 2, 2, 2, 70, 626, 3, 2, 2, 2, 72, 628, 3, 2, 2, 2, 74, 650,
|
|
3, 2, 2, 2, 76, 653, 3, 2, 2, 2, 78, 678, 3, 2, 2, 2, 80, 680, 3, 2, 2,
|
|
2, 82, 727, 3, 2, 2, 2, 84, 729, 3, 2, 2, 2, 86, 731, 3, 2, 2, 2, 88, 733,
|
|
3, 2, 2, 2, 90, 735, 3, 2, 2, 2, 92, 743, 3, 2, 2, 2, 94, 785, 3, 2, 2,
|
|
2, 96, 788, 3, 2, 2, 2, 98, 797, 3, 2, 2, 2, 100, 804, 3, 2, 2, 2, 102,
|
|
828, 3, 2, 2, 2, 104, 848, 3, 2, 2, 2, 106, 866, 3, 2, 2, 2, 108, 873,
|
|
3, 2, 2, 2, 110, 881, 3, 2, 2, 2, 112, 889, 3, 2, 2, 2, 114, 899, 3, 2,
|
|
2, 2, 116, 901, 3, 2, 2, 2, 118, 904, 3, 2, 2, 2, 120, 927, 3, 2, 2, 2,
|
|
122, 930, 3, 2, 2, 2, 124, 967, 3, 2, 2, 2, 126, 969, 3, 2, 2, 2, 128,
|
|
972, 3, 2, 2, 2, 130, 1009, 3, 2, 2, 2, 132, 1011, 3, 2, 2, 2, 134, 137,
|
|
5, 130, 66, 2, 135, 137, 5, 128, 65, 2, 136, 134, 3, 2, 2, 2, 136, 135,
|
|
3, 2, 2, 2, 137, 3, 3, 2, 2, 2, 138, 139, 7, 36, 2, 2, 139, 142, 5, 2,
|
|
2, 2, 140, 142, 5, 90, 46, 2, 141, 138, 3, 2, 2, 2, 141, 140, 3, 2, 2,
|
|
2, 142, 5, 3, 2, 2, 2, 143, 145, 5, 128, 65, 2, 144, 143, 3, 2, 2, 2, 145,
|
|
148, 3, 2, 2, 2, 146, 144, 3, 2, 2, 2, 146, 147, 3, 2, 2, 2, 147, 149,
|
|
3, 2, 2, 2, 148, 146, 3, 2, 2, 2, 149, 151, 5, 126, 64, 2, 150, 146, 3,
|
|
2, 2, 2, 150, 151, 3, 2, 2, 2, 151, 153, 3, 2, 2, 2, 152, 154, 5, 128,
|
|
65, 2, 153, 152, 3, 2, 2, 2, 154, 155, 3, 2, 2, 2, 155, 153, 3, 2, 2, 2,
|
|
155, 156, 3, 2, 2, 2, 156, 159, 3, 2, 2, 2, 157, 159, 5, 92, 47, 2, 158,
|
|
150, 3, 2, 2, 2, 158, 157, 3, 2, 2, 2, 159, 7, 3, 2, 2, 2, 160, 194, 5,
|
|
132, 67, 2, 161, 194, 7, 12, 2, 2, 162, 194, 7, 13, 2, 2, 163, 194, 7,
|
|
14, 2, 2, 164, 194, 7, 15, 2, 2, 165, 194, 7, 16, 2, 2, 166, 194, 7, 17,
|
|
2, 2, 167, 194, 7, 18, 2, 2, 168, 194, 7, 21, 2, 2, 169, 194, 7, 22, 2,
|
|
2, 170, 194, 7, 23, 2, 2, 171, 194, 7, 24, 2, 2, 172, 194, 7, 25, 2, 2,
|
|
173, 194, 7, 26, 2, 2, 174, 194, 7, 27, 2, 2, 175, 194, 7, 28, 2, 2, 176,
|
|
194, 7, 29, 2, 2, 177, 194, 7, 30, 2, 2, 178, 194, 7, 31, 2, 2, 179, 194,
|
|
7, 32, 2, 2, 180, 194, 7, 33, 2, 2, 181, 194, 7, 34, 2, 2, 182, 194, 7,
|
|
35, 2, 2, 183, 194, 7, 37, 2, 2, 184, 194, 7, 38, 2, 2, 185, 194, 7, 39,
|
|
2, 2, 186, 194, 7, 40, 2, 2, 187, 194, 7, 41, 2, 2, 188, 194, 7, 42, 2,
|
|
2, 189, 194, 7, 43, 2, 2, 190, 194, 7, 44, 2, 2, 191, 194, 5, 86, 44, 2,
|
|
192, 194, 7, 46, 2, 2, 193, 160, 3, 2, 2, 2, 193, 161, 3, 2, 2, 2, 193,
|
|
162, 3, 2, 2, 2, 193, 163, 3, 2, 2, 2, 193, 164, 3, 2, 2, 2, 193, 165,
|
|
3, 2, 2, 2, 193, 166, 3, 2, 2, 2, 193, 167, 3, 2, 2, 2, 193, 168, 3, 2,
|
|
2, 2, 193, 169, 3, 2, 2, 2, 193, 170, 3, 2, 2, 2, 193, 171, 3, 2, 2, 2,
|
|
193, 172, 3, 2, 2, 2, 193, 173, 3, 2, 2, 2, 193, 174, 3, 2, 2, 2, 193,
|
|
175, 3, 2, 2, 2, 193, 176, 3, 2, 2, 2, 193, 177, 3, 2, 2, 2, 193, 178,
|
|
3, 2, 2, 2, 193, 179, 3, 2, 2, 2, 193, 180, 3, 2, 2, 2, 193, 181, 3, 2,
|
|
2, 2, 193, 182, 3, 2, 2, 2, 193, 183, 3, 2, 2, 2, 193, 184, 3, 2, 2, 2,
|
|
193, 185, 3, 2, 2, 2, 193, 186, 3, 2, 2, 2, 193, 187, 3, 2, 2, 2, 193,
|
|
188, 3, 2, 2, 2, 193, 189, 3, 2, 2, 2, 193, 190, 3, 2, 2, 2, 193, 191,
|
|
3, 2, 2, 2, 193, 192, 3, 2, 2, 2, 194, 9, 3, 2, 2, 2, 195, 199, 5, 8, 5,
|
|
2, 196, 199, 5, 4, 3, 2, 197, 199, 5, 12, 7, 2, 198, 195, 3, 2, 2, 2, 198,
|
|
196, 3, 2, 2, 2, 198, 197, 3, 2, 2, 2, 199, 11, 3, 2, 2, 2, 200, 207, 7,
|
|
19, 2, 2, 201, 203, 5, 6, 4, 2, 202, 201, 3, 2, 2, 2, 202, 203, 3, 2, 2,
|
|
2, 203, 204, 3, 2, 2, 2, 204, 206, 5, 10, 6, 2, 205, 202, 3, 2, 2, 2, 206,
|
|
209, 3, 2, 2, 2, 207, 205, 3, 2, 2, 2, 207, 208, 3, 2, 2, 2, 208, 211,
|
|
3, 2, 2, 2, 209, 207, 3, 2, 2, 2, 210, 212, 5, 6, 4, 2, 211, 210, 3, 2,
|
|
2, 2, 211, 212, 3, 2, 2, 2, 212, 213, 3, 2, 2, 2, 213, 214, 7, 20, 2, 2,
|
|
214, 13, 3, 2, 2, 2, 215, 217, 5, 6, 4, 2, 216, 215, 3, 2, 2, 2, 216, 217,
|
|
3, 2, 2, 2, 217, 218, 3, 2, 2, 2, 218, 220, 5, 12, 7, 2, 219, 216, 3, 2,
|
|
2, 2, 220, 221, 3, 2, 2, 2, 221, 219, 3, 2, 2, 2, 221, 222, 3, 2, 2, 2,
|
|
222, 224, 3, 2, 2, 2, 223, 225, 5, 6, 4, 2, 224, 223, 3, 2, 2, 2, 224,
|
|
225, 3, 2, 2, 2, 225, 228, 3, 2, 2, 2, 226, 228, 5, 6, 4, 2, 227, 219,
|
|
3, 2, 2, 2, 227, 226, 3, 2, 2, 2, 228, 15, 3, 2, 2, 2, 229, 252, 5, 132,
|
|
67, 2, 230, 252, 7, 27, 2, 2, 231, 252, 7, 12, 2, 2, 232, 252, 7, 14, 2,
|
|
2, 233, 252, 7, 15, 2, 2, 234, 252, 7, 16, 2, 2, 235, 252, 7, 17, 2, 2,
|
|
236, 252, 7, 18, 2, 2, 237, 252, 7, 21, 2, 2, 238, 252, 7, 22, 2, 2, 239,
|
|
252, 7, 24, 2, 2, 240, 252, 7, 26, 2, 2, 241, 252, 7, 31, 2, 2, 242, 252,
|
|
7, 33, 2, 2, 243, 252, 7, 38, 2, 2, 244, 252, 7, 39, 2, 2, 245, 252, 7,
|
|
40, 2, 2, 246, 252, 7, 41, 2, 2, 247, 252, 7, 42, 2, 2, 248, 252, 7, 43,
|
|
2, 2, 249, 252, 7, 44, 2, 2, 250, 252, 7, 46, 2, 2, 251, 229, 3, 2, 2,
|
|
2, 251, 230, 3, 2, 2, 2, 251, 231, 3, 2, 2, 2, 251, 232, 3, 2, 2, 2, 251,
|
|
233, 3, 2, 2, 2, 251, 234, 3, 2, 2, 2, 251, 235, 3, 2, 2, 2, 251, 236,
|
|
3, 2, 2, 2, 251, 237, 3, 2, 2, 2, 251, 238, 3, 2, 2, 2, 251, 239, 3, 2,
|
|
2, 2, 251, 240, 3, 2, 2, 2, 251, 241, 3, 2, 2, 2, 251, 242, 3, 2, 2, 2,
|
|
251, 243, 3, 2, 2, 2, 251, 244, 3, 2, 2, 2, 251, 245, 3, 2, 2, 2, 251,
|
|
246, 3, 2, 2, 2, 251, 247, 3, 2, 2, 2, 251, 248, 3, 2, 2, 2, 251, 249,
|
|
3, 2, 2, 2, 251, 250, 3, 2, 2, 2, 252, 17, 3, 2, 2, 2, 253, 255, 5, 16,
|
|
9, 2, 254, 253, 3, 2, 2, 2, 255, 256, 3, 2, 2, 2, 256, 254, 3, 2, 2, 2,
|
|
256, 257, 3, 2, 2, 2, 257, 19, 3, 2, 2, 2, 258, 260, 5, 16, 9, 2, 259,
|
|
258, 3, 2, 2, 2, 260, 261, 3, 2, 2, 2, 261, 259, 3, 2, 2, 2, 261, 262,
|
|
3, 2, 2, 2, 262, 271, 3, 2, 2, 2, 263, 265, 7, 25, 2, 2, 264, 266, 5, 16,
|
|
9, 2, 265, 264, 3, 2, 2, 2, 266, 267, 3, 2, 2, 2, 267, 265, 3, 2, 2, 2,
|
|
267, 268, 3, 2, 2, 2, 268, 270, 3, 2, 2, 2, 269, 263, 3, 2, 2, 2, 270,
|
|
273, 3, 2, 2, 2, 271, 269, 3, 2, 2, 2, 271, 272, 3, 2, 2, 2, 272, 275,
|
|
3, 2, 2, 2, 273, 271, 3, 2, 2, 2, 274, 276, 7, 25, 2, 2, 275, 274, 3, 2,
|
|
2, 2, 275, 276, 3, 2, 2, 2, 276, 21, 3, 2, 2, 2, 277, 312, 5, 132, 67,
|
|
2, 278, 312, 7, 12, 2, 2, 279, 312, 7, 14, 2, 2, 280, 312, 7, 15, 2, 2,
|
|
281, 312, 7, 16, 2, 2, 282, 312, 7, 17, 2, 2, 283, 312, 7, 18, 2, 2, 284,
|
|
312, 7, 19, 2, 2, 285, 312, 7, 20, 2, 2, 286, 312, 7, 21, 2, 2, 287, 312,
|
|
7, 22, 2, 2, 288, 312, 7, 23, 2, 2, 289, 312, 7, 24, 2, 2, 290, 312, 7,
|
|
25, 2, 2, 291, 312, 7, 26, 2, 2, 292, 312, 7, 27, 2, 2, 293, 312, 7, 28,
|
|
2, 2, 294, 312, 7, 29, 2, 2, 295, 312, 7, 30, 2, 2, 296, 312, 7, 31, 2,
|
|
2, 297, 312, 7, 32, 2, 2, 298, 312, 7, 33, 2, 2, 299, 312, 7, 34, 2, 2,
|
|
300, 312, 7, 35, 2, 2, 301, 312, 7, 37, 2, 2, 302, 312, 7, 38, 2, 2, 303,
|
|
312, 7, 39, 2, 2, 304, 312, 7, 40, 2, 2, 305, 312, 7, 41, 2, 2, 306, 312,
|
|
7, 42, 2, 2, 307, 312, 7, 43, 2, 2, 308, 312, 7, 44, 2, 2, 309, 312, 5,
|
|
88, 45, 2, 310, 312, 7, 46, 2, 2, 311, 277, 3, 2, 2, 2, 311, 278, 3, 2,
|
|
2, 2, 311, 279, 3, 2, 2, 2, 311, 280, 3, 2, 2, 2, 311, 281, 3, 2, 2, 2,
|
|
311, 282, 3, 2, 2, 2, 311, 283, 3, 2, 2, 2, 311, 284, 3, 2, 2, 2, 311,
|
|
285, 3, 2, 2, 2, 311, 286, 3, 2, 2, 2, 311, 287, 3, 2, 2, 2, 311, 288,
|
|
3, 2, 2, 2, 311, 289, 3, 2, 2, 2, 311, 290, 3, 2, 2, 2, 311, 291, 3, 2,
|
|
2, 2, 311, 292, 3, 2, 2, 2, 311, 293, 3, 2, 2, 2, 311, 294, 3, 2, 2, 2,
|
|
311, 295, 3, 2, 2, 2, 311, 296, 3, 2, 2, 2, 311, 297, 3, 2, 2, 2, 311,
|
|
298, 3, 2, 2, 2, 311, 299, 3, 2, 2, 2, 311, 300, 3, 2, 2, 2, 311, 301,
|
|
3, 2, 2, 2, 311, 302, 3, 2, 2, 2, 311, 303, 3, 2, 2, 2, 311, 304, 3, 2,
|
|
2, 2, 311, 305, 3, 2, 2, 2, 311, 306, 3, 2, 2, 2, 311, 307, 3, 2, 2, 2,
|
|
311, 308, 3, 2, 2, 2, 311, 309, 3, 2, 2, 2, 311, 310, 3, 2, 2, 2, 312,
|
|
23, 3, 2, 2, 2, 313, 316, 5, 22, 12, 2, 314, 316, 5, 4, 3, 2, 315, 313,
|
|
3, 2, 2, 2, 315, 314, 3, 2, 2, 2, 316, 25, 3, 2, 2, 2, 317, 319, 5, 6,
|
|
4, 2, 318, 317, 3, 2, 2, 2, 318, 319, 3, 2, 2, 2, 319, 320, 3, 2, 2, 2,
|
|
320, 322, 5, 24, 13, 2, 321, 318, 3, 2, 2, 2, 322, 325, 3, 2, 2, 2, 323,
|
|
321, 3, 2, 2, 2, 323, 324, 3, 2, 2, 2, 324, 27, 3, 2, 2, 2, 325, 323, 3,
|
|
2, 2, 2, 326, 327, 7, 13, 2, 2, 327, 329, 5, 26, 14, 2, 328, 330, 5, 6,
|
|
4, 2, 329, 328, 3, 2, 2, 2, 329, 330, 3, 2, 2, 2, 330, 331, 3, 2, 2, 2,
|
|
331, 332, 7, 13, 2, 2, 332, 29, 3, 2, 2, 2, 333, 335, 5, 14, 8, 2, 334,
|
|
333, 3, 2, 2, 2, 334, 335, 3, 2, 2, 2, 335, 336, 3, 2, 2, 2, 336, 338,
|
|
5, 112, 57, 2, 337, 339, 5, 14, 8, 2, 338, 337, 3, 2, 2, 2, 338, 339, 3,
|
|
2, 2, 2, 339, 356, 3, 2, 2, 2, 340, 342, 5, 14, 8, 2, 341, 340, 3, 2, 2,
|
|
2, 341, 342, 3, 2, 2, 2, 342, 343, 3, 2, 2, 2, 343, 345, 5, 18, 10, 2,
|
|
344, 346, 5, 14, 8, 2, 345, 344, 3, 2, 2, 2, 345, 346, 3, 2, 2, 2, 346,
|
|
356, 3, 2, 2, 2, 347, 349, 5, 14, 8, 2, 348, 347, 3, 2, 2, 2, 348, 349,
|
|
3, 2, 2, 2, 349, 350, 3, 2, 2, 2, 350, 352, 5, 28, 15, 2, 351, 353, 5,
|
|
14, 8, 2, 352, 351, 3, 2, 2, 2, 352, 353, 3, 2, 2, 2, 353, 356, 3, 2, 2,
|
|
2, 354, 356, 7, 34, 2, 2, 355, 334, 3, 2, 2, 2, 355, 341, 3, 2, 2, 2, 355,
|
|
348, 3, 2, 2, 2, 355, 354, 3, 2, 2, 2, 356, 31, 3, 2, 2, 2, 357, 358, 5,
|
|
34, 18, 2, 358, 359, 7, 23, 2, 2, 359, 361, 3, 2, 2, 2, 360, 357, 3, 2,
|
|
2, 2, 360, 361, 3, 2, 2, 2, 361, 362, 3, 2, 2, 2, 362, 363, 5, 38, 20,
|
|
2, 363, 364, 5, 40, 21, 2, 364, 365, 5, 42, 22, 2, 365, 366, 5, 44, 23,
|
|
2, 366, 367, 7, 28, 2, 2, 367, 370, 5, 46, 24, 2, 368, 369, 7, 28, 2, 2,
|
|
369, 371, 5, 48, 25, 2, 370, 368, 3, 2, 2, 2, 370, 371, 3, 2, 2, 2, 371,
|
|
373, 3, 2, 2, 2, 372, 374, 5, 52, 27, 2, 373, 372, 3, 2, 2, 2, 373, 374,
|
|
3, 2, 2, 2, 374, 376, 3, 2, 2, 2, 375, 377, 5, 14, 8, 2, 376, 375, 3, 2,
|
|
2, 2, 376, 377, 3, 2, 2, 2, 377, 378, 3, 2, 2, 2, 378, 379, 7, 2, 2, 3,
|
|
379, 33, 3, 2, 2, 2, 380, 382, 5, 6, 4, 2, 381, 380, 3, 2, 2, 2, 381, 382,
|
|
3, 2, 2, 2, 382, 383, 3, 2, 2, 2, 383, 392, 5, 36, 19, 2, 384, 386, 5,
|
|
14, 8, 2, 385, 384, 3, 2, 2, 2, 385, 386, 3, 2, 2, 2, 386, 387, 3, 2, 2,
|
|
2, 387, 389, 5, 36, 19, 2, 388, 390, 5, 14, 8, 2, 389, 388, 3, 2, 2, 2,
|
|
389, 390, 3, 2, 2, 2, 390, 392, 3, 2, 2, 2, 391, 381, 3, 2, 2, 2, 391,
|
|
385, 3, 2, 2, 2, 392, 35, 3, 2, 2, 2, 393, 394, 7, 59, 2, 2, 394, 395,
|
|
7, 61, 2, 2, 395, 415, 7, 60, 2, 2, 396, 397, 7, 66, 2, 2, 397, 398, 7,
|
|
67, 2, 2, 398, 415, 7, 51, 2, 2, 399, 400, 7, 69, 2, 2, 400, 401, 7, 51,
|
|
2, 2, 401, 415, 7, 50, 2, 2, 402, 403, 7, 66, 2, 2, 403, 404, 7, 54, 2,
|
|
2, 404, 415, 7, 67, 2, 2, 405, 406, 7, 52, 2, 2, 406, 407, 7, 64, 2, 2,
|
|
407, 415, 7, 55, 2, 2, 408, 409, 7, 65, 2, 2, 409, 410, 7, 47, 2, 2, 410,
|
|
415, 7, 66, 2, 2, 411, 412, 7, 65, 2, 2, 412, 413, 7, 67, 2, 2, 413, 415,
|
|
7, 60, 2, 2, 414, 393, 3, 2, 2, 2, 414, 396, 3, 2, 2, 2, 414, 399, 3, 2,
|
|
2, 2, 414, 402, 3, 2, 2, 2, 414, 405, 3, 2, 2, 2, 414, 408, 3, 2, 2, 2,
|
|
414, 411, 3, 2, 2, 2, 415, 37, 3, 2, 2, 2, 416, 418, 5, 6, 4, 2, 417, 416,
|
|
3, 2, 2, 2, 417, 418, 3, 2, 2, 2, 418, 419, 3, 2, 2, 2, 419, 421, 7, 27,
|
|
2, 2, 420, 422, 7, 27, 2, 2, 421, 420, 3, 2, 2, 2, 421, 422, 3, 2, 2, 2,
|
|
422, 423, 3, 2, 2, 2, 423, 435, 5, 6, 4, 2, 424, 426, 5, 14, 8, 2, 425,
|
|
424, 3, 2, 2, 2, 425, 426, 3, 2, 2, 2, 426, 427, 3, 2, 2, 2, 427, 429,
|
|
7, 27, 2, 2, 428, 430, 7, 27, 2, 2, 429, 428, 3, 2, 2, 2, 429, 430, 3,
|
|
2, 2, 2, 430, 432, 3, 2, 2, 2, 431, 433, 5, 14, 8, 2, 432, 431, 3, 2, 2,
|
|
2, 432, 433, 3, 2, 2, 2, 433, 435, 3, 2, 2, 2, 434, 417, 3, 2, 2, 2, 434,
|
|
425, 3, 2, 2, 2, 435, 39, 3, 2, 2, 2, 436, 437, 7, 56, 2, 2, 437, 438,
|
|
7, 47, 2, 2, 438, 473, 7, 60, 2, 2, 439, 440, 7, 52, 2, 2, 440, 441, 7,
|
|
51, 2, 2, 441, 473, 7, 48, 2, 2, 442, 443, 7, 59, 2, 2, 443, 444, 7, 47,
|
|
2, 2, 444, 473, 7, 64, 2, 2, 445, 446, 7, 47, 2, 2, 446, 447, 7, 62, 2,
|
|
2, 447, 473, 7, 64, 2, 2, 448, 449, 7, 59, 2, 2, 449, 450, 7, 47, 2, 2,
|
|
450, 473, 7, 71, 2, 2, 451, 452, 7, 56, 2, 2, 452, 453, 7, 67, 2, 2, 453,
|
|
473, 7, 60, 2, 2, 454, 455, 7, 56, 2, 2, 455, 456, 7, 67, 2, 2, 456, 473,
|
|
7, 58, 2, 2, 457, 458, 7, 47, 2, 2, 458, 459, 7, 67, 2, 2, 459, 473, 7,
|
|
53, 2, 2, 460, 461, 7, 65, 2, 2, 461, 462, 7, 51, 2, 2, 462, 473, 7, 62,
|
|
2, 2, 463, 464, 7, 61, 2, 2, 464, 465, 7, 49, 2, 2, 465, 473, 7, 66, 2,
|
|
2, 466, 467, 7, 60, 2, 2, 467, 468, 7, 61, 2, 2, 468, 473, 7, 68, 2, 2,
|
|
469, 470, 7, 50, 2, 2, 470, 471, 7, 51, 2, 2, 471, 473, 7, 49, 2, 2, 472,
|
|
436, 3, 2, 2, 2, 472, 439, 3, 2, 2, 2, 472, 442, 3, 2, 2, 2, 472, 445,
|
|
3, 2, 2, 2, 472, 448, 3, 2, 2, 2, 472, 451, 3, 2, 2, 2, 472, 454, 3, 2,
|
|
2, 2, 472, 457, 3, 2, 2, 2, 472, 460, 3, 2, 2, 2, 472, 463, 3, 2, 2, 2,
|
|
472, 466, 3, 2, 2, 2, 472, 469, 3, 2, 2, 2, 473, 41, 3, 2, 2, 2, 474, 475,
|
|
5, 6, 4, 2, 475, 476, 7, 27, 2, 2, 476, 477, 7, 27, 2, 2, 477, 478, 7,
|
|
27, 2, 2, 478, 479, 7, 27, 2, 2, 479, 480, 5, 6, 4, 2, 480, 490, 3, 2,
|
|
2, 2, 481, 483, 5, 14, 8, 2, 482, 481, 3, 2, 2, 2, 482, 483, 3, 2, 2, 2,
|
|
483, 484, 3, 2, 2, 2, 484, 485, 7, 27, 2, 2, 485, 487, 7, 27, 2, 2, 486,
|
|
488, 5, 14, 8, 2, 487, 486, 3, 2, 2, 2, 487, 488, 3, 2, 2, 2, 488, 490,
|
|
3, 2, 2, 2, 489, 474, 3, 2, 2, 2, 489, 482, 3, 2, 2, 2, 490, 43, 3, 2,
|
|
2, 2, 491, 493, 7, 27, 2, 2, 492, 491, 3, 2, 2, 2, 492, 493, 3, 2, 2, 2,
|
|
493, 494, 3, 2, 2, 2, 494, 506, 7, 27, 2, 2, 495, 497, 5, 14, 8, 2, 496,
|
|
495, 3, 2, 2, 2, 496, 497, 3, 2, 2, 2, 497, 499, 3, 2, 2, 2, 498, 500,
|
|
7, 27, 2, 2, 499, 498, 3, 2, 2, 2, 499, 500, 3, 2, 2, 2, 500, 501, 3, 2,
|
|
2, 2, 501, 503, 7, 27, 2, 2, 502, 504, 5, 14, 8, 2, 503, 502, 3, 2, 2,
|
|
2, 503, 504, 3, 2, 2, 2, 504, 506, 3, 2, 2, 2, 505, 492, 3, 2, 2, 2, 505,
|
|
496, 3, 2, 2, 2, 506, 45, 3, 2, 2, 2, 507, 508, 7, 27, 2, 2, 508, 518,
|
|
7, 27, 2, 2, 509, 511, 5, 14, 8, 2, 510, 509, 3, 2, 2, 2, 510, 511, 3,
|
|
2, 2, 2, 511, 512, 3, 2, 2, 2, 512, 513, 7, 27, 2, 2, 513, 515, 7, 27,
|
|
2, 2, 514, 516, 5, 14, 8, 2, 515, 514, 3, 2, 2, 2, 515, 516, 3, 2, 2, 2,
|
|
516, 518, 3, 2, 2, 2, 517, 507, 3, 2, 2, 2, 517, 510, 3, 2, 2, 2, 518,
|
|
47, 3, 2, 2, 2, 519, 520, 7, 27, 2, 2, 520, 530, 7, 27, 2, 2, 521, 523,
|
|
5, 14, 8, 2, 522, 521, 3, 2, 2, 2, 522, 523, 3, 2, 2, 2, 523, 524, 3, 2,
|
|
2, 2, 524, 525, 7, 27, 2, 2, 525, 527, 7, 27, 2, 2, 526, 528, 5, 14, 8,
|
|
2, 527, 526, 3, 2, 2, 2, 527, 528, 3, 2, 2, 2, 528, 530, 3, 2, 2, 2, 529,
|
|
519, 3, 2, 2, 2, 529, 522, 3, 2, 2, 2, 530, 49, 3, 2, 2, 2, 531, 533, 9,
|
|
2, 2, 2, 532, 531, 3, 2, 2, 2, 532, 533, 3, 2, 2, 2, 533, 534, 3, 2, 2,
|
|
2, 534, 535, 7, 27, 2, 2, 535, 536, 7, 27, 2, 2, 536, 537, 7, 27, 2, 2,
|
|
537, 538, 7, 27, 2, 2, 538, 51, 3, 2, 2, 2, 539, 540, 5, 6, 4, 2, 540,
|
|
541, 5, 50, 26, 2, 541, 544, 3, 2, 2, 2, 542, 544, 5, 94, 48, 2, 543, 539,
|
|
3, 2, 2, 2, 543, 542, 3, 2, 2, 2, 544, 53, 3, 2, 2, 2, 545, 548, 5, 56,
|
|
29, 2, 546, 548, 5, 62, 32, 2, 547, 545, 3, 2, 2, 2, 547, 546, 3, 2, 2,
|
|
2, 548, 55, 3, 2, 2, 2, 549, 552, 5, 58, 30, 2, 550, 552, 5, 72, 37, 2,
|
|
551, 549, 3, 2, 2, 2, 551, 550, 3, 2, 2, 2, 552, 57, 3, 2, 2, 2, 553, 555,
|
|
5, 64, 33, 2, 554, 553, 3, 2, 2, 2, 554, 555, 3, 2, 2, 2, 555, 556, 3,
|
|
2, 2, 2, 556, 557, 5, 60, 31, 2, 557, 59, 3, 2, 2, 2, 558, 560, 5, 14,
|
|
8, 2, 559, 558, 3, 2, 2, 2, 559, 560, 3, 2, 2, 2, 560, 561, 3, 2, 2, 2,
|
|
561, 563, 7, 30, 2, 2, 562, 564, 5, 72, 37, 2, 563, 562, 3, 2, 2, 2, 563,
|
|
564, 3, 2, 2, 2, 564, 565, 3, 2, 2, 2, 565, 567, 7, 32, 2, 2, 566, 568,
|
|
5, 14, 8, 2, 567, 566, 3, 2, 2, 2, 567, 568, 3, 2, 2, 2, 568, 571, 3, 2,
|
|
2, 2, 569, 571, 5, 96, 49, 2, 570, 559, 3, 2, 2, 2, 570, 569, 3, 2, 2,
|
|
2, 571, 61, 3, 2, 2, 2, 572, 573, 5, 64, 33, 2, 573, 575, 7, 28, 2, 2,
|
|
574, 576, 5, 70, 36, 2, 575, 574, 3, 2, 2, 2, 575, 576, 3, 2, 2, 2, 576,
|
|
577, 3, 2, 2, 2, 577, 579, 7, 29, 2, 2, 578, 580, 5, 14, 8, 2, 579, 578,
|
|
3, 2, 2, 2, 579, 580, 3, 2, 2, 2, 580, 63, 3, 2, 2, 2, 581, 583, 5, 30,
|
|
16, 2, 582, 581, 3, 2, 2, 2, 583, 584, 3, 2, 2, 2, 584, 582, 3, 2, 2, 2,
|
|
584, 585, 3, 2, 2, 2, 585, 596, 3, 2, 2, 2, 586, 592, 5, 30, 16, 2, 587,
|
|
591, 5, 30, 16, 2, 588, 591, 7, 25, 2, 2, 589, 591, 5, 14, 8, 2, 590, 587,
|
|
3, 2, 2, 2, 590, 588, 3, 2, 2, 2, 590, 589, 3, 2, 2, 2, 591, 594, 3, 2,
|
|
2, 2, 592, 590, 3, 2, 2, 2, 592, 593, 3, 2, 2, 2, 593, 596, 3, 2, 2, 2,
|
|
594, 592, 3, 2, 2, 2, 595, 582, 3, 2, 2, 2, 595, 586, 3, 2, 2, 2, 596,
|
|
65, 3, 2, 2, 2, 597, 602, 5, 56, 29, 2, 598, 599, 7, 23, 2, 2, 599, 601,
|
|
5, 56, 29, 2, 600, 598, 3, 2, 2, 2, 601, 604, 3, 2, 2, 2, 602, 600, 3,
|
|
2, 2, 2, 602, 603, 3, 2, 2, 2, 603, 607, 3, 2, 2, 2, 604, 602, 3, 2, 2,
|
|
2, 605, 607, 5, 102, 52, 2, 606, 597, 3, 2, 2, 2, 606, 605, 3, 2, 2, 2,
|
|
607, 67, 3, 2, 2, 2, 608, 613, 5, 54, 28, 2, 609, 610, 7, 23, 2, 2, 610,
|
|
612, 5, 54, 28, 2, 611, 609, 3, 2, 2, 2, 612, 615, 3, 2, 2, 2, 613, 611,
|
|
3, 2, 2, 2, 613, 614, 3, 2, 2, 2, 614, 616, 3, 2, 2, 2, 615, 613, 3, 2,
|
|
2, 2, 616, 617, 7, 2, 2, 3, 617, 622, 3, 2, 2, 2, 618, 619, 5, 104, 53,
|
|
2, 619, 620, 7, 2, 2, 3, 620, 622, 3, 2, 2, 2, 621, 608, 3, 2, 2, 2, 621,
|
|
618, 3, 2, 2, 2, 622, 69, 3, 2, 2, 2, 623, 627, 5, 66, 34, 2, 624, 627,
|
|
5, 14, 8, 2, 625, 627, 5, 106, 54, 2, 626, 623, 3, 2, 2, 2, 626, 624, 3,
|
|
2, 2, 2, 626, 625, 3, 2, 2, 2, 627, 71, 3, 2, 2, 2, 628, 629, 5, 74, 38,
|
|
2, 629, 630, 7, 34, 2, 2, 630, 633, 5, 78, 40, 2, 631, 632, 7, 28, 2, 2,
|
|
632, 634, 5, 76, 39, 2, 633, 631, 3, 2, 2, 2, 633, 634, 3, 2, 2, 2, 634,
|
|
73, 3, 2, 2, 2, 635, 637, 5, 14, 8, 2, 636, 635, 3, 2, 2, 2, 636, 637,
|
|
3, 2, 2, 2, 637, 638, 3, 2, 2, 2, 638, 640, 5, 20, 11, 2, 639, 641, 5,
|
|
14, 8, 2, 640, 639, 3, 2, 2, 2, 640, 641, 3, 2, 2, 2, 641, 651, 3, 2, 2,
|
|
2, 642, 644, 5, 14, 8, 2, 643, 642, 3, 2, 2, 2, 643, 644, 3, 2, 2, 2, 644,
|
|
645, 3, 2, 2, 2, 645, 647, 5, 28, 15, 2, 646, 648, 5, 14, 8, 2, 647, 646,
|
|
3, 2, 2, 2, 647, 648, 3, 2, 2, 2, 648, 651, 3, 2, 2, 2, 649, 651, 5, 108,
|
|
55, 2, 650, 636, 3, 2, 2, 2, 650, 643, 3, 2, 2, 2, 650, 649, 3, 2, 2, 2,
|
|
651, 75, 3, 2, 2, 2, 652, 654, 7, 27, 2, 2, 653, 652, 3, 2, 2, 2, 654,
|
|
655, 3, 2, 2, 2, 655, 653, 3, 2, 2, 2, 655, 656, 3, 2, 2, 2, 656, 77, 3,
|
|
2, 2, 2, 657, 659, 5, 14, 8, 2, 658, 657, 3, 2, 2, 2, 658, 659, 3, 2, 2,
|
|
2, 659, 660, 3, 2, 2, 2, 660, 662, 5, 20, 11, 2, 661, 663, 5, 14, 8, 2,
|
|
662, 661, 3, 2, 2, 2, 662, 663, 3, 2, 2, 2, 663, 679, 3, 2, 2, 2, 664,
|
|
666, 5, 14, 8, 2, 665, 664, 3, 2, 2, 2, 665, 666, 3, 2, 2, 2, 666, 667,
|
|
3, 2, 2, 2, 667, 669, 5, 80, 41, 2, 668, 670, 5, 14, 8, 2, 669, 668, 3,
|
|
2, 2, 2, 669, 670, 3, 2, 2, 2, 670, 679, 3, 2, 2, 2, 671, 673, 5, 14, 8,
|
|
2, 672, 671, 3, 2, 2, 2, 672, 673, 3, 2, 2, 2, 673, 674, 3, 2, 2, 2, 674,
|
|
676, 5, 110, 56, 2, 675, 677, 5, 14, 8, 2, 676, 675, 3, 2, 2, 2, 676, 677,
|
|
3, 2, 2, 2, 677, 679, 3, 2, 2, 2, 678, 658, 3, 2, 2, 2, 678, 665, 3, 2,
|
|
2, 2, 678, 672, 3, 2, 2, 2, 679, 79, 3, 2, 2, 2, 680, 687, 7, 35, 2, 2,
|
|
681, 683, 5, 6, 4, 2, 682, 681, 3, 2, 2, 2, 682, 683, 3, 2, 2, 2, 683,
|
|
684, 3, 2, 2, 2, 684, 686, 5, 82, 42, 2, 685, 682, 3, 2, 2, 2, 686, 689,
|
|
3, 2, 2, 2, 687, 685, 3, 2, 2, 2, 687, 688, 3, 2, 2, 2, 688, 691, 3, 2,
|
|
2, 2, 689, 687, 3, 2, 2, 2, 690, 692, 5, 6, 4, 2, 691, 690, 3, 2, 2, 2,
|
|
691, 692, 3, 2, 2, 2, 692, 693, 3, 2, 2, 2, 693, 694, 7, 37, 2, 2, 694,
|
|
81, 3, 2, 2, 2, 695, 728, 5, 132, 67, 2, 696, 728, 7, 12, 2, 2, 697, 728,
|
|
7, 13, 2, 2, 698, 728, 7, 14, 2, 2, 699, 728, 7, 15, 2, 2, 700, 728, 7,
|
|
16, 2, 2, 701, 728, 7, 17, 2, 2, 702, 728, 7, 18, 2, 2, 703, 728, 7, 19,
|
|
2, 2, 704, 728, 7, 20, 2, 2, 705, 728, 7, 21, 2, 2, 706, 728, 7, 22, 2,
|
|
2, 707, 728, 7, 23, 2, 2, 708, 728, 7, 24, 2, 2, 709, 728, 7, 25, 2, 2,
|
|
710, 728, 7, 26, 2, 2, 711, 728, 7, 27, 2, 2, 712, 728, 7, 28, 2, 2, 713,
|
|
728, 7, 29, 2, 2, 714, 728, 7, 30, 2, 2, 715, 728, 7, 31, 2, 2, 716, 728,
|
|
7, 32, 2, 2, 717, 728, 7, 33, 2, 2, 718, 728, 7, 34, 2, 2, 719, 728, 7,
|
|
38, 2, 2, 720, 728, 7, 39, 2, 2, 721, 728, 7, 40, 2, 2, 722, 728, 7, 41,
|
|
2, 2, 723, 728, 7, 42, 2, 2, 724, 728, 7, 43, 2, 2, 725, 728, 7, 44, 2,
|
|
2, 726, 728, 7, 46, 2, 2, 727, 695, 3, 2, 2, 2, 727, 696, 3, 2, 2, 2, 727,
|
|
697, 3, 2, 2, 2, 727, 698, 3, 2, 2, 2, 727, 699, 3, 2, 2, 2, 727, 700,
|
|
3, 2, 2, 2, 727, 701, 3, 2, 2, 2, 727, 702, 3, 2, 2, 2, 727, 703, 3, 2,
|
|
2, 2, 727, 704, 3, 2, 2, 2, 727, 705, 3, 2, 2, 2, 727, 706, 3, 2, 2, 2,
|
|
727, 707, 3, 2, 2, 2, 727, 708, 3, 2, 2, 2, 727, 709, 3, 2, 2, 2, 727,
|
|
710, 3, 2, 2, 2, 727, 711, 3, 2, 2, 2, 727, 712, 3, 2, 2, 2, 727, 713,
|
|
3, 2, 2, 2, 727, 714, 3, 2, 2, 2, 727, 715, 3, 2, 2, 2, 727, 716, 3, 2,
|
|
2, 2, 727, 717, 3, 2, 2, 2, 727, 718, 3, 2, 2, 2, 727, 719, 3, 2, 2, 2,
|
|
727, 720, 3, 2, 2, 2, 727, 721, 3, 2, 2, 2, 727, 722, 3, 2, 2, 2, 727,
|
|
723, 3, 2, 2, 2, 727, 724, 3, 2, 2, 2, 727, 725, 3, 2, 2, 2, 727, 726,
|
|
3, 2, 2, 2, 728, 83, 3, 2, 2, 2, 729, 730, 9, 3, 2, 2, 730, 85, 3, 2, 2,
|
|
2, 731, 732, 5, 84, 43, 2, 732, 87, 3, 2, 2, 2, 733, 734, 5, 84, 43, 2,
|
|
734, 89, 3, 2, 2, 2, 735, 740, 7, 36, 2, 2, 736, 741, 7, 3, 2, 2, 737,
|
|
741, 5, 84, 43, 2, 738, 741, 7, 6, 2, 2, 739, 741, 7, 9, 2, 2, 740, 736,
|
|
3, 2, 2, 2, 740, 737, 3, 2, 2, 2, 740, 738, 3, 2, 2, 2, 740, 739, 3, 2,
|
|
2, 2, 741, 91, 3, 2, 2, 2, 742, 744, 5, 128, 65, 2, 743, 742, 3, 2, 2,
|
|
2, 744, 745, 3, 2, 2, 2, 745, 743, 3, 2, 2, 2, 745, 746, 3, 2, 2, 2, 746,
|
|
747, 3, 2, 2, 2, 747, 749, 5, 126, 64, 2, 748, 750, 5, 128, 65, 2, 749,
|
|
748, 3, 2, 2, 2, 750, 751, 3, 2, 2, 2, 751, 749, 3, 2, 2, 2, 751, 752,
|
|
3, 2, 2, 2, 752, 93, 3, 2, 2, 2, 753, 754, 7, 67, 2, 2, 754, 786, 7, 66,
|
|
2, 2, 755, 756, 7, 67, 2, 2, 756, 757, 7, 66, 2, 2, 757, 786, 7, 49, 2,
|
|
2, 758, 759, 7, 53, 2, 2, 759, 760, 7, 59, 2, 2, 760, 786, 7, 66, 2, 2,
|
|
761, 762, 7, 51, 2, 2, 762, 763, 7, 65, 2, 2, 763, 786, 7, 66, 2, 2, 764,
|
|
765, 7, 51, 2, 2, 765, 766, 7, 50, 2, 2, 766, 786, 7, 66, 2, 2, 767, 768,
|
|
7, 49, 2, 2, 768, 769, 7, 65, 2, 2, 769, 786, 7, 66, 2, 2, 770, 771, 7,
|
|
49, 2, 2, 771, 772, 7, 50, 2, 2, 772, 786, 7, 66, 2, 2, 773, 774, 7, 59,
|
|
2, 2, 774, 775, 7, 65, 2, 2, 775, 786, 7, 66, 2, 2, 776, 777, 7, 59, 2,
|
|
2, 777, 778, 7, 50, 2, 2, 778, 786, 7, 66, 2, 2, 779, 780, 7, 62, 2, 2,
|
|
780, 781, 7, 65, 2, 2, 781, 786, 7, 66, 2, 2, 782, 783, 7, 62, 2, 2, 783,
|
|
784, 7, 50, 2, 2, 784, 786, 7, 66, 2, 2, 785, 753, 3, 2, 2, 2, 785, 755,
|
|
3, 2, 2, 2, 785, 758, 3, 2, 2, 2, 785, 761, 3, 2, 2, 2, 785, 764, 3, 2,
|
|
2, 2, 785, 767, 3, 2, 2, 2, 785, 770, 3, 2, 2, 2, 785, 773, 3, 2, 2, 2,
|
|
785, 776, 3, 2, 2, 2, 785, 779, 3, 2, 2, 2, 785, 782, 3, 2, 2, 2, 786,
|
|
95, 3, 2, 2, 2, 787, 789, 5, 14, 8, 2, 788, 787, 3, 2, 2, 2, 788, 789,
|
|
3, 2, 2, 2, 789, 790, 3, 2, 2, 2, 790, 791, 7, 30, 2, 2, 791, 792, 5, 98,
|
|
50, 2, 792, 793, 5, 72, 37, 2, 793, 795, 7, 32, 2, 2, 794, 796, 5, 14,
|
|
8, 2, 795, 794, 3, 2, 2, 2, 795, 796, 3, 2, 2, 2, 796, 97, 3, 2, 2, 2,
|
|
797, 798, 5, 100, 51, 2, 798, 799, 7, 28, 2, 2, 799, 99, 3, 2, 2, 2, 800,
|
|
803, 5, 14, 8, 2, 801, 803, 7, 23, 2, 2, 802, 800, 3, 2, 2, 2, 802, 801,
|
|
3, 2, 2, 2, 803, 806, 3, 2, 2, 2, 804, 802, 3, 2, 2, 2, 804, 805, 3, 2,
|
|
2, 2, 805, 807, 3, 2, 2, 2, 806, 804, 3, 2, 2, 2, 807, 808, 7, 34, 2, 2,
|
|
808, 819, 5, 78, 40, 2, 809, 811, 7, 23, 2, 2, 810, 812, 5, 14, 8, 2, 811,
|
|
810, 3, 2, 2, 2, 811, 812, 3, 2, 2, 2, 812, 815, 3, 2, 2, 2, 813, 814,
|
|
7, 34, 2, 2, 814, 816, 5, 78, 40, 2, 815, 813, 3, 2, 2, 2, 815, 816, 3,
|
|
2, 2, 2, 816, 818, 3, 2, 2, 2, 817, 809, 3, 2, 2, 2, 818, 821, 3, 2, 2,
|
|
2, 819, 817, 3, 2, 2, 2, 819, 820, 3, 2, 2, 2, 820, 101, 3, 2, 2, 2, 821,
|
|
819, 3, 2, 2, 2, 822, 824, 5, 14, 8, 2, 823, 822, 3, 2, 2, 2, 823, 824,
|
|
3, 2, 2, 2, 824, 825, 3, 2, 2, 2, 825, 827, 7, 23, 2, 2, 826, 823, 3, 2,
|
|
2, 2, 827, 830, 3, 2, 2, 2, 828, 826, 3, 2, 2, 2, 828, 829, 3, 2, 2, 2,
|
|
829, 831, 3, 2, 2, 2, 830, 828, 3, 2, 2, 2, 831, 839, 5, 56, 29, 2, 832,
|
|
835, 7, 23, 2, 2, 833, 836, 5, 56, 29, 2, 834, 836, 5, 14, 8, 2, 835, 833,
|
|
3, 2, 2, 2, 835, 834, 3, 2, 2, 2, 835, 836, 3, 2, 2, 2, 836, 838, 3, 2,
|
|
2, 2, 837, 832, 3, 2, 2, 2, 838, 841, 3, 2, 2, 2, 839, 837, 3, 2, 2, 2,
|
|
839, 840, 3, 2, 2, 2, 840, 103, 3, 2, 2, 2, 841, 839, 3, 2, 2, 2, 842,
|
|
844, 5, 14, 8, 2, 843, 842, 3, 2, 2, 2, 843, 844, 3, 2, 2, 2, 844, 845,
|
|
3, 2, 2, 2, 845, 847, 7, 23, 2, 2, 846, 843, 3, 2, 2, 2, 847, 850, 3, 2,
|
|
2, 2, 848, 846, 3, 2, 2, 2, 848, 849, 3, 2, 2, 2, 849, 851, 3, 2, 2, 2,
|
|
850, 848, 3, 2, 2, 2, 851, 859, 5, 54, 28, 2, 852, 855, 7, 23, 2, 2, 853,
|
|
856, 5, 54, 28, 2, 854, 856, 5, 14, 8, 2, 855, 853, 3, 2, 2, 2, 855, 854,
|
|
3, 2, 2, 2, 855, 856, 3, 2, 2, 2, 856, 858, 3, 2, 2, 2, 857, 852, 3, 2,
|
|
2, 2, 858, 861, 3, 2, 2, 2, 859, 857, 3, 2, 2, 2, 859, 860, 3, 2, 2, 2,
|
|
860, 105, 3, 2, 2, 2, 861, 859, 3, 2, 2, 2, 862, 864, 5, 14, 8, 2, 863,
|
|
862, 3, 2, 2, 2, 863, 864, 3, 2, 2, 2, 864, 865, 3, 2, 2, 2, 865, 867,
|
|
7, 23, 2, 2, 866, 863, 3, 2, 2, 2, 867, 868, 3, 2, 2, 2, 868, 866, 3, 2,
|
|
2, 2, 868, 869, 3, 2, 2, 2, 869, 871, 3, 2, 2, 2, 870, 872, 5, 14, 8, 2,
|
|
871, 870, 3, 2, 2, 2, 871, 872, 3, 2, 2, 2, 872, 107, 3, 2, 2, 2, 873,
|
|
878, 5, 30, 16, 2, 874, 875, 7, 25, 2, 2, 875, 877, 5, 30, 16, 2, 876,
|
|
874, 3, 2, 2, 2, 877, 880, 3, 2, 2, 2, 878, 876, 3, 2, 2, 2, 878, 879,
|
|
3, 2, 2, 2, 879, 109, 3, 2, 2, 2, 880, 878, 3, 2, 2, 2, 881, 886, 5, 18,
|
|
10, 2, 882, 883, 7, 25, 2, 2, 883, 885, 5, 18, 10, 2, 884, 882, 3, 2, 2,
|
|
2, 885, 888, 3, 2, 2, 2, 886, 884, 3, 2, 2, 2, 886, 887, 3, 2, 2, 2, 887,
|
|
111, 3, 2, 2, 2, 888, 886, 3, 2, 2, 2, 889, 890, 7, 31, 2, 2, 890, 891,
|
|
7, 33, 2, 2, 891, 892, 5, 114, 58, 2, 892, 893, 7, 33, 2, 2, 893, 894,
|
|
5, 116, 59, 2, 894, 895, 7, 33, 2, 2, 895, 896, 5, 122, 62, 2, 896, 897,
|
|
7, 33, 2, 2, 897, 898, 7, 31, 2, 2, 898, 113, 3, 2, 2, 2, 899, 900, 5,
|
|
118, 60, 2, 900, 115, 3, 2, 2, 2, 901, 902, 5, 118, 60, 2, 902, 117, 3,
|
|
2, 2, 2, 903, 905, 5, 120, 61, 2, 904, 903, 3, 2, 2, 2, 905, 906, 3, 2,
|
|
2, 2, 906, 904, 3, 2, 2, 2, 906, 907, 3, 2, 2, 2, 907, 119, 3, 2, 2, 2,
|
|
908, 928, 5, 132, 67, 2, 909, 928, 7, 12, 2, 2, 910, 928, 7, 14, 2, 2,
|
|
911, 928, 7, 15, 2, 2, 912, 928, 7, 16, 2, 2, 913, 928, 7, 17, 2, 2, 914,
|
|
928, 7, 18, 2, 2, 915, 928, 7, 21, 2, 2, 916, 928, 7, 22, 2, 2, 917, 928,
|
|
7, 24, 2, 2, 918, 928, 7, 27, 2, 2, 919, 928, 7, 36, 2, 2, 920, 928, 7,
|
|
38, 2, 2, 921, 928, 7, 39, 2, 2, 922, 928, 7, 40, 2, 2, 923, 928, 7, 41,
|
|
2, 2, 924, 928, 7, 42, 2, 2, 925, 928, 7, 43, 2, 2, 926, 928, 7, 44, 2,
|
|
2, 927, 908, 3, 2, 2, 2, 927, 909, 3, 2, 2, 2, 927, 910, 3, 2, 2, 2, 927,
|
|
911, 3, 2, 2, 2, 927, 912, 3, 2, 2, 2, 927, 913, 3, 2, 2, 2, 927, 914,
|
|
3, 2, 2, 2, 927, 915, 3, 2, 2, 2, 927, 916, 3, 2, 2, 2, 927, 917, 3, 2,
|
|
2, 2, 927, 918, 3, 2, 2, 2, 927, 919, 3, 2, 2, 2, 927, 920, 3, 2, 2, 2,
|
|
927, 921, 3, 2, 2, 2, 927, 922, 3, 2, 2, 2, 927, 923, 3, 2, 2, 2, 927,
|
|
924, 3, 2, 2, 2, 927, 925, 3, 2, 2, 2, 927, 926, 3, 2, 2, 2, 928, 121,
|
|
3, 2, 2, 2, 929, 931, 5, 124, 63, 2, 930, 929, 3, 2, 2, 2, 931, 932, 3,
|
|
2, 2, 2, 932, 930, 3, 2, 2, 2, 932, 933, 3, 2, 2, 2, 933, 123, 3, 2, 2,
|
|
2, 934, 968, 5, 132, 67, 2, 935, 968, 7, 12, 2, 2, 936, 968, 7, 13, 2,
|
|
2, 937, 968, 7, 14, 2, 2, 938, 968, 7, 15, 2, 2, 939, 968, 7, 16, 2, 2,
|
|
940, 968, 7, 17, 2, 2, 941, 968, 7, 18, 2, 2, 942, 968, 7, 19, 2, 2, 943,
|
|
968, 7, 20, 2, 2, 944, 968, 7, 21, 2, 2, 945, 968, 7, 22, 2, 2, 946, 968,
|
|
7, 23, 2, 2, 947, 968, 7, 24, 2, 2, 948, 968, 7, 25, 2, 2, 949, 968, 7,
|
|
26, 2, 2, 950, 968, 7, 27, 2, 2, 951, 968, 7, 28, 2, 2, 952, 968, 7, 29,
|
|
2, 2, 953, 968, 7, 30, 2, 2, 954, 968, 7, 31, 2, 2, 955, 968, 7, 32, 2,
|
|
2, 956, 968, 7, 34, 2, 2, 957, 968, 7, 35, 2, 2, 958, 968, 7, 36, 2, 2,
|
|
959, 968, 7, 37, 2, 2, 960, 968, 7, 38, 2, 2, 961, 968, 7, 39, 2, 2, 962,
|
|
968, 7, 40, 2, 2, 963, 968, 7, 41, 2, 2, 964, 968, 7, 42, 2, 2, 965, 968,
|
|
7, 43, 2, 2, 966, 968, 7, 44, 2, 2, 967, 934, 3, 2, 2, 2, 967, 935, 3,
|
|
2, 2, 2, 967, 936, 3, 2, 2, 2, 967, 937, 3, 2, 2, 2, 967, 938, 3, 2, 2,
|
|
2, 967, 939, 3, 2, 2, 2, 967, 940, 3, 2, 2, 2, 967, 941, 3, 2, 2, 2, 967,
|
|
942, 3, 2, 2, 2, 967, 943, 3, 2, 2, 2, 967, 944, 3, 2, 2, 2, 967, 945,
|
|
3, 2, 2, 2, 967, 946, 3, 2, 2, 2, 967, 947, 3, 2, 2, 2, 967, 948, 3, 2,
|
|
2, 2, 967, 949, 3, 2, 2, 2, 967, 950, 3, 2, 2, 2, 967, 951, 3, 2, 2, 2,
|
|
967, 952, 3, 2, 2, 2, 967, 953, 3, 2, 2, 2, 967, 954, 3, 2, 2, 2, 967,
|
|
955, 3, 2, 2, 2, 967, 956, 3, 2, 2, 2, 967, 957, 3, 2, 2, 2, 967, 958,
|
|
3, 2, 2, 2, 967, 959, 3, 2, 2, 2, 967, 960, 3, 2, 2, 2, 967, 961, 3, 2,
|
|
2, 2, 967, 962, 3, 2, 2, 2, 967, 963, 3, 2, 2, 2, 967, 964, 3, 2, 2, 2,
|
|
967, 965, 3, 2, 2, 2, 967, 966, 3, 2, 2, 2, 968, 125, 3, 2, 2, 2, 969,
|
|
970, 7, 9, 2, 2, 970, 971, 7, 6, 2, 2, 971, 127, 3, 2, 2, 2, 972, 973,
|
|
9, 4, 2, 2, 973, 129, 3, 2, 2, 2, 974, 1010, 5, 132, 67, 2, 975, 1010,
|
|
7, 12, 2, 2, 976, 1010, 7, 13, 2, 2, 977, 1010, 7, 14, 2, 2, 978, 1010,
|
|
7, 15, 2, 2, 979, 1010, 7, 16, 2, 2, 980, 1010, 7, 17, 2, 2, 981, 1010,
|
|
7, 18, 2, 2, 982, 1010, 7, 19, 2, 2, 983, 1010, 7, 20, 2, 2, 984, 1010,
|
|
7, 21, 2, 2, 985, 1010, 7, 22, 2, 2, 986, 1010, 7, 23, 2, 2, 987, 1010,
|
|
7, 24, 2, 2, 988, 1010, 7, 25, 2, 2, 989, 1010, 7, 26, 2, 2, 990, 1010,
|
|
7, 27, 2, 2, 991, 1010, 7, 28, 2, 2, 992, 1010, 7, 29, 2, 2, 993, 1010,
|
|
7, 30, 2, 2, 994, 1010, 7, 31, 2, 2, 995, 1010, 7, 32, 2, 2, 996, 1010,
|
|
7, 33, 2, 2, 997, 1010, 7, 34, 2, 2, 998, 1010, 7, 35, 2, 2, 999, 1010,
|
|
7, 36, 2, 2, 1000, 1010, 7, 37, 2, 2, 1001, 1010, 7, 38, 2, 2, 1002, 1010,
|
|
7, 39, 2, 2, 1003, 1010, 7, 40, 2, 2, 1004, 1010, 7, 41, 2, 2, 1005, 1010,
|
|
7, 42, 2, 2, 1006, 1010, 7, 43, 2, 2, 1007, 1010, 7, 44, 2, 2, 1008, 1010,
|
|
7, 46, 2, 2, 1009, 974, 3, 2, 2, 2, 1009, 975, 3, 2, 2, 2, 1009, 976, 3,
|
|
2, 2, 2, 1009, 977, 3, 2, 2, 2, 1009, 978, 3, 2, 2, 2, 1009, 979, 3, 2,
|
|
2, 2, 1009, 980, 3, 2, 2, 2, 1009, 981, 3, 2, 2, 2, 1009, 982, 3, 2, 2,
|
|
2, 1009, 983, 3, 2, 2, 2, 1009, 984, 3, 2, 2, 2, 1009, 985, 3, 2, 2, 2,
|
|
1009, 986, 3, 2, 2, 2, 1009, 987, 3, 2, 2, 2, 1009, 988, 3, 2, 2, 2, 1009,
|
|
989, 3, 2, 2, 2, 1009, 990, 3, 2, 2, 2, 1009, 991, 3, 2, 2, 2, 1009, 992,
|
|
3, 2, 2, 2, 1009, 993, 3, 2, 2, 2, 1009, 994, 3, 2, 2, 2, 1009, 995, 3,
|
|
2, 2, 2, 1009, 996, 3, 2, 2, 2, 1009, 997, 3, 2, 2, 2, 1009, 998, 3, 2,
|
|
2, 2, 1009, 999, 3, 2, 2, 2, 1009, 1000, 3, 2, 2, 2, 1009, 1001, 3, 2,
|
|
2, 2, 1009, 1002, 3, 2, 2, 2, 1009, 1003, 3, 2, 2, 2, 1009, 1004, 3, 2,
|
|
2, 2, 1009, 1005, 3, 2, 2, 2, 1009, 1006, 3, 2, 2, 2, 1009, 1007, 3, 2,
|
|
2, 2, 1009, 1008, 3, 2, 2, 2, 1010, 131, 3, 2, 2, 2, 1011, 1012, 9, 5,
|
|
2, 2, 1012, 133, 3, 2, 2, 2, 132, 136, 141, 146, 150, 155, 158, 193, 198,
|
|
202, 207, 211, 216, 221, 224, 227, 251, 256, 261, 267, 271, 275, 311, 315,
|
|
318, 323, 329, 334, 338, 341, 345, 348, 352, 355, 360, 370, 373, 376, 381,
|
|
385, 389, 391, 414, 417, 421, 425, 429, 432, 434, 472, 482, 487, 489, 492,
|
|
496, 499, 503, 505, 510, 515, 517, 522, 527, 529, 532, 543, 547, 551, 554,
|
|
559, 563, 567, 570, 575, 579, 584, 590, 592, 595, 602, 606, 613, 621, 626,
|
|
633, 636, 640, 643, 647, 650, 655, 658, 662, 665, 669, 672, 676, 678, 682,
|
|
687, 691, 727, 740, 745, 751, 785, 788, 795, 802, 804, 811, 815, 819, 823,
|
|
828, 835, 839, 843, 848, 855, 859, 863, 868, 871, 878, 886, 906, 927, 932,
|
|
967, 1009,
|
|
}
|
|
var deserializer = antlr.NewATNDeserializer(nil)
|
|
var deserializedATN = deserializer.DeserializeFromUInt16(parserATN)
|
|
|
|
var literalNames = []string{
|
|
"", "'\u0000'", "", "'\t'", "'\n'", "'\u000B'", "'\u000C'", "'\r'", "",
|
|
"' '", "'!'", "'\"'", "'#'", "'$'", "'%'", "'&'", "'''", "'('", "')'",
|
|
"'*'", "'+'", "','", "'-'", "'.'", "'/'", "", "':'", "';'", "'<'", "'='",
|
|
"'>'", "'?'", "'@'", "'['", "'\\'", "']'", "'^'", "'_'", "'`'", "'{'",
|
|
"'|'", "'}'", "'~'", "'\u007F'",
|
|
}
|
|
var symbolicNames = []string{
|
|
"", "U_00", "U_01_08", "TAB", "LF", "U_0B", "U_0C", "CR", "U_0E_1F", "SP",
|
|
"Exclamation", "DQuote", "Hash", "Dollar", "Percent", "Ampersand", "SQuote",
|
|
"LParens", "RParens", "Asterisk", "Plus", "Comma", "Minus", "Period", "Slash",
|
|
"Digit", "Colon", "Semicolon", "Less", "Equal", "Greater", "Question",
|
|
"At", "LBracket", "Backslash", "RBracket", "Caret", "Underscore", "Backtick",
|
|
"LCurly", "Pipe", "RCurly", "Tilde", "Delete", "UTF8NonAscii", "A", "B",
|
|
"C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q",
|
|
"R", "S", "T", "U", "V", "W", "X", "Y", "Z",
|
|
}
|
|
|
|
var ruleNames = []string{
|
|
"quotedChar", "quotedPair", "fws", "ctext", "ccontent", "comment", "cfws",
|
|
"atext", "atom", "dotAtom", "qtext", "quotedContent", "quotedValue", "quotedString",
|
|
"word", "dateTime", "dayOfweek", "dayName", "day", "month", "year", "hour",
|
|
"minute", "second", "offset", "zone", "address", "mailbox", "nameAddr",
|
|
"angleAddr", "group", "displayName", "mailboxList", "addressList", "groupList",
|
|
"addrSpec", "localPart", "port", "domain", "domainLiteral", "dtext", "obsNoWSCTL",
|
|
"obsCtext", "obsQtext", "obsQP", "obsFWS", "obsZone", "obsAngleAddr", "obsRoute",
|
|
"obsDomainList", "obsMboxList", "obsAddrList", "obsGroupList", "obsLocalPart",
|
|
"obsDomain", "encodedWord", "charset", "encoding", "token", "tokenChar",
|
|
"encodedText", "encodedChar", "crlf", "wsp", "vchar", "alpha",
|
|
}
|
|
var decisionToDFA = make([]*antlr.DFA, len(deserializedATN.DecisionToState))
|
|
|
|
func init() {
|
|
for index, ds := range deserializedATN.DecisionToState {
|
|
decisionToDFA[index] = antlr.NewDFA(ds, index)
|
|
}
|
|
}
|
|
|
|
type RFC5322Parser struct {
|
|
*antlr.BaseParser
|
|
}
|
|
|
|
func NewRFC5322Parser(input antlr.TokenStream) *RFC5322Parser {
|
|
this := new(RFC5322Parser)
|
|
|
|
this.BaseParser = antlr.NewBaseParser(input)
|
|
|
|
this.Interpreter = antlr.NewParserATNSimulator(this, deserializedATN, decisionToDFA, antlr.NewPredictionContextCache())
|
|
this.RuleNames = ruleNames
|
|
this.LiteralNames = literalNames
|
|
this.SymbolicNames = symbolicNames
|
|
this.GrammarFileName = "RFC5322Parser.g4"
|
|
|
|
return this
|
|
}
|
|
|
|
// RFC5322Parser tokens.
|
|
const (
|
|
RFC5322ParserEOF = antlr.TokenEOF
|
|
RFC5322ParserU_00 = 1
|
|
RFC5322ParserU_01_08 = 2
|
|
RFC5322ParserTAB = 3
|
|
RFC5322ParserLF = 4
|
|
RFC5322ParserU_0B = 5
|
|
RFC5322ParserU_0C = 6
|
|
RFC5322ParserCR = 7
|
|
RFC5322ParserU_0E_1F = 8
|
|
RFC5322ParserSP = 9
|
|
RFC5322ParserExclamation = 10
|
|
RFC5322ParserDQuote = 11
|
|
RFC5322ParserHash = 12
|
|
RFC5322ParserDollar = 13
|
|
RFC5322ParserPercent = 14
|
|
RFC5322ParserAmpersand = 15
|
|
RFC5322ParserSQuote = 16
|
|
RFC5322ParserLParens = 17
|
|
RFC5322ParserRParens = 18
|
|
RFC5322ParserAsterisk = 19
|
|
RFC5322ParserPlus = 20
|
|
RFC5322ParserComma = 21
|
|
RFC5322ParserMinus = 22
|
|
RFC5322ParserPeriod = 23
|
|
RFC5322ParserSlash = 24
|
|
RFC5322ParserDigit = 25
|
|
RFC5322ParserColon = 26
|
|
RFC5322ParserSemicolon = 27
|
|
RFC5322ParserLess = 28
|
|
RFC5322ParserEqual = 29
|
|
RFC5322ParserGreater = 30
|
|
RFC5322ParserQuestion = 31
|
|
RFC5322ParserAt = 32
|
|
RFC5322ParserLBracket = 33
|
|
RFC5322ParserBackslash = 34
|
|
RFC5322ParserRBracket = 35
|
|
RFC5322ParserCaret = 36
|
|
RFC5322ParserUnderscore = 37
|
|
RFC5322ParserBacktick = 38
|
|
RFC5322ParserLCurly = 39
|
|
RFC5322ParserPipe = 40
|
|
RFC5322ParserRCurly = 41
|
|
RFC5322ParserTilde = 42
|
|
RFC5322ParserDelete = 43
|
|
RFC5322ParserUTF8NonAscii = 44
|
|
RFC5322ParserA = 45
|
|
RFC5322ParserB = 46
|
|
RFC5322ParserC = 47
|
|
RFC5322ParserD = 48
|
|
RFC5322ParserE = 49
|
|
RFC5322ParserF = 50
|
|
RFC5322ParserG = 51
|
|
RFC5322ParserH = 52
|
|
RFC5322ParserI = 53
|
|
RFC5322ParserJ = 54
|
|
RFC5322ParserK = 55
|
|
RFC5322ParserL = 56
|
|
RFC5322ParserM = 57
|
|
RFC5322ParserN = 58
|
|
RFC5322ParserO = 59
|
|
RFC5322ParserP = 60
|
|
RFC5322ParserQ = 61
|
|
RFC5322ParserR = 62
|
|
RFC5322ParserS = 63
|
|
RFC5322ParserT = 64
|
|
RFC5322ParserU = 65
|
|
RFC5322ParserV = 66
|
|
RFC5322ParserW = 67
|
|
RFC5322ParserX = 68
|
|
RFC5322ParserY = 69
|
|
RFC5322ParserZ = 70
|
|
)
|
|
|
|
// RFC5322Parser rules.
|
|
const (
|
|
RFC5322ParserRULE_quotedChar = 0
|
|
RFC5322ParserRULE_quotedPair = 1
|
|
RFC5322ParserRULE_fws = 2
|
|
RFC5322ParserRULE_ctext = 3
|
|
RFC5322ParserRULE_ccontent = 4
|
|
RFC5322ParserRULE_comment = 5
|
|
RFC5322ParserRULE_cfws = 6
|
|
RFC5322ParserRULE_atext = 7
|
|
RFC5322ParserRULE_atom = 8
|
|
RFC5322ParserRULE_dotAtom = 9
|
|
RFC5322ParserRULE_qtext = 10
|
|
RFC5322ParserRULE_quotedContent = 11
|
|
RFC5322ParserRULE_quotedValue = 12
|
|
RFC5322ParserRULE_quotedString = 13
|
|
RFC5322ParserRULE_word = 14
|
|
RFC5322ParserRULE_dateTime = 15
|
|
RFC5322ParserRULE_dayOfweek = 16
|
|
RFC5322ParserRULE_dayName = 17
|
|
RFC5322ParserRULE_day = 18
|
|
RFC5322ParserRULE_month = 19
|
|
RFC5322ParserRULE_year = 20
|
|
RFC5322ParserRULE_hour = 21
|
|
RFC5322ParserRULE_minute = 22
|
|
RFC5322ParserRULE_second = 23
|
|
RFC5322ParserRULE_offset = 24
|
|
RFC5322ParserRULE_zone = 25
|
|
RFC5322ParserRULE_address = 26
|
|
RFC5322ParserRULE_mailbox = 27
|
|
RFC5322ParserRULE_nameAddr = 28
|
|
RFC5322ParserRULE_angleAddr = 29
|
|
RFC5322ParserRULE_group = 30
|
|
RFC5322ParserRULE_displayName = 31
|
|
RFC5322ParserRULE_mailboxList = 32
|
|
RFC5322ParserRULE_addressList = 33
|
|
RFC5322ParserRULE_groupList = 34
|
|
RFC5322ParserRULE_addrSpec = 35
|
|
RFC5322ParserRULE_localPart = 36
|
|
RFC5322ParserRULE_port = 37
|
|
RFC5322ParserRULE_domain = 38
|
|
RFC5322ParserRULE_domainLiteral = 39
|
|
RFC5322ParserRULE_dtext = 40
|
|
RFC5322ParserRULE_obsNoWSCTL = 41
|
|
RFC5322ParserRULE_obsCtext = 42
|
|
RFC5322ParserRULE_obsQtext = 43
|
|
RFC5322ParserRULE_obsQP = 44
|
|
RFC5322ParserRULE_obsFWS = 45
|
|
RFC5322ParserRULE_obsZone = 46
|
|
RFC5322ParserRULE_obsAngleAddr = 47
|
|
RFC5322ParserRULE_obsRoute = 48
|
|
RFC5322ParserRULE_obsDomainList = 49
|
|
RFC5322ParserRULE_obsMboxList = 50
|
|
RFC5322ParserRULE_obsAddrList = 51
|
|
RFC5322ParserRULE_obsGroupList = 52
|
|
RFC5322ParserRULE_obsLocalPart = 53
|
|
RFC5322ParserRULE_obsDomain = 54
|
|
RFC5322ParserRULE_encodedWord = 55
|
|
RFC5322ParserRULE_charset = 56
|
|
RFC5322ParserRULE_encoding = 57
|
|
RFC5322ParserRULE_token = 58
|
|
RFC5322ParserRULE_tokenChar = 59
|
|
RFC5322ParserRULE_encodedText = 60
|
|
RFC5322ParserRULE_encodedChar = 61
|
|
RFC5322ParserRULE_crlf = 62
|
|
RFC5322ParserRULE_wsp = 63
|
|
RFC5322ParserRULE_vchar = 64
|
|
RFC5322ParserRULE_alpha = 65
|
|
)
|
|
|
|
// IQuotedCharContext is an interface to support dynamic dispatch.
|
|
type IQuotedCharContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsQuotedCharContext differentiates from other interfaces.
|
|
IsQuotedCharContext()
|
|
}
|
|
|
|
type QuotedCharContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyQuotedCharContext() *QuotedCharContext {
|
|
var p = new(QuotedCharContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_quotedChar
|
|
return p
|
|
}
|
|
|
|
func (*QuotedCharContext) IsQuotedCharContext() {}
|
|
|
|
func NewQuotedCharContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *QuotedCharContext {
|
|
var p = new(QuotedCharContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_quotedChar
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *QuotedCharContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *QuotedCharContext) Vchar() IVcharContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IVcharContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IVcharContext)
|
|
}
|
|
|
|
func (s *QuotedCharContext) Wsp() IWspContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IWspContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IWspContext)
|
|
}
|
|
|
|
func (s *QuotedCharContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *QuotedCharContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *QuotedCharContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterQuotedChar(s)
|
|
}
|
|
}
|
|
|
|
func (s *QuotedCharContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitQuotedChar(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) QuotedChar() (localctx IQuotedCharContext) {
|
|
localctx = NewQuotedCharContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 0, RFC5322ParserRULE_quotedChar)
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
p.SetState(134)
|
|
p.GetErrorHandler().Sync(p)
|
|
|
|
switch p.GetTokenStream().LA(1) {
|
|
case RFC5322ParserExclamation, RFC5322ParserDQuote, RFC5322ParserHash, RFC5322ParserDollar, RFC5322ParserPercent, RFC5322ParserAmpersand, RFC5322ParserSQuote, RFC5322ParserLParens, RFC5322ParserRParens, RFC5322ParserAsterisk, RFC5322ParserPlus, RFC5322ParserComma, RFC5322ParserMinus, RFC5322ParserPeriod, RFC5322ParserSlash, RFC5322ParserDigit, RFC5322ParserColon, RFC5322ParserSemicolon, RFC5322ParserLess, RFC5322ParserEqual, RFC5322ParserGreater, RFC5322ParserQuestion, RFC5322ParserAt, RFC5322ParserLBracket, RFC5322ParserBackslash, RFC5322ParserRBracket, RFC5322ParserCaret, RFC5322ParserUnderscore, RFC5322ParserBacktick, RFC5322ParserLCurly, RFC5322ParserPipe, RFC5322ParserRCurly, RFC5322ParserTilde, RFC5322ParserUTF8NonAscii, RFC5322ParserA, RFC5322ParserB, RFC5322ParserC, RFC5322ParserD, RFC5322ParserE, RFC5322ParserF, RFC5322ParserG, RFC5322ParserH, RFC5322ParserI, RFC5322ParserJ, RFC5322ParserK, RFC5322ParserL, RFC5322ParserM, RFC5322ParserN, RFC5322ParserO, RFC5322ParserP, RFC5322ParserQ, RFC5322ParserR, RFC5322ParserS, RFC5322ParserT, RFC5322ParserU, RFC5322ParserV, RFC5322ParserW, RFC5322ParserX, RFC5322ParserY, RFC5322ParserZ:
|
|
p.EnterOuterAlt(localctx, 1)
|
|
{
|
|
p.SetState(132)
|
|
p.Vchar()
|
|
}
|
|
|
|
case RFC5322ParserTAB, RFC5322ParserSP:
|
|
p.EnterOuterAlt(localctx, 2)
|
|
{
|
|
p.SetState(133)
|
|
p.Wsp()
|
|
}
|
|
|
|
default:
|
|
panic(antlr.NewNoViableAltException(p, nil, nil, nil, nil, nil))
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// IQuotedPairContext is an interface to support dynamic dispatch.
|
|
type IQuotedPairContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsQuotedPairContext differentiates from other interfaces.
|
|
IsQuotedPairContext()
|
|
}
|
|
|
|
type QuotedPairContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyQuotedPairContext() *QuotedPairContext {
|
|
var p = new(QuotedPairContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_quotedPair
|
|
return p
|
|
}
|
|
|
|
func (*QuotedPairContext) IsQuotedPairContext() {}
|
|
|
|
func NewQuotedPairContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *QuotedPairContext {
|
|
var p = new(QuotedPairContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_quotedPair
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *QuotedPairContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *QuotedPairContext) Backslash() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserBackslash, 0)
|
|
}
|
|
|
|
func (s *QuotedPairContext) QuotedChar() IQuotedCharContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IQuotedCharContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IQuotedCharContext)
|
|
}
|
|
|
|
func (s *QuotedPairContext) ObsQP() IObsQPContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IObsQPContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IObsQPContext)
|
|
}
|
|
|
|
func (s *QuotedPairContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *QuotedPairContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *QuotedPairContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterQuotedPair(s)
|
|
}
|
|
}
|
|
|
|
func (s *QuotedPairContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitQuotedPair(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) QuotedPair() (localctx IQuotedPairContext) {
|
|
localctx = NewQuotedPairContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 2, RFC5322ParserRULE_quotedPair)
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
p.SetState(139)
|
|
p.GetErrorHandler().Sync(p)
|
|
switch p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 1, p.GetParserRuleContext()) {
|
|
case 1:
|
|
p.EnterOuterAlt(localctx, 1)
|
|
{
|
|
p.SetState(136)
|
|
p.Match(RFC5322ParserBackslash)
|
|
}
|
|
{
|
|
p.SetState(137)
|
|
p.QuotedChar()
|
|
}
|
|
|
|
case 2:
|
|
p.EnterOuterAlt(localctx, 2)
|
|
{
|
|
p.SetState(138)
|
|
p.ObsQP()
|
|
}
|
|
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// IFwsContext is an interface to support dynamic dispatch.
|
|
type IFwsContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsFwsContext differentiates from other interfaces.
|
|
IsFwsContext()
|
|
}
|
|
|
|
type FwsContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyFwsContext() *FwsContext {
|
|
var p = new(FwsContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_fws
|
|
return p
|
|
}
|
|
|
|
func (*FwsContext) IsFwsContext() {}
|
|
|
|
func NewFwsContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *FwsContext {
|
|
var p = new(FwsContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_fws
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *FwsContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *FwsContext) Crlf() ICrlfContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*ICrlfContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(ICrlfContext)
|
|
}
|
|
|
|
func (s *FwsContext) AllWsp() []IWspContext {
|
|
var ts = s.GetTypedRuleContexts(reflect.TypeOf((*IWspContext)(nil)).Elem())
|
|
var tst = make([]IWspContext, len(ts))
|
|
|
|
for i, t := range ts {
|
|
if t != nil {
|
|
tst[i] = t.(IWspContext)
|
|
}
|
|
}
|
|
|
|
return tst
|
|
}
|
|
|
|
func (s *FwsContext) Wsp(i int) IWspContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IWspContext)(nil)).Elem(), i)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IWspContext)
|
|
}
|
|
|
|
func (s *FwsContext) ObsFWS() IObsFWSContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IObsFWSContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IObsFWSContext)
|
|
}
|
|
|
|
func (s *FwsContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *FwsContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *FwsContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterFws(s)
|
|
}
|
|
}
|
|
|
|
func (s *FwsContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitFws(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) Fws() (localctx IFwsContext) {
|
|
localctx = NewFwsContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 4, RFC5322ParserRULE_fws)
|
|
var _la int
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
var _alt int
|
|
|
|
p.SetState(156)
|
|
p.GetErrorHandler().Sync(p)
|
|
switch p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 5, p.GetParserRuleContext()) {
|
|
case 1:
|
|
p.EnterOuterAlt(localctx, 1)
|
|
p.SetState(148)
|
|
p.GetErrorHandler().Sync(p)
|
|
|
|
if p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 3, p.GetParserRuleContext()) == 1 {
|
|
p.SetState(144)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
for _la == RFC5322ParserTAB || _la == RFC5322ParserSP {
|
|
{
|
|
p.SetState(141)
|
|
p.Wsp()
|
|
}
|
|
|
|
p.SetState(146)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
}
|
|
{
|
|
p.SetState(147)
|
|
p.Crlf()
|
|
}
|
|
|
|
}
|
|
p.SetState(151)
|
|
p.GetErrorHandler().Sync(p)
|
|
_alt = 1
|
|
for ok := true; ok; ok = _alt != 2 && _alt != antlr.ATNInvalidAltNumber {
|
|
switch _alt {
|
|
case 1:
|
|
{
|
|
p.SetState(150)
|
|
p.Wsp()
|
|
}
|
|
|
|
default:
|
|
panic(antlr.NewNoViableAltException(p, nil, nil, nil, nil, nil))
|
|
}
|
|
|
|
p.SetState(153)
|
|
p.GetErrorHandler().Sync(p)
|
|
_alt = p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 4, p.GetParserRuleContext())
|
|
}
|
|
|
|
case 2:
|
|
p.EnterOuterAlt(localctx, 2)
|
|
{
|
|
p.SetState(155)
|
|
p.ObsFWS()
|
|
}
|
|
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// ICtextContext is an interface to support dynamic dispatch.
|
|
type ICtextContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsCtextContext differentiates from other interfaces.
|
|
IsCtextContext()
|
|
}
|
|
|
|
type CtextContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyCtextContext() *CtextContext {
|
|
var p = new(CtextContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_ctext
|
|
return p
|
|
}
|
|
|
|
func (*CtextContext) IsCtextContext() {}
|
|
|
|
func NewCtextContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *CtextContext {
|
|
var p = new(CtextContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_ctext
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *CtextContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *CtextContext) Alpha() IAlphaContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IAlphaContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IAlphaContext)
|
|
}
|
|
|
|
func (s *CtextContext) Exclamation() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserExclamation, 0)
|
|
}
|
|
|
|
func (s *CtextContext) DQuote() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserDQuote, 0)
|
|
}
|
|
|
|
func (s *CtextContext) Hash() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserHash, 0)
|
|
}
|
|
|
|
func (s *CtextContext) Dollar() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserDollar, 0)
|
|
}
|
|
|
|
func (s *CtextContext) Percent() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserPercent, 0)
|
|
}
|
|
|
|
func (s *CtextContext) Ampersand() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserAmpersand, 0)
|
|
}
|
|
|
|
func (s *CtextContext) SQuote() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserSQuote, 0)
|
|
}
|
|
|
|
func (s *CtextContext) Asterisk() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserAsterisk, 0)
|
|
}
|
|
|
|
func (s *CtextContext) Plus() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserPlus, 0)
|
|
}
|
|
|
|
func (s *CtextContext) Comma() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserComma, 0)
|
|
}
|
|
|
|
func (s *CtextContext) Minus() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserMinus, 0)
|
|
}
|
|
|
|
func (s *CtextContext) Period() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserPeriod, 0)
|
|
}
|
|
|
|
func (s *CtextContext) Slash() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserSlash, 0)
|
|
}
|
|
|
|
func (s *CtextContext) Digit() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserDigit, 0)
|
|
}
|
|
|
|
func (s *CtextContext) Colon() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserColon, 0)
|
|
}
|
|
|
|
func (s *CtextContext) Semicolon() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserSemicolon, 0)
|
|
}
|
|
|
|
func (s *CtextContext) Less() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserLess, 0)
|
|
}
|
|
|
|
func (s *CtextContext) Equal() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserEqual, 0)
|
|
}
|
|
|
|
func (s *CtextContext) Greater() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserGreater, 0)
|
|
}
|
|
|
|
func (s *CtextContext) Question() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserQuestion, 0)
|
|
}
|
|
|
|
func (s *CtextContext) At() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserAt, 0)
|
|
}
|
|
|
|
func (s *CtextContext) LBracket() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserLBracket, 0)
|
|
}
|
|
|
|
func (s *CtextContext) RBracket() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserRBracket, 0)
|
|
}
|
|
|
|
func (s *CtextContext) Caret() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserCaret, 0)
|
|
}
|
|
|
|
func (s *CtextContext) Underscore() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserUnderscore, 0)
|
|
}
|
|
|
|
func (s *CtextContext) Backtick() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserBacktick, 0)
|
|
}
|
|
|
|
func (s *CtextContext) LCurly() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserLCurly, 0)
|
|
}
|
|
|
|
func (s *CtextContext) Pipe() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserPipe, 0)
|
|
}
|
|
|
|
func (s *CtextContext) RCurly() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserRCurly, 0)
|
|
}
|
|
|
|
func (s *CtextContext) Tilde() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserTilde, 0)
|
|
}
|
|
|
|
func (s *CtextContext) ObsCtext() IObsCtextContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IObsCtextContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IObsCtextContext)
|
|
}
|
|
|
|
func (s *CtextContext) UTF8NonAscii() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserUTF8NonAscii, 0)
|
|
}
|
|
|
|
func (s *CtextContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *CtextContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *CtextContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterCtext(s)
|
|
}
|
|
}
|
|
|
|
func (s *CtextContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitCtext(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) Ctext() (localctx ICtextContext) {
|
|
localctx = NewCtextContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 6, RFC5322ParserRULE_ctext)
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
p.SetState(191)
|
|
p.GetErrorHandler().Sync(p)
|
|
|
|
switch p.GetTokenStream().LA(1) {
|
|
case RFC5322ParserA, RFC5322ParserB, RFC5322ParserC, RFC5322ParserD, RFC5322ParserE, RFC5322ParserF, RFC5322ParserG, RFC5322ParserH, RFC5322ParserI, RFC5322ParserJ, RFC5322ParserK, RFC5322ParserL, RFC5322ParserM, RFC5322ParserN, RFC5322ParserO, RFC5322ParserP, RFC5322ParserQ, RFC5322ParserR, RFC5322ParserS, RFC5322ParserT, RFC5322ParserU, RFC5322ParserV, RFC5322ParserW, RFC5322ParserX, RFC5322ParserY, RFC5322ParserZ:
|
|
p.EnterOuterAlt(localctx, 1)
|
|
{
|
|
p.SetState(158)
|
|
p.Alpha()
|
|
}
|
|
|
|
case RFC5322ParserExclamation:
|
|
p.EnterOuterAlt(localctx, 2)
|
|
{
|
|
p.SetState(159)
|
|
p.Match(RFC5322ParserExclamation)
|
|
}
|
|
|
|
case RFC5322ParserDQuote:
|
|
p.EnterOuterAlt(localctx, 3)
|
|
{
|
|
p.SetState(160)
|
|
p.Match(RFC5322ParserDQuote)
|
|
}
|
|
|
|
case RFC5322ParserHash:
|
|
p.EnterOuterAlt(localctx, 4)
|
|
{
|
|
p.SetState(161)
|
|
p.Match(RFC5322ParserHash)
|
|
}
|
|
|
|
case RFC5322ParserDollar:
|
|
p.EnterOuterAlt(localctx, 5)
|
|
{
|
|
p.SetState(162)
|
|
p.Match(RFC5322ParserDollar)
|
|
}
|
|
|
|
case RFC5322ParserPercent:
|
|
p.EnterOuterAlt(localctx, 6)
|
|
{
|
|
p.SetState(163)
|
|
p.Match(RFC5322ParserPercent)
|
|
}
|
|
|
|
case RFC5322ParserAmpersand:
|
|
p.EnterOuterAlt(localctx, 7)
|
|
{
|
|
p.SetState(164)
|
|
p.Match(RFC5322ParserAmpersand)
|
|
}
|
|
|
|
case RFC5322ParserSQuote:
|
|
p.EnterOuterAlt(localctx, 8)
|
|
{
|
|
p.SetState(165)
|
|
p.Match(RFC5322ParserSQuote)
|
|
}
|
|
|
|
case RFC5322ParserAsterisk:
|
|
p.EnterOuterAlt(localctx, 9)
|
|
{
|
|
p.SetState(166)
|
|
p.Match(RFC5322ParserAsterisk)
|
|
}
|
|
|
|
case RFC5322ParserPlus:
|
|
p.EnterOuterAlt(localctx, 10)
|
|
{
|
|
p.SetState(167)
|
|
p.Match(RFC5322ParserPlus)
|
|
}
|
|
|
|
case RFC5322ParserComma:
|
|
p.EnterOuterAlt(localctx, 11)
|
|
{
|
|
p.SetState(168)
|
|
p.Match(RFC5322ParserComma)
|
|
}
|
|
|
|
case RFC5322ParserMinus:
|
|
p.EnterOuterAlt(localctx, 12)
|
|
{
|
|
p.SetState(169)
|
|
p.Match(RFC5322ParserMinus)
|
|
}
|
|
|
|
case RFC5322ParserPeriod:
|
|
p.EnterOuterAlt(localctx, 13)
|
|
{
|
|
p.SetState(170)
|
|
p.Match(RFC5322ParserPeriod)
|
|
}
|
|
|
|
case RFC5322ParserSlash:
|
|
p.EnterOuterAlt(localctx, 14)
|
|
{
|
|
p.SetState(171)
|
|
p.Match(RFC5322ParserSlash)
|
|
}
|
|
|
|
case RFC5322ParserDigit:
|
|
p.EnterOuterAlt(localctx, 15)
|
|
{
|
|
p.SetState(172)
|
|
p.Match(RFC5322ParserDigit)
|
|
}
|
|
|
|
case RFC5322ParserColon:
|
|
p.EnterOuterAlt(localctx, 16)
|
|
{
|
|
p.SetState(173)
|
|
p.Match(RFC5322ParserColon)
|
|
}
|
|
|
|
case RFC5322ParserSemicolon:
|
|
p.EnterOuterAlt(localctx, 17)
|
|
{
|
|
p.SetState(174)
|
|
p.Match(RFC5322ParserSemicolon)
|
|
}
|
|
|
|
case RFC5322ParserLess:
|
|
p.EnterOuterAlt(localctx, 18)
|
|
{
|
|
p.SetState(175)
|
|
p.Match(RFC5322ParserLess)
|
|
}
|
|
|
|
case RFC5322ParserEqual:
|
|
p.EnterOuterAlt(localctx, 19)
|
|
{
|
|
p.SetState(176)
|
|
p.Match(RFC5322ParserEqual)
|
|
}
|
|
|
|
case RFC5322ParserGreater:
|
|
p.EnterOuterAlt(localctx, 20)
|
|
{
|
|
p.SetState(177)
|
|
p.Match(RFC5322ParserGreater)
|
|
}
|
|
|
|
case RFC5322ParserQuestion:
|
|
p.EnterOuterAlt(localctx, 21)
|
|
{
|
|
p.SetState(178)
|
|
p.Match(RFC5322ParserQuestion)
|
|
}
|
|
|
|
case RFC5322ParserAt:
|
|
p.EnterOuterAlt(localctx, 22)
|
|
{
|
|
p.SetState(179)
|
|
p.Match(RFC5322ParserAt)
|
|
}
|
|
|
|
case RFC5322ParserLBracket:
|
|
p.EnterOuterAlt(localctx, 23)
|
|
{
|
|
p.SetState(180)
|
|
p.Match(RFC5322ParserLBracket)
|
|
}
|
|
|
|
case RFC5322ParserRBracket:
|
|
p.EnterOuterAlt(localctx, 24)
|
|
{
|
|
p.SetState(181)
|
|
p.Match(RFC5322ParserRBracket)
|
|
}
|
|
|
|
case RFC5322ParserCaret:
|
|
p.EnterOuterAlt(localctx, 25)
|
|
{
|
|
p.SetState(182)
|
|
p.Match(RFC5322ParserCaret)
|
|
}
|
|
|
|
case RFC5322ParserUnderscore:
|
|
p.EnterOuterAlt(localctx, 26)
|
|
{
|
|
p.SetState(183)
|
|
p.Match(RFC5322ParserUnderscore)
|
|
}
|
|
|
|
case RFC5322ParserBacktick:
|
|
p.EnterOuterAlt(localctx, 27)
|
|
{
|
|
p.SetState(184)
|
|
p.Match(RFC5322ParserBacktick)
|
|
}
|
|
|
|
case RFC5322ParserLCurly:
|
|
p.EnterOuterAlt(localctx, 28)
|
|
{
|
|
p.SetState(185)
|
|
p.Match(RFC5322ParserLCurly)
|
|
}
|
|
|
|
case RFC5322ParserPipe:
|
|
p.EnterOuterAlt(localctx, 29)
|
|
{
|
|
p.SetState(186)
|
|
p.Match(RFC5322ParserPipe)
|
|
}
|
|
|
|
case RFC5322ParserRCurly:
|
|
p.EnterOuterAlt(localctx, 30)
|
|
{
|
|
p.SetState(187)
|
|
p.Match(RFC5322ParserRCurly)
|
|
}
|
|
|
|
case RFC5322ParserTilde:
|
|
p.EnterOuterAlt(localctx, 31)
|
|
{
|
|
p.SetState(188)
|
|
p.Match(RFC5322ParserTilde)
|
|
}
|
|
|
|
case RFC5322ParserU_01_08, RFC5322ParserU_0B, RFC5322ParserU_0C, RFC5322ParserU_0E_1F, RFC5322ParserDelete:
|
|
p.EnterOuterAlt(localctx, 32)
|
|
{
|
|
p.SetState(189)
|
|
p.ObsCtext()
|
|
}
|
|
|
|
case RFC5322ParserUTF8NonAscii:
|
|
p.EnterOuterAlt(localctx, 33)
|
|
{
|
|
p.SetState(190)
|
|
p.Match(RFC5322ParserUTF8NonAscii)
|
|
}
|
|
|
|
default:
|
|
panic(antlr.NewNoViableAltException(p, nil, nil, nil, nil, nil))
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// ICcontentContext is an interface to support dynamic dispatch.
|
|
type ICcontentContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsCcontentContext differentiates from other interfaces.
|
|
IsCcontentContext()
|
|
}
|
|
|
|
type CcontentContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyCcontentContext() *CcontentContext {
|
|
var p = new(CcontentContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_ccontent
|
|
return p
|
|
}
|
|
|
|
func (*CcontentContext) IsCcontentContext() {}
|
|
|
|
func NewCcontentContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *CcontentContext {
|
|
var p = new(CcontentContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_ccontent
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *CcontentContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *CcontentContext) Ctext() ICtextContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*ICtextContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(ICtextContext)
|
|
}
|
|
|
|
func (s *CcontentContext) QuotedPair() IQuotedPairContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IQuotedPairContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IQuotedPairContext)
|
|
}
|
|
|
|
func (s *CcontentContext) Comment() ICommentContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*ICommentContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(ICommentContext)
|
|
}
|
|
|
|
func (s *CcontentContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *CcontentContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *CcontentContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterCcontent(s)
|
|
}
|
|
}
|
|
|
|
func (s *CcontentContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitCcontent(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) Ccontent() (localctx ICcontentContext) {
|
|
localctx = NewCcontentContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 8, RFC5322ParserRULE_ccontent)
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
p.SetState(196)
|
|
p.GetErrorHandler().Sync(p)
|
|
|
|
switch p.GetTokenStream().LA(1) {
|
|
case RFC5322ParserU_01_08, RFC5322ParserU_0B, RFC5322ParserU_0C, RFC5322ParserU_0E_1F, RFC5322ParserExclamation, RFC5322ParserDQuote, RFC5322ParserHash, RFC5322ParserDollar, RFC5322ParserPercent, RFC5322ParserAmpersand, RFC5322ParserSQuote, RFC5322ParserAsterisk, RFC5322ParserPlus, RFC5322ParserComma, RFC5322ParserMinus, RFC5322ParserPeriod, RFC5322ParserSlash, RFC5322ParserDigit, RFC5322ParserColon, RFC5322ParserSemicolon, RFC5322ParserLess, RFC5322ParserEqual, RFC5322ParserGreater, RFC5322ParserQuestion, RFC5322ParserAt, RFC5322ParserLBracket, RFC5322ParserRBracket, RFC5322ParserCaret, RFC5322ParserUnderscore, RFC5322ParserBacktick, RFC5322ParserLCurly, RFC5322ParserPipe, RFC5322ParserRCurly, RFC5322ParserTilde, RFC5322ParserDelete, RFC5322ParserUTF8NonAscii, RFC5322ParserA, RFC5322ParserB, RFC5322ParserC, RFC5322ParserD, RFC5322ParserE, RFC5322ParserF, RFC5322ParserG, RFC5322ParserH, RFC5322ParserI, RFC5322ParserJ, RFC5322ParserK, RFC5322ParserL, RFC5322ParserM, RFC5322ParserN, RFC5322ParserO, RFC5322ParserP, RFC5322ParserQ, RFC5322ParserR, RFC5322ParserS, RFC5322ParserT, RFC5322ParserU, RFC5322ParserV, RFC5322ParserW, RFC5322ParserX, RFC5322ParserY, RFC5322ParserZ:
|
|
p.EnterOuterAlt(localctx, 1)
|
|
{
|
|
p.SetState(193)
|
|
p.Ctext()
|
|
}
|
|
|
|
case RFC5322ParserBackslash:
|
|
p.EnterOuterAlt(localctx, 2)
|
|
{
|
|
p.SetState(194)
|
|
p.QuotedPair()
|
|
}
|
|
|
|
case RFC5322ParserLParens:
|
|
p.EnterOuterAlt(localctx, 3)
|
|
{
|
|
p.SetState(195)
|
|
p.Comment()
|
|
}
|
|
|
|
default:
|
|
panic(antlr.NewNoViableAltException(p, nil, nil, nil, nil, nil))
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// ICommentContext is an interface to support dynamic dispatch.
|
|
type ICommentContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsCommentContext differentiates from other interfaces.
|
|
IsCommentContext()
|
|
}
|
|
|
|
type CommentContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyCommentContext() *CommentContext {
|
|
var p = new(CommentContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_comment
|
|
return p
|
|
}
|
|
|
|
func (*CommentContext) IsCommentContext() {}
|
|
|
|
func NewCommentContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *CommentContext {
|
|
var p = new(CommentContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_comment
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *CommentContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *CommentContext) LParens() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserLParens, 0)
|
|
}
|
|
|
|
func (s *CommentContext) RParens() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserRParens, 0)
|
|
}
|
|
|
|
func (s *CommentContext) AllCcontent() []ICcontentContext {
|
|
var ts = s.GetTypedRuleContexts(reflect.TypeOf((*ICcontentContext)(nil)).Elem())
|
|
var tst = make([]ICcontentContext, len(ts))
|
|
|
|
for i, t := range ts {
|
|
if t != nil {
|
|
tst[i] = t.(ICcontentContext)
|
|
}
|
|
}
|
|
|
|
return tst
|
|
}
|
|
|
|
func (s *CommentContext) Ccontent(i int) ICcontentContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*ICcontentContext)(nil)).Elem(), i)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(ICcontentContext)
|
|
}
|
|
|
|
func (s *CommentContext) AllFws() []IFwsContext {
|
|
var ts = s.GetTypedRuleContexts(reflect.TypeOf((*IFwsContext)(nil)).Elem())
|
|
var tst = make([]IFwsContext, len(ts))
|
|
|
|
for i, t := range ts {
|
|
if t != nil {
|
|
tst[i] = t.(IFwsContext)
|
|
}
|
|
}
|
|
|
|
return tst
|
|
}
|
|
|
|
func (s *CommentContext) Fws(i int) IFwsContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IFwsContext)(nil)).Elem(), i)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IFwsContext)
|
|
}
|
|
|
|
func (s *CommentContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *CommentContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *CommentContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterComment(s)
|
|
}
|
|
}
|
|
|
|
func (s *CommentContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitComment(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) Comment() (localctx ICommentContext) {
|
|
localctx = NewCommentContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 10, RFC5322ParserRULE_comment)
|
|
var _la int
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
var _alt int
|
|
|
|
p.EnterOuterAlt(localctx, 1)
|
|
{
|
|
p.SetState(198)
|
|
p.Match(RFC5322ParserLParens)
|
|
}
|
|
p.SetState(205)
|
|
p.GetErrorHandler().Sync(p)
|
|
_alt = p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 9, p.GetParserRuleContext())
|
|
|
|
for _alt != 2 && _alt != antlr.ATNInvalidAltNumber {
|
|
if _alt == 1 {
|
|
p.SetState(200)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
if ((_la)&-(0x1f+1)) == 0 && ((1<<uint(_la))&((1<<RFC5322ParserTAB)|(1<<RFC5322ParserCR)|(1<<RFC5322ParserSP))) != 0 {
|
|
{
|
|
p.SetState(199)
|
|
p.Fws()
|
|
}
|
|
|
|
}
|
|
{
|
|
p.SetState(202)
|
|
p.Ccontent()
|
|
}
|
|
|
|
}
|
|
p.SetState(207)
|
|
p.GetErrorHandler().Sync(p)
|
|
_alt = p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 9, p.GetParserRuleContext())
|
|
}
|
|
p.SetState(209)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
if ((_la)&-(0x1f+1)) == 0 && ((1<<uint(_la))&((1<<RFC5322ParserTAB)|(1<<RFC5322ParserCR)|(1<<RFC5322ParserSP))) != 0 {
|
|
{
|
|
p.SetState(208)
|
|
p.Fws()
|
|
}
|
|
|
|
}
|
|
{
|
|
p.SetState(211)
|
|
p.Match(RFC5322ParserRParens)
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// ICfwsContext is an interface to support dynamic dispatch.
|
|
type ICfwsContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsCfwsContext differentiates from other interfaces.
|
|
IsCfwsContext()
|
|
}
|
|
|
|
type CfwsContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyCfwsContext() *CfwsContext {
|
|
var p = new(CfwsContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_cfws
|
|
return p
|
|
}
|
|
|
|
func (*CfwsContext) IsCfwsContext() {}
|
|
|
|
func NewCfwsContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *CfwsContext {
|
|
var p = new(CfwsContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_cfws
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *CfwsContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *CfwsContext) AllComment() []ICommentContext {
|
|
var ts = s.GetTypedRuleContexts(reflect.TypeOf((*ICommentContext)(nil)).Elem())
|
|
var tst = make([]ICommentContext, len(ts))
|
|
|
|
for i, t := range ts {
|
|
if t != nil {
|
|
tst[i] = t.(ICommentContext)
|
|
}
|
|
}
|
|
|
|
return tst
|
|
}
|
|
|
|
func (s *CfwsContext) Comment(i int) ICommentContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*ICommentContext)(nil)).Elem(), i)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(ICommentContext)
|
|
}
|
|
|
|
func (s *CfwsContext) AllFws() []IFwsContext {
|
|
var ts = s.GetTypedRuleContexts(reflect.TypeOf((*IFwsContext)(nil)).Elem())
|
|
var tst = make([]IFwsContext, len(ts))
|
|
|
|
for i, t := range ts {
|
|
if t != nil {
|
|
tst[i] = t.(IFwsContext)
|
|
}
|
|
}
|
|
|
|
return tst
|
|
}
|
|
|
|
func (s *CfwsContext) Fws(i int) IFwsContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IFwsContext)(nil)).Elem(), i)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IFwsContext)
|
|
}
|
|
|
|
func (s *CfwsContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *CfwsContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *CfwsContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterCfws(s)
|
|
}
|
|
}
|
|
|
|
func (s *CfwsContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitCfws(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) Cfws() (localctx ICfwsContext) {
|
|
localctx = NewCfwsContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 12, RFC5322ParserRULE_cfws)
|
|
var _la int
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
var _alt int
|
|
|
|
p.SetState(225)
|
|
p.GetErrorHandler().Sync(p)
|
|
switch p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 14, p.GetParserRuleContext()) {
|
|
case 1:
|
|
p.EnterOuterAlt(localctx, 1)
|
|
p.SetState(217)
|
|
p.GetErrorHandler().Sync(p)
|
|
_alt = 1
|
|
for ok := true; ok; ok = _alt != 2 && _alt != antlr.ATNInvalidAltNumber {
|
|
switch _alt {
|
|
case 1:
|
|
p.SetState(214)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
if ((_la)&-(0x1f+1)) == 0 && ((1<<uint(_la))&((1<<RFC5322ParserTAB)|(1<<RFC5322ParserCR)|(1<<RFC5322ParserSP))) != 0 {
|
|
{
|
|
p.SetState(213)
|
|
p.Fws()
|
|
}
|
|
|
|
}
|
|
{
|
|
p.SetState(216)
|
|
p.Comment()
|
|
}
|
|
|
|
default:
|
|
panic(antlr.NewNoViableAltException(p, nil, nil, nil, nil, nil))
|
|
}
|
|
|
|
p.SetState(219)
|
|
p.GetErrorHandler().Sync(p)
|
|
_alt = p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 12, p.GetParserRuleContext())
|
|
}
|
|
p.SetState(222)
|
|
p.GetErrorHandler().Sync(p)
|
|
|
|
if p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 13, p.GetParserRuleContext()) == 1 {
|
|
{
|
|
p.SetState(221)
|
|
p.Fws()
|
|
}
|
|
|
|
}
|
|
|
|
case 2:
|
|
p.EnterOuterAlt(localctx, 2)
|
|
{
|
|
p.SetState(224)
|
|
p.Fws()
|
|
}
|
|
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// IAtextContext is an interface to support dynamic dispatch.
|
|
type IAtextContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsAtextContext differentiates from other interfaces.
|
|
IsAtextContext()
|
|
}
|
|
|
|
type AtextContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyAtextContext() *AtextContext {
|
|
var p = new(AtextContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_atext
|
|
return p
|
|
}
|
|
|
|
func (*AtextContext) IsAtextContext() {}
|
|
|
|
func NewAtextContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *AtextContext {
|
|
var p = new(AtextContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_atext
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *AtextContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *AtextContext) Alpha() IAlphaContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IAlphaContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IAlphaContext)
|
|
}
|
|
|
|
func (s *AtextContext) Digit() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserDigit, 0)
|
|
}
|
|
|
|
func (s *AtextContext) Exclamation() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserExclamation, 0)
|
|
}
|
|
|
|
func (s *AtextContext) Hash() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserHash, 0)
|
|
}
|
|
|
|
func (s *AtextContext) Dollar() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserDollar, 0)
|
|
}
|
|
|
|
func (s *AtextContext) Percent() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserPercent, 0)
|
|
}
|
|
|
|
func (s *AtextContext) Ampersand() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserAmpersand, 0)
|
|
}
|
|
|
|
func (s *AtextContext) SQuote() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserSQuote, 0)
|
|
}
|
|
|
|
func (s *AtextContext) Asterisk() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserAsterisk, 0)
|
|
}
|
|
|
|
func (s *AtextContext) Plus() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserPlus, 0)
|
|
}
|
|
|
|
func (s *AtextContext) Minus() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserMinus, 0)
|
|
}
|
|
|
|
func (s *AtextContext) Slash() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserSlash, 0)
|
|
}
|
|
|
|
func (s *AtextContext) Equal() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserEqual, 0)
|
|
}
|
|
|
|
func (s *AtextContext) Question() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserQuestion, 0)
|
|
}
|
|
|
|
func (s *AtextContext) Caret() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserCaret, 0)
|
|
}
|
|
|
|
func (s *AtextContext) Underscore() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserUnderscore, 0)
|
|
}
|
|
|
|
func (s *AtextContext) Backtick() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserBacktick, 0)
|
|
}
|
|
|
|
func (s *AtextContext) LCurly() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserLCurly, 0)
|
|
}
|
|
|
|
func (s *AtextContext) Pipe() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserPipe, 0)
|
|
}
|
|
|
|
func (s *AtextContext) RCurly() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserRCurly, 0)
|
|
}
|
|
|
|
func (s *AtextContext) Tilde() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserTilde, 0)
|
|
}
|
|
|
|
func (s *AtextContext) UTF8NonAscii() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserUTF8NonAscii, 0)
|
|
}
|
|
|
|
func (s *AtextContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *AtextContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *AtextContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterAtext(s)
|
|
}
|
|
}
|
|
|
|
func (s *AtextContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitAtext(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) Atext() (localctx IAtextContext) {
|
|
localctx = NewAtextContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 14, RFC5322ParserRULE_atext)
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
p.SetState(249)
|
|
p.GetErrorHandler().Sync(p)
|
|
|
|
switch p.GetTokenStream().LA(1) {
|
|
case RFC5322ParserA, RFC5322ParserB, RFC5322ParserC, RFC5322ParserD, RFC5322ParserE, RFC5322ParserF, RFC5322ParserG, RFC5322ParserH, RFC5322ParserI, RFC5322ParserJ, RFC5322ParserK, RFC5322ParserL, RFC5322ParserM, RFC5322ParserN, RFC5322ParserO, RFC5322ParserP, RFC5322ParserQ, RFC5322ParserR, RFC5322ParserS, RFC5322ParserT, RFC5322ParserU, RFC5322ParserV, RFC5322ParserW, RFC5322ParserX, RFC5322ParserY, RFC5322ParserZ:
|
|
p.EnterOuterAlt(localctx, 1)
|
|
{
|
|
p.SetState(227)
|
|
p.Alpha()
|
|
}
|
|
|
|
case RFC5322ParserDigit:
|
|
p.EnterOuterAlt(localctx, 2)
|
|
{
|
|
p.SetState(228)
|
|
p.Match(RFC5322ParserDigit)
|
|
}
|
|
|
|
case RFC5322ParserExclamation:
|
|
p.EnterOuterAlt(localctx, 3)
|
|
{
|
|
p.SetState(229)
|
|
p.Match(RFC5322ParserExclamation)
|
|
}
|
|
|
|
case RFC5322ParserHash:
|
|
p.EnterOuterAlt(localctx, 4)
|
|
{
|
|
p.SetState(230)
|
|
p.Match(RFC5322ParserHash)
|
|
}
|
|
|
|
case RFC5322ParserDollar:
|
|
p.EnterOuterAlt(localctx, 5)
|
|
{
|
|
p.SetState(231)
|
|
p.Match(RFC5322ParserDollar)
|
|
}
|
|
|
|
case RFC5322ParserPercent:
|
|
p.EnterOuterAlt(localctx, 6)
|
|
{
|
|
p.SetState(232)
|
|
p.Match(RFC5322ParserPercent)
|
|
}
|
|
|
|
case RFC5322ParserAmpersand:
|
|
p.EnterOuterAlt(localctx, 7)
|
|
{
|
|
p.SetState(233)
|
|
p.Match(RFC5322ParserAmpersand)
|
|
}
|
|
|
|
case RFC5322ParserSQuote:
|
|
p.EnterOuterAlt(localctx, 8)
|
|
{
|
|
p.SetState(234)
|
|
p.Match(RFC5322ParserSQuote)
|
|
}
|
|
|
|
case RFC5322ParserAsterisk:
|
|
p.EnterOuterAlt(localctx, 9)
|
|
{
|
|
p.SetState(235)
|
|
p.Match(RFC5322ParserAsterisk)
|
|
}
|
|
|
|
case RFC5322ParserPlus:
|
|
p.EnterOuterAlt(localctx, 10)
|
|
{
|
|
p.SetState(236)
|
|
p.Match(RFC5322ParserPlus)
|
|
}
|
|
|
|
case RFC5322ParserMinus:
|
|
p.EnterOuterAlt(localctx, 11)
|
|
{
|
|
p.SetState(237)
|
|
p.Match(RFC5322ParserMinus)
|
|
}
|
|
|
|
case RFC5322ParserSlash:
|
|
p.EnterOuterAlt(localctx, 12)
|
|
{
|
|
p.SetState(238)
|
|
p.Match(RFC5322ParserSlash)
|
|
}
|
|
|
|
case RFC5322ParserEqual:
|
|
p.EnterOuterAlt(localctx, 13)
|
|
{
|
|
p.SetState(239)
|
|
p.Match(RFC5322ParserEqual)
|
|
}
|
|
|
|
case RFC5322ParserQuestion:
|
|
p.EnterOuterAlt(localctx, 14)
|
|
{
|
|
p.SetState(240)
|
|
p.Match(RFC5322ParserQuestion)
|
|
}
|
|
|
|
case RFC5322ParserCaret:
|
|
p.EnterOuterAlt(localctx, 15)
|
|
{
|
|
p.SetState(241)
|
|
p.Match(RFC5322ParserCaret)
|
|
}
|
|
|
|
case RFC5322ParserUnderscore:
|
|
p.EnterOuterAlt(localctx, 16)
|
|
{
|
|
p.SetState(242)
|
|
p.Match(RFC5322ParserUnderscore)
|
|
}
|
|
|
|
case RFC5322ParserBacktick:
|
|
p.EnterOuterAlt(localctx, 17)
|
|
{
|
|
p.SetState(243)
|
|
p.Match(RFC5322ParserBacktick)
|
|
}
|
|
|
|
case RFC5322ParserLCurly:
|
|
p.EnterOuterAlt(localctx, 18)
|
|
{
|
|
p.SetState(244)
|
|
p.Match(RFC5322ParserLCurly)
|
|
}
|
|
|
|
case RFC5322ParserPipe:
|
|
p.EnterOuterAlt(localctx, 19)
|
|
{
|
|
p.SetState(245)
|
|
p.Match(RFC5322ParserPipe)
|
|
}
|
|
|
|
case RFC5322ParserRCurly:
|
|
p.EnterOuterAlt(localctx, 20)
|
|
{
|
|
p.SetState(246)
|
|
p.Match(RFC5322ParserRCurly)
|
|
}
|
|
|
|
case RFC5322ParserTilde:
|
|
p.EnterOuterAlt(localctx, 21)
|
|
{
|
|
p.SetState(247)
|
|
p.Match(RFC5322ParserTilde)
|
|
}
|
|
|
|
case RFC5322ParserUTF8NonAscii:
|
|
p.EnterOuterAlt(localctx, 22)
|
|
{
|
|
p.SetState(248)
|
|
p.Match(RFC5322ParserUTF8NonAscii)
|
|
}
|
|
|
|
default:
|
|
panic(antlr.NewNoViableAltException(p, nil, nil, nil, nil, nil))
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// IAtomContext is an interface to support dynamic dispatch.
|
|
type IAtomContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsAtomContext differentiates from other interfaces.
|
|
IsAtomContext()
|
|
}
|
|
|
|
type AtomContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyAtomContext() *AtomContext {
|
|
var p = new(AtomContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_atom
|
|
return p
|
|
}
|
|
|
|
func (*AtomContext) IsAtomContext() {}
|
|
|
|
func NewAtomContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *AtomContext {
|
|
var p = new(AtomContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_atom
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *AtomContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *AtomContext) AllAtext() []IAtextContext {
|
|
var ts = s.GetTypedRuleContexts(reflect.TypeOf((*IAtextContext)(nil)).Elem())
|
|
var tst = make([]IAtextContext, len(ts))
|
|
|
|
for i, t := range ts {
|
|
if t != nil {
|
|
tst[i] = t.(IAtextContext)
|
|
}
|
|
}
|
|
|
|
return tst
|
|
}
|
|
|
|
func (s *AtomContext) Atext(i int) IAtextContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IAtextContext)(nil)).Elem(), i)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IAtextContext)
|
|
}
|
|
|
|
func (s *AtomContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *AtomContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *AtomContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterAtom(s)
|
|
}
|
|
}
|
|
|
|
func (s *AtomContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitAtom(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) Atom() (localctx IAtomContext) {
|
|
localctx = NewAtomContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 16, RFC5322ParserRULE_atom)
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
var _alt int
|
|
|
|
p.EnterOuterAlt(localctx, 1)
|
|
p.SetState(252)
|
|
p.GetErrorHandler().Sync(p)
|
|
_alt = 1
|
|
for ok := true; ok; ok = _alt != 2 && _alt != antlr.ATNInvalidAltNumber {
|
|
switch _alt {
|
|
case 1:
|
|
{
|
|
p.SetState(251)
|
|
p.Atext()
|
|
}
|
|
|
|
default:
|
|
panic(antlr.NewNoViableAltException(p, nil, nil, nil, nil, nil))
|
|
}
|
|
|
|
p.SetState(254)
|
|
p.GetErrorHandler().Sync(p)
|
|
_alt = p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 16, p.GetParserRuleContext())
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// IDotAtomContext is an interface to support dynamic dispatch.
|
|
type IDotAtomContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsDotAtomContext differentiates from other interfaces.
|
|
IsDotAtomContext()
|
|
}
|
|
|
|
type DotAtomContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyDotAtomContext() *DotAtomContext {
|
|
var p = new(DotAtomContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_dotAtom
|
|
return p
|
|
}
|
|
|
|
func (*DotAtomContext) IsDotAtomContext() {}
|
|
|
|
func NewDotAtomContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *DotAtomContext {
|
|
var p = new(DotAtomContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_dotAtom
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *DotAtomContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *DotAtomContext) AllAtext() []IAtextContext {
|
|
var ts = s.GetTypedRuleContexts(reflect.TypeOf((*IAtextContext)(nil)).Elem())
|
|
var tst = make([]IAtextContext, len(ts))
|
|
|
|
for i, t := range ts {
|
|
if t != nil {
|
|
tst[i] = t.(IAtextContext)
|
|
}
|
|
}
|
|
|
|
return tst
|
|
}
|
|
|
|
func (s *DotAtomContext) Atext(i int) IAtextContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IAtextContext)(nil)).Elem(), i)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IAtextContext)
|
|
}
|
|
|
|
func (s *DotAtomContext) AllPeriod() []antlr.TerminalNode {
|
|
return s.GetTokens(RFC5322ParserPeriod)
|
|
}
|
|
|
|
func (s *DotAtomContext) Period(i int) antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserPeriod, i)
|
|
}
|
|
|
|
func (s *DotAtomContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *DotAtomContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *DotAtomContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterDotAtom(s)
|
|
}
|
|
}
|
|
|
|
func (s *DotAtomContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitDotAtom(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) DotAtom() (localctx IDotAtomContext) {
|
|
localctx = NewDotAtomContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 18, RFC5322ParserRULE_dotAtom)
|
|
var _la int
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
var _alt int
|
|
|
|
p.EnterOuterAlt(localctx, 1)
|
|
p.SetState(257)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
for ok := true; ok; ok = (((_la-10)&-(0x1f+1)) == 0 && ((1<<uint((_la-10)))&((1<<(RFC5322ParserExclamation-10))|(1<<(RFC5322ParserHash-10))|(1<<(RFC5322ParserDollar-10))|(1<<(RFC5322ParserPercent-10))|(1<<(RFC5322ParserAmpersand-10))|(1<<(RFC5322ParserSQuote-10))|(1<<(RFC5322ParserAsterisk-10))|(1<<(RFC5322ParserPlus-10))|(1<<(RFC5322ParserMinus-10))|(1<<(RFC5322ParserSlash-10))|(1<<(RFC5322ParserDigit-10))|(1<<(RFC5322ParserEqual-10))|(1<<(RFC5322ParserQuestion-10))|(1<<(RFC5322ParserCaret-10))|(1<<(RFC5322ParserUnderscore-10))|(1<<(RFC5322ParserBacktick-10))|(1<<(RFC5322ParserLCurly-10))|(1<<(RFC5322ParserPipe-10))|(1<<(RFC5322ParserRCurly-10)))) != 0) || (((_la-42)&-(0x1f+1)) == 0 && ((1<<uint((_la-42)))&((1<<(RFC5322ParserTilde-42))|(1<<(RFC5322ParserUTF8NonAscii-42))|(1<<(RFC5322ParserA-42))|(1<<(RFC5322ParserB-42))|(1<<(RFC5322ParserC-42))|(1<<(RFC5322ParserD-42))|(1<<(RFC5322ParserE-42))|(1<<(RFC5322ParserF-42))|(1<<(RFC5322ParserG-42))|(1<<(RFC5322ParserH-42))|(1<<(RFC5322ParserI-42))|(1<<(RFC5322ParserJ-42))|(1<<(RFC5322ParserK-42))|(1<<(RFC5322ParserL-42))|(1<<(RFC5322ParserM-42))|(1<<(RFC5322ParserN-42))|(1<<(RFC5322ParserO-42))|(1<<(RFC5322ParserP-42))|(1<<(RFC5322ParserQ-42))|(1<<(RFC5322ParserR-42))|(1<<(RFC5322ParserS-42))|(1<<(RFC5322ParserT-42))|(1<<(RFC5322ParserU-42))|(1<<(RFC5322ParserV-42))|(1<<(RFC5322ParserW-42))|(1<<(RFC5322ParserX-42))|(1<<(RFC5322ParserY-42))|(1<<(RFC5322ParserZ-42)))) != 0) {
|
|
{
|
|
p.SetState(256)
|
|
p.Atext()
|
|
}
|
|
|
|
p.SetState(259)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
}
|
|
p.SetState(269)
|
|
p.GetErrorHandler().Sync(p)
|
|
_alt = p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 19, p.GetParserRuleContext())
|
|
|
|
for _alt != 2 && _alt != antlr.ATNInvalidAltNumber {
|
|
if _alt == 1 {
|
|
{
|
|
p.SetState(261)
|
|
p.Match(RFC5322ParserPeriod)
|
|
}
|
|
p.SetState(263)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
for ok := true; ok; ok = (((_la-10)&-(0x1f+1)) == 0 && ((1<<uint((_la-10)))&((1<<(RFC5322ParserExclamation-10))|(1<<(RFC5322ParserHash-10))|(1<<(RFC5322ParserDollar-10))|(1<<(RFC5322ParserPercent-10))|(1<<(RFC5322ParserAmpersand-10))|(1<<(RFC5322ParserSQuote-10))|(1<<(RFC5322ParserAsterisk-10))|(1<<(RFC5322ParserPlus-10))|(1<<(RFC5322ParserMinus-10))|(1<<(RFC5322ParserSlash-10))|(1<<(RFC5322ParserDigit-10))|(1<<(RFC5322ParserEqual-10))|(1<<(RFC5322ParserQuestion-10))|(1<<(RFC5322ParserCaret-10))|(1<<(RFC5322ParserUnderscore-10))|(1<<(RFC5322ParserBacktick-10))|(1<<(RFC5322ParserLCurly-10))|(1<<(RFC5322ParserPipe-10))|(1<<(RFC5322ParserRCurly-10)))) != 0) || (((_la-42)&-(0x1f+1)) == 0 && ((1<<uint((_la-42)))&((1<<(RFC5322ParserTilde-42))|(1<<(RFC5322ParserUTF8NonAscii-42))|(1<<(RFC5322ParserA-42))|(1<<(RFC5322ParserB-42))|(1<<(RFC5322ParserC-42))|(1<<(RFC5322ParserD-42))|(1<<(RFC5322ParserE-42))|(1<<(RFC5322ParserF-42))|(1<<(RFC5322ParserG-42))|(1<<(RFC5322ParserH-42))|(1<<(RFC5322ParserI-42))|(1<<(RFC5322ParserJ-42))|(1<<(RFC5322ParserK-42))|(1<<(RFC5322ParserL-42))|(1<<(RFC5322ParserM-42))|(1<<(RFC5322ParserN-42))|(1<<(RFC5322ParserO-42))|(1<<(RFC5322ParserP-42))|(1<<(RFC5322ParserQ-42))|(1<<(RFC5322ParserR-42))|(1<<(RFC5322ParserS-42))|(1<<(RFC5322ParserT-42))|(1<<(RFC5322ParserU-42))|(1<<(RFC5322ParserV-42))|(1<<(RFC5322ParserW-42))|(1<<(RFC5322ParserX-42))|(1<<(RFC5322ParserY-42))|(1<<(RFC5322ParserZ-42)))) != 0) {
|
|
{
|
|
p.SetState(262)
|
|
p.Atext()
|
|
}
|
|
|
|
p.SetState(265)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
}
|
|
|
|
}
|
|
p.SetState(271)
|
|
p.GetErrorHandler().Sync(p)
|
|
_alt = p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 19, p.GetParserRuleContext())
|
|
}
|
|
p.SetState(273)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
if _la == RFC5322ParserPeriod {
|
|
{
|
|
p.SetState(272)
|
|
p.Match(RFC5322ParserPeriod)
|
|
}
|
|
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// IQtextContext is an interface to support dynamic dispatch.
|
|
type IQtextContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsQtextContext differentiates from other interfaces.
|
|
IsQtextContext()
|
|
}
|
|
|
|
type QtextContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyQtextContext() *QtextContext {
|
|
var p = new(QtextContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_qtext
|
|
return p
|
|
}
|
|
|
|
func (*QtextContext) IsQtextContext() {}
|
|
|
|
func NewQtextContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *QtextContext {
|
|
var p = new(QtextContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_qtext
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *QtextContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *QtextContext) Alpha() IAlphaContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IAlphaContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IAlphaContext)
|
|
}
|
|
|
|
func (s *QtextContext) Exclamation() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserExclamation, 0)
|
|
}
|
|
|
|
func (s *QtextContext) Hash() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserHash, 0)
|
|
}
|
|
|
|
func (s *QtextContext) Dollar() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserDollar, 0)
|
|
}
|
|
|
|
func (s *QtextContext) Percent() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserPercent, 0)
|
|
}
|
|
|
|
func (s *QtextContext) Ampersand() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserAmpersand, 0)
|
|
}
|
|
|
|
func (s *QtextContext) SQuote() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserSQuote, 0)
|
|
}
|
|
|
|
func (s *QtextContext) LParens() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserLParens, 0)
|
|
}
|
|
|
|
func (s *QtextContext) RParens() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserRParens, 0)
|
|
}
|
|
|
|
func (s *QtextContext) Asterisk() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserAsterisk, 0)
|
|
}
|
|
|
|
func (s *QtextContext) Plus() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserPlus, 0)
|
|
}
|
|
|
|
func (s *QtextContext) Comma() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserComma, 0)
|
|
}
|
|
|
|
func (s *QtextContext) Minus() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserMinus, 0)
|
|
}
|
|
|
|
func (s *QtextContext) Period() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserPeriod, 0)
|
|
}
|
|
|
|
func (s *QtextContext) Slash() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserSlash, 0)
|
|
}
|
|
|
|
func (s *QtextContext) Digit() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserDigit, 0)
|
|
}
|
|
|
|
func (s *QtextContext) Colon() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserColon, 0)
|
|
}
|
|
|
|
func (s *QtextContext) Semicolon() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserSemicolon, 0)
|
|
}
|
|
|
|
func (s *QtextContext) Less() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserLess, 0)
|
|
}
|
|
|
|
func (s *QtextContext) Equal() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserEqual, 0)
|
|
}
|
|
|
|
func (s *QtextContext) Greater() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserGreater, 0)
|
|
}
|
|
|
|
func (s *QtextContext) Question() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserQuestion, 0)
|
|
}
|
|
|
|
func (s *QtextContext) At() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserAt, 0)
|
|
}
|
|
|
|
func (s *QtextContext) LBracket() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserLBracket, 0)
|
|
}
|
|
|
|
func (s *QtextContext) RBracket() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserRBracket, 0)
|
|
}
|
|
|
|
func (s *QtextContext) Caret() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserCaret, 0)
|
|
}
|
|
|
|
func (s *QtextContext) Underscore() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserUnderscore, 0)
|
|
}
|
|
|
|
func (s *QtextContext) Backtick() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserBacktick, 0)
|
|
}
|
|
|
|
func (s *QtextContext) LCurly() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserLCurly, 0)
|
|
}
|
|
|
|
func (s *QtextContext) Pipe() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserPipe, 0)
|
|
}
|
|
|
|
func (s *QtextContext) RCurly() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserRCurly, 0)
|
|
}
|
|
|
|
func (s *QtextContext) Tilde() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserTilde, 0)
|
|
}
|
|
|
|
func (s *QtextContext) ObsQtext() IObsQtextContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IObsQtextContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IObsQtextContext)
|
|
}
|
|
|
|
func (s *QtextContext) UTF8NonAscii() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserUTF8NonAscii, 0)
|
|
}
|
|
|
|
func (s *QtextContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *QtextContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *QtextContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterQtext(s)
|
|
}
|
|
}
|
|
|
|
func (s *QtextContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitQtext(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) Qtext() (localctx IQtextContext) {
|
|
localctx = NewQtextContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 20, RFC5322ParserRULE_qtext)
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
p.SetState(309)
|
|
p.GetErrorHandler().Sync(p)
|
|
|
|
switch p.GetTokenStream().LA(1) {
|
|
case RFC5322ParserA, RFC5322ParserB, RFC5322ParserC, RFC5322ParserD, RFC5322ParserE, RFC5322ParserF, RFC5322ParserG, RFC5322ParserH, RFC5322ParserI, RFC5322ParserJ, RFC5322ParserK, RFC5322ParserL, RFC5322ParserM, RFC5322ParserN, RFC5322ParserO, RFC5322ParserP, RFC5322ParserQ, RFC5322ParserR, RFC5322ParserS, RFC5322ParserT, RFC5322ParserU, RFC5322ParserV, RFC5322ParserW, RFC5322ParserX, RFC5322ParserY, RFC5322ParserZ:
|
|
p.EnterOuterAlt(localctx, 1)
|
|
{
|
|
p.SetState(275)
|
|
p.Alpha()
|
|
}
|
|
|
|
case RFC5322ParserExclamation:
|
|
p.EnterOuterAlt(localctx, 2)
|
|
{
|
|
p.SetState(276)
|
|
p.Match(RFC5322ParserExclamation)
|
|
}
|
|
|
|
case RFC5322ParserHash:
|
|
p.EnterOuterAlt(localctx, 3)
|
|
{
|
|
p.SetState(277)
|
|
p.Match(RFC5322ParserHash)
|
|
}
|
|
|
|
case RFC5322ParserDollar:
|
|
p.EnterOuterAlt(localctx, 4)
|
|
{
|
|
p.SetState(278)
|
|
p.Match(RFC5322ParserDollar)
|
|
}
|
|
|
|
case RFC5322ParserPercent:
|
|
p.EnterOuterAlt(localctx, 5)
|
|
{
|
|
p.SetState(279)
|
|
p.Match(RFC5322ParserPercent)
|
|
}
|
|
|
|
case RFC5322ParserAmpersand:
|
|
p.EnterOuterAlt(localctx, 6)
|
|
{
|
|
p.SetState(280)
|
|
p.Match(RFC5322ParserAmpersand)
|
|
}
|
|
|
|
case RFC5322ParserSQuote:
|
|
p.EnterOuterAlt(localctx, 7)
|
|
{
|
|
p.SetState(281)
|
|
p.Match(RFC5322ParserSQuote)
|
|
}
|
|
|
|
case RFC5322ParserLParens:
|
|
p.EnterOuterAlt(localctx, 8)
|
|
{
|
|
p.SetState(282)
|
|
p.Match(RFC5322ParserLParens)
|
|
}
|
|
|
|
case RFC5322ParserRParens:
|
|
p.EnterOuterAlt(localctx, 9)
|
|
{
|
|
p.SetState(283)
|
|
p.Match(RFC5322ParserRParens)
|
|
}
|
|
|
|
case RFC5322ParserAsterisk:
|
|
p.EnterOuterAlt(localctx, 10)
|
|
{
|
|
p.SetState(284)
|
|
p.Match(RFC5322ParserAsterisk)
|
|
}
|
|
|
|
case RFC5322ParserPlus:
|
|
p.EnterOuterAlt(localctx, 11)
|
|
{
|
|
p.SetState(285)
|
|
p.Match(RFC5322ParserPlus)
|
|
}
|
|
|
|
case RFC5322ParserComma:
|
|
p.EnterOuterAlt(localctx, 12)
|
|
{
|
|
p.SetState(286)
|
|
p.Match(RFC5322ParserComma)
|
|
}
|
|
|
|
case RFC5322ParserMinus:
|
|
p.EnterOuterAlt(localctx, 13)
|
|
{
|
|
p.SetState(287)
|
|
p.Match(RFC5322ParserMinus)
|
|
}
|
|
|
|
case RFC5322ParserPeriod:
|
|
p.EnterOuterAlt(localctx, 14)
|
|
{
|
|
p.SetState(288)
|
|
p.Match(RFC5322ParserPeriod)
|
|
}
|
|
|
|
case RFC5322ParserSlash:
|
|
p.EnterOuterAlt(localctx, 15)
|
|
{
|
|
p.SetState(289)
|
|
p.Match(RFC5322ParserSlash)
|
|
}
|
|
|
|
case RFC5322ParserDigit:
|
|
p.EnterOuterAlt(localctx, 16)
|
|
{
|
|
p.SetState(290)
|
|
p.Match(RFC5322ParserDigit)
|
|
}
|
|
|
|
case RFC5322ParserColon:
|
|
p.EnterOuterAlt(localctx, 17)
|
|
{
|
|
p.SetState(291)
|
|
p.Match(RFC5322ParserColon)
|
|
}
|
|
|
|
case RFC5322ParserSemicolon:
|
|
p.EnterOuterAlt(localctx, 18)
|
|
{
|
|
p.SetState(292)
|
|
p.Match(RFC5322ParserSemicolon)
|
|
}
|
|
|
|
case RFC5322ParserLess:
|
|
p.EnterOuterAlt(localctx, 19)
|
|
{
|
|
p.SetState(293)
|
|
p.Match(RFC5322ParserLess)
|
|
}
|
|
|
|
case RFC5322ParserEqual:
|
|
p.EnterOuterAlt(localctx, 20)
|
|
{
|
|
p.SetState(294)
|
|
p.Match(RFC5322ParserEqual)
|
|
}
|
|
|
|
case RFC5322ParserGreater:
|
|
p.EnterOuterAlt(localctx, 21)
|
|
{
|
|
p.SetState(295)
|
|
p.Match(RFC5322ParserGreater)
|
|
}
|
|
|
|
case RFC5322ParserQuestion:
|
|
p.EnterOuterAlt(localctx, 22)
|
|
{
|
|
p.SetState(296)
|
|
p.Match(RFC5322ParserQuestion)
|
|
}
|
|
|
|
case RFC5322ParserAt:
|
|
p.EnterOuterAlt(localctx, 23)
|
|
{
|
|
p.SetState(297)
|
|
p.Match(RFC5322ParserAt)
|
|
}
|
|
|
|
case RFC5322ParserLBracket:
|
|
p.EnterOuterAlt(localctx, 24)
|
|
{
|
|
p.SetState(298)
|
|
p.Match(RFC5322ParserLBracket)
|
|
}
|
|
|
|
case RFC5322ParserRBracket:
|
|
p.EnterOuterAlt(localctx, 25)
|
|
{
|
|
p.SetState(299)
|
|
p.Match(RFC5322ParserRBracket)
|
|
}
|
|
|
|
case RFC5322ParserCaret:
|
|
p.EnterOuterAlt(localctx, 26)
|
|
{
|
|
p.SetState(300)
|
|
p.Match(RFC5322ParserCaret)
|
|
}
|
|
|
|
case RFC5322ParserUnderscore:
|
|
p.EnterOuterAlt(localctx, 27)
|
|
{
|
|
p.SetState(301)
|
|
p.Match(RFC5322ParserUnderscore)
|
|
}
|
|
|
|
case RFC5322ParserBacktick:
|
|
p.EnterOuterAlt(localctx, 28)
|
|
{
|
|
p.SetState(302)
|
|
p.Match(RFC5322ParserBacktick)
|
|
}
|
|
|
|
case RFC5322ParserLCurly:
|
|
p.EnterOuterAlt(localctx, 29)
|
|
{
|
|
p.SetState(303)
|
|
p.Match(RFC5322ParserLCurly)
|
|
}
|
|
|
|
case RFC5322ParserPipe:
|
|
p.EnterOuterAlt(localctx, 30)
|
|
{
|
|
p.SetState(304)
|
|
p.Match(RFC5322ParserPipe)
|
|
}
|
|
|
|
case RFC5322ParserRCurly:
|
|
p.EnterOuterAlt(localctx, 31)
|
|
{
|
|
p.SetState(305)
|
|
p.Match(RFC5322ParserRCurly)
|
|
}
|
|
|
|
case RFC5322ParserTilde:
|
|
p.EnterOuterAlt(localctx, 32)
|
|
{
|
|
p.SetState(306)
|
|
p.Match(RFC5322ParserTilde)
|
|
}
|
|
|
|
case RFC5322ParserU_01_08, RFC5322ParserU_0B, RFC5322ParserU_0C, RFC5322ParserU_0E_1F, RFC5322ParserDelete:
|
|
p.EnterOuterAlt(localctx, 33)
|
|
{
|
|
p.SetState(307)
|
|
p.ObsQtext()
|
|
}
|
|
|
|
case RFC5322ParserUTF8NonAscii:
|
|
p.EnterOuterAlt(localctx, 34)
|
|
{
|
|
p.SetState(308)
|
|
p.Match(RFC5322ParserUTF8NonAscii)
|
|
}
|
|
|
|
default:
|
|
panic(antlr.NewNoViableAltException(p, nil, nil, nil, nil, nil))
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// IQuotedContentContext is an interface to support dynamic dispatch.
|
|
type IQuotedContentContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsQuotedContentContext differentiates from other interfaces.
|
|
IsQuotedContentContext()
|
|
}
|
|
|
|
type QuotedContentContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyQuotedContentContext() *QuotedContentContext {
|
|
var p = new(QuotedContentContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_quotedContent
|
|
return p
|
|
}
|
|
|
|
func (*QuotedContentContext) IsQuotedContentContext() {}
|
|
|
|
func NewQuotedContentContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *QuotedContentContext {
|
|
var p = new(QuotedContentContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_quotedContent
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *QuotedContentContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *QuotedContentContext) Qtext() IQtextContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IQtextContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IQtextContext)
|
|
}
|
|
|
|
func (s *QuotedContentContext) QuotedPair() IQuotedPairContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IQuotedPairContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IQuotedPairContext)
|
|
}
|
|
|
|
func (s *QuotedContentContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *QuotedContentContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *QuotedContentContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterQuotedContent(s)
|
|
}
|
|
}
|
|
|
|
func (s *QuotedContentContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitQuotedContent(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) QuotedContent() (localctx IQuotedContentContext) {
|
|
localctx = NewQuotedContentContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 22, RFC5322ParserRULE_quotedContent)
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
p.SetState(313)
|
|
p.GetErrorHandler().Sync(p)
|
|
|
|
switch p.GetTokenStream().LA(1) {
|
|
case RFC5322ParserU_01_08, RFC5322ParserU_0B, RFC5322ParserU_0C, RFC5322ParserU_0E_1F, RFC5322ParserExclamation, RFC5322ParserHash, RFC5322ParserDollar, RFC5322ParserPercent, RFC5322ParserAmpersand, RFC5322ParserSQuote, RFC5322ParserLParens, RFC5322ParserRParens, RFC5322ParserAsterisk, RFC5322ParserPlus, RFC5322ParserComma, RFC5322ParserMinus, RFC5322ParserPeriod, RFC5322ParserSlash, RFC5322ParserDigit, RFC5322ParserColon, RFC5322ParserSemicolon, RFC5322ParserLess, RFC5322ParserEqual, RFC5322ParserGreater, RFC5322ParserQuestion, RFC5322ParserAt, RFC5322ParserLBracket, RFC5322ParserRBracket, RFC5322ParserCaret, RFC5322ParserUnderscore, RFC5322ParserBacktick, RFC5322ParserLCurly, RFC5322ParserPipe, RFC5322ParserRCurly, RFC5322ParserTilde, RFC5322ParserDelete, RFC5322ParserUTF8NonAscii, RFC5322ParserA, RFC5322ParserB, RFC5322ParserC, RFC5322ParserD, RFC5322ParserE, RFC5322ParserF, RFC5322ParserG, RFC5322ParserH, RFC5322ParserI, RFC5322ParserJ, RFC5322ParserK, RFC5322ParserL, RFC5322ParserM, RFC5322ParserN, RFC5322ParserO, RFC5322ParserP, RFC5322ParserQ, RFC5322ParserR, RFC5322ParserS, RFC5322ParserT, RFC5322ParserU, RFC5322ParserV, RFC5322ParserW, RFC5322ParserX, RFC5322ParserY, RFC5322ParserZ:
|
|
p.EnterOuterAlt(localctx, 1)
|
|
{
|
|
p.SetState(311)
|
|
p.Qtext()
|
|
}
|
|
|
|
case RFC5322ParserBackslash:
|
|
p.EnterOuterAlt(localctx, 2)
|
|
{
|
|
p.SetState(312)
|
|
p.QuotedPair()
|
|
}
|
|
|
|
default:
|
|
panic(antlr.NewNoViableAltException(p, nil, nil, nil, nil, nil))
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// IQuotedValueContext is an interface to support dynamic dispatch.
|
|
type IQuotedValueContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsQuotedValueContext differentiates from other interfaces.
|
|
IsQuotedValueContext()
|
|
}
|
|
|
|
type QuotedValueContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyQuotedValueContext() *QuotedValueContext {
|
|
var p = new(QuotedValueContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_quotedValue
|
|
return p
|
|
}
|
|
|
|
func (*QuotedValueContext) IsQuotedValueContext() {}
|
|
|
|
func NewQuotedValueContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *QuotedValueContext {
|
|
var p = new(QuotedValueContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_quotedValue
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *QuotedValueContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *QuotedValueContext) AllQuotedContent() []IQuotedContentContext {
|
|
var ts = s.GetTypedRuleContexts(reflect.TypeOf((*IQuotedContentContext)(nil)).Elem())
|
|
var tst = make([]IQuotedContentContext, len(ts))
|
|
|
|
for i, t := range ts {
|
|
if t != nil {
|
|
tst[i] = t.(IQuotedContentContext)
|
|
}
|
|
}
|
|
|
|
return tst
|
|
}
|
|
|
|
func (s *QuotedValueContext) QuotedContent(i int) IQuotedContentContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IQuotedContentContext)(nil)).Elem(), i)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IQuotedContentContext)
|
|
}
|
|
|
|
func (s *QuotedValueContext) AllFws() []IFwsContext {
|
|
var ts = s.GetTypedRuleContexts(reflect.TypeOf((*IFwsContext)(nil)).Elem())
|
|
var tst = make([]IFwsContext, len(ts))
|
|
|
|
for i, t := range ts {
|
|
if t != nil {
|
|
tst[i] = t.(IFwsContext)
|
|
}
|
|
}
|
|
|
|
return tst
|
|
}
|
|
|
|
func (s *QuotedValueContext) Fws(i int) IFwsContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IFwsContext)(nil)).Elem(), i)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IFwsContext)
|
|
}
|
|
|
|
func (s *QuotedValueContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *QuotedValueContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *QuotedValueContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterQuotedValue(s)
|
|
}
|
|
}
|
|
|
|
func (s *QuotedValueContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitQuotedValue(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) QuotedValue() (localctx IQuotedValueContext) {
|
|
localctx = NewQuotedValueContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 24, RFC5322ParserRULE_quotedValue)
|
|
var _la int
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
var _alt int
|
|
|
|
p.EnterOuterAlt(localctx, 1)
|
|
p.SetState(321)
|
|
p.GetErrorHandler().Sync(p)
|
|
_alt = p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 24, p.GetParserRuleContext())
|
|
|
|
for _alt != 2 && _alt != antlr.ATNInvalidAltNumber {
|
|
if _alt == 1 {
|
|
p.SetState(316)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
if ((_la)&-(0x1f+1)) == 0 && ((1<<uint(_la))&((1<<RFC5322ParserTAB)|(1<<RFC5322ParserCR)|(1<<RFC5322ParserSP))) != 0 {
|
|
{
|
|
p.SetState(315)
|
|
p.Fws()
|
|
}
|
|
|
|
}
|
|
{
|
|
p.SetState(318)
|
|
p.QuotedContent()
|
|
}
|
|
|
|
}
|
|
p.SetState(323)
|
|
p.GetErrorHandler().Sync(p)
|
|
_alt = p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 24, p.GetParserRuleContext())
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// IQuotedStringContext is an interface to support dynamic dispatch.
|
|
type IQuotedStringContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsQuotedStringContext differentiates from other interfaces.
|
|
IsQuotedStringContext()
|
|
}
|
|
|
|
type QuotedStringContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyQuotedStringContext() *QuotedStringContext {
|
|
var p = new(QuotedStringContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_quotedString
|
|
return p
|
|
}
|
|
|
|
func (*QuotedStringContext) IsQuotedStringContext() {}
|
|
|
|
func NewQuotedStringContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *QuotedStringContext {
|
|
var p = new(QuotedStringContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_quotedString
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *QuotedStringContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *QuotedStringContext) AllDQuote() []antlr.TerminalNode {
|
|
return s.GetTokens(RFC5322ParserDQuote)
|
|
}
|
|
|
|
func (s *QuotedStringContext) DQuote(i int) antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserDQuote, i)
|
|
}
|
|
|
|
func (s *QuotedStringContext) QuotedValue() IQuotedValueContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IQuotedValueContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IQuotedValueContext)
|
|
}
|
|
|
|
func (s *QuotedStringContext) Fws() IFwsContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IFwsContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IFwsContext)
|
|
}
|
|
|
|
func (s *QuotedStringContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *QuotedStringContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *QuotedStringContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterQuotedString(s)
|
|
}
|
|
}
|
|
|
|
func (s *QuotedStringContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitQuotedString(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) QuotedString() (localctx IQuotedStringContext) {
|
|
localctx = NewQuotedStringContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 26, RFC5322ParserRULE_quotedString)
|
|
var _la int
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
p.EnterOuterAlt(localctx, 1)
|
|
{
|
|
p.SetState(324)
|
|
p.Match(RFC5322ParserDQuote)
|
|
}
|
|
{
|
|
p.SetState(325)
|
|
p.QuotedValue()
|
|
}
|
|
p.SetState(327)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
if ((_la)&-(0x1f+1)) == 0 && ((1<<uint(_la))&((1<<RFC5322ParserTAB)|(1<<RFC5322ParserCR)|(1<<RFC5322ParserSP))) != 0 {
|
|
{
|
|
p.SetState(326)
|
|
p.Fws()
|
|
}
|
|
|
|
}
|
|
{
|
|
p.SetState(329)
|
|
p.Match(RFC5322ParserDQuote)
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// IWordContext is an interface to support dynamic dispatch.
|
|
type IWordContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsWordContext differentiates from other interfaces.
|
|
IsWordContext()
|
|
}
|
|
|
|
type WordContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyWordContext() *WordContext {
|
|
var p = new(WordContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_word
|
|
return p
|
|
}
|
|
|
|
func (*WordContext) IsWordContext() {}
|
|
|
|
func NewWordContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *WordContext {
|
|
var p = new(WordContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_word
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *WordContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *WordContext) EncodedWord() IEncodedWordContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IEncodedWordContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IEncodedWordContext)
|
|
}
|
|
|
|
func (s *WordContext) AllCfws() []ICfwsContext {
|
|
var ts = s.GetTypedRuleContexts(reflect.TypeOf((*ICfwsContext)(nil)).Elem())
|
|
var tst = make([]ICfwsContext, len(ts))
|
|
|
|
for i, t := range ts {
|
|
if t != nil {
|
|
tst[i] = t.(ICfwsContext)
|
|
}
|
|
}
|
|
|
|
return tst
|
|
}
|
|
|
|
func (s *WordContext) Cfws(i int) ICfwsContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*ICfwsContext)(nil)).Elem(), i)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(ICfwsContext)
|
|
}
|
|
|
|
func (s *WordContext) Atom() IAtomContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IAtomContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IAtomContext)
|
|
}
|
|
|
|
func (s *WordContext) QuotedString() IQuotedStringContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IQuotedStringContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IQuotedStringContext)
|
|
}
|
|
|
|
func (s *WordContext) At() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserAt, 0)
|
|
}
|
|
|
|
func (s *WordContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *WordContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *WordContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterWord(s)
|
|
}
|
|
}
|
|
|
|
func (s *WordContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitWord(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) Word() (localctx IWordContext) {
|
|
localctx = NewWordContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 28, RFC5322ParserRULE_word)
|
|
var _la int
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
p.SetState(353)
|
|
p.GetErrorHandler().Sync(p)
|
|
switch p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 32, p.GetParserRuleContext()) {
|
|
case 1:
|
|
p.EnterOuterAlt(localctx, 1)
|
|
p.SetState(332)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
if ((_la)&-(0x1f+1)) == 0 && ((1<<uint(_la))&((1<<RFC5322ParserTAB)|(1<<RFC5322ParserCR)|(1<<RFC5322ParserSP)|(1<<RFC5322ParserLParens))) != 0 {
|
|
{
|
|
p.SetState(331)
|
|
p.Cfws()
|
|
}
|
|
|
|
}
|
|
{
|
|
p.SetState(334)
|
|
p.EncodedWord()
|
|
}
|
|
p.SetState(336)
|
|
p.GetErrorHandler().Sync(p)
|
|
|
|
if p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 27, p.GetParserRuleContext()) == 1 {
|
|
{
|
|
p.SetState(335)
|
|
p.Cfws()
|
|
}
|
|
|
|
}
|
|
|
|
case 2:
|
|
p.EnterOuterAlt(localctx, 2)
|
|
p.SetState(339)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
if ((_la)&-(0x1f+1)) == 0 && ((1<<uint(_la))&((1<<RFC5322ParserTAB)|(1<<RFC5322ParserCR)|(1<<RFC5322ParserSP)|(1<<RFC5322ParserLParens))) != 0 {
|
|
{
|
|
p.SetState(338)
|
|
p.Cfws()
|
|
}
|
|
|
|
}
|
|
{
|
|
p.SetState(341)
|
|
p.Atom()
|
|
}
|
|
p.SetState(343)
|
|
p.GetErrorHandler().Sync(p)
|
|
|
|
if p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 29, p.GetParserRuleContext()) == 1 {
|
|
{
|
|
p.SetState(342)
|
|
p.Cfws()
|
|
}
|
|
|
|
}
|
|
|
|
case 3:
|
|
p.EnterOuterAlt(localctx, 3)
|
|
p.SetState(346)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
if ((_la)&-(0x1f+1)) == 0 && ((1<<uint(_la))&((1<<RFC5322ParserTAB)|(1<<RFC5322ParserCR)|(1<<RFC5322ParserSP)|(1<<RFC5322ParserLParens))) != 0 {
|
|
{
|
|
p.SetState(345)
|
|
p.Cfws()
|
|
}
|
|
|
|
}
|
|
{
|
|
p.SetState(348)
|
|
p.QuotedString()
|
|
}
|
|
p.SetState(350)
|
|
p.GetErrorHandler().Sync(p)
|
|
|
|
if p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 31, p.GetParserRuleContext()) == 1 {
|
|
{
|
|
p.SetState(349)
|
|
p.Cfws()
|
|
}
|
|
|
|
}
|
|
|
|
case 4:
|
|
p.EnterOuterAlt(localctx, 4)
|
|
{
|
|
p.SetState(352)
|
|
p.Match(RFC5322ParserAt)
|
|
}
|
|
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// IDateTimeContext is an interface to support dynamic dispatch.
|
|
type IDateTimeContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsDateTimeContext differentiates from other interfaces.
|
|
IsDateTimeContext()
|
|
}
|
|
|
|
type DateTimeContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyDateTimeContext() *DateTimeContext {
|
|
var p = new(DateTimeContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_dateTime
|
|
return p
|
|
}
|
|
|
|
func (*DateTimeContext) IsDateTimeContext() {}
|
|
|
|
func NewDateTimeContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *DateTimeContext {
|
|
var p = new(DateTimeContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_dateTime
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *DateTimeContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *DateTimeContext) Day() IDayContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IDayContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IDayContext)
|
|
}
|
|
|
|
func (s *DateTimeContext) Month() IMonthContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IMonthContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IMonthContext)
|
|
}
|
|
|
|
func (s *DateTimeContext) Year() IYearContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IYearContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IYearContext)
|
|
}
|
|
|
|
func (s *DateTimeContext) Hour() IHourContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IHourContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IHourContext)
|
|
}
|
|
|
|
func (s *DateTimeContext) AllColon() []antlr.TerminalNode {
|
|
return s.GetTokens(RFC5322ParserColon)
|
|
}
|
|
|
|
func (s *DateTimeContext) Colon(i int) antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserColon, i)
|
|
}
|
|
|
|
func (s *DateTimeContext) Minute() IMinuteContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IMinuteContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IMinuteContext)
|
|
}
|
|
|
|
func (s *DateTimeContext) EOF() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserEOF, 0)
|
|
}
|
|
|
|
func (s *DateTimeContext) DayOfweek() IDayOfweekContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IDayOfweekContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IDayOfweekContext)
|
|
}
|
|
|
|
func (s *DateTimeContext) Comma() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserComma, 0)
|
|
}
|
|
|
|
func (s *DateTimeContext) Second() ISecondContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*ISecondContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(ISecondContext)
|
|
}
|
|
|
|
func (s *DateTimeContext) Zone() IZoneContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IZoneContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IZoneContext)
|
|
}
|
|
|
|
func (s *DateTimeContext) Cfws() ICfwsContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*ICfwsContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(ICfwsContext)
|
|
}
|
|
|
|
func (s *DateTimeContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *DateTimeContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *DateTimeContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterDateTime(s)
|
|
}
|
|
}
|
|
|
|
func (s *DateTimeContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitDateTime(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) DateTime() (localctx IDateTimeContext) {
|
|
localctx = NewDateTimeContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 30, RFC5322ParserRULE_dateTime)
|
|
var _la int
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
p.EnterOuterAlt(localctx, 1)
|
|
p.SetState(358)
|
|
p.GetErrorHandler().Sync(p)
|
|
|
|
if p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 33, p.GetParserRuleContext()) == 1 {
|
|
{
|
|
p.SetState(355)
|
|
p.DayOfweek()
|
|
}
|
|
{
|
|
p.SetState(356)
|
|
p.Match(RFC5322ParserComma)
|
|
}
|
|
|
|
}
|
|
{
|
|
p.SetState(360)
|
|
p.Day()
|
|
}
|
|
{
|
|
p.SetState(361)
|
|
p.Month()
|
|
}
|
|
{
|
|
p.SetState(362)
|
|
p.Year()
|
|
}
|
|
{
|
|
p.SetState(363)
|
|
p.Hour()
|
|
}
|
|
{
|
|
p.SetState(364)
|
|
p.Match(RFC5322ParserColon)
|
|
}
|
|
{
|
|
p.SetState(365)
|
|
p.Minute()
|
|
}
|
|
p.SetState(368)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
if _la == RFC5322ParserColon {
|
|
{
|
|
p.SetState(366)
|
|
p.Match(RFC5322ParserColon)
|
|
}
|
|
{
|
|
p.SetState(367)
|
|
p.Second()
|
|
}
|
|
|
|
}
|
|
p.SetState(371)
|
|
p.GetErrorHandler().Sync(p)
|
|
|
|
if p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 35, p.GetParserRuleContext()) == 1 {
|
|
{
|
|
p.SetState(370)
|
|
p.Zone()
|
|
}
|
|
|
|
}
|
|
p.SetState(374)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
if ((_la)&-(0x1f+1)) == 0 && ((1<<uint(_la))&((1<<RFC5322ParserTAB)|(1<<RFC5322ParserCR)|(1<<RFC5322ParserSP)|(1<<RFC5322ParserLParens))) != 0 {
|
|
{
|
|
p.SetState(373)
|
|
p.Cfws()
|
|
}
|
|
|
|
}
|
|
{
|
|
p.SetState(376)
|
|
p.Match(RFC5322ParserEOF)
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// IDayOfweekContext is an interface to support dynamic dispatch.
|
|
type IDayOfweekContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsDayOfweekContext differentiates from other interfaces.
|
|
IsDayOfweekContext()
|
|
}
|
|
|
|
type DayOfweekContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyDayOfweekContext() *DayOfweekContext {
|
|
var p = new(DayOfweekContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_dayOfweek
|
|
return p
|
|
}
|
|
|
|
func (*DayOfweekContext) IsDayOfweekContext() {}
|
|
|
|
func NewDayOfweekContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *DayOfweekContext {
|
|
var p = new(DayOfweekContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_dayOfweek
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *DayOfweekContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *DayOfweekContext) DayName() IDayNameContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IDayNameContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IDayNameContext)
|
|
}
|
|
|
|
func (s *DayOfweekContext) Fws() IFwsContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IFwsContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IFwsContext)
|
|
}
|
|
|
|
func (s *DayOfweekContext) AllCfws() []ICfwsContext {
|
|
var ts = s.GetTypedRuleContexts(reflect.TypeOf((*ICfwsContext)(nil)).Elem())
|
|
var tst = make([]ICfwsContext, len(ts))
|
|
|
|
for i, t := range ts {
|
|
if t != nil {
|
|
tst[i] = t.(ICfwsContext)
|
|
}
|
|
}
|
|
|
|
return tst
|
|
}
|
|
|
|
func (s *DayOfweekContext) Cfws(i int) ICfwsContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*ICfwsContext)(nil)).Elem(), i)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(ICfwsContext)
|
|
}
|
|
|
|
func (s *DayOfweekContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *DayOfweekContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *DayOfweekContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterDayOfweek(s)
|
|
}
|
|
}
|
|
|
|
func (s *DayOfweekContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitDayOfweek(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) DayOfweek() (localctx IDayOfweekContext) {
|
|
localctx = NewDayOfweekContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 32, RFC5322ParserRULE_dayOfweek)
|
|
var _la int
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
p.SetState(389)
|
|
p.GetErrorHandler().Sync(p)
|
|
switch p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 40, p.GetParserRuleContext()) {
|
|
case 1:
|
|
p.EnterOuterAlt(localctx, 1)
|
|
p.SetState(379)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
if ((_la)&-(0x1f+1)) == 0 && ((1<<uint(_la))&((1<<RFC5322ParserTAB)|(1<<RFC5322ParserCR)|(1<<RFC5322ParserSP))) != 0 {
|
|
{
|
|
p.SetState(378)
|
|
p.Fws()
|
|
}
|
|
|
|
}
|
|
{
|
|
p.SetState(381)
|
|
p.DayName()
|
|
}
|
|
|
|
case 2:
|
|
p.EnterOuterAlt(localctx, 2)
|
|
p.SetState(383)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
if ((_la)&-(0x1f+1)) == 0 && ((1<<uint(_la))&((1<<RFC5322ParserTAB)|(1<<RFC5322ParserCR)|(1<<RFC5322ParserSP)|(1<<RFC5322ParserLParens))) != 0 {
|
|
{
|
|
p.SetState(382)
|
|
p.Cfws()
|
|
}
|
|
|
|
}
|
|
{
|
|
p.SetState(385)
|
|
p.DayName()
|
|
}
|
|
p.SetState(387)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
if ((_la)&-(0x1f+1)) == 0 && ((1<<uint(_la))&((1<<RFC5322ParserTAB)|(1<<RFC5322ParserCR)|(1<<RFC5322ParserSP)|(1<<RFC5322ParserLParens))) != 0 {
|
|
{
|
|
p.SetState(386)
|
|
p.Cfws()
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// IDayNameContext is an interface to support dynamic dispatch.
|
|
type IDayNameContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsDayNameContext differentiates from other interfaces.
|
|
IsDayNameContext()
|
|
}
|
|
|
|
type DayNameContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyDayNameContext() *DayNameContext {
|
|
var p = new(DayNameContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_dayName
|
|
return p
|
|
}
|
|
|
|
func (*DayNameContext) IsDayNameContext() {}
|
|
|
|
func NewDayNameContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *DayNameContext {
|
|
var p = new(DayNameContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_dayName
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *DayNameContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *DayNameContext) M() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserM, 0)
|
|
}
|
|
|
|
func (s *DayNameContext) O() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserO, 0)
|
|
}
|
|
|
|
func (s *DayNameContext) N() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserN, 0)
|
|
}
|
|
|
|
func (s *DayNameContext) T() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserT, 0)
|
|
}
|
|
|
|
func (s *DayNameContext) U() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserU, 0)
|
|
}
|
|
|
|
func (s *DayNameContext) E() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserE, 0)
|
|
}
|
|
|
|
func (s *DayNameContext) W() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserW, 0)
|
|
}
|
|
|
|
func (s *DayNameContext) D() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserD, 0)
|
|
}
|
|
|
|
func (s *DayNameContext) H() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserH, 0)
|
|
}
|
|
|
|
func (s *DayNameContext) F() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserF, 0)
|
|
}
|
|
|
|
func (s *DayNameContext) R() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserR, 0)
|
|
}
|
|
|
|
func (s *DayNameContext) I() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserI, 0)
|
|
}
|
|
|
|
func (s *DayNameContext) S() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserS, 0)
|
|
}
|
|
|
|
func (s *DayNameContext) A() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserA, 0)
|
|
}
|
|
|
|
func (s *DayNameContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *DayNameContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *DayNameContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterDayName(s)
|
|
}
|
|
}
|
|
|
|
func (s *DayNameContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitDayName(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) DayName() (localctx IDayNameContext) {
|
|
localctx = NewDayNameContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 34, RFC5322ParserRULE_dayName)
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
p.SetState(412)
|
|
p.GetErrorHandler().Sync(p)
|
|
switch p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 41, p.GetParserRuleContext()) {
|
|
case 1:
|
|
p.EnterOuterAlt(localctx, 1)
|
|
{
|
|
p.SetState(391)
|
|
p.Match(RFC5322ParserM)
|
|
}
|
|
{
|
|
p.SetState(392)
|
|
p.Match(RFC5322ParserO)
|
|
}
|
|
{
|
|
p.SetState(393)
|
|
p.Match(RFC5322ParserN)
|
|
}
|
|
|
|
case 2:
|
|
p.EnterOuterAlt(localctx, 2)
|
|
{
|
|
p.SetState(394)
|
|
p.Match(RFC5322ParserT)
|
|
}
|
|
{
|
|
p.SetState(395)
|
|
p.Match(RFC5322ParserU)
|
|
}
|
|
{
|
|
p.SetState(396)
|
|
p.Match(RFC5322ParserE)
|
|
}
|
|
|
|
case 3:
|
|
p.EnterOuterAlt(localctx, 3)
|
|
{
|
|
p.SetState(397)
|
|
p.Match(RFC5322ParserW)
|
|
}
|
|
{
|
|
p.SetState(398)
|
|
p.Match(RFC5322ParserE)
|
|
}
|
|
{
|
|
p.SetState(399)
|
|
p.Match(RFC5322ParserD)
|
|
}
|
|
|
|
case 4:
|
|
p.EnterOuterAlt(localctx, 4)
|
|
{
|
|
p.SetState(400)
|
|
p.Match(RFC5322ParserT)
|
|
}
|
|
{
|
|
p.SetState(401)
|
|
p.Match(RFC5322ParserH)
|
|
}
|
|
{
|
|
p.SetState(402)
|
|
p.Match(RFC5322ParserU)
|
|
}
|
|
|
|
case 5:
|
|
p.EnterOuterAlt(localctx, 5)
|
|
{
|
|
p.SetState(403)
|
|
p.Match(RFC5322ParserF)
|
|
}
|
|
{
|
|
p.SetState(404)
|
|
p.Match(RFC5322ParserR)
|
|
}
|
|
{
|
|
p.SetState(405)
|
|
p.Match(RFC5322ParserI)
|
|
}
|
|
|
|
case 6:
|
|
p.EnterOuterAlt(localctx, 6)
|
|
{
|
|
p.SetState(406)
|
|
p.Match(RFC5322ParserS)
|
|
}
|
|
{
|
|
p.SetState(407)
|
|
p.Match(RFC5322ParserA)
|
|
}
|
|
{
|
|
p.SetState(408)
|
|
p.Match(RFC5322ParserT)
|
|
}
|
|
|
|
case 7:
|
|
p.EnterOuterAlt(localctx, 7)
|
|
{
|
|
p.SetState(409)
|
|
p.Match(RFC5322ParserS)
|
|
}
|
|
{
|
|
p.SetState(410)
|
|
p.Match(RFC5322ParserU)
|
|
}
|
|
{
|
|
p.SetState(411)
|
|
p.Match(RFC5322ParserN)
|
|
}
|
|
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// IDayContext is an interface to support dynamic dispatch.
|
|
type IDayContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsDayContext differentiates from other interfaces.
|
|
IsDayContext()
|
|
}
|
|
|
|
type DayContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyDayContext() *DayContext {
|
|
var p = new(DayContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_day
|
|
return p
|
|
}
|
|
|
|
func (*DayContext) IsDayContext() {}
|
|
|
|
func NewDayContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *DayContext {
|
|
var p = new(DayContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_day
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *DayContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *DayContext) AllDigit() []antlr.TerminalNode {
|
|
return s.GetTokens(RFC5322ParserDigit)
|
|
}
|
|
|
|
func (s *DayContext) Digit(i int) antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserDigit, i)
|
|
}
|
|
|
|
func (s *DayContext) AllFws() []IFwsContext {
|
|
var ts = s.GetTypedRuleContexts(reflect.TypeOf((*IFwsContext)(nil)).Elem())
|
|
var tst = make([]IFwsContext, len(ts))
|
|
|
|
for i, t := range ts {
|
|
if t != nil {
|
|
tst[i] = t.(IFwsContext)
|
|
}
|
|
}
|
|
|
|
return tst
|
|
}
|
|
|
|
func (s *DayContext) Fws(i int) IFwsContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IFwsContext)(nil)).Elem(), i)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IFwsContext)
|
|
}
|
|
|
|
func (s *DayContext) AllCfws() []ICfwsContext {
|
|
var ts = s.GetTypedRuleContexts(reflect.TypeOf((*ICfwsContext)(nil)).Elem())
|
|
var tst = make([]ICfwsContext, len(ts))
|
|
|
|
for i, t := range ts {
|
|
if t != nil {
|
|
tst[i] = t.(ICfwsContext)
|
|
}
|
|
}
|
|
|
|
return tst
|
|
}
|
|
|
|
func (s *DayContext) Cfws(i int) ICfwsContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*ICfwsContext)(nil)).Elem(), i)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(ICfwsContext)
|
|
}
|
|
|
|
func (s *DayContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *DayContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *DayContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterDay(s)
|
|
}
|
|
}
|
|
|
|
func (s *DayContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitDay(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) Day() (localctx IDayContext) {
|
|
localctx = NewDayContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 36, RFC5322ParserRULE_day)
|
|
var _la int
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
p.SetState(432)
|
|
p.GetErrorHandler().Sync(p)
|
|
switch p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 47, p.GetParserRuleContext()) {
|
|
case 1:
|
|
p.EnterOuterAlt(localctx, 1)
|
|
p.SetState(415)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
if ((_la)&-(0x1f+1)) == 0 && ((1<<uint(_la))&((1<<RFC5322ParserTAB)|(1<<RFC5322ParserCR)|(1<<RFC5322ParserSP))) != 0 {
|
|
{
|
|
p.SetState(414)
|
|
p.Fws()
|
|
}
|
|
|
|
}
|
|
{
|
|
p.SetState(417)
|
|
p.Match(RFC5322ParserDigit)
|
|
}
|
|
p.SetState(419)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
if _la == RFC5322ParserDigit {
|
|
{
|
|
p.SetState(418)
|
|
p.Match(RFC5322ParserDigit)
|
|
}
|
|
|
|
}
|
|
{
|
|
p.SetState(421)
|
|
p.Fws()
|
|
}
|
|
|
|
case 2:
|
|
p.EnterOuterAlt(localctx, 2)
|
|
p.SetState(423)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
if ((_la)&-(0x1f+1)) == 0 && ((1<<uint(_la))&((1<<RFC5322ParserTAB)|(1<<RFC5322ParserCR)|(1<<RFC5322ParserSP)|(1<<RFC5322ParserLParens))) != 0 {
|
|
{
|
|
p.SetState(422)
|
|
p.Cfws()
|
|
}
|
|
|
|
}
|
|
{
|
|
p.SetState(425)
|
|
p.Match(RFC5322ParserDigit)
|
|
}
|
|
p.SetState(427)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
if _la == RFC5322ParserDigit {
|
|
{
|
|
p.SetState(426)
|
|
p.Match(RFC5322ParserDigit)
|
|
}
|
|
|
|
}
|
|
p.SetState(430)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
if ((_la)&-(0x1f+1)) == 0 && ((1<<uint(_la))&((1<<RFC5322ParserTAB)|(1<<RFC5322ParserCR)|(1<<RFC5322ParserSP)|(1<<RFC5322ParserLParens))) != 0 {
|
|
{
|
|
p.SetState(429)
|
|
p.Cfws()
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// IMonthContext is an interface to support dynamic dispatch.
|
|
type IMonthContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsMonthContext differentiates from other interfaces.
|
|
IsMonthContext()
|
|
}
|
|
|
|
type MonthContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyMonthContext() *MonthContext {
|
|
var p = new(MonthContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_month
|
|
return p
|
|
}
|
|
|
|
func (*MonthContext) IsMonthContext() {}
|
|
|
|
func NewMonthContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *MonthContext {
|
|
var p = new(MonthContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_month
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *MonthContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *MonthContext) J() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserJ, 0)
|
|
}
|
|
|
|
func (s *MonthContext) A() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserA, 0)
|
|
}
|
|
|
|
func (s *MonthContext) N() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserN, 0)
|
|
}
|
|
|
|
func (s *MonthContext) F() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserF, 0)
|
|
}
|
|
|
|
func (s *MonthContext) E() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserE, 0)
|
|
}
|
|
|
|
func (s *MonthContext) B() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserB, 0)
|
|
}
|
|
|
|
func (s *MonthContext) M() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserM, 0)
|
|
}
|
|
|
|
func (s *MonthContext) R() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserR, 0)
|
|
}
|
|
|
|
func (s *MonthContext) P() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserP, 0)
|
|
}
|
|
|
|
func (s *MonthContext) Y() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserY, 0)
|
|
}
|
|
|
|
func (s *MonthContext) U() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserU, 0)
|
|
}
|
|
|
|
func (s *MonthContext) L() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserL, 0)
|
|
}
|
|
|
|
func (s *MonthContext) G() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserG, 0)
|
|
}
|
|
|
|
func (s *MonthContext) S() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserS, 0)
|
|
}
|
|
|
|
func (s *MonthContext) O() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserO, 0)
|
|
}
|
|
|
|
func (s *MonthContext) C() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserC, 0)
|
|
}
|
|
|
|
func (s *MonthContext) T() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserT, 0)
|
|
}
|
|
|
|
func (s *MonthContext) V() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserV, 0)
|
|
}
|
|
|
|
func (s *MonthContext) D() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserD, 0)
|
|
}
|
|
|
|
func (s *MonthContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *MonthContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *MonthContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterMonth(s)
|
|
}
|
|
}
|
|
|
|
func (s *MonthContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitMonth(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) Month() (localctx IMonthContext) {
|
|
localctx = NewMonthContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 38, RFC5322ParserRULE_month)
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
p.SetState(470)
|
|
p.GetErrorHandler().Sync(p)
|
|
switch p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 48, p.GetParserRuleContext()) {
|
|
case 1:
|
|
p.EnterOuterAlt(localctx, 1)
|
|
{
|
|
p.SetState(434)
|
|
p.Match(RFC5322ParserJ)
|
|
}
|
|
{
|
|
p.SetState(435)
|
|
p.Match(RFC5322ParserA)
|
|
}
|
|
{
|
|
p.SetState(436)
|
|
p.Match(RFC5322ParserN)
|
|
}
|
|
|
|
case 2:
|
|
p.EnterOuterAlt(localctx, 2)
|
|
{
|
|
p.SetState(437)
|
|
p.Match(RFC5322ParserF)
|
|
}
|
|
{
|
|
p.SetState(438)
|
|
p.Match(RFC5322ParserE)
|
|
}
|
|
{
|
|
p.SetState(439)
|
|
p.Match(RFC5322ParserB)
|
|
}
|
|
|
|
case 3:
|
|
p.EnterOuterAlt(localctx, 3)
|
|
{
|
|
p.SetState(440)
|
|
p.Match(RFC5322ParserM)
|
|
}
|
|
{
|
|
p.SetState(441)
|
|
p.Match(RFC5322ParserA)
|
|
}
|
|
{
|
|
p.SetState(442)
|
|
p.Match(RFC5322ParserR)
|
|
}
|
|
|
|
case 4:
|
|
p.EnterOuterAlt(localctx, 4)
|
|
{
|
|
p.SetState(443)
|
|
p.Match(RFC5322ParserA)
|
|
}
|
|
{
|
|
p.SetState(444)
|
|
p.Match(RFC5322ParserP)
|
|
}
|
|
{
|
|
p.SetState(445)
|
|
p.Match(RFC5322ParserR)
|
|
}
|
|
|
|
case 5:
|
|
p.EnterOuterAlt(localctx, 5)
|
|
{
|
|
p.SetState(446)
|
|
p.Match(RFC5322ParserM)
|
|
}
|
|
{
|
|
p.SetState(447)
|
|
p.Match(RFC5322ParserA)
|
|
}
|
|
{
|
|
p.SetState(448)
|
|
p.Match(RFC5322ParserY)
|
|
}
|
|
|
|
case 6:
|
|
p.EnterOuterAlt(localctx, 6)
|
|
{
|
|
p.SetState(449)
|
|
p.Match(RFC5322ParserJ)
|
|
}
|
|
{
|
|
p.SetState(450)
|
|
p.Match(RFC5322ParserU)
|
|
}
|
|
{
|
|
p.SetState(451)
|
|
p.Match(RFC5322ParserN)
|
|
}
|
|
|
|
case 7:
|
|
p.EnterOuterAlt(localctx, 7)
|
|
{
|
|
p.SetState(452)
|
|
p.Match(RFC5322ParserJ)
|
|
}
|
|
{
|
|
p.SetState(453)
|
|
p.Match(RFC5322ParserU)
|
|
}
|
|
{
|
|
p.SetState(454)
|
|
p.Match(RFC5322ParserL)
|
|
}
|
|
|
|
case 8:
|
|
p.EnterOuterAlt(localctx, 8)
|
|
{
|
|
p.SetState(455)
|
|
p.Match(RFC5322ParserA)
|
|
}
|
|
{
|
|
p.SetState(456)
|
|
p.Match(RFC5322ParserU)
|
|
}
|
|
{
|
|
p.SetState(457)
|
|
p.Match(RFC5322ParserG)
|
|
}
|
|
|
|
case 9:
|
|
p.EnterOuterAlt(localctx, 9)
|
|
{
|
|
p.SetState(458)
|
|
p.Match(RFC5322ParserS)
|
|
}
|
|
{
|
|
p.SetState(459)
|
|
p.Match(RFC5322ParserE)
|
|
}
|
|
{
|
|
p.SetState(460)
|
|
p.Match(RFC5322ParserP)
|
|
}
|
|
|
|
case 10:
|
|
p.EnterOuterAlt(localctx, 10)
|
|
{
|
|
p.SetState(461)
|
|
p.Match(RFC5322ParserO)
|
|
}
|
|
{
|
|
p.SetState(462)
|
|
p.Match(RFC5322ParserC)
|
|
}
|
|
{
|
|
p.SetState(463)
|
|
p.Match(RFC5322ParserT)
|
|
}
|
|
|
|
case 11:
|
|
p.EnterOuterAlt(localctx, 11)
|
|
{
|
|
p.SetState(464)
|
|
p.Match(RFC5322ParserN)
|
|
}
|
|
{
|
|
p.SetState(465)
|
|
p.Match(RFC5322ParserO)
|
|
}
|
|
{
|
|
p.SetState(466)
|
|
p.Match(RFC5322ParserV)
|
|
}
|
|
|
|
case 12:
|
|
p.EnterOuterAlt(localctx, 12)
|
|
{
|
|
p.SetState(467)
|
|
p.Match(RFC5322ParserD)
|
|
}
|
|
{
|
|
p.SetState(468)
|
|
p.Match(RFC5322ParserE)
|
|
}
|
|
{
|
|
p.SetState(469)
|
|
p.Match(RFC5322ParserC)
|
|
}
|
|
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// IYearContext is an interface to support dynamic dispatch.
|
|
type IYearContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsYearContext differentiates from other interfaces.
|
|
IsYearContext()
|
|
}
|
|
|
|
type YearContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyYearContext() *YearContext {
|
|
var p = new(YearContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_year
|
|
return p
|
|
}
|
|
|
|
func (*YearContext) IsYearContext() {}
|
|
|
|
func NewYearContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *YearContext {
|
|
var p = new(YearContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_year
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *YearContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *YearContext) AllFws() []IFwsContext {
|
|
var ts = s.GetTypedRuleContexts(reflect.TypeOf((*IFwsContext)(nil)).Elem())
|
|
var tst = make([]IFwsContext, len(ts))
|
|
|
|
for i, t := range ts {
|
|
if t != nil {
|
|
tst[i] = t.(IFwsContext)
|
|
}
|
|
}
|
|
|
|
return tst
|
|
}
|
|
|
|
func (s *YearContext) Fws(i int) IFwsContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IFwsContext)(nil)).Elem(), i)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IFwsContext)
|
|
}
|
|
|
|
func (s *YearContext) AllDigit() []antlr.TerminalNode {
|
|
return s.GetTokens(RFC5322ParserDigit)
|
|
}
|
|
|
|
func (s *YearContext) Digit(i int) antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserDigit, i)
|
|
}
|
|
|
|
func (s *YearContext) AllCfws() []ICfwsContext {
|
|
var ts = s.GetTypedRuleContexts(reflect.TypeOf((*ICfwsContext)(nil)).Elem())
|
|
var tst = make([]ICfwsContext, len(ts))
|
|
|
|
for i, t := range ts {
|
|
if t != nil {
|
|
tst[i] = t.(ICfwsContext)
|
|
}
|
|
}
|
|
|
|
return tst
|
|
}
|
|
|
|
func (s *YearContext) Cfws(i int) ICfwsContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*ICfwsContext)(nil)).Elem(), i)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(ICfwsContext)
|
|
}
|
|
|
|
func (s *YearContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *YearContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *YearContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterYear(s)
|
|
}
|
|
}
|
|
|
|
func (s *YearContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitYear(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) Year() (localctx IYearContext) {
|
|
localctx = NewYearContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 40, RFC5322ParserRULE_year)
|
|
var _la int
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
p.SetState(487)
|
|
p.GetErrorHandler().Sync(p)
|
|
switch p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 51, p.GetParserRuleContext()) {
|
|
case 1:
|
|
p.EnterOuterAlt(localctx, 1)
|
|
{
|
|
p.SetState(472)
|
|
p.Fws()
|
|
}
|
|
{
|
|
p.SetState(473)
|
|
p.Match(RFC5322ParserDigit)
|
|
}
|
|
{
|
|
p.SetState(474)
|
|
p.Match(RFC5322ParserDigit)
|
|
}
|
|
{
|
|
p.SetState(475)
|
|
p.Match(RFC5322ParserDigit)
|
|
}
|
|
{
|
|
p.SetState(476)
|
|
p.Match(RFC5322ParserDigit)
|
|
}
|
|
{
|
|
p.SetState(477)
|
|
p.Fws()
|
|
}
|
|
|
|
case 2:
|
|
p.EnterOuterAlt(localctx, 2)
|
|
p.SetState(480)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
if ((_la)&-(0x1f+1)) == 0 && ((1<<uint(_la))&((1<<RFC5322ParserTAB)|(1<<RFC5322ParserCR)|(1<<RFC5322ParserSP)|(1<<RFC5322ParserLParens))) != 0 {
|
|
{
|
|
p.SetState(479)
|
|
p.Cfws()
|
|
}
|
|
|
|
}
|
|
{
|
|
p.SetState(482)
|
|
p.Match(RFC5322ParserDigit)
|
|
}
|
|
{
|
|
p.SetState(483)
|
|
p.Match(RFC5322ParserDigit)
|
|
}
|
|
p.SetState(485)
|
|
p.GetErrorHandler().Sync(p)
|
|
|
|
if p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 50, p.GetParserRuleContext()) == 1 {
|
|
{
|
|
p.SetState(484)
|
|
p.Cfws()
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// IHourContext is an interface to support dynamic dispatch.
|
|
type IHourContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsHourContext differentiates from other interfaces.
|
|
IsHourContext()
|
|
}
|
|
|
|
type HourContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyHourContext() *HourContext {
|
|
var p = new(HourContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_hour
|
|
return p
|
|
}
|
|
|
|
func (*HourContext) IsHourContext() {}
|
|
|
|
func NewHourContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *HourContext {
|
|
var p = new(HourContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_hour
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *HourContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *HourContext) AllDigit() []antlr.TerminalNode {
|
|
return s.GetTokens(RFC5322ParserDigit)
|
|
}
|
|
|
|
func (s *HourContext) Digit(i int) antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserDigit, i)
|
|
}
|
|
|
|
func (s *HourContext) AllCfws() []ICfwsContext {
|
|
var ts = s.GetTypedRuleContexts(reflect.TypeOf((*ICfwsContext)(nil)).Elem())
|
|
var tst = make([]ICfwsContext, len(ts))
|
|
|
|
for i, t := range ts {
|
|
if t != nil {
|
|
tst[i] = t.(ICfwsContext)
|
|
}
|
|
}
|
|
|
|
return tst
|
|
}
|
|
|
|
func (s *HourContext) Cfws(i int) ICfwsContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*ICfwsContext)(nil)).Elem(), i)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(ICfwsContext)
|
|
}
|
|
|
|
func (s *HourContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *HourContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *HourContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterHour(s)
|
|
}
|
|
}
|
|
|
|
func (s *HourContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitHour(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) Hour() (localctx IHourContext) {
|
|
localctx = NewHourContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 42, RFC5322ParserRULE_hour)
|
|
var _la int
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
p.SetState(503)
|
|
p.GetErrorHandler().Sync(p)
|
|
switch p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 56, p.GetParserRuleContext()) {
|
|
case 1:
|
|
p.EnterOuterAlt(localctx, 1)
|
|
p.SetState(490)
|
|
p.GetErrorHandler().Sync(p)
|
|
|
|
if p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 52, p.GetParserRuleContext()) == 1 {
|
|
{
|
|
p.SetState(489)
|
|
p.Match(RFC5322ParserDigit)
|
|
}
|
|
|
|
}
|
|
{
|
|
p.SetState(492)
|
|
p.Match(RFC5322ParserDigit)
|
|
}
|
|
|
|
case 2:
|
|
p.EnterOuterAlt(localctx, 2)
|
|
p.SetState(494)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
if ((_la)&-(0x1f+1)) == 0 && ((1<<uint(_la))&((1<<RFC5322ParserTAB)|(1<<RFC5322ParserCR)|(1<<RFC5322ParserSP)|(1<<RFC5322ParserLParens))) != 0 {
|
|
{
|
|
p.SetState(493)
|
|
p.Cfws()
|
|
}
|
|
|
|
}
|
|
p.SetState(497)
|
|
p.GetErrorHandler().Sync(p)
|
|
|
|
if p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 54, p.GetParserRuleContext()) == 1 {
|
|
{
|
|
p.SetState(496)
|
|
p.Match(RFC5322ParserDigit)
|
|
}
|
|
|
|
}
|
|
{
|
|
p.SetState(499)
|
|
p.Match(RFC5322ParserDigit)
|
|
}
|
|
p.SetState(501)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
if ((_la)&-(0x1f+1)) == 0 && ((1<<uint(_la))&((1<<RFC5322ParserTAB)|(1<<RFC5322ParserCR)|(1<<RFC5322ParserSP)|(1<<RFC5322ParserLParens))) != 0 {
|
|
{
|
|
p.SetState(500)
|
|
p.Cfws()
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// IMinuteContext is an interface to support dynamic dispatch.
|
|
type IMinuteContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsMinuteContext differentiates from other interfaces.
|
|
IsMinuteContext()
|
|
}
|
|
|
|
type MinuteContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyMinuteContext() *MinuteContext {
|
|
var p = new(MinuteContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_minute
|
|
return p
|
|
}
|
|
|
|
func (*MinuteContext) IsMinuteContext() {}
|
|
|
|
func NewMinuteContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *MinuteContext {
|
|
var p = new(MinuteContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_minute
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *MinuteContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *MinuteContext) AllDigit() []antlr.TerminalNode {
|
|
return s.GetTokens(RFC5322ParserDigit)
|
|
}
|
|
|
|
func (s *MinuteContext) Digit(i int) antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserDigit, i)
|
|
}
|
|
|
|
func (s *MinuteContext) AllCfws() []ICfwsContext {
|
|
var ts = s.GetTypedRuleContexts(reflect.TypeOf((*ICfwsContext)(nil)).Elem())
|
|
var tst = make([]ICfwsContext, len(ts))
|
|
|
|
for i, t := range ts {
|
|
if t != nil {
|
|
tst[i] = t.(ICfwsContext)
|
|
}
|
|
}
|
|
|
|
return tst
|
|
}
|
|
|
|
func (s *MinuteContext) Cfws(i int) ICfwsContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*ICfwsContext)(nil)).Elem(), i)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(ICfwsContext)
|
|
}
|
|
|
|
func (s *MinuteContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *MinuteContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *MinuteContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterMinute(s)
|
|
}
|
|
}
|
|
|
|
func (s *MinuteContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitMinute(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) Minute() (localctx IMinuteContext) {
|
|
localctx = NewMinuteContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 44, RFC5322ParserRULE_minute)
|
|
var _la int
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
p.SetState(515)
|
|
p.GetErrorHandler().Sync(p)
|
|
switch p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 59, p.GetParserRuleContext()) {
|
|
case 1:
|
|
p.EnterOuterAlt(localctx, 1)
|
|
{
|
|
p.SetState(505)
|
|
p.Match(RFC5322ParserDigit)
|
|
}
|
|
{
|
|
p.SetState(506)
|
|
p.Match(RFC5322ParserDigit)
|
|
}
|
|
|
|
case 2:
|
|
p.EnterOuterAlt(localctx, 2)
|
|
p.SetState(508)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
if ((_la)&-(0x1f+1)) == 0 && ((1<<uint(_la))&((1<<RFC5322ParserTAB)|(1<<RFC5322ParserCR)|(1<<RFC5322ParserSP)|(1<<RFC5322ParserLParens))) != 0 {
|
|
{
|
|
p.SetState(507)
|
|
p.Cfws()
|
|
}
|
|
|
|
}
|
|
{
|
|
p.SetState(510)
|
|
p.Match(RFC5322ParserDigit)
|
|
}
|
|
{
|
|
p.SetState(511)
|
|
p.Match(RFC5322ParserDigit)
|
|
}
|
|
p.SetState(513)
|
|
p.GetErrorHandler().Sync(p)
|
|
|
|
if p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 58, p.GetParserRuleContext()) == 1 {
|
|
{
|
|
p.SetState(512)
|
|
p.Cfws()
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// ISecondContext is an interface to support dynamic dispatch.
|
|
type ISecondContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsSecondContext differentiates from other interfaces.
|
|
IsSecondContext()
|
|
}
|
|
|
|
type SecondContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptySecondContext() *SecondContext {
|
|
var p = new(SecondContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_second
|
|
return p
|
|
}
|
|
|
|
func (*SecondContext) IsSecondContext() {}
|
|
|
|
func NewSecondContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *SecondContext {
|
|
var p = new(SecondContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_second
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *SecondContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *SecondContext) AllDigit() []antlr.TerminalNode {
|
|
return s.GetTokens(RFC5322ParserDigit)
|
|
}
|
|
|
|
func (s *SecondContext) Digit(i int) antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserDigit, i)
|
|
}
|
|
|
|
func (s *SecondContext) AllCfws() []ICfwsContext {
|
|
var ts = s.GetTypedRuleContexts(reflect.TypeOf((*ICfwsContext)(nil)).Elem())
|
|
var tst = make([]ICfwsContext, len(ts))
|
|
|
|
for i, t := range ts {
|
|
if t != nil {
|
|
tst[i] = t.(ICfwsContext)
|
|
}
|
|
}
|
|
|
|
return tst
|
|
}
|
|
|
|
func (s *SecondContext) Cfws(i int) ICfwsContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*ICfwsContext)(nil)).Elem(), i)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(ICfwsContext)
|
|
}
|
|
|
|
func (s *SecondContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *SecondContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *SecondContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterSecond(s)
|
|
}
|
|
}
|
|
|
|
func (s *SecondContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitSecond(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) Second() (localctx ISecondContext) {
|
|
localctx = NewSecondContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 46, RFC5322ParserRULE_second)
|
|
var _la int
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
p.SetState(527)
|
|
p.GetErrorHandler().Sync(p)
|
|
switch p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 62, p.GetParserRuleContext()) {
|
|
case 1:
|
|
p.EnterOuterAlt(localctx, 1)
|
|
{
|
|
p.SetState(517)
|
|
p.Match(RFC5322ParserDigit)
|
|
}
|
|
{
|
|
p.SetState(518)
|
|
p.Match(RFC5322ParserDigit)
|
|
}
|
|
|
|
case 2:
|
|
p.EnterOuterAlt(localctx, 2)
|
|
p.SetState(520)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
if ((_la)&-(0x1f+1)) == 0 && ((1<<uint(_la))&((1<<RFC5322ParserTAB)|(1<<RFC5322ParserCR)|(1<<RFC5322ParserSP)|(1<<RFC5322ParserLParens))) != 0 {
|
|
{
|
|
p.SetState(519)
|
|
p.Cfws()
|
|
}
|
|
|
|
}
|
|
{
|
|
p.SetState(522)
|
|
p.Match(RFC5322ParserDigit)
|
|
}
|
|
{
|
|
p.SetState(523)
|
|
p.Match(RFC5322ParserDigit)
|
|
}
|
|
p.SetState(525)
|
|
p.GetErrorHandler().Sync(p)
|
|
|
|
if p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 61, p.GetParserRuleContext()) == 1 {
|
|
{
|
|
p.SetState(524)
|
|
p.Cfws()
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// IOffsetContext is an interface to support dynamic dispatch.
|
|
type IOffsetContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsOffsetContext differentiates from other interfaces.
|
|
IsOffsetContext()
|
|
}
|
|
|
|
type OffsetContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyOffsetContext() *OffsetContext {
|
|
var p = new(OffsetContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_offset
|
|
return p
|
|
}
|
|
|
|
func (*OffsetContext) IsOffsetContext() {}
|
|
|
|
func NewOffsetContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *OffsetContext {
|
|
var p = new(OffsetContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_offset
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *OffsetContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *OffsetContext) AllDigit() []antlr.TerminalNode {
|
|
return s.GetTokens(RFC5322ParserDigit)
|
|
}
|
|
|
|
func (s *OffsetContext) Digit(i int) antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserDigit, i)
|
|
}
|
|
|
|
func (s *OffsetContext) Plus() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserPlus, 0)
|
|
}
|
|
|
|
func (s *OffsetContext) Minus() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserMinus, 0)
|
|
}
|
|
|
|
func (s *OffsetContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *OffsetContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *OffsetContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterOffset(s)
|
|
}
|
|
}
|
|
|
|
func (s *OffsetContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitOffset(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) Offset() (localctx IOffsetContext) {
|
|
localctx = NewOffsetContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 48, RFC5322ParserRULE_offset)
|
|
var _la int
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
p.EnterOuterAlt(localctx, 1)
|
|
p.SetState(530)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
if _la == RFC5322ParserPlus || _la == RFC5322ParserMinus {
|
|
{
|
|
p.SetState(529)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
if !(_la == RFC5322ParserPlus || _la == RFC5322ParserMinus) {
|
|
p.GetErrorHandler().RecoverInline(p)
|
|
} else {
|
|
p.GetErrorHandler().ReportMatch(p)
|
|
p.Consume()
|
|
}
|
|
}
|
|
|
|
}
|
|
{
|
|
p.SetState(532)
|
|
p.Match(RFC5322ParserDigit)
|
|
}
|
|
{
|
|
p.SetState(533)
|
|
p.Match(RFC5322ParserDigit)
|
|
}
|
|
{
|
|
p.SetState(534)
|
|
p.Match(RFC5322ParserDigit)
|
|
}
|
|
{
|
|
p.SetState(535)
|
|
p.Match(RFC5322ParserDigit)
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// IZoneContext is an interface to support dynamic dispatch.
|
|
type IZoneContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsZoneContext differentiates from other interfaces.
|
|
IsZoneContext()
|
|
}
|
|
|
|
type ZoneContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyZoneContext() *ZoneContext {
|
|
var p = new(ZoneContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_zone
|
|
return p
|
|
}
|
|
|
|
func (*ZoneContext) IsZoneContext() {}
|
|
|
|
func NewZoneContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *ZoneContext {
|
|
var p = new(ZoneContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_zone
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *ZoneContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *ZoneContext) Fws() IFwsContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IFwsContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IFwsContext)
|
|
}
|
|
|
|
func (s *ZoneContext) Offset() IOffsetContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IOffsetContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IOffsetContext)
|
|
}
|
|
|
|
func (s *ZoneContext) ObsZone() IObsZoneContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IObsZoneContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IObsZoneContext)
|
|
}
|
|
|
|
func (s *ZoneContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *ZoneContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *ZoneContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterZone(s)
|
|
}
|
|
}
|
|
|
|
func (s *ZoneContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitZone(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) Zone() (localctx IZoneContext) {
|
|
localctx = NewZoneContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 50, RFC5322ParserRULE_zone)
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
p.SetState(541)
|
|
p.GetErrorHandler().Sync(p)
|
|
|
|
switch p.GetTokenStream().LA(1) {
|
|
case RFC5322ParserTAB, RFC5322ParserCR, RFC5322ParserSP:
|
|
p.EnterOuterAlt(localctx, 1)
|
|
{
|
|
p.SetState(537)
|
|
p.Fws()
|
|
}
|
|
{
|
|
p.SetState(538)
|
|
p.Offset()
|
|
}
|
|
|
|
case RFC5322ParserC, RFC5322ParserE, RFC5322ParserG, RFC5322ParserM, RFC5322ParserP, RFC5322ParserU:
|
|
p.EnterOuterAlt(localctx, 2)
|
|
{
|
|
p.SetState(540)
|
|
p.ObsZone()
|
|
}
|
|
|
|
default:
|
|
panic(antlr.NewNoViableAltException(p, nil, nil, nil, nil, nil))
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// IAddressContext is an interface to support dynamic dispatch.
|
|
type IAddressContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsAddressContext differentiates from other interfaces.
|
|
IsAddressContext()
|
|
}
|
|
|
|
type AddressContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyAddressContext() *AddressContext {
|
|
var p = new(AddressContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_address
|
|
return p
|
|
}
|
|
|
|
func (*AddressContext) IsAddressContext() {}
|
|
|
|
func NewAddressContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *AddressContext {
|
|
var p = new(AddressContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_address
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *AddressContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *AddressContext) Mailbox() IMailboxContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IMailboxContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IMailboxContext)
|
|
}
|
|
|
|
func (s *AddressContext) Group() IGroupContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IGroupContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IGroupContext)
|
|
}
|
|
|
|
func (s *AddressContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *AddressContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *AddressContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterAddress(s)
|
|
}
|
|
}
|
|
|
|
func (s *AddressContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitAddress(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) Address() (localctx IAddressContext) {
|
|
localctx = NewAddressContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 52, RFC5322ParserRULE_address)
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
p.SetState(545)
|
|
p.GetErrorHandler().Sync(p)
|
|
switch p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 65, p.GetParserRuleContext()) {
|
|
case 1:
|
|
p.EnterOuterAlt(localctx, 1)
|
|
{
|
|
p.SetState(543)
|
|
p.Mailbox()
|
|
}
|
|
|
|
case 2:
|
|
p.EnterOuterAlt(localctx, 2)
|
|
{
|
|
p.SetState(544)
|
|
p.Group()
|
|
}
|
|
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// IMailboxContext is an interface to support dynamic dispatch.
|
|
type IMailboxContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsMailboxContext differentiates from other interfaces.
|
|
IsMailboxContext()
|
|
}
|
|
|
|
type MailboxContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyMailboxContext() *MailboxContext {
|
|
var p = new(MailboxContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_mailbox
|
|
return p
|
|
}
|
|
|
|
func (*MailboxContext) IsMailboxContext() {}
|
|
|
|
func NewMailboxContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *MailboxContext {
|
|
var p = new(MailboxContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_mailbox
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *MailboxContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *MailboxContext) NameAddr() INameAddrContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*INameAddrContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(INameAddrContext)
|
|
}
|
|
|
|
func (s *MailboxContext) AddrSpec() IAddrSpecContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IAddrSpecContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IAddrSpecContext)
|
|
}
|
|
|
|
func (s *MailboxContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *MailboxContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *MailboxContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterMailbox(s)
|
|
}
|
|
}
|
|
|
|
func (s *MailboxContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitMailbox(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) Mailbox() (localctx IMailboxContext) {
|
|
localctx = NewMailboxContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 54, RFC5322ParserRULE_mailbox)
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
p.SetState(549)
|
|
p.GetErrorHandler().Sync(p)
|
|
switch p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 66, p.GetParserRuleContext()) {
|
|
case 1:
|
|
p.EnterOuterAlt(localctx, 1)
|
|
{
|
|
p.SetState(547)
|
|
p.NameAddr()
|
|
}
|
|
|
|
case 2:
|
|
p.EnterOuterAlt(localctx, 2)
|
|
{
|
|
p.SetState(548)
|
|
p.AddrSpec()
|
|
}
|
|
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// INameAddrContext is an interface to support dynamic dispatch.
|
|
type INameAddrContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsNameAddrContext differentiates from other interfaces.
|
|
IsNameAddrContext()
|
|
}
|
|
|
|
type NameAddrContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyNameAddrContext() *NameAddrContext {
|
|
var p = new(NameAddrContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_nameAddr
|
|
return p
|
|
}
|
|
|
|
func (*NameAddrContext) IsNameAddrContext() {}
|
|
|
|
func NewNameAddrContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *NameAddrContext {
|
|
var p = new(NameAddrContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_nameAddr
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *NameAddrContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *NameAddrContext) AngleAddr() IAngleAddrContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IAngleAddrContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IAngleAddrContext)
|
|
}
|
|
|
|
func (s *NameAddrContext) DisplayName() IDisplayNameContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IDisplayNameContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IDisplayNameContext)
|
|
}
|
|
|
|
func (s *NameAddrContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *NameAddrContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *NameAddrContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterNameAddr(s)
|
|
}
|
|
}
|
|
|
|
func (s *NameAddrContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitNameAddr(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) NameAddr() (localctx INameAddrContext) {
|
|
localctx = NewNameAddrContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 56, RFC5322ParserRULE_nameAddr)
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
p.EnterOuterAlt(localctx, 1)
|
|
p.SetState(552)
|
|
p.GetErrorHandler().Sync(p)
|
|
|
|
if p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 67, p.GetParserRuleContext()) == 1 {
|
|
{
|
|
p.SetState(551)
|
|
p.DisplayName()
|
|
}
|
|
|
|
}
|
|
{
|
|
p.SetState(554)
|
|
p.AngleAddr()
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// IAngleAddrContext is an interface to support dynamic dispatch.
|
|
type IAngleAddrContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsAngleAddrContext differentiates from other interfaces.
|
|
IsAngleAddrContext()
|
|
}
|
|
|
|
type AngleAddrContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyAngleAddrContext() *AngleAddrContext {
|
|
var p = new(AngleAddrContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_angleAddr
|
|
return p
|
|
}
|
|
|
|
func (*AngleAddrContext) IsAngleAddrContext() {}
|
|
|
|
func NewAngleAddrContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *AngleAddrContext {
|
|
var p = new(AngleAddrContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_angleAddr
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *AngleAddrContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *AngleAddrContext) Less() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserLess, 0)
|
|
}
|
|
|
|
func (s *AngleAddrContext) Greater() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserGreater, 0)
|
|
}
|
|
|
|
func (s *AngleAddrContext) AllCfws() []ICfwsContext {
|
|
var ts = s.GetTypedRuleContexts(reflect.TypeOf((*ICfwsContext)(nil)).Elem())
|
|
var tst = make([]ICfwsContext, len(ts))
|
|
|
|
for i, t := range ts {
|
|
if t != nil {
|
|
tst[i] = t.(ICfwsContext)
|
|
}
|
|
}
|
|
|
|
return tst
|
|
}
|
|
|
|
func (s *AngleAddrContext) Cfws(i int) ICfwsContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*ICfwsContext)(nil)).Elem(), i)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(ICfwsContext)
|
|
}
|
|
|
|
func (s *AngleAddrContext) AddrSpec() IAddrSpecContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IAddrSpecContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IAddrSpecContext)
|
|
}
|
|
|
|
func (s *AngleAddrContext) ObsAngleAddr() IObsAngleAddrContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IObsAngleAddrContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IObsAngleAddrContext)
|
|
}
|
|
|
|
func (s *AngleAddrContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *AngleAddrContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *AngleAddrContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterAngleAddr(s)
|
|
}
|
|
}
|
|
|
|
func (s *AngleAddrContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitAngleAddr(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) AngleAddr() (localctx IAngleAddrContext) {
|
|
localctx = NewAngleAddrContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 58, RFC5322ParserRULE_angleAddr)
|
|
var _la int
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
p.SetState(568)
|
|
p.GetErrorHandler().Sync(p)
|
|
switch p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 71, p.GetParserRuleContext()) {
|
|
case 1:
|
|
p.EnterOuterAlt(localctx, 1)
|
|
p.SetState(557)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
if ((_la)&-(0x1f+1)) == 0 && ((1<<uint(_la))&((1<<RFC5322ParserTAB)|(1<<RFC5322ParserCR)|(1<<RFC5322ParserSP)|(1<<RFC5322ParserLParens))) != 0 {
|
|
{
|
|
p.SetState(556)
|
|
p.Cfws()
|
|
}
|
|
|
|
}
|
|
{
|
|
p.SetState(559)
|
|
p.Match(RFC5322ParserLess)
|
|
}
|
|
p.SetState(561)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
if (((_la)&-(0x1f+1)) == 0 && ((1<<uint(_la))&((1<<RFC5322ParserTAB)|(1<<RFC5322ParserCR)|(1<<RFC5322ParserSP)|(1<<RFC5322ParserExclamation)|(1<<RFC5322ParserDQuote)|(1<<RFC5322ParserHash)|(1<<RFC5322ParserDollar)|(1<<RFC5322ParserPercent)|(1<<RFC5322ParserAmpersand)|(1<<RFC5322ParserSQuote)|(1<<RFC5322ParserLParens)|(1<<RFC5322ParserAsterisk)|(1<<RFC5322ParserPlus)|(1<<RFC5322ParserMinus)|(1<<RFC5322ParserSlash)|(1<<RFC5322ParserDigit)|(1<<RFC5322ParserEqual)|(1<<RFC5322ParserQuestion))) != 0) || (((_la-32)&-(0x1f+1)) == 0 && ((1<<uint((_la-32)))&((1<<(RFC5322ParserAt-32))|(1<<(RFC5322ParserCaret-32))|(1<<(RFC5322ParserUnderscore-32))|(1<<(RFC5322ParserBacktick-32))|(1<<(RFC5322ParserLCurly-32))|(1<<(RFC5322ParserPipe-32))|(1<<(RFC5322ParserRCurly-32))|(1<<(RFC5322ParserTilde-32))|(1<<(RFC5322ParserUTF8NonAscii-32))|(1<<(RFC5322ParserA-32))|(1<<(RFC5322ParserB-32))|(1<<(RFC5322ParserC-32))|(1<<(RFC5322ParserD-32))|(1<<(RFC5322ParserE-32))|(1<<(RFC5322ParserF-32))|(1<<(RFC5322ParserG-32))|(1<<(RFC5322ParserH-32))|(1<<(RFC5322ParserI-32))|(1<<(RFC5322ParserJ-32))|(1<<(RFC5322ParserK-32))|(1<<(RFC5322ParserL-32))|(1<<(RFC5322ParserM-32))|(1<<(RFC5322ParserN-32))|(1<<(RFC5322ParserO-32))|(1<<(RFC5322ParserP-32))|(1<<(RFC5322ParserQ-32))|(1<<(RFC5322ParserR-32))|(1<<(RFC5322ParserS-32)))) != 0) || (((_la-64)&-(0x1f+1)) == 0 && ((1<<uint((_la-64)))&((1<<(RFC5322ParserT-64))|(1<<(RFC5322ParserU-64))|(1<<(RFC5322ParserV-64))|(1<<(RFC5322ParserW-64))|(1<<(RFC5322ParserX-64))|(1<<(RFC5322ParserY-64))|(1<<(RFC5322ParserZ-64)))) != 0) {
|
|
{
|
|
p.SetState(560)
|
|
p.AddrSpec()
|
|
}
|
|
|
|
}
|
|
{
|
|
p.SetState(563)
|
|
p.Match(RFC5322ParserGreater)
|
|
}
|
|
p.SetState(565)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
if ((_la)&-(0x1f+1)) == 0 && ((1<<uint(_la))&((1<<RFC5322ParserTAB)|(1<<RFC5322ParserCR)|(1<<RFC5322ParserSP)|(1<<RFC5322ParserLParens))) != 0 {
|
|
{
|
|
p.SetState(564)
|
|
p.Cfws()
|
|
}
|
|
|
|
}
|
|
|
|
case 2:
|
|
p.EnterOuterAlt(localctx, 2)
|
|
{
|
|
p.SetState(567)
|
|
p.ObsAngleAddr()
|
|
}
|
|
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// IGroupContext is an interface to support dynamic dispatch.
|
|
type IGroupContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsGroupContext differentiates from other interfaces.
|
|
IsGroupContext()
|
|
}
|
|
|
|
type GroupContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyGroupContext() *GroupContext {
|
|
var p = new(GroupContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_group
|
|
return p
|
|
}
|
|
|
|
func (*GroupContext) IsGroupContext() {}
|
|
|
|
func NewGroupContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *GroupContext {
|
|
var p = new(GroupContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_group
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *GroupContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *GroupContext) DisplayName() IDisplayNameContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IDisplayNameContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IDisplayNameContext)
|
|
}
|
|
|
|
func (s *GroupContext) Colon() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserColon, 0)
|
|
}
|
|
|
|
func (s *GroupContext) Semicolon() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserSemicolon, 0)
|
|
}
|
|
|
|
func (s *GroupContext) GroupList() IGroupListContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IGroupListContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IGroupListContext)
|
|
}
|
|
|
|
func (s *GroupContext) Cfws() ICfwsContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*ICfwsContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(ICfwsContext)
|
|
}
|
|
|
|
func (s *GroupContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *GroupContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *GroupContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterGroup(s)
|
|
}
|
|
}
|
|
|
|
func (s *GroupContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitGroup(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) Group() (localctx IGroupContext) {
|
|
localctx = NewGroupContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 60, RFC5322ParserRULE_group)
|
|
var _la int
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
p.EnterOuterAlt(localctx, 1)
|
|
{
|
|
p.SetState(570)
|
|
p.DisplayName()
|
|
}
|
|
{
|
|
p.SetState(571)
|
|
p.Match(RFC5322ParserColon)
|
|
}
|
|
p.SetState(573)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
if (((_la)&-(0x1f+1)) == 0 && ((1<<uint(_la))&((1<<RFC5322ParserTAB)|(1<<RFC5322ParserCR)|(1<<RFC5322ParserSP)|(1<<RFC5322ParserExclamation)|(1<<RFC5322ParserDQuote)|(1<<RFC5322ParserHash)|(1<<RFC5322ParserDollar)|(1<<RFC5322ParserPercent)|(1<<RFC5322ParserAmpersand)|(1<<RFC5322ParserSQuote)|(1<<RFC5322ParserLParens)|(1<<RFC5322ParserAsterisk)|(1<<RFC5322ParserPlus)|(1<<RFC5322ParserComma)|(1<<RFC5322ParserMinus)|(1<<RFC5322ParserSlash)|(1<<RFC5322ParserDigit)|(1<<RFC5322ParserLess)|(1<<RFC5322ParserEqual)|(1<<RFC5322ParserQuestion))) != 0) || (((_la-32)&-(0x1f+1)) == 0 && ((1<<uint((_la-32)))&((1<<(RFC5322ParserAt-32))|(1<<(RFC5322ParserCaret-32))|(1<<(RFC5322ParserUnderscore-32))|(1<<(RFC5322ParserBacktick-32))|(1<<(RFC5322ParserLCurly-32))|(1<<(RFC5322ParserPipe-32))|(1<<(RFC5322ParserRCurly-32))|(1<<(RFC5322ParserTilde-32))|(1<<(RFC5322ParserUTF8NonAscii-32))|(1<<(RFC5322ParserA-32))|(1<<(RFC5322ParserB-32))|(1<<(RFC5322ParserC-32))|(1<<(RFC5322ParserD-32))|(1<<(RFC5322ParserE-32))|(1<<(RFC5322ParserF-32))|(1<<(RFC5322ParserG-32))|(1<<(RFC5322ParserH-32))|(1<<(RFC5322ParserI-32))|(1<<(RFC5322ParserJ-32))|(1<<(RFC5322ParserK-32))|(1<<(RFC5322ParserL-32))|(1<<(RFC5322ParserM-32))|(1<<(RFC5322ParserN-32))|(1<<(RFC5322ParserO-32))|(1<<(RFC5322ParserP-32))|(1<<(RFC5322ParserQ-32))|(1<<(RFC5322ParserR-32))|(1<<(RFC5322ParserS-32)))) != 0) || (((_la-64)&-(0x1f+1)) == 0 && ((1<<uint((_la-64)))&((1<<(RFC5322ParserT-64))|(1<<(RFC5322ParserU-64))|(1<<(RFC5322ParserV-64))|(1<<(RFC5322ParserW-64))|(1<<(RFC5322ParserX-64))|(1<<(RFC5322ParserY-64))|(1<<(RFC5322ParserZ-64)))) != 0) {
|
|
{
|
|
p.SetState(572)
|
|
p.GroupList()
|
|
}
|
|
|
|
}
|
|
{
|
|
p.SetState(575)
|
|
p.Match(RFC5322ParserSemicolon)
|
|
}
|
|
p.SetState(577)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
if ((_la)&-(0x1f+1)) == 0 && ((1<<uint(_la))&((1<<RFC5322ParserTAB)|(1<<RFC5322ParserCR)|(1<<RFC5322ParserSP)|(1<<RFC5322ParserLParens))) != 0 {
|
|
{
|
|
p.SetState(576)
|
|
p.Cfws()
|
|
}
|
|
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// IDisplayNameContext is an interface to support dynamic dispatch.
|
|
type IDisplayNameContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsDisplayNameContext differentiates from other interfaces.
|
|
IsDisplayNameContext()
|
|
}
|
|
|
|
type DisplayNameContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyDisplayNameContext() *DisplayNameContext {
|
|
var p = new(DisplayNameContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_displayName
|
|
return p
|
|
}
|
|
|
|
func (*DisplayNameContext) IsDisplayNameContext() {}
|
|
|
|
func NewDisplayNameContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *DisplayNameContext {
|
|
var p = new(DisplayNameContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_displayName
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *DisplayNameContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *DisplayNameContext) AllWord() []IWordContext {
|
|
var ts = s.GetTypedRuleContexts(reflect.TypeOf((*IWordContext)(nil)).Elem())
|
|
var tst = make([]IWordContext, len(ts))
|
|
|
|
for i, t := range ts {
|
|
if t != nil {
|
|
tst[i] = t.(IWordContext)
|
|
}
|
|
}
|
|
|
|
return tst
|
|
}
|
|
|
|
func (s *DisplayNameContext) Word(i int) IWordContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IWordContext)(nil)).Elem(), i)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IWordContext)
|
|
}
|
|
|
|
func (s *DisplayNameContext) AllPeriod() []antlr.TerminalNode {
|
|
return s.GetTokens(RFC5322ParserPeriod)
|
|
}
|
|
|
|
func (s *DisplayNameContext) Period(i int) antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserPeriod, i)
|
|
}
|
|
|
|
func (s *DisplayNameContext) AllCfws() []ICfwsContext {
|
|
var ts = s.GetTypedRuleContexts(reflect.TypeOf((*ICfwsContext)(nil)).Elem())
|
|
var tst = make([]ICfwsContext, len(ts))
|
|
|
|
for i, t := range ts {
|
|
if t != nil {
|
|
tst[i] = t.(ICfwsContext)
|
|
}
|
|
}
|
|
|
|
return tst
|
|
}
|
|
|
|
func (s *DisplayNameContext) Cfws(i int) ICfwsContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*ICfwsContext)(nil)).Elem(), i)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(ICfwsContext)
|
|
}
|
|
|
|
func (s *DisplayNameContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *DisplayNameContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *DisplayNameContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterDisplayName(s)
|
|
}
|
|
}
|
|
|
|
func (s *DisplayNameContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitDisplayName(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) DisplayName() (localctx IDisplayNameContext) {
|
|
localctx = NewDisplayNameContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 62, RFC5322ParserRULE_displayName)
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
var _alt int
|
|
|
|
p.SetState(593)
|
|
p.GetErrorHandler().Sync(p)
|
|
switch p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 77, p.GetParserRuleContext()) {
|
|
case 1:
|
|
p.EnterOuterAlt(localctx, 1)
|
|
p.SetState(580)
|
|
p.GetErrorHandler().Sync(p)
|
|
_alt = 1
|
|
for ok := true; ok; ok = _alt != 2 && _alt != antlr.ATNInvalidAltNumber {
|
|
switch _alt {
|
|
case 1:
|
|
{
|
|
p.SetState(579)
|
|
p.Word()
|
|
}
|
|
|
|
default:
|
|
panic(antlr.NewNoViableAltException(p, nil, nil, nil, nil, nil))
|
|
}
|
|
|
|
p.SetState(582)
|
|
p.GetErrorHandler().Sync(p)
|
|
_alt = p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 74, p.GetParserRuleContext())
|
|
}
|
|
|
|
case 2:
|
|
p.EnterOuterAlt(localctx, 2)
|
|
{
|
|
p.SetState(584)
|
|
p.Word()
|
|
}
|
|
p.SetState(590)
|
|
p.GetErrorHandler().Sync(p)
|
|
_alt = p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 76, p.GetParserRuleContext())
|
|
|
|
for _alt != 2 && _alt != antlr.ATNInvalidAltNumber {
|
|
if _alt == 1 {
|
|
p.SetState(588)
|
|
p.GetErrorHandler().Sync(p)
|
|
switch p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 75, p.GetParserRuleContext()) {
|
|
case 1:
|
|
{
|
|
p.SetState(585)
|
|
p.Word()
|
|
}
|
|
|
|
case 2:
|
|
{
|
|
p.SetState(586)
|
|
p.Match(RFC5322ParserPeriod)
|
|
}
|
|
|
|
case 3:
|
|
{
|
|
p.SetState(587)
|
|
p.Cfws()
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
p.SetState(592)
|
|
p.GetErrorHandler().Sync(p)
|
|
_alt = p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 76, p.GetParserRuleContext())
|
|
}
|
|
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// IMailboxListContext is an interface to support dynamic dispatch.
|
|
type IMailboxListContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsMailboxListContext differentiates from other interfaces.
|
|
IsMailboxListContext()
|
|
}
|
|
|
|
type MailboxListContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyMailboxListContext() *MailboxListContext {
|
|
var p = new(MailboxListContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_mailboxList
|
|
return p
|
|
}
|
|
|
|
func (*MailboxListContext) IsMailboxListContext() {}
|
|
|
|
func NewMailboxListContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *MailboxListContext {
|
|
var p = new(MailboxListContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_mailboxList
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *MailboxListContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *MailboxListContext) AllMailbox() []IMailboxContext {
|
|
var ts = s.GetTypedRuleContexts(reflect.TypeOf((*IMailboxContext)(nil)).Elem())
|
|
var tst = make([]IMailboxContext, len(ts))
|
|
|
|
for i, t := range ts {
|
|
if t != nil {
|
|
tst[i] = t.(IMailboxContext)
|
|
}
|
|
}
|
|
|
|
return tst
|
|
}
|
|
|
|
func (s *MailboxListContext) Mailbox(i int) IMailboxContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IMailboxContext)(nil)).Elem(), i)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IMailboxContext)
|
|
}
|
|
|
|
func (s *MailboxListContext) AllComma() []antlr.TerminalNode {
|
|
return s.GetTokens(RFC5322ParserComma)
|
|
}
|
|
|
|
func (s *MailboxListContext) Comma(i int) antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserComma, i)
|
|
}
|
|
|
|
func (s *MailboxListContext) ObsMboxList() IObsMboxListContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IObsMboxListContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IObsMboxListContext)
|
|
}
|
|
|
|
func (s *MailboxListContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *MailboxListContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *MailboxListContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterMailboxList(s)
|
|
}
|
|
}
|
|
|
|
func (s *MailboxListContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitMailboxList(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) MailboxList() (localctx IMailboxListContext) {
|
|
localctx = NewMailboxListContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 64, RFC5322ParserRULE_mailboxList)
|
|
var _la int
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
p.SetState(604)
|
|
p.GetErrorHandler().Sync(p)
|
|
switch p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 79, p.GetParserRuleContext()) {
|
|
case 1:
|
|
p.EnterOuterAlt(localctx, 1)
|
|
{
|
|
p.SetState(595)
|
|
p.Mailbox()
|
|
}
|
|
p.SetState(600)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
for _la == RFC5322ParserComma {
|
|
{
|
|
p.SetState(596)
|
|
p.Match(RFC5322ParserComma)
|
|
}
|
|
{
|
|
p.SetState(597)
|
|
p.Mailbox()
|
|
}
|
|
|
|
p.SetState(602)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
}
|
|
|
|
case 2:
|
|
p.EnterOuterAlt(localctx, 2)
|
|
{
|
|
p.SetState(603)
|
|
p.ObsMboxList()
|
|
}
|
|
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// IAddressListContext is an interface to support dynamic dispatch.
|
|
type IAddressListContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsAddressListContext differentiates from other interfaces.
|
|
IsAddressListContext()
|
|
}
|
|
|
|
type AddressListContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyAddressListContext() *AddressListContext {
|
|
var p = new(AddressListContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_addressList
|
|
return p
|
|
}
|
|
|
|
func (*AddressListContext) IsAddressListContext() {}
|
|
|
|
func NewAddressListContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *AddressListContext {
|
|
var p = new(AddressListContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_addressList
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *AddressListContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *AddressListContext) AllAddress() []IAddressContext {
|
|
var ts = s.GetTypedRuleContexts(reflect.TypeOf((*IAddressContext)(nil)).Elem())
|
|
var tst = make([]IAddressContext, len(ts))
|
|
|
|
for i, t := range ts {
|
|
if t != nil {
|
|
tst[i] = t.(IAddressContext)
|
|
}
|
|
}
|
|
|
|
return tst
|
|
}
|
|
|
|
func (s *AddressListContext) Address(i int) IAddressContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IAddressContext)(nil)).Elem(), i)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IAddressContext)
|
|
}
|
|
|
|
func (s *AddressListContext) EOF() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserEOF, 0)
|
|
}
|
|
|
|
func (s *AddressListContext) AllComma() []antlr.TerminalNode {
|
|
return s.GetTokens(RFC5322ParserComma)
|
|
}
|
|
|
|
func (s *AddressListContext) Comma(i int) antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserComma, i)
|
|
}
|
|
|
|
func (s *AddressListContext) ObsAddrList() IObsAddrListContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IObsAddrListContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IObsAddrListContext)
|
|
}
|
|
|
|
func (s *AddressListContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *AddressListContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *AddressListContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterAddressList(s)
|
|
}
|
|
}
|
|
|
|
func (s *AddressListContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitAddressList(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) AddressList() (localctx IAddressListContext) {
|
|
localctx = NewAddressListContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 66, RFC5322ParserRULE_addressList)
|
|
var _la int
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
p.SetState(619)
|
|
p.GetErrorHandler().Sync(p)
|
|
switch p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 81, p.GetParserRuleContext()) {
|
|
case 1:
|
|
p.EnterOuterAlt(localctx, 1)
|
|
{
|
|
p.SetState(606)
|
|
p.Address()
|
|
}
|
|
p.SetState(611)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
for _la == RFC5322ParserComma {
|
|
{
|
|
p.SetState(607)
|
|
p.Match(RFC5322ParserComma)
|
|
}
|
|
{
|
|
p.SetState(608)
|
|
p.Address()
|
|
}
|
|
|
|
p.SetState(613)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
}
|
|
{
|
|
p.SetState(614)
|
|
p.Match(RFC5322ParserEOF)
|
|
}
|
|
|
|
case 2:
|
|
p.EnterOuterAlt(localctx, 2)
|
|
{
|
|
p.SetState(616)
|
|
p.ObsAddrList()
|
|
}
|
|
{
|
|
p.SetState(617)
|
|
p.Match(RFC5322ParserEOF)
|
|
}
|
|
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// IGroupListContext is an interface to support dynamic dispatch.
|
|
type IGroupListContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsGroupListContext differentiates from other interfaces.
|
|
IsGroupListContext()
|
|
}
|
|
|
|
type GroupListContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyGroupListContext() *GroupListContext {
|
|
var p = new(GroupListContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_groupList
|
|
return p
|
|
}
|
|
|
|
func (*GroupListContext) IsGroupListContext() {}
|
|
|
|
func NewGroupListContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *GroupListContext {
|
|
var p = new(GroupListContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_groupList
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *GroupListContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *GroupListContext) MailboxList() IMailboxListContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IMailboxListContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IMailboxListContext)
|
|
}
|
|
|
|
func (s *GroupListContext) Cfws() ICfwsContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*ICfwsContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(ICfwsContext)
|
|
}
|
|
|
|
func (s *GroupListContext) ObsGroupList() IObsGroupListContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IObsGroupListContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IObsGroupListContext)
|
|
}
|
|
|
|
func (s *GroupListContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *GroupListContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *GroupListContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterGroupList(s)
|
|
}
|
|
}
|
|
|
|
func (s *GroupListContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitGroupList(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) GroupList() (localctx IGroupListContext) {
|
|
localctx = NewGroupListContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 68, RFC5322ParserRULE_groupList)
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
p.SetState(624)
|
|
p.GetErrorHandler().Sync(p)
|
|
switch p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 82, p.GetParserRuleContext()) {
|
|
case 1:
|
|
p.EnterOuterAlt(localctx, 1)
|
|
{
|
|
p.SetState(621)
|
|
p.MailboxList()
|
|
}
|
|
|
|
case 2:
|
|
p.EnterOuterAlt(localctx, 2)
|
|
{
|
|
p.SetState(622)
|
|
p.Cfws()
|
|
}
|
|
|
|
case 3:
|
|
p.EnterOuterAlt(localctx, 3)
|
|
{
|
|
p.SetState(623)
|
|
p.ObsGroupList()
|
|
}
|
|
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// IAddrSpecContext is an interface to support dynamic dispatch.
|
|
type IAddrSpecContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsAddrSpecContext differentiates from other interfaces.
|
|
IsAddrSpecContext()
|
|
}
|
|
|
|
type AddrSpecContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyAddrSpecContext() *AddrSpecContext {
|
|
var p = new(AddrSpecContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_addrSpec
|
|
return p
|
|
}
|
|
|
|
func (*AddrSpecContext) IsAddrSpecContext() {}
|
|
|
|
func NewAddrSpecContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *AddrSpecContext {
|
|
var p = new(AddrSpecContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_addrSpec
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *AddrSpecContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *AddrSpecContext) LocalPart() ILocalPartContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*ILocalPartContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(ILocalPartContext)
|
|
}
|
|
|
|
func (s *AddrSpecContext) At() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserAt, 0)
|
|
}
|
|
|
|
func (s *AddrSpecContext) Domain() IDomainContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IDomainContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IDomainContext)
|
|
}
|
|
|
|
func (s *AddrSpecContext) Colon() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserColon, 0)
|
|
}
|
|
|
|
func (s *AddrSpecContext) Port() IPortContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IPortContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IPortContext)
|
|
}
|
|
|
|
func (s *AddrSpecContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *AddrSpecContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *AddrSpecContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterAddrSpec(s)
|
|
}
|
|
}
|
|
|
|
func (s *AddrSpecContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitAddrSpec(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) AddrSpec() (localctx IAddrSpecContext) {
|
|
localctx = NewAddrSpecContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 70, RFC5322ParserRULE_addrSpec)
|
|
var _la int
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
p.EnterOuterAlt(localctx, 1)
|
|
{
|
|
p.SetState(626)
|
|
p.LocalPart()
|
|
}
|
|
{
|
|
p.SetState(627)
|
|
p.Match(RFC5322ParserAt)
|
|
}
|
|
{
|
|
p.SetState(628)
|
|
p.Domain()
|
|
}
|
|
p.SetState(631)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
if _la == RFC5322ParserColon {
|
|
{
|
|
p.SetState(629)
|
|
p.Match(RFC5322ParserColon)
|
|
}
|
|
{
|
|
p.SetState(630)
|
|
p.Port()
|
|
}
|
|
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// ILocalPartContext is an interface to support dynamic dispatch.
|
|
type ILocalPartContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsLocalPartContext differentiates from other interfaces.
|
|
IsLocalPartContext()
|
|
}
|
|
|
|
type LocalPartContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyLocalPartContext() *LocalPartContext {
|
|
var p = new(LocalPartContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_localPart
|
|
return p
|
|
}
|
|
|
|
func (*LocalPartContext) IsLocalPartContext() {}
|
|
|
|
func NewLocalPartContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *LocalPartContext {
|
|
var p = new(LocalPartContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_localPart
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *LocalPartContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *LocalPartContext) DotAtom() IDotAtomContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IDotAtomContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IDotAtomContext)
|
|
}
|
|
|
|
func (s *LocalPartContext) AllCfws() []ICfwsContext {
|
|
var ts = s.GetTypedRuleContexts(reflect.TypeOf((*ICfwsContext)(nil)).Elem())
|
|
var tst = make([]ICfwsContext, len(ts))
|
|
|
|
for i, t := range ts {
|
|
if t != nil {
|
|
tst[i] = t.(ICfwsContext)
|
|
}
|
|
}
|
|
|
|
return tst
|
|
}
|
|
|
|
func (s *LocalPartContext) Cfws(i int) ICfwsContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*ICfwsContext)(nil)).Elem(), i)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(ICfwsContext)
|
|
}
|
|
|
|
func (s *LocalPartContext) QuotedString() IQuotedStringContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IQuotedStringContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IQuotedStringContext)
|
|
}
|
|
|
|
func (s *LocalPartContext) ObsLocalPart() IObsLocalPartContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IObsLocalPartContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IObsLocalPartContext)
|
|
}
|
|
|
|
func (s *LocalPartContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *LocalPartContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *LocalPartContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterLocalPart(s)
|
|
}
|
|
}
|
|
|
|
func (s *LocalPartContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitLocalPart(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) LocalPart() (localctx ILocalPartContext) {
|
|
localctx = NewLocalPartContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 72, RFC5322ParserRULE_localPart)
|
|
var _la int
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
p.SetState(648)
|
|
p.GetErrorHandler().Sync(p)
|
|
switch p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 88, p.GetParserRuleContext()) {
|
|
case 1:
|
|
p.EnterOuterAlt(localctx, 1)
|
|
p.SetState(634)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
if ((_la)&-(0x1f+1)) == 0 && ((1<<uint(_la))&((1<<RFC5322ParserTAB)|(1<<RFC5322ParserCR)|(1<<RFC5322ParserSP)|(1<<RFC5322ParserLParens))) != 0 {
|
|
{
|
|
p.SetState(633)
|
|
p.Cfws()
|
|
}
|
|
|
|
}
|
|
{
|
|
p.SetState(636)
|
|
p.DotAtom()
|
|
}
|
|
p.SetState(638)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
if ((_la)&-(0x1f+1)) == 0 && ((1<<uint(_la))&((1<<RFC5322ParserTAB)|(1<<RFC5322ParserCR)|(1<<RFC5322ParserSP)|(1<<RFC5322ParserLParens))) != 0 {
|
|
{
|
|
p.SetState(637)
|
|
p.Cfws()
|
|
}
|
|
|
|
}
|
|
|
|
case 2:
|
|
p.EnterOuterAlt(localctx, 2)
|
|
p.SetState(641)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
if ((_la)&-(0x1f+1)) == 0 && ((1<<uint(_la))&((1<<RFC5322ParserTAB)|(1<<RFC5322ParserCR)|(1<<RFC5322ParserSP)|(1<<RFC5322ParserLParens))) != 0 {
|
|
{
|
|
p.SetState(640)
|
|
p.Cfws()
|
|
}
|
|
|
|
}
|
|
{
|
|
p.SetState(643)
|
|
p.QuotedString()
|
|
}
|
|
p.SetState(645)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
if ((_la)&-(0x1f+1)) == 0 && ((1<<uint(_la))&((1<<RFC5322ParserTAB)|(1<<RFC5322ParserCR)|(1<<RFC5322ParserSP)|(1<<RFC5322ParserLParens))) != 0 {
|
|
{
|
|
p.SetState(644)
|
|
p.Cfws()
|
|
}
|
|
|
|
}
|
|
|
|
case 3:
|
|
p.EnterOuterAlt(localctx, 3)
|
|
{
|
|
p.SetState(647)
|
|
p.ObsLocalPart()
|
|
}
|
|
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// IPortContext is an interface to support dynamic dispatch.
|
|
type IPortContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsPortContext differentiates from other interfaces.
|
|
IsPortContext()
|
|
}
|
|
|
|
type PortContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyPortContext() *PortContext {
|
|
var p = new(PortContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_port
|
|
return p
|
|
}
|
|
|
|
func (*PortContext) IsPortContext() {}
|
|
|
|
func NewPortContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *PortContext {
|
|
var p = new(PortContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_port
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *PortContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *PortContext) AllDigit() []antlr.TerminalNode {
|
|
return s.GetTokens(RFC5322ParserDigit)
|
|
}
|
|
|
|
func (s *PortContext) Digit(i int) antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserDigit, i)
|
|
}
|
|
|
|
func (s *PortContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *PortContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *PortContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterPort(s)
|
|
}
|
|
}
|
|
|
|
func (s *PortContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitPort(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) Port() (localctx IPortContext) {
|
|
localctx = NewPortContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 74, RFC5322ParserRULE_port)
|
|
var _la int
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
p.EnterOuterAlt(localctx, 1)
|
|
p.SetState(651)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
for ok := true; ok; ok = _la == RFC5322ParserDigit {
|
|
{
|
|
p.SetState(650)
|
|
p.Match(RFC5322ParserDigit)
|
|
}
|
|
|
|
p.SetState(653)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// IDomainContext is an interface to support dynamic dispatch.
|
|
type IDomainContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsDomainContext differentiates from other interfaces.
|
|
IsDomainContext()
|
|
}
|
|
|
|
type DomainContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyDomainContext() *DomainContext {
|
|
var p = new(DomainContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_domain
|
|
return p
|
|
}
|
|
|
|
func (*DomainContext) IsDomainContext() {}
|
|
|
|
func NewDomainContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *DomainContext {
|
|
var p = new(DomainContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_domain
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *DomainContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *DomainContext) DotAtom() IDotAtomContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IDotAtomContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IDotAtomContext)
|
|
}
|
|
|
|
func (s *DomainContext) AllCfws() []ICfwsContext {
|
|
var ts = s.GetTypedRuleContexts(reflect.TypeOf((*ICfwsContext)(nil)).Elem())
|
|
var tst = make([]ICfwsContext, len(ts))
|
|
|
|
for i, t := range ts {
|
|
if t != nil {
|
|
tst[i] = t.(ICfwsContext)
|
|
}
|
|
}
|
|
|
|
return tst
|
|
}
|
|
|
|
func (s *DomainContext) Cfws(i int) ICfwsContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*ICfwsContext)(nil)).Elem(), i)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(ICfwsContext)
|
|
}
|
|
|
|
func (s *DomainContext) DomainLiteral() IDomainLiteralContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IDomainLiteralContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IDomainLiteralContext)
|
|
}
|
|
|
|
func (s *DomainContext) ObsDomain() IObsDomainContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IObsDomainContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IObsDomainContext)
|
|
}
|
|
|
|
func (s *DomainContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *DomainContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *DomainContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterDomain(s)
|
|
}
|
|
}
|
|
|
|
func (s *DomainContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitDomain(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) Domain() (localctx IDomainContext) {
|
|
localctx = NewDomainContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 76, RFC5322ParserRULE_domain)
|
|
var _la int
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
p.SetState(676)
|
|
p.GetErrorHandler().Sync(p)
|
|
switch p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 96, p.GetParserRuleContext()) {
|
|
case 1:
|
|
p.EnterOuterAlt(localctx, 1)
|
|
p.SetState(656)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
if ((_la)&-(0x1f+1)) == 0 && ((1<<uint(_la))&((1<<RFC5322ParserTAB)|(1<<RFC5322ParserCR)|(1<<RFC5322ParserSP)|(1<<RFC5322ParserLParens))) != 0 {
|
|
{
|
|
p.SetState(655)
|
|
p.Cfws()
|
|
}
|
|
|
|
}
|
|
{
|
|
p.SetState(658)
|
|
p.DotAtom()
|
|
}
|
|
p.SetState(660)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
if ((_la)&-(0x1f+1)) == 0 && ((1<<uint(_la))&((1<<RFC5322ParserTAB)|(1<<RFC5322ParserCR)|(1<<RFC5322ParserSP)|(1<<RFC5322ParserLParens))) != 0 {
|
|
{
|
|
p.SetState(659)
|
|
p.Cfws()
|
|
}
|
|
|
|
}
|
|
|
|
case 2:
|
|
p.EnterOuterAlt(localctx, 2)
|
|
p.SetState(663)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
if ((_la)&-(0x1f+1)) == 0 && ((1<<uint(_la))&((1<<RFC5322ParserTAB)|(1<<RFC5322ParserCR)|(1<<RFC5322ParserSP)|(1<<RFC5322ParserLParens))) != 0 {
|
|
{
|
|
p.SetState(662)
|
|
p.Cfws()
|
|
}
|
|
|
|
}
|
|
{
|
|
p.SetState(665)
|
|
p.DomainLiteral()
|
|
}
|
|
p.SetState(667)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
if ((_la)&-(0x1f+1)) == 0 && ((1<<uint(_la))&((1<<RFC5322ParserTAB)|(1<<RFC5322ParserCR)|(1<<RFC5322ParserSP)|(1<<RFC5322ParserLParens))) != 0 {
|
|
{
|
|
p.SetState(666)
|
|
p.Cfws()
|
|
}
|
|
|
|
}
|
|
|
|
case 3:
|
|
p.EnterOuterAlt(localctx, 3)
|
|
p.SetState(670)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
if ((_la)&-(0x1f+1)) == 0 && ((1<<uint(_la))&((1<<RFC5322ParserTAB)|(1<<RFC5322ParserCR)|(1<<RFC5322ParserSP)|(1<<RFC5322ParserLParens))) != 0 {
|
|
{
|
|
p.SetState(669)
|
|
p.Cfws()
|
|
}
|
|
|
|
}
|
|
{
|
|
p.SetState(672)
|
|
p.ObsDomain()
|
|
}
|
|
p.SetState(674)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
if ((_la)&-(0x1f+1)) == 0 && ((1<<uint(_la))&((1<<RFC5322ParserTAB)|(1<<RFC5322ParserCR)|(1<<RFC5322ParserSP)|(1<<RFC5322ParserLParens))) != 0 {
|
|
{
|
|
p.SetState(673)
|
|
p.Cfws()
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// IDomainLiteralContext is an interface to support dynamic dispatch.
|
|
type IDomainLiteralContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsDomainLiteralContext differentiates from other interfaces.
|
|
IsDomainLiteralContext()
|
|
}
|
|
|
|
type DomainLiteralContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyDomainLiteralContext() *DomainLiteralContext {
|
|
var p = new(DomainLiteralContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_domainLiteral
|
|
return p
|
|
}
|
|
|
|
func (*DomainLiteralContext) IsDomainLiteralContext() {}
|
|
|
|
func NewDomainLiteralContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *DomainLiteralContext {
|
|
var p = new(DomainLiteralContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_domainLiteral
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *DomainLiteralContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *DomainLiteralContext) LBracket() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserLBracket, 0)
|
|
}
|
|
|
|
func (s *DomainLiteralContext) RBracket() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserRBracket, 0)
|
|
}
|
|
|
|
func (s *DomainLiteralContext) AllDtext() []IDtextContext {
|
|
var ts = s.GetTypedRuleContexts(reflect.TypeOf((*IDtextContext)(nil)).Elem())
|
|
var tst = make([]IDtextContext, len(ts))
|
|
|
|
for i, t := range ts {
|
|
if t != nil {
|
|
tst[i] = t.(IDtextContext)
|
|
}
|
|
}
|
|
|
|
return tst
|
|
}
|
|
|
|
func (s *DomainLiteralContext) Dtext(i int) IDtextContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IDtextContext)(nil)).Elem(), i)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IDtextContext)
|
|
}
|
|
|
|
func (s *DomainLiteralContext) AllFws() []IFwsContext {
|
|
var ts = s.GetTypedRuleContexts(reflect.TypeOf((*IFwsContext)(nil)).Elem())
|
|
var tst = make([]IFwsContext, len(ts))
|
|
|
|
for i, t := range ts {
|
|
if t != nil {
|
|
tst[i] = t.(IFwsContext)
|
|
}
|
|
}
|
|
|
|
return tst
|
|
}
|
|
|
|
func (s *DomainLiteralContext) Fws(i int) IFwsContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IFwsContext)(nil)).Elem(), i)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IFwsContext)
|
|
}
|
|
|
|
func (s *DomainLiteralContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *DomainLiteralContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *DomainLiteralContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterDomainLiteral(s)
|
|
}
|
|
}
|
|
|
|
func (s *DomainLiteralContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitDomainLiteral(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) DomainLiteral() (localctx IDomainLiteralContext) {
|
|
localctx = NewDomainLiteralContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 78, RFC5322ParserRULE_domainLiteral)
|
|
var _la int
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
var _alt int
|
|
|
|
p.EnterOuterAlt(localctx, 1)
|
|
{
|
|
p.SetState(678)
|
|
p.Match(RFC5322ParserLBracket)
|
|
}
|
|
p.SetState(685)
|
|
p.GetErrorHandler().Sync(p)
|
|
_alt = p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 98, p.GetParserRuleContext())
|
|
|
|
for _alt != 2 && _alt != antlr.ATNInvalidAltNumber {
|
|
if _alt == 1 {
|
|
p.SetState(680)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
if ((_la)&-(0x1f+1)) == 0 && ((1<<uint(_la))&((1<<RFC5322ParserTAB)|(1<<RFC5322ParserCR)|(1<<RFC5322ParserSP))) != 0 {
|
|
{
|
|
p.SetState(679)
|
|
p.Fws()
|
|
}
|
|
|
|
}
|
|
{
|
|
p.SetState(682)
|
|
p.Dtext()
|
|
}
|
|
|
|
}
|
|
p.SetState(687)
|
|
p.GetErrorHandler().Sync(p)
|
|
_alt = p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 98, p.GetParserRuleContext())
|
|
}
|
|
p.SetState(689)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
if ((_la)&-(0x1f+1)) == 0 && ((1<<uint(_la))&((1<<RFC5322ParserTAB)|(1<<RFC5322ParserCR)|(1<<RFC5322ParserSP))) != 0 {
|
|
{
|
|
p.SetState(688)
|
|
p.Fws()
|
|
}
|
|
|
|
}
|
|
{
|
|
p.SetState(691)
|
|
p.Match(RFC5322ParserRBracket)
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// IDtextContext is an interface to support dynamic dispatch.
|
|
type IDtextContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsDtextContext differentiates from other interfaces.
|
|
IsDtextContext()
|
|
}
|
|
|
|
type DtextContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyDtextContext() *DtextContext {
|
|
var p = new(DtextContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_dtext
|
|
return p
|
|
}
|
|
|
|
func (*DtextContext) IsDtextContext() {}
|
|
|
|
func NewDtextContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *DtextContext {
|
|
var p = new(DtextContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_dtext
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *DtextContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *DtextContext) Alpha() IAlphaContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IAlphaContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IAlphaContext)
|
|
}
|
|
|
|
func (s *DtextContext) Exclamation() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserExclamation, 0)
|
|
}
|
|
|
|
func (s *DtextContext) DQuote() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserDQuote, 0)
|
|
}
|
|
|
|
func (s *DtextContext) Hash() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserHash, 0)
|
|
}
|
|
|
|
func (s *DtextContext) Dollar() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserDollar, 0)
|
|
}
|
|
|
|
func (s *DtextContext) Percent() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserPercent, 0)
|
|
}
|
|
|
|
func (s *DtextContext) Ampersand() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserAmpersand, 0)
|
|
}
|
|
|
|
func (s *DtextContext) SQuote() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserSQuote, 0)
|
|
}
|
|
|
|
func (s *DtextContext) LParens() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserLParens, 0)
|
|
}
|
|
|
|
func (s *DtextContext) RParens() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserRParens, 0)
|
|
}
|
|
|
|
func (s *DtextContext) Asterisk() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserAsterisk, 0)
|
|
}
|
|
|
|
func (s *DtextContext) Plus() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserPlus, 0)
|
|
}
|
|
|
|
func (s *DtextContext) Comma() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserComma, 0)
|
|
}
|
|
|
|
func (s *DtextContext) Minus() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserMinus, 0)
|
|
}
|
|
|
|
func (s *DtextContext) Period() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserPeriod, 0)
|
|
}
|
|
|
|
func (s *DtextContext) Slash() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserSlash, 0)
|
|
}
|
|
|
|
func (s *DtextContext) Digit() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserDigit, 0)
|
|
}
|
|
|
|
func (s *DtextContext) Colon() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserColon, 0)
|
|
}
|
|
|
|
func (s *DtextContext) Semicolon() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserSemicolon, 0)
|
|
}
|
|
|
|
func (s *DtextContext) Less() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserLess, 0)
|
|
}
|
|
|
|
func (s *DtextContext) Equal() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserEqual, 0)
|
|
}
|
|
|
|
func (s *DtextContext) Greater() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserGreater, 0)
|
|
}
|
|
|
|
func (s *DtextContext) Question() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserQuestion, 0)
|
|
}
|
|
|
|
func (s *DtextContext) At() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserAt, 0)
|
|
}
|
|
|
|
func (s *DtextContext) Caret() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserCaret, 0)
|
|
}
|
|
|
|
func (s *DtextContext) Underscore() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserUnderscore, 0)
|
|
}
|
|
|
|
func (s *DtextContext) Backtick() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserBacktick, 0)
|
|
}
|
|
|
|
func (s *DtextContext) LCurly() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserLCurly, 0)
|
|
}
|
|
|
|
func (s *DtextContext) Pipe() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserPipe, 0)
|
|
}
|
|
|
|
func (s *DtextContext) RCurly() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserRCurly, 0)
|
|
}
|
|
|
|
func (s *DtextContext) Tilde() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserTilde, 0)
|
|
}
|
|
|
|
func (s *DtextContext) UTF8NonAscii() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserUTF8NonAscii, 0)
|
|
}
|
|
|
|
func (s *DtextContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *DtextContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *DtextContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterDtext(s)
|
|
}
|
|
}
|
|
|
|
func (s *DtextContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitDtext(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) Dtext() (localctx IDtextContext) {
|
|
localctx = NewDtextContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 80, RFC5322ParserRULE_dtext)
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
p.SetState(725)
|
|
p.GetErrorHandler().Sync(p)
|
|
|
|
switch p.GetTokenStream().LA(1) {
|
|
case RFC5322ParserA, RFC5322ParserB, RFC5322ParserC, RFC5322ParserD, RFC5322ParserE, RFC5322ParserF, RFC5322ParserG, RFC5322ParserH, RFC5322ParserI, RFC5322ParserJ, RFC5322ParserK, RFC5322ParserL, RFC5322ParserM, RFC5322ParserN, RFC5322ParserO, RFC5322ParserP, RFC5322ParserQ, RFC5322ParserR, RFC5322ParserS, RFC5322ParserT, RFC5322ParserU, RFC5322ParserV, RFC5322ParserW, RFC5322ParserX, RFC5322ParserY, RFC5322ParserZ:
|
|
p.EnterOuterAlt(localctx, 1)
|
|
{
|
|
p.SetState(693)
|
|
p.Alpha()
|
|
}
|
|
|
|
case RFC5322ParserExclamation:
|
|
p.EnterOuterAlt(localctx, 2)
|
|
{
|
|
p.SetState(694)
|
|
p.Match(RFC5322ParserExclamation)
|
|
}
|
|
|
|
case RFC5322ParserDQuote:
|
|
p.EnterOuterAlt(localctx, 3)
|
|
{
|
|
p.SetState(695)
|
|
p.Match(RFC5322ParserDQuote)
|
|
}
|
|
|
|
case RFC5322ParserHash:
|
|
p.EnterOuterAlt(localctx, 4)
|
|
{
|
|
p.SetState(696)
|
|
p.Match(RFC5322ParserHash)
|
|
}
|
|
|
|
case RFC5322ParserDollar:
|
|
p.EnterOuterAlt(localctx, 5)
|
|
{
|
|
p.SetState(697)
|
|
p.Match(RFC5322ParserDollar)
|
|
}
|
|
|
|
case RFC5322ParserPercent:
|
|
p.EnterOuterAlt(localctx, 6)
|
|
{
|
|
p.SetState(698)
|
|
p.Match(RFC5322ParserPercent)
|
|
}
|
|
|
|
case RFC5322ParserAmpersand:
|
|
p.EnterOuterAlt(localctx, 7)
|
|
{
|
|
p.SetState(699)
|
|
p.Match(RFC5322ParserAmpersand)
|
|
}
|
|
|
|
case RFC5322ParserSQuote:
|
|
p.EnterOuterAlt(localctx, 8)
|
|
{
|
|
p.SetState(700)
|
|
p.Match(RFC5322ParserSQuote)
|
|
}
|
|
|
|
case RFC5322ParserLParens:
|
|
p.EnterOuterAlt(localctx, 9)
|
|
{
|
|
p.SetState(701)
|
|
p.Match(RFC5322ParserLParens)
|
|
}
|
|
|
|
case RFC5322ParserRParens:
|
|
p.EnterOuterAlt(localctx, 10)
|
|
{
|
|
p.SetState(702)
|
|
p.Match(RFC5322ParserRParens)
|
|
}
|
|
|
|
case RFC5322ParserAsterisk:
|
|
p.EnterOuterAlt(localctx, 11)
|
|
{
|
|
p.SetState(703)
|
|
p.Match(RFC5322ParserAsterisk)
|
|
}
|
|
|
|
case RFC5322ParserPlus:
|
|
p.EnterOuterAlt(localctx, 12)
|
|
{
|
|
p.SetState(704)
|
|
p.Match(RFC5322ParserPlus)
|
|
}
|
|
|
|
case RFC5322ParserComma:
|
|
p.EnterOuterAlt(localctx, 13)
|
|
{
|
|
p.SetState(705)
|
|
p.Match(RFC5322ParserComma)
|
|
}
|
|
|
|
case RFC5322ParserMinus:
|
|
p.EnterOuterAlt(localctx, 14)
|
|
{
|
|
p.SetState(706)
|
|
p.Match(RFC5322ParserMinus)
|
|
}
|
|
|
|
case RFC5322ParserPeriod:
|
|
p.EnterOuterAlt(localctx, 15)
|
|
{
|
|
p.SetState(707)
|
|
p.Match(RFC5322ParserPeriod)
|
|
}
|
|
|
|
case RFC5322ParserSlash:
|
|
p.EnterOuterAlt(localctx, 16)
|
|
{
|
|
p.SetState(708)
|
|
p.Match(RFC5322ParserSlash)
|
|
}
|
|
|
|
case RFC5322ParserDigit:
|
|
p.EnterOuterAlt(localctx, 17)
|
|
{
|
|
p.SetState(709)
|
|
p.Match(RFC5322ParserDigit)
|
|
}
|
|
|
|
case RFC5322ParserColon:
|
|
p.EnterOuterAlt(localctx, 18)
|
|
{
|
|
p.SetState(710)
|
|
p.Match(RFC5322ParserColon)
|
|
}
|
|
|
|
case RFC5322ParserSemicolon:
|
|
p.EnterOuterAlt(localctx, 19)
|
|
{
|
|
p.SetState(711)
|
|
p.Match(RFC5322ParserSemicolon)
|
|
}
|
|
|
|
case RFC5322ParserLess:
|
|
p.EnterOuterAlt(localctx, 20)
|
|
{
|
|
p.SetState(712)
|
|
p.Match(RFC5322ParserLess)
|
|
}
|
|
|
|
case RFC5322ParserEqual:
|
|
p.EnterOuterAlt(localctx, 21)
|
|
{
|
|
p.SetState(713)
|
|
p.Match(RFC5322ParserEqual)
|
|
}
|
|
|
|
case RFC5322ParserGreater:
|
|
p.EnterOuterAlt(localctx, 22)
|
|
{
|
|
p.SetState(714)
|
|
p.Match(RFC5322ParserGreater)
|
|
}
|
|
|
|
case RFC5322ParserQuestion:
|
|
p.EnterOuterAlt(localctx, 23)
|
|
{
|
|
p.SetState(715)
|
|
p.Match(RFC5322ParserQuestion)
|
|
}
|
|
|
|
case RFC5322ParserAt:
|
|
p.EnterOuterAlt(localctx, 24)
|
|
{
|
|
p.SetState(716)
|
|
p.Match(RFC5322ParserAt)
|
|
}
|
|
|
|
case RFC5322ParserCaret:
|
|
p.EnterOuterAlt(localctx, 25)
|
|
{
|
|
p.SetState(717)
|
|
p.Match(RFC5322ParserCaret)
|
|
}
|
|
|
|
case RFC5322ParserUnderscore:
|
|
p.EnterOuterAlt(localctx, 26)
|
|
{
|
|
p.SetState(718)
|
|
p.Match(RFC5322ParserUnderscore)
|
|
}
|
|
|
|
case RFC5322ParserBacktick:
|
|
p.EnterOuterAlt(localctx, 27)
|
|
{
|
|
p.SetState(719)
|
|
p.Match(RFC5322ParserBacktick)
|
|
}
|
|
|
|
case RFC5322ParserLCurly:
|
|
p.EnterOuterAlt(localctx, 28)
|
|
{
|
|
p.SetState(720)
|
|
p.Match(RFC5322ParserLCurly)
|
|
}
|
|
|
|
case RFC5322ParserPipe:
|
|
p.EnterOuterAlt(localctx, 29)
|
|
{
|
|
p.SetState(721)
|
|
p.Match(RFC5322ParserPipe)
|
|
}
|
|
|
|
case RFC5322ParserRCurly:
|
|
p.EnterOuterAlt(localctx, 30)
|
|
{
|
|
p.SetState(722)
|
|
p.Match(RFC5322ParserRCurly)
|
|
}
|
|
|
|
case RFC5322ParserTilde:
|
|
p.EnterOuterAlt(localctx, 31)
|
|
{
|
|
p.SetState(723)
|
|
p.Match(RFC5322ParserTilde)
|
|
}
|
|
|
|
case RFC5322ParserUTF8NonAscii:
|
|
p.EnterOuterAlt(localctx, 32)
|
|
{
|
|
p.SetState(724)
|
|
p.Match(RFC5322ParserUTF8NonAscii)
|
|
}
|
|
|
|
default:
|
|
panic(antlr.NewNoViableAltException(p, nil, nil, nil, nil, nil))
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// IObsNoWSCTLContext is an interface to support dynamic dispatch.
|
|
type IObsNoWSCTLContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsObsNoWSCTLContext differentiates from other interfaces.
|
|
IsObsNoWSCTLContext()
|
|
}
|
|
|
|
type ObsNoWSCTLContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyObsNoWSCTLContext() *ObsNoWSCTLContext {
|
|
var p = new(ObsNoWSCTLContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_obsNoWSCTL
|
|
return p
|
|
}
|
|
|
|
func (*ObsNoWSCTLContext) IsObsNoWSCTLContext() {}
|
|
|
|
func NewObsNoWSCTLContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *ObsNoWSCTLContext {
|
|
var p = new(ObsNoWSCTLContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_obsNoWSCTL
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *ObsNoWSCTLContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *ObsNoWSCTLContext) U_01_08() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserU_01_08, 0)
|
|
}
|
|
|
|
func (s *ObsNoWSCTLContext) U_0B() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserU_0B, 0)
|
|
}
|
|
|
|
func (s *ObsNoWSCTLContext) U_0C() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserU_0C, 0)
|
|
}
|
|
|
|
func (s *ObsNoWSCTLContext) U_0E_1F() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserU_0E_1F, 0)
|
|
}
|
|
|
|
func (s *ObsNoWSCTLContext) Delete() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserDelete, 0)
|
|
}
|
|
|
|
func (s *ObsNoWSCTLContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *ObsNoWSCTLContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *ObsNoWSCTLContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterObsNoWSCTL(s)
|
|
}
|
|
}
|
|
|
|
func (s *ObsNoWSCTLContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitObsNoWSCTL(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) ObsNoWSCTL() (localctx IObsNoWSCTLContext) {
|
|
localctx = NewObsNoWSCTLContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 82, RFC5322ParserRULE_obsNoWSCTL)
|
|
var _la int
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
p.EnterOuterAlt(localctx, 1)
|
|
{
|
|
p.SetState(727)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
if !((((_la)&-(0x1f+1)) == 0 && ((1<<uint(_la))&((1<<RFC5322ParserU_01_08)|(1<<RFC5322ParserU_0B)|(1<<RFC5322ParserU_0C)|(1<<RFC5322ParserU_0E_1F))) != 0) || _la == RFC5322ParserDelete) {
|
|
p.GetErrorHandler().RecoverInline(p)
|
|
} else {
|
|
p.GetErrorHandler().ReportMatch(p)
|
|
p.Consume()
|
|
}
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// IObsCtextContext is an interface to support dynamic dispatch.
|
|
type IObsCtextContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsObsCtextContext differentiates from other interfaces.
|
|
IsObsCtextContext()
|
|
}
|
|
|
|
type ObsCtextContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyObsCtextContext() *ObsCtextContext {
|
|
var p = new(ObsCtextContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_obsCtext
|
|
return p
|
|
}
|
|
|
|
func (*ObsCtextContext) IsObsCtextContext() {}
|
|
|
|
func NewObsCtextContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *ObsCtextContext {
|
|
var p = new(ObsCtextContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_obsCtext
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *ObsCtextContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *ObsCtextContext) ObsNoWSCTL() IObsNoWSCTLContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IObsNoWSCTLContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IObsNoWSCTLContext)
|
|
}
|
|
|
|
func (s *ObsCtextContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *ObsCtextContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *ObsCtextContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterObsCtext(s)
|
|
}
|
|
}
|
|
|
|
func (s *ObsCtextContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitObsCtext(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) ObsCtext() (localctx IObsCtextContext) {
|
|
localctx = NewObsCtextContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 84, RFC5322ParserRULE_obsCtext)
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
p.EnterOuterAlt(localctx, 1)
|
|
{
|
|
p.SetState(729)
|
|
p.ObsNoWSCTL()
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// IObsQtextContext is an interface to support dynamic dispatch.
|
|
type IObsQtextContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsObsQtextContext differentiates from other interfaces.
|
|
IsObsQtextContext()
|
|
}
|
|
|
|
type ObsQtextContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyObsQtextContext() *ObsQtextContext {
|
|
var p = new(ObsQtextContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_obsQtext
|
|
return p
|
|
}
|
|
|
|
func (*ObsQtextContext) IsObsQtextContext() {}
|
|
|
|
func NewObsQtextContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *ObsQtextContext {
|
|
var p = new(ObsQtextContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_obsQtext
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *ObsQtextContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *ObsQtextContext) ObsNoWSCTL() IObsNoWSCTLContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IObsNoWSCTLContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IObsNoWSCTLContext)
|
|
}
|
|
|
|
func (s *ObsQtextContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *ObsQtextContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *ObsQtextContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterObsQtext(s)
|
|
}
|
|
}
|
|
|
|
func (s *ObsQtextContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitObsQtext(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) ObsQtext() (localctx IObsQtextContext) {
|
|
localctx = NewObsQtextContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 86, RFC5322ParserRULE_obsQtext)
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
p.EnterOuterAlt(localctx, 1)
|
|
{
|
|
p.SetState(731)
|
|
p.ObsNoWSCTL()
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// IObsQPContext is an interface to support dynamic dispatch.
|
|
type IObsQPContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsObsQPContext differentiates from other interfaces.
|
|
IsObsQPContext()
|
|
}
|
|
|
|
type ObsQPContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyObsQPContext() *ObsQPContext {
|
|
var p = new(ObsQPContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_obsQP
|
|
return p
|
|
}
|
|
|
|
func (*ObsQPContext) IsObsQPContext() {}
|
|
|
|
func NewObsQPContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *ObsQPContext {
|
|
var p = new(ObsQPContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_obsQP
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *ObsQPContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *ObsQPContext) Backslash() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserBackslash, 0)
|
|
}
|
|
|
|
func (s *ObsQPContext) U_00() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserU_00, 0)
|
|
}
|
|
|
|
func (s *ObsQPContext) ObsNoWSCTL() IObsNoWSCTLContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IObsNoWSCTLContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IObsNoWSCTLContext)
|
|
}
|
|
|
|
func (s *ObsQPContext) LF() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserLF, 0)
|
|
}
|
|
|
|
func (s *ObsQPContext) CR() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserCR, 0)
|
|
}
|
|
|
|
func (s *ObsQPContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *ObsQPContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *ObsQPContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterObsQP(s)
|
|
}
|
|
}
|
|
|
|
func (s *ObsQPContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitObsQP(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) ObsQP() (localctx IObsQPContext) {
|
|
localctx = NewObsQPContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 88, RFC5322ParserRULE_obsQP)
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
p.EnterOuterAlt(localctx, 1)
|
|
{
|
|
p.SetState(733)
|
|
p.Match(RFC5322ParserBackslash)
|
|
}
|
|
p.SetState(738)
|
|
p.GetErrorHandler().Sync(p)
|
|
|
|
switch p.GetTokenStream().LA(1) {
|
|
case RFC5322ParserU_00:
|
|
{
|
|
p.SetState(734)
|
|
p.Match(RFC5322ParserU_00)
|
|
}
|
|
|
|
case RFC5322ParserU_01_08, RFC5322ParserU_0B, RFC5322ParserU_0C, RFC5322ParserU_0E_1F, RFC5322ParserDelete:
|
|
{
|
|
p.SetState(735)
|
|
p.ObsNoWSCTL()
|
|
}
|
|
|
|
case RFC5322ParserLF:
|
|
{
|
|
p.SetState(736)
|
|
p.Match(RFC5322ParserLF)
|
|
}
|
|
|
|
case RFC5322ParserCR:
|
|
{
|
|
p.SetState(737)
|
|
p.Match(RFC5322ParserCR)
|
|
}
|
|
|
|
default:
|
|
panic(antlr.NewNoViableAltException(p, nil, nil, nil, nil, nil))
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// IObsFWSContext is an interface to support dynamic dispatch.
|
|
type IObsFWSContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsObsFWSContext differentiates from other interfaces.
|
|
IsObsFWSContext()
|
|
}
|
|
|
|
type ObsFWSContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyObsFWSContext() *ObsFWSContext {
|
|
var p = new(ObsFWSContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_obsFWS
|
|
return p
|
|
}
|
|
|
|
func (*ObsFWSContext) IsObsFWSContext() {}
|
|
|
|
func NewObsFWSContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *ObsFWSContext {
|
|
var p = new(ObsFWSContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_obsFWS
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *ObsFWSContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *ObsFWSContext) Crlf() ICrlfContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*ICrlfContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(ICrlfContext)
|
|
}
|
|
|
|
func (s *ObsFWSContext) AllWsp() []IWspContext {
|
|
var ts = s.GetTypedRuleContexts(reflect.TypeOf((*IWspContext)(nil)).Elem())
|
|
var tst = make([]IWspContext, len(ts))
|
|
|
|
for i, t := range ts {
|
|
if t != nil {
|
|
tst[i] = t.(IWspContext)
|
|
}
|
|
}
|
|
|
|
return tst
|
|
}
|
|
|
|
func (s *ObsFWSContext) Wsp(i int) IWspContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IWspContext)(nil)).Elem(), i)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IWspContext)
|
|
}
|
|
|
|
func (s *ObsFWSContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *ObsFWSContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *ObsFWSContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterObsFWS(s)
|
|
}
|
|
}
|
|
|
|
func (s *ObsFWSContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitObsFWS(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) ObsFWS() (localctx IObsFWSContext) {
|
|
localctx = NewObsFWSContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 90, RFC5322ParserRULE_obsFWS)
|
|
var _la int
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
var _alt int
|
|
|
|
p.EnterOuterAlt(localctx, 1)
|
|
p.SetState(741)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
for ok := true; ok; ok = _la == RFC5322ParserTAB || _la == RFC5322ParserSP {
|
|
{
|
|
p.SetState(740)
|
|
p.Wsp()
|
|
}
|
|
|
|
p.SetState(743)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
}
|
|
|
|
{
|
|
p.SetState(745)
|
|
p.Crlf()
|
|
}
|
|
p.SetState(747)
|
|
p.GetErrorHandler().Sync(p)
|
|
_alt = 1
|
|
for ok := true; ok; ok = _alt != 2 && _alt != antlr.ATNInvalidAltNumber {
|
|
switch _alt {
|
|
case 1:
|
|
{
|
|
p.SetState(746)
|
|
p.Wsp()
|
|
}
|
|
|
|
default:
|
|
panic(antlr.NewNoViableAltException(p, nil, nil, nil, nil, nil))
|
|
}
|
|
|
|
p.SetState(749)
|
|
p.GetErrorHandler().Sync(p)
|
|
_alt = p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 103, p.GetParserRuleContext())
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// IObsZoneContext is an interface to support dynamic dispatch.
|
|
type IObsZoneContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsObsZoneContext differentiates from other interfaces.
|
|
IsObsZoneContext()
|
|
}
|
|
|
|
type ObsZoneContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyObsZoneContext() *ObsZoneContext {
|
|
var p = new(ObsZoneContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_obsZone
|
|
return p
|
|
}
|
|
|
|
func (*ObsZoneContext) IsObsZoneContext() {}
|
|
|
|
func NewObsZoneContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *ObsZoneContext {
|
|
var p = new(ObsZoneContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_obsZone
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *ObsZoneContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *ObsZoneContext) U() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserU, 0)
|
|
}
|
|
|
|
func (s *ObsZoneContext) T() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserT, 0)
|
|
}
|
|
|
|
func (s *ObsZoneContext) C() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserC, 0)
|
|
}
|
|
|
|
func (s *ObsZoneContext) G() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserG, 0)
|
|
}
|
|
|
|
func (s *ObsZoneContext) M() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserM, 0)
|
|
}
|
|
|
|
func (s *ObsZoneContext) E() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserE, 0)
|
|
}
|
|
|
|
func (s *ObsZoneContext) S() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserS, 0)
|
|
}
|
|
|
|
func (s *ObsZoneContext) D() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserD, 0)
|
|
}
|
|
|
|
func (s *ObsZoneContext) P() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserP, 0)
|
|
}
|
|
|
|
func (s *ObsZoneContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *ObsZoneContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *ObsZoneContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterObsZone(s)
|
|
}
|
|
}
|
|
|
|
func (s *ObsZoneContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitObsZone(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) ObsZone() (localctx IObsZoneContext) {
|
|
localctx = NewObsZoneContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 92, RFC5322ParserRULE_obsZone)
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
p.SetState(783)
|
|
p.GetErrorHandler().Sync(p)
|
|
switch p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 104, p.GetParserRuleContext()) {
|
|
case 1:
|
|
p.EnterOuterAlt(localctx, 1)
|
|
{
|
|
p.SetState(751)
|
|
p.Match(RFC5322ParserU)
|
|
}
|
|
{
|
|
p.SetState(752)
|
|
p.Match(RFC5322ParserT)
|
|
}
|
|
|
|
case 2:
|
|
p.EnterOuterAlt(localctx, 2)
|
|
{
|
|
p.SetState(753)
|
|
p.Match(RFC5322ParserU)
|
|
}
|
|
{
|
|
p.SetState(754)
|
|
p.Match(RFC5322ParserT)
|
|
}
|
|
{
|
|
p.SetState(755)
|
|
p.Match(RFC5322ParserC)
|
|
}
|
|
|
|
case 3:
|
|
p.EnterOuterAlt(localctx, 3)
|
|
{
|
|
p.SetState(756)
|
|
p.Match(RFC5322ParserG)
|
|
}
|
|
{
|
|
p.SetState(757)
|
|
p.Match(RFC5322ParserM)
|
|
}
|
|
{
|
|
p.SetState(758)
|
|
p.Match(RFC5322ParserT)
|
|
}
|
|
|
|
case 4:
|
|
p.EnterOuterAlt(localctx, 4)
|
|
{
|
|
p.SetState(759)
|
|
p.Match(RFC5322ParserE)
|
|
}
|
|
{
|
|
p.SetState(760)
|
|
p.Match(RFC5322ParserS)
|
|
}
|
|
{
|
|
p.SetState(761)
|
|
p.Match(RFC5322ParserT)
|
|
}
|
|
|
|
case 5:
|
|
p.EnterOuterAlt(localctx, 5)
|
|
{
|
|
p.SetState(762)
|
|
p.Match(RFC5322ParserE)
|
|
}
|
|
{
|
|
p.SetState(763)
|
|
p.Match(RFC5322ParserD)
|
|
}
|
|
{
|
|
p.SetState(764)
|
|
p.Match(RFC5322ParserT)
|
|
}
|
|
|
|
case 6:
|
|
p.EnterOuterAlt(localctx, 6)
|
|
{
|
|
p.SetState(765)
|
|
p.Match(RFC5322ParserC)
|
|
}
|
|
{
|
|
p.SetState(766)
|
|
p.Match(RFC5322ParserS)
|
|
}
|
|
{
|
|
p.SetState(767)
|
|
p.Match(RFC5322ParserT)
|
|
}
|
|
|
|
case 7:
|
|
p.EnterOuterAlt(localctx, 7)
|
|
{
|
|
p.SetState(768)
|
|
p.Match(RFC5322ParserC)
|
|
}
|
|
{
|
|
p.SetState(769)
|
|
p.Match(RFC5322ParserD)
|
|
}
|
|
{
|
|
p.SetState(770)
|
|
p.Match(RFC5322ParserT)
|
|
}
|
|
|
|
case 8:
|
|
p.EnterOuterAlt(localctx, 8)
|
|
{
|
|
p.SetState(771)
|
|
p.Match(RFC5322ParserM)
|
|
}
|
|
{
|
|
p.SetState(772)
|
|
p.Match(RFC5322ParserS)
|
|
}
|
|
{
|
|
p.SetState(773)
|
|
p.Match(RFC5322ParserT)
|
|
}
|
|
|
|
case 9:
|
|
p.EnterOuterAlt(localctx, 9)
|
|
{
|
|
p.SetState(774)
|
|
p.Match(RFC5322ParserM)
|
|
}
|
|
{
|
|
p.SetState(775)
|
|
p.Match(RFC5322ParserD)
|
|
}
|
|
{
|
|
p.SetState(776)
|
|
p.Match(RFC5322ParserT)
|
|
}
|
|
|
|
case 10:
|
|
p.EnterOuterAlt(localctx, 10)
|
|
{
|
|
p.SetState(777)
|
|
p.Match(RFC5322ParserP)
|
|
}
|
|
{
|
|
p.SetState(778)
|
|
p.Match(RFC5322ParserS)
|
|
}
|
|
{
|
|
p.SetState(779)
|
|
p.Match(RFC5322ParserT)
|
|
}
|
|
|
|
case 11:
|
|
p.EnterOuterAlt(localctx, 11)
|
|
{
|
|
p.SetState(780)
|
|
p.Match(RFC5322ParserP)
|
|
}
|
|
{
|
|
p.SetState(781)
|
|
p.Match(RFC5322ParserD)
|
|
}
|
|
{
|
|
p.SetState(782)
|
|
p.Match(RFC5322ParserT)
|
|
}
|
|
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// IObsAngleAddrContext is an interface to support dynamic dispatch.
|
|
type IObsAngleAddrContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsObsAngleAddrContext differentiates from other interfaces.
|
|
IsObsAngleAddrContext()
|
|
}
|
|
|
|
type ObsAngleAddrContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyObsAngleAddrContext() *ObsAngleAddrContext {
|
|
var p = new(ObsAngleAddrContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_obsAngleAddr
|
|
return p
|
|
}
|
|
|
|
func (*ObsAngleAddrContext) IsObsAngleAddrContext() {}
|
|
|
|
func NewObsAngleAddrContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *ObsAngleAddrContext {
|
|
var p = new(ObsAngleAddrContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_obsAngleAddr
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *ObsAngleAddrContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *ObsAngleAddrContext) Less() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserLess, 0)
|
|
}
|
|
|
|
func (s *ObsAngleAddrContext) ObsRoute() IObsRouteContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IObsRouteContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IObsRouteContext)
|
|
}
|
|
|
|
func (s *ObsAngleAddrContext) AddrSpec() IAddrSpecContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IAddrSpecContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IAddrSpecContext)
|
|
}
|
|
|
|
func (s *ObsAngleAddrContext) Greater() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserGreater, 0)
|
|
}
|
|
|
|
func (s *ObsAngleAddrContext) AllCfws() []ICfwsContext {
|
|
var ts = s.GetTypedRuleContexts(reflect.TypeOf((*ICfwsContext)(nil)).Elem())
|
|
var tst = make([]ICfwsContext, len(ts))
|
|
|
|
for i, t := range ts {
|
|
if t != nil {
|
|
tst[i] = t.(ICfwsContext)
|
|
}
|
|
}
|
|
|
|
return tst
|
|
}
|
|
|
|
func (s *ObsAngleAddrContext) Cfws(i int) ICfwsContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*ICfwsContext)(nil)).Elem(), i)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(ICfwsContext)
|
|
}
|
|
|
|
func (s *ObsAngleAddrContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *ObsAngleAddrContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *ObsAngleAddrContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterObsAngleAddr(s)
|
|
}
|
|
}
|
|
|
|
func (s *ObsAngleAddrContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitObsAngleAddr(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) ObsAngleAddr() (localctx IObsAngleAddrContext) {
|
|
localctx = NewObsAngleAddrContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 94, RFC5322ParserRULE_obsAngleAddr)
|
|
var _la int
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
p.EnterOuterAlt(localctx, 1)
|
|
p.SetState(786)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
if ((_la)&-(0x1f+1)) == 0 && ((1<<uint(_la))&((1<<RFC5322ParserTAB)|(1<<RFC5322ParserCR)|(1<<RFC5322ParserSP)|(1<<RFC5322ParserLParens))) != 0 {
|
|
{
|
|
p.SetState(785)
|
|
p.Cfws()
|
|
}
|
|
|
|
}
|
|
{
|
|
p.SetState(788)
|
|
p.Match(RFC5322ParserLess)
|
|
}
|
|
{
|
|
p.SetState(789)
|
|
p.ObsRoute()
|
|
}
|
|
{
|
|
p.SetState(790)
|
|
p.AddrSpec()
|
|
}
|
|
{
|
|
p.SetState(791)
|
|
p.Match(RFC5322ParserGreater)
|
|
}
|
|
p.SetState(793)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
if ((_la)&-(0x1f+1)) == 0 && ((1<<uint(_la))&((1<<RFC5322ParserTAB)|(1<<RFC5322ParserCR)|(1<<RFC5322ParserSP)|(1<<RFC5322ParserLParens))) != 0 {
|
|
{
|
|
p.SetState(792)
|
|
p.Cfws()
|
|
}
|
|
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// IObsRouteContext is an interface to support dynamic dispatch.
|
|
type IObsRouteContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsObsRouteContext differentiates from other interfaces.
|
|
IsObsRouteContext()
|
|
}
|
|
|
|
type ObsRouteContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyObsRouteContext() *ObsRouteContext {
|
|
var p = new(ObsRouteContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_obsRoute
|
|
return p
|
|
}
|
|
|
|
func (*ObsRouteContext) IsObsRouteContext() {}
|
|
|
|
func NewObsRouteContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *ObsRouteContext {
|
|
var p = new(ObsRouteContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_obsRoute
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *ObsRouteContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *ObsRouteContext) ObsDomainList() IObsDomainListContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IObsDomainListContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IObsDomainListContext)
|
|
}
|
|
|
|
func (s *ObsRouteContext) Colon() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserColon, 0)
|
|
}
|
|
|
|
func (s *ObsRouteContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *ObsRouteContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *ObsRouteContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterObsRoute(s)
|
|
}
|
|
}
|
|
|
|
func (s *ObsRouteContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitObsRoute(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) ObsRoute() (localctx IObsRouteContext) {
|
|
localctx = NewObsRouteContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 96, RFC5322ParserRULE_obsRoute)
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
p.EnterOuterAlt(localctx, 1)
|
|
{
|
|
p.SetState(795)
|
|
p.ObsDomainList()
|
|
}
|
|
{
|
|
p.SetState(796)
|
|
p.Match(RFC5322ParserColon)
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// IObsDomainListContext is an interface to support dynamic dispatch.
|
|
type IObsDomainListContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsObsDomainListContext differentiates from other interfaces.
|
|
IsObsDomainListContext()
|
|
}
|
|
|
|
type ObsDomainListContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyObsDomainListContext() *ObsDomainListContext {
|
|
var p = new(ObsDomainListContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_obsDomainList
|
|
return p
|
|
}
|
|
|
|
func (*ObsDomainListContext) IsObsDomainListContext() {}
|
|
|
|
func NewObsDomainListContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *ObsDomainListContext {
|
|
var p = new(ObsDomainListContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_obsDomainList
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *ObsDomainListContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *ObsDomainListContext) AllAt() []antlr.TerminalNode {
|
|
return s.GetTokens(RFC5322ParserAt)
|
|
}
|
|
|
|
func (s *ObsDomainListContext) At(i int) antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserAt, i)
|
|
}
|
|
|
|
func (s *ObsDomainListContext) AllDomain() []IDomainContext {
|
|
var ts = s.GetTypedRuleContexts(reflect.TypeOf((*IDomainContext)(nil)).Elem())
|
|
var tst = make([]IDomainContext, len(ts))
|
|
|
|
for i, t := range ts {
|
|
if t != nil {
|
|
tst[i] = t.(IDomainContext)
|
|
}
|
|
}
|
|
|
|
return tst
|
|
}
|
|
|
|
func (s *ObsDomainListContext) Domain(i int) IDomainContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IDomainContext)(nil)).Elem(), i)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IDomainContext)
|
|
}
|
|
|
|
func (s *ObsDomainListContext) AllCfws() []ICfwsContext {
|
|
var ts = s.GetTypedRuleContexts(reflect.TypeOf((*ICfwsContext)(nil)).Elem())
|
|
var tst = make([]ICfwsContext, len(ts))
|
|
|
|
for i, t := range ts {
|
|
if t != nil {
|
|
tst[i] = t.(ICfwsContext)
|
|
}
|
|
}
|
|
|
|
return tst
|
|
}
|
|
|
|
func (s *ObsDomainListContext) Cfws(i int) ICfwsContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*ICfwsContext)(nil)).Elem(), i)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(ICfwsContext)
|
|
}
|
|
|
|
func (s *ObsDomainListContext) AllComma() []antlr.TerminalNode {
|
|
return s.GetTokens(RFC5322ParserComma)
|
|
}
|
|
|
|
func (s *ObsDomainListContext) Comma(i int) antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserComma, i)
|
|
}
|
|
|
|
func (s *ObsDomainListContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *ObsDomainListContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *ObsDomainListContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterObsDomainList(s)
|
|
}
|
|
}
|
|
|
|
func (s *ObsDomainListContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitObsDomainList(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) ObsDomainList() (localctx IObsDomainListContext) {
|
|
localctx = NewObsDomainListContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 98, RFC5322ParserRULE_obsDomainList)
|
|
var _la int
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
p.EnterOuterAlt(localctx, 1)
|
|
p.SetState(802)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
for ((_la)&-(0x1f+1)) == 0 && ((1<<uint(_la))&((1<<RFC5322ParserTAB)|(1<<RFC5322ParserCR)|(1<<RFC5322ParserSP)|(1<<RFC5322ParserLParens)|(1<<RFC5322ParserComma))) != 0 {
|
|
p.SetState(800)
|
|
p.GetErrorHandler().Sync(p)
|
|
|
|
switch p.GetTokenStream().LA(1) {
|
|
case RFC5322ParserTAB, RFC5322ParserCR, RFC5322ParserSP, RFC5322ParserLParens:
|
|
{
|
|
p.SetState(798)
|
|
p.Cfws()
|
|
}
|
|
|
|
case RFC5322ParserComma:
|
|
{
|
|
p.SetState(799)
|
|
p.Match(RFC5322ParserComma)
|
|
}
|
|
|
|
default:
|
|
panic(antlr.NewNoViableAltException(p, nil, nil, nil, nil, nil))
|
|
}
|
|
|
|
p.SetState(804)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
}
|
|
{
|
|
p.SetState(805)
|
|
p.Match(RFC5322ParserAt)
|
|
}
|
|
{
|
|
p.SetState(806)
|
|
p.Domain()
|
|
}
|
|
p.SetState(817)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
for _la == RFC5322ParserComma {
|
|
{
|
|
p.SetState(807)
|
|
p.Match(RFC5322ParserComma)
|
|
}
|
|
p.SetState(809)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
if ((_la)&-(0x1f+1)) == 0 && ((1<<uint(_la))&((1<<RFC5322ParserTAB)|(1<<RFC5322ParserCR)|(1<<RFC5322ParserSP)|(1<<RFC5322ParserLParens))) != 0 {
|
|
{
|
|
p.SetState(808)
|
|
p.Cfws()
|
|
}
|
|
|
|
}
|
|
p.SetState(813)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
if _la == RFC5322ParserAt {
|
|
{
|
|
p.SetState(811)
|
|
p.Match(RFC5322ParserAt)
|
|
}
|
|
{
|
|
p.SetState(812)
|
|
p.Domain()
|
|
}
|
|
|
|
}
|
|
|
|
p.SetState(819)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// IObsMboxListContext is an interface to support dynamic dispatch.
|
|
type IObsMboxListContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsObsMboxListContext differentiates from other interfaces.
|
|
IsObsMboxListContext()
|
|
}
|
|
|
|
type ObsMboxListContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyObsMboxListContext() *ObsMboxListContext {
|
|
var p = new(ObsMboxListContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_obsMboxList
|
|
return p
|
|
}
|
|
|
|
func (*ObsMboxListContext) IsObsMboxListContext() {}
|
|
|
|
func NewObsMboxListContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *ObsMboxListContext {
|
|
var p = new(ObsMboxListContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_obsMboxList
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *ObsMboxListContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *ObsMboxListContext) AllMailbox() []IMailboxContext {
|
|
var ts = s.GetTypedRuleContexts(reflect.TypeOf((*IMailboxContext)(nil)).Elem())
|
|
var tst = make([]IMailboxContext, len(ts))
|
|
|
|
for i, t := range ts {
|
|
if t != nil {
|
|
tst[i] = t.(IMailboxContext)
|
|
}
|
|
}
|
|
|
|
return tst
|
|
}
|
|
|
|
func (s *ObsMboxListContext) Mailbox(i int) IMailboxContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IMailboxContext)(nil)).Elem(), i)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IMailboxContext)
|
|
}
|
|
|
|
func (s *ObsMboxListContext) AllComma() []antlr.TerminalNode {
|
|
return s.GetTokens(RFC5322ParserComma)
|
|
}
|
|
|
|
func (s *ObsMboxListContext) Comma(i int) antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserComma, i)
|
|
}
|
|
|
|
func (s *ObsMboxListContext) AllCfws() []ICfwsContext {
|
|
var ts = s.GetTypedRuleContexts(reflect.TypeOf((*ICfwsContext)(nil)).Elem())
|
|
var tst = make([]ICfwsContext, len(ts))
|
|
|
|
for i, t := range ts {
|
|
if t != nil {
|
|
tst[i] = t.(ICfwsContext)
|
|
}
|
|
}
|
|
|
|
return tst
|
|
}
|
|
|
|
func (s *ObsMboxListContext) Cfws(i int) ICfwsContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*ICfwsContext)(nil)).Elem(), i)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(ICfwsContext)
|
|
}
|
|
|
|
func (s *ObsMboxListContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *ObsMboxListContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *ObsMboxListContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterObsMboxList(s)
|
|
}
|
|
}
|
|
|
|
func (s *ObsMboxListContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitObsMboxList(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) ObsMboxList() (localctx IObsMboxListContext) {
|
|
localctx = NewObsMboxListContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 100, RFC5322ParserRULE_obsMboxList)
|
|
var _la int
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
var _alt int
|
|
|
|
p.EnterOuterAlt(localctx, 1)
|
|
p.SetState(826)
|
|
p.GetErrorHandler().Sync(p)
|
|
_alt = p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 113, p.GetParserRuleContext())
|
|
|
|
for _alt != 2 && _alt != antlr.ATNInvalidAltNumber {
|
|
if _alt == 1 {
|
|
p.SetState(821)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
if ((_la)&-(0x1f+1)) == 0 && ((1<<uint(_la))&((1<<RFC5322ParserTAB)|(1<<RFC5322ParserCR)|(1<<RFC5322ParserSP)|(1<<RFC5322ParserLParens))) != 0 {
|
|
{
|
|
p.SetState(820)
|
|
p.Cfws()
|
|
}
|
|
|
|
}
|
|
{
|
|
p.SetState(823)
|
|
p.Match(RFC5322ParserComma)
|
|
}
|
|
|
|
}
|
|
p.SetState(828)
|
|
p.GetErrorHandler().Sync(p)
|
|
_alt = p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 113, p.GetParserRuleContext())
|
|
}
|
|
{
|
|
p.SetState(829)
|
|
p.Mailbox()
|
|
}
|
|
p.SetState(837)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
for _la == RFC5322ParserComma {
|
|
{
|
|
p.SetState(830)
|
|
p.Match(RFC5322ParserComma)
|
|
}
|
|
p.SetState(833)
|
|
p.GetErrorHandler().Sync(p)
|
|
|
|
if p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 114, p.GetParserRuleContext()) == 1 {
|
|
{
|
|
p.SetState(831)
|
|
p.Mailbox()
|
|
}
|
|
|
|
} else if p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 114, p.GetParserRuleContext()) == 2 {
|
|
{
|
|
p.SetState(832)
|
|
p.Cfws()
|
|
}
|
|
|
|
}
|
|
|
|
p.SetState(839)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// IObsAddrListContext is an interface to support dynamic dispatch.
|
|
type IObsAddrListContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsObsAddrListContext differentiates from other interfaces.
|
|
IsObsAddrListContext()
|
|
}
|
|
|
|
type ObsAddrListContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyObsAddrListContext() *ObsAddrListContext {
|
|
var p = new(ObsAddrListContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_obsAddrList
|
|
return p
|
|
}
|
|
|
|
func (*ObsAddrListContext) IsObsAddrListContext() {}
|
|
|
|
func NewObsAddrListContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *ObsAddrListContext {
|
|
var p = new(ObsAddrListContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_obsAddrList
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *ObsAddrListContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *ObsAddrListContext) AllAddress() []IAddressContext {
|
|
var ts = s.GetTypedRuleContexts(reflect.TypeOf((*IAddressContext)(nil)).Elem())
|
|
var tst = make([]IAddressContext, len(ts))
|
|
|
|
for i, t := range ts {
|
|
if t != nil {
|
|
tst[i] = t.(IAddressContext)
|
|
}
|
|
}
|
|
|
|
return tst
|
|
}
|
|
|
|
func (s *ObsAddrListContext) Address(i int) IAddressContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IAddressContext)(nil)).Elem(), i)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IAddressContext)
|
|
}
|
|
|
|
func (s *ObsAddrListContext) AllComma() []antlr.TerminalNode {
|
|
return s.GetTokens(RFC5322ParserComma)
|
|
}
|
|
|
|
func (s *ObsAddrListContext) Comma(i int) antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserComma, i)
|
|
}
|
|
|
|
func (s *ObsAddrListContext) AllCfws() []ICfwsContext {
|
|
var ts = s.GetTypedRuleContexts(reflect.TypeOf((*ICfwsContext)(nil)).Elem())
|
|
var tst = make([]ICfwsContext, len(ts))
|
|
|
|
for i, t := range ts {
|
|
if t != nil {
|
|
tst[i] = t.(ICfwsContext)
|
|
}
|
|
}
|
|
|
|
return tst
|
|
}
|
|
|
|
func (s *ObsAddrListContext) Cfws(i int) ICfwsContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*ICfwsContext)(nil)).Elem(), i)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(ICfwsContext)
|
|
}
|
|
|
|
func (s *ObsAddrListContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *ObsAddrListContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *ObsAddrListContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterObsAddrList(s)
|
|
}
|
|
}
|
|
|
|
func (s *ObsAddrListContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitObsAddrList(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) ObsAddrList() (localctx IObsAddrListContext) {
|
|
localctx = NewObsAddrListContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 102, RFC5322ParserRULE_obsAddrList)
|
|
var _la int
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
var _alt int
|
|
|
|
p.EnterOuterAlt(localctx, 1)
|
|
p.SetState(846)
|
|
p.GetErrorHandler().Sync(p)
|
|
_alt = p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 117, p.GetParserRuleContext())
|
|
|
|
for _alt != 2 && _alt != antlr.ATNInvalidAltNumber {
|
|
if _alt == 1 {
|
|
p.SetState(841)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
if ((_la)&-(0x1f+1)) == 0 && ((1<<uint(_la))&((1<<RFC5322ParserTAB)|(1<<RFC5322ParserCR)|(1<<RFC5322ParserSP)|(1<<RFC5322ParserLParens))) != 0 {
|
|
{
|
|
p.SetState(840)
|
|
p.Cfws()
|
|
}
|
|
|
|
}
|
|
{
|
|
p.SetState(843)
|
|
p.Match(RFC5322ParserComma)
|
|
}
|
|
|
|
}
|
|
p.SetState(848)
|
|
p.GetErrorHandler().Sync(p)
|
|
_alt = p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 117, p.GetParserRuleContext())
|
|
}
|
|
{
|
|
p.SetState(849)
|
|
p.Address()
|
|
}
|
|
p.SetState(857)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
for _la == RFC5322ParserComma {
|
|
{
|
|
p.SetState(850)
|
|
p.Match(RFC5322ParserComma)
|
|
}
|
|
p.SetState(853)
|
|
p.GetErrorHandler().Sync(p)
|
|
|
|
if p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 118, p.GetParserRuleContext()) == 1 {
|
|
{
|
|
p.SetState(851)
|
|
p.Address()
|
|
}
|
|
|
|
} else if p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 118, p.GetParserRuleContext()) == 2 {
|
|
{
|
|
p.SetState(852)
|
|
p.Cfws()
|
|
}
|
|
|
|
}
|
|
|
|
p.SetState(859)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// IObsGroupListContext is an interface to support dynamic dispatch.
|
|
type IObsGroupListContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsObsGroupListContext differentiates from other interfaces.
|
|
IsObsGroupListContext()
|
|
}
|
|
|
|
type ObsGroupListContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyObsGroupListContext() *ObsGroupListContext {
|
|
var p = new(ObsGroupListContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_obsGroupList
|
|
return p
|
|
}
|
|
|
|
func (*ObsGroupListContext) IsObsGroupListContext() {}
|
|
|
|
func NewObsGroupListContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *ObsGroupListContext {
|
|
var p = new(ObsGroupListContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_obsGroupList
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *ObsGroupListContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *ObsGroupListContext) AllComma() []antlr.TerminalNode {
|
|
return s.GetTokens(RFC5322ParserComma)
|
|
}
|
|
|
|
func (s *ObsGroupListContext) Comma(i int) antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserComma, i)
|
|
}
|
|
|
|
func (s *ObsGroupListContext) AllCfws() []ICfwsContext {
|
|
var ts = s.GetTypedRuleContexts(reflect.TypeOf((*ICfwsContext)(nil)).Elem())
|
|
var tst = make([]ICfwsContext, len(ts))
|
|
|
|
for i, t := range ts {
|
|
if t != nil {
|
|
tst[i] = t.(ICfwsContext)
|
|
}
|
|
}
|
|
|
|
return tst
|
|
}
|
|
|
|
func (s *ObsGroupListContext) Cfws(i int) ICfwsContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*ICfwsContext)(nil)).Elem(), i)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(ICfwsContext)
|
|
}
|
|
|
|
func (s *ObsGroupListContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *ObsGroupListContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *ObsGroupListContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterObsGroupList(s)
|
|
}
|
|
}
|
|
|
|
func (s *ObsGroupListContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitObsGroupList(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) ObsGroupList() (localctx IObsGroupListContext) {
|
|
localctx = NewObsGroupListContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 104, RFC5322ParserRULE_obsGroupList)
|
|
var _la int
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
var _alt int
|
|
|
|
p.EnterOuterAlt(localctx, 1)
|
|
p.SetState(864)
|
|
p.GetErrorHandler().Sync(p)
|
|
_alt = 1
|
|
for ok := true; ok; ok = _alt != 2 && _alt != antlr.ATNInvalidAltNumber {
|
|
switch _alt {
|
|
case 1:
|
|
p.SetState(861)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
if ((_la)&-(0x1f+1)) == 0 && ((1<<uint(_la))&((1<<RFC5322ParserTAB)|(1<<RFC5322ParserCR)|(1<<RFC5322ParserSP)|(1<<RFC5322ParserLParens))) != 0 {
|
|
{
|
|
p.SetState(860)
|
|
p.Cfws()
|
|
}
|
|
|
|
}
|
|
{
|
|
p.SetState(863)
|
|
p.Match(RFC5322ParserComma)
|
|
}
|
|
|
|
default:
|
|
panic(antlr.NewNoViableAltException(p, nil, nil, nil, nil, nil))
|
|
}
|
|
|
|
p.SetState(866)
|
|
p.GetErrorHandler().Sync(p)
|
|
_alt = p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 121, p.GetParserRuleContext())
|
|
}
|
|
p.SetState(869)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
if ((_la)&-(0x1f+1)) == 0 && ((1<<uint(_la))&((1<<RFC5322ParserTAB)|(1<<RFC5322ParserCR)|(1<<RFC5322ParserSP)|(1<<RFC5322ParserLParens))) != 0 {
|
|
{
|
|
p.SetState(868)
|
|
p.Cfws()
|
|
}
|
|
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// IObsLocalPartContext is an interface to support dynamic dispatch.
|
|
type IObsLocalPartContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsObsLocalPartContext differentiates from other interfaces.
|
|
IsObsLocalPartContext()
|
|
}
|
|
|
|
type ObsLocalPartContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyObsLocalPartContext() *ObsLocalPartContext {
|
|
var p = new(ObsLocalPartContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_obsLocalPart
|
|
return p
|
|
}
|
|
|
|
func (*ObsLocalPartContext) IsObsLocalPartContext() {}
|
|
|
|
func NewObsLocalPartContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *ObsLocalPartContext {
|
|
var p = new(ObsLocalPartContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_obsLocalPart
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *ObsLocalPartContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *ObsLocalPartContext) AllWord() []IWordContext {
|
|
var ts = s.GetTypedRuleContexts(reflect.TypeOf((*IWordContext)(nil)).Elem())
|
|
var tst = make([]IWordContext, len(ts))
|
|
|
|
for i, t := range ts {
|
|
if t != nil {
|
|
tst[i] = t.(IWordContext)
|
|
}
|
|
}
|
|
|
|
return tst
|
|
}
|
|
|
|
func (s *ObsLocalPartContext) Word(i int) IWordContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IWordContext)(nil)).Elem(), i)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IWordContext)
|
|
}
|
|
|
|
func (s *ObsLocalPartContext) AllPeriod() []antlr.TerminalNode {
|
|
return s.GetTokens(RFC5322ParserPeriod)
|
|
}
|
|
|
|
func (s *ObsLocalPartContext) Period(i int) antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserPeriod, i)
|
|
}
|
|
|
|
func (s *ObsLocalPartContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *ObsLocalPartContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *ObsLocalPartContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterObsLocalPart(s)
|
|
}
|
|
}
|
|
|
|
func (s *ObsLocalPartContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitObsLocalPart(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) ObsLocalPart() (localctx IObsLocalPartContext) {
|
|
localctx = NewObsLocalPartContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 106, RFC5322ParserRULE_obsLocalPart)
|
|
var _la int
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
p.EnterOuterAlt(localctx, 1)
|
|
{
|
|
p.SetState(871)
|
|
p.Word()
|
|
}
|
|
p.SetState(876)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
for _la == RFC5322ParserPeriod {
|
|
{
|
|
p.SetState(872)
|
|
p.Match(RFC5322ParserPeriod)
|
|
}
|
|
{
|
|
p.SetState(873)
|
|
p.Word()
|
|
}
|
|
|
|
p.SetState(878)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// IObsDomainContext is an interface to support dynamic dispatch.
|
|
type IObsDomainContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsObsDomainContext differentiates from other interfaces.
|
|
IsObsDomainContext()
|
|
}
|
|
|
|
type ObsDomainContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyObsDomainContext() *ObsDomainContext {
|
|
var p = new(ObsDomainContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_obsDomain
|
|
return p
|
|
}
|
|
|
|
func (*ObsDomainContext) IsObsDomainContext() {}
|
|
|
|
func NewObsDomainContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *ObsDomainContext {
|
|
var p = new(ObsDomainContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_obsDomain
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *ObsDomainContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *ObsDomainContext) AllAtom() []IAtomContext {
|
|
var ts = s.GetTypedRuleContexts(reflect.TypeOf((*IAtomContext)(nil)).Elem())
|
|
var tst = make([]IAtomContext, len(ts))
|
|
|
|
for i, t := range ts {
|
|
if t != nil {
|
|
tst[i] = t.(IAtomContext)
|
|
}
|
|
}
|
|
|
|
return tst
|
|
}
|
|
|
|
func (s *ObsDomainContext) Atom(i int) IAtomContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IAtomContext)(nil)).Elem(), i)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IAtomContext)
|
|
}
|
|
|
|
func (s *ObsDomainContext) AllPeriod() []antlr.TerminalNode {
|
|
return s.GetTokens(RFC5322ParserPeriod)
|
|
}
|
|
|
|
func (s *ObsDomainContext) Period(i int) antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserPeriod, i)
|
|
}
|
|
|
|
func (s *ObsDomainContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *ObsDomainContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *ObsDomainContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterObsDomain(s)
|
|
}
|
|
}
|
|
|
|
func (s *ObsDomainContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitObsDomain(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) ObsDomain() (localctx IObsDomainContext) {
|
|
localctx = NewObsDomainContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 108, RFC5322ParserRULE_obsDomain)
|
|
var _la int
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
p.EnterOuterAlt(localctx, 1)
|
|
{
|
|
p.SetState(879)
|
|
p.Atom()
|
|
}
|
|
p.SetState(884)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
for _la == RFC5322ParserPeriod {
|
|
{
|
|
p.SetState(880)
|
|
p.Match(RFC5322ParserPeriod)
|
|
}
|
|
{
|
|
p.SetState(881)
|
|
p.Atom()
|
|
}
|
|
|
|
p.SetState(886)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// IEncodedWordContext is an interface to support dynamic dispatch.
|
|
type IEncodedWordContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsEncodedWordContext differentiates from other interfaces.
|
|
IsEncodedWordContext()
|
|
}
|
|
|
|
type EncodedWordContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyEncodedWordContext() *EncodedWordContext {
|
|
var p = new(EncodedWordContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_encodedWord
|
|
return p
|
|
}
|
|
|
|
func (*EncodedWordContext) IsEncodedWordContext() {}
|
|
|
|
func NewEncodedWordContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *EncodedWordContext {
|
|
var p = new(EncodedWordContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_encodedWord
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *EncodedWordContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *EncodedWordContext) AllEqual() []antlr.TerminalNode {
|
|
return s.GetTokens(RFC5322ParserEqual)
|
|
}
|
|
|
|
func (s *EncodedWordContext) Equal(i int) antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserEqual, i)
|
|
}
|
|
|
|
func (s *EncodedWordContext) AllQuestion() []antlr.TerminalNode {
|
|
return s.GetTokens(RFC5322ParserQuestion)
|
|
}
|
|
|
|
func (s *EncodedWordContext) Question(i int) antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserQuestion, i)
|
|
}
|
|
|
|
func (s *EncodedWordContext) Charset() ICharsetContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*ICharsetContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(ICharsetContext)
|
|
}
|
|
|
|
func (s *EncodedWordContext) Encoding() IEncodingContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IEncodingContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IEncodingContext)
|
|
}
|
|
|
|
func (s *EncodedWordContext) EncodedText() IEncodedTextContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IEncodedTextContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IEncodedTextContext)
|
|
}
|
|
|
|
func (s *EncodedWordContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *EncodedWordContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *EncodedWordContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterEncodedWord(s)
|
|
}
|
|
}
|
|
|
|
func (s *EncodedWordContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitEncodedWord(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) EncodedWord() (localctx IEncodedWordContext) {
|
|
localctx = NewEncodedWordContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 110, RFC5322ParserRULE_encodedWord)
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
p.EnterOuterAlt(localctx, 1)
|
|
{
|
|
p.SetState(887)
|
|
p.Match(RFC5322ParserEqual)
|
|
}
|
|
{
|
|
p.SetState(888)
|
|
p.Match(RFC5322ParserQuestion)
|
|
}
|
|
{
|
|
p.SetState(889)
|
|
p.Charset()
|
|
}
|
|
{
|
|
p.SetState(890)
|
|
p.Match(RFC5322ParserQuestion)
|
|
}
|
|
{
|
|
p.SetState(891)
|
|
p.Encoding()
|
|
}
|
|
{
|
|
p.SetState(892)
|
|
p.Match(RFC5322ParserQuestion)
|
|
}
|
|
{
|
|
p.SetState(893)
|
|
p.EncodedText()
|
|
}
|
|
{
|
|
p.SetState(894)
|
|
p.Match(RFC5322ParserQuestion)
|
|
}
|
|
{
|
|
p.SetState(895)
|
|
p.Match(RFC5322ParserEqual)
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// ICharsetContext is an interface to support dynamic dispatch.
|
|
type ICharsetContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsCharsetContext differentiates from other interfaces.
|
|
IsCharsetContext()
|
|
}
|
|
|
|
type CharsetContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyCharsetContext() *CharsetContext {
|
|
var p = new(CharsetContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_charset
|
|
return p
|
|
}
|
|
|
|
func (*CharsetContext) IsCharsetContext() {}
|
|
|
|
func NewCharsetContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *CharsetContext {
|
|
var p = new(CharsetContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_charset
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *CharsetContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *CharsetContext) Token() ITokenContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*ITokenContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(ITokenContext)
|
|
}
|
|
|
|
func (s *CharsetContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *CharsetContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *CharsetContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterCharset(s)
|
|
}
|
|
}
|
|
|
|
func (s *CharsetContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitCharset(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) Charset() (localctx ICharsetContext) {
|
|
localctx = NewCharsetContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 112, RFC5322ParserRULE_charset)
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
p.EnterOuterAlt(localctx, 1)
|
|
{
|
|
p.SetState(897)
|
|
p.Token()
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// IEncodingContext is an interface to support dynamic dispatch.
|
|
type IEncodingContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsEncodingContext differentiates from other interfaces.
|
|
IsEncodingContext()
|
|
}
|
|
|
|
type EncodingContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyEncodingContext() *EncodingContext {
|
|
var p = new(EncodingContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_encoding
|
|
return p
|
|
}
|
|
|
|
func (*EncodingContext) IsEncodingContext() {}
|
|
|
|
func NewEncodingContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *EncodingContext {
|
|
var p = new(EncodingContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_encoding
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *EncodingContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *EncodingContext) Token() ITokenContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*ITokenContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(ITokenContext)
|
|
}
|
|
|
|
func (s *EncodingContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *EncodingContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *EncodingContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterEncoding(s)
|
|
}
|
|
}
|
|
|
|
func (s *EncodingContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitEncoding(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) Encoding() (localctx IEncodingContext) {
|
|
localctx = NewEncodingContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 114, RFC5322ParserRULE_encoding)
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
p.EnterOuterAlt(localctx, 1)
|
|
{
|
|
p.SetState(899)
|
|
p.Token()
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// ITokenContext is an interface to support dynamic dispatch.
|
|
type ITokenContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsTokenContext differentiates from other interfaces.
|
|
IsTokenContext()
|
|
}
|
|
|
|
type TokenContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyTokenContext() *TokenContext {
|
|
var p = new(TokenContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_token
|
|
return p
|
|
}
|
|
|
|
func (*TokenContext) IsTokenContext() {}
|
|
|
|
func NewTokenContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *TokenContext {
|
|
var p = new(TokenContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_token
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *TokenContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *TokenContext) AllTokenChar() []ITokenCharContext {
|
|
var ts = s.GetTypedRuleContexts(reflect.TypeOf((*ITokenCharContext)(nil)).Elem())
|
|
var tst = make([]ITokenCharContext, len(ts))
|
|
|
|
for i, t := range ts {
|
|
if t != nil {
|
|
tst[i] = t.(ITokenCharContext)
|
|
}
|
|
}
|
|
|
|
return tst
|
|
}
|
|
|
|
func (s *TokenContext) TokenChar(i int) ITokenCharContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*ITokenCharContext)(nil)).Elem(), i)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(ITokenCharContext)
|
|
}
|
|
|
|
func (s *TokenContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *TokenContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *TokenContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterToken(s)
|
|
}
|
|
}
|
|
|
|
func (s *TokenContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitToken(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) Token() (localctx ITokenContext) {
|
|
localctx = NewTokenContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 116, RFC5322ParserRULE_token)
|
|
var _la int
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
p.EnterOuterAlt(localctx, 1)
|
|
p.SetState(902)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
for ok := true; ok; ok = (((_la-10)&-(0x1f+1)) == 0 && ((1<<uint((_la-10)))&((1<<(RFC5322ParserExclamation-10))|(1<<(RFC5322ParserHash-10))|(1<<(RFC5322ParserDollar-10))|(1<<(RFC5322ParserPercent-10))|(1<<(RFC5322ParserAmpersand-10))|(1<<(RFC5322ParserSQuote-10))|(1<<(RFC5322ParserAsterisk-10))|(1<<(RFC5322ParserPlus-10))|(1<<(RFC5322ParserMinus-10))|(1<<(RFC5322ParserDigit-10))|(1<<(RFC5322ParserBackslash-10))|(1<<(RFC5322ParserCaret-10))|(1<<(RFC5322ParserUnderscore-10))|(1<<(RFC5322ParserBacktick-10))|(1<<(RFC5322ParserLCurly-10))|(1<<(RFC5322ParserPipe-10))|(1<<(RFC5322ParserRCurly-10)))) != 0) || (((_la-42)&-(0x1f+1)) == 0 && ((1<<uint((_la-42)))&((1<<(RFC5322ParserTilde-42))|(1<<(RFC5322ParserA-42))|(1<<(RFC5322ParserB-42))|(1<<(RFC5322ParserC-42))|(1<<(RFC5322ParserD-42))|(1<<(RFC5322ParserE-42))|(1<<(RFC5322ParserF-42))|(1<<(RFC5322ParserG-42))|(1<<(RFC5322ParserH-42))|(1<<(RFC5322ParserI-42))|(1<<(RFC5322ParserJ-42))|(1<<(RFC5322ParserK-42))|(1<<(RFC5322ParserL-42))|(1<<(RFC5322ParserM-42))|(1<<(RFC5322ParserN-42))|(1<<(RFC5322ParserO-42))|(1<<(RFC5322ParserP-42))|(1<<(RFC5322ParserQ-42))|(1<<(RFC5322ParserR-42))|(1<<(RFC5322ParserS-42))|(1<<(RFC5322ParserT-42))|(1<<(RFC5322ParserU-42))|(1<<(RFC5322ParserV-42))|(1<<(RFC5322ParserW-42))|(1<<(RFC5322ParserX-42))|(1<<(RFC5322ParserY-42))|(1<<(RFC5322ParserZ-42)))) != 0) {
|
|
{
|
|
p.SetState(901)
|
|
p.TokenChar()
|
|
}
|
|
|
|
p.SetState(904)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// ITokenCharContext is an interface to support dynamic dispatch.
|
|
type ITokenCharContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsTokenCharContext differentiates from other interfaces.
|
|
IsTokenCharContext()
|
|
}
|
|
|
|
type TokenCharContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyTokenCharContext() *TokenCharContext {
|
|
var p = new(TokenCharContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_tokenChar
|
|
return p
|
|
}
|
|
|
|
func (*TokenCharContext) IsTokenCharContext() {}
|
|
|
|
func NewTokenCharContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *TokenCharContext {
|
|
var p = new(TokenCharContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_tokenChar
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *TokenCharContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *TokenCharContext) Alpha() IAlphaContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IAlphaContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IAlphaContext)
|
|
}
|
|
|
|
func (s *TokenCharContext) Exclamation() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserExclamation, 0)
|
|
}
|
|
|
|
func (s *TokenCharContext) Hash() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserHash, 0)
|
|
}
|
|
|
|
func (s *TokenCharContext) Dollar() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserDollar, 0)
|
|
}
|
|
|
|
func (s *TokenCharContext) Percent() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserPercent, 0)
|
|
}
|
|
|
|
func (s *TokenCharContext) Ampersand() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserAmpersand, 0)
|
|
}
|
|
|
|
func (s *TokenCharContext) SQuote() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserSQuote, 0)
|
|
}
|
|
|
|
func (s *TokenCharContext) Asterisk() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserAsterisk, 0)
|
|
}
|
|
|
|
func (s *TokenCharContext) Plus() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserPlus, 0)
|
|
}
|
|
|
|
func (s *TokenCharContext) Minus() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserMinus, 0)
|
|
}
|
|
|
|
func (s *TokenCharContext) Digit() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserDigit, 0)
|
|
}
|
|
|
|
func (s *TokenCharContext) Backslash() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserBackslash, 0)
|
|
}
|
|
|
|
func (s *TokenCharContext) Caret() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserCaret, 0)
|
|
}
|
|
|
|
func (s *TokenCharContext) Underscore() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserUnderscore, 0)
|
|
}
|
|
|
|
func (s *TokenCharContext) Backtick() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserBacktick, 0)
|
|
}
|
|
|
|
func (s *TokenCharContext) LCurly() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserLCurly, 0)
|
|
}
|
|
|
|
func (s *TokenCharContext) Pipe() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserPipe, 0)
|
|
}
|
|
|
|
func (s *TokenCharContext) RCurly() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserRCurly, 0)
|
|
}
|
|
|
|
func (s *TokenCharContext) Tilde() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserTilde, 0)
|
|
}
|
|
|
|
func (s *TokenCharContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *TokenCharContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *TokenCharContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterTokenChar(s)
|
|
}
|
|
}
|
|
|
|
func (s *TokenCharContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitTokenChar(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) TokenChar() (localctx ITokenCharContext) {
|
|
localctx = NewTokenCharContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 118, RFC5322ParserRULE_tokenChar)
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
p.SetState(925)
|
|
p.GetErrorHandler().Sync(p)
|
|
|
|
switch p.GetTokenStream().LA(1) {
|
|
case RFC5322ParserA, RFC5322ParserB, RFC5322ParserC, RFC5322ParserD, RFC5322ParserE, RFC5322ParserF, RFC5322ParserG, RFC5322ParserH, RFC5322ParserI, RFC5322ParserJ, RFC5322ParserK, RFC5322ParserL, RFC5322ParserM, RFC5322ParserN, RFC5322ParserO, RFC5322ParserP, RFC5322ParserQ, RFC5322ParserR, RFC5322ParserS, RFC5322ParserT, RFC5322ParserU, RFC5322ParserV, RFC5322ParserW, RFC5322ParserX, RFC5322ParserY, RFC5322ParserZ:
|
|
p.EnterOuterAlt(localctx, 1)
|
|
{
|
|
p.SetState(906)
|
|
p.Alpha()
|
|
}
|
|
|
|
case RFC5322ParserExclamation:
|
|
p.EnterOuterAlt(localctx, 2)
|
|
{
|
|
p.SetState(907)
|
|
p.Match(RFC5322ParserExclamation)
|
|
}
|
|
|
|
case RFC5322ParserHash:
|
|
p.EnterOuterAlt(localctx, 3)
|
|
{
|
|
p.SetState(908)
|
|
p.Match(RFC5322ParserHash)
|
|
}
|
|
|
|
case RFC5322ParserDollar:
|
|
p.EnterOuterAlt(localctx, 4)
|
|
{
|
|
p.SetState(909)
|
|
p.Match(RFC5322ParserDollar)
|
|
}
|
|
|
|
case RFC5322ParserPercent:
|
|
p.EnterOuterAlt(localctx, 5)
|
|
{
|
|
p.SetState(910)
|
|
p.Match(RFC5322ParserPercent)
|
|
}
|
|
|
|
case RFC5322ParserAmpersand:
|
|
p.EnterOuterAlt(localctx, 6)
|
|
{
|
|
p.SetState(911)
|
|
p.Match(RFC5322ParserAmpersand)
|
|
}
|
|
|
|
case RFC5322ParserSQuote:
|
|
p.EnterOuterAlt(localctx, 7)
|
|
{
|
|
p.SetState(912)
|
|
p.Match(RFC5322ParserSQuote)
|
|
}
|
|
|
|
case RFC5322ParserAsterisk:
|
|
p.EnterOuterAlt(localctx, 8)
|
|
{
|
|
p.SetState(913)
|
|
p.Match(RFC5322ParserAsterisk)
|
|
}
|
|
|
|
case RFC5322ParserPlus:
|
|
p.EnterOuterAlt(localctx, 9)
|
|
{
|
|
p.SetState(914)
|
|
p.Match(RFC5322ParserPlus)
|
|
}
|
|
|
|
case RFC5322ParserMinus:
|
|
p.EnterOuterAlt(localctx, 10)
|
|
{
|
|
p.SetState(915)
|
|
p.Match(RFC5322ParserMinus)
|
|
}
|
|
|
|
case RFC5322ParserDigit:
|
|
p.EnterOuterAlt(localctx, 11)
|
|
{
|
|
p.SetState(916)
|
|
p.Match(RFC5322ParserDigit)
|
|
}
|
|
|
|
case RFC5322ParserBackslash:
|
|
p.EnterOuterAlt(localctx, 12)
|
|
{
|
|
p.SetState(917)
|
|
p.Match(RFC5322ParserBackslash)
|
|
}
|
|
|
|
case RFC5322ParserCaret:
|
|
p.EnterOuterAlt(localctx, 13)
|
|
{
|
|
p.SetState(918)
|
|
p.Match(RFC5322ParserCaret)
|
|
}
|
|
|
|
case RFC5322ParserUnderscore:
|
|
p.EnterOuterAlt(localctx, 14)
|
|
{
|
|
p.SetState(919)
|
|
p.Match(RFC5322ParserUnderscore)
|
|
}
|
|
|
|
case RFC5322ParserBacktick:
|
|
p.EnterOuterAlt(localctx, 15)
|
|
{
|
|
p.SetState(920)
|
|
p.Match(RFC5322ParserBacktick)
|
|
}
|
|
|
|
case RFC5322ParserLCurly:
|
|
p.EnterOuterAlt(localctx, 16)
|
|
{
|
|
p.SetState(921)
|
|
p.Match(RFC5322ParserLCurly)
|
|
}
|
|
|
|
case RFC5322ParserPipe:
|
|
p.EnterOuterAlt(localctx, 17)
|
|
{
|
|
p.SetState(922)
|
|
p.Match(RFC5322ParserPipe)
|
|
}
|
|
|
|
case RFC5322ParserRCurly:
|
|
p.EnterOuterAlt(localctx, 18)
|
|
{
|
|
p.SetState(923)
|
|
p.Match(RFC5322ParserRCurly)
|
|
}
|
|
|
|
case RFC5322ParserTilde:
|
|
p.EnterOuterAlt(localctx, 19)
|
|
{
|
|
p.SetState(924)
|
|
p.Match(RFC5322ParserTilde)
|
|
}
|
|
|
|
default:
|
|
panic(antlr.NewNoViableAltException(p, nil, nil, nil, nil, nil))
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// IEncodedTextContext is an interface to support dynamic dispatch.
|
|
type IEncodedTextContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsEncodedTextContext differentiates from other interfaces.
|
|
IsEncodedTextContext()
|
|
}
|
|
|
|
type EncodedTextContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyEncodedTextContext() *EncodedTextContext {
|
|
var p = new(EncodedTextContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_encodedText
|
|
return p
|
|
}
|
|
|
|
func (*EncodedTextContext) IsEncodedTextContext() {}
|
|
|
|
func NewEncodedTextContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *EncodedTextContext {
|
|
var p = new(EncodedTextContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_encodedText
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *EncodedTextContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *EncodedTextContext) AllEncodedChar() []IEncodedCharContext {
|
|
var ts = s.GetTypedRuleContexts(reflect.TypeOf((*IEncodedCharContext)(nil)).Elem())
|
|
var tst = make([]IEncodedCharContext, len(ts))
|
|
|
|
for i, t := range ts {
|
|
if t != nil {
|
|
tst[i] = t.(IEncodedCharContext)
|
|
}
|
|
}
|
|
|
|
return tst
|
|
}
|
|
|
|
func (s *EncodedTextContext) EncodedChar(i int) IEncodedCharContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IEncodedCharContext)(nil)).Elem(), i)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IEncodedCharContext)
|
|
}
|
|
|
|
func (s *EncodedTextContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *EncodedTextContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *EncodedTextContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterEncodedText(s)
|
|
}
|
|
}
|
|
|
|
func (s *EncodedTextContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitEncodedText(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) EncodedText() (localctx IEncodedTextContext) {
|
|
localctx = NewEncodedTextContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 120, RFC5322ParserRULE_encodedText)
|
|
var _la int
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
p.EnterOuterAlt(localctx, 1)
|
|
p.SetState(928)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
for ok := true; ok; ok = (((_la-10)&-(0x1f+1)) == 0 && ((1<<uint((_la-10)))&((1<<(RFC5322ParserExclamation-10))|(1<<(RFC5322ParserDQuote-10))|(1<<(RFC5322ParserHash-10))|(1<<(RFC5322ParserDollar-10))|(1<<(RFC5322ParserPercent-10))|(1<<(RFC5322ParserAmpersand-10))|(1<<(RFC5322ParserSQuote-10))|(1<<(RFC5322ParserLParens-10))|(1<<(RFC5322ParserRParens-10))|(1<<(RFC5322ParserAsterisk-10))|(1<<(RFC5322ParserPlus-10))|(1<<(RFC5322ParserComma-10))|(1<<(RFC5322ParserMinus-10))|(1<<(RFC5322ParserPeriod-10))|(1<<(RFC5322ParserSlash-10))|(1<<(RFC5322ParserDigit-10))|(1<<(RFC5322ParserColon-10))|(1<<(RFC5322ParserSemicolon-10))|(1<<(RFC5322ParserLess-10))|(1<<(RFC5322ParserEqual-10))|(1<<(RFC5322ParserGreater-10))|(1<<(RFC5322ParserAt-10))|(1<<(RFC5322ParserLBracket-10))|(1<<(RFC5322ParserBackslash-10))|(1<<(RFC5322ParserRBracket-10))|(1<<(RFC5322ParserCaret-10))|(1<<(RFC5322ParserUnderscore-10))|(1<<(RFC5322ParserBacktick-10))|(1<<(RFC5322ParserLCurly-10))|(1<<(RFC5322ParserPipe-10))|(1<<(RFC5322ParserRCurly-10)))) != 0) || (((_la-42)&-(0x1f+1)) == 0 && ((1<<uint((_la-42)))&((1<<(RFC5322ParserTilde-42))|(1<<(RFC5322ParserA-42))|(1<<(RFC5322ParserB-42))|(1<<(RFC5322ParserC-42))|(1<<(RFC5322ParserD-42))|(1<<(RFC5322ParserE-42))|(1<<(RFC5322ParserF-42))|(1<<(RFC5322ParserG-42))|(1<<(RFC5322ParserH-42))|(1<<(RFC5322ParserI-42))|(1<<(RFC5322ParserJ-42))|(1<<(RFC5322ParserK-42))|(1<<(RFC5322ParserL-42))|(1<<(RFC5322ParserM-42))|(1<<(RFC5322ParserN-42))|(1<<(RFC5322ParserO-42))|(1<<(RFC5322ParserP-42))|(1<<(RFC5322ParserQ-42))|(1<<(RFC5322ParserR-42))|(1<<(RFC5322ParserS-42))|(1<<(RFC5322ParserT-42))|(1<<(RFC5322ParserU-42))|(1<<(RFC5322ParserV-42))|(1<<(RFC5322ParserW-42))|(1<<(RFC5322ParserX-42))|(1<<(RFC5322ParserY-42))|(1<<(RFC5322ParserZ-42)))) != 0) {
|
|
{
|
|
p.SetState(927)
|
|
p.EncodedChar()
|
|
}
|
|
|
|
p.SetState(930)
|
|
p.GetErrorHandler().Sync(p)
|
|
_la = p.GetTokenStream().LA(1)
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// IEncodedCharContext is an interface to support dynamic dispatch.
|
|
type IEncodedCharContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsEncodedCharContext differentiates from other interfaces.
|
|
IsEncodedCharContext()
|
|
}
|
|
|
|
type EncodedCharContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyEncodedCharContext() *EncodedCharContext {
|
|
var p = new(EncodedCharContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_encodedChar
|
|
return p
|
|
}
|
|
|
|
func (*EncodedCharContext) IsEncodedCharContext() {}
|
|
|
|
func NewEncodedCharContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *EncodedCharContext {
|
|
var p = new(EncodedCharContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_encodedChar
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *EncodedCharContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *EncodedCharContext) Alpha() IAlphaContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IAlphaContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IAlphaContext)
|
|
}
|
|
|
|
func (s *EncodedCharContext) Exclamation() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserExclamation, 0)
|
|
}
|
|
|
|
func (s *EncodedCharContext) DQuote() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserDQuote, 0)
|
|
}
|
|
|
|
func (s *EncodedCharContext) Hash() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserHash, 0)
|
|
}
|
|
|
|
func (s *EncodedCharContext) Dollar() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserDollar, 0)
|
|
}
|
|
|
|
func (s *EncodedCharContext) Percent() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserPercent, 0)
|
|
}
|
|
|
|
func (s *EncodedCharContext) Ampersand() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserAmpersand, 0)
|
|
}
|
|
|
|
func (s *EncodedCharContext) SQuote() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserSQuote, 0)
|
|
}
|
|
|
|
func (s *EncodedCharContext) LParens() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserLParens, 0)
|
|
}
|
|
|
|
func (s *EncodedCharContext) RParens() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserRParens, 0)
|
|
}
|
|
|
|
func (s *EncodedCharContext) Asterisk() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserAsterisk, 0)
|
|
}
|
|
|
|
func (s *EncodedCharContext) Plus() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserPlus, 0)
|
|
}
|
|
|
|
func (s *EncodedCharContext) Comma() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserComma, 0)
|
|
}
|
|
|
|
func (s *EncodedCharContext) Minus() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserMinus, 0)
|
|
}
|
|
|
|
func (s *EncodedCharContext) Period() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserPeriod, 0)
|
|
}
|
|
|
|
func (s *EncodedCharContext) Slash() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserSlash, 0)
|
|
}
|
|
|
|
func (s *EncodedCharContext) Digit() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserDigit, 0)
|
|
}
|
|
|
|
func (s *EncodedCharContext) Colon() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserColon, 0)
|
|
}
|
|
|
|
func (s *EncodedCharContext) Semicolon() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserSemicolon, 0)
|
|
}
|
|
|
|
func (s *EncodedCharContext) Less() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserLess, 0)
|
|
}
|
|
|
|
func (s *EncodedCharContext) Equal() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserEqual, 0)
|
|
}
|
|
|
|
func (s *EncodedCharContext) Greater() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserGreater, 0)
|
|
}
|
|
|
|
func (s *EncodedCharContext) At() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserAt, 0)
|
|
}
|
|
|
|
func (s *EncodedCharContext) LBracket() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserLBracket, 0)
|
|
}
|
|
|
|
func (s *EncodedCharContext) Backslash() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserBackslash, 0)
|
|
}
|
|
|
|
func (s *EncodedCharContext) RBracket() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserRBracket, 0)
|
|
}
|
|
|
|
func (s *EncodedCharContext) Caret() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserCaret, 0)
|
|
}
|
|
|
|
func (s *EncodedCharContext) Underscore() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserUnderscore, 0)
|
|
}
|
|
|
|
func (s *EncodedCharContext) Backtick() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserBacktick, 0)
|
|
}
|
|
|
|
func (s *EncodedCharContext) LCurly() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserLCurly, 0)
|
|
}
|
|
|
|
func (s *EncodedCharContext) Pipe() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserPipe, 0)
|
|
}
|
|
|
|
func (s *EncodedCharContext) RCurly() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserRCurly, 0)
|
|
}
|
|
|
|
func (s *EncodedCharContext) Tilde() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserTilde, 0)
|
|
}
|
|
|
|
func (s *EncodedCharContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *EncodedCharContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *EncodedCharContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterEncodedChar(s)
|
|
}
|
|
}
|
|
|
|
func (s *EncodedCharContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitEncodedChar(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) EncodedChar() (localctx IEncodedCharContext) {
|
|
localctx = NewEncodedCharContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 122, RFC5322ParserRULE_encodedChar)
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
p.SetState(965)
|
|
p.GetErrorHandler().Sync(p)
|
|
|
|
switch p.GetTokenStream().LA(1) {
|
|
case RFC5322ParserA, RFC5322ParserB, RFC5322ParserC, RFC5322ParserD, RFC5322ParserE, RFC5322ParserF, RFC5322ParserG, RFC5322ParserH, RFC5322ParserI, RFC5322ParserJ, RFC5322ParserK, RFC5322ParserL, RFC5322ParserM, RFC5322ParserN, RFC5322ParserO, RFC5322ParserP, RFC5322ParserQ, RFC5322ParserR, RFC5322ParserS, RFC5322ParserT, RFC5322ParserU, RFC5322ParserV, RFC5322ParserW, RFC5322ParserX, RFC5322ParserY, RFC5322ParserZ:
|
|
p.EnterOuterAlt(localctx, 1)
|
|
{
|
|
p.SetState(932)
|
|
p.Alpha()
|
|
}
|
|
|
|
case RFC5322ParserExclamation:
|
|
p.EnterOuterAlt(localctx, 2)
|
|
{
|
|
p.SetState(933)
|
|
p.Match(RFC5322ParserExclamation)
|
|
}
|
|
|
|
case RFC5322ParserDQuote:
|
|
p.EnterOuterAlt(localctx, 3)
|
|
{
|
|
p.SetState(934)
|
|
p.Match(RFC5322ParserDQuote)
|
|
}
|
|
|
|
case RFC5322ParserHash:
|
|
p.EnterOuterAlt(localctx, 4)
|
|
{
|
|
p.SetState(935)
|
|
p.Match(RFC5322ParserHash)
|
|
}
|
|
|
|
case RFC5322ParserDollar:
|
|
p.EnterOuterAlt(localctx, 5)
|
|
{
|
|
p.SetState(936)
|
|
p.Match(RFC5322ParserDollar)
|
|
}
|
|
|
|
case RFC5322ParserPercent:
|
|
p.EnterOuterAlt(localctx, 6)
|
|
{
|
|
p.SetState(937)
|
|
p.Match(RFC5322ParserPercent)
|
|
}
|
|
|
|
case RFC5322ParserAmpersand:
|
|
p.EnterOuterAlt(localctx, 7)
|
|
{
|
|
p.SetState(938)
|
|
p.Match(RFC5322ParserAmpersand)
|
|
}
|
|
|
|
case RFC5322ParserSQuote:
|
|
p.EnterOuterAlt(localctx, 8)
|
|
{
|
|
p.SetState(939)
|
|
p.Match(RFC5322ParserSQuote)
|
|
}
|
|
|
|
case RFC5322ParserLParens:
|
|
p.EnterOuterAlt(localctx, 9)
|
|
{
|
|
p.SetState(940)
|
|
p.Match(RFC5322ParserLParens)
|
|
}
|
|
|
|
case RFC5322ParserRParens:
|
|
p.EnterOuterAlt(localctx, 10)
|
|
{
|
|
p.SetState(941)
|
|
p.Match(RFC5322ParserRParens)
|
|
}
|
|
|
|
case RFC5322ParserAsterisk:
|
|
p.EnterOuterAlt(localctx, 11)
|
|
{
|
|
p.SetState(942)
|
|
p.Match(RFC5322ParserAsterisk)
|
|
}
|
|
|
|
case RFC5322ParserPlus:
|
|
p.EnterOuterAlt(localctx, 12)
|
|
{
|
|
p.SetState(943)
|
|
p.Match(RFC5322ParserPlus)
|
|
}
|
|
|
|
case RFC5322ParserComma:
|
|
p.EnterOuterAlt(localctx, 13)
|
|
{
|
|
p.SetState(944)
|
|
p.Match(RFC5322ParserComma)
|
|
}
|
|
|
|
case RFC5322ParserMinus:
|
|
p.EnterOuterAlt(localctx, 14)
|
|
{
|
|
p.SetState(945)
|
|
p.Match(RFC5322ParserMinus)
|
|
}
|
|
|
|
case RFC5322ParserPeriod:
|
|
p.EnterOuterAlt(localctx, 15)
|
|
{
|
|
p.SetState(946)
|
|
p.Match(RFC5322ParserPeriod)
|
|
}
|
|
|
|
case RFC5322ParserSlash:
|
|
p.EnterOuterAlt(localctx, 16)
|
|
{
|
|
p.SetState(947)
|
|
p.Match(RFC5322ParserSlash)
|
|
}
|
|
|
|
case RFC5322ParserDigit:
|
|
p.EnterOuterAlt(localctx, 17)
|
|
{
|
|
p.SetState(948)
|
|
p.Match(RFC5322ParserDigit)
|
|
}
|
|
|
|
case RFC5322ParserColon:
|
|
p.EnterOuterAlt(localctx, 18)
|
|
{
|
|
p.SetState(949)
|
|
p.Match(RFC5322ParserColon)
|
|
}
|
|
|
|
case RFC5322ParserSemicolon:
|
|
p.EnterOuterAlt(localctx, 19)
|
|
{
|
|
p.SetState(950)
|
|
p.Match(RFC5322ParserSemicolon)
|
|
}
|
|
|
|
case RFC5322ParserLess:
|
|
p.EnterOuterAlt(localctx, 20)
|
|
{
|
|
p.SetState(951)
|
|
p.Match(RFC5322ParserLess)
|
|
}
|
|
|
|
case RFC5322ParserEqual:
|
|
p.EnterOuterAlt(localctx, 21)
|
|
{
|
|
p.SetState(952)
|
|
p.Match(RFC5322ParserEqual)
|
|
}
|
|
|
|
case RFC5322ParserGreater:
|
|
p.EnterOuterAlt(localctx, 22)
|
|
{
|
|
p.SetState(953)
|
|
p.Match(RFC5322ParserGreater)
|
|
}
|
|
|
|
case RFC5322ParserAt:
|
|
p.EnterOuterAlt(localctx, 23)
|
|
{
|
|
p.SetState(954)
|
|
p.Match(RFC5322ParserAt)
|
|
}
|
|
|
|
case RFC5322ParserLBracket:
|
|
p.EnterOuterAlt(localctx, 24)
|
|
{
|
|
p.SetState(955)
|
|
p.Match(RFC5322ParserLBracket)
|
|
}
|
|
|
|
case RFC5322ParserBackslash:
|
|
p.EnterOuterAlt(localctx, 25)
|
|
{
|
|
p.SetState(956)
|
|
p.Match(RFC5322ParserBackslash)
|
|
}
|
|
|
|
case RFC5322ParserRBracket:
|
|
p.EnterOuterAlt(localctx, 26)
|
|
{
|
|
p.SetState(957)
|
|
p.Match(RFC5322ParserRBracket)
|
|
}
|
|
|
|
case RFC5322ParserCaret:
|
|
p.EnterOuterAlt(localctx, 27)
|
|
{
|
|
p.SetState(958)
|
|
p.Match(RFC5322ParserCaret)
|
|
}
|
|
|
|
case RFC5322ParserUnderscore:
|
|
p.EnterOuterAlt(localctx, 28)
|
|
{
|
|
p.SetState(959)
|
|
p.Match(RFC5322ParserUnderscore)
|
|
}
|
|
|
|
case RFC5322ParserBacktick:
|
|
p.EnterOuterAlt(localctx, 29)
|
|
{
|
|
p.SetState(960)
|
|
p.Match(RFC5322ParserBacktick)
|
|
}
|
|
|
|
case RFC5322ParserLCurly:
|
|
p.EnterOuterAlt(localctx, 30)
|
|
{
|
|
p.SetState(961)
|
|
p.Match(RFC5322ParserLCurly)
|
|
}
|
|
|
|
case RFC5322ParserPipe:
|
|
p.EnterOuterAlt(localctx, 31)
|
|
{
|
|
p.SetState(962)
|
|
p.Match(RFC5322ParserPipe)
|
|
}
|
|
|
|
case RFC5322ParserRCurly:
|
|
p.EnterOuterAlt(localctx, 32)
|
|
{
|
|
p.SetState(963)
|
|
p.Match(RFC5322ParserRCurly)
|
|
}
|
|
|
|
case RFC5322ParserTilde:
|
|
p.EnterOuterAlt(localctx, 33)
|
|
{
|
|
p.SetState(964)
|
|
p.Match(RFC5322ParserTilde)
|
|
}
|
|
|
|
default:
|
|
panic(antlr.NewNoViableAltException(p, nil, nil, nil, nil, nil))
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// ICrlfContext is an interface to support dynamic dispatch.
|
|
type ICrlfContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsCrlfContext differentiates from other interfaces.
|
|
IsCrlfContext()
|
|
}
|
|
|
|
type CrlfContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyCrlfContext() *CrlfContext {
|
|
var p = new(CrlfContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_crlf
|
|
return p
|
|
}
|
|
|
|
func (*CrlfContext) IsCrlfContext() {}
|
|
|
|
func NewCrlfContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *CrlfContext {
|
|
var p = new(CrlfContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_crlf
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *CrlfContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *CrlfContext) CR() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserCR, 0)
|
|
}
|
|
|
|
func (s *CrlfContext) LF() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserLF, 0)
|
|
}
|
|
|
|
func (s *CrlfContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *CrlfContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *CrlfContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterCrlf(s)
|
|
}
|
|
}
|
|
|
|
func (s *CrlfContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitCrlf(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) Crlf() (localctx ICrlfContext) {
|
|
localctx = NewCrlfContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 124, RFC5322ParserRULE_crlf)
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
p.EnterOuterAlt(localctx, 1)
|
|
{
|
|
p.SetState(967)
|
|
p.Match(RFC5322ParserCR)
|
|
}
|
|
{
|
|
p.SetState(968)
|
|
p.Match(RFC5322ParserLF)
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// IWspContext is an interface to support dynamic dispatch.
|
|
type IWspContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsWspContext differentiates from other interfaces.
|
|
IsWspContext()
|
|
}
|
|
|
|
type WspContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyWspContext() *WspContext {
|
|
var p = new(WspContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_wsp
|
|
return p
|
|
}
|
|
|
|
func (*WspContext) IsWspContext() {}
|
|
|
|
func NewWspContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *WspContext {
|
|
var p = new(WspContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_wsp
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *WspContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *WspContext) SP() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserSP, 0)
|
|
}
|
|
|
|
func (s *WspContext) TAB() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserTAB, 0)
|
|
}
|
|
|
|
func (s *WspContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *WspContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *WspContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterWsp(s)
|
|
}
|
|
}
|
|
|
|
func (s *WspContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitWsp(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) Wsp() (localctx IWspContext) {
|
|
localctx = NewWspContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 126, RFC5322ParserRULE_wsp)
|
|
var _la int
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
p.EnterOuterAlt(localctx, 1)
|
|
{
|
|
p.SetState(970)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
if !(_la == RFC5322ParserTAB || _la == RFC5322ParserSP) {
|
|
p.GetErrorHandler().RecoverInline(p)
|
|
} else {
|
|
p.GetErrorHandler().ReportMatch(p)
|
|
p.Consume()
|
|
}
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// IVcharContext is an interface to support dynamic dispatch.
|
|
type IVcharContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsVcharContext differentiates from other interfaces.
|
|
IsVcharContext()
|
|
}
|
|
|
|
type VcharContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyVcharContext() *VcharContext {
|
|
var p = new(VcharContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_vchar
|
|
return p
|
|
}
|
|
|
|
func (*VcharContext) IsVcharContext() {}
|
|
|
|
func NewVcharContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *VcharContext {
|
|
var p = new(VcharContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_vchar
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *VcharContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *VcharContext) Alpha() IAlphaContext {
|
|
var t = s.GetTypedRuleContext(reflect.TypeOf((*IAlphaContext)(nil)).Elem(), 0)
|
|
|
|
if t == nil {
|
|
return nil
|
|
}
|
|
|
|
return t.(IAlphaContext)
|
|
}
|
|
|
|
func (s *VcharContext) Exclamation() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserExclamation, 0)
|
|
}
|
|
|
|
func (s *VcharContext) DQuote() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserDQuote, 0)
|
|
}
|
|
|
|
func (s *VcharContext) Hash() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserHash, 0)
|
|
}
|
|
|
|
func (s *VcharContext) Dollar() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserDollar, 0)
|
|
}
|
|
|
|
func (s *VcharContext) Percent() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserPercent, 0)
|
|
}
|
|
|
|
func (s *VcharContext) Ampersand() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserAmpersand, 0)
|
|
}
|
|
|
|
func (s *VcharContext) SQuote() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserSQuote, 0)
|
|
}
|
|
|
|
func (s *VcharContext) LParens() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserLParens, 0)
|
|
}
|
|
|
|
func (s *VcharContext) RParens() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserRParens, 0)
|
|
}
|
|
|
|
func (s *VcharContext) Asterisk() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserAsterisk, 0)
|
|
}
|
|
|
|
func (s *VcharContext) Plus() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserPlus, 0)
|
|
}
|
|
|
|
func (s *VcharContext) Comma() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserComma, 0)
|
|
}
|
|
|
|
func (s *VcharContext) Minus() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserMinus, 0)
|
|
}
|
|
|
|
func (s *VcharContext) Period() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserPeriod, 0)
|
|
}
|
|
|
|
func (s *VcharContext) Slash() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserSlash, 0)
|
|
}
|
|
|
|
func (s *VcharContext) Digit() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserDigit, 0)
|
|
}
|
|
|
|
func (s *VcharContext) Colon() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserColon, 0)
|
|
}
|
|
|
|
func (s *VcharContext) Semicolon() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserSemicolon, 0)
|
|
}
|
|
|
|
func (s *VcharContext) Less() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserLess, 0)
|
|
}
|
|
|
|
func (s *VcharContext) Equal() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserEqual, 0)
|
|
}
|
|
|
|
func (s *VcharContext) Greater() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserGreater, 0)
|
|
}
|
|
|
|
func (s *VcharContext) Question() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserQuestion, 0)
|
|
}
|
|
|
|
func (s *VcharContext) At() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserAt, 0)
|
|
}
|
|
|
|
func (s *VcharContext) LBracket() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserLBracket, 0)
|
|
}
|
|
|
|
func (s *VcharContext) Backslash() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserBackslash, 0)
|
|
}
|
|
|
|
func (s *VcharContext) RBracket() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserRBracket, 0)
|
|
}
|
|
|
|
func (s *VcharContext) Caret() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserCaret, 0)
|
|
}
|
|
|
|
func (s *VcharContext) Underscore() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserUnderscore, 0)
|
|
}
|
|
|
|
func (s *VcharContext) Backtick() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserBacktick, 0)
|
|
}
|
|
|
|
func (s *VcharContext) LCurly() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserLCurly, 0)
|
|
}
|
|
|
|
func (s *VcharContext) Pipe() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserPipe, 0)
|
|
}
|
|
|
|
func (s *VcharContext) RCurly() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserRCurly, 0)
|
|
}
|
|
|
|
func (s *VcharContext) Tilde() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserTilde, 0)
|
|
}
|
|
|
|
func (s *VcharContext) UTF8NonAscii() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserUTF8NonAscii, 0)
|
|
}
|
|
|
|
func (s *VcharContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *VcharContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *VcharContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterVchar(s)
|
|
}
|
|
}
|
|
|
|
func (s *VcharContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitVchar(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) Vchar() (localctx IVcharContext) {
|
|
localctx = NewVcharContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 128, RFC5322ParserRULE_vchar)
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
p.SetState(1007)
|
|
p.GetErrorHandler().Sync(p)
|
|
|
|
switch p.GetTokenStream().LA(1) {
|
|
case RFC5322ParserA, RFC5322ParserB, RFC5322ParserC, RFC5322ParserD, RFC5322ParserE, RFC5322ParserF, RFC5322ParserG, RFC5322ParserH, RFC5322ParserI, RFC5322ParserJ, RFC5322ParserK, RFC5322ParserL, RFC5322ParserM, RFC5322ParserN, RFC5322ParserO, RFC5322ParserP, RFC5322ParserQ, RFC5322ParserR, RFC5322ParserS, RFC5322ParserT, RFC5322ParserU, RFC5322ParserV, RFC5322ParserW, RFC5322ParserX, RFC5322ParserY, RFC5322ParserZ:
|
|
p.EnterOuterAlt(localctx, 1)
|
|
{
|
|
p.SetState(972)
|
|
p.Alpha()
|
|
}
|
|
|
|
case RFC5322ParserExclamation:
|
|
p.EnterOuterAlt(localctx, 2)
|
|
{
|
|
p.SetState(973)
|
|
p.Match(RFC5322ParserExclamation)
|
|
}
|
|
|
|
case RFC5322ParserDQuote:
|
|
p.EnterOuterAlt(localctx, 3)
|
|
{
|
|
p.SetState(974)
|
|
p.Match(RFC5322ParserDQuote)
|
|
}
|
|
|
|
case RFC5322ParserHash:
|
|
p.EnterOuterAlt(localctx, 4)
|
|
{
|
|
p.SetState(975)
|
|
p.Match(RFC5322ParserHash)
|
|
}
|
|
|
|
case RFC5322ParserDollar:
|
|
p.EnterOuterAlt(localctx, 5)
|
|
{
|
|
p.SetState(976)
|
|
p.Match(RFC5322ParserDollar)
|
|
}
|
|
|
|
case RFC5322ParserPercent:
|
|
p.EnterOuterAlt(localctx, 6)
|
|
{
|
|
p.SetState(977)
|
|
p.Match(RFC5322ParserPercent)
|
|
}
|
|
|
|
case RFC5322ParserAmpersand:
|
|
p.EnterOuterAlt(localctx, 7)
|
|
{
|
|
p.SetState(978)
|
|
p.Match(RFC5322ParserAmpersand)
|
|
}
|
|
|
|
case RFC5322ParserSQuote:
|
|
p.EnterOuterAlt(localctx, 8)
|
|
{
|
|
p.SetState(979)
|
|
p.Match(RFC5322ParserSQuote)
|
|
}
|
|
|
|
case RFC5322ParserLParens:
|
|
p.EnterOuterAlt(localctx, 9)
|
|
{
|
|
p.SetState(980)
|
|
p.Match(RFC5322ParserLParens)
|
|
}
|
|
|
|
case RFC5322ParserRParens:
|
|
p.EnterOuterAlt(localctx, 10)
|
|
{
|
|
p.SetState(981)
|
|
p.Match(RFC5322ParserRParens)
|
|
}
|
|
|
|
case RFC5322ParserAsterisk:
|
|
p.EnterOuterAlt(localctx, 11)
|
|
{
|
|
p.SetState(982)
|
|
p.Match(RFC5322ParserAsterisk)
|
|
}
|
|
|
|
case RFC5322ParserPlus:
|
|
p.EnterOuterAlt(localctx, 12)
|
|
{
|
|
p.SetState(983)
|
|
p.Match(RFC5322ParserPlus)
|
|
}
|
|
|
|
case RFC5322ParserComma:
|
|
p.EnterOuterAlt(localctx, 13)
|
|
{
|
|
p.SetState(984)
|
|
p.Match(RFC5322ParserComma)
|
|
}
|
|
|
|
case RFC5322ParserMinus:
|
|
p.EnterOuterAlt(localctx, 14)
|
|
{
|
|
p.SetState(985)
|
|
p.Match(RFC5322ParserMinus)
|
|
}
|
|
|
|
case RFC5322ParserPeriod:
|
|
p.EnterOuterAlt(localctx, 15)
|
|
{
|
|
p.SetState(986)
|
|
p.Match(RFC5322ParserPeriod)
|
|
}
|
|
|
|
case RFC5322ParserSlash:
|
|
p.EnterOuterAlt(localctx, 16)
|
|
{
|
|
p.SetState(987)
|
|
p.Match(RFC5322ParserSlash)
|
|
}
|
|
|
|
case RFC5322ParserDigit:
|
|
p.EnterOuterAlt(localctx, 17)
|
|
{
|
|
p.SetState(988)
|
|
p.Match(RFC5322ParserDigit)
|
|
}
|
|
|
|
case RFC5322ParserColon:
|
|
p.EnterOuterAlt(localctx, 18)
|
|
{
|
|
p.SetState(989)
|
|
p.Match(RFC5322ParserColon)
|
|
}
|
|
|
|
case RFC5322ParserSemicolon:
|
|
p.EnterOuterAlt(localctx, 19)
|
|
{
|
|
p.SetState(990)
|
|
p.Match(RFC5322ParserSemicolon)
|
|
}
|
|
|
|
case RFC5322ParserLess:
|
|
p.EnterOuterAlt(localctx, 20)
|
|
{
|
|
p.SetState(991)
|
|
p.Match(RFC5322ParserLess)
|
|
}
|
|
|
|
case RFC5322ParserEqual:
|
|
p.EnterOuterAlt(localctx, 21)
|
|
{
|
|
p.SetState(992)
|
|
p.Match(RFC5322ParserEqual)
|
|
}
|
|
|
|
case RFC5322ParserGreater:
|
|
p.EnterOuterAlt(localctx, 22)
|
|
{
|
|
p.SetState(993)
|
|
p.Match(RFC5322ParserGreater)
|
|
}
|
|
|
|
case RFC5322ParserQuestion:
|
|
p.EnterOuterAlt(localctx, 23)
|
|
{
|
|
p.SetState(994)
|
|
p.Match(RFC5322ParserQuestion)
|
|
}
|
|
|
|
case RFC5322ParserAt:
|
|
p.EnterOuterAlt(localctx, 24)
|
|
{
|
|
p.SetState(995)
|
|
p.Match(RFC5322ParserAt)
|
|
}
|
|
|
|
case RFC5322ParserLBracket:
|
|
p.EnterOuterAlt(localctx, 25)
|
|
{
|
|
p.SetState(996)
|
|
p.Match(RFC5322ParserLBracket)
|
|
}
|
|
|
|
case RFC5322ParserBackslash:
|
|
p.EnterOuterAlt(localctx, 26)
|
|
{
|
|
p.SetState(997)
|
|
p.Match(RFC5322ParserBackslash)
|
|
}
|
|
|
|
case RFC5322ParserRBracket:
|
|
p.EnterOuterAlt(localctx, 27)
|
|
{
|
|
p.SetState(998)
|
|
p.Match(RFC5322ParserRBracket)
|
|
}
|
|
|
|
case RFC5322ParserCaret:
|
|
p.EnterOuterAlt(localctx, 28)
|
|
{
|
|
p.SetState(999)
|
|
p.Match(RFC5322ParserCaret)
|
|
}
|
|
|
|
case RFC5322ParserUnderscore:
|
|
p.EnterOuterAlt(localctx, 29)
|
|
{
|
|
p.SetState(1000)
|
|
p.Match(RFC5322ParserUnderscore)
|
|
}
|
|
|
|
case RFC5322ParserBacktick:
|
|
p.EnterOuterAlt(localctx, 30)
|
|
{
|
|
p.SetState(1001)
|
|
p.Match(RFC5322ParserBacktick)
|
|
}
|
|
|
|
case RFC5322ParserLCurly:
|
|
p.EnterOuterAlt(localctx, 31)
|
|
{
|
|
p.SetState(1002)
|
|
p.Match(RFC5322ParserLCurly)
|
|
}
|
|
|
|
case RFC5322ParserPipe:
|
|
p.EnterOuterAlt(localctx, 32)
|
|
{
|
|
p.SetState(1003)
|
|
p.Match(RFC5322ParserPipe)
|
|
}
|
|
|
|
case RFC5322ParserRCurly:
|
|
p.EnterOuterAlt(localctx, 33)
|
|
{
|
|
p.SetState(1004)
|
|
p.Match(RFC5322ParserRCurly)
|
|
}
|
|
|
|
case RFC5322ParserTilde:
|
|
p.EnterOuterAlt(localctx, 34)
|
|
{
|
|
p.SetState(1005)
|
|
p.Match(RFC5322ParserTilde)
|
|
}
|
|
|
|
case RFC5322ParserUTF8NonAscii:
|
|
p.EnterOuterAlt(localctx, 35)
|
|
{
|
|
p.SetState(1006)
|
|
p.Match(RFC5322ParserUTF8NonAscii)
|
|
}
|
|
|
|
default:
|
|
panic(antlr.NewNoViableAltException(p, nil, nil, nil, nil, nil))
|
|
}
|
|
|
|
return localctx
|
|
}
|
|
|
|
// IAlphaContext is an interface to support dynamic dispatch.
|
|
type IAlphaContext interface {
|
|
antlr.ParserRuleContext
|
|
|
|
// GetParser returns the parser.
|
|
GetParser() antlr.Parser
|
|
|
|
// IsAlphaContext differentiates from other interfaces.
|
|
IsAlphaContext()
|
|
}
|
|
|
|
type AlphaContext struct {
|
|
*antlr.BaseParserRuleContext
|
|
parser antlr.Parser
|
|
}
|
|
|
|
func NewEmptyAlphaContext() *AlphaContext {
|
|
var p = new(AlphaContext)
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
|
|
p.RuleIndex = RFC5322ParserRULE_alpha
|
|
return p
|
|
}
|
|
|
|
func (*AlphaContext) IsAlphaContext() {}
|
|
|
|
func NewAlphaContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *AlphaContext {
|
|
var p = new(AlphaContext)
|
|
|
|
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
|
|
|
|
p.parser = parser
|
|
p.RuleIndex = RFC5322ParserRULE_alpha
|
|
|
|
return p
|
|
}
|
|
|
|
func (s *AlphaContext) GetParser() antlr.Parser { return s.parser }
|
|
|
|
func (s *AlphaContext) A() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserA, 0)
|
|
}
|
|
|
|
func (s *AlphaContext) B() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserB, 0)
|
|
}
|
|
|
|
func (s *AlphaContext) C() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserC, 0)
|
|
}
|
|
|
|
func (s *AlphaContext) D() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserD, 0)
|
|
}
|
|
|
|
func (s *AlphaContext) E() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserE, 0)
|
|
}
|
|
|
|
func (s *AlphaContext) F() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserF, 0)
|
|
}
|
|
|
|
func (s *AlphaContext) G() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserG, 0)
|
|
}
|
|
|
|
func (s *AlphaContext) H() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserH, 0)
|
|
}
|
|
|
|
func (s *AlphaContext) I() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserI, 0)
|
|
}
|
|
|
|
func (s *AlphaContext) J() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserJ, 0)
|
|
}
|
|
|
|
func (s *AlphaContext) K() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserK, 0)
|
|
}
|
|
|
|
func (s *AlphaContext) L() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserL, 0)
|
|
}
|
|
|
|
func (s *AlphaContext) M() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserM, 0)
|
|
}
|
|
|
|
func (s *AlphaContext) N() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserN, 0)
|
|
}
|
|
|
|
func (s *AlphaContext) O() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserO, 0)
|
|
}
|
|
|
|
func (s *AlphaContext) P() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserP, 0)
|
|
}
|
|
|
|
func (s *AlphaContext) Q() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserQ, 0)
|
|
}
|
|
|
|
func (s *AlphaContext) R() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserR, 0)
|
|
}
|
|
|
|
func (s *AlphaContext) S() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserS, 0)
|
|
}
|
|
|
|
func (s *AlphaContext) T() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserT, 0)
|
|
}
|
|
|
|
func (s *AlphaContext) U() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserU, 0)
|
|
}
|
|
|
|
func (s *AlphaContext) V() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserV, 0)
|
|
}
|
|
|
|
func (s *AlphaContext) W() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserW, 0)
|
|
}
|
|
|
|
func (s *AlphaContext) X() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserX, 0)
|
|
}
|
|
|
|
func (s *AlphaContext) Y() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserY, 0)
|
|
}
|
|
|
|
func (s *AlphaContext) Z() antlr.TerminalNode {
|
|
return s.GetToken(RFC5322ParserZ, 0)
|
|
}
|
|
|
|
func (s *AlphaContext) GetRuleContext() antlr.RuleContext {
|
|
return s
|
|
}
|
|
|
|
func (s *AlphaContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
|
|
return antlr.TreesStringTree(s, ruleNames, recog)
|
|
}
|
|
|
|
func (s *AlphaContext) EnterRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.EnterAlpha(s)
|
|
}
|
|
}
|
|
|
|
func (s *AlphaContext) ExitRule(listener antlr.ParseTreeListener) {
|
|
if listenerT, ok := listener.(RFC5322ParserListener); ok {
|
|
listenerT.ExitAlpha(s)
|
|
}
|
|
}
|
|
|
|
func (p *RFC5322Parser) Alpha() (localctx IAlphaContext) {
|
|
localctx = NewAlphaContext(p, p.GetParserRuleContext(), p.GetState())
|
|
p.EnterRule(localctx, 130, RFC5322ParserRULE_alpha)
|
|
var _la int
|
|
|
|
defer func() {
|
|
p.ExitRule()
|
|
}()
|
|
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
if v, ok := err.(antlr.RecognitionException); ok {
|
|
localctx.SetException(v)
|
|
p.GetErrorHandler().ReportError(p, v)
|
|
p.GetErrorHandler().Recover(p, v)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}()
|
|
|
|
p.EnterOuterAlt(localctx, 1)
|
|
{
|
|
p.SetState(1009)
|
|
_la = p.GetTokenStream().LA(1)
|
|
|
|
if !(((_la-45)&-(0x1f+1)) == 0 && ((1<<uint((_la-45)))&((1<<(RFC5322ParserA-45))|(1<<(RFC5322ParserB-45))|(1<<(RFC5322ParserC-45))|(1<<(RFC5322ParserD-45))|(1<<(RFC5322ParserE-45))|(1<<(RFC5322ParserF-45))|(1<<(RFC5322ParserG-45))|(1<<(RFC5322ParserH-45))|(1<<(RFC5322ParserI-45))|(1<<(RFC5322ParserJ-45))|(1<<(RFC5322ParserK-45))|(1<<(RFC5322ParserL-45))|(1<<(RFC5322ParserM-45))|(1<<(RFC5322ParserN-45))|(1<<(RFC5322ParserO-45))|(1<<(RFC5322ParserP-45))|(1<<(RFC5322ParserQ-45))|(1<<(RFC5322ParserR-45))|(1<<(RFC5322ParserS-45))|(1<<(RFC5322ParserT-45))|(1<<(RFC5322ParserU-45))|(1<<(RFC5322ParserV-45))|(1<<(RFC5322ParserW-45))|(1<<(RFC5322ParserX-45))|(1<<(RFC5322ParserY-45))|(1<<(RFC5322ParserZ-45)))) != 0) {
|
|
p.GetErrorHandler().RecoverInline(p)
|
|
} else {
|
|
p.GetErrorHandler().ReportMatch(p)
|
|
p.Consume()
|
|
}
|
|
}
|
|
|
|
return localctx
|
|
}
|