首 页
|
网页模板
|
教程
|
源码下载
|
书籍下载
|
图片素材
|
字体
|
JAVA特效
|
FLASH源码
|
软件
|
矢量
|
论坛
|
其它
|
设为主页
加入收藏
联系站长
平面设计
|
网页制作
|
程序编写
|
数 据 库
|
媒体动画
|
网络冲浪
|
服务器相关
|
当前在线 人
广告:
P4服务器电信机房6999/年即送产权
|
疾风下载
Mini Java编译器(二)
2005-3-23 7:14:44 作者:模板天下收集整理 来源:未知 网友评论 0 条
论坛
二、Mini Java的文法
BNF
Goal
::=
MainClass ( TypeDeclaration )*
MainClass
::=
"class" Identifier "{" "public" "static" "void" "main" "(" "String" "[" "]" Identifier ")" "{" PrintStatement "}" "}"
TypeDeclaration
::=
ClassDeclaration
|
ClassExtendsDeclaration
ClassDeclaration
::=
"class" Identifier "{" ( VarDeclaration )* ( MethodDeclaration )* "}"
ClassExtendsDeclaration
::=
"class" Identifier "extends" Identifier "{" ( VarDeclaration )* ( MethodDeclaration )* "}"
VarDeclaration
::=
Type Identifier ";"
MethodDeclaration
::=
"public" Type Identifier "(" ( FormalParameterList )? ")" "{" ( VarDeclaration )* ( Statement )* "return" Expression ";" "}"
FormalParameterList
::=
FormalParameter ( FormalParameterRest )*
FormalParameter
::=
Type Identifier
FormalParameterRest
::=
"," FormalParameter
Type
::=
ArrayType
|
BooleanType
|
IntegerType
|
Identifier
ArrayType
::=
"int" "[" "]"
BooleanType
::=
"boolean"
IntegerType
::=
"int"
Statement
::=
Block
|
AssignmentStatement
|
ArrayAssignmentStatement
|
IfStatement
|
WhileStatement
|
PrintStatement
Block
::=
"{" ( Statement )* "}"
AssignmentStatement
::=
Identifier "=" Expression ";"
ArrayAssignmentStatement
::=
Identifier "[" Expression "]" "=" Expression ";"
IfStatement
::=
"if" "(" Expression ")" Statement "else" Statement
WhileStatement
::=
"while" "(" Expression ")" Statement
PrintStatement
::=
"System.out.println" "(" Expression ")" ";"
Expression
::=
AndExpression
|
CompareExpression
|
PlusExpression
|
MinusExpression
|
TimesExpression
|
ArrayLookup
|
ArrayLength
|
MessageSend
|
PrimaryExpression
AndExpression
::=
PrimaryExpression "&&" PrimaryExpression
CompareExpression
::=
PrimaryExpression "<" PrimaryExpression
PlusExpression
::=
PrimaryExpression "+" PrimaryExpression
MinusExpression
::=
PrimaryExpression "-" PrimaryExpression
TimesExpression
::=
PrimaryExpression "*" PrimaryExpression
ArrayLookup
::=
PrimaryExpression "[" PrimaryExpression "]"
ArrayLength
::=
PrimaryExpression "." "length"
MessageSend
::=
PrimaryExpression "." Identifier "(" ( ExpressionList )? ")"
ExpressionList
::=
Expression ( ExpressionRest )*
ExpressionRest
::=
"," Expression
PrimaryExpression
::=
IntegerLiteral
|
TrueLiteral
|
FalseLiteral
|
Identifier
|
ThisExpression
|
ArrayAllocationExpression
|
AllocationExpression
|
NotExpression
|
BracketExpression
IntegerLiteral
::=
TrueLiteral
::=
"true"
FalseLiteral
::=
"false"
Identifier
::=
ThisExpression
::=
"this"
ArrayAllocationExpression
::=
"new" "int" "[" Expression "]"
AllocationExpression
::=
"new" Identifier "(" ")"
NotExpression
::=
"!" Expression
BracketExpression
::=
"(" Expression ")"
共分1页
[1]
>>
相关文章
关于网站 | 客服中心 | 服务条款 | 友情链接 | 广告联系 | 本站历程 | 网站导航
吉ICP备05000107号