Ruby 解析器
我想知道是否可以仅使用解析 ruby 语言 确定性解析器根本没有回溯?
I want to know whether it is possible to parse ruby language using just
deterministic parser having no backtracking at all ??
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您始终可以利用现有的解释器来完成您想要的操作,而不必实际编写解析器。
例如: ruby2ruby
http://seattlerb.rubyforge.org/ruby2ruby/ ruby2ruby
Instead of actually having to write a parser, you can always leverage the existing interpreter to do what you want.
For example: ruby2ruby
http://seattlerb.rubyforge.org/ruby2ruby/ ruby2ruby
我不知道有关解析 Ruby 的任何具体细节,也不知道为什么你坚持“不回溯”。 我的猜测是,您认为 Ruby 语法不是 LALR(1),例如,不能由 YACC 或等效语法处理。
无论如何,如果问题是解析一种语法与上下文无关的语言,则可以使用 GLR 解析器来完成此操作,该解析器不会回溯:
http://en.wikipedia.org/wiki/GLR_parser
我用它来为许多实际语言构建生产解析器。
I don't know any specific details about parsing Ruby, or why you insist on "no backtracking". My guess is that you believe the Ruby grammar isn't LALR(1), e.g., isn't processable by YACC or equivalents.
Regardless, if the problem is to parse a language whose grammar is context-free, one can do this using a GLR parser, which does not backtrack:
http://en.wikipedia.org/wiki/GLR_parser
I've used this to build production parsers for many real languages.