UNPKG

typescript-to-lua

Version:

A generic TypeScript to Lua transpiler. Write your code in TypeScript and publish Lua!

91 lines (90 loc) 5.05 kB
import { SourceNode } from "source-map"; import * as ts from "typescript"; import { CompilerOptions } from "./CompilerOptions"; import * as lua from "./LuaAST"; import { EmitHost } from "./transpilation"; export declare const escapeString: (value: string) => string; export declare const tstlHeader = "--[[ Generated with https://github.com/TypeScriptToLua/TypeScriptToLua ]]\n"; type SourceChunk = string | SourceNode; export type Printer = (program: ts.Program, emitHost: EmitHost, fileName: string, file: lua.File) => PrintResult; export interface PrintResult { code: string; sourceMap: string; sourceMapNode: SourceNode; } export declare function createPrinter(printers: Printer[]): Printer; export declare class LuaPrinter { private emitHost; private program; private sourceFile; private static operatorMap; private static operatorPrecedence; private static rightAssociativeOperators; protected currentIndent: string; protected luaFile: string; protected relativeSourcePath: string; protected options: CompilerOptions; static readonly sourceMapTracebackPlaceholder = "{#SourceMapTraceback}"; constructor(emitHost: EmitHost, program: ts.Program, sourceFile: string); print(file: lua.File): PrintResult; private printInlineSourceMap; private printStackTraceOverride; protected printFile(file: lua.File): SourceNode; protected pushIndent(): void; protected popIndent(): void; protected indent(input?: SourceChunk): SourceChunk; protected createSourceNode(node: lua.Node, chunks: SourceChunk | SourceChunk[], name?: string): SourceNode; protected concatNodes(...chunks: SourceChunk[]): SourceNode; protected printBlock(block: lua.Block): SourceNode; private statementMayRequireSemiColon; private nodeStartsWithParenthesis; protected printStatementArray(statements: lua.Statement[]): SourceChunk[]; printStatement(statement: lua.Statement): SourceNode; printComment(comment: string | string[]): SourceChunk; protected printStatementExcludingComments(statement: lua.Statement): SourceNode; printDoStatement(statement: lua.DoStatement): SourceNode; printVariableDeclarationStatement(statement: lua.VariableDeclarationStatement): SourceNode; printVariableAssignmentStatement(statement: lua.AssignmentStatement): SourceNode; printIfStatement(statement: lua.IfStatement, isElseIf?: boolean): SourceNode; printWhileStatement(statement: lua.WhileStatement): SourceNode; printRepeatStatement(statement: lua.RepeatStatement): SourceNode; printForStatement(statement: lua.ForStatement): SourceNode; printForInStatement(statement: lua.ForInStatement): SourceNode; printGotoStatement(statement: lua.GotoStatement): SourceNode; printLabelStatement(statement: lua.LabelStatement): SourceNode; printReturnStatement(statement: lua.ReturnStatement): SourceNode; printBreakStatement(statement: lua.BreakStatement): SourceNode; printContinueStatement(statement: lua.ContinueStatement): SourceNode; printExpressionStatement(statement: lua.ExpressionStatement): SourceNode; printExpression(expression: lua.Expression): SourceNode; printStringLiteral(expression: lua.StringLiteral): SourceNode; printNumericLiteral(expression: lua.NumericLiteral): SourceNode; printNilLiteral(expression: lua.NilLiteral): SourceNode; printDotsLiteral(expression: lua.DotsLiteral): SourceNode; printArgLiteral(expression: lua.ArgLiteral): SourceNode; printBooleanLiteral(expression: lua.BooleanLiteral): SourceNode; private printFunctionParameters; printFunctionExpression(expression: lua.FunctionExpression): SourceNode; printFunctionDefinition(statement: lua.FunctionDefinition): SourceNode; printTableFieldExpression(expression: lua.TableFieldExpression): SourceNode; printTableExpression(expression: lua.TableExpression): SourceNode; printUnaryExpression(expression: lua.UnaryExpression): SourceNode; printBinaryExpression(expression: lua.BinaryExpression): SourceNode; private printExpressionInParenthesesIfNeeded; private needsParenthesis; printCallExpression(expression: lua.CallExpression): SourceNode; printMethodCallExpression(expression: lua.MethodCallExpression): SourceNode; printIdentifier(expression: lua.Identifier): SourceNode; printTableIndexExpression(expression: lua.TableIndexExpression): SourceNode; printParenthesizedExpression(expression: lua.ParenthesizedExpression): SourceNode; printConditionalExpression(expression: lua.ConditionalExpression): SourceNode; printOperator(kind: lua.Operator): SourceNode; protected joinChunksWithComma(chunks: SourceChunk[]): SourceChunk[]; /** * Returns true if the expression list (table field or parameters) should be printed on one line. */ protected isSimpleExpressionList(expressions: lua.Expression[]): boolean; protected printExpressionList(expressions: lua.Expression[]): SourceChunk[]; private buildSourceMap; } export {};