UNPKG

onelang

Version:

OneLang transpiler framework core

62 lines (61 loc) 2.83 kB
import { OneAst as one } from "../Ast"; import { SchemaContext } from "../SchemaContext"; import { AstTransformer } from "../AstTransformer"; export declare enum ReferenceType { Class = 0, Method = 1, MethodVariable = 2, ClassVariable = 3 } export declare class Reference { type: ReferenceType; className: string; methodName: string; variableName: string; } export declare class GenericsMapping { map: { [genericName: string]: one.Type; }; constructor(map: { [genericName: string]: one.Type; }); static log(data: string): void; static create(cls: one.Interface, realClassType: one.Type): GenericsMapping; replace(type: one.Type): one.Type; } export declare class InferTypesTransform extends AstTransformer<void> { schemaCtx: SchemaContext; methodReturnTypes: one.Type[]; constructor(schemaCtx: SchemaContext); protected visitType(type: one.Type): void; protected visitIdentifier(id: one.Identifier): void; protected visitTemplateString(expr: one.TemplateString): void; protected syncTypes(type1: one.Type, type2: one.Type): one.Type; protected visitVariableDeclaration(stmt: one.VariableDeclaration): void; protected visitCastExpression(expr: one.CastExpression): void; protected visitForeachStatement(stmt: one.ForeachStatement): void; protected visitBinaryExpression(expr: one.BinaryExpression): void; protected visitConditionalExpression(expr: one.ConditionalExpression): void; protected visitReturnStatement(stmt: one.ReturnStatement): void; protected visitUnaryExpression(expr: one.UnaryExpression): void; protected visitElementAccessExpression(expr: one.ElementAccessExpression): void; protected visitCallExpression(expr: one.CallExpression): void; protected visitNewExpression(expr: one.NewExpression): void; protected visitLiteral(expr: one.Literal): void; protected visitParenthesizedExpression(expr: one.ParenthesizedExpression): void; protected visitPropertyAccessExpression(expr: one.PropertyAccessExpression): void; protected visitArrayLiteral(expr: one.ArrayLiteral): void; protected visitMapLiteral(expr: one.MapLiteral): void; protected visitExpression(expression: one.Expression): void; protected visitClassReference(expr: one.ClassReference): void; protected visitEnumReference(expr: one.EnumReference): void; protected visitThisReference(expr: one.ThisReference): void; protected visitVariableRef(expr: one.VariableRef): void; protected visitMethodReference(expr: one.MethodReference): void; protected visitMethod(method: one.Method): void; protected visitClass(cls: one.Class): void; protected visitInterface(intf: one.Interface): void; protected visitEnum(enum_: one.Enum): void; transform(): void; }