Skip to content

Instantly share code, notes, and snippets.

@leque
Last active February 1, 2023 15:30
Show Gist options
  • Save leque/627f404bccdde841b1ede7156ad9133a to your computer and use it in GitHub Desktop.
Save leque/627f404bccdde841b1ede7156ad9133a to your computer and use it in GitHub Desktop.
flowchart TB;

saty[.saty file]
md[.md file]

saty == parse ==> utast[untyped AST]
md == decode markdown ==> utast

subgraph frontend
utast == type check ==> ast1[typed AST]
ast1 == interpret stage 1 ==> code
code == unlift ==> ast0[typed AST]
ast0 == interpret stage 0 ==> v[v = syntactic value]
v --> textp{text mode?}

subgraph bytecomp
direction TB

vm_ast[typed AST] == transform ==> ir[compiler IR]
ir == compile ==> instruction[vm instructions]
instruction == execute ==> vm_val[syntactic value]
end

end

textp -- yes --> vstr[v :> string]

vstr == output text ==> textfile[text file]

subgraph backend
textp -- no --> vdoc[v :> doc]
vdoc == page break ==> pdf[PDF]
end

pdf == output PDF ==> pdffile[.pdf file]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment