API for clojure.tools.reader - Clojure Reader 0.8.10 (in development)

by Bronsa

Full namespace name: clojure.tools.reader

Overview

A clojure reader in clojure

Types



SyntaxQuotedMap

record

    Fields: [val]
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


SyntaxQuotedSet

record

    Fields: [val]
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map

Public Variables and Functions



*alias-map*

dynamic var

    
Map from ns alias to ns, if non-nil, it will be used to resolve read-time
ns aliases instead of (ns-aliases *ns*).

Defaults to nil
Source


*data-readers*

dynamic var

    
Map from reader tag symbols to data reader Vars.
Reader tags without namespace qualifiers are reserved for Clojure.
Default reader tags are defined in clojure.tools.reader/default-data-readers
and may be overridden by binding this Var.
Source


*default-data-reader-fn*

dynamic var

    
When no data reader is found for a tag and *default-data-reader-fn*
is non-nil, it will be called with two arguments, the tag and the value.
If *default-data-reader-fn* is nil (the default value), an exception
will be thrown for the unknown tag.
Source


*read-eval*

dynamic var

    
Defaults to true.

***WARNING***
This setting implies that the full power of the reader is in play,
including syntax that can cause code to execute. It should never be
used with untrusted sources. See also: clojure.tools.reader.edn/read.

