generated from ghostwriter/wip
-
-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
It's incomplete, invalid, outdated, and gathering dust in my secret gists.github.com/ghostwriter
program ::= statement_list
statement_list ::= statement | statement_list statement
statement ::= expression_statement | if_statement | while_statement | for_statement | foreach_statement | switch_statement | break_statement | continue_statement | return_statement | throw_statement | try_statement | function_declaration | class_declaration | interface_declaration | trait_declaration | namespace_declaration | use_declaration
expression_statement ::= expression ';'
if_statement ::= 'if' '(' expression ')' statement ('else' statement)?
while_statement ::= 'while' '(' expression ')' statement
for_statement ::= 'for' '(' (expression_statement | variable_declaration)? ';' expression? ';' expression_statement? ')' statement
foreach_statement ::= 'foreach' '(' expression 'as' variable ')' statement
switch_statement ::= 'switch' '(' expression ')' '{' case_list '}'
case_list ::= case_item | case_list case_item
case_item ::= 'case' expression ':' statement_list | 'default' ':' statement_list
break_statement ::= 'break' ';'
continue_statement ::= 'continue' ';'
return_statement ::= 'return' expression? ';'
throw_statement ::= 'throw' expression ';'
try_statement ::= 'try' statement ('catch' '(' variable ')' statement)?
function_declaration ::= 'function' identifier '(' parameter_list? ')' '{' statement_list '}'
class_declaration ::= 'class' identifier ('extends' identifier)? ('implements' identifier_list)? '{' class_member_list '}'
interface_declaration ::= 'interface' identifier '{' interface_member_list '}'
trait_declaration ::= 'trait' identifier '{' trait_member_list '}'
namespace_declaration ::= 'namespace' namespace_name '{' statement_list '}'
use_declaration ::= 'use' namespace_name ('as' identifier)? ';'
variable_declaration ::= variable '=' expression
parameter_list ::= parameter | parameter_list ',' parameter
parameter ::= variable ('=' expression)?
identifier_list ::= identifier | identifier_list ',' identifier
class_member_list ::= class_member | class_member_list class_member
class_member ::= variable_declaration | function_declaration
interface_member_list ::= interface_member | interface_member_list interface_member
interface_member ::= function_declaration
trait_member_list ::= trait_member | trait_member_list trait_member
trait_member ::= variable_declaration | function_declaration
namespace_name ::= identifier | namespace_name '\' identifier
variable ::= '$' identifier
identifier ::= [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*Metadata
Metadata
Assignees
Labels
No labels