package us.bpsm.edn.parser;

import java.io.IOException;

interface Scanner {

    Object nextToken(Parseable pbr);

}
@@ -38,49 +38,2110 @@
 ava.
-io.IOException;%0A%0Ainterface Scanner %7B%0A%0A   
+math.BigDecimal;%0Aimport java.math.BigInteger;%0A%0Aimport us.bpsm.edn.EdnIOException;%0Aimport us.bpsm.edn.Keyword;%0Aimport us.bpsm.edn.Symbol;%0Aimport us.bpsm.edn.Tag;%0A%0Apublic interface Scanner %7B%0A%0A    /**%0A     * The next token read from the given %7B@link Parseable%7D may be any of the%0A     * members of %7B@link Token%7D or instances of the Java classes used to%0A     * represent atomic values recognized by Scanner.%0A     * %0A     * %3Cp%3E%0A     * The value %7B@link Token#END_OF_INPUT%7D marks the end of input, indicating%0A     * that the underlying %7B@link Parseable%7D has been fully consumed.%0A     * %0A     * %3Cp%3E%0A     * In addition to the members of %7B@link Token%7D, %7B@code nextToken(%E2%80%A6)%7D may%0A     * return any of the following:%0A     * %0A     * %3Cul%3E%0A     * %3Cli%3EA %7B@link String%7D with the contents of a string literal.%3C/li%3E%0A     * %3Cli%3EA %7B@link Character%7D for a character literal.%3C/li%3E%0A     * %3Cli%3EA %7B@link Boolean%7D for a 'true' or 'false'.%0A     * %3Cli%3EA %7B@link Long%7D for an integer small enough to fit in its range and%0A     * not marked by a trailing 'N'.%3C/li%3E%0A     * %3Cli%3EA %7B@link BigInteger%7D for an integer too large to fit in a Long or%0A     * marked by a trailing 'N'.%3C/li%3E%0A     * %3Cli%3EA %7B@link Double%7D for a binary floating point literal%3C/li%3E%0A     * %3Cli%3EA %7B@link BigDecimal%7D for an arbitrary precision decimal floating%0A     * point literal, which is indicated by a trailing 'M' in edn.%3C/li%3E%0A     * %3Cli%3EA %7B@link Symbol%7D for an edn symbol. ('nil', 'true' and 'false' are%0A     * not symbols.)%3C/li%3E%0A     * %3Cli%3EA %7B@link Keyword%7D for an edn keyword, which looks like%0A     * %7B@code :somename%7D.%3C/li%3E%0A     * %3Cli%3EA %7B@link Tag%7D indicating that the next value parsed from the TokenSeq%0A     * should be transformed by a function associated with this Tag.%3C/li%3E%0A     * %3C/ul%3E%0A     * %0A     * @throws EdnIOException%0A     *             if the underlying Parseable throws an IOException.%0A     * @throws EdnException%0A     *             if the contents of the underlying Parseable violates the%0A     *             syntax of edn.%0A     * %0A     * @return the next token read from the %7B@link Parseable%7D (never%0A     *         %7B@code null%7D).%0A     */%0A    public
  Obj

make Scanner interface public; document nextToken(Parseable)