When set to logical false in the thread-local binding,
the eval reader (#=) and *record/type literal syntax* are disabled in read/load.
Example (will fail): (binding [*read-eval* false] (read-string "#=(* 2 21)"))

When set to :unknown all reads will fail in contexts where *read-eval*
has not been explicitly bound to either true or false. This setting
can be a useful diagnostic tool to ensure that all of your reads
occur in considered contexts.
Source


->SyntaxQuotedMap

function
Usage: (->SyntaxQuotedMap val)
Positional factory function for class clojure.tools.reader.SyntaxQuotedMap.
Source


->SyntaxQuotedSet

function
Usage: (->SyntaxQuotedSet val)
Positional factory function for class clojure.tools.reader.SyntaxQuotedSet.
Source


default-data-readers

var

    
Default map of data reader functions provided by Clojure.
May be overridden by binding *data-readers*
Source


map->SyntaxQuotedMap

function
Usage: (map->SyntaxQuotedMap m#)
Factory function for class clojure.tools.reader.SyntaxQuotedMap, taking a map of keywords to field values.
Source


map->SyntaxQuotedSet

function
Usage: (map->SyntaxQuotedSet m#)
Factory function for class clojure.tools.reader.SyntaxQuotedSet, taking a map of keywords to field values.
Source


read

function
Usage: (read)
       (read reader)
       (read reader eof-error? sentinel)
       (read reader eof-error? sentinel recursive?)
Reads the first object from an IPushbackReader or a java.io.PushbackReader.
Returns the object read. If EOF, throws if eof-error? is true.
Otherwise returns sentinel. If no stream is providen, *in* will be used.

***WARNING***
Note that read can execute code (controlled by *read-eval*),
and as such should be used only with trusted sources.

To read data structures only, use clojure.tools.reader.edn/read

Note that the function signature of clojure.tools.reader/read and
clojure.tools.reader.edn/read is not the same for eof-handling
Source


read-string

function
Usage: (read-string s)
Reads one object from the string s.
Returns nil when s is nil or empty.

***WARNING***
Note that read-string can execute code (controlled by *read-eval*),
and as such should be used only with trusted sources.

To read data structures only, use clojure.tools.reader.edn/read-string

Note that the function signature of clojure.tools.reader/read-string and
clojure.tools.reader.edn/read-string is not the same for eof-handling
Source


syntax-quote

macro
Usage: (syntax-quote form)
Macro equivalent to the syntax-quote reader macro (`).
Source

clojure.tools.reader.edn

An EDN reader in clojure

Public Variables and Functions



read

function
Usage: (read)
       (read reader)
       (read {:keys [eof], :as opts} reader)
       (read reader eof-error? eof opts)
Reads the first object from an IPushbackReader or a java.io.PushbackReader.
Returns the object read. If EOF, throws if eof-error? is true otherwise returns eof.
If no reader is provided, *in* will be used.

Reads data in the edn format (subset of Clojure data):
http://edn-format.org

clojure.tools.reader.edn/read doesn't depend on dynamic Vars, all configuration
is done by passing an opt map.

opts is a map that can include the following keys:
:eof - value to return on end-of-file. When not supplied, eof throws an exception.
:readers  - a map of tag symbols to data-reader functions to be considered before default-data-readers.
           When not supplied, only the default-data-readers will be used.
:default - A function of two args, that will, if present and no reader is found for a tag,
           be called with the tag and the value.
Source


read-string

function
Usage: (read-string s)
       (read-string opts s)
Reads one object from the string s.
Returns nil when s is nil or empty.

Reads data in the edn format (subset of Clojure data):
http://edn-format.org

opts is a map as per clojure.tools.reader.edn/read
Source

clojure.tools.reader.reader-types

Protocols and default Reader types implementation

Protocols



IPushbackReader

Protocol

    Known implementations: IndexingPushbackReader, java.io.PushbackReader, PushbackReader, SourceLoggingPushbackReader
    

unread

function
Usage: (unread reader ch)
Pushes back a single character on to the stream
Source


IndexingReader

Protocol

    Known implementations: clojure.lang.LineNumberingPushbackReader, IndexingPushbackReader, SourceLoggingPushbackReader
    

get-column-number

function
Usage: (get-column-number reader)
Returns the line number of the next character to be read from the stream

get-file-name

function
Usage: (get-file-name reader)
Returns the file name the reader is reading from, or nil

get-line-number

function
Usage: (get-line-number reader)
Returns the line number of the next character to be read from the stream
Source


Reader

Protocol

    Known implementations: IndexingPushbackReader, InputStreamReader, java.io.PushbackReader, PushbackReader, SourceLoggingPushbackReader, StringReader
    

peek-char

function
Usage: (peek-char reader)
Returns the next char from the Reader without removing it from the reader stream

read-char

function
Usage: (read-char reader)
Returns the next char from the Reader, nil if the end of stream has been reached
Source

Types



IndexingPushbackReader

type

    Fields: [rdr line column line-start? prev prev-column file-name]
Protocols: IPushbackReader, IndexingReader, Reader
Interfaces:


InputStreamReader

type

    Fields: [is buf]
Protocols: Reader
Interfaces:


PushbackReader

type

    Fields: [rdr buf buf-len buf-pos]
Protocols: IPushbackReader, Reader
Interfaces:


SourceLoggingPushbackReader

type

    Fields: [rdr line column line-start? prev prev-column file-name source-log-frames]
Protocols: IPushbackReader, IndexingReader, Reader
Interfaces:


StringReader

type

    Fields: [s s-len s-pos]
Protocols: Reader
Interfaces:

Public Variables and Functions



->IndexingPushbackReader

function
Usage: (->IndexingPushbackReader rdr line column line-start? prev prev-column file-name)
Positional factory function for class clojure.tools.reader.reader_types.IndexingPushbackReader.
Source


->InputStreamReader

function
Usage: (->InputStreamReader is buf)
Positional factory function for class clojure.tools.reader.reader_types.InputStreamReader.
Source


->PushbackReader

function
Usage: (->PushbackReader rdr buf buf-len buf-pos)
Positional factory function for class clojure.tools.reader.reader_types.PushbackReader.
Source


->SourceLoggingPushbackReader

function
Usage: (->SourceLoggingPushbackReader rdr line column line-start? prev prev-column file-name source-log-frames)
Positional factory function for class clojure.tools.reader.reader_types.SourceLoggingPushbackReader.
Source


->StringReader

function
Usage: (->StringReader s s-len s-pos)
Positional factory function for class clojure.tools.reader.reader_types.StringReader.
Source


indexing-push-back-reader

function
Usage: (indexing-push-back-reader s-or-rdr)
       (indexing-push-back-reader s-or-rdr buf-len)
       (indexing-push-back-reader s-or-rdr buf-len file-name)
Creates an IndexingPushbackReader from a given string or Reader
Source


indexing-reader?

function
Usage: (indexing-reader? rdr)
Returns true if the reader satisfies IndexingReader
Source


input-stream-push-back-reader

function
Usage: (input-stream-push-back-reader is)
       (input-stream-push-back-reader is buf-len)
Creates a PushbackReader from a given InputStream
Source


input-stream-reader

function
Usage: (input-stream-reader is)
Creates an InputStreamReader from an InputStream
Source


log-source

macro
Usage: (log-source reader & body)
If reader implements SourceLoggingReader, execute body in a source
logging context. Otherwise, execute body, returning the result.
Source


log-source-unread

macro
Usage: (log-source-unread reader & body)
If reader implements SourceLoggingReader, execute body in a source
logging context. Otherwise, execute body, returning the result.
Source


merge-meta

function
Usage: (merge-meta obj m)
Returns an object of the same type and value as `obj`, with its
metadata merged over `m`.
Source


read-line

function
Usage: (read-line)
       (read-line rdr)
Reads a line from the reader or from *in* if no reader is specified
Source


reader-error

function
Usage: (reader-error rdr & msg)
Throws an ExceptionInfo with the given message.
If rdr is an IndexingReader, additional information about column and line number is provided
Source


source-logging-push-back-reader

function
Usage: (source-logging-push-back-reader s-or-rdr)
       (source-logging-push-back-reader s-or-rdr buf-len)
       (source-logging-push-back-reader s-or-rdr buf-len file-name)
Creates a SourceLoggingPushbackReader from a given string or Reader
Source


string-push-back-reader

function
Usage: (string-push-back-reader s)
       (string-push-back-reader s buf-len)
Creates a PushbackReader from a given string
Source


string-reader

function
Usage: (string-reader s)
Creates a StringReader from a given string
Source
Logo & site design by Tom Hickey.
Clojure auto-documentation system by Tom Faulhaber.