1# Copyright (c) 2025 Huawei Device Co., Ltd. 2# Licensed under the Apache License, Version 2.0 (the "License"); 3# you may not use this file except in compliance with the License. 4# You may obtain a copy of the License at 5# 6# http://www.apache.org/licenses/LICENSE-2.0 7# 8# Unless required by applicable law or agreed to in writing, software 9# distributed under the License is distributed on an "AS IS" BASIS, 10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11# See the License for the specific language governing permissions and 12# limitations under the License. 13 14punctuators: 15- name: PUNCTUATOR_BITWISE_AND 16 string: "&" 17 flags: [binary] 18 19- name: PUNCTUATOR_BITWISE_OR 20 string: "|" 21 flags: [binary] 22 23- name: PUNCTUATOR_MULTIPLY 24 string: "*" 25 flags: [binary] 26 27- name: PUNCTUATOR_DIVIDE 28 string: "/" 29 flags: [binary] 30 31- name: PUNCTUATOR_MINUS 32 string: "-" 33 flags: [unary, binary] 34 35- name: PUNCTUATOR_EXCLAMATION_MARK 36 string: "!" 37 flags: [unary] 38 39- name: PUNCTUATOR_TILDE 40 string: "~" 41 flags: [unary] 42 43- name: PUNCTUATOR_MINUS_MINUS 44 string: "--" 45 flags: [unary] 46 47- name: PUNCTUATOR_LEFT_SHIFT 48 string: "<<" 49 flags: [binary] 50 51- name: PUNCTUATOR_RIGHT_SHIFT 52 string: ">>" 53 flags: [binary] 54 55- name: PUNCTUATOR_LESS_THAN_EQUAL 56 string: "<=" 57 flags: [binary] 58 59- name: PUNCTUATOR_GREATER_THAN_EQUAL 60 string: ">=" 61 flags: [binary] 62 63- name: PUNCTUATOR_MOD 64 string: "%" 65 flags: [binary] 66 67- name: PUNCTUATOR_BITWISE_XOR 68 string: "^" 69 flags: [binary] 70 71- name: PUNCTUATOR_EXPONENTIATION 72 string: "**" 73 flags: [binary] 74 75- name: PUNCTUATOR_MULTIPLY_EQUAL 76 string: "*=" 77 flags: [binary_lvalue] 78 79- name: PUNCTUATOR_EXPONENTIATION_EQUAL 80 string: "**=" 81 flags: [binary_lvalue] 82 83- name: PUNCTUATOR_ARROW 84 string: "=>" 85 86- name: PUNCTUATOR_BACK_TICK 87 string: "`" 88 89- name: PUNCTUATOR_HASH_MARK 90 string: "#" 91 92- name: PUNCTUATOR_DIVIDE_EQUAL 93 string: "/=" 94 flags: [binary_lvalue] 95 96- name: PUNCTUATOR_MOD_EQUAL 97 string: "%=" 98 flags: [binary_lvalue] 99 100- name: PUNCTUATOR_MINUS_EQUAL 101 string: "-=" 102 flags: [binary_lvalue] 103 104- name: PUNCTUATOR_LEFT_SHIFT_EQUAL 105 string: "<<=" 106 flags: [binary_lvalue] 107 108- name: PUNCTUATOR_RIGHT_SHIFT_EQUAL 109 string: ">>=" 110 flags: [binary_lvalue] 111 112- name: PUNCTUATOR_UNSIGNED_RIGHT_SHIFT 113 string: ">>>" 114 flags: [binary] 115 116- name: PUNCTUATOR_UNSIGNED_RIGHT_SHIFT_EQUAL 117 string: ">>>=" 118 flags: [binary_lvalue] 119 120- name: PUNCTUATOR_BITWISE_AND_EQUAL 121 string: "&=" 122 flags: [binary_lvalue] 123 124- name: PUNCTUATOR_BITWISE_OR_EQUAL 125 string: "|=" 126 flags: [binary_lvalue] 127 128- name: PUNCTUATOR_LOGICAL_AND_EQUAL 129 string: "&&=" 130 flags: [binary_lvalue] 131 132- name: PUNCTUATOR_NULLISH_COALESCING 133 string: "??" 134 flags: [binary] 135 136- name: PUNCTUATOR_LOGICAL_OR_EQUAL 137 string: "||=" 138 flags: [binary_lvalue] 139 140- name: PUNCTUATOR_LOGICAL_NULLISH_EQUAL 141 string: "\\?\\?=" 142 flags: [binary_lvalue] 143 144- name: PUNCTUATOR_BITWISE_XOR_EQUAL 145 string: "^=" 146 flags: [binary_lvalue] 147 148- name: PUNCTUATOR_PLUS 149 string: "+" 150 flags: [unary, binary] 151 152- name: PUNCTUATOR_PLUS_PLUS 153 string: "++" 154 flags: [unary] 155 156- name: PUNCTUATOR_PLUS_EQUAL 157 string: "+=" 158 flags: [binary_lvalue] 159 160- name: PUNCTUATOR_LESS_THAN 161 string: "<" 162 flags: [binary] 163 164- name: PUNCTUATOR_GREATER_THAN 165 string: ">" 166 flags: [binary] 167 168- name: PUNCTUATOR_EQUAL 169 string: "==" 170 flags: [binary] 171 172- name: PUNCTUATOR_NOT_EQUAL 173 string: "!=" 174 flags: [binary] 175 176- name: PUNCTUATOR_STRICT_EQUAL 177 string: "===" 178 flags: [binary] 179 180- name: PUNCTUATOR_NOT_STRICT_EQUAL 181 string: "!==" 182 flags: [binary] 183 184- name: PUNCTUATOR_LOGICAL_AND 185 string: "&&" 186 flags: [binary] 187 188- name: PUNCTUATOR_LOGICAL_OR 189 string: "||" 190 flags: [binary] 191 192- name: PUNCTUATOR_SUBSTITUTION 193 string: "=" 194 flags: [binary_lvalue] 195 196- name: PUNCTUATOR_QUESTION_MARK 197 string: "?" 198 199- name: PUNCTUATOR_QUESTION_DOT 200 string: "?." 201 202- name: PUNCTUATOR_AT 203 string: "@" 204 205- name: PUNCTUATOR_FORMAT 206 string: "@@" 207 208- name: PUNCTUATOR_RIGHT_PARENTHESIS 209 string: ")" 210 211- name: PUNCTUATOR_LEFT_PARENTHESIS 212 string: "(" 213 214- name: PUNCTUATOR_RIGHT_SQUARE_BRACKET 215 string: "]" 216 217- name: PUNCTUATOR_LEFT_SQUARE_BRACKET 218 string: "[" 219 220- name: PUNCTUATOR_RIGHT_BRACE 221 string: "}" 222 223- name: PUNCTUATOR_PERIOD 224 string: "." 225 226- name: PUNCTUATOR_PERIOD_PERIOD_PERIOD 227 string: "..." 228 229- name: PUNCTUATOR_PERIOD_QUESTION 230 string: ".?" 231 232- name: PUNCTUATOR_LEFT_BRACE 233 string: "{" 234 235- name: PUNCTUATOR_SEMI_COLON 236 string: ";" 237 238- name: PUNCTUATOR_COLON 239 string: ":" 240 241- name: PUNCTUATOR_COMMA 242 string: "," 243 244flags: 245 binary: Binary operation which doesn't modify operands 246 binary_lvalue: Binary operation which updates left hand side operand 247 unary: Unary operation 248 reserved_type_name: TypeScript reserved type name 249 definable_type_name: Words which cannot be used as user-defined type names but are not otherwise restricted 250 predefined_type: Predefined types which are hard keywords, and cannot be used as identifiers 251