| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252 | export as namespace acornexport = acorndeclare 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}
 |