EBNF grammar definitions for PHP?
Asked Answered
S

4

19

I am wondering if someone has compiled an EBNF for PHP somewhere. I found both this site and this site. Both seem like they are incomplete, though. This question is very similar, but it's a year old. I would like to know if there has been any progress made.

Siliqua answered 19/1, 2012 at 18:29 Comment(0)
A
15

You may want to have a look at the yacc grammar PHP uses internally. I know, it's not EBNF, but maybe it's okay for your needs.

You may also want to look at the re2c lexer definition.

Assimilate answered 19/1, 2012 at 18:54 Comment(2)
The link to the grammar seems broken, but I think the file is also on GitHub.Wagers
This awkward moment when php language has a specification, while typescript does not...Warhol
A
8

The site from which I've taken the following links is in italian but we have:

Acarology answered 19/1, 2012 at 18:33 Comment(3)
Hi, Do you think the EBNF specification is complete?Seminar
It's a quote old post, I cannot say honestly. Don't think soAcarology
yeah very old indeed ;) Thanks for the responseSeminar
L
2

ANTLR 4 PHP grammar is also available: https://github.com/antlr/grammars-v4/tree/master/php.

Features

  • Heterogeneous code processing (islands):
    • HTML
    • Script
    • CSS
    • PHP
    • Heredoc
  • Alternative syntax.
  • Heredoc.
  • Interpolation strings (but not fully covered).
  • aspTags.
  • Improved lexer error processing with artificial string fragments (for example double closed quote at the end: <div attr='value'' />).

Testing

Grammar has been tested (parsing without errors) on the following projects:

Also, this parser has been tested on plenty number of PHP files from different CMS (~70000 files).

Lipscomb answered 2/5, 2018 at 22:17 Comment(0)
C
0

An ANTLR3 grammar is available her:

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

The above grammar isn't compatible with ANTLR4, the current ANTLR release.

Coffle answered 15/9, 2013 at 21:20 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.