文法:
key: Program
     0 Program ::= . StatementList
key: StatementList
     1 StatementList ::= . LBrace Statement_0 RBrace
key: IfStatement
     2 IfStatement ::= . If ConditionPart PartIfStatement Else Statement
     3 IfStatement ::= . If ConditionPart Statement
key: PartIfStatement
     4 PartIfStatement ::= . If ConditionPart PartIfStatement Else PartIfStatement
     5 PartIfStatement ::= . NoIfStatement
key: ConditionPart
     6 ConditionPart ::= . LParen Condition RParen
key: Condition
     7 Condition ::= . ConditionalExpression LogicalOperator_ConditionalExpression_0
key: ConditionalExpression
     8 ConditionalExpression ::= . Expression Operator Expression
     9 ConditionalExpression ::= . Expression
key: Expression
    10 Expression ::= . Term AddLike_Term_0
key: Statement
    11 Statement ::= . IfStatement
    12 Statement ::= . NoIfStatement
key: NoIfStatement
    13 NoIfStatement ::= . AssignmentStatement Semicolon
    14 NoIfStatement ::= . VariableDefinition Semicolon
    15 NoIfStatement ::= . LBrace Statement_1 RBrace
    16 NoIfStatement ::= . ConstantDefinition Semicolon
    17 NoIfStatement ::= . Semicolon
key: AssignmentStatement
    18 AssignmentStatement ::= . Identifier Equal Expression
key: Term
    19 Term ::= . Factor MultiplyLike_Factor_0
key: ConstantDefinition
    20 ConstantDefinition ::= . Const VariableDefinition
key: VariableDefinition
    21 VariableDefinition ::= . Type Identifier__AssignmentStatement_0 Comma_Identifier__Comma_AssignmentStatement_0
key: Type
    22 Type ::= . Int
    23 Type ::= . Char
key: Factor
    24 Factor ::= . Identifier
    25 Factor ::= . Number
    26 Factor ::= . Character
    27 Factor ::= . LParen Expression RParen
key: AddLike
    28 AddLike ::= . Plus
    29 AddLike ::= . Minus
key: MultiplyLike
    30 MultiplyLike ::= . Multiply
    31 MultiplyLike ::= . Divide
    32 MultiplyLike ::= . Modulo
key: Number
    33 Number ::= . UnsignedNumber
    34 Number ::= . Minus UnsignedNumber
    35 Number ::= . Plus UnsignedNumber
key: Operator
    36 Operator ::= . EqualTo
    37 Operator ::= . NotEqualTo
    38 Operator ::= . LessThan
    39 Operator ::= . GreaterThan
    40 Operator ::= . LessThanOrEqual
    41 Operator ::= . GreaterThanOrEqual
key: LogicalOperator
    42 LogicalOperator ::= . And
    43 LogicalOperator ::= . Or
key: Statement_0
    44 Statement_0 ::= .
    45 Statement_0 ::= . Statement Statement_0
key: LogicalOperator_ConditionalExpression_0
    46 LogicalOperator_ConditionalExpression_0 ::= .
    47 LogicalOperator_ConditionalExpression_0 ::= . LogicalOperator ConditionalExpression LogicalOperator_ConditionalExpression_0
key: AddLike_Term_0
    48 AddLike_Term_0 ::= .
    49 AddLike_Term_0 ::= . AddLike Term AddLike_Term_0
key: Statement_1
    50 Statement_1 ::= .
    51 Statement_1 ::= . Statement Statement_1
key: MultiplyLike_Factor_0
    52 MultiplyLike_Factor_0 ::= .
    53 MultiplyLike_Factor_0 ::= . MultiplyLike Factor MultiplyLike_Factor_0
key: Identifier__AssignmentStatement_0
    54 Identifier__AssignmentStatement_0 ::= . Identifier
    55 Identifier__AssignmentStatement_0 ::= . AssignmentStatement
key: Comma_Identifier__Comma_AssignmentStatement_0
    56 Comma_Identifier__Comma_AssignmentStatement_0 ::= .
    57 Comma_Identifier__Comma_AssignmentStatement_0 ::= . Comma Identifier Comma_Identifier__Comma_AssignmentStatement_0
    58 Comma_Identifier__Comma_AssignmentStatement_0 ::= . Comma AssignmentStatement Comma_Identifier__Comma_AssignmentStatement_0