final class TokenStream

TokenStream loads tokens from $source iterator on-demand, and places them in a buffer to provide access to any previous token by index.

Methods

__construct(Iterator $source)

No description

bool
is(int|string ...$kind)

Tells whether the token at current position is of given kind.

Token|null
peek(int $offset = 0)

Gets the token at $offset from the current position.

consume(int|string ...$kind)

Consumes the current token (if is of given kind) or throws exception on end.

Token|null
tryConsume(int|string ...$kind)

Consumes the current token of given kind or returns null.

void
seek(int $index)

Sets the input cursor to the position.

int
getIndex()

Returns the cursor position.

void
throwUnexpectedException(array $expected = [], string $addendum = '', string $excerpt = '')

No description

Details

at line 27
__construct(Iterator $source)

No description

Parameters

Iterator $source

at line 36
bool is(int|string ...$kind)

Tells whether the token at current position is of given kind.

Parameters

int|string ...$kind

Return Value

bool

at line 45
Token|null peek(int $offset = 0)

Gets the token at $offset from the current position.

Parameters

int $offset

Return Value

Token|null

at line 66
Token consume(int|string ...$kind)

Consumes the current token (if is of given kind) or throws exception on end.

Parameters

int|string ...$kind

Return Value

Token

Exceptions

CompileException

at line 82
Token|null tryConsume(int|string ...$kind)

Consumes the current token of given kind or returns null.

Parameters

int|string ...$kind

Return Value

Token|null

at line 97
void seek(int $index)

Sets the input cursor to the position.

Parameters

int $index

Return Value

void

at line 109
int getIndex()

Returns the cursor position.

Return Value

int

at line 119
void throwUnexpectedException(array $expected = [], string $addendum = '', string $excerpt = '')

No description

Parameters

array $expected
string $addendum
string $excerpt

Return Value

void

Exceptions

CompileException