package us.bpsm.edn.parser;

import java.math.BigDecimal;
import java.math.BigInteger;

import us.bpsm.edn.EdnIOException;
import us.bpsm.edn.EdnSyntaxException;
import us.bpsm.edn.Keyword;
import us.bpsm.edn.Symbol;
import us.bpsm.edn.Tag;

/**
 * A Scanner knows how to read syntactically correct edn tokens from any
 * Parseable. Use {@link Scanners#newScanner()} to get an instance.
 */
public interface Scanner {

    /**
     * The next token read from the given {@link Parseable} may be any of the
     * members of {@link Token} or instances of the Java classes used to
     * represent atomic values recognized by Scanner.
     * 
     * 

* The value {@link Token#END_OF_INPUT} marks the end of input, indicating * that the underlying {@link Parseable} has been fully consumed. * *

* In addition to the members of {@link Token}, {@code nextToken(…)} may * return any of the following: * *

* * @throws EdnIOException * if the underlying Parseable throws an IOException. * @throws EdnSyntaxException * if the contents of the underlying Parseable violates the * syntax of edn. * * @return the next token read from the {@link Parseable} (never * {@code null}). */ public Object nextToken(Parseable pbr); }

Ads help maintain this website.