123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252 |
- export as namespace acorn
- export = acorn
- declare namespace acorn {
- function parse(input: string, options: Options): Node
- function parseExpressionAt(input: string, pos: number, options: Options): Node
- function tokenizer(input: string, options: Options): {
- getToken(): Token
- [Symbol.iterator](): Iterator<Token>
- }
- type ecmaVersion = 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 2015 | 2016 | 2017 | 2018 | 2019 | 2020 | 2021 | 2022 | 'latest'
- interface Options {
- ecmaVersion: ecmaVersion
- sourceType?: 'script' | 'module'
- onInsertedSemicolon?: (lastTokEnd: number, lastTokEndLoc?: Position) => void
- onTrailingComma?: (lastTokEnd: number, lastTokEndLoc?: Position) => void
- allowReserved?: boolean | 'never'
- allowReturnOutsideFunction?: boolean
- allowImportExportEverywhere?: boolean
- allowAwaitOutsideFunction?: boolean
- allowSuperOutsideMethod?: boolean
- allowHashBang?: boolean
- locations?: boolean
- onToken?: ((token: Token) => any) | Token[]
- onComment?: ((
- isBlock: boolean, text: string, start: number, end: number, startLoc?: Position,
- endLoc?: Position
- ) => void) | Comment[]
- ranges?: boolean
- program?: Node
- sourceFile?: string
- directSourceFile?: string
- preserveParens?: boolean
- }
- class Parser {
- // state.js
- lineStart: number;
- options: Options;
- curLine: number;
- start: number;
- end: number;
- input: string;
- type: TokenType;
- // state.js
- constructor(options: Options, input: string, startPos?: number)
- parse(this: Parser): Node
- // tokenize.js
- next(): void;
- nextToken(): void;
- // statement.js
- parseTopLevel(node: Node): Node;
- // node.js
- finishNode(node: Node, type: string): Node;
- finishNodeAt(node: Node, type: string, pos: number, loc: Position): Node;
- // location.js
- raise(pos: number, message: string) : void;
- raiseRecoverable?(pos: number, message: string) : void;
- // parseutils.js
- unexpected(pos: number) : void;
- // index.js
- static acorn: typeof acorn;
- // state.js
- static parse(this: typeof Parser, input: string, options: Options): Node
- static parseExpressionAt(this: typeof Parser, input: string, pos: number, options: Options): Node
- static tokenizer(this: typeof Parser, input: string, options: Options): {
- getToken(): Token
- [Symbol.iterator](): Iterator<Token>
- }
- static extend(this: typeof Parser, ...plugins: ((BaseParser: typeof Parser) => typeof Parser)[]): typeof Parser
- }
- interface Position { line: number; column: number; offset: number }
- const defaultOptions: Options
- function getLineInfo(input: string, offset: number): Position
- class SourceLocation {
- start: Position
- end: Position
- source?: string | null
- constructor(p: Parser, start: Position, end: Position)
- }
- class Node {
- type: string
- start: number
- end: number
- loc?: SourceLocation
- sourceFile?: string
- range?: [number, number]
- constructor(parser: Parser, pos: number, loc?: SourceLocation)
- }
- class TokenType {
- label: string
- keyword: string
- beforeExpr: boolean
- startsExpr: boolean
- isLoop: boolean
- isAssign: boolean
- prefix: boolean
- postfix: boolean
- binop: number
- updateContext?: (prevType: TokenType) => void
- constructor(label: string, conf?: any)
- }
- const tokTypes: {
- num: TokenType
- regexp: TokenType
- string: TokenType
- name: TokenType
- privateId: TokenType
- eof: TokenType
- bracketL: TokenType
- bracketR: TokenType
- braceL: TokenType
- braceR: TokenType
- parenL: TokenType
- parenR: TokenType
- comma: TokenType
- semi: TokenType
- colon: TokenType
- dot: TokenType
- question: TokenType
- questionDot: TokenType
- arrow: TokenType
- template: TokenType
- invalidTemplate: TokenType
- ellipsis: TokenType
- backQuote: TokenType
- dollarBraceL: TokenType
- eq: TokenType
- assign: TokenType
- incDec: TokenType
- prefix: TokenType
- logicalOR: TokenType
- logicalAND: TokenType
- bitwiseOR: TokenType
- bitwiseXOR: TokenType
- bitwiseAND: TokenType
- equality: TokenType
- relational: TokenType
- bitShift: TokenType
- plusMin: TokenType
- modulo: TokenType
- star: TokenType
- slash: TokenType
- starstar: TokenType
- coalesce: TokenType
- _break: TokenType
- _case: TokenType
- _catch: TokenType
- _continue: TokenType
- _debugger: TokenType
- _default: TokenType
- _do: TokenType
- _else: TokenType
- _finally: TokenType
- _for: TokenType
- _function: TokenType
- _if: TokenType
- _return: TokenType
- _switch: TokenType
- _throw: TokenType
- _try: TokenType
- _var: TokenType
- _const: TokenType
- _while: TokenType
- _with: TokenType
- _new: TokenType
- _this: TokenType
- _super: TokenType
- _class: TokenType
- _extends: TokenType
- _export: TokenType
- _import: TokenType
- _null: TokenType
- _true: TokenType
- _false: TokenType
- _in: TokenType
- _instanceof: TokenType
- _typeof: TokenType
- _void: TokenType
- _delete: TokenType
- }
- class TokContext {
- constructor(token: string, isExpr: boolean, preserveSpace: boolean, override?: (p: Parser) => void)
- }
- const tokContexts: {
- b_stat: TokContext
- b_expr: TokContext
- b_tmpl: TokContext
- p_stat: TokContext
- p_expr: TokContext
- q_tmpl: TokContext
- f_expr: TokContext
- f_stat: TokContext
- f_expr_gen: TokContext
- f_gen: TokContext
- }
- function isIdentifierStart(code: number, astral?: boolean): boolean
- function isIdentifierChar(code: number, astral?: boolean): boolean
- interface AbstractToken {
- }
- interface Comment extends AbstractToken {
- type: 'Line' | 'Block'
- value: string
- start: number
- end: number
- loc?: SourceLocation
- range?: [number, number]
- }
- class Token {
- type: TokenType
- value: any
- start: number
- end: number
- loc?: SourceLocation
- range?: [number, number]
- constructor(p: Parser)
- }
- function isNewLine(code: number): boolean
- const lineBreak: RegExp
- const lineBreakG: RegExp
- const version: string
- }
|