phpdoc-parser/doc/grammars/type.ebnf
2017-10-27 21:37:29 +02:00

29 lines
384 B
EBNF

Type
::= Atomic (Union | Intersection)?
| Nullable
Union
::= ('|' Atomic)+
Intersection
::= ('&' Atomic)+
Nullable
::= '?' Identifier Generic?
Atomic
::= Identifier (Generic | Array)?
| '(' Type ')' Array?
Generic
::= '<' Type (',' Type)* '>'
Array
::= ('[' ']')+
Identifier
::= ('\'? Word)+
Word
::= [a-zA-Z_#x7F-#x10FFFF][0-9a-zA-Z_#x7F-#x10FFFF]*