UNPKG

@abaplint/transpiler

Version:
62 lines (61 loc) 3.98 kB
import * as abaplint from "@abaplint/core"; import { Chunk } from "./chunk"; import { ITranspilerOptions } from "./types"; export declare class Traversal { private readonly spaghetti; private readonly file; private readonly obj; readonly reg: abaplint.IRegistry; readonly options: ITranspilerOptions | undefined; constructor(spaghetti: abaplint.ISpaghettiScope, file: abaplint.ABAPFile, obj: abaplint.ABAPObject, reg: abaplint.IRegistry, options?: ITranspilerOptions); static escapeNamespace(name: string | undefined): string | undefined; static prefixVariable(name: string | undefined): string; getCurrentObject(): abaplint.ABAPObject; traverse(node: abaplint.INode | undefined): Chunk; getFilename(): string; getFile(): abaplint.ABAPFile; getSpaghetti(): abaplint.ISpaghettiScope; /** finds a statement in the _current_ file given a position */ findStatementInFile(pos: abaplint.Position): abaplint.Nodes.StatementNode | undefined; private scopeCache; findCurrentScopeByToken(token: abaplint.Token): abaplint.ISpaghettiScopeNode | undefined; private fuctionGroupWorkaround; getInterfaceDefinition(token: abaplint.Token): abaplint.IInterfaceDefinition | undefined; getClassDefinition(token: abaplint.Token): abaplint.IClassDefinition | undefined; private isClassAttribute; prefixAndName(t: abaplint.Token, filename?: string): string; private isStaticClassAttribute; buildMethods(def: abaplint.IClassDefinition | abaplint.IInterfaceDefinition | undefined, _scope: abaplint.ISpaghettiScopeNode | undefined): string[]; private mapVisibility; buildAttributes(def: abaplint.IClassDefinition | abaplint.IInterfaceDefinition | undefined, scope: abaplint.ISpaghettiScopeNode | undefined, prefix?: string): Set<string>; isBuiltinMethod(token: abaplint.Token): boolean; isSQLConversion(token: abaplint.Token): string | undefined; findMethodReference(token: abaplint.Token, scope: abaplint.ISpaghettiScopeNode | undefined): undefined | { def: abaplint.Types.MethodDefinition; name: string; }; private isBuiltinVariable; isTypePool(token: abaplint.Token): string | undefined; isInterfaceAttribute(token: abaplint.Token): string | undefined; private findReadOrWriteReference; private buildThisAttributes; private buildFriendsAccess; buildConstructorContents(scope: abaplint.ISpaghettiScopeNode | undefined, def: abaplint.IClassDefinition): string; findInterfaceDefinition(name: string, scope: abaplint.ISpaghettiScopeNode | undefined): abaplint.IInterfaceDefinition | undefined; findTable(name: string): abaplint.Objects.Table | undefined; findClassDefinition(name: string | undefined, scope: abaplint.ISpaghettiScopeNode | undefined): abaplint.IClassDefinition | undefined; private dataFromInterfaces; private aliasesFromInterfaces; determineType(node: abaplint.Nodes.ExpressionNode | abaplint.Nodes.StatementNode, scope: abaplint.ISpaghettiScopeNode | undefined): abaplint.AbstractType | undefined; isInsideLoop(node: abaplint.Nodes.StatementNode): boolean; isInsideDoOrWhile(node: abaplint.Nodes.StatementNode): boolean; registerClassOrInterface(def: abaplint.IClassDefinition | abaplint.IInterfaceDefinition | undefined): string; setValues(identifier: abaplint.TypedIdentifier, name: string): string; static setValues(identifier: abaplint.TypedIdentifier, name: string): string; buildInternalName(name: string, def: abaplint.IClassDefinition | abaplint.IInterfaceDefinition | undefined): string; lookupClassOrInterface(name: string | undefined, token: abaplint.Token | undefined, directGlobal?: boolean): string; buildPrefix(): string; protected traverseStructure(node: abaplint.Nodes.StructureNode): Chunk; protected traverseStatement(node: abaplint.Nodes.StatementNode): Chunk; protected traverseExpression(node: abaplint.Nodes.ExpressionNode): Chunk; }