将自己的实时自定义解析器添加到Python以生成和编译AST

时间:2017-10-24 02:16:02

标签: python parsing syntax abstract-syntax-tree

我的任务是添加switch语句并从Python中的函数,类,循环中删除强制冒号。 也许从Coffeescript中添加一些其他不错的功能。

具有自定义语法的.py文件必须使用python解释器导入,而不是使用自定义解析器进行解析(就像Coffeescript编译器一样)。

(我已经有过编写类似Python和#34的经验;对于已经创建自定义解析器的#34;语法,纠正了几个错误。但是读取所有代码并获得它需要很长时间。所以我决定先咨询建议。)

我通过互联网搜索了很长时间,找到了几个有用的答案,但仍然不知道如何更好地实现它。 一些来自我发现的:

我的想法:

  • 将Coffeescript解析器或Python解析器重写为纯Python
  • 使用导入挂钩通过我自己的解析器将文件解析为AST。
  • 继续导入(编译AST并将其导入模块)

(就像Coffeescript那样)

所以我有这样的问题:   - 是否有用Python编写的Python解析器(不是要重写所有Coffeescript解析器)?   - 也许是否有任何方法可以使ast.AST类自己的解析器不会将来自C的ast库重写为Python?   - 我怎样才能更好更容易地做到这一点? (除了修改Python的源代码外,所有内容都必须在运行时完成,并且与所有其他Python解释器完全兼容)   - 也许已经有一些库有助于修改Python的语法?

非常感谢你。 最好的问候,Serj。

0 个答案:

没有答案