【发布时间】:2013-10-13 16:17:52
【问题描述】:
什么时候语法糖通常被识别为语法糖 - 解析或后续步骤? 或者什么时候做比较好?
假设表达式'array[index]' 是表达式'get_element(array,index)' 的语法糖。
如果在解析过程中被识别 - 那么 'array[index]' 的解析树与 'get_element(array,index)' 相同
如果在后续步骤中被识别 - 'array[index]' 的解析树不同于 'get_element(array,index)'
【问题讨论】:
-
我怀疑是否有比“它取决于”更好的答案,但在这种特殊情况下,我会在解析中这样做。在许多情况下,树变换更复杂,您应该稍后再做。
-
您是在说“如果在解析过程中执行它很简单 - 在解析过程中执行它”?
-
如果做起来很简单,它不会干扰生成良好的错误消息、调试信息或高级优化等...在极限情况下,您可以考虑将编译脱糖到汇编语言,并且某些语言有一次性编译器,它们在解析过程中逐步完成所有这些。所以,正如我所说,这取决于。