(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 will be 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.
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 will be 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. 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 is a website building & hosting documentation for Clojure/Script libraries
× close