Skip to content

compiler for a toy language, hopefully self compile soon

License

Notifications You must be signed in to change notification settings

imadr/xcompiler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

xcompiler

Steps

Tokenizer -> Parser -> Semantics (typechecking) -> Optimization -> Codegen -> Assembler -> Linker

Status

Stage Status
Tokenizer
Parser
Semantics (typechecking)
Optimization
Codegen 🔵
Assembler 🔵 using nasm
Linker 🔵 using gnu ld
vec3 : struct {
    f32 x;
    f32 y;
    f32 z;
};

add : func(a : i32, b : i32)(i32) = {
    return(a+b);
};

multiply_by_two : func(input : i32)(i32) = {
    return(input*2);
};

main : func()(i32) = {
    test := 5;
    test = multiply_by_two(test);

    a := 1;
    b := 1;
    c := add(a, b);

    test2 := vec3(x = 1.0, y = 2.0, z = 3.0);

    return(0);
};

About

compiler for a toy language, hopefully self compile soon

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published