Tiger语言参考手册(2)

接上

###2. 表达式
Tiger程序就是一个表达式。

1
expr:
    string-constant
    integer-constant
    nil
    lvalue 
    - expr
    expr binary-oprator expr 
    lvalue := expr
    id (expr-list_opt)
    (expr-seq_opt)
    type-id{field-list_opt}
    type-id [expr] of expr
    if expr then expr
    if expr then expr else expr
    while expr do expr
    for id := expr to expr do expr
    break
    let declaration-list in expr-seq_opt end

其中

1
expr-seq:
    expr
    expr-seq; expr
```

expr-list:
expr
expr-list, expr

1
```
field-list:
    id=expr
    field-list, id=expr

####2.1 Lvalues 左值

1
lvalue:
    id
    lvalue id
    lvalue [expr]

一个左值表示一个可以对其赋值的存储空间,其值可以是变量,参数, 记录域, 或者元素数组,其中方括号表示允许选择数字对应的数组元素,数组以从0开始到数组大小减一的连续整数作为索引。

To be Continued