Mini Java编译器(三)——属性翻译文法

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

三、属性翻译文法

变量声明(declaration)

<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

变量赋值(assignment)

<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

(待续)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有  導航