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.
		
		
		
		
		
			
		
			
				
					115 lines
				
				2.5 KiB
			
		
		
			
		
	
	
					115 lines
				
				2.5 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								import {Node} from 'acorn';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								declare module "acorn-walk" {
							 | 
						||
| 
								 | 
							
								  type FullWalkerCallback<TState> = (
							 | 
						||
| 
								 | 
							
								    node: Node,
							 | 
						||
| 
								 | 
							
								    state: TState,
							 | 
						||
| 
								 | 
							
								    type: string
							 | 
						||
| 
								 | 
							
								  ) => void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  type FullAncestorWalkerCallback<TState> = (
							 | 
						||
| 
								 | 
							
								    node: Node,
							 | 
						||
| 
								 | 
							
								    state: TState | Node[],
							 | 
						||
| 
								 | 
							
								    ancestors: Node[],
							 | 
						||
| 
								 | 
							
								    type: string
							 | 
						||
| 
								 | 
							
								  ) => void;
							 | 
						||
| 
								 | 
							
								  type WalkerCallback<TState> = (node: Node, state: TState) => void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  type SimpleWalkerFn<TState> = (
							 | 
						||
| 
								 | 
							
								    node: Node,
							 | 
						||
| 
								 | 
							
								    state: TState
							 | 
						||
| 
								 | 
							
								  ) => void;
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								  type AncestorWalkerFn<TState> = (
							 | 
						||
| 
								 | 
							
								    node: Node,
							 | 
						||
| 
								 | 
							
								    state: TState| Node[],
							 | 
						||
| 
								 | 
							
								    ancestors: Node[]
							 | 
						||
| 
								 | 
							
								  ) => void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  type RecursiveWalkerFn<TState> = (
							 | 
						||
| 
								 | 
							
								    node: Node,
							 | 
						||
| 
								 | 
							
								    state: TState,
							 | 
						||
| 
								 | 
							
								    callback: WalkerCallback<TState>
							 | 
						||
| 
								 | 
							
								  ) => void;
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								  type SimpleVisitors<TState> = {
							 | 
						||
| 
								 | 
							
								    [type: string]: SimpleWalkerFn<TState>
							 | 
						||
| 
								 | 
							
								  };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  type AncestorVisitors<TState> = {
							 | 
						||
| 
								 | 
							
								    [type: string]: AncestorWalkerFn<TState>
							 | 
						||
| 
								 | 
							
								  };
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								  type RecursiveVisitors<TState> = {
							 | 
						||
| 
								 | 
							
								    [type: string]: RecursiveWalkerFn<TState>
							 | 
						||
| 
								 | 
							
								  };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  type FindPredicate = (type: string, node: Node) => boolean;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  interface Found<TState> {
							 | 
						||
| 
								 | 
							
								    node: Node,
							 | 
						||
| 
								 | 
							
								    state: TState
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  export function simple<TState>(
							 | 
						||
| 
								 | 
							
								    node: Node,
							 | 
						||
| 
								 | 
							
								    visitors: SimpleVisitors<TState>,
							 | 
						||
| 
								 | 
							
								    base?: RecursiveVisitors<TState>,
							 | 
						||
| 
								 | 
							
								    state?: TState
							 | 
						||
| 
								 | 
							
								  ): void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  export function ancestor<TState>(
							 | 
						||
| 
								 | 
							
								    node: Node,
							 | 
						||
| 
								 | 
							
								    visitors: AncestorVisitors<TState>,
							 | 
						||
| 
								 | 
							
								    base?: RecursiveVisitors<TState>,
							 | 
						||
| 
								 | 
							
								    state?: TState
							 | 
						||
| 
								 | 
							
								  ): void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  export function recursive<TState>(
							 | 
						||
| 
								 | 
							
								    node: Node,
							 | 
						||
| 
								 | 
							
								    state: TState,
							 | 
						||
| 
								 | 
							
								    functions: RecursiveVisitors<TState>,
							 | 
						||
| 
								 | 
							
								    base?: RecursiveVisitors<TState>
							 | 
						||
| 
								 | 
							
								  ): void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  export function full<TState>(
							 | 
						||
| 
								 | 
							
								    node: Node,
							 | 
						||
| 
								 | 
							
								    callback: FullWalkerCallback<TState>,
							 | 
						||
| 
								 | 
							
								    base?: RecursiveVisitors<TState>,
							 | 
						||
| 
								 | 
							
								    state?: TState
							 | 
						||
| 
								 | 
							
								  ): void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  export function fullAncestor<TState>(
							 | 
						||
| 
								 | 
							
								    node: Node,
							 | 
						||
| 
								 | 
							
								    callback: FullAncestorWalkerCallback<TState>,
							 | 
						||
| 
								 | 
							
								    base?: RecursiveVisitors<TState>,
							 | 
						||
| 
								 | 
							
								    state?: TState
							 | 
						||
| 
								 | 
							
								  ): void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  export function make<TState>(
							 | 
						||
| 
								 | 
							
								    functions: RecursiveVisitors<TState>,
							 | 
						||
| 
								 | 
							
								    base?: RecursiveVisitors<TState>
							 | 
						||
| 
								 | 
							
								  ): RecursiveVisitors<TState>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  export function findNodeAt<TState>(
							 | 
						||
| 
								 | 
							
								    node: Node,
							 | 
						||
| 
								 | 
							
								    start: number | undefined,
							 | 
						||
| 
								 | 
							
								    end?: number | undefined,
							 | 
						||
| 
								 | 
							
								    type?: FindPredicate | string,
							 | 
						||
| 
								 | 
							
								    base?: RecursiveVisitors<TState>,
							 | 
						||
| 
								 | 
							
								    state?: TState
							 | 
						||
| 
								 | 
							
								  ): Found<TState> | undefined;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  export function findNodeAround<TState>(
							 | 
						||
| 
								 | 
							
								    node: Node,
							 | 
						||
| 
								 | 
							
								    start: number | undefined,
							 | 
						||
| 
								 | 
							
								    type?: FindPredicate | string,
							 | 
						||
| 
								 | 
							
								    base?: RecursiveVisitors<TState>,
							 | 
						||
| 
								 | 
							
								    state?: TState
							 | 
						||
| 
								 | 
							
								  ): Found<TState> | undefined;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  export const findNodeAfter: typeof findNodeAround;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  export const base: RecursiveVisitors<any>;
							 | 
						||
| 
								 | 
							
								}
							 |