是否可以用Tokenizer计算操作码的数量?


Is it possible to count the number of opcodes with Tokenizer?

我想获得给定(用户定义的)函数的操作码总数。

就我的目的而言,我对知道具体的操作码是什么不感兴趣,只关心存在多少个操作码。

我知道有两个PECL扩展可以让我很容易地获得这些信息:

  • vld
  • parsekit

不幸的是,vld只转储整个脚本/文件的信息(我只是想要的功能)。另一方面,parsekit看起来很棒,但它(仍然)与PHP 5.4不兼容,这是一个遗憾。我知道我可以修补它,但我不想弄脏我的手,等待修复被包含在主包中。

所以我的问题是,是否有可能从源代码令牌推断操作码的数量?

如果是,我应该忽略/合并/计数哪些标记?

看到这个后,我现在100%确定可靠地提取操作码将是一个主要的头痛。

基本上,我必须在PHP中编写一个PHP解析器,这不是一个选项。