Package org.codehaus.janino.util.charstream

# Interface CharStream

All Known Implementing Classes:
  `StringCharStream`

public interface CharStream
This interface produces a sequence of `char`s. These can either be "read", which means basically the same as `Reader.read()`; or they can be "peeked", which means that the next character is returned, but not consumed, i.e. the next call to `read()` or `peek()` will return that character again.

## Field Summary

Fields
Modifier and Type
Field
Description
`static final int`
`EOI`
A special value for the values returned by `peek()` and `peekRead(char)` indicating end-of-input.

## Method Summary

Modifier and Type
Method
Description
`boolean`
`atEoi()`
`void`
`eoi()`
`int`
`peek()`
Returns the next character on this stream but does not consume it.
`boolean`
`peek(char c)`
Returns whether the character stream is not at end-of-input and the next character on this stream equals the given character.
`int`
`peek(String chars)`
Checks whether the next character on this stream equals any of the characters of the given `String`.
`boolean`
`peekRead(char c)`
If the next character on this stream equals the given character, it is consumed.
`int`
`peekRead(String chars)`
If the next character on this stream is in the given `String`, it is consumed.
`char`
`read()`
Consumes and returns the next character on this stream.
`void`
`read(char c)`
Consumes the next character on this stream and verifies that it equals the given character.
`int`
`read(String chars)`
Consumes the nect character and verifies that it matches one of the characters of the given `String`.

## Field Details

### EOI

static final int EOI
A special value for the values returned by `peek()` and `peekRead(char)` indicating end-of-input.

See Also:
  - Constant Field Values

## Method Details

### peek

int peek() throws IOException
Returns the next character on this stream but does not consume it.

Returns:
  `EOI` This stream is at end-of-input
Throws:
  `IOException`

### peek

boolean peek(char c) throws IOException
Returns whether the character stream is not at end-of-input and the next character on this stream equals the given character. Does not consume any characters.

Throws:
  `IOException`

### peek

int peek(String chars) throws IOException
Checks whether the next character on this stream equals any of the characters of the given `String`. Does not consume any characters.

Returns:
  The position of the next character in the given `String`, or -1
Throws:
  `IOException`

### read

char read() throws EOFException, IOException
Consumes and returns the next character on this stream.

Throws:
  `EOFException` - This stream is at end-of-input
  `IOException`

### read

void read(char c) throws EOFException, UnexpectedCharacterException
Consumes the next character on this stream and verifies that it equals the given character.

Throws:
  `EOFException` - This stream is at end-of-input
  `UnexpectedCharacterException` - The next character does not equal the given character

### read

int read(String chars) throws EOFException, IOException, UnexpectedCharacterException
Consumes the nect character and verifies that it matches one of the characters of the given `String`.

Returns:
  The position of the next character in the given `String`
Throws:
  `EOFException` - This stream is at end-of-input
  `UnexpectedCharacterException` - The next character on this stream is not in the given `String`
  `IOException`

### peekRead

boolean peekRead(char c) throws IOException
If the next character on this stream equals the given character, it is consumed.

Returns:
  `true` iff the next character on this stream equals the given character
Throws:
  `IOException`

### peekRead

int peekRead(String chars) throws IOException
If the next character on this stream is in the given `String`, it is consumed.

Returns:
  The position of the next character in the given `String`, or -1
Throws:
  `IOException`

### atEoi

boolean atEoi() throws IOException

Returns:
  Whether this stream is at end-of-input
Throws:
  `IOException`

### eoi

void eoi() throws UnexpectedCharacterException

Throws:
  `UnexpectedCharacterException` - This stream is not at end-of-input