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.)