文法: 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 ::= . Identifier Identifier__AssignmentStatement_0 56 Identifier__AssignmentStatement_0 ::= . AssignmentStatement 57 Identifier__AssignmentStatement_0 ::= . AssignmentStatement Identifier__AssignmentStatement_0 key: Comma_Identifier__Comma_AssignmentStatement_0 58 Comma_Identifier__Comma_AssignmentStatement_0 ::= . 59 Comma_Identifier__Comma_AssignmentStatement_0 ::= . Comma Identifier Comma_Identifier__Comma_AssignmentStatement_0 60 Comma_Identifier__Comma_AssignmentStatement_0 ::= . Comma AssignmentStatement Comma_Identifier__Comma_AssignmentStatement_0