Chris@0: /* We currently rely on the token ID mapping to be the same between PHP 5 and PHP 7 - so the same lexer can be used for Chris@0: * both. This is enforced by sharing this token file. */ Chris@0: Chris@0: %left T_INCLUDE T_INCLUDE_ONCE T_EVAL T_REQUIRE T_REQUIRE_ONCE Chris@0: %left ',' Chris@0: %left T_LOGICAL_OR Chris@0: %left T_LOGICAL_XOR Chris@0: %left T_LOGICAL_AND Chris@0: %right T_PRINT Chris@0: %right T_YIELD Chris@0: %right T_DOUBLE_ARROW Chris@0: %right T_YIELD_FROM Chris@17: %left '=' T_PLUS_EQUAL T_MINUS_EQUAL T_MUL_EQUAL T_DIV_EQUAL T_CONCAT_EQUAL T_MOD_EQUAL T_AND_EQUAL T_OR_EQUAL T_XOR_EQUAL T_SL_EQUAL T_SR_EQUAL T_POW_EQUAL T_COALESCE_EQUAL Chris@0: %left '?' ':' Chris@0: %right T_COALESCE Chris@0: %left T_BOOLEAN_OR Chris@0: %left T_BOOLEAN_AND Chris@0: %left '|' Chris@0: %left '^' Chris@0: %left '&' Chris@0: %nonassoc T_IS_EQUAL T_IS_NOT_EQUAL T_IS_IDENTICAL T_IS_NOT_IDENTICAL T_SPACESHIP Chris@0: %nonassoc '<' T_IS_SMALLER_OR_EQUAL '>' T_IS_GREATER_OR_EQUAL Chris@0: %left T_SL T_SR Chris@0: %left '+' '-' '.' Chris@0: %left '*' '/' '%' Chris@0: %right '!' Chris@0: %nonassoc T_INSTANCEOF Chris@0: %right '~' T_INC T_DEC T_INT_CAST T_DOUBLE_CAST T_STRING_CAST T_ARRAY_CAST T_OBJECT_CAST T_BOOL_CAST T_UNSET_CAST '@' Chris@0: %right T_POW Chris@0: %right '[' Chris@0: %nonassoc T_NEW T_CLONE Chris@0: %token T_EXIT Chris@0: %token T_IF Chris@0: %left T_ELSEIF Chris@0: %left T_ELSE Chris@0: %left T_ENDIF Chris@0: %token T_LNUMBER Chris@0: %token T_DNUMBER Chris@0: %token T_STRING Chris@0: %token T_STRING_VARNAME Chris@0: %token T_VARIABLE Chris@0: %token T_NUM_STRING Chris@0: %token T_INLINE_HTML Chris@0: %token T_CHARACTER Chris@0: %token T_BAD_CHARACTER Chris@0: %token T_ENCAPSED_AND_WHITESPACE Chris@0: %token T_CONSTANT_ENCAPSED_STRING Chris@0: %token T_ECHO Chris@0: %token T_DO Chris@0: %token T_WHILE Chris@0: %token T_ENDWHILE Chris@0: %token T_FOR Chris@0: %token T_ENDFOR Chris@0: %token T_FOREACH Chris@0: %token T_ENDFOREACH Chris@0: %token T_DECLARE Chris@0: %token T_ENDDECLARE Chris@0: %token T_AS Chris@0: %token T_SWITCH Chris@0: %token T_ENDSWITCH Chris@0: %token T_CASE Chris@0: %token T_DEFAULT Chris@0: %token T_BREAK Chris@0: %token T_CONTINUE Chris@0: %token T_GOTO Chris@0: %token T_FUNCTION Chris@0: %token T_CONST Chris@0: %token T_RETURN Chris@0: %token T_TRY Chris@0: %token T_CATCH Chris@0: %token T_FINALLY Chris@0: %token T_THROW Chris@0: %token T_USE Chris@0: %token T_INSTEADOF Chris@0: %token T_GLOBAL Chris@0: %right T_STATIC T_ABSTRACT T_FINAL T_PRIVATE T_PROTECTED T_PUBLIC Chris@0: %token T_VAR Chris@0: %token T_UNSET Chris@0: %token T_ISSET Chris@0: %token T_EMPTY Chris@0: %token T_HALT_COMPILER Chris@0: %token T_CLASS Chris@0: %token T_TRAIT Chris@0: %token T_INTERFACE Chris@0: %token T_EXTENDS Chris@0: %token T_IMPLEMENTS Chris@0: %token T_OBJECT_OPERATOR Chris@0: %token T_DOUBLE_ARROW Chris@0: %token T_LIST Chris@0: %token T_ARRAY Chris@0: %token T_CALLABLE Chris@0: %token T_CLASS_C Chris@0: %token T_TRAIT_C Chris@0: %token T_METHOD_C Chris@0: %token T_FUNC_C Chris@0: %token T_LINE Chris@0: %token T_FILE Chris@0: %token T_COMMENT Chris@0: %token T_DOC_COMMENT Chris@0: %token T_OPEN_TAG Chris@0: %token T_OPEN_TAG_WITH_ECHO Chris@0: %token T_CLOSE_TAG Chris@0: %token T_WHITESPACE Chris@0: %token T_START_HEREDOC Chris@0: %token T_END_HEREDOC Chris@0: %token T_DOLLAR_OPEN_CURLY_BRACES Chris@0: %token T_CURLY_OPEN Chris@0: %token T_PAAMAYIM_NEKUDOTAYIM Chris@0: %token T_NAMESPACE Chris@0: %token T_NS_C Chris@0: %token T_DIR Chris@0: %token T_NS_SEPARATOR Chris@0: %token T_ELLIPSIS