Liking cljdoc? Tell your friends :D
Clojure only.

javaparser-clj.doc.schemas


schemasclj

The following are all schemas for the java AST:

{:javaparser-clj.malli/annotation-declaration
 [:merge
  [:ref :javaparser-clj.malli/type-declaration-base]
  [:map [:node/kind {:optional true} [:= :annotation-declaration]]]],
 :javaparser-clj.malli/annotation-expr
 [:multi
  {:dispatch :node/kind}
  [:marker-annotation-expr
   [:ref :javaparser-clj.malli/marker-annotation-expr]]
  [:normal-annotation-expr
   [:ref :javaparser-clj.malli/normal-annotation-expr]]
  [:single-member-annotation-expr
   [:ref :javaparser-clj.malli/single-member-annotation-expr]]],
 :javaparser-clj.malli/annotation-expr-base
 [:merge
  [:ref :javaparser-clj.malli/expression-base]
  [:map
   [:node/kind {:optional true} [:= :annotation-expr]]
   [:name {:optional nil} [:ref :javaparser-clj.malli/name]]]],
 :javaparser-clj.malli/annotation-member-declaration
 [:merge
  [:ref :javaparser-clj.malli/body-declaration-base]
  [:map
   [:node/kind {:optional true} [:= :annotation-member-declaration]]
   [:modifiers
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/modifier]]]
   [:type {:optional nil} [:ref :javaparser-clj.malli/type]]
   [:name {:optional nil} [:ref :javaparser-clj.malli/simple-name]]
   [:default-value
    {:optional true}
    [:ref :javaparser-clj.malli/expression]]]],
 :javaparser-clj.malli/array-access-expr
 [:merge
  [:ref :javaparser-clj.malli/expression-base]
  [:map
   [:node/kind {:optional true} [:= :array-access-expr]]
   [:name {:optional nil} [:ref :javaparser-clj.malli/expression]]
   [:index {:optional nil} [:ref :javaparser-clj.malli/expression]]]],
 :javaparser-clj.malli/array-brackets-position [:enum :name :type],
 :javaparser-clj.malli/array-creation-expr
 [:merge
  [:ref :javaparser-clj.malli/expression-base]
  [:map
   [:node/kind {:optional true} [:= :array-creation-expr]]
   [:levels
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/array-creation-level]]]
   [:element-type {:optional nil} [:ref :javaparser-clj.malli/type]]
   [:initializer
    {:optional true}
    [:ref :javaparser-clj.malli/array-initializer-expr]]]],
 :javaparser-clj.malli/array-creation-level
 [:merge
  [:ref :javaparser-clj.malli/node-base]
  [:map
   [:node/kind {:optional true} [:= :array-creation-level]]
   [:dimension
    {:optional true}
    [:ref :javaparser-clj.malli/expression]]
   [:annotations
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/annotation-expr]]]]],
 :javaparser-clj.malli/array-initializer-expr
 [:merge
  [:ref :javaparser-clj.malli/expression-base]
  [:map
   [:node/kind {:optional true} [:= :array-initializer-expr]]
   [:values
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/expression]]]]],
 :javaparser-clj.malli/array-type
 [:merge
  [:ref :javaparser-clj.malli/reference-type-base]
  [:map
   [:node/kind {:optional true} [:= :array-type]]
   [:component-type {:optional nil} [:ref :javaparser-clj.malli/type]]
   [:origin
    {:optional nil}
    [:ref :javaparser-clj.malli/array-brackets-position]]]],
 :javaparser-clj.malli/assert-stmt
 [:merge
  [:ref :javaparser-clj.malli/statement-base]
  [:map
   [:node/kind {:optional true} [:= :assert-stmt]]
   [:check {:optional nil} [:ref :javaparser-clj.malli/expression]]
   [:message
    {:optional true}
    [:ref :javaparser-clj.malli/expression]]]],
 :javaparser-clj.malli/assign-expr
 [:merge
  [:ref :javaparser-clj.malli/expression-base]
  [:map
   [:node/kind {:optional true} [:= :assign-expr]]
   [:target {:optional nil} [:ref :javaparser-clj.malli/expression]]
   [:value {:optional nil} [:ref :javaparser-clj.malli/expression]]
   [:operator
    {:optional nil}
    [:ref :javaparser-clj.malli/assign-op]]]],
 :javaparser-clj.malli/assign-op
 [:enum
  :assign
  :add
  :sub
  :mul
  :div
  :bit-and
  :bit-or
  :xor
  :mod
  :bit-shift-left
  :bit-shift-right
  :unsigned-bit-shift-right],
 :javaparser-clj.malli/binary-expr
 [:merge
  [:ref :javaparser-clj.malli/expression-base]
  [:map
   [:node/kind {:optional true} [:= :binary-expr]]
   [:left {:optional nil} [:ref :javaparser-clj.malli/expression]]
   [:right {:optional nil} [:ref :javaparser-clj.malli/expression]]
   [:operator
    {:optional nil}
    [:ref :javaparser-clj.malli/binary-op]]]],
 :javaparser-clj.malli/binary-op
 [:enum
  :or
  :and
  :bit-or
  :bit-and
  :xor
  :equal
  :not-equal
  :less
  :greater
  :less-or-equal
  :greater-or-equal
  :bit-shift-left
  :bit-shift-right
  :unsigned-bit-shift-right
  :add
  :sub
  :mul
  :div
  :mod],
 :javaparser-clj.malli/block-comment
 [:merge
  [:ref :javaparser-clj.malli/comment-base]
  [:map [:node/kind {:optional true} [:= :block-comment]]]],
 :javaparser-clj.malli/block-stmt
 [:merge
  [:ref :javaparser-clj.malli/statement-base]
  [:map
   [:node/kind {:optional true} [:= :block-stmt]]
   [:statements
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/statement]]]]],
 :javaparser-clj.malli/body-declaration
 [:multi
  {:dispatch :node/kind}
  [:annotation-member-declaration
   [:ref :javaparser-clj.malli/annotation-member-declaration]]
  [:callable-declaration
   [:ref :javaparser-clj.malli/callable-declaration]]
  [:compact-constructor-declaration
   [:ref :javaparser-clj.malli/compact-constructor-declaration]]
  [:enum-constant-declaration
   [:ref :javaparser-clj.malli/enum-constant-declaration]]
  [:field-declaration [:ref :javaparser-clj.malli/field-declaration]]
  [:initializer-declaration
   [:ref :javaparser-clj.malli/initializer-declaration]]
  [:type-declaration [:ref :javaparser-clj.malli/type-declaration]]],
 :javaparser-clj.malli/body-declaration-base
 [:merge
  [:ref :javaparser-clj.malli/node-base]
  [:map
   [:node/kind {:optional true} [:= :body-declaration]]
   [:annotations
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/annotation-expr]]]]],
 :javaparser-clj.malli/boolean-literal-expr
 [:merge
  [:ref :javaparser-clj.malli/literal-expr-base]
  [:map
   [:node/kind {:optional true} [:= :boolean-literal-expr]]
   [:value {:optional nil} :boolean]]],
 :javaparser-clj.malli/break-stmt
 [:merge
  [:ref :javaparser-clj.malli/statement-base]
  [:map
   [:node/kind {:optional true} [:= :break-stmt]]
   [:label
    {:optional true}
    [:ref :javaparser-clj.malli/simple-name]]]],
 :javaparser-clj.malli/callable-declaration
 [:multi
  {:dispatch :node/kind}
  [:constructor-declaration
   [:ref :javaparser-clj.malli/constructor-declaration]]
  [:method-declaration
   [:ref :javaparser-clj.malli/method-declaration]]],
 :javaparser-clj.malli/callable-declaration-base
 [:merge
  [:ref :javaparser-clj.malli/body-declaration-base]
  [:map
   [:node/kind {:optional true} [:= :callable-declaration]]
   [:modifiers
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/modifier]]]
   [:type-parameters
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/type-parameter]]]
   [:name {:optional nil} [:ref :javaparser-clj.malli/simple-name]]
   [:parameters
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/parameter]]]
   [:thrown-exceptions
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/reference-type]]]
   [:receiver-parameter
    {:optional true}
    [:ref :javaparser-clj.malli/receiver-parameter]]]],
 :javaparser-clj.malli/cast-expr
 [:merge
  [:ref :javaparser-clj.malli/expression-base]
  [:map
   [:node/kind {:optional true} [:= :cast-expr]]
   [:type {:optional nil} [:ref :javaparser-clj.malli/type]]
   [:expression
    {:optional nil}
    [:ref :javaparser-clj.malli/expression]]]],
 :javaparser-clj.malli/catch-clause
 [:merge
  [:ref :javaparser-clj.malli/node-base]
  [:map
   [:node/kind {:optional true} [:= :catch-clause]]
   [:parameter {:optional nil} [:ref :javaparser-clj.malli/parameter]]
   [:body {:optional nil} [:ref :javaparser-clj.malli/block-stmt]]]],
 :javaparser-clj.malli/char-literal-expr
 [:merge
  [:ref :javaparser-clj.malli/literal-string-value-expr-base]
  [:map [:node/kind {:optional true} [:= :char-literal-expr]]]],
 :javaparser-clj.malli/class-expr
 [:merge
  [:ref :javaparser-clj.malli/expression-base]
  [:map
   [:node/kind {:optional true} [:= :class-expr]]
   [:type {:optional nil} [:ref :javaparser-clj.malli/type]]]],
 :javaparser-clj.malli/class-or-interface-declaration
 [:merge
  [:ref :javaparser-clj.malli/type-declaration-base]
  [:map
   [:node/kind {:optional true} [:= :class-or-interface-declaration]]
   [:interface? {:optional nil} :boolean]
   [:type-parameters
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/type-parameter]]]
   [:extended-types
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/class-or-interface-type]]]
   [:implemented-types
    {:optional nil}
    [:sequential
     [:ref :javaparser-clj.malli/class-or-interface-type]]]]],
 :javaparser-clj.malli/class-or-interface-type
 [:merge
  [:ref :javaparser-clj.malli/reference-type-base]
  [:map
   [:node/kind {:optional true} [:= :class-or-interface-type]]
   [:scope
    {:optional true}
    [:ref :javaparser-clj.malli/class-or-interface-type]]
   [:name {:optional nil} [:ref :javaparser-clj.malli/simple-name]]
   [:type-arguments
    {:optional true}
    [:sequential [:ref :javaparser-clj.malli/type]]]]],
 :javaparser-clj.malli/comment
 [:multi
  {:dispatch :node/kind}
  [:block-comment [:ref :javaparser-clj.malli/block-comment]]
  [:javadoc-comment [:ref :javaparser-clj.malli/javadoc-comment]]
  [:line-comment [:ref :javaparser-clj.malli/line-comment]]],
 :javaparser-clj.malli/comment-base
 [:merge
  [:map [:range {:optional true} [:ref :javaparser-clj.malli/range]]]
  [:map [:content {:optional nil} :string]]],
 :javaparser-clj.malli/compact-constructor-declaration
 [:merge
  [:ref :javaparser-clj.malli/body-declaration-base]
  [:map
   [:node/kind {:optional true} [:= :compact-constructor-declaration]]
   [:modifiers
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/modifier]]]
   [:body {:optional nil} [:ref :javaparser-clj.malli/block-stmt]]
   [:type-parameters
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/type-parameter]]]
   [:name {:optional nil} [:ref :javaparser-clj.malli/simple-name]]
   [:thrown-exceptions
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/reference-type]]]]],
 :javaparser-clj.malli/compilation-unit
 [:merge
  [:ref :javaparser-clj.malli/node-base]
  [:map
   [:node/kind {:optional true} [:= :compilation-unit]]
   [:package
    {:optional true}
    [:ref :javaparser-clj.malli/package-declaration]]
   [:imports
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/import-declaration]]]
   [:types
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/type-declaration]]]
   [:module
    {:optional true}
    [:ref :javaparser-clj.malli/module-declaration]]]],
 :javaparser-clj.malli/conditional-expr
 [:merge
  [:ref :javaparser-clj.malli/expression-base]
  [:map
   [:node/kind {:optional true} [:= :conditional-expr]]
   [:condition {:optional nil} [:ref :javaparser-clj.malli/expression]]
   [:then-expr {:optional nil} [:ref :javaparser-clj.malli/expression]]
   [:else-expr
    {:optional nil}
    [:ref :javaparser-clj.malli/expression]]]],
 :javaparser-clj.malli/constructor-declaration
 [:merge
  [:ref :javaparser-clj.malli/callable-declaration-base]
  [:map
   [:node/kind {:optional true} [:= :constructor-declaration]]
   [:body {:optional nil} [:ref :javaparser-clj.malli/block-stmt]]]],
 :javaparser-clj.malli/continue-stmt
 [:merge
  [:ref :javaparser-clj.malli/statement-base]
  [:map
   [:node/kind {:optional true} [:= :continue-stmt]]
   [:label
    {:optional true}
    [:ref :javaparser-clj.malli/simple-name]]]],
 :javaparser-clj.malli/do-stmt
 [:merge
  [:ref :javaparser-clj.malli/statement-base]
  [:map
   [:node/kind {:optional true} [:= :do-stmt]]
   [:body {:optional nil} [:ref :javaparser-clj.malli/statement]]
   [:condition
    {:optional nil}
    [:ref :javaparser-clj.malli/expression]]]],
 :javaparser-clj.malli/double-literal-expr
 [:merge
  [:ref :javaparser-clj.malli/literal-string-value-expr-base]
  [:map [:node/kind {:optional true} [:= :double-literal-expr]]]],
 :javaparser-clj.malli/empty-stmt
 [:merge
  [:ref :javaparser-clj.malli/statement-base]
  [:map [:node/kind {:optional true} [:= :empty-stmt]]]],
 :javaparser-clj.malli/enclosed-expr
 [:merge
  [:ref :javaparser-clj.malli/expression-base]
  [:map
   [:node/kind {:optional true} [:= :enclosed-expr]]
   [:inner {:optional nil} [:ref :javaparser-clj.malli/expression]]]],
 :javaparser-clj.malli/enum-constant-declaration
 [:merge
  [:ref :javaparser-clj.malli/body-declaration-base]
  [:map
   [:node/kind {:optional true} [:= :enum-constant-declaration]]
   [:name {:optional nil} [:ref :javaparser-clj.malli/simple-name]]
   [:arguments
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/expression]]]
   [:class-body
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/body-declaration]]]]],
 :javaparser-clj.malli/enum-declaration
 [:merge
  [:ref :javaparser-clj.malli/type-declaration-base]
  [:map
   [:node/kind {:optional true} [:= :enum-declaration]]
   [:implemented-types
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/class-or-interface-type]]]
   [:entries
    {:optional nil}
    [:sequential
     [:ref :javaparser-clj.malli/enum-constant-declaration]]]]],
 :javaparser-clj.malli/explicit-constructor-invocation-stmt
 [:merge
  [:ref :javaparser-clj.malli/statement-base]
  [:map
   [:node/kind
    {:optional true}
    [:= :explicit-constructor-invocation-stmt]]
   [:type-arguments
    {:optional true}
    [:sequential [:ref :javaparser-clj.malli/type]]]
   [:this? {:optional nil} :boolean]
   [:expression
    {:optional true}
    [:ref :javaparser-clj.malli/expression]]
   [:arguments
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/expression]]]]],
 :javaparser-clj.malli/expression
 [:multi
  {:dispatch :node/kind}
  [:annotation-expr [:ref :javaparser-clj.malli/annotation-expr]]
  [:array-access-expr [:ref :javaparser-clj.malli/array-access-expr]]
  [:array-creation-expr
   [:ref :javaparser-clj.malli/array-creation-expr]]
  [:array-initializer-expr
   [:ref :javaparser-clj.malli/array-initializer-expr]]
  [:assign-expr [:ref :javaparser-clj.malli/assign-expr]]
  [:binary-expr [:ref :javaparser-clj.malli/binary-expr]]
  [:cast-expr [:ref :javaparser-clj.malli/cast-expr]]
  [:class-expr [:ref :javaparser-clj.malli/class-expr]]
  [:conditional-expr [:ref :javaparser-clj.malli/conditional-expr]]
  [:enclosed-expr [:ref :javaparser-clj.malli/enclosed-expr]]
  [:field-access-expr [:ref :javaparser-clj.malli/field-access-expr]]
  [:instance-of-expr [:ref :javaparser-clj.malli/instance-of-expr]]
  [:lambda-expr [:ref :javaparser-clj.malli/lambda-expr]]
  [:literal-expr [:ref :javaparser-clj.malli/literal-expr]]
  [:method-call-expr [:ref :javaparser-clj.malli/method-call-expr]]
  [:method-reference-expr
   [:ref :javaparser-clj.malli/method-reference-expr]]
  [:name-expr [:ref :javaparser-clj.malli/name-expr]]
  [:object-creation-expr
   [:ref :javaparser-clj.malli/object-creation-expr]]
  [:pattern-expr [:ref :javaparser-clj.malli/pattern-expr]]
  [:super-expr [:ref :javaparser-clj.malli/super-expr]]
  [:switch-expr [:ref :javaparser-clj.malli/switch-expr]]
  [:this-expr [:ref :javaparser-clj.malli/this-expr]]
  [:type-expr [:ref :javaparser-clj.malli/type-expr]]
  [:unary-expr [:ref :javaparser-clj.malli/unary-expr]]
  [:variable-declaration-expr
   [:ref :javaparser-clj.malli/variable-declaration-expr]]],
 :javaparser-clj.malli/expression-base
 [:merge
  [:ref :javaparser-clj.malli/node-base]
  [:map [:node/kind {:optional true} [:= :expression]]]],
 :javaparser-clj.malli/expression-stmt
 [:merge
  [:ref :javaparser-clj.malli/statement-base]
  [:map
   [:node/kind {:optional true} [:= :expression-stmt]]
   [:expression
    {:optional nil}
    [:ref :javaparser-clj.malli/expression]]]],
 :javaparser-clj.malli/field-access-expr
 [:merge
  [:ref :javaparser-clj.malli/expression-base]
  [:map
   [:node/kind {:optional true} [:= :field-access-expr]]
   [:scope {:optional nil} [:ref :javaparser-clj.malli/expression]]
   [:type-arguments
    {:optional true}
    [:sequential [:ref :javaparser-clj.malli/type]]]
   [:name {:optional nil} [:ref :javaparser-clj.malli/simple-name]]]],
 :javaparser-clj.malli/field-declaration
 [:merge
  [:ref :javaparser-clj.malli/body-declaration-base]
  [:map
   [:node/kind {:optional true} [:= :field-declaration]]
   [:modifiers
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/modifier]]]
   [:variables
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/variable-declarator]]]]],
 :javaparser-clj.malli/for-each-stmt
 [:merge
  [:ref :javaparser-clj.malli/statement-base]
  [:map
   [:node/kind {:optional true} [:= :for-each-stmt]]
   [:variable
    {:optional nil}
    [:ref :javaparser-clj.malli/variable-declaration-expr]]
   [:iterable {:optional nil} [:ref :javaparser-clj.malli/expression]]
   [:body {:optional nil} [:ref :javaparser-clj.malli/statement]]]],
 :javaparser-clj.malli/for-stmt
 [:merge
  [:ref :javaparser-clj.malli/statement-base]
  [:map
   [:node/kind {:optional true} [:= :for-stmt]]
   [:initialization
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/expression]]]
   [:compare {:optional true} [:ref :javaparser-clj.malli/expression]]
   [:update
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/expression]]]
   [:body {:optional nil} [:ref :javaparser-clj.malli/statement]]]],
 :javaparser-clj.malli/if-stmt
 [:merge
  [:ref :javaparser-clj.malli/statement-base]
  [:map
   [:node/kind {:optional true} [:= :if-stmt]]
   [:condition {:optional nil} [:ref :javaparser-clj.malli/expression]]
   [:then-stmt {:optional nil} [:ref :javaparser-clj.malli/statement]]
   [:else-stmt
    {:optional true}
    [:ref :javaparser-clj.malli/statement]]]],
 :javaparser-clj.malli/import-declaration
 [:merge
  [:ref :javaparser-clj.malli/node-base]
  [:map
   [:node/kind {:optional true} [:= :import-declaration]]
   [:name {:optional nil} [:ref :javaparser-clj.malli/name]]
   [:static? {:optional nil} :boolean]
   [:asterisk? {:optional nil} :boolean]]],
 :javaparser-clj.malli/initializer-declaration
 [:merge
  [:ref :javaparser-clj.malli/body-declaration-base]
  [:map
   [:node/kind {:optional true} [:= :initializer-declaration]]
   [:static? {:optional nil} :boolean]
   [:body {:optional nil} [:ref :javaparser-clj.malli/block-stmt]]]],
 :javaparser-clj.malli/instance-of-expr
 [:merge
  [:ref :javaparser-clj.malli/expression-base]
  [:map
   [:node/kind {:optional true} [:= :instance-of-expr]]
   [:expression
    {:optional nil}
    [:ref :javaparser-clj.malli/expression]]
   [:pattern
    {:optional true}
    [:ref :javaparser-clj.malli/pattern-expr]]
   [:type
    {:optional nil}
    [:ref :javaparser-clj.malli/reference-type]]]],
 :javaparser-clj.malli/integer-literal-expr
 [:merge
  [:ref :javaparser-clj.malli/literal-string-value-expr-base]
  [:map [:node/kind {:optional true} [:= :integer-literal-expr]]]],
 :javaparser-clj.malli/intersection-type
 [:merge
  [:ref :javaparser-clj.malli/type-base]
  [:map
   [:node/kind {:optional true} [:= :intersection-type]]
   [:elements
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/reference-type]]]]],
 :javaparser-clj.malli/javadoc-comment
 [:merge
  [:ref :javaparser-clj.malli/comment-base]
  [:map [:node/kind {:optional true} [:= :javadoc-comment]]]],
 :javaparser-clj.malli/labeled-stmt
 [:merge
  [:ref :javaparser-clj.malli/statement-base]
  [:map
   [:node/kind {:optional true} [:= :labeled-stmt]]
   [:label {:optional nil} [:ref :javaparser-clj.malli/simple-name]]
   [:statement
    {:optional nil}
    [:ref :javaparser-clj.malli/statement]]]],
 :javaparser-clj.malli/lambda-expr
 [:merge
  [:ref :javaparser-clj.malli/expression-base]
  [:map
   [:node/kind {:optional true} [:= :lambda-expr]]
   [:parameters
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/parameter]]]
   [:enclosing-parameters? {:optional nil} :boolean]
   [:body {:optional nil} [:ref :javaparser-clj.malli/statement]]]],
 :javaparser-clj.malli/line-comment
 [:merge
  [:ref :javaparser-clj.malli/comment-base]
  [:map [:node/kind {:optional true} [:= :line-comment]]]],
 :javaparser-clj.malli/literal-expr
 [:multi
  {:dispatch :node/kind}
  [:boolean-literal-expr
   [:ref :javaparser-clj.malli/boolean-literal-expr]]
  [:literal-string-value-expr
   [:ref :javaparser-clj.malli/literal-string-value-expr]]
  [:null-literal-expr [:ref :javaparser-clj.malli/null-literal-expr]]],
 :javaparser-clj.malli/literal-expr-base
 [:merge
  [:ref :javaparser-clj.malli/expression-base]
  [:map [:node/kind {:optional true} [:= :literal-expr]]]],
 :javaparser-clj.malli/literal-string-value-expr
 [:multi
  {:dispatch :node/kind}
  [:char-literal-expr [:ref :javaparser-clj.malli/char-literal-expr]]
  [:double-literal-expr
   [:ref :javaparser-clj.malli/double-literal-expr]]
  [:integer-literal-expr
   [:ref :javaparser-clj.malli/integer-literal-expr]]
  [:long-literal-expr [:ref :javaparser-clj.malli/long-literal-expr]]
  [:string-literal-expr
   [:ref :javaparser-clj.malli/string-literal-expr]]
  [:text-block-literal-expr
   [:ref :javaparser-clj.malli/text-block-literal-expr]]],
 :javaparser-clj.malli/literal-string-value-expr-base
 [:merge
  [:ref :javaparser-clj.malli/literal-expr-base]
  [:map
   [:node/kind {:optional true} [:= :literal-string-value-expr]]
   [:value {:optional nil} :string]]],
 :javaparser-clj.malli/local-class-declaration-stmt
 [:merge
  [:ref :javaparser-clj.malli/statement-base]
  [:map
   [:node/kind {:optional true} [:= :local-class-declaration-stmt]]
   [:class-declaration
    {:optional nil}
    [:ref :javaparser-clj.malli/class-or-interface-declaration]]]],
 :javaparser-clj.malli/local-record-declaration-stmt
 [:merge
  [:ref :javaparser-clj.malli/statement-base]
  [:map
   [:node/kind {:optional true} [:= :local-record-declaration-stmt]]
   [:record-declaration
    {:optional nil}
    [:ref :javaparser-clj.malli/record-declaration]]]],
 :javaparser-clj.malli/long-literal-expr
 [:merge
  [:ref :javaparser-clj.malli/literal-string-value-expr-base]
  [:map [:node/kind {:optional true} [:= :long-literal-expr]]]],
 :javaparser-clj.malli/marker-annotation-expr
 [:merge
  [:ref :javaparser-clj.malli/annotation-expr-base]
  [:map [:node/kind {:optional true} [:= :marker-annotation-expr]]]],
 :javaparser-clj.malli/member-value-pair
 [:merge
  [:ref :javaparser-clj.malli/node-base]
  [:map
   [:node/kind {:optional true} [:= :member-value-pair]]
   [:name {:optional nil} [:ref :javaparser-clj.malli/simple-name]]
   [:value {:optional nil} [:ref :javaparser-clj.malli/expression]]]],
 :javaparser-clj.malli/method-call-expr
 [:merge
  [:ref :javaparser-clj.malli/expression-base]
  [:map
   [:node/kind {:optional true} [:= :method-call-expr]]
   [:scope {:optional true} [:ref :javaparser-clj.malli/expression]]
   [:type-arguments
    {:optional true}
    [:sequential [:ref :javaparser-clj.malli/type]]]
   [:name {:optional nil} [:ref :javaparser-clj.malli/simple-name]]
   [:arguments
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/expression]]]]],
 :javaparser-clj.malli/method-declaration
 [:merge
  [:ref :javaparser-clj.malli/callable-declaration-base]
  [:map
   [:node/kind {:optional true} [:= :method-declaration]]
   [:type {:optional nil} [:ref :javaparser-clj.malli/type]]
   [:body {:optional true} [:ref :javaparser-clj.malli/block-stmt]]]],
 :javaparser-clj.malli/method-reference-expr
 [:merge
  [:ref :javaparser-clj.malli/expression-base]
  [:map
   [:node/kind {:optional true} [:= :method-reference-expr]]
   [:scope {:optional nil} [:ref :javaparser-clj.malli/expression]]
   [:type-arguments
    {:optional true}
    [:sequential [:ref :javaparser-clj.malli/type]]]
   [:identifier {:optional nil} :string]]],
 :javaparser-clj.malli/modifier
 [:enum
  :abstract
  :default
  :final
  :native
  :private
  :protected
  :public
  :static
  :strictfp
  :synchronized
  :transient
  :transitive
  :volatile],
 :javaparser-clj.malli/module-declaration
 [:merge
  [:ref :javaparser-clj.malli/node-base]
  [:map
   [:node/kind {:optional true} [:= :module-declaration]]
   [:name {:optional nil} [:ref :javaparser-clj.malli/name]]
   [:annotations
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/annotation-expr]]]
   [:open? {:optional nil} :boolean]
   [:directives
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/module-directive]]]]],
 :javaparser-clj.malli/module-directive
 [:multi {:dispatch :node/kind}],
 :javaparser-clj.malli/module-directive-base
 [:merge
  [:ref :javaparser-clj.malli/node-base]
  [:map [:node/kind {:optional true} [:= :module-directive]]]],
 :javaparser-clj.malli/name
 [:map
  [:identifier [:string {:min 1}]]
  [:qualifier {:optional true} [:vector [:string {:min 1}]]]],
 :javaparser-clj.malli/name-expr
 [:merge
  [:ref :javaparser-clj.malli/expression-base]
  [:map
   [:node/kind {:optional true} [:= :name-expr]]
   [:name {:optional nil} [:ref :javaparser-clj.malli/simple-name]]]],
 :javaparser-clj.malli/node
 [:map
  [:node/kind {:optional true} [:= :node]]
  [:range {:optional true} [:ref :javaparser-clj.malli/range]]
  [:orphan-comments
   {:optional true}
   [:sequential [:ref :javaparser-clj.malli/comment]]]
  [:comment {:optional true} [:ref :javaparser-clj.malli/comment]]],
 :javaparser-clj.malli/node-base
 [:map
  [:node/kind {:optional true} [:= :node]]
  [:range {:optional true} [:ref :javaparser-clj.malli/range]]
  [:orphan-comments
   {:optional true}
   [:sequential [:ref :javaparser-clj.malli/comment]]]
  [:comment {:optional true} [:ref :javaparser-clj.malli/comment]]],
 :javaparser-clj.malli/nodes :sequential,
 :javaparser-clj.malli/normal-annotation-expr
 [:merge
  [:ref :javaparser-clj.malli/annotation-expr-base]
  [:map
   [:node/kind {:optional true} [:= :normal-annotation-expr]]
   [:pairs
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/member-value-pair]]]]],
 :javaparser-clj.malli/null-literal-expr
 [:merge
  [:ref :javaparser-clj.malli/literal-expr-base]
  [:map [:node/kind {:optional true} [:= :null-literal-expr]]]],
 :javaparser-clj.malli/object-creation-expr
 [:merge
  [:ref :javaparser-clj.malli/expression-base]
  [:map
   [:node/kind {:optional true} [:= :object-creation-expr]]
   [:scope {:optional true} [:ref :javaparser-clj.malli/expression]]
   [:type
    {:optional nil}
    [:ref :javaparser-clj.malli/class-or-interface-type]]
   [:type-arguments
    {:optional true}
    [:sequential [:ref :javaparser-clj.malli/type]]]
   [:arguments
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/expression]]]
   [:anonymous-class-body
    {:optional true}
    [:sequential [:ref :javaparser-clj.malli/body-declaration]]]]],
 :javaparser-clj.malli/package-declaration
 [:merge
  [:ref :javaparser-clj.malli/node-base]
  [:map
   [:node/kind {:optional true} [:= :package-declaration]]
   [:annotations
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/annotation-expr]]]
   [:name {:optional nil} [:ref :javaparser-clj.malli/name]]]],
 :javaparser-clj.malli/parameter
 [:merge
  [:ref :javaparser-clj.malli/node-base]
  [:map
   [:node/kind {:optional true} [:= :parameter]]
   [:type {:optional nil} [:ref :javaparser-clj.malli/type]]
   [:var-args? {:optional nil} :boolean]
   [:var-args-annotations
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/annotation-expr]]]
   [:modifiers
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/modifier]]]
   [:annotations
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/annotation-expr]]]
   [:name {:optional nil} [:ref :javaparser-clj.malli/simple-name]]]],
 :javaparser-clj.malli/pattern-expr
 [:merge
  [:ref :javaparser-clj.malli/expression-base]
  [:map
   [:node/kind {:optional true} [:= :pattern-expr]]
   [:name {:optional nil} [:ref :javaparser-clj.malli/simple-name]]
   [:type
    {:optional nil}
    [:ref :javaparser-clj.malli/reference-type]]]],
 :javaparser-clj.malli/position
 [:map
  [:line #IntoSchema{:type :javaparser-clj.malli/int}]
  [:column #IntoSchema{:type :javaparser-clj.malli/int}]],
 :javaparser-clj.malli/primitive
 [:enum :boolean :char :byte :short :int :long :float :double],
 :javaparser-clj.malli/primitive-type
 [:merge
  [:ref :javaparser-clj.malli/type-base]
  [:map
   [:node/kind {:optional true} [:= :primitive-type]]
   [:type {:optional nil} [:ref :javaparser-clj.malli/primitive]]]],
 :javaparser-clj.malli/range
 [:map
  [:begin :javaparser-clj.malli/position]
  [:end :javaparser-clj.malli/position]],
 :javaparser-clj.malli/receiver-parameter
 [:merge
  [:ref :javaparser-clj.malli/node-base]
  [:map
   [:node/kind {:optional true} [:= :receiver-parameter]]
   [:type {:optional nil} [:ref :javaparser-clj.malli/type]]
   [:annotations
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/annotation-expr]]]
   [:name {:optional nil} [:ref :javaparser-clj.malli/name]]]],
 :javaparser-clj.malli/record-declaration
 [:merge
  [:ref :javaparser-clj.malli/type-declaration-base]
  [:map
   [:node/kind {:optional true} [:= :record-declaration]]
   [:type-parameters
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/type-parameter]]]
   [:implemented-types
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/class-or-interface-type]]]
   [:receiver-parameter
    {:optional true}
    [:ref :javaparser-clj.malli/receiver-parameter]]
   [:parameters
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/parameter]]]]],
 :javaparser-clj.malli/reference-type
 [:multi
  {:dispatch :node/kind}
  [:array-type [:ref :javaparser-clj.malli/array-type]]
  [:class-or-interface-type
   [:ref :javaparser-clj.malli/class-or-interface-type]]
  [:type-parameter [:ref :javaparser-clj.malli/type-parameter]]],
 :javaparser-clj.malli/reference-type-base
 [:merge
  [:ref :javaparser-clj.malli/type-base]
  [:map [:node/kind {:optional true} [:= :reference-type]]]],
 :javaparser-clj.malli/return-stmt
 [:merge
  [:ref :javaparser-clj.malli/statement-base]
  [:map
   [:node/kind {:optional true} [:= :return-stmt]]
   [:expression
    {:optional true}
    [:ref :javaparser-clj.malli/expression]]]],
 :javaparser-clj.malli/simple-name [:string {:min 1}],
 :javaparser-clj.malli/single-member-annotation-expr
 [:merge
  [:ref :javaparser-clj.malli/annotation-expr-base]
  [:map
   [:node/kind {:optional true} [:= :single-member-annotation-expr]]
   [:member-value
    {:optional nil}
    [:ref :javaparser-clj.malli/expression]]]],
 :javaparser-clj.malli/statement
 [:multi
  {:dispatch :node/kind}
  [:assert-stmt [:ref :javaparser-clj.malli/assert-stmt]]
  [:block-stmt [:ref :javaparser-clj.malli/block-stmt]]
  [:break-stmt [:ref :javaparser-clj.malli/break-stmt]]
  [:continue-stmt [:ref :javaparser-clj.malli/continue-stmt]]
  [:do-stmt [:ref :javaparser-clj.malli/do-stmt]]
  [:empty-stmt [:ref :javaparser-clj.malli/empty-stmt]]
  [:explicit-constructor-invocation-stmt
   [:ref :javaparser-clj.malli/explicit-constructor-invocation-stmt]]
  [:expression-stmt [:ref :javaparser-clj.malli/expression-stmt]]
  [:for-each-stmt [:ref :javaparser-clj.malli/for-each-stmt]]
  [:for-stmt [:ref :javaparser-clj.malli/for-stmt]]
  [:if-stmt [:ref :javaparser-clj.malli/if-stmt]]
  [:labeled-stmt [:ref :javaparser-clj.malli/labeled-stmt]]
  [:local-class-declaration-stmt
   [:ref :javaparser-clj.malli/local-class-declaration-stmt]]
  [:local-record-declaration-stmt
   [:ref :javaparser-clj.malli/local-record-declaration-stmt]]
  [:return-stmt [:ref :javaparser-clj.malli/return-stmt]]
  [:switch-stmt [:ref :javaparser-clj.malli/switch-stmt]]
  [:synchronized-stmt [:ref :javaparser-clj.malli/synchronized-stmt]]
  [:throw-stmt [:ref :javaparser-clj.malli/throw-stmt]]
  [:try-stmt [:ref :javaparser-clj.malli/try-stmt]]
  [:unparsable-stmt [:ref :javaparser-clj.malli/unparsable-stmt]]
  [:while-stmt [:ref :javaparser-clj.malli/while-stmt]]
  [:yield-stmt [:ref :javaparser-clj.malli/yield-stmt]]],
 :javaparser-clj.malli/statement-base
 [:merge
  [:ref :javaparser-clj.malli/node-base]
  [:map [:node/kind {:optional true} [:= :statement]]]],
 :javaparser-clj.malli/string-literal-expr
 [:merge
  [:ref :javaparser-clj.malli/literal-string-value-expr-base]
  [:map [:node/kind {:optional true} [:= :string-literal-expr]]]],
 :javaparser-clj.malli/super-expr
 [:merge
  [:ref :javaparser-clj.malli/expression-base]
  [:map
   [:node/kind {:optional true} [:= :super-expr]]
   [:type-name {:optional true} [:ref :javaparser-clj.malli/name]]]],
 :javaparser-clj.malli/switch-entry
 [:merge
  [:ref :javaparser-clj.malli/node-base]
  [:map
   [:node/kind {:optional true} [:= :switch-entry]]
   [:labels
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/expression]]]
   [:statements
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/statement]]]
   [:type
    {:optional nil}
    [:ref :javaparser-clj.malli/switch-entry-type]]]],
 :javaparser-clj.malli/switch-entry-type
 [:enum :classic :expression :block :throw],
 :javaparser-clj.malli/switch-expr
 [:merge
  [:ref :javaparser-clj.malli/expression-base]
  [:map
   [:node/kind {:optional true} [:= :switch-expr]]
   [:selector {:optional nil} [:ref :javaparser-clj.malli/expression]]
   [:entries
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/switch-entry]]]]],
 :javaparser-clj.malli/switch-stmt
 [:merge
  [:ref :javaparser-clj.malli/statement-base]
  [:map
   [:node/kind {:optional true} [:= :switch-stmt]]
   [:selector {:optional nil} [:ref :javaparser-clj.malli/expression]]
   [:entries
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/switch-entry]]]]],
 :javaparser-clj.malli/synchronized-stmt
 [:merge
  [:ref :javaparser-clj.malli/statement-base]
  [:map
   [:node/kind {:optional true} [:= :synchronized-stmt]]
   [:expression
    {:optional nil}
    [:ref :javaparser-clj.malli/expression]]
   [:body {:optional nil} [:ref :javaparser-clj.malli/block-stmt]]]],
 :javaparser-clj.malli/text-block-literal-expr
 [:merge
  [:ref :javaparser-clj.malli/literal-string-value-expr-base]
  [:map [:node/kind {:optional true} [:= :text-block-literal-expr]]]],
 :javaparser-clj.malli/this-expr
 [:merge
  [:ref :javaparser-clj.malli/expression-base]
  [:map
   [:node/kind {:optional true} [:= :this-expr]]
   [:type-name {:optional true} [:ref :javaparser-clj.malli/name]]]],
 :javaparser-clj.malli/throw-stmt
 [:merge
  [:ref :javaparser-clj.malli/statement-base]
  [:map
   [:node/kind {:optional true} [:= :throw-stmt]]
   [:expression
    {:optional nil}
    [:ref :javaparser-clj.malli/expression]]]],
 :javaparser-clj.malli/try-stmt
 [:merge
  [:ref :javaparser-clj.malli/statement-base]
  [:map
   [:node/kind {:optional true} [:= :try-stmt]]
   [:resources
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/expression]]]
   [:try-block {:optional nil} [:ref :javaparser-clj.malli/block-stmt]]
   [:catch-clauses
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/catch-clause]]]
   [:finally-block
    {:optional true}
    [:ref :javaparser-clj.malli/block-stmt]]]],
 :javaparser-clj.malli/type
 [:multi
  {:dispatch :node/kind}
  [:intersection-type [:ref :javaparser-clj.malli/intersection-type]]
  [:primitive-type [:ref :javaparser-clj.malli/primitive-type]]
  [:reference-type [:ref :javaparser-clj.malli/reference-type]]
  [:union-type [:ref :javaparser-clj.malli/union-type]]
  [:unknown-type [:ref :javaparser-clj.malli/unknown-type]]
  [:var-type [:ref :javaparser-clj.malli/var-type]]
  [:void-type [:ref :javaparser-clj.malli/void-type]]
  [:wildcard-type [:ref :javaparser-clj.malli/wildcard-type]]],
 :javaparser-clj.malli/type-base
 [:merge
  [:ref :javaparser-clj.malli/node-base]
  [:map
   [:node/kind {:optional true} [:= :type]]
   [:annotations
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/annotation-expr]]]]],
 :javaparser-clj.malli/type-declaration
 [:multi
  {:dispatch :node/kind}
  [:annotation-declaration
   [:ref :javaparser-clj.malli/annotation-declaration]]
  [:class-or-interface-declaration
   [:ref :javaparser-clj.malli/class-or-interface-declaration]]
  [:enum-declaration [:ref :javaparser-clj.malli/enum-declaration]]
  [:record-declaration
   [:ref :javaparser-clj.malli/record-declaration]]],
 :javaparser-clj.malli/type-declaration-base
 [:merge
  [:ref :javaparser-clj.malli/body-declaration-base]
  [:map
   [:node/kind {:optional true} [:= :type-declaration]]
   [:name {:optional nil} [:ref :javaparser-clj.malli/simple-name]]
   [:modifiers
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/modifier]]]
   [:members
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/body-declaration]]]]],
 :javaparser-clj.malli/type-expr
 [:merge
  [:ref :javaparser-clj.malli/expression-base]
  [:map
   [:node/kind {:optional true} [:= :type-expr]]
   [:type {:optional nil} [:ref :javaparser-clj.malli/type]]]],
 :javaparser-clj.malli/type-parameter
 [:merge
  [:ref :javaparser-clj.malli/reference-type-base]
  [:map
   [:node/kind {:optional true} [:= :type-parameter]]
   [:name {:optional nil} [:ref :javaparser-clj.malli/simple-name]]
   [:type-bound
    {:optional nil}
    [:sequential
     [:ref :javaparser-clj.malli/class-or-interface-type]]]]],
 :javaparser-clj.malli/unary-expr
 [:merge
  [:ref :javaparser-clj.malli/expression-base]
  [:map
   [:node/kind {:optional true} [:= :unary-expr]]
   [:expression
    {:optional nil}
    [:ref :javaparser-clj.malli/expression]]
   [:operator {:optional nil} [:ref :javaparser-clj.malli/unary-op]]]],
 :javaparser-clj.malli/unary-op
 [:enum
  :plus
  :minus
  :inc-prefix
  :dec-prefix
  :not
  :bit-not
  :inc-postfix
  :dec-postfix],
 :javaparser-clj.malli/union-type
 [:merge
  [:ref :javaparser-clj.malli/type-base]
  [:map
   [:node/kind {:optional true} [:= :union-type]]
   [:elements
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/reference-type]]]]],
 :javaparser-clj.malli/unknown-type
 [:merge
  [:ref :javaparser-clj.malli/type-base]
  [:map [:node/kind {:optional true} [:= :unknown-type]]]],
 :javaparser-clj.malli/unparsable-stmt
 [:merge
  [:ref :javaparser-clj.malli/statement-base]
  [:map [:node/kind {:optional true} [:= :unparsable-stmt]]]],
 :javaparser-clj.malli/var-type
 [:merge
  [:ref :javaparser-clj.malli/type-base]
  [:map [:node/kind {:optional true} [:= :var-type]]]],
 :javaparser-clj.malli/variable-declaration-expr
 [:merge
  [:ref :javaparser-clj.malli/expression-base]
  [:map
   [:node/kind {:optional true} [:= :variable-declaration-expr]]
   [:modifiers
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/modifier]]]
   [:annotations
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/annotation-expr]]]
   [:variables
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/variable-declarator]]]]],
 :javaparser-clj.malli/variable-declarator
 [:merge
  [:ref :javaparser-clj.malli/node-base]
  [:map
   [:node/kind {:optional true} [:= :variable-declarator]]
   [:name {:optional nil} [:ref :javaparser-clj.malli/simple-name]]
   [:initializer
    {:optional true}
    [:ref :javaparser-clj.malli/expression]]
   [:type {:optional nil} [:ref :javaparser-clj.malli/type]]]],
 :javaparser-clj.malli/void-type
 [:merge
  [:ref :javaparser-clj.malli/type-base]
  [:map [:node/kind {:optional true} [:= :void-type]]]],
 :javaparser-clj.malli/while-stmt
 [:merge
  [:ref :javaparser-clj.malli/statement-base]
  [:map
   [:node/kind {:optional true} [:= :while-stmt]]
   [:condition {:optional nil} [:ref :javaparser-clj.malli/expression]]
   [:body {:optional nil} [:ref :javaparser-clj.malli/statement]]]],
 :javaparser-clj.malli/wildcard-type
 [:merge
  [:ref :javaparser-clj.malli/type-base]
  [:map
   [:node/kind {:optional true} [:= :wildcard-type]]
   [:extended-type
    {:optional true}
    [:ref :javaparser-clj.malli/reference-type]]
   [:super-type
    {:optional true}
    [:ref :javaparser-clj.malli/reference-type]]]],
 :javaparser-clj.malli/yield-stmt
 [:merge
  [:ref :javaparser-clj.malli/statement-base]
  [:map
   [:node/kind {:optional true} [:= :yield-stmt]]
   [:expression
    {:optional nil}
    [:ref :javaparser-clj.malli/expression]]]]}
