sparc(ish) transpiler
anna, joanna
note:
this is sparc(ish), with emphasis on the ish. the original sparc specification is clear enough for humans to read and understand, but too ambiguous for a computer to scan and process. we had to modify the specification to 1) be typable on a keyboard (i.e. to not use mathematical symbols) and 2) disambiguate ambiguous things. an example of something ambiguous:
let 
  x = a 
  y = b 
in x end
as a human (👀), we can see that we're binding a to x and b to y. however, when scanning the code, the parser sees let x = a y = b in x end, which could be interpreted as intended or as binding (a y) = b to x. thus, we modified the sparc specification to disambiguate things like this.
there are also a few bugs...
input:
(be careful copy/pasting...)
tab size: 2 spaces
line width: 80
output: