Just a language for me to understand writting compilers.
// Sample code
let x = 60 + 9 + 2 - 2;
let y = 96;
exit(x);Program{
.stmts=[
Statement{
.statement=Let{
.identifier=Token{.type=5, .value=x},
.expression=Expression{
.expression=Operation{
.left=Expression{
.expression=Term{
.expression=IntLiteral{
.int_lit=Token{.type=2, .value=60}
}
}
},
.operator=Token{.type=8, .value=+},
.right=Expression{
.expression=Operation{
.left=Expression{
.expression=Term{
.expression=IntLiteral{.int_lit=Token{.type=2, .value=9}}
}
},
.operator=Token{.type=8, .value=+},
.right=Expression{
.expression=Operation{
.left=Expression{
.expression=Term{
.expression=IntLiteral{.int_lit=Token{.type=2, .value=2}}
}
},
.operator=Token{.type=8, .value=-},
.right=Expression{
.expression=Term{
.expression=IntLiteral{.int_lit=Token{.type=2, .value=2}}
}
}
}
}
}
}
}
}
}
},
Statement{
.statement=Let{
.identifier=Token{.type=5, .value=y},
.expression=Expression{
.expression=Term{
.expression=IntLiteral{.int_lit=Token{.type=2, .value=96}}
}
}
}
},
Statement{
.statement=Exit{
.expression=Expression{
.expression=Term{
.expression=Identifier{
.int_lit=Token{.type=5, .value=x}
}
}
}
}
},
]
}- CMake
- Just
just build./build/helium <input.he> <output>./build/helium test/test.he out && ./out; echo $?