feat: implements binary operators in asmGenerator

Co-authored-by: Gleb Koval <gleb@koval.net>
Co-authored-by: Barf-Vader <Barf-Vader@users.noreply.github.com>
This commit is contained in:
Guy C
2025-02-25 00:00:12 +00:00
parent 668d7338ae
commit 1488281223
4 changed files with 285 additions and 109 deletions

View File

@@ -69,13 +69,15 @@ object microWacc {
// Statements
sealed trait Stmt
case class Builtin(val name: String)(retTy: SemType) extends CallTarget(retTy) {
override def toString(): String = name
}
object Builtin {
case object ReadInt extends CallTarget(KnownType.Int)
case object ReadChar extends CallTarget(KnownType.Char)
case object Print extends CallTarget(?)
case object Println extends CallTarget(?)
case object Exit extends CallTarget(?)
case object Free extends CallTarget(?)
object Read extends Builtin("read")(?)
object Printf extends Builtin("printf")(?)
object Exit extends Builtin("exit")(?)
object Free extends Builtin("free")(?)
object Malloc extends Builtin("malloc")(?)
}
case class Assign(lhs: LValue, rhs: Expr) extends Stmt