首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解析Perl 5并检查语法树

解析Perl 5并检查语法树
EN

Stack Overflow用户
提问于 2018-03-13 17:02:38
回答 1查看 931关注 0票数 10

我已经阅读并了解到,如果没有Perl解释器,就不可能解析Perl 5代码,因为有BEGIN块。

我知道有一些独立的解析器,比如PPI (由Perl::Critic使用),它们近似于解析初始文档。

但是,我找不到任何关于输出某种抽象语法树的过程的引用,也找不到与Perl在执行阶段使用的树类似的任何内部结构。

比较解析和执行阶段的内部表示以查看代码的展开和更改会很有趣。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-14 16:40:49

因此,基本上有几种选择:

  1. 对于静态分析,请使用PPI,它的缺点是不处理BEGIN块上的Perl代码。这类似于“解析”。
  2. 对于动态分析,使用B:简明获取用于执行的内部操作码。这类似于“编译”(对Perl )。
  3. 两者的结合是使用B::Deparse获取内部表示的Perl代码(而不是VM操作码),然后将其发送到PPI以构建树。

编辑:根据评论澄清第3点。仍然不知道有一个命令可以展开导入并输出一个大文件(以便解析语法扩展名)。

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

https://stackoverflow.com/questions/49261862

复制
相关文章

相似问题

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