The following are all schemas for the java AST:
```clojure
{:javaparser-clj.malli/annotation-declaration
 [:merge
  [:ref :javaparser-clj.malli/type-declaration-base]
  [:map [:node/kind {:optional true} [:= :annotation-declaration]]]],
 :javaparser-clj.malli/annotation-expr
 [:multi
  {:dispatch :node/kind}
  [:marker-annotation-expr
   [:ref :javaparser-clj.malli/marker-annotation-expr]]
  [:normal-annotation-expr
   [:ref :javaparser-clj.malli/normal-annotation-expr]]
  [:single-member-annotation-expr
   [:ref :javaparser-clj.malli/single-member-annotation-expr]]],
 :javaparser-clj.malli/annotation-expr-base
 [:merge
  [:ref :javaparser-clj.malli/expression-base]
  [:map
   [:node/kind {:optional true} [:= :annotation-expr]]
   [:name {:optional nil} [:ref :javaparser-clj.malli/name]]]],
 :javaparser-clj.malli/annotation-member-declaration
 [:merge
  [:ref :javaparser-clj.malli/body-declaration-base]
  [:map
   [:node/kind {:optional true} [:= :annotation-member-declaration]]
   [:modifiers
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/modifier]]]
   [:type {:optional nil} [:ref :javaparser-clj.malli/type]]
   [:name {:optional nil} [:ref :javaparser-clj.malli/simple-name]]
   [:default-value
    {:optional true}
    [:ref :javaparser-clj.malli/expression]]]],
 :javaparser-clj.malli/array-access-expr
 [:merge
  [:ref :javaparser-clj.malli/expression-base]
  [:map
   [:node/kind {:optional true} [:= :array-access-expr]]
   [:name {:optional nil} [:ref :javaparser-clj.malli/expression]]
   [:index {:optional nil} [:ref :javaparser-clj.malli/expression]]]],
 :javaparser-clj.malli/array-brackets-position [:enum :name :type],
 :javaparser-clj.malli/array-creation-expr
 [:merge
  [:ref :javaparser-clj.malli/expression-base]
  [:map
   [:node/kind {:optional true} [:= :array-creation-expr]]
   [:levels
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/array-creation-level]]]
   [:element-type {:optional nil} [:ref :javaparser-clj.malli/type]]
   [:initializer
    {:optional true}
    [:ref :javaparser-clj.malli/array-initializer-expr]]]],
 :javaparser-clj.malli/array-creation-level
 [:merge
  [:ref :javaparser-clj.malli/node-base]
  [:map
   [:node/kind {:optional true} [:= :array-creation-level]]
   [:dimension
    {:optional true}
    [:ref :javaparser-clj.malli/expression]]
   [:annotations
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/annotation-expr]]]]],
 :javaparser-clj.malli/array-initializer-expr
 [:merge
  [:ref :javaparser-clj.malli/expression-base]
  [:map
   [:node/kind {:optional true} [:= :array-initializer-expr]]
   [:values
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/expression]]]]],
 :javaparser-clj.malli/array-type
 [:merge
  [:ref :javaparser-clj.malli/reference-type-base]
  [:map
   [:node/kind {:optional true} [:= :array-type]]
   [:component-type {:optional nil} [:ref :javaparser-clj.malli/type]]
   [:origin
    {:optional nil}
    [:ref :javaparser-clj.malli/array-brackets-position]]]],
 :javaparser-clj.malli/assert-stmt
 [:merge
  [:ref :javaparser-clj.malli/statement-base]
  [:map
   [:node/kind {:optional true} [:= :assert-stmt]]
   [:check {:optional nil} [:ref :javaparser-clj.malli/expression]]
   [:message
    {:optional true}
    [:ref :javaparser-clj.malli/expression]]]],
 :javaparser-clj.malli/assign-expr
 [:merge
  [:ref :javaparser-clj.malli/expression-base]
  [:map
   [:node/kind {:optional true} [:= :assign-expr]]
   [:target {:optional nil} [:ref :javaparser-clj.malli/expression]]
   [:value {:optional nil} [:ref :javaparser-clj.malli/expression]]
   [:operator
    {:optional nil}
    [:ref :javaparser-clj.malli/assign-op]]]],
 :javaparser-clj.malli/assign-op
 [:enum
  :assign
  :add
  :sub
  :mul
  :div
  :bit-and
  :bit-or
  :xor
  :mod
  :bit-shift-left
  :bit-shift-right
  :unsigned-bit-shift-right],
 :javaparser-clj.malli/binary-expr
 [:merge
  [:ref :javaparser-clj.malli/expression-base]
  [:map
   [:node/kind {:optional true} [:= :binary-expr]]
   [:left {:optional nil} [:ref :javaparser-clj.malli/expression]]
   [:right {:optional nil} [:ref :javaparser-clj.malli/expression]]
   [:operator
    {:optional nil}
    [:ref :javaparser-clj.malli/binary-op]]]],
 :javaparser-clj.malli/binary-op
 [:enum
  :or
  :and
  :bit-or
  :bit-and
  :xor
  :equal
  :not-equal
  :less
  :greater
  :less-or-equal
  :greater-or-equal
  :bit-shift-left
  :bit-shift-right
  :unsigned-bit-shift-right
  :add
  :sub
  :mul
  :div
  :mod],
 :javaparser-clj.malli/block-comment
 [:merge
  [:ref :javaparser-clj.malli/comment-base]
  [:map [:node/kind {:optional true} [:= :block-comment]]]],
 :javaparser-clj.malli/block-stmt
 [:merge
  [:ref :javaparser-clj.malli/statement-base]
  [:map
   [:node/kind {:optional true} [:= :block-stmt]]
   [:statements
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/statement]]]]],
 :javaparser-clj.malli/body-declaration
 [:multi
  {:dispatch :node/kind}
  [:annotation-member-declaration
   [:ref :javaparser-clj.malli/annotation-member-declaration]]
  [:callable-declaration
   [:ref :javaparser-clj.malli/callable-declaration]]
  [:compact-constructor-declaration
   [:ref :javaparser-clj.malli/compact-constructor-declaration]]
  [:enum-constant-declaration
   [:ref :javaparser-clj.malli/enum-constant-declaration]]
  [:field-declaration [:ref :javaparser-clj.malli/field-declaration]]
  [:initializer-declaration
   [:ref :javaparser-clj.malli/initializer-declaration]]
  [:type-declaration [:ref :javaparser-clj.malli/type-declaration]]],
 :javaparser-clj.malli/body-declaration-base
 [:merge
  [:ref :javaparser-clj.malli/node-base]
  [:map
   [:node/kind {:optional true} [:= :body-declaration]]
   [:annotations
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/annotation-expr]]]]],
 :javaparser-clj.malli/boolean-literal-expr
 [:merge
  [:ref :javaparser-clj.malli/literal-expr-base]
  [:map
   [:node/kind {:optional true} [:= :boolean-literal-expr]]
   [:value {:optional nil} :boolean]]],
 :javaparser-clj.malli/break-stmt
 [:merge
  [:ref :javaparser-clj.malli/statement-base]
  [:map
   [:node/kind {:optional true} [:= :break-stmt]]
   [:label
    {:optional true}
    [:ref :javaparser-clj.malli/simple-name]]]],
 :javaparser-clj.malli/callable-declaration
 [:multi
  {:dispatch :node/kind}
  [:constructor-declaration
   [:ref :javaparser-clj.malli/constructor-declaration]]
  [:method-declaration
   [:ref :javaparser-clj.malli/method-declaration]]],
 :javaparser-clj.malli/callable-declaration-base
 [:merge
  [:ref :javaparser-clj.malli/body-declaration-base]
  [:map
   [:node/kind {:optional true} [:= :callable-declaration]]
   [:modifiers
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/modifier]]]
   [:type-parameters
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/type-parameter]]]
   [:name {:optional nil} [:ref :javaparser-clj.malli/simple-name]]
   [:parameters
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/parameter]]]
   [:thrown-exceptions
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/reference-type]]]
   [:receiver-parameter
    {:optional true}
    [:ref :javaparser-clj.malli/receiver-parameter]]]],
 :javaparser-clj.malli/cast-expr
 [:merge
  [:ref :javaparser-clj.malli/expression-base]
  [:map
   [:node/kind {:optional true} [:= :cast-expr]]
   [:type {:optional nil} [:ref :javaparser-clj.malli/type]]
   [:expression
    {:optional nil}
    [:ref :javaparser-clj.malli/expression]]]],
 :javaparser-clj.malli/catch-clause
 [:merge
  [:ref :javaparser-clj.malli/node-base]
  [:map
   [:node/kind {:optional true} [:= :catch-clause]]
   [:parameter {:optional nil} [:ref :javaparser-clj.malli/parameter]]
   [:body {:optional nil} [:ref :javaparser-clj.malli/block-stmt]]]],
 :javaparser-clj.malli/char-literal-expr
 [:merge
  [:ref :javaparser-clj.malli/literal-string-value-expr-base]
  [:map [:node/kind {:optional true} [:= :char-literal-expr]]]],
 :javaparser-clj.malli/class-expr
 [:merge
  [:ref :javaparser-clj.malli/expression-base]
  [:map
   [:node/kind {:optional true} [:= :class-expr]]
   [:type {:optional nil} [:ref :javaparser-clj.malli/type]]]],
 :javaparser-clj.malli/class-or-interface-declaration
 [:merge
  [:ref :javaparser-clj.malli/type-declaration-base]
  [:map
   [:node/kind {:optional true} [:= :class-or-interface-declaration]]
   [:interface? {:optional nil} :boolean]
   [:type-parameters
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/type-parameter]]]
   [:extended-types
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/class-or-interface-type]]]
   [:implemented-types
    {:optional nil}
    [:sequential
     [:ref :javaparser-clj.malli/class-or-interface-type]]]]],
 :javaparser-clj.malli/class-or-interface-type
 [:merge
  [:ref :javaparser-clj.malli/reference-type-base]
  [:map
   [:node/kind {:optional true} [:= :class-or-interface-type]]
   [:scope
    {:optional true}
    [:ref :javaparser-clj.malli/class-or-interface-type]]
   [:name {:optional nil} [:ref :javaparser-clj.malli/simple-name]]
   [:type-arguments
    {:optional true}
    [:sequential [:ref :javaparser-clj.malli/type]]]]],
 :javaparser-clj.malli/comment
 [:multi
  {:dispatch :node/kind}
  [:block-comment [:ref :javaparser-clj.malli/block-comment]]
  [:javadoc-comment [:ref :javaparser-clj.malli/javadoc-comment]]
  [:line-comment [:ref :javaparser-clj.malli/line-comment]]],
 :javaparser-clj.malli/comment-base
 [:merge
  [:map [:range {:optional true} [:ref :javaparser-clj.malli/range]]]
  [:map [:content {:optional nil} :string]]],
 :javaparser-clj.malli/compact-constructor-declaration
 [:merge
  [:ref :javaparser-clj.malli/body-declaration-base]
  [:map
   [:node/kind {:optional true} [:= :compact-constructor-declaration]]
   [:modifiers
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/modifier]]]
   [:body {:optional nil} [:ref :javaparser-clj.malli/block-stmt]]
   [:type-parameters
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/type-parameter]]]
   [:name {:optional nil} [:ref :javaparser-clj.malli/simple-name]]
   [:thrown-exceptions
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/reference-type]]]]],
 :javaparser-clj.malli/compilation-unit
 [:merge
  [:ref :javaparser-clj.malli/node-base]
  [:map
   [:node/kind {:optional true} [:= :compilation-unit]]
   [:package
    {:optional true}
    [:ref :javaparser-clj.malli/package-declaration]]
   [:imports
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/import-declaration]]]
   [:types
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/type-declaration]]]
   [:module
    {:optional true}
    [:ref :javaparser-clj.malli/module-declaration]]]],
 :javaparser-clj.malli/conditional-expr
 [:merge
  [:ref :javaparser-clj.malli/expression-base]
  [:map
   [:node/kind {:optional true} [:= :conditional-expr]]
   [:condition {:optional nil} [:ref :javaparser-clj.malli/expression]]
   [:then-expr {:optional nil} [:ref :javaparser-clj.malli/expression]]
   [:else-expr
    {:optional nil}
    [:ref :javaparser-clj.malli/expression]]]],
 :javaparser-clj.malli/constructor-declaration
 [:merge
  [:ref :javaparser-clj.malli/callable-declaration-base]
  [:map
   [:node/kind {:optional true} [:= :constructor-declaration]]
   [:body {:optional nil} [:ref :javaparser-clj.malli/block-stmt]]]],
 :javaparser-clj.malli/continue-stmt
 [:merge
  [:ref :javaparser-clj.malli/statement-base]
  [:map
   [:node/kind {:optional true} [:= :continue-stmt]]
   [:label
    {:optional true}
    [:ref :javaparser-clj.malli/simple-name]]]],
 :javaparser-clj.malli/do-stmt
 [:merge
  [:ref :javaparser-clj.malli/statement-base]
  [:map
   [:node/kind {:optional true} [:= :do-stmt]]
   [:body {:optional nil} [:ref :javaparser-clj.malli/statement]]
   [:condition
    {:optional nil}
    [:ref :javaparser-clj.malli/expression]]]],
 :javaparser-clj.malli/double-literal-expr
 [:merge
  [:ref :javaparser-clj.malli/literal-string-value-expr-base]
  [:map [:node/kind {:optional true} [:= :double-literal-expr]]]],
 :javaparser-clj.malli/empty-stmt
 [:merge
  [:ref :javaparser-clj.malli/statement-base]
  [:map [:node/kind {:optional true} [:= :empty-stmt]]]],
 :javaparser-clj.malli/enclosed-expr
 [:merge
  [:ref :javaparser-clj.malli/expression-base]
  [:map
   [:node/kind {:optional true} [:= :enclosed-expr]]
   [:inner {:optional nil} [:ref :javaparser-clj.malli/expression]]]],
 :javaparser-clj.malli/enum-constant-declaration
 [:merge
  [:ref :javaparser-clj.malli/body-declaration-base]
  [:map
   [:node/kind {:optional true} [:= :enum-constant-declaration]]
   [:name {:optional nil} [:ref :javaparser-clj.malli/simple-name]]
   [:arguments
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/expression]]]
   [:class-body
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/body-declaration]]]]],
 :javaparser-clj.malli/enum-declaration
 [:merge
  [:ref :javaparser-clj.malli/type-declaration-base]
  [:map
   [:node/kind {:optional true} [:= :enum-declaration]]
   [:implemented-types
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/class-or-interface-type]]]
   [:entries
    {:optional nil}
    [:sequential
     [:ref :javaparser-clj.malli/enum-constant-declaration]]]]],
 :javaparser-clj.malli/explicit-constructor-invocation-stmt
 [:merge
  [:ref :javaparser-clj.malli/statement-base]
  [:map
   [:node/kind
    {:optional true}
    [:= :explicit-constructor-invocation-stmt]]
   [:type-arguments
    {:optional true}
    [:sequential [:ref :javaparser-clj.malli/type]]]
   [:this? {:optional nil} :boolean]
   [:expression
    {:optional true}
    [:ref :javaparser-clj.malli/expression]]
   [:arguments
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/expression]]]]],
 :javaparser-clj.malli/expression
 [:multi
  {:dispatch :node/kind}
  [:annotation-expr [:ref :javaparser-clj.malli/annotation-expr]]
  [:array-access-expr [:ref :javaparser-clj.malli/array-access-expr]]
  [:array-creation-expr
   [:ref :javaparser-clj.malli/array-creation-expr]]
  [:array-initializer-expr
   [:ref :javaparser-clj.malli/array-initializer-expr]]
  [:assign-expr [:ref :javaparser-clj.malli/assign-expr]]
  [:binary-expr [:ref :javaparser-clj.malli/binary-expr]]
  [:cast-expr [:ref :javaparser-clj.malli/cast-expr]]
  [:class-expr [:ref :javaparser-clj.malli/class-expr]]
  [:conditional-expr [:ref :javaparser-clj.malli/conditional-expr]]
  [:enclosed-expr [:ref :javaparser-clj.malli/enclosed-expr]]
  [:field-access-expr [:ref :javaparser-clj.malli/field-access-expr]]
  [:instance-of-expr [:ref :javaparser-clj.malli/instance-of-expr]]
  [:lambda-expr [:ref :javaparser-clj.malli/lambda-expr]]
  [:literal-expr [:ref :javaparser-clj.malli/literal-expr]]
  [:method-call-expr [:ref :javaparser-clj.malli/method-call-expr]]
  [:method-reference-expr
   [:ref :javaparser-clj.malli/method-reference-expr]]
  [:name-expr [:ref :javaparser-clj.malli/name-expr]]
  [:object-creation-expr
   [:ref :javaparser-clj.malli/object-creation-expr]]
  [:pattern-expr [:ref :javaparser-clj.malli/pattern-expr]]
  [:super-expr [:ref :javaparser-clj.malli/super-expr]]
  [:switch-expr [:ref :javaparser-clj.malli/switch-expr]]
  [:this-expr [:ref :javaparser-clj.malli/this-expr]]
  [:type-expr [:ref :javaparser-clj.malli/type-expr]]
  [:unary-expr [:ref :javaparser-clj.malli/unary-expr]]
  [:variable-declaration-expr
   [:ref :javaparser-clj.malli/variable-declaration-expr]]],
 :javaparser-clj.malli/expression-base
 [:merge
  [:ref :javaparser-clj.malli/node-base]
  [:map [:node/kind {:optional true} [:= :expression]]]],
 :javaparser-clj.malli/expression-stmt
 [:merge
  [:ref :javaparser-clj.malli/statement-base]
  [:map
   [:node/kind {:optional true} [:= :expression-stmt]]
   [:expression
    {:optional nil}
    [:ref :javaparser-clj.malli/expression]]]],
 :javaparser-clj.malli/field-access-expr
 [:merge
  [:ref :javaparser-clj.malli/expression-base]
  [:map
   [:node/kind {:optional true} [:= :field-access-expr]]
   [:scope {:optional nil} [:ref :javaparser-clj.malli/expression]]
   [:type-arguments
    {:optional true}
    [:sequential [:ref :javaparser-clj.malli/type]]]
   [:name {:optional nil} [:ref :javaparser-clj.malli/simple-name]]]],
 :javaparser-clj.malli/field-declaration
 [:merge
  [:ref :javaparser-clj.malli/body-declaration-base]
  [:map
   [:node/kind {:optional true} [:= :field-declaration]]
   [:modifiers
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/modifier]]]
   [:variables
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/variable-declarator]]]]],
 :javaparser-clj.malli/for-each-stmt
 [:merge
  [:ref :javaparser-clj.malli/statement-base]
  [:map
   [:node/kind {:optional true} [:= :for-each-stmt]]
   [:variable
    {:optional nil}
    [:ref :javaparser-clj.malli/variable-declaration-expr]]
   [:iterable {:optional nil} [:ref :javaparser-clj.malli/expression]]
   [:body {:optional nil} [:ref :javaparser-clj.malli/statement]]]],
 :javaparser-clj.malli/for-stmt
 [:merge
  [:ref :javaparser-clj.malli/statement-base]
  [:map
   [:node/kind {:optional true} [:= :for-stmt]]
   [:initialization
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/expression]]]
   [:compare {:optional true} [:ref :javaparser-clj.malli/expression]]
   [:update
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/expression]]]
   [:body {:optional nil} [:ref :javaparser-clj.malli/statement]]]],
 :javaparser-clj.malli/if-stmt
 [:merge
  [:ref :javaparser-clj.malli/statement-base]
  [:map
   [:node/kind {:optional true} [:= :if-stmt]]
   [:condition {:optional nil} [:ref :javaparser-clj.malli/expression]]
   [:then-stmt {:optional nil} [:ref :javaparser-clj.malli/statement]]
   [:else-stmt
    {:optional true}
    [:ref :javaparser-clj.malli/statement]]]],
 :javaparser-clj.malli/import-declaration
 [:merge
  [:ref :javaparser-clj.malli/node-base]
  [:map
   [:node/kind {:optional true} [:= :import-declaration]]
   [:name {:optional nil} [:ref :javaparser-clj.malli/name]]
   [:static? {:optional nil} :boolean]
   [:asterisk? {:optional nil} :boolean]]],
 :javaparser-clj.malli/initializer-declaration
 [:merge
  [:ref :javaparser-clj.malli/body-declaration-base]
  [:map
   [:node/kind {:optional true} [:= :initializer-declaration]]
   [:static? {:optional nil} :boolean]
   [:body {:optional nil} [:ref :javaparser-clj.malli/block-stmt]]]],
 :javaparser-clj.malli/instance-of-expr
 [:merge
  [:ref :javaparser-clj.malli/expression-base]
  [:map
   [:node/kind {:optional true} [:= :instance-of-expr]]
   [:expression
    {:optional nil}
    [:ref :javaparser-clj.malli/expression]]
   [:pattern
    {:optional true}
    [:ref :javaparser-clj.malli/pattern-expr]]
   [:type
    {:optional nil}
    [:ref :javaparser-clj.malli/reference-type]]]],
 :javaparser-clj.malli/integer-literal-expr
 [:merge
  [:ref :javaparser-clj.malli/literal-string-value-expr-base]
  [:map [:node/kind {:optional true} [:= :integer-literal-expr]]]],
 :javaparser-clj.malli/intersection-type
 [:merge
  [:ref :javaparser-clj.malli/type-base]
  [:map
   [:node/kind {:optional true} [:= :intersection-type]]
   [:elements
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/reference-type]]]]],
 :javaparser-clj.malli/javadoc-comment
 [:merge
  [:ref :javaparser-clj.malli/comment-base]
  [:map [:node/kind {:optional true} [:= :javadoc-comment]]]],
 :javaparser-clj.malli/labeled-stmt
 [:merge
  [:ref :javaparser-clj.malli/statement-base]
  [:map
   [:node/kind {:optional true} [:= :labeled-stmt]]
   [:label {:optional nil} [:ref :javaparser-clj.malli/simple-name]]
   [:statement
    {:optional nil}
    [:ref :javaparser-clj.malli/statement]]]],
 :javaparser-clj.malli/lambda-expr
 [:merge
  [:ref :javaparser-clj.malli/expression-base]
  [:map
   [:node/kind {:optional true} [:= :lambda-expr]]
   [:parameters
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/parameter]]]
   [:enclosing-parameters? {:optional nil} :boolean]
   [:body {:optional nil} [:ref :javaparser-clj.malli/statement]]]],
 :javaparser-clj.malli/line-comment
 [:merge
  [:ref :javaparser-clj.malli/comment-base]
  [:map [:node/kind {:optional true} [:= :line-comment]]]],
 :javaparser-clj.malli/literal-expr
 [:multi
  {:dispatch :node/kind}
  [:boolean-literal-expr
   [:ref :javaparser-clj.malli/boolean-literal-expr]]
  [:literal-string-value-expr
   [:ref :javaparser-clj.malli/literal-string-value-expr]]
  [:null-literal-expr [:ref :javaparser-clj.malli/null-literal-expr]]],
 :javaparser-clj.malli/literal-expr-base
 [:merge
  [:ref :javaparser-clj.malli/expression-base]
  [:map [:node/kind {:optional true} [:= :literal-expr]]]],
 :javaparser-clj.malli/literal-string-value-expr
 [:multi
  {:dispatch :node/kind}
  [:char-literal-expr [:ref :javaparser-clj.malli/char-literal-expr]]
  [:double-literal-expr
   [:ref :javaparser-clj.malli/double-literal-expr]]
  [:integer-literal-expr
   [:ref :javaparser-clj.malli/integer-literal-expr]]
  [:long-literal-expr [:ref :javaparser-clj.malli/long-literal-expr]]
  [:string-literal-expr
   [:ref :javaparser-clj.malli/string-literal-expr]]
  [:text-block-literal-expr
   [:ref :javaparser-clj.malli/text-block-literal-expr]]],
 :javaparser-clj.malli/literal-string-value-expr-base
 [:merge
  [:ref :javaparser-clj.malli/literal-expr-base]
  [:map
   [:node/kind {:optional true} [:= :literal-string-value-expr]]
   [:value {:optional nil} :string]]],
 :javaparser-clj.malli/local-class-declaration-stmt
 [:merge
  [:ref :javaparser-clj.malli/statement-base]
  [:map
   [:node/kind {:optional true} [:= :local-class-declaration-stmt]]
   [:class-declaration
    {:optional nil}
    [:ref :javaparser-clj.malli/class-or-interface-declaration]]]],
 :javaparser-clj.malli/local-record-declaration-stmt
 [:merge
  [:ref :javaparser-clj.malli/statement-base]
  [:map
   [:node/kind {:optional true} [:= :local-record-declaration-stmt]]
   [:record-declaration
    {:optional nil}
    [:ref :javaparser-clj.malli/record-declaration]]]],
 :javaparser-clj.malli/long-literal-expr
 [:merge
  [:ref :javaparser-clj.malli/literal-string-value-expr-base]
  [:map [:node/kind {:optional true} [:= :long-literal-expr]]]],
 :javaparser-clj.malli/marker-annotation-expr
 [:merge
  [:ref :javaparser-clj.malli/annotation-expr-base]
  [:map [:node/kind {:optional true} [:= :marker-annotation-expr]]]],
 :javaparser-clj.malli/member-value-pair
 [:merge
  [:ref :javaparser-clj.malli/node-base]
  [:map
   [:node/kind {:optional true} [:= :member-value-pair]]
   [:name {:optional nil} [:ref :javaparser-clj.malli/simple-name]]
   [:value {:optional nil} [:ref :javaparser-clj.malli/expression]]]],
 :javaparser-clj.malli/method-call-expr
 [:merge
  [:ref :javaparser-clj.malli/expression-base]
  [:map
   [:node/kind {:optional true} [:= :method-call-expr]]
   [:scope {:optional true} [:ref :javaparser-clj.malli/expression]]
   [:type-arguments
    {:optional true}
    [:sequential [:ref :javaparser-clj.malli/type]]]
   [:name {:optional nil} [:ref :javaparser-clj.malli/simple-name]]
   [:arguments
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/expression]]]]],
 :javaparser-clj.malli/method-declaration
 [:merge
  [:ref :javaparser-clj.malli/callable-declaration-base]
  [:map
   [:node/kind {:optional true} [:= :method-declaration]]
   [:type {:optional nil} [:ref :javaparser-clj.malli/type]]
   [:body {:optional true} [:ref :javaparser-clj.malli/block-stmt]]]],
 :javaparser-clj.malli/method-reference-expr
 [:merge
  [:ref :javaparser-clj.malli/expression-base]
  [:map
   [:node/kind {:optional true} [:= :method-reference-expr]]
   [:scope {:optional nil} [:ref :javaparser-clj.malli/expression]]
   [:type-arguments
    {:optional true}
    [:sequential [:ref :javaparser-clj.malli/type]]]
   [:identifier {:optional nil} :string]]],
 :javaparser-clj.malli/modifier
 [:enum
  :abstract
  :default
  :final
  :native
  :private
  :protected
  :public
  :static
  :strictfp
  :synchronized
  :transient
  :transitive
  :volatile],
 :javaparser-clj.malli/module-declaration
 [:merge
  [:ref :javaparser-clj.malli/node-base]
  [:map
   [:node/kind {:optional true} [:= :module-declaration]]
   [:name {:optional nil} [:ref :javaparser-clj.malli/name]]
   [:annotations
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/annotation-expr]]]
   [:open? {:optional nil} :boolean]
   [:directives
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/module-directive]]]]],
 :javaparser-clj.malli/module-directive
 [:multi {:dispatch :node/kind}],
 :javaparser-clj.malli/module-directive-base
 [:merge
  [:ref :javaparser-clj.malli/node-base]
  [:map [:node/kind {:optional true} [:= :module-directive]]]],
 :javaparser-clj.malli/name
 [:map
  [:identifier [:string {:min 1}]]
  [:qualifier {:optional true} [:vector [:string {:min 1}]]]],
 :javaparser-clj.malli/name-expr
 [:merge
  [:ref :javaparser-clj.malli/expression-base]
  [:map
   [:node/kind {:optional true} [:= :name-expr]]
   [:name {:optional nil} [:ref :javaparser-clj.malli/simple-name]]]],
 :javaparser-clj.malli/node
 [:map
  [:node/kind {:optional true} [:= :node]]
  [:range {:optional true} [:ref :javaparser-clj.malli/range]]
  [:orphan-comments
   {:optional true}
   [:sequential [:ref :javaparser-clj.malli/comment]]]
  [:comment {:optional true} [:ref :javaparser-clj.malli/comment]]],
 :javaparser-clj.malli/node-base
 [:map
  [:node/kind {:optional true} [:= :node]]
  [:range {:optional true} [:ref :javaparser-clj.malli/range]]
  [:orphan-comments
   {:optional true}
   [:sequential [:ref :javaparser-clj.malli/comment]]]
  [:comment {:optional true} [:ref :javaparser-clj.malli/comment]]],
 :javaparser-clj.malli/nodes :sequential,
 :javaparser-clj.malli/normal-annotation-expr
 [:merge
  [:ref :javaparser-clj.malli/annotation-expr-base]
  [:map
   [:node/kind {:optional true} [:= :normal-annotation-expr]]
   [:pairs
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/member-value-pair]]]]],
 :javaparser-clj.malli/null-literal-expr
 [:merge
  [:ref :javaparser-clj.malli/literal-expr-base]
  [:map [:node/kind {:optional true} [:= :null-literal-expr]]]],
 :javaparser-clj.malli/object-creation-expr
 [:merge
  [:ref :javaparser-clj.malli/expression-base]
  [:map
   [:node/kind {:optional true} [:= :object-creation-expr]]
   [:scope {:optional true} [:ref :javaparser-clj.malli/expression]]
   [:type
    {:optional nil}
    [:ref :javaparser-clj.malli/class-or-interface-type]]
   [:type-arguments
    {:optional true}
    [:sequential [:ref :javaparser-clj.malli/type]]]
   [:arguments
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/expression]]]
   [:anonymous-class-body
    {:optional true}
    [:sequential [:ref :javaparser-clj.malli/body-declaration]]]]],
 :javaparser-clj.malli/package-declaration
 [:merge
  [:ref :javaparser-clj.malli/node-base]
  [:map
   [:node/kind {:optional true} [:= :package-declaration]]
   [:annotations
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/annotation-expr]]]
   [:name {:optional nil} [:ref :javaparser-clj.malli/name]]]],
 :javaparser-clj.malli/parameter
 [:merge
  [:ref :javaparser-clj.malli/node-base]
  [:map
   [:node/kind {:optional true} [:= :parameter]]
   [:type {:optional nil} [:ref :javaparser-clj.malli/type]]
   [:var-args? {:optional nil} :boolean]
   [:var-args-annotations
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/annotation-expr]]]
   [:modifiers
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/modifier]]]
   [:annotations
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/annotation-expr]]]
   [:name {:optional nil} [:ref :javaparser-clj.malli/simple-name]]]],
 :javaparser-clj.malli/pattern-expr
 [:merge
  [:ref :javaparser-clj.malli/expression-base]
  [:map
   [:node/kind {:optional true} [:= :pattern-expr]]
   [:name {:optional nil} [:ref :javaparser-clj.malli/simple-name]]
   [:type
    {:optional nil}
    [:ref :javaparser-clj.malli/reference-type]]]],
 :javaparser-clj.malli/position
 [:map
  [:line #IntoSchema{:type :javaparser-clj.malli/int}]
  [:column #IntoSchema{:type :javaparser-clj.malli/int}]],
 :javaparser-clj.malli/primitive
 [:enum :boolean :char :byte :short :int :long :float :double],
 :javaparser-clj.malli/primitive-type
 [:merge
  [:ref :javaparser-clj.malli/type-base]
  [:map
   [:node/kind {:optional true} [:= :primitive-type]]
   [:type {:optional nil} [:ref :javaparser-clj.malli/primitive]]]],
 :javaparser-clj.malli/range
 [:map
  [:begin :javaparser-clj.malli/position]
  [:end :javaparser-clj.malli/position]],
 :javaparser-clj.malli/receiver-parameter
 [:merge
  [:ref :javaparser-clj.malli/node-base]
  [:map
   [:node/kind {:optional true} [:= :receiver-parameter]]
   [:type {:optional nil} [:ref :javaparser-clj.malli/type]]
   [:annotations
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/annotation-expr]]]
   [:name {:optional nil} [:ref :javaparser-clj.malli/name]]]],
 :javaparser-clj.malli/record-declaration
 [:merge
  [:ref :javaparser-clj.malli/type-declaration-base]
  [:map
   [:node/kind {:optional true} [:= :record-declaration]]
   [:type-parameters
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/type-parameter]]]
   [:implemented-types
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/class-or-interface-type]]]
   [:receiver-parameter
    {:optional true}
    [:ref :javaparser-clj.malli/receiver-parameter]]
   [:parameters
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/parameter]]]]],
 :javaparser-clj.malli/reference-type
 [:multi
  {:dispatch :node/kind}
  [:array-type [:ref :javaparser-clj.malli/array-type]]
  [:class-or-interface-type
   [:ref :javaparser-clj.malli/class-or-interface-type]]
  [:type-parameter [:ref :javaparser-clj.malli/type-parameter]]],
 :javaparser-clj.malli/reference-type-base
 [:merge
  [:ref :javaparser-clj.malli/type-base]
  [:map [:node/kind {:optional true} [:= :reference-type]]]],
 :javaparser-clj.malli/return-stmt
 [:merge
  [:ref :javaparser-clj.malli/statement-base]
  [:map
   [:node/kind {:optional true} [:= :return-stmt]]
   [:expression
    {:optional true}
    [:ref :javaparser-clj.malli/expression]]]],
 :javaparser-clj.malli/simple-name [:string {:min 1}],
 :javaparser-clj.malli/single-member-annotation-expr
 [:merge
  [:ref :javaparser-clj.malli/annotation-expr-base]
  [:map
   [:node/kind {:optional true} [:= :single-member-annotation-expr]]
   [:member-value
    {:optional nil}
    [:ref :javaparser-clj.malli/expression]]]],
 :javaparser-clj.malli/statement
 [:multi
  {:dispatch :node/kind}
  [:assert-stmt [:ref :javaparser-clj.malli/assert-stmt]]
  [:block-stmt [:ref :javaparser-clj.malli/block-stmt]]
  [:break-stmt [:ref :javaparser-clj.malli/break-stmt]]
  [:continue-stmt [:ref :javaparser-clj.malli/continue-stmt]]
  [:do-stmt [:ref :javaparser-clj.malli/do-stmt]]
  [:empty-stmt [:ref :javaparser-clj.malli/empty-stmt]]
  [:explicit-constructor-invocation-stmt
   [:ref :javaparser-clj.malli/explicit-constructor-invocation-stmt]]
  [:expression-stmt [:ref :javaparser-clj.malli/expression-stmt]]
  [:for-each-stmt [:ref :javaparser-clj.malli/for-each-stmt]]
  [:for-stmt [:ref :javaparser-clj.malli/for-stmt]]
  [:if-stmt [:ref :javaparser-clj.malli/if-stmt]]
  [:labeled-stmt [:ref :javaparser-clj.malli/labeled-stmt]]
  [:local-class-declaration-stmt
   [:ref :javaparser-clj.malli/local-class-declaration-stmt]]
  [:local-record-declaration-stmt
   [:ref :javaparser-clj.malli/local-record-declaration-stmt]]
  [:return-stmt [:ref :javaparser-clj.malli/return-stmt]]
  [:switch-stmt [:ref :javaparser-clj.malli/switch-stmt]]
  [:synchronized-stmt [:ref :javaparser-clj.malli/synchronized-stmt]]
  [:throw-stmt [:ref :javaparser-clj.malli/throw-stmt]]
  [:try-stmt [:ref :javaparser-clj.malli/try-stmt]]
  [:unparsable-stmt [:ref :javaparser-clj.malli/unparsable-stmt]]
  [:while-stmt [:ref :javaparser-clj.malli/while-stmt]]
  [:yield-stmt [:ref :javaparser-clj.malli/yield-stmt]]],
 :javaparser-clj.malli/statement-base
 [:merge
  [:ref :javaparser-clj.malli/node-base]
  [:map [:node/kind {:optional true} [:= :statement]]]],
 :javaparser-clj.malli/string-literal-expr
 [:merge
  [:ref :javaparser-clj.malli/literal-string-value-expr-base]
  [:map [:node/kind {:optional true} [:= :string-literal-expr]]]],
 :javaparser-clj.malli/super-expr
 [:merge
  [:ref :javaparser-clj.malli/expression-base]
  [:map
   [:node/kind {:optional true} [:= :super-expr]]
   [:type-name {:optional true} [:ref :javaparser-clj.malli/name]]]],
 :javaparser-clj.malli/switch-entry
 [:merge
  [:ref :javaparser-clj.malli/node-base]
  [:map
   [:node/kind {:optional true} [:= :switch-entry]]
   [:labels
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/expression]]]
   [:statements
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/statement]]]
   [:type
    {:optional nil}
    [:ref :javaparser-clj.malli/switch-entry-type]]]],
 :javaparser-clj.malli/switch-entry-type
 [:enum :classic :expression :block :throw],
 :javaparser-clj.malli/switch-expr
 [:merge
  [:ref :javaparser-clj.malli/expression-base]
  [:map
   [:node/kind {:optional true} [:= :switch-expr]]
   [:selector {:optional nil} [:ref :javaparser-clj.malli/expression]]
   [:entries
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/switch-entry]]]]],
 :javaparser-clj.malli/switch-stmt
 [:merge
  [:ref :javaparser-clj.malli/statement-base]
  [:map
   [:node/kind {:optional true} [:= :switch-stmt]]
   [:selector {:optional nil} [:ref :javaparser-clj.malli/expression]]
   [:entries
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/switch-entry]]]]],
 :javaparser-clj.malli/synchronized-stmt
 [:merge
  [:ref :javaparser-clj.malli/statement-base]
  [:map
   [:node/kind {:optional true} [:= :synchronized-stmt]]
   [:expression
    {:optional nil}
    [:ref :javaparser-clj.malli/expression]]
   [:body {:optional nil} [:ref :javaparser-clj.malli/block-stmt]]]],
 :javaparser-clj.malli/text-block-literal-expr
 [:merge
  [:ref :javaparser-clj.malli/literal-string-value-expr-base]
  [:map [:node/kind {:optional true} [:= :text-block-literal-expr]]]],
 :javaparser-clj.malli/this-expr
 [:merge
  [:ref :javaparser-clj.malli/expression-base]
  [:map
   [:node/kind {:optional true} [:= :this-expr]]
   [:type-name {:optional true} [:ref :javaparser-clj.malli/name]]]],
 :javaparser-clj.malli/throw-stmt
 [:merge
  [:ref :javaparser-clj.malli/statement-base]
  [:map
   [:node/kind {:optional true} [:= :throw-stmt]]
   [:expression
    {:optional nil}
    [:ref :javaparser-clj.malli/expression]]]],
 :javaparser-clj.malli/try-stmt
 [:merge
  [:ref :javaparser-clj.malli/statement-base]
  [:map
   [:node/kind {:optional true} [:= :try-stmt]]
   [:resources
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/expression]]]
   [:try-block {:optional nil} [:ref :javaparser-clj.malli/block-stmt]]
   [:catch-clauses
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/catch-clause]]]
   [:finally-block
    {:optional true}
    [:ref :javaparser-clj.malli/block-stmt]]]],
 :javaparser-clj.malli/type
 [:multi
  {:dispatch :node/kind}
  [:intersection-type [:ref :javaparser-clj.malli/intersection-type]]
  [:primitive-type [:ref :javaparser-clj.malli/primitive-type]]
  [:reference-type [:ref :javaparser-clj.malli/reference-type]]
  [:union-type [:ref :javaparser-clj.malli/union-type]]
  [:unknown-type [:ref :javaparser-clj.malli/unknown-type]]
  [:var-type [:ref :javaparser-clj.malli/var-type]]
  [:void-type [:ref :javaparser-clj.malli/void-type]]
  [:wildcard-type [:ref :javaparser-clj.malli/wildcard-type]]],
 :javaparser-clj.malli/type-base
 [:merge
  [:ref :javaparser-clj.malli/node-base]
  [:map
   [:node/kind {:optional true} [:= :type]]
   [:annotations
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/annotation-expr]]]]],
 :javaparser-clj.malli/type-declaration
 [:multi
  {:dispatch :node/kind}
  [:annotation-declaration
   [:ref :javaparser-clj.malli/annotation-declaration]]
  [:class-or-interface-declaration
   [:ref :javaparser-clj.malli/class-or-interface-declaration]]
  [:enum-declaration [:ref :javaparser-clj.malli/enum-declaration]]
  [:record-declaration
   [:ref :javaparser-clj.malli/record-declaration]]],
 :javaparser-clj.malli/type-declaration-base
 [:merge
  [:ref :javaparser-clj.malli/body-declaration-base]
  [:map
   [:node/kind {:optional true} [:= :type-declaration]]
   [:name {:optional nil} [:ref :javaparser-clj.malli/simple-name]]
   [:modifiers
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/modifier]]]
   [:members
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/body-declaration]]]]],
 :javaparser-clj.malli/type-expr
 [:merge
  [:ref :javaparser-clj.malli/expression-base]
  [:map
   [:node/kind {:optional true} [:= :type-expr]]
   [:type {:optional nil} [:ref :javaparser-clj.malli/type]]]],
 :javaparser-clj.malli/type-parameter
 [:merge
  [:ref :javaparser-clj.malli/reference-type-base]
  [:map
   [:node/kind {:optional true} [:= :type-parameter]]
   [:name {:optional nil} [:ref :javaparser-clj.malli/simple-name]]
   [:type-bound
    {:optional nil}
    [:sequential
     [:ref :javaparser-clj.malli/class-or-interface-type]]]]],
 :javaparser-clj.malli/unary-expr
 [:merge
  [:ref :javaparser-clj.malli/expression-base]
  [:map
   [:node/kind {:optional true} [:= :unary-expr]]
   [:expression
    {:optional nil}
    [:ref :javaparser-clj.malli/expression]]
   [:operator {:optional nil} [:ref :javaparser-clj.malli/unary-op]]]],
 :javaparser-clj.malli/unary-op
 [:enum
  :plus
  :minus
  :inc-prefix
  :dec-prefix
  :not
  :bit-not
  :inc-postfix
  :dec-postfix],
 :javaparser-clj.malli/union-type
 [:merge
  [:ref :javaparser-clj.malli/type-base]
  [:map
   [:node/kind {:optional true} [:= :union-type]]
   [:elements
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/reference-type]]]]],
 :javaparser-clj.malli/unknown-type
 [:merge
  [:ref :javaparser-clj.malli/type-base]
  [:map [:node/kind {:optional true} [:= :unknown-type]]]],
 :javaparser-clj.malli/unparsable-stmt
 [:merge
  [:ref :javaparser-clj.malli/statement-base]
  [:map [:node/kind {:optional true} [:= :unparsable-stmt]]]],
 :javaparser-clj.malli/var-type
 [:merge
  [:ref :javaparser-clj.malli/type-base]
  [:map [:node/kind {:optional true} [:= :var-type]]]],
 :javaparser-clj.malli/variable-declaration-expr
 [:merge
  [:ref :javaparser-clj.malli/expression-base]
  [:map
   [:node/kind {:optional true} [:= :variable-declaration-expr]]
   [:modifiers
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/modifier]]]
   [:annotations
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/annotation-expr]]]
   [:variables
    {:optional nil}
    [:sequential [:ref :javaparser-clj.malli/variable-declarator]]]]],
 :javaparser-clj.malli/variable-declarator
 [:merge
  [:ref :javaparser-clj.malli/node-base]
  [:map
   [:node/kind {:optional true} [:= :variable-declarator]]
   [:name {:optional nil} [:ref :javaparser-clj.malli/simple-name]]
   [:initializer
    {:optional true}
    [:ref :javaparser-clj.malli/expression]]
   [:type {:optional nil} [:ref :javaparser-clj.malli/type]]]],
 :javaparser-clj.malli/void-type
 [:merge
  [:ref :javaparser-clj.malli/type-base]
  [:map [:node/kind {:optional true} [:= :void-type]]]],
 :javaparser-clj.malli/while-stmt
 [:merge
  [:ref :javaparser-clj.malli/statement-base]
  [:map
   [:node/kind {:optional true} [:= :while-stmt]]
   [:condition {:optional nil} [:ref :javaparser-clj.malli/expression]]
   [:body {:optional nil} [:ref :javaparser-clj.malli/statement]]]],
 :javaparser-clj.malli/wildcard-type
 [:merge
  [:ref :javaparser-clj.malli/type-base]
  [:map
   [:node/kind {:optional true} [:= :wildcard-type]]
   [:extended-type
    {:optional true}
    [:ref :javaparser-clj.malli/reference-type]]
   [:super-type
    {:optional true}
    [:ref :javaparser-clj.malli/reference-type]]]],
 :javaparser-clj.malli/yield-stmt
 [:merge
  [:ref :javaparser-clj.malli/statement-base]
  [:map
   [:node/kind {:optional true} [:= :yield-stmt]]
   [:expression
    {:optional nil}
    [:ref :javaparser-clj.malli/expression]]]]}
```
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