Monday night decompiler shenenigans

This commit is contained in:
dcodeIO
2017-12-12 04:35:30 +01:00
parent ad1fbcf5b2
commit 7a5f7dba50
7 changed files with 842 additions and 105 deletions

View File

@@ -24,6 +24,7 @@ import { Compiler, Options, Target } from "./compiler";
import { DiagnosticMessage, DiagnosticCategory, formatDiagnosticMessage } from "./diagnostics";
import { Parser } from "./parser";
import { Program } from "./program";
import { Decompiler } from "./decompiler";
/** Parses a single source file. If `parser` has been omitted a new one is created. */
export function parseFile(text: string, path: string, parser: Parser | null = null, isEntry: bool = false): Parser {
@@ -94,3 +95,10 @@ export function compile(parser: Parser, options: Options | null = null): Module
const compiler: Compiler = new Compiler(program, options);
return compiler.compile();
}
/** Decompiles a module to its (low level) source. */
export function decompile(module: Module): string {
const decompiler: Decompiler = new Decompiler();
decompiler.decompile(module);
return decompiler.finish();
}