Liking cljdoc? Tell your friends :D

meme.alpha.platform.registry

Guest language registry. Maps language names to configurations. A guest language is: a name, a file extension, an optional prelude, and optional rewrite rules.

(register! :pattern {:extension ".pat" :prelude-file "langs/pattern/core.meme" :rules-file "langs/pattern/rules.meme"})

(resolve-lang "app.pat") → :pattern (lang-config :pattern) → {:extension ... :prelude ... :rules ...}

Guest language registry. Maps language names to configurations.
A guest language is: a name, a file extension, an optional prelude,
and optional rewrite rules.

(register! :pattern {:extension ".pat"
                     :prelude-file "langs/pattern/core.meme"
                     :rules-file  "langs/pattern/rules.meme"})

(resolve-lang "app.pat")  → :pattern
(lang-config :pattern)     → {:extension ... :prelude ... :rules ...}
raw docstring

clear!clj/s

(clear!)

Clear all registered languages. For testing.

Clear all registered languages. For testing.
sourceraw docstring

lang-configclj/s

(lang-config lang-name)

Get the config for a registered language. Returns nil if not found.

Get the config for a registered language. Returns nil if not found.
sourceraw docstring

register!clj/s

(register! lang-name config)

Register a guest language. config keys: :extension — file extension (e.g. ".pat") :prelude-file — path to prelude .meme file (eval'd before user code) :rules-file — path to rules .meme file (eval'd, must return rule vector) :prelude — prelude forms (alternative to :prelude-file) :rules — rule vector (alternative to :rules-file) :parser — custom parser fn: (fn [tokens opts source] forms-vector) If nil, uses the default meme parser. The parser receives meme's token vector and should return a vector of Clojure forms.

Register a guest language.
config keys:
  :extension    — file extension (e.g. ".pat")
  :prelude-file — path to prelude .meme file (eval'd before user code)
  :rules-file   — path to rules .meme file (eval'd, must return rule vector)
  :prelude      — prelude forms (alternative to :prelude-file)
  :rules        — rule vector (alternative to :rules-file)
  :parser       — custom parser fn: (fn [tokens opts source] forms-vector)
                  If nil, uses the default meme parser.
                  The parser receives meme's token vector and should
                  return a vector of Clojure forms.
sourceraw docstring

registered-langsclj/s

(registered-langs)

List all registered language names.

List all registered language names.
sourceraw docstring

resolve-langclj/s

(resolve-lang path)

Given a file path, determine the guest language from its extension. Returns the language name keyword, or nil for unrecognized extensions. .meme files return nil (default meme, no guest language).

Given a file path, determine the guest language from its extension.
Returns the language name keyword, or nil for unrecognized extensions.
.meme files return nil (default meme, no guest language).
sourceraw 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