首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >下列解析方法的利弊?

下列解析方法的利弊?
EN

Software Engineering用户
提问于 2013-05-11 13:36:25
回答 1查看 505关注 0票数 0

我正在考虑做一个转换器/编译。我一直想知道以下将Pythonic代码解析为JavaScript等效的方法的优缺点。

  1. 使用ast.dump(ast.parse(code))的输出
  2. 处理代币。

我一直在权衡这些方法的利弊,但是我想不出任何主要的方法,因为我从未使用过它们。

那么,基本上有人能帮我告诉我,我上面提到的两种方法的利弊是什么吗?

另外,如果有什么更好的东西可以用于这个目的,通知我。

PS:我将使用Python编写转换器。

EN

回答 1

Software Engineering用户

回答已采纳

发布于 2013-05-11 14:06:44

标记的一个大缺点:您必须进行解析,这是不必要的,也是非常重要的。

ast.dump(ast.parse(code))的大骗局:毫无意义的愚蠢。ast.parse为您提供了一个非常好的AST,它是以适当的数据结构构造的。ast.dump为您提供了该数据结构的字符串表示,因此您必须解析它才能得到ast.parse已经提供的内容!

去掉ast.dump和使用来自ast.parse的AST,有两大优势:

  • 您根本不需要担心解析Python代码(这是相当复杂的)。
  • 对于任何这样规模的编译器-ish项目,AST实际上是您需要查看的最小值。虽然Python可能有一些您不需要的复杂性(例如,行信息或您不支持的ast特性),但我假设将Python简化为自定义AST比从令牌生成自定义AST更简单。
  • 一个小好处是:ast中已经内置了一个访问者类,因此您不必为轻松的AST遍历创建一个类(一个简单但有点乏味的任务)。

犯人?不是很多。选择ast,但不要害怕在此之后使用其他数据结构。

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

https://softwareengineering.stackexchange.com/questions/197766

复制
相关文章

相似问题

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