三、属性翻译文法
主类声明(MainClass)
<MainClass> ::= "class" <Identifier>↑<id_name1>
@fillMemory↓<id_name1>↑<id_address>
@fillTable↓<id_name1>,<id_address>
@fillTree↓<id_name1>
"{" "public" "static" "void" "main" "(" "String" "[" "]"
<Identifier>↑<id_name2>,<id_belongsTo>=<id_name1>,<id_type>=StringArrayType
@fillTable↓<id_name2>,<id_belongsTo>
"{" <PrintStatement> "}" "}"
类声明(ClassDeclaration)
<ClassDeclaration> ::= "class" <Identifier>↑<id_name>
@checkTable↓<id_name>
@fillMemory↓<id_name1>↑<id_address>
@fillTable↓<id_name>,<id_address>
@fillTree↓<node_name>=<id_name>
"{" ( VarDeclaration )* ( MethodDeclaration )* "}"
类继承声明(ClassExtendsDeclaration)
<ClassExtendsDeclaration> ::= "class" <Identifier>↑<id_name1>
@checkTable↓<id_name1>
"extends" <Identifier>↑<id_name2>
@checkTree↓<id_name2>
@fillMemory↓<id_name1>↑<id_address>
@fillTable↓<id_name1>,<id_name2>,<id_address>
@fillTree↓<child_name>=<id_name1>,<parent_name>=<id_name2>
"{" ( VarDeclaration )* ( MethodDeclaration )* "}"
变量声明(VarDeclaration)
<VarDeclaration> ::= <Type>↑<id_type>
<Idetifier>↑<id_name>,<id_belongsTo> “;”
@checkTable↓<id_name>,<id_belongsTo>
@fillMemory↓<id_name>↑<id_address>
@fillTable↓<id_name>,<id_type>,<id_belongsTo>,<address>
<Type>↑<id_type> ::= <ArrayType>↑<id_type>=ArrayType
|<BooleanType>↑<id_type>=BooleanType
|<IntegerType>↑<id_type>=IntegerType
<VarDeclaration> ::= <Type>↑<id_type>=ObjectType
@checkTable↓<id_type>
<Idetifier>↑<id_name>,<id_belongsTo> “;”
@checkTable↓<id_name>,<id_belongsTo>
@fillTable↓<id_name>,<id_type>,<id_belongsTo>
方法声明(MethodDeclaration)
<MethodDeclaration> ::= "public" <Type>↑<id_type>
<Identifier>↑<id_name>,<id_belongsTo>
@checkTable↓<id_name>,<id_belongsTo>
@fillMemory↓<id_name>↑<id_address>
@fillTable↓<id_name>,<id_type>,<id_belongsTo>,<id_address>
"(" ( <FormalParameterList> )? ")"
"{" ( <VarDeclaration> )* ( <Statement> )* "return"
<Expression>↑<exp_type>,<exp_value>
@checkType↓<id_type>,<exp_type> ";" "}"
<Type>↑<id_type> ::= <ArrayType>↑<id_type>=ArrayType
|<BooleanType>↑<id_type>=BooleanType
|<IntegerType>↑<id_type>=IntegerType
<FormalParameterList> ::= <FormalParameter>
( <FormalParameterRest> )*
<FormalParameter> ::= <Type>↑<id_type>
<Identifier>↑<id_name>,<id_belongsTo>
@checkTable↓<id_name>,<id_belongsTo>
@fillTable↓<id_name>,<id_type>
<MethodDeclaration> ::= "public" <Type>↑<id_type>=ObjectType
@checkTable↓<id_type>
<Identifier>↑<id_name>,<id_belongsTo>
@checkTable↓<id_name>,<id_belongsTo>
@fillMemory↓<id_name>↑<id_address>文章地址: http://www.qqread.com/java/2006/10/z227151.html
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
相关专题
- Java环境安装配置 (5571篇文章)
- Java编程开发手册 (8196篇文章)
- 125条常见的java面试笔试题大汇总 (23470次浏览)
- 十四种Java开发工具点评 (16011次浏览)
- JAVA中配置环境变量设置方法大全 (14586次浏览)
- 论Java外观模式 (1091次浏览)
- 英文打字练习 (718次浏览)
- Java编程十大典型问题详解(1) (637次浏览)
- Java路径问题最终解决方案 (598次浏览)
- Ruby,Java的劲敌 (582次浏览)
- Java学习从入门到精通(附FAQ)2 (579次浏览)
- JAVA高手解析XML配置文件的读取操作 (568次浏览)



