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.
EBNF grammar definitions for PHP?
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.
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
The site from which I've taken the following links is in italian but we have:
Hi, Do you think the EBNF specification is complete? –
Seminar
It's a quote old post, I cannot say honestly. Don't think so –
Acarology
yeah very old indeed ;) Thanks for the response –
Seminar
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).
An ANTLR3 grammar is available her:
http://code.google.com/p/phpparser/
The above grammar isn't compatible with ANTLR4, the current ANTLR release.
© 2022 - 2024 — McMap. All rights reserved.