有关解析函数语法的问题?

时间:2019-04-26 12:30:56

标签: c compiler-construction

如果if和else是语句,则a + b是表达式,那么在解析器中构建语法时,主要功能将被分类为什么?

在函数内部使用语句和表达式,所以这对我来说变得朦胧了。大声笑。

1 个答案:

答案 0 :(得分:3)

如果我们考虑最简单的主函数为空的情况:

int main(void)
{
}

这是一个功能定义。合适的功能定义是 declaration-specifiers声明符declaration-list复合声明。声明说明符可以是 type-specifier 。在此示例中,int是类型说明符。声明符可以是直接声明符,它可以是 identifier 。这就是main的样子。然后,在括号内有声明列表。在这里,我们将其细分为声明说明符和类型说明符void。最后,我们有一个 compound-statement ,它就是{}

https://www.cs.dartmouth.edu/~mckeeman/cs48/references/c.html

解析器不需要特别注意主函数。那是稍后发生的。这是需要查找主要功能的链接器,因此甚至在编译阶段之后。