【问题标题】:EBNF grammar definitions for PHP?PHP的EBNF语法定义?
【发布时间】:2012-01-19 18:29:25
【问题描述】:

我想知道是否有人在某处为 PHP 编译了 EBNF。我找到了this sitethis site。不过,两者似乎都不完整。 This question is very similar,但已经一岁了。我想知道是否有任何进展。

【问题讨论】:

    标签: php grammar ebnf


    【解决方案1】:

    您可能想看看yacc grammar PHP uses internally。我知道,这不是 EBNF,但也许可以满足您的需求。

    您可能还想查看re2c lexer definition

    【讨论】:

    • 语法链接似乎已损坏,但我认为该文件也在GitHub
    • 这个尴尬的时刻,php 语言有规范,而 typescript does not...
    【解决方案2】:

    我从中获取以下链接的site 是意大利语,但我们有:

    【讨论】:

    • 您好,您认为 EBNF 规范完整吗?
    • 这是一个引用旧帖子,我不能诚实地说。不这么认为
    • 是的,确实很老 ;) 感谢您的回复
    【解决方案3】:

    ANTLR 4 PHP 语法也可用:https://github.com/antlr/grammars-v4/tree/master/php.

    特点

    • 异构代码处理(islands):
      • HTML
      • 脚本
      • CSS
      • PHP
      • 赫雷多克
    • Alternative syntax
    • Heredoc
    • Interpolation strings(但未完全覆盖)。
    • aspTags.
    • 使用人工字符串片段改进了词法分析器错误处理 (例如末尾的双引号:<div attr='value'' />)。

    测试

    语法已在以下项目中经过测试(解析无误):

    此外,该解析器已在来自不同 CMS 的大量 PHP 文件(约 70000 个文件)上进行了测试。

    【讨论】:

      【解决方案4】:

      她可以使用 ANTLR3 语法:

        http://code.google.com/p/phpparser/
      

      上述语法与当前的 ANTLR 版本 ANTLR4 不兼容。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多