Update printers to match BinCaml input#627
Conversation
|
is meant to be a function taking two arguments and returning o1? is this what basil outputs? it seems like an incorrect application of currying.. |
|
val name : type Honestly, looking over the grammar, I am unsure why this parses, but it does and gives map (map (bv64, map(bv64, bv64)) , bv64) that doesnt make sense though, but removing the brackets does I think? (which I think is what you were saying)
which gets parsed like (a1 -> (a2 -> o1)) |
katrinafyi
left a comment
There was a problem hiding this comment.
can you also add a minimal test case?
Co-authored-by: Kait <39479354+katrinafyi@users.noreply.github.com>
edited the failing test case to match the new syntax, it looks like the is just loading it, did you want a test that tests printing it too? |
separator admits an optional trailing `->` which was consuming
the `->` and causing the
"(" [Type] ")" "->" Type ;
rule to fail to match.
katrinafyi
left a comment
There was a problem hiding this comment.
@JTrenerry i've pushed some commits to fix the parser test. let me know if you approve.
the sbasil grammar is quite outdated atm and this is really just a stop-gap until we bring the grammar more up to date with obasil, e.g. with #591.
also, sbasil doesn't even store the uninterpreted functions into the IR....
The output of BASIL does not match the input of BinCaml in a couple places, this updates that to output what it expects.
Uninterp function should be a more function programming looking function i.e.
name : (a1 -> a2) -> o1TODO
Variables can no longer have
.in the name, the current idea is just to map them to be _ instead, but I don't like that idea and I would love something better.