ExLisp.LispParser (exlisp v0.1.2)

Copy Markdown

Custom S-expression parser for ExLisp. Performs lexical analysis and parsing (S-expression generation) of Lisp without external dependencies or regular expressions.

Summary

Functions

Determines whether a reader conditional (#+ / #-) matches the current ExLisp environment.

Normalizes a symbol string to ExLisp's standard symbol representation. Converts to lower case and replaces hyphens - with underscores _ for general symbols.

Parses a Lisp code string and returns an AST. Returns {:ok, ast} on success, or {:error, reason} on failure.

Parses a Lisp code string and returns an AST. Raises an exception on failure.

Parses a Lisp code string containing multiple expressions and returns an AST list. Returns {:ok, [ast, ...]} on success, or {:error, reason} on failure.

Parses a Lisp code string containing multiple expressions and returns an AST list. Raises an exception on failure.

Tokenizes a Lisp code string into a token list.

Functions

feature_matches?(feature_expr)

Determines whether a reader conditional (#+ / #-) matches the current ExLisp environment.

normalize_symbol_name(str)

Normalizes a symbol string to ExLisp's standard symbol representation. Converts to lower case and replaces hyphens - with underscores _ for general symbols.

parse(input)

Parses a Lisp code string and returns an AST. Returns {:ok, ast} on success, or {:error, reason} on failure.

parse!(input)

Parses a Lisp code string and returns an AST. Raises an exception on failure.

parse_multiple(input)

Parses a Lisp code string containing multiple expressions and returns an AST list. Returns {:ok, [ast, ...]} on success, or {:error, reason} on failure.

parse_multiple!(input)

Parses a Lisp code string containing multiple expressions and returns an AST list. Raises an exception on failure.

tokenize(input)

Tokenizes a Lisp code string into a token list.