我最近学到了词法和语法分析,我在考虑动态变量。
假设你有这样的语言语法:
a = "1"
b%a# = 22
a = "2"
c%a# = 35最后内存应包含:a = "2"、b1 = 22、c2 = 35
但是我不清楚我该如何实现这个特性。
如果有人能分享这方面的知识,我将不胜感激。
发布于 2020-10-02 02:11:56
“动态”实际上意味着它发生在运行时,而不是在编译期间。因此,在词法分析过程中不会实现此功能。解析器(包括词法分析器)需要做的是将b%a#转换为运行时操作的表示形式“将字符串文字b与变量a的当前值连接起来,并从结果中进行动态变量引用”。
执行此操作时,运行库很可能会使用某种哈希表来按名称查找动态变量。
https://stackoverflow.com/questions/64159267
复制相似问题