Changeset View
Changeset View
Standalone View
Standalone View
support/xhpast/parser.y
Show First 20 Lines • Show All 69 Lines • ▼ Show 20 Lines | |||||
%token ',' | %token ',' | ||||
%left T_LOGICAL_OR | %left T_LOGICAL_OR | ||||
%left T_LOGICAL_XOR | %left T_LOGICAL_XOR | ||||
%left T_LOGICAL_AND | %left T_LOGICAL_AND | ||||
%precedence T_PRINT | %precedence T_PRINT | ||||
%precedence '=' T_PLUS_EQUAL | %precedence '=' T_PLUS_EQUAL | ||||
T_MINUS_EQUAL | T_MINUS_EQUAL | ||||
T_MUL_EQUAL | T_MUL_EQUAL | ||||
T_EXP_EQUAL | |||||
T_DIV_EQUAL | T_DIV_EQUAL | ||||
T_CONCAT_EQUAL | T_CONCAT_EQUAL | ||||
T_MOD_EQUAL | T_MOD_EQUAL | ||||
T_AND_EQUAL | T_AND_EQUAL | ||||
T_OR_EQUAL | T_OR_EQUAL | ||||
T_XOR_EQUAL | T_XOR_EQUAL | ||||
T_SL_EQUAL | T_SL_EQUAL | ||||
T_SR_EQUAL | T_SR_EQUAL | ||||
%left '?' ':' | %left '?' ':' | ||||
%right T_COALESCE | %right T_COALESCE | ||||
%left T_BOOLEAN_OR | %left T_BOOLEAN_OR | ||||
%left T_BOOLEAN_AND | %left T_BOOLEAN_AND | ||||
%left '|' | %left '|' | ||||
%left '^' | %left '^' | ||||
%left '&' | %left '&' | ||||
%nonassoc T_IS_EQUAL T_IS_NOT_EQUAL T_IS_IDENTICAL T_IS_NOT_IDENTICAL | %nonassoc T_IS_EQUAL T_IS_NOT_EQUAL T_IS_IDENTICAL T_IS_NOT_IDENTICAL | ||||
T_SPACESHIP | T_SPACESHIP | ||||
%nonassoc '<' T_IS_SMALLER_OR_EQUAL '>' T_IS_GREATER_OR_EQUAL | %nonassoc '<' T_IS_SMALLER_OR_EQUAL '>' T_IS_GREATER_OR_EQUAL | ||||
%left T_SL T_SR | %left T_SL T_SR | ||||
%left '+' '-' '.' | %left '+' '-' '.' | ||||
%left '*' '/' '%' | %left '*' '/' '%' | ||||
%right T_EXP | |||||
%precedence '!' | %precedence '!' | ||||
%precedence T_INSTANCEOF | %precedence T_INSTANCEOF | ||||
%precedence '~' T_INC | %precedence '~' T_INC | ||||
%token T_DEC | %token T_DEC | ||||
%precedence T_INT_CAST T_DOUBLE_CAST T_STRING_CAST | %precedence T_INT_CAST T_DOUBLE_CAST T_STRING_CAST | ||||
%token T_UNICODE_CAST | %token T_UNICODE_CAST | ||||
%token T_BINARY_CAST | %token T_BINARY_CAST | ||||
%precedence T_ARRAY_CAST T_OBJECT_CAST T_BOOL_CAST T_UNSET_CAST '@' | %precedence T_ARRAY_CAST T_OBJECT_CAST T_BOOL_CAST T_UNSET_CAST '@' | ||||
▲ Show 20 Lines • Show All 1,413 Lines • ▼ Show 20 Lines | | variable T_MINUS_EQUAL expr { | ||||
$$->appendChild($3); | $$->appendChild($3); | ||||
} | } | ||||
| variable T_MUL_EQUAL expr { | | variable T_MUL_EQUAL expr { | ||||
$$ = NNEW(n_BINARY_EXPRESSION); | $$ = NNEW(n_BINARY_EXPRESSION); | ||||
$$->appendChild($1); | $$->appendChild($1); | ||||
$$->appendChild(NTYPE($2, n_OPERATOR)); | $$->appendChild(NTYPE($2, n_OPERATOR)); | ||||
$$->appendChild($3); | $$->appendChild($3); | ||||
} | } | ||||
| variable T_EXP_EQUAL expr { | |||||
$$ = NNEW(n_BINARY_EXPRESSION); | |||||
$$->appendChild($1); | |||||
$$->appendChild(NTYPE($2, n_OPERATOR)); | |||||
$$->appendChild($3); | |||||
} | |||||
| variable T_DIV_EQUAL expr { | | variable T_DIV_EQUAL expr { | ||||
$$ = NNEW(n_BINARY_EXPRESSION); | $$ = NNEW(n_BINARY_EXPRESSION); | ||||
$$->appendChild($1); | $$->appendChild($1); | ||||
$$->appendChild(NTYPE($2, n_OPERATOR)); | $$->appendChild(NTYPE($2, n_OPERATOR)); | ||||
$$->appendChild($3); | $$->appendChild($3); | ||||
} | } | ||||
| variable T_CONCAT_EQUAL expr { | | variable T_CONCAT_EQUAL expr { | ||||
$$ = NNEW(n_BINARY_EXPRESSION); | $$ = NNEW(n_BINARY_EXPRESSION); | ||||
▲ Show 20 Lines • Show All 144 Lines • ▼ Show 20 Lines | | expr '-' expr { | ||||
$$->appendChild($3); | $$->appendChild($3); | ||||
} | } | ||||
| expr '*' expr { | | expr '*' expr { | ||||
$$ = NNEW(n_BINARY_EXPRESSION); | $$ = NNEW(n_BINARY_EXPRESSION); | ||||
$$->appendChild($1); | $$->appendChild($1); | ||||
$$->appendChild(NTYPE($2, n_OPERATOR)); | $$->appendChild(NTYPE($2, n_OPERATOR)); | ||||
$$->appendChild($3); | $$->appendChild($3); | ||||
} | } | ||||
| expr T_EXP expr { | |||||
$$ = NNEW(n_BINARY_EXPRESSION); | |||||
$$->appendChild($1); | |||||
$$->appendChild(NTYPE($2, n_OPERATOR)); | |||||
$$->appendChild($3); | |||||
} | |||||
| expr '/' expr { | | expr '/' expr { | ||||
$$ = NNEW(n_BINARY_EXPRESSION); | $$ = NNEW(n_BINARY_EXPRESSION); | ||||
$$->appendChild($1); | $$->appendChild($1); | ||||
$$->appendChild(NTYPE($2, n_OPERATOR)); | $$->appendChild(NTYPE($2, n_OPERATOR)); | ||||
$$->appendChild($3); | $$->appendChild($3); | ||||
} | } | ||||
| expr '%' expr { | | expr '%' expr { | ||||
$$ = NNEW(n_BINARY_EXPRESSION); | $$ = NNEW(n_BINARY_EXPRESSION); | ||||
▲ Show 20 Lines • Show All 507 Lines • ▼ Show 20 Lines | | static_scalar '.' static_scalar { | ||||
$$->appendChild($3); | $$->appendChild($3); | ||||
} | } | ||||
| static_scalar '*' static_scalar { | | static_scalar '*' static_scalar { | ||||
$$ = NNEW(n_BINARY_EXPRESSION); | $$ = NNEW(n_BINARY_EXPRESSION); | ||||
$$->appendChild($1); | $$->appendChild($1); | ||||
$$->appendChild(NTYPE($2, n_OPERATOR)); | $$->appendChild(NTYPE($2, n_OPERATOR)); | ||||
$$->appendChild($3); | $$->appendChild($3); | ||||
} | } | ||||
| static_scalar T_EXP static_scalar { | |||||
$$ = NNEW(n_BINARY_EXPRESSION); | |||||
$$->appendChild($1); | |||||
$$->appendChild(NTYPE($2, n_OPERATOR)); | |||||
$$->appendChild($3); | |||||
} | |||||
| static_scalar '/' static_scalar { | | static_scalar '/' static_scalar { | ||||
$$ = NNEW(n_BINARY_EXPRESSION); | $$ = NNEW(n_BINARY_EXPRESSION); | ||||
$$->appendChild($1); | $$->appendChild($1); | ||||
$$->appendChild(NTYPE($2, n_OPERATOR)); | $$->appendChild(NTYPE($2, n_OPERATOR)); | ||||
$$->appendChild($3); | $$->appendChild($3); | ||||
} | } | ||||
| static_scalar '%' static_scalar { | | static_scalar '%' static_scalar { | ||||
$$ = NNEW(n_BINARY_EXPRESSION); | $$ = NNEW(n_BINARY_EXPRESSION); | ||||
▲ Show 20 Lines • Show All 691 Lines • Show Last 20 Lines |