import ASTNode from "../ast/ASTNode"; import ASTAssembler from "../ASTAssembler"; import CodeSpan from "../CodeSpan"; import Token from "../Token"; export declare enum SymbolKind { MODULE = 0, FUNCTION = 1, VARIABLE = 2 } /** * Generates a symbol tree for the outline view in vscode. * It uses AST assembler to walk down the tree and determine the full range of a symbol. */ export default class ASTSymbolLister extends ASTAssembler { makeSymbol: (name: string, kind: SymbolKind, fullRange: CodeSpan, nameRange: CodeSpan, children: SymType[]) => SymType; constructor(makeSymbol: (name: string, kind: SymbolKind, fullRange: CodeSpan, nameRange: CodeSpan, children: SymType[]) => SymType); /** * Returns the node at pinpointLocation and populates bottomUpHierarchy. * @param n The AST (or AST fragment) to search through. */ doList(n: ASTNode): SymType[]; private symbolsAtCurrentDepth; protected processAssembledNode(t: (Token | (() => Token[]))[], self: ASTNode): Token[]; }