Crate cirru_parser

Source
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§

CirruWriterOptions
options for writer, use_inline for more compact format.

Enums§

Cirru
Cirru uses nested Vecters and Strings as data structure
CirruLexItem
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§

CirruLexItemList
a list to lex nodes