--- /dev/null
+
+#line 1 "src/ragel/smtp_addr_parser.rl"
+
+#line 57 "src/ragel/smtp_addr_parser.rl"
+
+
+
+#line 9 "src/libmime/parsers/smtp_addr_parser.c"
+static const char _smtp_addr_parser_trans_keys[] = {
+ 0, 0, 9, 126, 33, 126, 33, 126, 48, 122, 48, 122, 48, 122, 48, 122,
+ 46, 122, 48, 57, 46, 57, 48, 57, 46, 57, 48, 57, 48, 93, 48, 93,
+ 93, 93, 46, 57, 46, 46, 46, 57, 46, 46, 46, 122, 46, 122, 48, 122,
+ 33, 126, 33, 126, 48, 122, 32, 126, 64, 64, 32, 126, 33, 126, 33, 126,
+ 33, 126, 48, 122, 46, 122, 48, 122, 48, 122, 48, 122, 46, 122, 48, 57,
+ 46, 57, 48, 57, 46, 57, 48, 57, 48, 93, 48, 93, 93, 93, 62, 62,
+ 46, 57, 46, 46, 46, 57, 46, 46, 46, 122, 46, 122, 48, 122, 33, 126,
+ 33, 126, 48, 122, 32, 126, 64, 64, 32, 126, 48, 122, 44, 122, 64, 64,
+ 33, 126, 48, 122, 48, 122, 44, 122, 64, 64, 33, 126, 48, 122, 9, 122,
+ 9, 32, 9, 32, 9, 32, 9, 32, 0
+};
+
+static const char _smtp_addr_parser_key_spans[] = {
+ 0, 118, 94, 94, 75, 75, 75, 75,
+ 77, 10, 12, 10, 12, 10, 46, 46,
+ 1, 12, 1, 12, 1, 77, 77, 75,
+ 94, 94, 75, 95, 1, 95, 94, 94,
+ 94, 75, 77, 75, 75, 75, 77, 10,
+ 12, 10, 12, 10, 46, 46, 1, 1,
+ 12, 1, 12, 1, 77, 77, 75, 94,
+ 94, 75, 95, 1, 95, 75, 79, 1,
+ 94, 75, 75, 79, 1, 94, 75, 114,
+ 24, 24, 24, 24
+};
+
+static const short _smtp_addr_parser_index_offsets[] = {
+ 0, 0, 119, 214, 309, 385, 461, 537,
+ 613, 691, 702, 715, 726, 739, 750, 797,
+ 844, 846, 859, 861, 874, 876, 954, 1032,
+ 1108, 1203, 1298, 1374, 1470, 1472, 1568, 1663,
+ 1758, 1853, 1929, 2007, 2083, 2159, 2235, 2313,
+ 2324, 2337, 2348, 2361, 2372, 2419, 2466, 2468,
+ 2470, 2483, 2485, 2498, 2500, 2578, 2656, 2732,
+ 2827, 2922, 2998, 3094, 3096, 3192, 3268, 3348,
+ 3350, 3445, 3521, 3597, 3677, 3679, 3774, 3850,
+ 3965, 3990, 4015, 4040
+};
+
+static const char _smtp_addr_parser_indicies[] = {
+ 0, 0, 0, 0, 0, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 0, 2, 3, 2, 2, 2, 2, 2,
+ 1, 1, 2, 2, 1, 1, 1, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 1, 1, 4, 2, 1, 2,
+ 5, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 1, 1, 1, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 1,
+ 6, 1, 6, 6, 6, 6, 6, 1,
+ 1, 6, 6, 1, 1, 7, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 1, 1, 1, 6, 1, 6, 8,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 1, 1, 1, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 1, 6,
+ 1, 6, 6, 6, 6, 6, 1, 1,
+ 6, 6, 1, 1, 1, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 1, 1, 1, 6, 1, 6, 1, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 1, 1, 1, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 1, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 1, 1, 1, 1, 1, 1, 1, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 10, 1, 1, 1, 1, 1, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 1, 11, 11, 11, 11, 11, 11,
+ 11, 11, 11, 11, 1, 1, 1, 1,
+ 1, 1, 1, 11, 11, 11, 11, 11,
+ 11, 11, 11, 11, 11, 11, 11, 11,
+ 11, 11, 11, 11, 11, 11, 11, 11,
+ 11, 11, 11, 11, 11, 1, 1, 1,
+ 1, 1, 1, 11, 11, 11, 11, 11,
+ 11, 11, 11, 11, 11, 11, 11, 11,
+ 11, 11, 11, 11, 11, 11, 11, 11,
+ 11, 11, 11, 11, 11, 1, 11, 11,
+ 11, 11, 11, 11, 11, 11, 11, 11,
+ 1, 1, 1, 1, 1, 1, 1, 11,
+ 11, 11, 11, 11, 11, 11, 11, 11,
+ 11, 11, 11, 11, 11, 11, 11, 11,
+ 11, 11, 11, 11, 11, 11, 11, 11,
+ 11, 1, 1, 1, 1, 12, 1, 11,
+ 11, 11, 11, 11, 11, 11, 11, 11,
+ 11, 11, 11, 11, 11, 11, 11, 11,
+ 11, 11, 11, 11, 11, 11, 11, 11,
+ 11, 1, 13, 13, 13, 13, 13, 13,
+ 13, 13, 13, 13, 1, 1, 1, 1,
+ 1, 1, 1, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 1, 1, 1,
+ 1, 15, 1, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 1, 16, 1,
+ 17, 17, 17, 17, 17, 17, 17, 17,
+ 17, 17, 18, 1, 1, 1, 1, 1,
+ 1, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 1, 1, 1, 1, 20,
+ 1, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 1, 21, 21, 21, 21,
+ 21, 21, 21, 21, 21, 21, 1, 22,
+ 1, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 1, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 1, 25,
+ 1, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 1, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 1, 28,
+ 28, 28, 28, 28, 28, 28, 28, 28,
+ 28, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 29, 1, 30, 30,
+ 30, 30, 30, 30, 30, 30, 30, 30,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 29, 1, 29, 1, 25,
+ 1, 31, 31, 31, 31, 31, 31, 31,
+ 31, 31, 31, 1, 25, 1, 22, 1,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 1, 22, 1, 16, 1, 33,
+ 33, 33, 33, 33, 33, 33, 33, 33,
+ 33, 18, 1, 1, 1, 1, 1, 1,
+ 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 1, 1, 1, 1, 20, 1,
+ 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 1, 16, 1, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 18,
+ 1, 1, 1, 1, 1, 1, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19,
+ 1, 1, 1, 1, 20, 1, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19,
+ 1, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 18, 1, 1, 1, 1,
+ 1, 1, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 1, 1, 1, 1,
+ 20, 1, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 1, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 1,
+ 1, 1, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 1, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 1, 1,
+ 29, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 1, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 1, 1, 1,
+ 1, 1, 1, 1, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 1, 1,
+ 1, 1, 20, 1, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 1, 35,
+ 35, 36, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 37, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 1, 38,
+ 1, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 1, 39, 40, 39, 39, 39, 39, 39,
+ 1, 1, 39, 39, 1, 1, 1, 39,
+ 39, 39, 39, 39, 39, 39, 39, 39,
+ 39, 39, 1, 1, 1, 39, 41, 39,
+ 42, 39, 39, 39, 39, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 39,
+ 39, 39, 39, 1, 1, 1, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 1,
+ 43, 1, 43, 43, 43, 43, 43, 1,
+ 1, 43, 43, 1, 1, 44, 43, 43,
+ 43, 43, 43, 43, 43, 43, 43, 43,
+ 43, 1, 1, 1, 43, 1, 43, 45,
+ 43, 43, 43, 43, 43, 43, 43, 43,
+ 43, 43, 43, 43, 43, 43, 43, 43,
+ 43, 43, 43, 43, 43, 43, 43, 43,
+ 43, 43, 1, 1, 1, 43, 43, 43,
+ 43, 43, 43, 43, 43, 43, 43, 43,
+ 43, 43, 43, 43, 43, 43, 43, 43,
+ 43, 43, 43, 43, 43, 43, 43, 43,
+ 43, 43, 43, 43, 43, 43, 1, 43,
+ 1, 43, 43, 43, 43, 43, 1, 1,
+ 43, 43, 1, 1, 1, 43, 43, 43,
+ 43, 43, 43, 43, 43, 43, 43, 43,
+ 1, 1, 1, 43, 1, 43, 1, 43,
+ 43, 43, 43, 43, 43, 43, 43, 43,
+ 43, 43, 43, 43, 43, 43, 43, 43,
+ 43, 43, 43, 43, 43, 43, 43, 43,
+ 43, 1, 1, 1, 43, 43, 43, 43,
+ 43, 43, 43, 43, 43, 43, 43, 43,
+ 43, 43, 43, 43, 43, 43, 43, 43,
+ 43, 43, 43, 43, 43, 43, 43, 43,
+ 43, 43, 43, 43, 43, 1, 46, 46,
+ 46, 46, 46, 46, 46, 46, 46, 46,
+ 1, 1, 1, 1, 1, 1, 1, 46,
+ 46, 46, 46, 46, 46, 46, 46, 46,
+ 46, 46, 46, 46, 46, 46, 46, 46,
+ 46, 46, 46, 46, 46, 46, 46, 46,
+ 46, 47, 1, 1, 1, 1, 1, 46,
+ 46, 46, 46, 46, 46, 46, 46, 46,
+ 46, 46, 46, 46, 46, 46, 46, 46,
+ 46, 46, 46, 46, 46, 46, 46, 46,
+ 46, 1, 48, 1, 49, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 1, 1,
+ 1, 1, 50, 1, 1, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 1,
+ 1, 1, 1, 51, 1, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 1,
+ 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 1, 1, 1, 1, 1, 1,
+ 1, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 49, 1, 1, 1, 1, 1,
+ 1, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 49, 1, 49, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 1, 1,
+ 1, 1, 1, 1, 1, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 1,
+ 1, 1, 1, 51, 1, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 1,
+ 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 1, 1, 1, 1, 1, 1,
+ 1, 53, 53, 53, 53, 53, 53, 53,
+ 53, 53, 53, 53, 53, 53, 53, 53,
+ 53, 53, 53, 53, 53, 53, 53, 53,
+ 53, 53, 53, 1, 1, 1, 1, 54,
+ 1, 53, 53, 53, 53, 53, 53, 53,
+ 53, 53, 53, 53, 53, 53, 53, 53,
+ 53, 53, 53, 53, 53, 53, 53, 53,
+ 53, 53, 53, 1, 55, 1, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 57, 1, 1, 1, 1, 1, 1, 58,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ 58, 1, 1, 1, 1, 59, 1, 58,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ 58, 1, 60, 60, 60, 60, 60, 60,
+ 60, 60, 60, 60, 1, 61, 1, 62,
+ 62, 62, 62, 62, 62, 62, 62, 62,
+ 62, 1, 63, 63, 63, 63, 63, 63,
+ 63, 63, 63, 63, 1, 64, 1, 65,
+ 65, 65, 65, 65, 65, 65, 65, 65,
+ 65, 1, 66, 66, 66, 66, 66, 66,
+ 66, 66, 66, 66, 1, 67, 67, 67,
+ 67, 67, 67, 67, 67, 67, 67, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 68, 1, 69, 69, 69, 69,
+ 69, 69, 69, 69, 69, 69, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 68, 1, 68, 1, 70, 1, 64,
+ 1, 71, 71, 71, 71, 71, 71, 71,
+ 71, 71, 71, 1, 64, 1, 61, 1,
+ 72, 72, 72, 72, 72, 72, 72, 72,
+ 72, 72, 1, 61, 1, 55, 1, 73,
+ 73, 73, 73, 73, 73, 73, 73, 73,
+ 73, 57, 1, 1, 1, 1, 1, 1,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ 58, 58, 1, 1, 1, 1, 59, 1,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ 58, 58, 1, 55, 1, 58, 58, 58,
+ 58, 58, 58, 58, 58, 58, 58, 57,
+ 1, 1, 1, 1, 1, 1, 58, 58,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ 1, 1, 1, 1, 59, 1, 58, 58,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ 1, 58, 58, 58, 58, 58, 58, 58,
+ 58, 58, 58, 57, 1, 1, 1, 1,
+ 1, 1, 58, 58, 58, 58, 58, 58,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ 58, 58, 58, 58, 1, 1, 1, 1,
+ 59, 1, 58, 58, 58, 58, 58, 58,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ 58, 58, 58, 58, 1, 74, 74, 74,
+ 74, 74, 74, 74, 74, 74, 74, 74,
+ 74, 74, 74, 74, 74, 74, 74, 74,
+ 74, 74, 74, 74, 74, 74, 74, 74,
+ 74, 74, 74, 74, 74, 74, 74, 74,
+ 74, 74, 74, 74, 74, 74, 74, 74,
+ 74, 74, 74, 74, 74, 74, 74, 74,
+ 74, 74, 74, 74, 74, 74, 74, 1,
+ 1, 1, 74, 74, 74, 74, 74, 74,
+ 74, 74, 74, 74, 74, 74, 74, 74,
+ 74, 74, 74, 74, 74, 74, 74, 74,
+ 74, 74, 74, 74, 74, 74, 74, 74,
+ 74, 74, 74, 1, 74, 74, 74, 74,
+ 74, 74, 74, 74, 74, 74, 74, 74,
+ 74, 74, 74, 74, 74, 74, 74, 74,
+ 74, 74, 74, 74, 74, 74, 74, 74,
+ 74, 74, 74, 74, 74, 74, 74, 74,
+ 74, 74, 74, 74, 74, 74, 74, 74,
+ 74, 74, 74, 74, 74, 74, 74, 74,
+ 74, 74, 74, 74, 74, 74, 1, 1,
+ 68, 74, 74, 74, 74, 74, 74, 74,
+ 74, 74, 74, 74, 74, 74, 74, 74,
+ 74, 74, 74, 74, 74, 74, 74, 74,
+ 74, 74, 74, 74, 74, 74, 74, 74,
+ 74, 74, 1, 58, 58, 58, 58, 58,
+ 58, 58, 58, 58, 58, 1, 1, 1,
+ 1, 1, 1, 1, 58, 58, 58, 58,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ 58, 58, 58, 58, 58, 58, 1, 1,
+ 1, 1, 59, 1, 58, 58, 58, 58,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ 58, 58, 58, 58, 58, 58, 1, 75,
+ 75, 76, 75, 75, 75, 75, 75, 75,
+ 75, 75, 75, 75, 75, 75, 75, 75,
+ 75, 75, 75, 75, 75, 75, 75, 75,
+ 75, 75, 75, 75, 75, 75, 75, 75,
+ 75, 75, 75, 75, 75, 75, 75, 75,
+ 75, 75, 75, 75, 75, 75, 75, 75,
+ 75, 75, 75, 75, 75, 75, 75, 75,
+ 75, 75, 75, 77, 75, 75, 75, 75,
+ 75, 75, 75, 75, 75, 75, 75, 75,
+ 75, 75, 75, 75, 75, 75, 75, 75,
+ 75, 75, 75, 75, 75, 75, 75, 75,
+ 75, 75, 75, 75, 75, 75, 1, 78,
+ 1, 75, 75, 75, 75, 75, 75, 75,
+ 75, 75, 75, 75, 75, 75, 75, 75,
+ 75, 75, 75, 75, 75, 75, 75, 75,
+ 75, 75, 75, 75, 75, 75, 75, 75,
+ 75, 75, 75, 75, 75, 75, 75, 75,
+ 75, 75, 75, 75, 75, 75, 75, 75,
+ 75, 75, 75, 75, 75, 75, 75, 75,
+ 75, 75, 75, 75, 75, 75, 75, 75,
+ 75, 75, 75, 75, 75, 75, 75, 75,
+ 75, 75, 75, 75, 75, 75, 75, 75,
+ 75, 75, 75, 75, 75, 75, 75, 75,
+ 75, 75, 75, 75, 75, 75, 75, 75,
+ 1, 79, 79, 79, 79, 79, 79, 79,
+ 79, 79, 79, 1, 1, 1, 1, 1,
+ 1, 1, 79, 79, 79, 79, 79, 79,
+ 79, 79, 79, 79, 79, 79, 79, 79,
+ 79, 79, 79, 79, 79, 79, 79, 79,
+ 79, 79, 79, 79, 1, 1, 1, 1,
+ 1, 1, 79, 79, 79, 79, 79, 79,
+ 79, 79, 79, 79, 79, 79, 79, 79,
+ 79, 79, 79, 79, 79, 79, 79, 79,
+ 79, 79, 79, 79, 1, 80, 1, 42,
+ 1, 79, 79, 79, 79, 79, 79, 79,
+ 79, 79, 79, 81, 1, 1, 1, 1,
+ 1, 1, 79, 79, 79, 79, 79, 79,
+ 79, 79, 79, 79, 79, 79, 79, 79,
+ 79, 79, 79, 79, 79, 79, 79, 79,
+ 79, 79, 79, 79, 1, 1, 1, 1,
+ 82, 1, 79, 79, 79, 79, 79, 79,
+ 79, 79, 79, 79, 79, 79, 79, 79,
+ 79, 79, 79, 79, 79, 79, 79, 79,
+ 79, 79, 79, 79, 1, 42, 1, 39,
+ 40, 39, 39, 39, 39, 39, 1, 1,
+ 39, 39, 1, 1, 1, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 39,
+ 1, 1, 1, 39, 1, 39, 1, 39,
+ 39, 39, 39, 39, 39, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 39,
+ 39, 1, 1, 1, 39, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 39,
+ 39, 39, 39, 39, 39, 1, 79, 79,
+ 79, 79, 79, 79, 79, 79, 79, 79,
+ 1, 1, 1, 1, 1, 1, 1, 79,
+ 79, 79, 79, 79, 79, 79, 79, 79,
+ 79, 79, 79, 79, 79, 79, 79, 79,
+ 79, 79, 79, 79, 79, 79, 79, 79,
+ 79, 1, 1, 1, 1, 82, 1, 79,
+ 79, 79, 79, 79, 79, 79, 79, 79,
+ 79, 79, 79, 79, 79, 79, 79, 79,
+ 79, 79, 79, 79, 79, 79, 79, 79,
+ 79, 1, 83, 83, 83, 83, 83, 83,
+ 83, 83, 83, 83, 1, 1, 1, 1,
+ 1, 1, 1, 83, 83, 83, 83, 83,
+ 83, 83, 83, 83, 83, 83, 83, 83,
+ 83, 83, 83, 83, 83, 83, 83, 83,
+ 83, 83, 83, 83, 83, 1, 1, 1,
+ 1, 1, 1, 83, 83, 83, 83, 83,
+ 83, 83, 83, 83, 83, 83, 83, 83,
+ 83, 83, 83, 83, 83, 83, 83, 83,
+ 83, 83, 83, 83, 83, 1, 84, 1,
+ 5, 1, 83, 83, 83, 83, 83, 83,
+ 83, 83, 83, 83, 85, 1, 1, 1,
+ 1, 1, 1, 83, 83, 83, 83, 83,
+ 83, 83, 83, 83, 83, 83, 83, 83,
+ 83, 83, 83, 83, 83, 83, 83, 83,
+ 83, 83, 83, 83, 83, 1, 1, 1,
+ 1, 86, 1, 83, 83, 83, 83, 83,
+ 83, 83, 83, 83, 83, 83, 83, 83,
+ 83, 83, 83, 83, 83, 83, 83, 83,
+ 83, 83, 83, 83, 83, 1, 5, 1,
+ 2, 3, 2, 2, 2, 2, 2, 1,
+ 1, 2, 2, 1, 1, 1, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 1, 1, 1, 2, 1, 2, 1,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 1, 1, 1, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 1, 83,
+ 83, 83, 83, 83, 83, 83, 83, 83,
+ 83, 1, 1, 1, 1, 1, 1, 1,
+ 83, 83, 83, 83, 83, 83, 83, 83,
+ 83, 83, 83, 83, 83, 83, 83, 83,
+ 83, 83, 83, 83, 83, 83, 83, 83,
+ 83, 83, 1, 1, 1, 1, 86, 1,
+ 83, 83, 83, 83, 83, 83, 83, 83,
+ 83, 83, 83, 83, 83, 83, 83, 83,
+ 83, 83, 83, 83, 83, 83, 83, 83,
+ 83, 83, 1, 87, 87, 87, 87, 87,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 87, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 88, 1, 11, 11, 11, 11, 11, 11,
+ 11, 11, 11, 11, 1, 1, 1, 1,
+ 1, 1, 1, 11, 11, 11, 11, 11,
+ 11, 11, 11, 11, 11, 11, 11, 11,
+ 11, 11, 11, 11, 11, 11, 11, 11,
+ 11, 11, 11, 11, 11, 1, 1, 1,
+ 1, 12, 1, 11, 11, 11, 11, 11,
+ 11, 11, 11, 11, 11, 11, 11, 11,
+ 11, 11, 11, 11, 11, 11, 11, 11,
+ 11, 11, 11, 11, 11, 1, 89, 89,
+ 89, 89, 89, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 89, 1, 90,
+ 90, 90, 90, 90, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 90, 1,
+ 91, 91, 91, 91, 91, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 91,
+ 1, 92, 92, 92, 92, 92, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 92, 1, 0
+};
+
+static const char _smtp_addr_parser_trans_targs[] = {
+ 1, 0, 2, 27, 30, 66, 2, 3,
+ 4, 71, 7, 71, 6, 8, 23, 26,
+ 9, 21, 24, 23, 26, 10, 11, 19,
+ 12, 13, 17, 14, 15, 73, 16, 18,
+ 20, 22, 25, 27, 28, 29, 4, 31,
+ 58, 75, 61, 31, 32, 33, 34, 37,
+ 35, 34, 74, 36, 38, 54, 57, 39,
+ 52, 55, 54, 57, 40, 41, 50, 42,
+ 43, 48, 44, 45, 47, 46, 74, 49,
+ 51, 53, 56, 58, 59, 60, 33, 62,
+ 63, 64, 65, 67, 68, 69, 70, 72,
+ 5, 72, 72, 72, 72
+};
+
+static const char _smtp_addr_parser_trans_actions[] = {
+ 0, 0, 1, 1, 0, 0, 0, 0,
+ 2, 3, 0, 0, 0, 4, 4, 4,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 5, 0, 0,
+ 0, 0, 0, 0, 0, 0, 6, 1,
+ 1, 0, 0, 0, 0, 2, 3, 0,
+ 0, 0, 7, 0, 4, 4, 4, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 5, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 6, 0,
+ 0, 0, 0, 0, 0, 0, 0, 8,
+ 0, 0, 9, 10, 11
+};
+
+static const char _smtp_addr_parser_eof_actions[] = {
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 8,
+ 0, 9, 10, 11
+};
+
+static const int smtp_addr_parser_start = 1;
+static const int smtp_addr_parser_first_final = 71;
+static const int smtp_addr_parser_error = 0;
+
+static const int smtp_addr_parser_en_main = 1;
+
+
+#line 60 "src/ragel/smtp_addr_parser.rl"
+
+static int
+rspamd_smtp_addr_parse (const char *data, size_t len, struct rspamd_email_address *addr)
+{
+ const char *p = data, *pe = data + len, *eof;
+ int cs;
+
+ g_assert (addr != NULL);
+ memset (addr, 0, sizeof (*addr));
+ addr->raw = data;
+ addr->raw_len = len;
+ eof = pe;
+
+
+#line 626 "src/libmime/parsers/smtp_addr_parser.c"
+ {
+ cs = smtp_addr_parser_start;
+ }
+
+#line 74 "src/ragel/smtp_addr_parser.rl"
+
+#line 633 "src/libmime/parsers/smtp_addr_parser.c"
+ {
+ int _slen;
+ int _trans;
+ const char *_keys;
+ const char *_inds;
+ if ( p == pe )
+ goto _test_eof;
+ if ( cs == 0 )
+ goto _out;
+_resume:
+ _keys = _smtp_addr_parser_trans_keys + (cs<<1);
+ _inds = _smtp_addr_parser_indicies + _smtp_addr_parser_index_offsets[cs];
+
+ _slen = _smtp_addr_parser_key_spans[cs];
+ _trans = _inds[ _slen > 0 && _keys[0] <=(*p) &&
+ (*p) <= _keys[1] ?
+ (*p) - _keys[0] : _slen ];
+
+ cs = _smtp_addr_parser_trans_targs[_trans];
+
+ if ( _smtp_addr_parser_trans_actions[_trans] == 0 )
+ goto _again;
+
+ switch ( _smtp_addr_parser_trans_actions[_trans] ) {
+ case 1:
+#line 5 "src/ragel/smtp_addr_parser.rl"
+ {
+ addr->user = p;
+ addr->addr = p;
+ }
+ break;
+ case 2:
+#line 10 "src/ragel/smtp_addr_parser.rl"
+ {
+ if (addr->user) {
+ addr->user_len = p - addr->user;
+ }
+ }
+ break;
+ case 3:
+#line 16 "src/ragel/smtp_addr_parser.rl"
+ {
+ addr->domain = p;
+ }
+ break;
+ case 7:
+#line 20 "src/ragel/smtp_addr_parser.rl"
+ {
+ if (addr->domain) {
+ addr->domain_len = p - addr->domain;
+ }
+ }
+ break;
+ case 4:
+#line 26 "src/ragel/smtp_addr_parser.rl"
+ {
+ addr->domain = p;
+ addr->flags |= RSPAMD_EMAIL_ADDR_IP;
+ }
+ break;
+ case 5:
+#line 31 "src/ragel/smtp_addr_parser.rl"
+ {
+ if (addr->domain) {
+ addr->domain_len = p - addr->domain;
+ }
+ }
+ break;
+ case 9:
+#line 46 "src/ragel/smtp_addr_parser.rl"
+ {
+ addr->flags |= RSPAMD_EMAIL_ADDR_VALID;
+ }
+ break;
+ case 8:
+#line 20 "src/ragel/smtp_addr_parser.rl"
+ {
+ if (addr->domain) {
+ addr->domain_len = p - addr->domain;
+ }
+ }
+#line 46 "src/ragel/smtp_addr_parser.rl"
+ {
+ addr->flags |= RSPAMD_EMAIL_ADDR_VALID;
+ }
+ break;
+ case 6:
+#line 37 "src/ragel/smtp_addr_parser.rl"
+ {
+ addr->flags |= RSPAMD_EMAIL_ADDR_QUOTED;
+ }
+#line 10 "src/ragel/smtp_addr_parser.rl"
+ {
+ if (addr->user) {
+ addr->user_len = p - addr->user;
+ }
+ }
+ break;
+ case 11:
+#line 41 "src/ragel/smtp_addr_parser.rl"
+ {
+ addr->flags |= RSPAMD_EMAIL_ADDR_EMPTY;
+ addr->addr = "";
+ }
+#line 46 "src/ragel/smtp_addr_parser.rl"
+ {
+ addr->flags |= RSPAMD_EMAIL_ADDR_VALID;
+ }
+ break;
+ case 10:
+#line 50 "src/ragel/smtp_addr_parser.rl"
+ {
+ addr->flags |= RSPAMD_EMAIL_ADDR_BRACED;
+ }
+#line 46 "src/ragel/smtp_addr_parser.rl"
+ {
+ addr->flags |= RSPAMD_EMAIL_ADDR_VALID;
+ }
+ break;
+#line 753 "src/libmime/parsers/smtp_addr_parser.c"
+ }
+
+_again:
+ if ( cs == 0 )
+ goto _out;
+ if ( ++p != pe )
+ goto _resume;
+ _test_eof: {}
+ if ( p == eof )
+ {
+ switch ( _smtp_addr_parser_eof_actions[cs] ) {
+ case 9:
+#line 46 "src/ragel/smtp_addr_parser.rl"
+ {
+ addr->flags |= RSPAMD_EMAIL_ADDR_VALID;
+ }
+ break;
+ case 8:
+#line 20 "src/ragel/smtp_addr_parser.rl"
+ {
+ if (addr->domain) {
+ addr->domain_len = p - addr->domain;
+ }
+ }
+#line 46 "src/ragel/smtp_addr_parser.rl"
+ {
+ addr->flags |= RSPAMD_EMAIL_ADDR_VALID;
+ }
+ break;
+ case 11:
+#line 41 "src/ragel/smtp_addr_parser.rl"
+ {
+ addr->flags |= RSPAMD_EMAIL_ADDR_EMPTY;
+ addr->addr = "";
+ }
+#line 46 "src/ragel/smtp_addr_parser.rl"
+ {
+ addr->flags |= RSPAMD_EMAIL_ADDR_VALID;
+ }
+ break;
+ case 10:
+#line 50 "src/ragel/smtp_addr_parser.rl"
+ {
+ addr->flags |= RSPAMD_EMAIL_ADDR_BRACED;
+ }
+#line 46 "src/ragel/smtp_addr_parser.rl"
+ {
+ addr->flags |= RSPAMD_EMAIL_ADDR_VALID;
+ }
+ break;
+#line 804 "src/libmime/parsers/smtp_addr_parser.c"
+ }
+ }
+
+ _out: {}
+ }
+
+#line 75 "src/ragel/smtp_addr_parser.rl"
+
+ return cs;
+}