116 lines
2.6 KiB
Text
116 lines
2.6 KiB
Text
|
/* 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
|