首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ll(k)到ll(1)转换器的实现!

ll(k)到ll(1)转换器的实现!
EN

Stack Overflow用户
提问于 2010-06-10 13:24:27
回答 1查看 188关注 0票数 0

有没有实现ll(k)到ll(1)的转换器?

EN

回答 1

Stack Overflow用户

发布于 2010-06-10 21:50:53

一般来说,没有,因为有些语言有ll(k)文法,但没有ll(1)文法。所以除非我错了,不是所有的ll(k)都可以转换成ll(1)。然而,这并没有说明这样一种工具的可能性,它将在可以做到的情况下工作。

左因子分解的规则是:

代码语言:javascript
复制
A := A B |
     A C |
     D |
     E ;

变成:

代码语言:javascript
复制
A := (D | E) (B | C)*

或者如果您不允许()组和*

代码语言:javascript
复制
A := D A'
     E A'

A' := B A' |
      C A' |
      nul ;

技巧变成了如何处理操作规则的转换;如果您的语言支持它,lambdas可能会很方便。

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

https://stackoverflow.com/questions/3011830

复制
相关文章

相似问题

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