1 /* 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
2  * both. This is enforced by sharing this token file. */
3 
4 %right T_THROW
5 %left T_INCLUDE T_INCLUDE_ONCE T_EVAL T_REQUIRE T_REQUIRE_ONCE
6 %left ','
7 %left T_LOGICAL_OR
8 %left T_LOGICAL_XOR
9 %left T_LOGICAL_AND
10 %right T_PRINT
11 %right T_YIELD
12 %right T_DOUBLE_ARROW
13 %right T_YIELD_FROM
14 %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
15 %left '?' ':'
16 %right T_COALESCE
17 %left T_BOOLEAN_OR
18 %left T_BOOLEAN_AND
19 %left '|'
20 %left '^'
21 %left '&'
22 %nonassoc T_IS_EQUAL T_IS_NOT_EQUAL T_IS_IDENTICAL T_IS_NOT_IDENTICAL T_SPACESHIP
23 %nonassoc '<' T_IS_SMALLER_OR_EQUAL '>' T_IS_GREATER_OR_EQUAL
24 %left T_SL T_SR
25 %left '+' '-' '.'
26 %left '*' '/' '%'
27 %right '!'
28 %nonassoc T_INSTANCEOF
29 %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 '@'
30 %right T_POW
31 %right '['
32 %nonassoc T_NEW T_CLONE
33 %token T_EXIT
34 %token T_IF
35 %left T_ELSEIF
36 %left T_ELSE
37 %left T_ENDIF
38 %token T_LNUMBER
39 %token T_DNUMBER
40 %token T_STRING
41 %token T_STRING_VARNAME
42 %token T_VARIABLE
43 %token T_NUM_STRING
44 %token T_INLINE_HTML
45 %token T_ENCAPSED_AND_WHITESPACE
46 %token T_CONSTANT_ENCAPSED_STRING
47 %token T_ECHO
48 %token T_DO
49 %token T_WHILE
50 %token T_ENDWHILE
51 %token T_FOR
52 %token T_ENDFOR
53 %token T_FOREACH
54 %token T_ENDFOREACH
55 %token T_DECLARE
56 %token T_ENDDECLARE
57 %token T_AS
58 %token T_SWITCH
59 %token T_MATCH
60 %token T_ENDSWITCH
61 %token T_CASE
62 %token T_DEFAULT
63 %token T_BREAK
64 %token T_CONTINUE
65 %token T_GOTO
66 %token T_FUNCTION
67 %token T_FN
68 %token T_CONST
69 %token T_RETURN
70 %token T_TRY
71 %token T_CATCH
72 %token T_FINALLY
73 %token T_THROW
74 %token T_USE
75 %token T_INSTEADOF
76 %token T_GLOBAL
77 %right T_STATIC T_ABSTRACT T_FINAL T_PRIVATE T_PROTECTED T_PUBLIC
78 %token T_VAR
79 %token T_UNSET
80 %token T_ISSET
81 %token T_EMPTY
82 %token T_HALT_COMPILER
83 %token T_CLASS
84 %token T_TRAIT
85 %token T_INTERFACE
86 %token T_EXTENDS
87 %token T_IMPLEMENTS
88 %token T_OBJECT_OPERATOR
89 %token T_NULLSAFE_OBJECT_OPERATOR
90 %token T_DOUBLE_ARROW
91 %token T_LIST
92 %token T_ARRAY
93 %token T_CALLABLE
94 %token T_CLASS_C
95 %token T_TRAIT_C
96 %token T_METHOD_C
97 %token T_FUNC_C
98 %token T_LINE
99 %token T_FILE
100 %token T_START_HEREDOC
101 %token T_END_HEREDOC
102 %token T_DOLLAR_OPEN_CURLY_BRACES
103 %token T_CURLY_OPEN
104 %token T_PAAMAYIM_NEKUDOTAYIM
105 %token T_NAMESPACE
106 %token T_NS_C
107 %token T_DIR
108 %token T_NS_SEPARATOR
109 %token T_ELLIPSIS
110 %token T_NAME_FULLY_QUALIFIED
111 %token T_NAME_QUALIFIED
112 %token T_NAME_RELATIVE
113 %token T_ATTRIBUTE