Closed KabirSamsi closed 4 months ago
An unfortunate realization I'm having is that #42 seems to implement most of the code fixes I thought of for this PR. It's up to @anshumanmohan about how we should reconcile these, but I think that the three main issues of #42 are all addressed here:
1) Flattening
2) Fixing (and properly organizing) parsing & pretty printing
3) Cleaning up string_of_policy
.
Never mind, I think we're ok! I managed to merge and reconcile changes from main
into here, and everything still works :)
I think I've accounted for everything that was asked for now!
37 gave us an interpreter and well-formedness checker. #41 gave us the ability to express non-work conserving policies in the DSL.
Unfortunately, the parallel progress on both of these tracks means that the interpreter, along with pretty-printing functionality, was released without accounting for the latest policies in the DSL. This PR attempts to fix that by extending the functionality of the interpreter. This also introduces adds test scripts for the programs for the new policies, cleans up the code for evaluation and pretty printing and ensures that the types are properly flattened throughout the evaluator.