123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- /* 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
- * both. This is enforced by sharing this token file. */
- %right T_THROW
- %left T_INCLUDE T_INCLUDE_ONCE T_EVAL T_REQUIRE T_REQUIRE_ONCE
- %left ','
- %left T_LOGICAL_OR
- %left T_LOGICAL_XOR
- %left T_LOGICAL_AND
- %right T_PRINT
- %right T_YIELD
- %right T_DOUBLE_ARROW
- %right T_YIELD_FROM
- %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
- %left '?' ':'
- %right T_COALESCE
- %left T_BOOLEAN_OR
- %left T_BOOLEAN_AND
- %left '|'
- %left '^'
- %left T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG
- %nonassoc T_IS_EQUAL T_IS_NOT_EQUAL T_IS_IDENTICAL T_IS_NOT_IDENTICAL T_SPACESHIP
- %nonassoc '<' T_IS_SMALLER_OR_EQUAL '>' T_IS_GREATER_OR_EQUAL
- %left T_SL T_SR
- %left '+' '-' '.'
- %left '*' '/' '%'
- %right '!'
- %nonassoc T_INSTANCEOF
- %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 '@'
- %right T_POW
- %right '['
- %nonassoc T_NEW T_CLONE
- %token T_EXIT
- %token T_IF
- %left T_ELSEIF
- %left T_ELSE
- %left T_ENDIF
- %token T_LNUMBER
- %token T_DNUMBER
- %token T_STRING
- %token T_STRING_VARNAME
- %token T_VARIABLE
- %token T_NUM_STRING
- %token T_INLINE_HTML
- %token T_ENCAPSED_AND_WHITESPACE
- %token T_CONSTANT_ENCAPSED_STRING
- %token T_ECHO
- %token T_DO
- %token T_WHILE
- %token T_ENDWHILE
- %token T_FOR
- %token T_ENDFOR
- %token T_FOREACH
- %token T_ENDFOREACH
- %token T_DECLARE
- %token T_ENDDECLARE
- %token T_AS
- %token T_SWITCH
- %token T_MATCH
- %token T_ENDSWITCH
- %token T_CASE
- %token T_DEFAULT
- %token T_BREAK
- %token T_CONTINUE
- %token T_GOTO
- %token T_FUNCTION
- %token T_FN
- %token T_CONST
- %token T_RETURN
- %token T_TRY
- %token T_CATCH
- %token T_FINALLY
- %token T_THROW
- %token T_USE
- %token T_INSTEADOF
- %token T_GLOBAL
- %right T_STATIC T_ABSTRACT T_FINAL T_PRIVATE T_PROTECTED T_PUBLIC T_READONLY
- %token T_VAR
- %token T_UNSET
- %token T_ISSET
- %token T_EMPTY
- %token T_HALT_COMPILER
- %token T_CLASS
- %token T_TRAIT
- %token T_INTERFACE
- %token T_ENUM
- %token T_EXTENDS
- %token T_IMPLEMENTS
- %token T_OBJECT_OPERATOR
- %token T_NULLSAFE_OBJECT_OPERATOR
- %token T_DOUBLE_ARROW
- %token T_LIST
- %token T_ARRAY
- %token T_CALLABLE
- %token T_CLASS_C
- %token T_TRAIT_C
- %token T_METHOD_C
- %token T_FUNC_C
- %token T_LINE
- %token T_FILE
- %token T_START_HEREDOC
- %token T_END_HEREDOC
- %token T_DOLLAR_OPEN_CURLY_BRACES
- %token T_CURLY_OPEN
- %token T_PAAMAYIM_NEKUDOTAYIM
- %token T_NAMESPACE
- %token T_NS_C
- %token T_DIR
- %token T_NS_SEPARATOR
- %token T_ELLIPSIS
- %token T_NAME_FULLY_QUALIFIED
- %token T_NAME_QUALIFIED
- %token T_NAME_RELATIVE
- %token T_ATTRIBUTE
- %token T_ENUM
|