Skip to content

Languages FAQ โ€‹

How do languages plug in? โ€‹

As Language table data: symbols, matchers, LR tables, fields, metadata. See Language Definition.

Is the runtime tied to one language? โ€‹

No โ€” the engine only calls table lookups and matchers. Four bundled grammars exist for tests and examples: the expression grammar (expression_language), an s-expression grammar (sexp_language) demonstrating aliases, a JSON grammar (json_language), and an indentation-sensitive outline grammar (outline_language) demonstrating external scanners.

What are external scanners for? โ€‹

Context-sensitive tokens (indentation, heredocs) via Zig callbacks. See External Scanners.

What ABI versions are accepted? โ€‹

13โ€“15; anything else is IncompatibleAbiVersion at setLanguage time.

Released under the MIT License.