首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有可能逆转语法吗?

有可能逆转语法吗?
EN

Stack Overflow用户
提问于 2015-01-13 10:30:53
回答 1查看 1.8K关注 0票数 4

对于给定的上下文无关语法,是否有可能获得“反向语法”?

我所说的“反向语法”是指一种语法,它接受由原语法语言中的颠倒词组成的语言。

例如,遵循语法

代码语言:javascript
复制
root = r1 [r2] *r3
r1   = "a"
r2   = "b"
r3   = "cd"

当倒转的时候是这样的:

代码语言:javascript
复制
root = *r3 [r2] r1
r1   = "a"
r2   = "b"
r3   = "dc"

我问这个问题的原因是我想要向后解析字符串(从结束到开始)。为此,我需要“反向语法”。

那么,是否有一种系统的方法来获得“反向语法”呢?

恢复每一条规则有效吗?在我看来是这样。但我希望这样的“引理”会在我没有发现任何东西的情况下在某个地方出现。所以也许它只出现在简单的例子中?

EN

回答 1

Stack Overflow用户

发布于 2015-01-13 15:19:13

第二版FWIW,Grune &Jacobs的解析技术。2008年(第68页)从自下而上和自上而下的解析和生产/还原二元性的角度,将语法的反转定义不同(将lhs转换为rhs,开始到终端,并添加一个新的开始)。

但是,无法理解为什么反向字符串不能与您所描述的相反语法进行解析。如果您需要的是一个未反转字符串的解析结果(假设您不能按正常顺序获得输入字符串,并且必须向后解析),那么您可能还需要反转解析结果,例如AST。

希望这能有所帮助。

P.S.“由反向词组成的语言”--看起来你是在暗示一种由反向字符串组成的语言;对于相反的词,你不需要逆转root的rhs。

语法是一棵树,它是一个图,所以你可能会发现树/图反转方法很有用。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27920001

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档