You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					253 lines
				
				6.1 KiB
			
		
		
			
		
	
	
					253 lines
				
				6.1 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								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
							 | 
						||
| 
								 | 
							
								}
							 |