1# Copyright (c) 2021-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 14extensions: 15 - name: 'js' 16 description: JavaScript keyword 17 - name: 'ts' 18 description: TypeScript keyword 19 - name: 'as' 20 description: AssemblyScript keyword 21 - name: 'ets' 22 description: ETS keyword 23 24keywords: 25 - name: 'abstract' 26 token: KEYW_ABSTRACT 27 keyword: [ets] 28 keyword_like: [ts] 29 30 - name: 'any' 31 token: KEYW_ANY 32 keyword_like: [ts] 33 flags: [reserved_type_name] 34 35 - name: 'Any' 36 token: KEYW_BUILTIN_ANY 37 keyword_like: [ets] 38 flags: [predefined_type] 39 40 - name: 'anyref' 41 token: KEYW_ANYREF 42 keyword_like: [as] 43 44 - name: 'arguments' 45 token: KEYW_ARGUMENTS 46 keyword_like: [js, ts] 47 48 - name: 'as' 49 token: KEYW_AS 50 keyword: [ets] 51 custom_handler: [js, ts, as] 52 53 - name: 'asserts' 54 token: KEYW_ASSERTS 55 keyword_like: [ts] 56 57 - name: 'async' 58 token: KEYW_ASYNC 59 keyword: [as, ets] 60 keyword_like: [js, ts] 61 62 - name: 'await' 63 token: KEYW_AWAIT 64 keyword: [ets] 65 custom_handler: [js, ts] 66 flags: [unary] 67 68 - name: 'bigint' 69 token: KEYW_BIGINT 70 keyword_like: [ets, ts] 71 flags: [definable_type_name] 72 73 - name: 'Bigint' 74 token: KEYW_BUILTIN_BIGINT 75 keyword_like: [ets] 76 flags: [predefined_type] 77 78 - name: 'boolean' 79 token: KEYW_BOOLEAN 80 keyword: [ets] 81 keyword_like: [js, ts] 82 flags: [reserved_type_name, definable_type_name] 83 84 - name: 'Boolean' 85 token: KEYW_BUILTIN_BOOLEAN 86 keyword_like: [ets] 87 flags: [predefined_type] 88 89 - name: 'break' 90 token: KEYW_BREAK 91 keyword: [js, ts, as, ets] 92 flags: [reserved_type_name] 93 94 - name: 'byte' 95 token: KEYW_BYTE 96 keyword: [ets] 97 flags: [reserved_type_name, definable_type_name] 98 99 - name: 'Byte' 100 token: KEYW_BUILTIN_BYTE 101 keyword_like: [ets] 102 flags: [predefined_type] 103 104 - name: 'case' 105 token: KEYW_CASE 106 keyword: [js, ts, as, ets] 107 flags: [reserved_type_name] 108 109 - name: 'catch' 110 token: KEYW_CATCH 111 keyword: [js, ts, as] 112 keyword_like: [ets] 113 114 - name: 'char' 115 token: KEYW_CHAR 116 keyword: [ets] 117 flags: [reserved_type_name, definable_type_name] 118 119 - name: 'Char' 120 token: KEYW_BUILTIN_CHAR 121 keyword_like: [ets] 122 flags: [predefined_type] 123 124 - name: 'class' 125 token: KEYW_CLASS 126 keyword: [js, ts, as, ets] 127 flags: [reserved_type_name] 128 129 - name: 'const' 130 token: KEYW_CONST 131 keyword: [js, ts, as, ets] 132 133 - name: 'constructor' 134 token: KEYW_CONSTRUCTOR 135 keyword: [ets] 136 137 - name: 'continue' 138 token: KEYW_CONTINUE 139 keyword: [js, ts, as, ets] 140 flags: [reserved_type_name] 141 142 - name: 'dataref' 143 token: KEYW_DATAREF 144 keyword_like: [as] 145 146 - name: 'debugger' 147 token: KEYW_DEBUGGER 148 keyword: [js, ets, ts] 149 150 - name: 'declare' 151 token: KEYW_DECLARE 152 keyword_like: [js, ts, as, ets] 153 154 - name: 'default' 155 token: KEYW_DEFAULT 156 keyword: [js, ts, as, ets] 157 flags: [reserved_type_name] 158 159 - name: 'delete' 160 token: KEYW_DELETE 161 keyword: [js, as, ts] 162 flags: [unary] 163 164 - name: 'do' 165 token: KEYW_DO 166 keyword: [js, ts, as, ets] 167 168 - name: 'double' 169 token: KEYW_DOUBLE 170 keyword: [ets] 171 flags: [reserved_type_name, definable_type_name] 172 173 - name: 'Double' 174 token: KEYW_BUILTIN_DOUBLE 175 keyword_like: [ets] 176 flags: [predefined_type] 177 178 - name: 'else' 179 token: KEYW_ELSE 180 keyword: [js, ts, as, ets] 181 flags: [reserved_type_name] 182 183 - name: 'enum' 184 token: KEYW_ENUM 185 keyword: [js, as, ets, ts] 186 flags: [reserved_type_name] 187 188 - name: 'eqref' 189 token: KEYW_EQREF 190 keyword_like: [as] 191 192 - name: 'eval' 193 token: KEYW_EVAL 194 keyword_like: [js, ts] 195 196 - name: 'export' 197 token: KEYW_EXPORT 198 keyword: [as, js, ets, ts] 199 flags: [reserved_type_name] 200 201 - name: 'extends' 202 token: KEYW_EXTENDS 203 keyword: [as, js, ets, ts] 204 flags: [reserved_type_name] 205 206 - name: 'externref' 207 token: KEYW_EXTERNREF 208 keyword_like: [as] 209 210 - name: 'f32' 211 token: KEYW_F32 212 keyword_like: [as] 213 214 - name: 'f64' 215 token: KEYW_F64 216 keyword_like: [as] 217 218 - name: 'false' 219 token: LITERAL_FALSE 220 keyword: [as, js, ets, ts] 221 flags: [reserved_type_name] 222 223 - name: 'finally' 224 token: KEYW_FINALLY 225 keyword: [js, ts] 226 keyword_like: [ets] 227 flags: [reserved_type_name] 228 229 - name: 'float' 230 token: KEYW_FLOAT 231 keyword: [ets] 232 flags: [reserved_type_name, definable_type_name] 233 234 - name: 'Float' 235 token: KEYW_BUILTIN_FLOAT 236 keyword_like: [ets] 237 flags: [predefined_type] 238 239 - name: 'for' 240 token: KEYW_FOR 241 keyword: [as, js, ets, ts] 242 flags: [reserved_type_name] 243 244 - name: 'from' 245 token: KEYW_FROM 246 keyword_like: [as, js, ts, ets] 247 248 - name: 'funcref' 249 token: KEYW_FUNCREF 250 keyword_like: [as] 251 252 - name: 'function' 253 token: KEYW_FUNCTION 254 keyword: [as, js, ets, ts] 255 flags: [reserved_type_name] 256 257 - name: 'get' 258 token: KEYW_GET 259 keyword_like: [as, js, ts, ets] 260 261 - name: 'global' 262 token: KEYW_GLOBAL 263 keyword_like: [as, ts] 264 265 - name: 'i8' 266 token: KEYW_I8 267 keyword_like: [as] 268 269 - name: 'i16' 270 token: KEYW_I16 271 keyword_like: [as] 272 273 - name: 'i31ref' 274 token: KEYW_I31REF 275 keyword_like: [as] 276 277 - name: 'i32' 278 token: KEYW_I32 279 keyword_like: [as] 280 281 - name: 'i64' 282 token: KEYW_I64 283 keyword_like: [as] 284 285 - name: 'if' 286 token: KEYW_IF 287 keyword: [as, js, ets, ts] 288 flags: [reserved_type_name] 289 290 - name: 'implements' 291 token: KEYW_IMPLEMENTS 292 keyword: [as, js, ets, ts] 293 294 - name: 'import' 295 token: KEYW_IMPORT 296 keyword: [as, js, ets, ts] 297 298 - name: 'in' 299 token: KEYW_IN 300 keyword: [as, js, ts] 301 keyword_like: [ets] 302 flags: [binary] 303 304 - name: 'infer' 305 token: KEYW_INFER 306 keyword_like: [ts] 307 308 - name: 'instanceof' 309 token: KEYW_INSTANCEOF 310 keyword: [as, js, ts] 311 keyword_like: [ets] 312 flags: [binary] 313 314 - name: 'int' 315 token: KEYW_INT 316 keyword: [ets] 317 flags: [reserved_type_name, definable_type_name] 318 319 - name: 'Int' 320 token: KEYW_BUILTIN_INT 321 keyword_like: [ets] 322 flags: [predefined_type] 323 324 - name: 'interface' 325 token: KEYW_INTERFACE 326 keyword: [js, as, ets, ts] 327 328 - name: 'is' 329 token: KEYW_IS 330 keyword_like: [ets, ts] 331 flags: [definable_type_name] 332 333 - name: 'isize' 334 token: KEYW_ISIZE 335 keyword_like: [as] 336 337 - name: 'keyof' 338 token: KEYW_KEYOF 339 keyword_like: [ts, ets] 340 341 - name: 'let' 342 token: KEYW_LET 343 keyword: [as, js, ets, ts] 344 345 - name: 'long' 346 token: KEYW_LONG 347 keyword: [ets] 348 flags: [reserved_type_name, definable_type_name] 349 350 - name: 'Long' 351 token: KEYW_BUILTIN_LONG 352 keyword_like: [ets] 353 flags: [predefined_type] 354 355 - name: 'meta' 356 token: KEYW_META 357 keyword_like: [js, ts] 358 359 - name: 'module' 360 token: KEYW_MODULE 361 keyword_like: [as, js, ts] 362 363 - name: 'namespace' 364 token: KEYW_NAMESPACE 365 keyword_like: [as, ets, ts] 366 flags: [definable_type_name] 367 368 - name: 'native' 369 token: KEYW_NATIVE 370 keyword: [ets] 371 372 - name: 'never' 373 token: KEYW_NEVER 374 keyword_like: [ts] 375 flags: [reserved_type_name] 376 377 - name: 'new' 378 token: KEYW_NEW 379 keyword: [as, js, ets, ts] 380 381 - name: 'null' 382 token: LITERAL_NULL 383 keyword: [as, js, ets, ts] 384 flags: [reserved_type_name] 385 386 - name: 'number' 387 token: KEYW_NUMBER 388 keyword_like: [ets, ts] 389 flags: [definable_type_name, predefined_type] 390 391 # issue 25066 392 # - name: 'Number' 393 # token: KEYW_BUILTIN_NUMBER 394 # keyword_like: [ets] 395 # flags: [predefined_type] 396 397 - name: 'object' 398 token: KEYW_OBJECT 399 keyword_like: [ets, ts] 400 flags: [reserved_type_name, predefined_type] 401 402 - name: 'Object' 403 token: KEYW_BUILTIN_OBJECT 404 keyword_like: [ets] 405 flags: [predefined_type] 406 407 - name: 'of' 408 token: KEYW_OF 409 keyword_like: [ets, js, ts, as] 410 411 - name: 'final' 412 token: KEYW_FINAL 413 keyword: [ets] 414 415 - name: 'out' 416 token: KEYW_OUT 417 keyword_like: [ets] 418 419 - name: 'override' 420 token: KEYW_OVERRIDE 421 keyword: [ets] 422 keyword_like: [ts] 423 424 - name: 'package' 425 token: KEYW_PACKAGE 426 keyword: [js, ts, as, ets] 427 428 - name: 'internal' 429 token: KEYW_INTERNAL 430 keyword: [ets] 431 432 - name: 'private' 433 token: KEYW_PRIVATE 434 keyword: [js, as, ets, ts] 435 436 - name: 'protected' 437 token: KEYW_PROTECTED 438 keyword: [js, as, ets, ts] 439 440 - name: 'public' 441 token: KEYW_PUBLIC 442 keyword: [js, as, ets, ts] 443 444 - name: 'readonly' 445 token: KEYW_READONLY 446 keyword_like: [as, ts, ets] 447 448 - name: 'rethrows' 449 token: KEYW_RETHROWS 450 keyword_like: [ets] 451 452 - name: 'return' 453 token: KEYW_RETURN 454 keyword: [as, js, ets, ts] 455 456 - name: 'require' 457 token: KEYW_REQUIRE 458 keyword_like: [ts] 459 460 - name: 'set' 461 token: KEYW_SET 462 keyword_like: [as, js, ts, ets] 463 464 - name: 'short' 465 token: KEYW_SHORT 466 keyword: [ets] 467 flags: [reserved_type_name, definable_type_name] 468 469 - name: 'Short' 470 token: KEYW_BUILTIN_SHORT 471 keyword_like: [ets] 472 flags: [predefined_type] 473 474 - name: 'static' 475 token: KEYW_STATIC 476 keyword: [js, as, ets, ts] 477 478 - name: 'string' 479 token: KEYW_STRING 480 keyword_like: [ets, ts] 481 flags: [definable_type_name] 482 483 - name: 'String' 484 token: KEYW_BUILTIN_STRING 485 keyword_like: [ets] 486 flags: [predefined_type] 487 488 - name: 'struct' 489 token: KEYW_STRUCT 490 keyword_like: [ets] 491 flags: [definable_type_name] 492 493 - name: 'super' 494 token: KEYW_SUPER 495 keyword: [js, ts, ets] 496 497 - name: 'switch' 498 token: KEYW_SWITCH 499 keyword: [js, as, ets, ts] 500 501 - name: 'target' 502 token: KEYW_TARGET 503 keyword_like: [js, ts] 504 505 - name: 'this' 506 token: KEYW_THIS 507 keyword: [as, js, ets, ts] 508 509 - name: 'throw' 510 token: KEYW_THROW 511 keyword: [js, ets, ts, as] 512 513 - name: 'throws' 514 token: KEYW_THROWS 515 keyword_like: [ets] 516 517 - name: 'true' 518 token: LITERAL_TRUE 519 keyword: [as, js, ets, ts] 520 flags: [reserved_type_name] 521 522 - name: 'try' 523 token: KEYW_TRY 524 keyword: [as, js, ets, ts] 525 526 - name: 'type' 527 token: KEYW_TYPE 528 keyword_like: [ets, js, ts] 529 flags: [definable_type_name] 530 531 - name: 'typeof' 532 token: KEYW_TYPEOF 533 keyword: [js, ts] 534 keyword_like: [ets] 535 flags: [unary] 536 537 - name: 'u8' 538 token: KEYW_U8 539 keyword_like: [as] 540 541 - name: 'u16' 542 token: KEYW_U16 543 keyword_like: [as] 544 545 - name: 'u32' 546 token: KEYW_U32 547 keyword_like: [as] 548 549 - name: 'u64' 550 token: KEYW_U64 551 keyword_like: [as] 552 553 - name: 'undefined' 554 token: KEYW_UNDEFINED 555 keyword: [ets] 556 keyword_like: [js, ts] 557 flags: [reserved_type_name, definable_type_name] 558 559 - name: 'unknown' 560 token: KEYW_UNKNOWN 561 keyword_like: [ts] 562 flags: [reserved_type_name] 563 564 - name: 'usize' 565 token: KEYW_USIZE 566 keyword_like: [as] 567 568 - name: 'v128' 569 token: KEYW_V128 570 keyword_like: [as] 571 572 - name: 'var' 573 token: KEYW_VAR 574 keyword: [as, js, ts] 575 keyword_like: [ets] 576 flags: [reserved_type_name, definable_type_name] 577 578 - name: 'void' 579 token: KEYW_VOID 580 keyword: [as, ets, js, ts] 581 flags: [unary, reserved_type_name, definable_type_name] 582 583 - name: 'while' 584 token: KEYW_WHILE 585 keyword: [as, js, ets, ts] 586 587 - name: 'with' 588 token: KEYW_WITH 589 keyword: [js, ts] 590 591 - name: 'yield' 592 token: KEYW_YIELD 593 keyword_like: [ets] 594 custom_handler: [js, ts] 595 flags: [definable_type_name] 596