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 = [], $addendum = '')

No description

Details

at line 30
__construct(Iterator $source)

No description

Parameters

Iterator $source

at line 39
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 48
Token|null peek(int $offset = 0)

Gets the token at $offset from the current position.

Parameters

int $offset

Return Value

Token|null

at line 69
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 85
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 100
void seek(int $index)

Sets the input cursor to the position.

Parameters

int $index

Return Value

void

at line 112
int getIndex()

Returns the cursor position.

Return Value

int

at line 122
void throwUnexpectedException(array $expected = [], $addendum = '')

No description

Parameters

array $expected
$addendum

Return Value

void

Exceptions

CompileException

Traits

Better OOP experience.