Crate libunseemly[−][src]
Modules
This abstract syntax tree is really abstract.
It makes binding explicit, but everything else about the language is hidden inside Node
;
Their meaning comes from Form
.
Macros
Structs
Everything you need to turn text into behavior.
Functions
Evaluate program
in lang_of_program
, and stash the resulting language in result_name
.
“unseemly” starts out in the stash, so it’s possible to start from somewhere.
Evaluate a program written in some language.
Evaluate a program written in Unseemly.
Of course, it may immediately do include /[something]/
to switch languages.
Run the file (which hopefully evaluates to capture_language
), and get the language it defines.
Returns the parse context, the type environment, the phaseless version of the type environment,
and the value environment.
This doesn’t take a language 4-tuple – it assumes that the language is in Unseemly
(but of course it may do include /[some_language.unseemly]/
itself).
TODO: we only need the phaselessness for macros, and maybe we can get rid of it there?
Evaluate program
in lang_of_program
, and stash the resulting language in result_name
.
“unseemly” starts out in the stash, so it’s possible to start from somewhere.
Displays res
on a color terminal.
Type program written in Unseemly.
Of course, it may immediately do include /[something]/
to switch languages.
Generate Unseemly. (This is the core language.)