0

我有一种情况,我的语言允许引用字符串,但有时我想将引用字符串的内容解释为语言结构。可以把它想象成 eval 函数。

因此,为了支持带引号的字符串,我需要一个词法分析器规则,它会覆盖我尝试使用语法规则评估引号中的内容(如果前缀为“eval”)。有没有办法在语法中处理这个?

4

2 回答 2

1

IMO 您不应该尝试直接通过词法分析器处理这种情况。
我想我会将字符串保留在词法分析器中,并在解析器的 eval 规则中添加一些代码,该规则在字符串内容上调用子解析器。

于 2013-01-12T00:01:49.197 回答
1

如果你想实现一个 eval 函数,你真的在​​寻找一个运行时解释器。

唯一需要“eval”函数的时候是当您想要构建内容以在运行时编译时。如果你在编译时有可用的内容,你可以解析它而不是一个字符串......

所以......将其保留为字符串,然后在运行时使用相同的解析器来解析/编译其内容。

于 2013-01-12T00:49:25.597 回答