| 
 <VarDeclaration>   ::=            <Type>↑var_type,var_size<Idetifier>↑id_name 
                                             @varDeclaration↓var_type,var_size,id_name 
                                             @varAllocation↓var_size 
<Type>          ↑var_type,var_size     ::=       <ArrayType>↑var_type,var_size 
                                             |<BooleanType>↑var_type,var_size 
                                             |<IntegerType>↑var_type,var_size 
                                             |<Identifier>↑var_type,var_size 
  
<AssignmentStatement>                    ::= <Identifier>↑id_name,id_type 
                                                              “=” 
                                                              <Expression>↑exp_type,exp_value 
                                                              “;” 
                                                              @checkType↓id_type,exp_type 
                                                              @insertIntoTable↓id_name,id_type.exp_value 
<Expression>↑exp_type,exp_value                         ::= <AndExpression>↑exp_type,exp_value 
                                                              |<CompareExpression>↑exp_type,exp_value 
                                                              |<PlusExpression>↑exp_type,exp_value 
                                                              |<MinusExpression>↑exp_type,exp_value 
                                                              |<TimesExpression>↑exp_type,exp_value 
                                                              |<ArrayLookup>↑exp_type,exp_value 
                                                              |<ArrayLength>↑exp_type,exp_value 
                                                              |<MessageSend>↑exp_type,exp_value 
                                                              |<PrimaryExpression>↑exp_type,exp_value 
<PrimaryExpression>↑exp_type,exp_value       ::= <IntegerLiteral>↑exp_type,exp_value 
                                                              |<TrueLiteral>↑exp_type,exp_value 
                                                              |<FalseLiteral>↑exp_type,exp_value 
                                                              |<Identifier>↑exp_type,exp_value 
                                                              |<Expression>↑exp_type,exp_value 
                                                              |<ArrayAllocationExpression>↑exp_type,exp_value 
                                                              |<AllocationExpression>↑exp_type,exp_value 
                                                              |<NotExpression>↑exp_type,exp_value 
                                                              |<BracketExpression>↑exp_type,exp_value 
 (待续)
  
 
  |