Crate libunseemly

Source

Modules§

alpha
ast
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.
ast_walk
beta
core_extra_forms
core_forms
core_macro_forms
core_qq_forms
core_type_forms
earley
expand
form
grammar
highlighter_generation
macros
name
read
runtime
ty
ty_compare
unparse
util
walk_mode

Macros§

assert_m
val
without_freshening

Structs§

Language
Everything you need to turn text into behavior.

Functions§

eval_program
Evaluate a program written in some language.
eval_unseemly_program_top
Evaluate a program written in Unseemly. Of course, it may immediately do include /[something]/ to switch languages.
generate__ace_rules
generate__ace_rules__for
get_language
html__eval_program
language_from_file
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?
stash_lang
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.
terminal_display
Displays res on a color terminal.
type_unseemly_program_top
Type program written in Unseemly. Of course, it may immediately do include /[something]/ to switch languages.
unseemly
Generate Unseemly. (This is the core language.)