(iobj? obj)Returns true if obj can carry metadata.
Returns true if obj can carry metadata.
(parse-next reader)(parse-next reader opts)Parses next form from reader. Accepts same opts as parse-string, must be normalized with normalize-opts first.
Parses next form from reader. Accepts same opts as parse-string, must be normalized with normalize-opts first.
(parse-string s)(parse-string s opts)Parses first EDN value from string.
Supported parsing options:
:deref: parse forms starting with @. If true, the resulting
expression will be parsed as (deref expr).
:fn: parse function literals (#(inc %)). If true, will be parsed as (fn [%1] (inc %)).
:quote: parse quoted expression 'foo. If true, will be parsed as (quote foo).
:read-eval: parse read-eval (=(+ 1 2 3)). If true, the
resulting expression will be parsed as (read-eval (+ 1 2 3)).
:regex: parse regex literals (#"foo"). If true, defaults to
re-pattern.
:syntax-quote: parse syntax-quote ((+ 1 2 3)). Symbols get
qualified using :resolve-symbol which defaults to identity:
(parse-string "x" {:syntax-quote {:resolve-symbol #(symbol "user" (str %))}})
;;=> (quote user/x)`.
:var: parse var literals (#'foo). If true, the resulting
expression will be parsed as (var foo).
:all: when true, the above options will be set to true unless
explicitly provided.
Supported options for processing reader conditionals:
:read-cond: - :allow to process reader conditionals, or
:preserve to keep all branches
:features: - persistent set of feature keywords for reader conditionals (e.g. #{:clj}).
:auto-resolve: map of alias to namespace symbols for
auto-resolving keywords. Use :current as the alias for the current
namespace.
:readers: data readers.
:postprocess: a function that is called with a map containing
:obj, the read value, and :loc, the location metadata. This can
be used to handle objects that cannot carry metadata differently. If
this option is provided, attaching location metadata is not
automatically added to the object.
:location?: a predicate that is called with the parsed
object. Should return a truthy value to determine if location
information will be added.
Additional arguments to tools.reader may be passed with
:tools.reader/opts, like :readers for passing reader tag functions.
Parses first EDN value from string.
Supported parsing options:
`:deref`: parse forms starting with `@`. If `true`, the resulting
expression will be parsed as `(deref expr)`.
`:fn`: parse function literals (`#(inc %)`). If `true`, will be parsed as `(fn [%1] (inc %))`.
`:quote`: parse quoted expression `'foo`. If `true`, will be parsed as `(quote foo)`.
`:read-eval`: parse read-eval (`=(+ 1 2 3)`). If `true`, the
resulting expression will be parsed as `(read-eval (+ 1 2 3))`.
`:regex`: parse regex literals (`#"foo"`). If `true`, defaults to
`re-pattern`.
`:syntax-quote`: parse syntax-quote (`(+ 1 2 3)`). Symbols get
qualified using `:resolve-symbol` which defaults to `identity`:
`(parse-string "`x" {:syntax-quote {:resolve-symbol #(symbol "user" (str %))}})
;;=> (quote user/x)`.
`:var`: parse var literals (`#'foo`). If `true`, the resulting
expression will be parsed as `(var foo)`.
`:all`: when `true`, the above options will be set to `true` unless
explicitly provided.
Supported options for processing reader conditionals:
`:read-cond`: - `:allow` to process reader conditionals, or
`:preserve` to keep all branches
`:features`: - persistent set of feature keywords for reader conditionals (e.g. `#{:clj}`).
`:auto-resolve`: map of alias to namespace symbols for
auto-resolving keywords. Use `:current` as the alias for the current
namespace.
`:readers`: data readers.
`:postprocess`: a function that is called with a map containing
`:obj`, the read value, and `:loc`, the location metadata. This can
be used to handle objects that cannot carry metadata differently. If
this option is provided, attaching location metadata is not
automatically added to the object.
`:location?`: a predicate that is called with the parsed
object. Should return a truthy value to determine if location
information will be added.
Additional arguments to tools.reader may be passed with
`:tools.reader/opts`, like `:readers` for passing reader tag functions.
(parse-string-all s)(parse-string-all s opts)Like parse-string but parses all values from string and returns them in a vector.
Like parse-string but parses all values from string and returns them in a vector.
(reader x)Coerces x into indexing pushback-reader to be used with parse-next. Accepts: string or java.io.Reader.
Coerces x into indexing pushback-reader to be used with parse-next. Accepts: string or java.io.Reader.
(source-reader x)Coerces x into source-logging-reader to be used with parse-next. Accepts: string or java.io.Reader.
Coerces x into source-logging-reader to be used with parse-next. Accepts: string or java.io.Reader.
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |