The project's development has been split up into subset implementations. Instead of implementing everything at once, a specific subset of the language will be implemented. This is then repeated until the compilers works with the entire language. The advantage of this is fast, lighter implementation phases which will work well with university (sometime I have a lot of free time, other time I have very little).
This subset implementation takes course over January. Unfortunately, January is an exam period for me and therefore this implementation is light, with only basic programming concepts being implemented.
Subset 1 implementation features
This implementation phase focuses on common programming concepts such as variables, constants, while loops, if-else statements, and basic input/output (println and input). Only the types int and string will be implemented, with no methods or traits provided for them.
/* This is everything that is in this implementation phase. */
let x int = (1 + 5 + 4) / 10 * 5
const msg string = "Hello, World"
if (x*3) == 20 {
println(msg)
} else if 3 + 7 / 10 > x {
println("hahaha")
} else {
println("Nah")
}
let user_input = input("Input ")
while x > 0 {
for c in user_input {
x -= 1
}
}
println("That's it I guess!")
Tasks
I expect more issues will be created from this list for feature tracking.
The project's development has been split up into subset implementations. Instead of implementing everything at once, a specific subset of the language will be implemented. This is then repeated until the compilers works with the entire language. The advantage of this is fast, lighter implementation phases which will work well with university (sometime I have a lot of free time, other time I have very little).
This subset implementation takes course over January. Unfortunately, January is an exam period for me and therefore this implementation is light, with only basic programming concepts being implemented.
Subset 1 implementation features
This implementation phase focuses on common programming concepts such as variables, constants, while loops, if-else statements, and basic input/output (println and input). Only the types
intandstringwill be implemented, with no methods or traits provided for them.Tasks
dragon <file.drg>-h,--help- Display helpful information-l,--lex- stop after lexing and print tokens-p,--parse- stop after parsing and print AST-c,--check- stop after type checking and print AST-g,--gen- stop after code generation and print LLVM IR-o,--output- Change output nameI expect more issues will be created from this list for feature tracking.