#include "syck.h"#include <stdio.h>

Go to the source code of this file.
Data Structures | |
| union | YYSTYPE |
| union | yyalloc |
Defines | |
| #define | YYBISON 1 |
| #define | YYSKELETON_NAME "yacc.c" |
| #define | YYPURE 1 |
| #define | YYLSP_NEEDED 0 |
| #define | yyparse syckparse |
| #define | yylex sycklex |
| #define | yyerror syckerror |
| #define | yylval sycklval |
| #define | yychar syckchar |
| #define | yydebug syckdebug |
| #define | yynerrs sycknerrs |
| #define | YAML_ANCHOR 258 |
| #define | YAML_ALIAS 259 |
| #define | YAML_TRANSFER 260 |
| #define | YAML_TAGURI 261 |
| #define | YAML_ITRANSFER 262 |
| #define | YAML_WORD 263 |
| #define | YAML_PLAIN 264 |
| #define | YAML_BLOCK 265 |
| #define | YAML_DOCSEP 266 |
| #define | YAML_IOPEN 267 |
| #define | YAML_INDENT 268 |
| #define | YAML_IEND 269 |
| #define | YYPARSE_PARAM parser |
| #define | YYLEX_PARAM parser |
| #define | NULL_NODE(parser, node) |
| #define | YYDEBUG 1 |
| #define | YYERROR_VERBOSE 0 |
| #define | yystype YYSTYPE |
| #define | YYSTYPE_IS_DECLARED 1 |
| #define | YYSTYPE_IS_TRIVIAL 1 |
| #define | YYFREE free |
| #define | YYMALLOC malloc |
| #define | YYSTACK_ALLOC YYMALLOC |
| #define | YYSTACK_FREE YYFREE |
| #define | YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) |
| #define | YYSTACK_BYTES(N) |
| #define | YYCOPY(To, From, Count) |
| #define | YYSTACK_RELOCATE(Stack) |
| #define | YYFINAL 52 |
| #define | YYLAST 396 |
| #define | YYNTOKENS 23 |
| #define | YYNNTS 29 |
| #define | YYNRULES 79 |
| #define | YYNSTATES 128 |
| #define | YYUNDEFTOK 2 |
| #define | YYMAXUTOK 269 |
| #define | YYTRANSLATE(YYX) ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) |
| #define | YYPACT_NINF -97 |
| #define | YYTABLE_NINF -1 |
| #define | YYSIZE_T unsigned int |
| #define | yyerrok (yyerrstatus = 0) |
| #define | yyclearin (yychar = YYEMPTY) |
| #define | YYEMPTY (-2) |
| #define | YYEOF 0 |
| #define | YYACCEPT goto yyacceptlab |
| #define | YYABORT goto yyabortlab |
| #define | YYERROR goto yyerrorlab |
| #define | YYFAIL goto yyerrlab |
| #define | YYRECOVERING() (!!yyerrstatus) |
| #define | YYBACKUP(Token, Value) |
| #define | YYTERROR 1 |
| #define | YYERRCODE 256 |
| #define | YYLLOC_DEFAULT(Current, Rhs, N) |
| #define | YYLEX yylex (&yylval, YYLEX_PARAM) |
| #define | YYFPRINTF fprintf |
| #define | YYDPRINTF(Args) |
| #define | YYDSYMPRINT(Args) |
| #define | YYDSYMPRINTF(Title, Token, Value, Location) |
| #define | YY_STACK_PRINT(Bottom, Top) |
| #define | YY_REDUCE_PRINT(Rule) |
| #define | YYINITDEPTH 200 |
| #define | YYMAXDEPTH 10000 |
| #define | YYPOPSTACK (yyvsp--, yyssp--) |
Typedefs | |
| typedef short int | yysigned_char |
Enumerations | |
| enum | yytokentype { YAML_ANCHOR = 258, YAML_ALIAS = 259, YAML_TRANSFER = 260, YAML_TAGURI = 261, YAML_ITRANSFER = 262, YAML_WORD = 263, YAML_PLAIN = 264, YAML_BLOCK = 265, YAML_DOCSEP = 266, YAML_IOPEN = 267, YAML_INDENT = 268, YAML_IEND = 269, YAML_ANCHOR = 258, YAML_ALIAS = 259, YAML_TRANSFER = 260, YAML_TAGURI = 261, YAML_ITRANSFER = 262, YAML_WORD = 263, YAML_PLAIN = 264, YAML_BLOCK = 265, YAML_DOCSEP = 266, YAML_IOPEN = 267, YAML_INDENT = 268, YAML_IEND = 269, keyword_class = 258, keyword_module = 259, keyword_def = 260, keyword_undef = 261, keyword_begin = 262, keyword_rescue = 263, keyword_ensure = 264, keyword_end = 265, keyword_if = 266, keyword_unless = 267, keyword_then = 268, keyword_elsif = 269, keyword_else = 270, keyword_case = 271, keyword_when = 272, keyword_while = 273, keyword_until = 274, keyword_for = 275, keyword_break = 276, keyword_next = 277, keyword_redo = 278, keyword_retry = 279, keyword_in = 280, keyword_do = 281, keyword_do_cond = 282, keyword_do_block = 283, keyword_do_LAMBDA = 284, keyword_return = 285, keyword_yield = 286, keyword_super = 287, keyword_self = 288, keyword_nil = 289, keyword_true = 290, keyword_false = 291, keyword_and = 292, keyword_or = 293, keyword_not = 294, modifier_if = 295, modifier_unless = 296, modifier_while = 297, modifier_until = 298, modifier_rescue = 299, keyword_alias = 300, keyword_defined = 301, keyword_BEGIN = 302, keyword_END = 303, keyword__LINE__ = 304, keyword__FILE__ = 305, keyword__ENCODING__ = 306, tIDENTIFIER = 307, tFID = 308, tGVAR = 309, tIVAR = 310, tCONSTANT = 311, tCVAR = 312, tLABEL = 313, tINTEGER = 314, tFLOAT = 315, tSTRING_CONTENT = 316, tCHAR = 317, tNTH_REF = 318, tBACK_REF = 319, tREGEXP_END = 320, tUPLUS = 321, tUMINUS = 322, tPOW = 323, tCMP = 324, tEQ = 325, tEQQ = 326, tNEQ = 327, tGEQ = 328, tLEQ = 329, tANDOP = 330, tOROP = 331, tMATCH = 332, tNMATCH = 333, tDOT2 = 334, tDOT3 = 335, tAREF = 336, tASET = 337, tLSHFT = 338, tRSHFT = 339, tCOLON2 = 340, tCOLON3 = 341, tOP_ASGN = 342, tASSOC = 343, tLPAREN = 344, tLPAREN_ARG = 345, tRPAREN = 346, tLBRACK = 347, tLBRACE = 348, tLBRACE_ARG = 349, tSTAR = 350, tAMPER = 351, tLAMBDA = 352, tSYMBEG = 353, tSTRING_BEG = 354, tXSTRING_BEG = 355, tREGEXP_BEG = 356, tWORDS_BEG = 357, tQWORDS_BEG = 358, tSTRING_DBEG = 359, tSTRING_DVAR = 360, tSTRING_END = 361, tLAMBEG = 362, tLOWEST = 363, tUMINUS_NUM = 364, idNULL = 365, idRespond_to = 366, idIFUNC = 367, idCFUNC = 368, id_core_set_method_alias = 369, id_core_set_variable_alias = 370, id_core_undef_method = 371, id_core_define_method = 372, id_core_define_singleton_method = 373, id_core_set_postexe = 374, tLAST_TOKEN = 375 } |
Functions | |
| void | apply_seq_in_map (SyckParser *parser, SyckNode *n) |
| static void | yy_stack_print (short int *bottom, short int *top) |
| static void | yy_reduce_print (int yyrule) |
| static void | yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep) |
| static void | yydestruct (int yytype, YYSTYPE *yyvaluep) |
| int | yyparse () |
| int | yyparse (void *YYPARSE_PARAM) |
Variables | |
| static const unsigned char | yytranslate [] |
| static const unsigned char | yyprhs [] |
| static const yysigned_char | yyrhs [] |
| static const unsigned short int | yyrline [] |
| static const char *const | yytname [] |
| static const unsigned char | yyr1 [] |
| static const unsigned char | yyr2 [] |
| static const unsigned char | yydefact [] |
| static const yysigned_char | yydefgoto [] |
| static const short int | yypact [] |
| static const yysigned_char | yypgoto [] |
| static const unsigned char | yytable [] |
| static const yysigned_char | yycheck [] |
| static const unsigned char | yystos [] |
| int | yydebug |
| #define NULL_NODE | ( | parser, | |||
| node | ) |
Value:
SyckNode *node = syck_new_str( "", scalar_plain ); \ if ( ((SyckParser *)parser)->taguri_expansion == 1 ) \ { \ node->type_id = syck_taguri( YAML_DOMAIN, "null", 4 ); \ } \ else \ { \ node->type_id = syck_strndup( "null", 4 ); \ }
Definition at line 106 of file gram.c.
Referenced by divide_look_behind_alternatives(), expand_case_fold_string(), expand_case_fold_string_alt(), get_head_value_node(), i_apply_case_fold(), node_new_call(), node_new_quantifier(), noname_disable_map(), onig_node_list_add(), onig_reduce_nested_quantifier(), parse_char_class(), parse_exp(), scan_env_add_mem_entry(), scan_env_clear(), setup_tree(), str_node_split_last_char(), and yyparse().
| #define YAML_ALIAS 259 |
Definition at line 80 of file gram.c.
Referenced by sycklex_bytecode_utf8(), and sycklex_yaml_utf8().
| #define YAML_ANCHOR 258 |
Definition at line 79 of file gram.c.
Referenced by sycklex_bytecode_utf8(), and sycklex_yaml_utf8().
| #define YAML_DOCSEP 266 |
Definition at line 87 of file gram.c.
Referenced by sycklex(), sycklex_bytecode_utf8(), and sycklex_yaml_utf8().
| #define YAML_IEND 269 |
| #define YAML_INDENT 268 |
Definition at line 89 of file gram.c.
Referenced by sycklex_bytecode_utf8(), and sycklex_yaml_utf8().
| #define YAML_IOPEN 267 |
Definition at line 88 of file gram.c.
Referenced by sycklex_bytecode_utf8(), and sycklex_yaml_utf8().
| #define YAML_ITRANSFER 262 |
Definition at line 83 of file gram.c.
Referenced by sycklex_bytecode_utf8(), and sycklex_yaml_utf8().
| #define YAML_PLAIN 264 |
Definition at line 85 of file gram.c.
Referenced by sycklex_bytecode_utf8(), and sycklex_yaml_utf8().
| #define YAML_TAGURI 261 |
| #define YAML_TRANSFER 260 |
Definition at line 81 of file gram.c.
Referenced by sycklex_bytecode_utf8(), and sycklex_yaml_utf8().
| #define YY_REDUCE_PRINT | ( | Rule | ) |
Value:
do { \ if (yydebug) \ yy_reduce_print (Rule); \ } while (0)
| #define YY_STACK_PRINT | ( | Bottom, | |||
| Top | ) |
Value:
do { \ if (yydebug) \ yy_stack_print ((Bottom), (Top)); \ } while (0)
| #define YYBACKUP | ( | Token, | |||
| Value | ) |
| #define YYCOPY | ( | To, | |||
| From, | |||||
| Count | ) |
| #define YYDPRINTF | ( | Args | ) |
| #define YYDSYMPRINT | ( | Args | ) |
| #define YYDSYMPRINTF | ( | Title, | |||
| Token, | |||||
| Value, | |||||
| Location | ) |
| #define YYLLOC_DEFAULT | ( | Current, | |||
| Rhs, | |||||
| N | ) |
| #define YYPOPSTACK (yyvsp--, yyssp--) |
| #define YYSTACK_BYTES | ( | N | ) |
Value:
((N) * (sizeof (short int) + sizeof (YYSTYPE)) \ + YYSTACK_GAP_MAXIMUM)
| #define YYSTACK_RELOCATE | ( | Stack | ) |
Value:
do \ { \ YYSIZE_T yynewbytes; \ YYCOPY (&yyptr->Stack, Stack, yysize); \ Stack = &yyptr->Stack; \ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ yyptr += yynewbytes / sizeof (*yyptr); \ } \ while (0)
| #define YYTRANSLATE | ( | YYX | ) | ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) |
| typedef short int yysigned_char |
| enum yytokentype |
| void apply_seq_in_map | ( | SyckParser * | parser, | |
| SyckNode * | n | |||
| ) |
Definition at line 1879 of file gram.c.
References map_value, NULL, _syck_node::shortcut, syck_hdlr_add_node(), syck_map_assign(), and syck_map_count().
Referenced by yyparse().
| static void yy_reduce_print | ( | int | yyrule | ) | [static] |
| static void yy_stack_print | ( | short int * | bottom, | |
| short int * | top | |||
| ) | [static] |
| static void yydestruct | ( | int | yytype, | |
| YYSTYPE * | yyvaluep | |||
| ) | [static] |
| int yyparse | ( | void * | YYPARSE_PARAM | ) |
Definition at line 931 of file gram.c.
References apply_seq_in_map(), name, YYSTYPE::nodeData, YYSTYPE::nodeId, NULL, NULL_NODE, _syck_node::shortcut, syck_add_transfer(), syck_alloc_map(), syck_alloc_seq(), syck_free_node(), syck_hdlr_add_anchor(), syck_hdlr_add_node(), syck_hdlr_get_anchor(), syck_map_update(), syck_new_map(), syck_new_seq(), syck_seq_add(), syck_strndup(), syck_taguri(), try_tag_implicit(), _syck_node::type_id, YAML_DOMAIN, YY_REDUCE_PRINT, YY_STACK_PRINT, YYABORT, YYACCEPT, yychar, yycheck, yydefact, yydefgoto, yydestruct(), YYDPRINTF, YYDSYMPRINTF, YYEMPTY, YYEOF, yyerror, YYFINAL, YYINITDEPTH, YYLAST, YYLEX, yylval, YYMAXDEPTH, yynerrs, YYNTOKENS, yypact, YYPACT_NINF, yypgoto, YYPOPSTACK, yyr1, yyr2, YYSIZE_T, YYSTACK_ALLOC, YYSTACK_BYTES, YYSTACK_FREE, YYSTACK_RELOCATE, yystos, yystpcpy(), yystrlen(), yytable, YYTABLE_NINF, YYTERROR, yytname, and YYTRANSLATE.
| int yyparse | ( | ) |
const yysigned_char yycheck[] [static] |
const unsigned char yydefact[] [static] |
Initial value:
{
4, 0, 30, 0, 0, 0, 31, 32, 34, 15,
20, 0, 0, 0, 2, 6, 0, 5, 7, 35,
36, 37, 38, 10, 29, 8, 26, 9, 27, 0,
0, 0, 0, 28, 15, 15, 15, 15, 12, 3,
13, 15, 52, 55, 0, 53, 56, 75, 78, 79,
0, 76, 1, 0, 0, 0, 21, 15, 0, 0,
65, 48, 0, 0, 0, 0, 69, 0, 0, 19,
17, 18, 15, 15, 15, 16, 15, 15, 15, 15,
0, 15, 51, 0, 74, 0, 23, 0, 47, 64,
0, 43, 60, 0, 45, 62, 41, 0, 24, 0,
11, 33, 22, 39, 40, 50, 57, 15, 58, 72,
14, 73, 54, 77, 65, 46, 63, 42, 59, 44,
61, 66, 25, 49, 67, 68, 70, 71
}
Definition at line 423 of file gram.c.
Referenced by yyparse().
const yysigned_char yydefgoto[] [static] |
const short int yypact[] [static] |
Initial value:
{
250, 318, -97, 318, 318, 374, -97, -97, -97, 335,
-97, 267, 232, 7, -97, -97, 192, -97, -97, -97,
-97, -97, -97, -97, -97, -97, -97, -97, -97, 374,
374, 374, 352, -97, 335, 335, 335, 384, -97, -97,
-97, 212, -97, 10, 0, -97, -97, -97, 10, -97,
-4, -97, -97, 284, 284, 284, -97, 335, 318, 30,
30, -97, -2, 36, -2, 16, -97, 36, 30, -97,
-97, -97, 384, 384, 384, -97, 363, 301, 301, 301,
-2, 335, -97, 318, -97, 318, -97, 158, -97, -97,
158, -97, -97, 158, -97, -97, -97, 24, -97, 30,
-97, -97, -97, -97, -97, 26, -97, 335, -97, 158,
-97, -97, -97, -97, -97, 24, 24, 24, 24, 24,
24, -97, -97, -97, -97, -97, -97, -97
}
Definition at line 451 of file gram.c.
Referenced by yyparse().
const yysigned_char yypgoto[] [static] |
const unsigned char yyprhs[] [static] |
Initial value:
{
0, 0, 3, 5, 8, 9, 11, 13, 15, 18,
21, 24, 28, 30, 32, 36, 37, 40, 43, 46,
49, 51, 54, 56, 58, 60, 63, 66, 69, 72,
75, 77, 79, 81, 85, 87, 89, 91, 93, 95,
99, 103, 106, 110, 113, 117, 120, 124, 127, 129,
133, 136, 140, 143, 145, 149, 151, 153, 157, 161,
165, 168, 172, 175, 179, 182, 184, 188, 190, 194,
196, 200, 204, 207, 211, 215, 218, 220, 224, 226
}
Definition at line 310 of file gram.c.
Referenced by yy_reduce_print().
const unsigned char yyr1[] [static] |
Initial value:
{
0, 23, 24, 24, 24, 25, 25, 26, 26, 26,
26, 26, 27, 27, 28, 28, 28, 28, 28, 28,
29, 29, 30, 31, 32, 32, 33, 33, 33, 33,
33, 33, 33, 33, 34, 34, 34, 34, 34, 35,
35, 36, 37, 37, 37, 37, 37, 37, 38, 38,
38, 39, 39, 40, 40, 41, 41, 42, 42, 43,
43, 43, 43, 43, 43, 44, 44, 45, 46, 47,
47, 47, 47, 48, 49, 49, 50, 50, 51, 51
}
Definition at line 395 of file gram.c.
Referenced by yy_reduce_print(), and yyparse().
const unsigned char yyr2[] [static] |
Initial value:
{
0, 2, 1, 2, 0, 1, 1, 1, 2, 2,
2, 3, 1, 1, 3, 0, 2, 2, 2, 2,
1, 2, 1, 1, 1, 2, 2, 2, 2, 2,
1, 1, 1, 3, 1, 1, 1, 1, 1, 3,
3, 2, 3, 2, 3, 2, 3, 2, 1, 3,
2, 3, 2, 1, 3, 1, 1, 3, 3, 3,
2, 3, 2, 3, 2, 1, 3, 1, 3, 1,
3, 3, 2, 3, 3, 2, 1, 3, 1, 1
}
Definition at line 408 of file gram.c.
Referenced by yyparse().
const yysigned_char yyrhs[] [static] |
Initial value:
{
24, 0, -1, 25, -1, 11, 27, -1, -1, 33,
-1, 26, -1, 34, -1, 5, 26, -1, 6, 26,
-1, 3, 26, -1, 29, 26, 32, -1, 25, -1,
28, -1, 29, 28, 30, -1, -1, 7, 28, -1,
5, 28, -1, 6, 28, -1, 3, 28, -1, 12,
-1, 29, 13, -1, 14, -1, 13, -1, 14, -1,
31, 32, -1, 5, 33, -1, 6, 33, -1, 7,
33, -1, 3, 33, -1, 4, -1, 8, -1, 9,
-1, 29, 33, 32, -1, 10, -1, 35, -1, 39,
-1, 42, -1, 49, -1, 29, 37, 30, -1, 29,
38, 30, -1, 15, 27, -1, 5, 31, 38, -1,
5, 37, -1, 6, 31, 38, -1, 6, 37, -1,
3, 31, 38, -1, 3, 37, -1, 36, -1, 38,
31, 36, -1, 38, 31, -1, 17, 40, 18, -1,
17, 18, -1, 41, -1, 40, 21, 41, -1, 25,
-1, 48, -1, 29, 43, 30, -1, 29, 47, 30,
-1, 5, 31, 47, -1, 5, 43, -1, 6, 31,
47, -1, 6, 43, -1, 3, 31, 47, -1, 3,
43, -1, 33, -1, 22, 25, 31, -1, 27, -1,
44, 16, 45, -1, 46, -1, 47, 31, 36, -1,
47, 31, 46, -1, 47, 31, -1, 25, 16, 27,
-1, 19, 50, 20, -1, 19, 20, -1, 51, -1,
50, 21, 51, -1, 25, -1, 48, -1
}
Definition at line 323 of file gram.c.
Referenced by yy_reduce_print().
const unsigned short int yyrline[] [static] |
Initial value:
{
0, 56, 56, 60, 65, 70, 71, 74, 75, 80,
85, 94, 100, 101, 104, 109, 113, 121, 126, 131,
145, 146, 149, 152, 155, 156, 164, 169, 174, 182,
186, 194, 207, 208, 218, 219, 220, 221, 222, 228,
232, 238, 244, 249, 254, 259, 264, 268, 274, 278,
283, 292, 296, 302, 306, 313, 314, 320, 325, 332,
337, 342, 347, 352, 356, 362, 363, 369, 379, 396,
397, 409, 417, 426, 434, 438, 444, 445, 454, 461
}
Definition at line 351 of file gram.c.
Referenced by yy_reduce_print().
const unsigned char yystos[] [static] |
Initial value:
{
0, 3, 4, 5, 6, 7, 8, 9, 10, 11,
12, 17, 19, 24, 25, 26, 29, 33, 34, 35,
39, 42, 49, 26, 33, 26, 33, 26, 33, 3,
5, 6, 29, 33, 3, 5, 6, 7, 25, 27,
28, 29, 18, 25, 40, 41, 48, 20, 25, 48,
50, 51, 0, 3, 5, 6, 13, 15, 22, 26,
33, 36, 37, 38, 43, 44, 46, 47, 33, 28,
28, 28, 3, 5, 6, 28, 29, 3, 5, 6,
28, 16, 18, 21, 20, 21, 13, 31, 37, 43,
31, 37, 43, 31, 37, 43, 27, 25, 14, 31,
32, 32, 14, 30, 30, 31, 30, 16, 30, 31,
30, 27, 41, 51, 33, 38, 47, 38, 47, 38,
47, 31, 32, 36, 27, 45, 36, 46
}
Definition at line 571 of file gram.c.
Referenced by yyparse().
const unsigned char yytable[] [static] |
const char* const yytname[] [static] |
Initial value:
{
"$end", "error", "$undefined", "YAML_ANCHOR", "YAML_ALIAS",
"YAML_TRANSFER", "YAML_TAGURI", "YAML_ITRANSFER", "YAML_WORD",
"YAML_PLAIN", "YAML_BLOCK", "YAML_DOCSEP", "YAML_IOPEN", "YAML_INDENT",
"YAML_IEND", "'-'", "':'", "'['", "']'", "'{'", "'}'", "','", "'?'",
"$accept", "doc", "atom", "ind_rep", "atom_or_empty", "empty",
"indent_open", "indent_end", "indent_sep", "indent_flex_end", "word_rep",
"struct_rep", "implicit_seq", "basic_seq", "top_imp_seq",
"in_implicit_seq", "inline_seq", "in_inline_seq", "inline_seq_atom",
"implicit_map", "top_imp_map", "complex_key", "complex_value",
"complex_mapping", "in_implicit_map", "basic_mapping", "inline_map",
"in_inline_map", "inline_map_atom", 0
}
Definition at line 367 of file gram.c.
Referenced by yy_reduce_print(), yyparse(), and yysymprint().
const unsigned char yytranslate[] [static] |
Initial value:
{
0, 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, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 21, 15, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 16, 2,
2, 2, 2, 22, 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, 17, 2, 18, 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, 19, 2, 20, 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, 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, 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, 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, 2, 3, 4,
5, 6, 7, 8, 9, 10, 11, 12, 13, 14
}