【问题标题】:Is it possible to parse PHP using PEG?是否可以使用 PEG 解析 PHP?
【发布时间】:2009-12-09 00:02:36
【问题描述】:

问题很简单:是否可以使用 PEG 解析 PHP? 我想使用 PEG 解析器生成器来解析 PHP。请多多指教。谢谢!

【问题讨论】:

  • 我对 PEG 不是很熟悉,但我猜这是可能的。何不试一试(可能从简化版的 PHP 语法开始,看看能不能用)。
  • +1 感谢您的建议。我会试试的。

标签: php recursive-descent php-parser


【解决方案1】:

只要付出足够的努力,您就可以让大多数解析器技术解析大多数语言。

PEG 是否会不费吹灰之力地解析 PHP 是另一个问题。

AFAIK,PHP 本身使用 Bison (LALR),所以我认为 PEG 可能会处理 PHP 发行版提供的语法或类似的东西。如果你打算使用 PHP 发行版, 为什么不直接使用他们提供的解析器?

如果您不使用 PHP 发行版,解析 PHP 的问题可能会很困难,因为您必须从在线参考手册中猜测语言语法, (我去过那里,并做到了)坦率地说,这是我见过的定义语言的最糟糕的方法之一:它只是一堆例子。

【讨论】:

  • +1 嗨,艾拉。非常感谢您的推理。是的,你是对的,使用 PHP 分发的解析器是最好的选择。但是,我更喜欢 PHP 的简单性。我会先尝试,看看我能走多远。谢谢。
  • "...我更喜欢 PHP 的简单性..." 你的意思是 PEG?
  • 您是否还在尝试将 PHP 转换为 C++ (stackoverflow.com/questions/1090124/...)?如果是这样,您可能会考虑使用已经具有完整 PHP 解析器的工具,并且可以应用源到源模式规则来执行此类翻译。请参阅 PHP 前端
  • 你见过 PHP-Parser 吗?
  • @CMCDragonkai:没有链接,所以我不完全是你所指的。我知道 github.com/nikic/PHP-Parser 基于这个答案:stackoverflow.com/a/5834775/120163,但我不知道它到底有多完整。
猜你喜欢
  • 1970-01-01
  • 2010-09-09
  • 1970-01-01
  • 2016-02-29
  • 2014-06-19
  • 1970-01-01
  • 2021-10-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多