文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
另一个子类--常量
谁会喜欢输入 pi
或者其他数学常量的值呢?我们从 Kernighan 和 Pike's hoc [K&P84]得到线索并且预定义一些常量给我们的计算器。下面的函数需要被调用在初始化识别器期间:
void initConst (void) {
static const struct Var constants [] = { /* like hoc */
{ &_Var, "PI", CONST, 3.14159265358979323846 },
...
0 };
const struct Var * vp;
for (vp = constants; vp -> _.name; ++ vp)
install(vp);
}
变量和常量几乎是一样的:都具有名称和值并且存活在符号表中;都返回他们的值在一个算数表达式的使用中;并且都不应当被删除,当我们删除一个算数表达式的时候。然而,我们不应当给常量赋值,所以我们需要同意一个新的标识符值 CONST
,识别器在 factor()
中接受就像 VAR
一样,但是不允许在 stmt()
的赋值的左边。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论