Files
proton-bridge/pkg/message/rfc5322/parser/rfc5322_parser.go
2020-11-03 16:21:06 +01:00

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
}