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