Cool语言的词法结构

cool语言的词法单元有:整数、类型标识符、对象标识符、特殊语法符号、字符串、关键字和空白符

cool语言的整数:0-9组成的非空串

cool语言的标识符由数字、字母和下划线组成,类型标识符以大写字母开头,对象标识符以小写字母开头,还有两个特殊的标识符(但不是关键字)self和SELF_TYPE

cool语言的字符串:位于双引号""中间,换行用斜杠/,‘\c’代表字符'c',\b backspace,\t tab,\n newline,\f formfeed

cool语言的注释:--(相对于C语言的//)或(*…*)相对于C语言的/*…*/

cool语言的关键字有:: class, else, false, fi, if, in, inherits, isvoid, let, loop, pool, then, while,case, esac, new, of, not, true.

cool语言的空白符有:blank,\n,\r,\t,\f,\v

program ::= [[class; ]]+

class ::= class TYPE [inherits TYPE] { [[feature; ]]∗}
feature ::= ID( [ formal [[, formal]]∗] ) : TYPE { expr }
| ID : TYPE [ <- expr ]
formal ::= ID : TYPE
expr ::= ID <- expr
| expr[@TYPE].ID( [ expr [[,expr]]∗] )
| ID( [ expr [[,expr]]∗] )
| if expr then expr else expr fi
| while expr loop expr pool
| { [[expr; ]]+}
| let ID : TYPE [ <- expr ] [[,ID : TYPE [ <- expr ]]]∗in expr
| case expr of [[ID : TYPE => expr; ]]+esac
| new TYPE
| isvoid expr
| expr + expr
| expr − expr
| expr ∗ expr
| expr/expr
| ˜expr
| expr < expr
| expr <= expr
| expr = expr
| not expr
| (expr)
| ID
| integer
| string
| true
| false
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值