Provides main parsing and conversion functions.
For parsing java sources, see read-java
. For generating java sources,
see ->ast
and ->ast*
.
If you want to extend the library to handle your data, see Ast
for
parsing and new-ast
, fill-ast!
and ast-default
for generating.
Provides main parsing and conversion functions. For parsing java sources, see `read-java`. For generating java sources, see `->ast` and `->ast*`. If you want to extend the library to handle your data, see `Ast` for parsing and `new-ast`, `fill-ast!` and `ast-default` for generating.
This namespace is a hack to force cljdoc to display generated docs.
This namespace is a hack to force cljdoc to display generated docs.
This module pulls information from javaparser classes to allow for their semi-automatic translation to and from clojure data structures.
It is considered an implementation detail and no guarantees about its stability or compatibility are made.
This module pulls information from javaparser classes to allow for their semi-automatic translation to and from clojure data structures. It is considered an implementation detail and no guarantees about its stability or compatibility are made.
Malli schemas for AST structures.
Most var names here map 1-to-1 to the :node/kind
they represent, with a few
exceptions (which would conflict with vars from clojure.core
), which are
noted in relevant docstrings. In most cases, the var gets an asterisk at the
end.
Another oddity of naming stems from the way the original javaparser uses
inheritance. In javaparser's sources inheritance pulls double duty: firstly
it passes down some structure to descendants, and secondly it effectively
emulates sum types. On the clojure side, these two must be distinct to
prevent them from forming a cyclic schema. Because of that, all nodes that
were represented with abstract classes in the original get two schemas: a
-base
schema which describes the common structure (and is :merge
d by
class' descendants) and a suffix-less schema representing the actual node as
an instance of a sum type (used by enclosing structures).
All of the schemas here are collected into registry
and registry*
. The
default global registry is not modified in any way, if you want to use
these schemas, you have to use one of the registries from this namespace.
Malli schemas for AST structures. Most var names here map 1-to-1 to the `:node/kind` they represent, with a few exceptions (which would conflict with vars from `clojure.core`), which are noted in relevant docstrings. In most cases, the var gets an asterisk at the end. Another oddity of naming stems from the way the original javaparser uses inheritance. In javaparser's sources inheritance pulls double duty: firstly it passes down some structure to descendants, and secondly it effectively emulates sum types. On the clojure side, these two must be distinct to prevent them from forming a cyclic schema. Because of that, all nodes that were represented with abstract classes in the original get two schemas: a `-base` schema which describes the common structure (and is `:merge`d by class' descendants) and a suffix-less schema representing the actual node as an instance of a sum type (used by enclosing structures). All of the schemas here are collected into `registry` and `registry*`. The default global registry _is not_ modified in any way, if you want to use these schemas, you have to use one of the registries from this namespace.
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close