Commit Graph

6 Commits

Author SHA1 Message Date
Enrico Lumetti e4d469ea95 Fix rvar subtraction, convert tests to rackunit 2022-08-10 23:33:20 +02:00
Enrico Lumetti e3636d0b05 Introduce different remove-complex-opera* pass
This pass only allows arguments to be variables.
The resulting language is:

let-expr := (Let symbol <simple-expr> <expr>)
simple-expr: (Int num) | (Var symbol) | (Prim op (list-of-symbols))
expr := let-expr | simple-expr
top-level := let-expr

Notably, every top level expression is assigned to a (temporary) variable.
This subset of CVar is particularly easy to translate into bril IR.
2022-05-01 22:46:36 +02:00
Enrico Lumetti 0929ef05f9 Add CVar language and interpreter 2022-05-01 16:02:34 +02:00
Enrico Lumetti 5b1f580ed8 Convert remove-complex-opera* to new data structures 2022-04-30 18:01:54 +02:00
Enrico Lumetti 04c8ab0297 Port uniquify to new structures 2021-11-14 12:20:08 +01:00
Enrico Lumetti 7b8ea0b6f4 Port c2 to rvar 2021-10-21 13:15:37 +02:00