Expand description
§Cirru Parser
This tiny parser parses indentation based syntax into nested a vector, then it could used as S-Expressions for evaluation or codegen.
defn fib (x)
if (<= x 2) 1
+
fib $ dec x
fib $ - x 2
parses to:
[ ["defn" "fib" [ "x" ]
[ "if" [ "<=" "x" "2" ] "1"
[ "+" [ "fib" ["dec" "x"] ] [ "fib" ["-" "x" "2"] ] ]
]
] ]
find more on http://text.cirru.org/ .
Structs§
- Cirru
Writer Options - options for writer,
use_inline
for more compact format.
Enums§
- Cirru
- Cirru uses nested Vecters and Strings as data structure
- Cirru
LexItem - internal control item during lexing
Functions§
- cirru_
to_ lisp - escape_
cirru_ leaf - common API for turning Cirru leaf with strings escaped
- format
- format Cirru code, use options to control
use_inline
option - format_
to_ lisp - format to Cirru to WAT
- lex
- internal function for lexing
- parse
- parse function, parse String to Cirru.
- resolve_
indentations - internal function for figuring out indentations after lexing
Type Aliases§
- Cirru
LexItem List - a list to lex nodes