Liking cljdoc? Tell your friends :D

beme.alpha.core

beme public API: read and print beme syntax.

Three tracks: text-to-form: beme->forms, forms->beme (all platforms) form-to-text: forms->clj (all platforms), clj->forms (JVM only) text-to-text: beme->clj (all platforms), clj->beme (JVM only)

Pipeline: beme.alpha.pipeline/run — full ctx->ctx pipeline with intermediate state

beme public API: read and print beme syntax.

Three tracks:
  text-to-form:  beme->forms, forms->beme (all platforms)
  form-to-text:  forms->clj (all platforms), clj->forms (JVM only)
  text-to-text:  beme->clj (all platforms), clj->beme (JVM only)

Pipeline:
  beme.alpha.pipeline/run — full ctx->ctx pipeline with intermediate state
raw docstring

beme.alpha.emit.pprint

Pretty-printer: Clojure forms → idiomatic multi-line beme text. Width-aware — uses begin/end for forms that don't fit on one line.

Pretty-printer: Clojure forms → idiomatic multi-line beme text.
Width-aware — uses begin/end for forms that don't fit on one line.
raw docstring

beme.alpha.emit.printer

beme printer: Clojure forms → beme text.

beme printer: Clojure forms → beme text.
raw docstring

beme.alpha.errors

Consistent error infrastructure for the beme reader/tokenizer. All error throw sites should use beme-error to ensure uniform location tracking and message formatting.

Consistent error infrastructure for the beme reader/tokenizer.
All error throw sites should use `beme-error` to ensure uniform
location tracking and message formatting.
raw docstring

beme.alpha.forms

Shared form-level predicates and constructors. Cross-stage contracts that both the parser and printer depend on.

Shared form-level predicates and constructors.
Cross-stage contracts that both the parser and printer depend on.
raw docstring

beme.alpha.parse.reader

beme reader: recursive-descent parser. Transforms beme tokens into Clojure forms.

beme reader: recursive-descent parser.
Transforms beme tokens into Clojure forms.
raw docstring

beme.alpha.parse.resolve

Value resolution: converts raw token text to Clojure values. Centralizes all host reader delegation (read-string calls) that were previously scattered across the parser.

Value resolution: converts raw token text to Clojure values.
Centralizes all host reader delegation (read-string calls) that were
previously scattered across the parser.
raw docstring

beme.alpha.pipeline

Explicit pipeline composition: source → scan → group → parse → resolve → forms. Each stage is a ctx -> ctx function operating on a shared context map.

Explicit pipeline composition: source → scan → group → parse → resolve → forms.
Each stage is a ctx -> ctx function operating on a shared context map.
raw docstring

beme.alpha.runtime.cli

Unified CLI. Functions accept a map — works with both clj -T and bb.

Unified CLI. Functions accept a map — works with both clj -T and bb.
raw docstring

beme.alpha.runtime.repl

beme REPL: read beme, eval as Clojure, print result.

beme REPL: read beme, eval as Clojure, print result.
raw docstring

beme.alpha.runtime.run

Run .beme files: read, eval, return last result.

Run .beme files: read, eval, return last result.
raw docstring

beme.alpha.scan.grouper

Token grouping stage: collapses opaque regions (reader conditionals, namespaced maps, syntax-quote with brackets) from flat token sequences into single composite tokens.

This replaces the tokenizer's read-balanced-raw by operating on already-tokenized input where bracket matching is trivial — strings, chars, and comments are already individual tokens.

Token grouping stage: collapses opaque regions (reader conditionals,
namespaced maps, syntax-quote with brackets) from flat token sequences
into single composite tokens.

This replaces the tokenizer's read-balanced-raw by operating on
already-tokenized input where bracket matching is trivial — strings,
chars, and comments are already individual tokens.
raw docstring

beme.alpha.scan.source

Scanner-level source-position utilities. Defines the character-level line/col model used by the tokenizer and grouper. Only \n advances the line counter — \r is a regular character that occupies a column. This matches sadvance! in the tokenizer.

Note: this is the scanner line model, not a universal line definition. The error display module (beme.alpha.errors/source-context) uses str/split-lines which has different line-ending semantics (splits on both \n and \r\n). The two models agree for LF sources but diverge for CRLF. See format-error for how the bridge is handled.

Scanner-level source-position utilities.
Defines the character-level line/col model used by the tokenizer and grouper.
Only \n advances the line counter — \r is a regular character that occupies
a column. This matches sadvance! in the tokenizer.

Note: this is the *scanner* line model, not a universal line definition.
The error display module (beme.alpha.errors/source-context) uses
str/split-lines which has different line-ending semantics (splits on
both \n and \r\n). The two models agree for LF sources but diverge
for CRLF. See format-error for how the bridge is handled.
raw docstring

beme.alpha.scan.tokenizer

beme tokenizer: character scanning and token production. Transforms beme source text into a flat vector of typed tokens.

beme tokenizer: character scanning and token production.
Transforms beme source text into a flat vector of typed tokens.
raw docstring

cljdoc builds & hosts documentation for Clojure/Script libraries

Keyboard shortcuts
Ctrl+kJump to recent docs
Move to previous article
Move to next article
Ctrl+/Jump to the search field
× close