Compiler construction 我应该如何命名没有大括号的表达式?

Compiler construction 我应该如何命名没有大括号的表达式?,compiler-construction,Compiler Construction,我用野牛为我的语言添加了更多内容,在规则中我有点困惑 如何命名具有{}的表达式,例如类、函数、开关等,而不是在其末尾需要分号的表达式(Int i;) 我把它们当作typeExprWO和typeExpr,但我把它们混淆了,在某些地方它们的意思是不需要分号(aka有大括号),在其他地方它们的意思是不需要大括号(所以它需要分号) 我需要一个更好的名字。想法?通常,这将是一个声明或声明 语句通常是没有有意义的返回值或丢弃的返回值的表达式 语句序列通常称为块(或块语句),但在声明(包括方法声明)的情况下,

我用野牛为我的语言添加了更多内容,在规则中我有点困惑

如何命名具有{}的表达式,例如类、函数、开关等,而不是在其末尾需要分号的表达式(Int i;)

我把它们当作typeExprWO和typeExpr,但我把它们混淆了,在某些地方它们的意思是不需要分号(aka有大括号),在其他地方它们的意思是不需要大括号(所以它需要分号)


我需要一个更好的名字。想法?

通常,这将是一个
声明
声明

语句通常是没有有意义的返回值或丢弃的返回值的表达式


语句序列通常称为
(或
块语句
),但在声明(包括方法声明)的情况下,名称
body
可能是更好的选择。

那么body VS statement<代码>开关{}是一个主体,
inta
是一个语句。我看得出来。也许我会使用它+1
inta
作为一个声明(我会假设一个可选的初始化语句)<代码>开关{…}也是一个语句。然而,
内部可能是
开关体
大小写子句
。请看一下C规范,最后(在语法上)它们几乎有你能想到的所有名称:)我看了规范,它们似乎使用了许多结尾。语句似乎是块,不需要分号,其他几乎所有内容(声明、初始值设定项等)都是表达式/需要分号。我将坚持使用body和expr使其更简单。我不需要像continue语句那样的单一规则:continue但我有一半的规则,很难相信看到他们有多少单一的规则