Changeset View
Changeset View
Standalone View
Standalone View
support/xhpast/parser.y
Show First 20 Lines • Show All 58 Lines • ▼ Show 20 Lines | |||||
// 7: expr '[' dim_offset ']' -- shift will default to first grammar | // 7: expr '[' dim_offset ']' -- shift will default to first grammar | ||||
%name-prefix "xhpast" | %name-prefix "xhpast" | ||||
%pure-parser | %pure-parser | ||||
%parse-param { void* yyscanner } | %parse-param { void* yyscanner } | ||||
%parse-param { xhpast::Node** root } | %parse-param { xhpast::Node** root } | ||||
%lex-param { void* yyscanner } | %lex-param { void* yyscanner } | ||||
%error-verbose | %error-verbose | ||||
%left T_INCLUDE T_INCLUDE_ONCE T_EVAL T_REQUIRE T_REQUIRE_ONCE | %precedence T_INCLUDE T_INCLUDE_ONCE | ||||
%left ',' | %token T_EVAL | ||||
%precedence T_REQUIRE T_REQUIRE_ONCE | |||||
%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 | ||||
%right T_PRINT | %precedence T_PRINT | ||||
%left '=' T_PLUS_EQUAL | %precedence '=' T_PLUS_EQUAL | ||||
T_MINUS_EQUAL | T_MINUS_EQUAL | ||||
T_MUL_EQUAL | T_MUL_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 '?' ':' | ||||
%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 | ||||
%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 '!' | %precedence '!' | ||||
%nonassoc T_INSTANCEOF | %precedence T_INSTANCEOF | ||||
%right '~' T_INC | %precedence '~' T_INC | ||||
T_DEC | %token T_DEC | ||||
T_INT_CAST | %precedence T_INT_CAST T_DOUBLE_CAST T_STRING_CAST | ||||
T_DOUBLE_CAST | %token T_UNICODE_CAST | ||||
T_STRING_CAST | %token T_BINARY_CAST | ||||
T_UNICODE_CAST | %precedence T_ARRAY_CAST T_OBJECT_CAST T_BOOL_CAST T_UNSET_CAST '@' | ||||
T_BINARY_CAST | %token '[' | ||||
T_ARRAY_CAST | %token T_NEW | ||||
T_OBJECT_CAST | %precedence T_CLONE | ||||
T_BOOL_CAST | |||||
T_UNSET_CAST | |||||
'@' | |||||
%right '[' | |||||
%nonassoc T_NEW T_CLONE | |||||
%token T_EXIT | %token T_EXIT | ||||
%token T_IF | %token T_IF | ||||
%left T_ELSEIF | %token T_ELSEIF | ||||
%left T_ELSE | %token T_ELSE | ||||
%left T_ENDIF | %token T_ENDIF | ||||
%token T_LNUMBER | %token T_LNUMBER | ||||
%token T_DNUMBER | %token T_DNUMBER | ||||
%token T_STRING | %token T_STRING | ||||
%token T_STRING_VARNAME /* unused in XHP: `foo` in `"$foo"` */ | %token T_STRING_VARNAME /* unused in XHP: `foo` in `"$foo"` */ | ||||
%token T_VARIABLE | %token T_VARIABLE | ||||
%token T_NUM_STRING /* unused in XHP: `0` in `"$foo[0]"` */ | %token T_NUM_STRING /* unused in XHP: `0` in `"$foo[0]"` */ | ||||
%token T_INLINE_HTML | %token T_INLINE_HTML | ||||
Show All 24 Lines | |||||
%token T_FUNCTION | %token T_FUNCTION | ||||
%token T_CONST | %token T_CONST | ||||
%token T_RETURN | %token T_RETURN | ||||
%token T_TRY | %token T_TRY | ||||
%token T_CATCH | %token T_CATCH | ||||
%token T_THROW | %token T_THROW | ||||
%token T_USE | %token T_USE | ||||
%token T_GLOBAL | %token T_GLOBAL | ||||
%right T_STATIC T_ABSTRACT T_FINAL T_PRIVATE T_PROTECTED T_PUBLIC | %token T_STATIC | ||||
%token T_ABSTRACT | |||||
%token T_FINAL | |||||
%token T_PRIVATE | |||||
%token T_PROTECTED | |||||
%token T_PUBLIC | |||||
%token T_VAR | %token T_VAR | ||||
%token T_UNSET | %token T_UNSET | ||||
%token T_ISSET | %token T_ISSET | ||||
%token T_EMPTY | %token T_EMPTY | ||||
%token T_HALT_COMPILER | %token T_HALT_COMPILER | ||||
%token T_CLASS | %token T_CLASS | ||||
%token T_INTERFACE | %token T_INTERFACE | ||||
%token T_EXTENDS | %token T_EXTENDS | ||||
▲ Show 20 Lines • Show All 2,557 Lines • Show Last 20 Lines |