ABCDEFGHIJKLMNOPQRSTUVWXYZ
1
keyword_integerkeyword_booleankeyword_ifkeyword_thenkeyword_elsekeyword_notkeyword_andkeyword_orkeyword_functionkeyword_printidentifierintegerbooleanleft_parenright_parencommacolonplusminustimesdivideless_thanequalend_of_file
2
programdefinition_list make_definition_list make_programdefinition_list make_definition_list make_program
3
definition_listdefinition definition_listNone
4
definitionkeyword_function identifier make_identifier left_paren parameter_list make_parameter_list right_paren colon type body make_definition
5
parameter_listformal_parametersNone
6
formal_parametersid_with_type formal_parameters_rest
7
formal_parameters_restNonecomma id_with_type formal_parameters_rest
8
id_with_typeidentifier make_identifier colon type make_id_with_type
9
typekeyword_integer make_integer_typekeyword_boolean make_boolean_type
10
bodyexpression make_bodyexpression make_bodyprint_expression bodyexpression make_bodyexpression make_bodyexpression make_bodyexpression make_bodyexpression make_body
11
print_expressionkeyword_print make_identifier left_paren expression make_argument make_argument_list right_paren make_function_call_expression
12
expressionsimple_expression expression_restsimple_expression expression_restsimple_expression expression_restsimple_expression expression_restsimple_expression expression_restsimple_expression expression_restsimple_expression expression_rest
13
expression_restNoneNoneNoneNoneNoneless_than simple_expression make_less_than_expression expression_restequal simple_expression make_equals_expression expression_restNone
14
simple_expressionterm simple_expression_restterm simple_expression_restterm simple_expression_restterm simple_expression_restterm simple_expression_restterm simple_expression_restterm simple_expression_rest
15
simple_expression_restNoneNonekeyword_or term make_or_expression simple_expression_restNoneNoneNoneplus term make_plus_expression simple_expression_restminus term make_minus_expression simple_expression_restNoneNoneNone
16
termfactor term_restfactor term_restfactor term_restfactor term_restfactor term_restfactor term_restfactor term_rest
17
term_restNoneNonekeyword_and factor make_and_expression term_restNoneNoneNoneNoneNoneNonetimes factor make_times_expression term_restdivide factor make_divide_expression term_restNoneNoneNone
18
factorkeyword_if expression keyword_then expression keyword_else expression make_if_expressionkeyword_not factor make_not_expressionidentifier make_identifier factor_restliteralliteralleft_paren expression right_parenminus factor make_unary_minus_expression
19
factor_restNoneNoneNoneNoneNoneleft_paren argument_list make_argument_list right_paren make_function_call_expressionNoneNoneNoneNoneNoneNoneNoneNoneNone
20
argument_listformal_argumentsformal_argumentsformal_argumentsformal_argumentsformal_argumentsformal_argumentsNoneformal_arguments
21
formal_argumentsexpression make_argument formal_arguments_restexpression make_argument formal_arguments_restexpression make_argument formal_arguments_restexpression make_argument formal_arguments_restexpression make_argument formal_arguments_restexpression make_argument formal_arguments_restexpression make_argument formal_arguments_rest
22
formal_arguments_restNonecomma expression make_argument formal_arguments_rest
23
literalinteger make_integer_literalboolean make_boolean_literal
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100