Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一种情况,我的语言允许引用字符串,但有时我想将引用字符串的内容解释为语言结构。可以把它想象成 eval 函数。
因此,为了支持带引号的字符串,我需要一个词法分析器规则,它会覆盖我尝试使用语法规则评估引号中的内容(如果前缀为“eval”)。有没有办法在语法中处理这个?
IMO 您不应该尝试直接通过词法分析器处理这种情况。 我想我会将字符串保留在词法分析器中,并在解析器的 eval 规则中添加一些代码,该规则在字符串内容上调用子解析器。
如果你想实现一个 eval 函数,你真的在寻找一个运行时解释器。
唯一需要“eval”函数的时候是当您想要构建内容以在运行时编译时。如果你在编译时有可用的内容,你可以解析它而不是一个字符串......
所以......将其保留为字符串,然后在运行时使用相同的解析器来解析/编译其内容。