# Table of contents - [`edamame.core`](#edamame.core) - [`continue`](#edamame.core/continue) - Singleton value to be used as return value in :read-cond fn to indicate to continue parsing the next form. - [`get-column-number`](#edamame.core/get-column-number) - [`get-line-number`](#edamame.core/get-line-number) - [`iobj?`](#edamame.core/iobj?) - Returns true if obj can carry metadata. - [`normalize-opts`](#edamame.core/normalize-opts) - Expands opts into normalized opts, e.g. - [`parse-next`](#edamame.core/parse-next) - Parses next form from reader. - [`parse-next+string`](#edamame.core/parse-next+string) - Parses next form from reader. - [`parse-ns-form`](#edamame.core/parse-ns-form) - Parses ns-form, an s-expression, into map with: - :name: the name of the namespace - :aliases: a map of aliases to lib names. - [`parse-string`](#edamame.core/parse-string) - Parses first EDN value from string. - [`parse-string-all`](#edamame.core/parse-string-all) - Like parse-string but parses all values from string and returns them in a vector. - [`reader`](#edamame.core/reader) - Coerces x into indexing pushback-reader to be used with parse-next. - [`source-reader`](#edamame.core/source-reader) - Coerces x into source-logging-reader to be used with parse-next. ----- # edamame.core ## `continue` Singleton value to be used as return value in `:read-cond` fn to indicate to continue parsing the next form

Source

## `get-column-number` ``` clojure (get-column-number reader) ``` Function.

Source

## `get-line-number` ``` clojure (get-line-number reader) ``` Function.

Source

## `iobj?` ``` clojure (iobj? obj) ``` Function. Returns true if obj can carry metadata.

Source

## `normalize-opts` ``` clojure (normalize-opts opts) ``` Function. Expands `opts` into normalized opts, e.g. `:all true` is expanded into explicit options.

Source

## `parse-next` ``` clojure (parse-next reader) (parse-next reader normalized-opts) ``` Function. Parses next form from reader. Accepts same opts as [`parse-string`](#edamame.core/parse-string), but must be normalized with [`normalize-opts`](#edamame.core/normalize-opts) first.

Source

## `parse-next+string` ``` clojure (parse-next+string reader) (parse-next+string reader normalized-opts) ``` Function. Parses next form from reader. Accepts same opts as [`parse-string`](#edamame.core/parse-string), but must be normalized with [`normalize-opts`](#edamame.core/normalize-opts) first. Returns read value + string read (whitespace-trimmed).

Source

## `parse-ns-form` ``` clojure (parse-ns-form ns-form) ``` Function. Parses `ns-form`, an s-expression, into map with: - `:name`: the name of the namespace - `:aliases`: a map of aliases to lib names

Source

## `parse-string` ``` clojure (parse-string s) (parse-string s opts) ``` Function. Parses first EDN value from string. Supported parsing options can be `true` for default behavior or a function that is called on the form and returns a form in its place: `: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 %1#))`. `: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`. `:var`: parse var literals (`#'foo`). If `true`, the resulting expression will be parsed as `(var foo)`. `:map`: parse map literal using a custom function, e.g. `flatland.ordered.map/ordered-map` `:set`: parse set literal using a custom function, e.g. `flatland.ordered.set/ordered-set` `:syntax-quote`: parse syntax-quote (`(+ 1 2 3)`). Symbols get qualified using `:resolve-symbol` which defaults to `identity`: ```clojure (parse-string "`x" {:syntax-quote {:resolve-symbol #(symbol "user" (str %))}}) ;;=> (quote user/x) ``` By default, also parses `unquote` and `unquote-splicing` literals, resolving them accordingly. `:unquote`: parse unquote (`~x`). Requires `:syntax-quote` to be set. If `true` and not inside `syntax-quote`, defaults to `clojure.core/unquote`. `:unquote-splicing`: parse unquote-splicing (`~@x`). Requires `:syntax-quote` to be set. If `true` and not inside `syntax-quote`, defaults to `clojure.core/unquote-splicing`. `: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. `:auto-resolve-ns`: when `true`, track `ns` forms while parsing and use their aliases to auto-resolve keywords like `::str/foo`, without providing `:auto-resolve` explicitly. Combines with `:auto-resolve`: tracked `ns` aliases are tried first, falling back to the `:auto-resolve` map. `: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. `:uneval`: a function of a map with `:uneval` and `:next` to preserve `#_` expressions by combining them with next value. `:suppress-read`: counterpart to *suppress-read* in clojure Additional arguments to tools.reader may be passed with `:tools.reader/opts`, like `:readers` for passing reader tag functions.

Source

## `parse-string-all` ``` clojure (parse-string-all s) (parse-string-all s opts) ``` Function. Like [`parse-string`](#edamame.core/parse-string) but parses all values from string and returns them in a vector.

Source

## `reader` ``` clojure (reader x) ``` Function. Coerces x into indexing pushback-reader to be used with parse-next. Accepts string or `java.io.Reader`

Source

## `source-reader` ``` clojure (source-reader x) ``` Function. Coerces x into source-logging-reader to be used with parse-next. Accepts string or `java.io.Reader`

Source