typescript-to-lua
Version:
A generic TypeScript to Lua transpiler. Write your code in TypeScript and publish Lua!
72 lines (71 loc) • 3.99 kB
TypeScript
import * as ts from "typescript";
import { TransformationContext } from "../context";
export declare enum ExtensionKind {
MultiFunction = "MultiFunction",
RangeFunction = "RangeFunction",
VarargConstant = "VarargConstant",
AdditionOperatorType = "Addition",
AdditionOperatorMethodType = "AdditionMethod",
SubtractionOperatorType = "Subtraction",
SubtractionOperatorMethodType = "SubtractionMethod",
MultiplicationOperatorType = "Multiplication",
MultiplicationOperatorMethodType = "MultiplicationMethod",
DivisionOperatorType = "Division",
DivisionOperatorMethodType = "DivisionMethod",
ModuloOperatorType = "Modulo",
ModuloOperatorMethodType = "ModuloMethod",
PowerOperatorType = "Power",
PowerOperatorMethodType = "PowerMethod",
FloorDivisionOperatorType = "FloorDivision",
FloorDivisionOperatorMethodType = "FloorDivisionMethod",
BitwiseAndOperatorType = "BitwiseAnd",
BitwiseAndOperatorMethodType = "BitwiseAndMethod",
BitwiseOrOperatorType = "BitwiseOr",
BitwiseOrOperatorMethodType = "BitwiseOrMethod",
BitwiseExclusiveOrOperatorType = "BitwiseExclusiveOr",
BitwiseExclusiveOrOperatorMethodType = "BitwiseExclusiveOrMethod",
BitwiseLeftShiftOperatorType = "BitwiseLeftShift",
BitwiseLeftShiftOperatorMethodType = "BitwiseLeftShiftMethod",
BitwiseRightShiftOperatorType = "BitwiseRightShift",
BitwiseRightShiftOperatorMethodType = "BitwiseRightShiftMethod",
ConcatOperatorType = "Concat",
ConcatOperatorMethodType = "ConcatMethod",
LessThanOperatorType = "LessThan",
LessThanOperatorMethodType = "LessThanMethod",
GreaterThanOperatorType = "GreaterThan",
GreaterThanOperatorMethodType = "GreaterThanMethod",
NegationOperatorType = "Negation",
NegationOperatorMethodType = "NegationMethod",
BitwiseNotOperatorType = "BitwiseNot",
BitwiseNotOperatorMethodType = "BitwiseNotMethod",
LengthOperatorType = "Length",
LengthOperatorMethodType = "LengthMethod",
TableNewType = "TableNew",
TableDeleteType = "TableDelete",
TableDeleteMethodType = "TableDeleteMethod",
TableGetType = "TableGet",
TableGetMethodType = "TableGetMethod",
TableHasType = "TableHas",
TableHasMethodType = "TableHasMethod",
TableSetType = "TableSet",
TableSetMethodType = "TableSetMethod",
TableAddKeyType = "TableAddKey",
TableAddKeyMethodType = "TableAddKeyMethod",
TableIsEmptyType = "TableIsEmpty",
TableIsEmptyMethodType = "TableIsEmptyMethod"
}
export declare function getExtensionKindForType(context: TransformationContext, type: ts.Type): ExtensionKind | undefined;
export declare function getExtensionKindForNode(context: TransformationContext, node: ts.Node): ExtensionKind | undefined;
export declare function getExtensionKindForSymbol(context: TransformationContext, symbol: ts.Symbol): ExtensionKind | undefined;
export declare enum IterableExtensionKind {
Iterable = "Iterable",
Pairs = "Pairs",
PairsKey = "PairsKey"
}
export declare function isLuaIterable(context: TransformationContext, type: ts.Type): boolean;
export declare function getIterableExtensionTypeForType(context: TransformationContext, type: ts.Type): IterableExtensionKind | undefined;
export declare function getIterableExtensionKindForNode(context: TransformationContext, node: ts.Node): IterableExtensionKind | undefined;
export declare const methodExtensionKinds: ReadonlySet<ExtensionKind>;
export declare function getNaryCallExtensionArgs(context: TransformationContext, node: ts.CallExpression, kind: ExtensionKind, numArgs: number): readonly ts.Expression[] | undefined;
export declare function getUnaryCallExtensionArg(context: TransformationContext, node: ts.CallExpression, kind: ExtensionKind): ts.Expression | undefined;
export declare function getBinaryCallExtensionArgs(context: TransformationContext, node: ts.CallExpression, kind: ExtensionKind): readonly [ts.Expression, ts.Expression] | undefined;