A modern Typescript transpiler to llvm
npm i -g native-ts
to get help on how to compile your typescript code, just run the following command:
native-ts --help
This program converts typescript code into native binary code or into llvm code.
typescript code:
class Hello { constructor() {} sayHi() { console.log("Hi!"); } } var hello = new Hello(); hello.sayHi();
llvm IR:
; ModuleID = 'main' source_filename = "main" %Hello = type {} %string = type { i8*, i32 } @0 = private unnamed_addr constant [4 x i8] c"Hi!00円", align 1 declare i32 @main() define i32 @main.1() { entry: %0 = call %Hello* @Hello__constructor() %hello = alloca %Hello* store %Hello* %0, %Hello** %hello %hello.load = load %Hello*, %Hello** %hello call void @Hello__sayHi(%Hello* %hello.load) ret i32 0 } define %Hello* @Hello__constructor() { entry: %0 = call i8* @gc__allocate(i32 0) %1 = bitcast i8* %0 to %Hello* ret %Hello* %1 } declare i8* @gc__allocate(i32) define void @Hello__sayHi(%Hello* %this) { entry: call void @console__log(%string { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @0, i32 0, i32 0), i32 3 }) ret void } declare void @console__log(%string)
This are the sources to make this project exis.