1 | export interface Node {
|
2 | start: number
|
3 | end: number
|
4 | type: string
|
5 | range?: [number, number]
|
6 | loc?: SourceLocation | null
|
7 | }
|
8 |
|
9 | export interface SourceLocation {
|
10 | source?: string | null
|
11 | start: Position
|
12 | end: Position
|
13 | }
|
14 |
|
15 | export interface Position {
|
16 |
|
17 | line: number
|
18 |
|
19 | column: number
|
20 | }
|
21 |
|
22 | export interface Identifier extends Node {
|
23 | type: "Identifier"
|
24 | name: string
|
25 | }
|
26 |
|
27 | export interface Literal extends Node {
|
28 | type: "Literal"
|
29 | value?: string | boolean | null | number | RegExp | bigint
|
30 | raw?: string
|
31 | regex?: {
|
32 | pattern: string
|
33 | flags: string
|
34 | }
|
35 | bigint?: string
|
36 | }
|
37 |
|
38 | export interface Program extends Node {
|
39 | type: "Program"
|
40 | body: Array<Statement | ModuleDeclaration>
|
41 | sourceType: "script" | "module"
|
42 | }
|
43 |
|
44 | export interface Function extends Node {
|
45 | id?: Identifier | null
|
46 | params: Array<Pattern>
|
47 | body: BlockStatement | Expression
|
48 | generator: boolean
|
49 | expression: boolean
|
50 | async: boolean
|
51 | }
|
52 |
|
53 | export interface ExpressionStatement extends Node {
|
54 | type: "ExpressionStatement"
|
55 | expression: Expression | Literal
|
56 | directive?: string
|
57 | }
|
58 |
|
59 | export interface BlockStatement extends Node {
|
60 | type: "BlockStatement"
|
61 | body: Array<Statement>
|
62 | }
|
63 |
|
64 | export interface EmptyStatement extends Node {
|
65 | type: "EmptyStatement"
|
66 | }
|
67 |
|
68 | export interface DebuggerStatement extends Node {
|
69 | type: "DebuggerStatement"
|
70 | }
|
71 |
|
72 | export interface WithStatement extends Node {
|
73 | type: "WithStatement"
|
74 | object: Expression
|
75 | body: Statement
|
76 | }
|
77 |
|
78 | export interface ReturnStatement extends Node {
|
79 | type: "ReturnStatement"
|
80 | argument?: Expression | null
|
81 | }
|
82 |
|
83 | export interface LabeledStatement extends Node {
|
84 | type: "LabeledStatement"
|
85 | label: Identifier
|
86 | body: Statement
|
87 | }
|
88 |
|
89 | export interface BreakStatement extends Node {
|
90 | type: "BreakStatement"
|
91 | label?: Identifier | null
|
92 | }
|
93 |
|
94 | export interface ContinueStatement extends Node {
|
95 | type: "ContinueStatement"
|
96 | label?: Identifier | null
|
97 | }
|
98 |
|
99 | export interface IfStatement extends Node {
|
100 | type: "IfStatement"
|
101 | test: Expression
|
102 | consequent: Statement
|
103 | alternate?: Statement | null
|
104 | }
|
105 |
|
106 | export interface SwitchStatement extends Node {
|
107 | type: "SwitchStatement"
|
108 | discriminant: Expression
|
109 | cases: Array<SwitchCase>
|
110 | }
|
111 |
|
112 | export interface SwitchCase extends Node {
|
113 | type: "SwitchCase"
|
114 | test?: Expression | null
|
115 | consequent: Array<Statement>
|
116 | }
|
117 |
|
118 | export interface ThrowStatement extends Node {
|
119 | type: "ThrowStatement"
|
120 | argument: Expression
|
121 | }
|
122 |
|
123 | export interface TryStatement extends Node {
|
124 | type: "TryStatement"
|
125 | block: BlockStatement
|
126 | handler?: CatchClause | null
|
127 | finalizer?: BlockStatement | null
|
128 | }
|
129 |
|
130 | export interface CatchClause extends Node {
|
131 | type: "CatchClause"
|
132 | param?: Pattern | null
|
133 | body: BlockStatement
|
134 | }
|
135 |
|
136 | export interface WhileStatement extends Node {
|
137 | type: "WhileStatement"
|
138 | test: Expression
|
139 | body: Statement
|
140 | }
|
141 |
|
142 | export interface DoWhileStatement extends Node {
|
143 | type: "DoWhileStatement"
|
144 | body: Statement
|
145 | test: Expression
|
146 | }
|
147 |
|
148 | export interface ForStatement extends Node {
|
149 | type: "ForStatement"
|
150 | init?: VariableDeclaration | Expression | null
|
151 | test?: Expression | null
|
152 | update?: Expression | null
|
153 | body: Statement
|
154 | }
|
155 |
|
156 | export interface ForInStatement extends Node {
|
157 | type: "ForInStatement"
|
158 | left: VariableDeclaration | Pattern
|
159 | right: Expression
|
160 | body: Statement
|
161 | }
|
162 |
|
163 | export interface FunctionDeclaration extends Function {
|
164 | type: "FunctionDeclaration"
|
165 | id: Identifier
|
166 | body: BlockStatement
|
167 | }
|
168 |
|
169 | export interface VariableDeclaration extends Node {
|
170 | type: "VariableDeclaration"
|
171 | declarations: Array<VariableDeclarator>
|
172 | kind: "var" | "let" | "const"
|
173 | }
|
174 |
|
175 | export interface VariableDeclarator extends Node {
|
176 | type: "VariableDeclarator"
|
177 | id: Pattern
|
178 | init?: Expression | null
|
179 | }
|
180 |
|
181 | export interface ThisExpression extends Node {
|
182 | type: "ThisExpression"
|
183 | }
|
184 |
|
185 | export interface ArrayExpression extends Node {
|
186 | type: "ArrayExpression"
|
187 | elements: Array<Expression | SpreadElement | null>
|
188 | }
|
189 |
|
190 | export interface ObjectExpression extends Node {
|
191 | type: "ObjectExpression"
|
192 | properties: Array<Property | SpreadElement>
|
193 | }
|
194 |
|
195 | export interface Property extends Node {
|
196 | type: "Property"
|
197 | key: Expression
|
198 | value: Expression
|
199 | kind: "init" | "get" | "set"
|
200 | method: boolean
|
201 | shorthand: boolean
|
202 | computed: boolean
|
203 | }
|
204 |
|
205 | export interface FunctionExpression extends Function {
|
206 | type: "FunctionExpression"
|
207 | body: BlockStatement
|
208 | }
|
209 |
|
210 | export interface UnaryExpression extends Node {
|
211 | type: "UnaryExpression"
|
212 | operator: UnaryOperator
|
213 | prefix: boolean
|
214 | argument: Expression
|
215 | }
|
216 |
|
217 | export type UnaryOperator = "-" | "+" | "!" | "~" | "typeof" | "void" | "delete"
|
218 |
|
219 | export interface UpdateExpression extends Node {
|
220 | type: "UpdateExpression"
|
221 | operator: UpdateOperator
|
222 | argument: Expression
|
223 | prefix: boolean
|
224 | }
|
225 |
|
226 | export type UpdateOperator = "++" | "--"
|
227 |
|
228 | export interface BinaryExpression extends Node {
|
229 | type: "BinaryExpression"
|
230 | operator: BinaryOperator
|
231 | left: Expression | PrivateIdentifier
|
232 | right: Expression
|
233 | }
|
234 |
|
235 | export type BinaryOperator = "==" | "!=" | "===" | "!==" | "<" | "<=" | ">" | ">=" | "<<" | ">>" | ">>>" | "+" | "-" | "*" | "/" | "%" | "|" | "^" | "&" | "in" | "instanceof" | "**"
|
236 |
|
237 | export interface AssignmentExpression extends Node {
|
238 | type: "AssignmentExpression"
|
239 | operator: AssignmentOperator
|
240 | left: Pattern
|
241 | right: Expression
|
242 | }
|
243 |
|
244 | export type AssignmentOperator = "=" | "+=" | "-=" | "*=" | "/=" | "%=" | "<<=" | ">>=" | ">>>=" | "|=" | "^=" | "&=" | "**=" | "||=" | "&&=" | "??="
|
245 |
|
246 | export interface LogicalExpression extends Node {
|
247 | type: "LogicalExpression"
|
248 | operator: LogicalOperator
|
249 | left: Expression
|
250 | right: Expression
|
251 | }
|
252 |
|
253 | export type LogicalOperator = "||" | "&&" | "??"
|
254 |
|
255 | export interface MemberExpression extends Node {
|
256 | type: "MemberExpression"
|
257 | object: Expression | Super
|
258 | property: Expression | PrivateIdentifier
|
259 | computed: boolean
|
260 | optional: boolean
|
261 | }
|
262 |
|
263 | export interface ConditionalExpression extends Node {
|
264 | type: "ConditionalExpression"
|
265 | test: Expression
|
266 | alternate: Expression
|
267 | consequent: Expression
|
268 | }
|
269 |
|
270 | export interface CallExpression extends Node {
|
271 | type: "CallExpression"
|
272 | callee: Expression | Super
|
273 | arguments: Array<Expression | SpreadElement>
|
274 | optional: boolean
|
275 | }
|
276 |
|
277 | export interface NewExpression extends Node {
|
278 | type: "NewExpression"
|
279 | callee: Expression
|
280 | arguments: Array<Expression | SpreadElement>
|
281 | }
|
282 |
|
283 | export interface SequenceExpression extends Node {
|
284 | type: "SequenceExpression"
|
285 | expressions: Array<Expression>
|
286 | }
|
287 |
|
288 | export interface ForOfStatement extends Node {
|
289 | type: "ForOfStatement"
|
290 | left: VariableDeclaration | Pattern
|
291 | right: Expression
|
292 | body: Statement
|
293 | await: boolean
|
294 | }
|
295 |
|
296 | export interface Super extends Node {
|
297 | type: "Super"
|
298 | }
|
299 |
|
300 | export interface SpreadElement extends Node {
|
301 | type: "SpreadElement"
|
302 | argument: Expression
|
303 | }
|
304 |
|
305 | export interface ArrowFunctionExpression extends Function {
|
306 | type: "ArrowFunctionExpression"
|
307 | }
|
308 |
|
309 | export interface YieldExpression extends Node {
|
310 | type: "YieldExpression"
|
311 | argument?: Expression | null
|
312 | delegate: boolean
|
313 | }
|
314 |
|
315 | export interface TemplateLiteral extends Node {
|
316 | type: "TemplateLiteral"
|
317 | quasis: Array<TemplateElement>
|
318 | expressions: Array<Expression>
|
319 | }
|
320 |
|
321 | export interface TaggedTemplateExpression extends Node {
|
322 | type: "TaggedTemplateExpression"
|
323 | tag: Expression
|
324 | quasi: TemplateLiteral
|
325 | }
|
326 |
|
327 | export interface TemplateElement extends Node {
|
328 | type: "TemplateElement"
|
329 | tail: boolean
|
330 | value: {
|
331 | cooked?: string | null
|
332 | raw: string
|
333 | }
|
334 | }
|
335 |
|
336 | export interface AssignmentProperty extends Node {
|
337 | type: "Property"
|
338 | key: Expression
|
339 | value: Pattern
|
340 | kind: "init"
|
341 | method: false
|
342 | shorthand: boolean
|
343 | computed: boolean
|
344 | }
|
345 |
|
346 | export interface ObjectPattern extends Node {
|
347 | type: "ObjectPattern"
|
348 | properties: Array<AssignmentProperty | RestElement>
|
349 | }
|
350 |
|
351 | export interface ArrayPattern extends Node {
|
352 | type: "ArrayPattern"
|
353 | elements: Array<Pattern | null>
|
354 | }
|
355 |
|
356 | export interface RestElement extends Node {
|
357 | type: "RestElement"
|
358 | argument: Pattern
|
359 | }
|
360 |
|
361 | export interface AssignmentPattern extends Node {
|
362 | type: "AssignmentPattern"
|
363 | left: Pattern
|
364 | right: Expression
|
365 | }
|
366 |
|
367 | export interface Class extends Node {
|
368 | id?: Identifier | null
|
369 | superClass?: Expression | null
|
370 | body: ClassBody
|
371 | }
|
372 |
|
373 | export interface ClassBody extends Node {
|
374 | type: "ClassBody"
|
375 | body: Array<MethodDefinition | PropertyDefinition | StaticBlock>
|
376 | }
|
377 |
|
378 | export interface MethodDefinition extends Node {
|
379 | type: "MethodDefinition"
|
380 | key: Expression | PrivateIdentifier
|
381 | value: FunctionExpression
|
382 | kind: "constructor" | "method" | "get" | "set"
|
383 | computed: boolean
|
384 | static: boolean
|
385 | }
|
386 |
|
387 | export interface ClassDeclaration extends Class {
|
388 | type: "ClassDeclaration"
|
389 | id: Identifier
|
390 | }
|
391 |
|
392 | export interface ClassExpression extends Class {
|
393 | type: "ClassExpression"
|
394 | }
|
395 |
|
396 | export interface MetaProperty extends Node {
|
397 | type: "MetaProperty"
|
398 | meta: Identifier
|
399 | property: Identifier
|
400 | }
|
401 |
|
402 | export interface ImportDeclaration extends Node {
|
403 | type: "ImportDeclaration"
|
404 | specifiers: Array<ImportSpecifier | ImportDefaultSpecifier | ImportNamespaceSpecifier>
|
405 | source: Literal
|
406 | attributes: Array<ImportAttribute>
|
407 | }
|
408 |
|
409 | export interface ImportSpecifier extends Node {
|
410 | type: "ImportSpecifier"
|
411 | imported: Identifier | Literal
|
412 | local: Identifier
|
413 | }
|
414 |
|
415 | export interface ImportDefaultSpecifier extends Node {
|
416 | type: "ImportDefaultSpecifier"
|
417 | local: Identifier
|
418 | }
|
419 |
|
420 | export interface ImportNamespaceSpecifier extends Node {
|
421 | type: "ImportNamespaceSpecifier"
|
422 | local: Identifier
|
423 | }
|
424 |
|
425 | export interface ImportAttribute extends Node {
|
426 | type: "ImportAttribute"
|
427 | key: Identifier | Literal
|
428 | value: Literal
|
429 | }
|
430 |
|
431 | export interface ExportNamedDeclaration extends Node {
|
432 | type: "ExportNamedDeclaration"
|
433 | declaration?: Declaration | null
|
434 | specifiers: Array<ExportSpecifier>
|
435 | source?: Literal | null
|
436 | attributes: Array<ImportAttribute>
|
437 | }
|
438 |
|
439 | export interface ExportSpecifier extends Node {
|
440 | type: "ExportSpecifier"
|
441 | exported: Identifier | Literal
|
442 | local: Identifier | Literal
|
443 | }
|
444 |
|
445 | export interface AnonymousFunctionDeclaration extends Function {
|
446 | type: "FunctionDeclaration"
|
447 | id: null
|
448 | body: BlockStatement
|
449 | }
|
450 |
|
451 | export interface AnonymousClassDeclaration extends Class {
|
452 | type: "ClassDeclaration"
|
453 | id: null
|
454 | }
|
455 |
|
456 | export interface ExportDefaultDeclaration extends Node {
|
457 | type: "ExportDefaultDeclaration"
|
458 | declaration: AnonymousFunctionDeclaration | FunctionDeclaration | AnonymousClassDeclaration | ClassDeclaration | Expression
|
459 | }
|
460 |
|
461 | export interface ExportAllDeclaration extends Node {
|
462 | type: "ExportAllDeclaration"
|
463 | source: Literal
|
464 | exported?: Identifier | Literal | null
|
465 | attributes: Array<ImportAttribute>
|
466 | }
|
467 |
|
468 | export interface AwaitExpression extends Node {
|
469 | type: "AwaitExpression"
|
470 | argument: Expression
|
471 | }
|
472 |
|
473 | export interface ChainExpression extends Node {
|
474 | type: "ChainExpression"
|
475 | expression: MemberExpression | CallExpression
|
476 | }
|
477 |
|
478 | export interface ImportExpression extends Node {
|
479 | type: "ImportExpression"
|
480 | source: Expression
|
481 | options: Expression | null
|
482 | }
|
483 |
|
484 | export interface ParenthesizedExpression extends Node {
|
485 | type: "ParenthesizedExpression"
|
486 | expression: Expression
|
487 | }
|
488 |
|
489 | export interface PropertyDefinition extends Node {
|
490 | type: "PropertyDefinition"
|
491 | key: Expression | PrivateIdentifier
|
492 | value?: Expression | null
|
493 | computed: boolean
|
494 | static: boolean
|
495 | }
|
496 |
|
497 | export interface PrivateIdentifier extends Node {
|
498 | type: "PrivateIdentifier"
|
499 | name: string
|
500 | }
|
501 |
|
502 | export interface StaticBlock extends Node {
|
503 | type: "StaticBlock"
|
504 | body: Array<Statement>
|
505 | }
|
506 |
|
507 | export type Statement =
|
508 | | ExpressionStatement
|
509 | | BlockStatement
|
510 | | EmptyStatement
|
511 | | DebuggerStatement
|
512 | | WithStatement
|
513 | | ReturnStatement
|
514 | | LabeledStatement
|
515 | | BreakStatement
|
516 | | ContinueStatement
|
517 | | IfStatement
|
518 | | SwitchStatement
|
519 | | ThrowStatement
|
520 | | TryStatement
|
521 | | WhileStatement
|
522 | | DoWhileStatement
|
523 | | ForStatement
|
524 | | ForInStatement
|
525 | | ForOfStatement
|
526 | | Declaration
|
527 |
|
528 | export type Declaration =
|
529 | | FunctionDeclaration
|
530 | | VariableDeclaration
|
531 | | ClassDeclaration
|
532 |
|
533 | export type Expression =
|
534 | | Identifier
|
535 | | Literal
|
536 | | ThisExpression
|
537 | | ArrayExpression
|
538 | | ObjectExpression
|
539 | | FunctionExpression
|
540 | | UnaryExpression
|
541 | | UpdateExpression
|
542 | | BinaryExpression
|
543 | | AssignmentExpression
|
544 | | LogicalExpression
|
545 | | MemberExpression
|
546 | | ConditionalExpression
|
547 | | CallExpression
|
548 | | NewExpression
|
549 | | SequenceExpression
|
550 | | ArrowFunctionExpression
|
551 | | YieldExpression
|
552 | | TemplateLiteral
|
553 | | TaggedTemplateExpression
|
554 | | ClassExpression
|
555 | | MetaProperty
|
556 | | AwaitExpression
|
557 | | ChainExpression
|
558 | | ImportExpression
|
559 | | ParenthesizedExpression
|
560 |
|
561 | export type Pattern =
|
562 | | Identifier
|
563 | | MemberExpression
|
564 | | ObjectPattern
|
565 | | ArrayPattern
|
566 | | RestElement
|
567 | | AssignmentPattern
|
568 |
|
569 | export type ModuleDeclaration =
|
570 | | ImportDeclaration
|
571 | | ExportNamedDeclaration
|
572 | | ExportDefaultDeclaration
|
573 | | ExportAllDeclaration
|
574 |
|
575 | export type AnyNode = Statement | Expression | Declaration | ModuleDeclaration | Literal | Program | SwitchCase | CatchClause | Property | Super | SpreadElement | TemplateElement | AssignmentProperty | ObjectPattern | ArrayPattern | RestElement | AssignmentPattern | ClassBody | MethodDefinition | MetaProperty | ImportAttribute | ImportSpecifier | ImportDefaultSpecifier | ImportNamespaceSpecifier | ExportSpecifier | AnonymousFunctionDeclaration | AnonymousClassDeclaration | PropertyDefinition | PrivateIdentifier | StaticBlock | VariableDeclarator
|
576 |
|
577 | export function parse(input: string, options: Options): Program
|
578 |
|
579 | export function parseExpressionAt(input: string, pos: number, options: Options): Expression
|
580 |
|
581 | export function tokenizer(input: string, options: Options): {
|
582 | getToken(): Token
|
583 | [Symbol.iterator](): Iterator<Token>
|
584 | }
|
585 |
|
586 | export type ecmaVersion = 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 2015 | 2016 | 2017 | 2018 | 2019 | 2020 | 2021 | 2022 | 2023 | 2024 | 2025 | "latest"
|
587 |
|
588 | export interface Options {
|
589 | /**
|
590 | * `ecmaVersion` indicates the ECMAScript version to parse. Can be a
|
591 | * number, either in year (`2022`) or plain version number (`6`) form,
|
592 | * or `"latest"` (the latest the library supports). This influences
|
593 | * support for strict mode, the set of reserved words, and support for
|
594 | * new syntax features.
|
595 | */
|
596 | ecmaVersion: ecmaVersion
|
597 |
|
598 | /**
|
599 | * `sourceType` indicates the mode the code should be parsed in.
|
600 | * Can be either `"script"` or `"module"`. This influences global
|
601 | * strict mode and parsing of `import` and `export` declarations.
|
602 | */
|
603 | sourceType?: "script" | "module"
|
604 |
|
605 | /**
|
606 | * a callback that will be called when a semicolon is automatically inserted.
|
607 | * @param lastTokEnd the position of the comma as an offset
|
608 | * @param lastTokEndLoc location if {@link locations} is enabled
|
609 | */
|
610 | onInsertedSemicolon?: (lastTokEnd: number, lastTokEndLoc?: Position) => void
|
611 |
|
612 | |
613 |
|
614 |
|
615 |
|
616 |
|
617 | onTrailingComma?: (lastTokEnd: number, lastTokEndLoc?: Position) => void
|
618 |
|
619 | |
620 |
|
621 |
|
622 |
|
623 |
|
624 |
|
625 | allowReserved?: boolean | "never"
|
626 |
|
627 | |
628 |
|
629 |
|
630 | allowReturnOutsideFunction?: boolean
|
631 |
|
632 | |
633 |
|
634 |
|
635 |
|
636 |
|
637 | allowImportExportEverywhere?: boolean
|
638 |
|
639 | |
640 |
|
641 |
|
642 |
|
643 |
|
644 | allowAwaitOutsideFunction?: boolean
|
645 |
|
646 | |
647 |
|
648 |
|
649 |
|
650 | allowSuperOutsideMethod?: boolean
|
651 |
|
652 | |
653 |
|
654 |
|
655 |
|
656 |
|
657 | allowHashBang?: boolean
|
658 |
|
659 | |
660 |
|
661 |
|
662 |
|
663 |
|
664 | checkPrivateFields?: boolean
|
665 |
|
666 | |
667 |
|
668 |
|
669 |
|
670 |
|
671 | locations?: boolean
|
672 |
|
673 | |
674 |
|
675 |
|
676 |
|
677 |
|
678 |
|
679 | onToken?: ((token: Token) => void) | Token[]
|
680 |
|
681 |
|
682 | /**
|
683 | * This takes a export function or an array.
|
684 | *
|
685 | * When a export function is passed, Acorn will call that export function with `(block, text, start,
|
686 | * end)` parameters whenever a comment is skipped. `block` is a
|
687 | * boolean indicating whether this is a block (` |
688 |
|
689 |
|
690 |
|
691 |
|
692 |
|
693 |
|
694 |
|
695 |
|
696 |
|
697 |
|
698 |
|
699 | onComment?: ((
|
700 | isBlock: boolean, text: string, start: number, end: number, startLoc?: Position,
|
701 | endLoc?: Position
|
702 | ) => void) | Comment[]
|
703 |
|
704 | |
705 |
|
706 |
|
707 |
|
708 |
|
709 |
|
710 |
|
711 |
|
712 | ranges?: boolean
|
713 |
|
714 | |
715 |
|
716 |
|
717 |
|
718 |
|
719 |
|
720 |
|
721 | program?: Node
|
722 |
|
723 | |
724 |
|
725 |
|
726 |
|
727 | sourceFile?: string
|
728 |
|
729 | |
730 |
|
731 |
|
732 | directSourceFile?: string
|
733 |
|
734 | |
735 |
|
736 |
|
737 |
|
738 | preserveParens?: boolean
|
739 | }
|
740 |
|
741 | export class Parser {
|
742 | options: Options
|
743 | input: string
|
744 |
|
745 | protected constructor(options: Options, input: string, startPos?: number)
|
746 | parse(): Program
|
747 |
|
748 | static parse(input: string, options: Options): Program
|
749 | static parseExpressionAt(input: string, pos: number, options: Options): Expression
|
750 | static tokenizer(input: string, options: Options): {
|
751 | getToken(): Token
|
752 | [Symbol.iterator](): Iterator<Token>
|
753 | }
|
754 | static extend(...plugins: ((BaseParser: typeof Parser) => typeof Parser)[]): typeof Parser
|
755 | }
|
756 |
|
757 | export const defaultOptions: Options
|
758 |
|
759 | export function getLineInfo(input: string, offset: number): Position
|
760 |
|
761 | export class TokenType {
|
762 | label: string
|
763 | keyword: string | undefined
|
764 | }
|
765 |
|
766 | export const tokTypes: {
|
767 | num: TokenType
|
768 | regexp: TokenType
|
769 | string: TokenType
|
770 | name: TokenType
|
771 | privateId: TokenType
|
772 | eof: TokenType
|
773 |
|
774 | bracketL: TokenType
|
775 | bracketR: TokenType
|
776 | braceL: TokenType
|
777 | braceR: TokenType
|
778 | parenL: TokenType
|
779 | parenR: TokenType
|
780 | comma: TokenType
|
781 | semi: TokenType
|
782 | colon: TokenType
|
783 | dot: TokenType
|
784 | question: TokenType
|
785 | questionDot: TokenType
|
786 | arrow: TokenType
|
787 | template: TokenType
|
788 | invalidTemplate: TokenType
|
789 | ellipsis: TokenType
|
790 | backQuote: TokenType
|
791 | dollarBraceL: TokenType
|
792 |
|
793 | eq: TokenType
|
794 | assign: TokenType
|
795 | incDec: TokenType
|
796 | prefix: TokenType
|
797 | logicalOR: TokenType
|
798 | logicalAND: TokenType
|
799 | bitwiseOR: TokenType
|
800 | bitwiseXOR: TokenType
|
801 | bitwiseAND: TokenType
|
802 | equality: TokenType
|
803 | relational: TokenType
|
804 | bitShift: TokenType
|
805 | plusMin: TokenType
|
806 | modulo: TokenType
|
807 | star: TokenType
|
808 | slash: TokenType
|
809 | starstar: TokenType
|
810 | coalesce: TokenType
|
811 |
|
812 | _break: TokenType
|
813 | _case: TokenType
|
814 | _catch: TokenType
|
815 | _continue: TokenType
|
816 | _debugger: TokenType
|
817 | _default: TokenType
|
818 | _do: TokenType
|
819 | _else: TokenType
|
820 | _finally: TokenType
|
821 | _for: TokenType
|
822 | _function: TokenType
|
823 | _if: TokenType
|
824 | _return: TokenType
|
825 | _switch: TokenType
|
826 | _throw: TokenType
|
827 | _try: TokenType
|
828 | _var: TokenType
|
829 | _const: TokenType
|
830 | _while: TokenType
|
831 | _with: TokenType
|
832 | _new: TokenType
|
833 | _this: TokenType
|
834 | _super: TokenType
|
835 | _class: TokenType
|
836 | _extends: TokenType
|
837 | _export: TokenType
|
838 | _import: TokenType
|
839 | _null: TokenType
|
840 | _true: TokenType
|
841 | _false: TokenType
|
842 | _in: TokenType
|
843 | _instanceof: TokenType
|
844 | _typeof: TokenType
|
845 | _void: TokenType
|
846 | _delete: TokenType
|
847 | }
|
848 |
|
849 | export interface Comment {
|
850 | type: "Line" | "Block"
|
851 | value: string
|
852 | start: number
|
853 | end: number
|
854 | loc?: SourceLocation
|
855 | range?: [number, number]
|
856 | }
|
857 |
|
858 | export class Token {
|
859 | type: TokenType
|
860 | start: number
|
861 | end: number
|
862 | loc?: SourceLocation
|
863 | range?: [number, number]
|
864 | }
|
865 |
|
866 | export const version: string
|
867 |
|
\ | No newline at end of file |