Parsing 我可以使用RPython的哪个前端来实现一种语言?

Parsing 我可以使用RPython的哪个前端来实现一种语言?,parsing,bison,lex,pypy,Parsing,Bison,Lex,Pypy,我到处寻找使用RPython工具链实现语言的例子,但到目前为止,我能找到的唯一一个例子是作者编写了一个简单的BF解释器。因为语法非常简单,他不需要使用解析器/词法生成器。是否有一个前端支持在RPython中开发语言 谢谢 我不知道有任何专门针对RPython的通用lexer或解析器生成器。一些带有Python输出的应用程序可能会工作,但我不敢打赌。但是,中有一组解析工具。它似乎很有用。OTOH,文档中有一个警告:据报道它仍在开发中,处于实验阶段,目前只用于Prolog解释器 或者,您可以手工编写

我到处寻找使用RPython工具链实现语言的例子,但到目前为止,我能找到的唯一一个例子是作者编写了一个简单的BF解释器。因为语法非常简单,他不需要使用解析器/词法生成器。是否有一个前端支持在RPython中开发语言


谢谢

我不知道有任何专门针对RPython的通用lexer或解析器生成器。一些带有Python输出的应用程序可能会工作,但我不敢打赌。但是,中有一组解析工具。它似乎很有用。OTOH,文档中有一个警告:据报道它仍在开发中,处于实验阶段,目前只用于Prolog解释器

或者,您可以手工编写前端。当然,lexer可能会让人恼火和不自然(您可能可以删除Python实现使用的DFA实用程序模块)。但是如果你知道正确的算法,解析器就是小菜一碟。我非常喜欢“自上而下的运算符优先解析器”,也称为“Pratt解析器”,它们相当简单(递归下降),但所有表达式解析问题(嵌套、优先级、关联性等)都轻而易举。令人沮丧的是,关于它们的信息非常少,但这几篇博文对我来说已经足够了:

  • 一个接一个(虽然不推荐,但它会将大量不相关的东西扔进解析器中,从而使其变得模糊)
  • 另一个在(使用Python)
  • 第三个是一个不幸的甚至不那么有名的家伙,他自己正在发展一门语言

亚历克斯·盖诺(Alex Gaynor)拥有大卫·比兹利(David Beazley)的出色表现。它非常好,他甚至还介绍了如何使用它在PyCon US 2013上实现一个解释器。

感谢您的投入。对于一个如此成功的项目来说,有兴趣帮助人们编写自己的语言,却没有一个简单的词法分析过程,这似乎很奇怪。我将跳转到rlib模块——因为我的目标范围很小,所以我可能不需要更多。非常感谢!像这样的东西行吗?我对构建语言也很感兴趣…@mamcx在不检查代码的情况下,我可以告诉您,任何Python库(解析或其他)都不太可能作为RPython运行,无需进行严重修改。首先尝试使用:Rply在源代码级别与Ply不兼容:需要一些lexergenerator,与Ply模板相比,将Ply.lex导入为lex…,并在使用python parser.py启动时调用一些RPython生成