Documentation

DocLexer extends AbstractLexer
in package

Simple lexer for docblock annotations.

Table of Contents

T_AT  = 101
T_CLOSE_CURLY_BRACES  = 102
T_CLOSE_PARENTHESIS  = 103
T_COLON  = 112
T_COMMA  = 104
T_EQUALS  = 105
T_FALSE  = 106
T_FLOAT  = 4
T_IDENTIFIER  = 100
T_INTEGER  = 2
T_MINUS  = 113
T_NAMESPACE_SEPARATOR  = 107
T_NONE  = 1
T_NULL  = 111
T_OPEN_CURLY_BRACES  = 108
T_OPEN_PARENTHESIS  = 109
T_STRING  = 3
T_TRUE  = 110
$lookahead  : array<string|int, mixed>|null
The next token in the input.
$token  : array<string|int, mixed>|null
The last matched/seen token.
$noCase  : array<string, int>
$withCase  : array<string, int>
$input  : string
Lexer original input string.
$peek  : int
Current peek of current lexer position.
$position  : int
Current lexer position in input string.
$regex  : string|null
Composed regex for input parsing.
$tokens  : array<string|int, array<string|int, mixed>>
Array of scanned tokens.
getInputUntilPosition()  : string
Retrieve the original lexer's input until a given position.
getLiteral()  : int|string
Gets the literal for a given token.
glimpse()  : array<string|int, mixed>|null
Peeks at the next token, returns it and immediately resets the peek.
isA()  : bool
Checks if given value is identical to the given token.
isNextToken()  : bool
Checks whether a given token matches the current lookahead.
isNextTokenAny()  : bool
Checks whether any of the given tokens matches the current lookahead.
moveNext()  : bool
Moves to the next token in the input string.
nextTokenIsAdjacent()  : bool
Whether the next token starts immediately, or if there were non-captured symbols before that
peek()  : array<string|int, mixed>|null
Moves the lookahead token forward.
reset()  : void
Resets the lexer.
resetPeek()  : void
Resets the peek pointer to 0.
resetPosition()  : void
Resets the lexer position on the input to the given position.
setInput()  : void
Sets the input data to be tokenized.
skipUntil()  : void
Tells the lexer to skip input tokens until it sees a token with the given value.
getCatchablePatterns()  : array<string|int, string>
Lexical catchable patterns.
getModifiers()  : string
Regex modifiers
getNonCatchablePatterns()  : array<string|int, string>
Lexical non-catchable patterns.
getType()  : int|string|null
Retrieve token type. Also processes the token value if necessary.
scan()  : void
Scans the input string for tokens.

Constants

T_CLOSE_CURLY_BRACES

public mixed T_CLOSE_CURLY_BRACES = 102

T_CLOSE_PARENTHESIS

public mixed T_CLOSE_PARENTHESIS = 103

T_IDENTIFIER

public mixed T_IDENTIFIER = 100

T_NAMESPACE_SEPARATOR

public mixed T_NAMESPACE_SEPARATOR = 107

T_OPEN_CURLY_BRACES

public mixed T_OPEN_CURLY_BRACES = 108

T_OPEN_PARENTHESIS

public mixed T_OPEN_PARENTHESIS = 109

Properties

$lookahead

The next token in the input.

public array<string|int, mixed>|null $lookahead
Tags
psalm-var

Token|null

$token

The last matched/seen token.

public array<string|int, mixed>|null $token
Tags
psalm-var

Token|null

$noCase

protected array<string, int> $noCase = ['@' => self::T_AT, ',' => self::T_COMMA, '(' => self::T_OPEN_PARENTHESIS, ')' => self::T_CLOSE_PARENTHESIS, '{' => self::T_OPEN_CURLY_BRACES, '}' => self::T_CLOSE_CURLY_BRACES, '=' => self::T_EQUALS, ':' => self::T_COLON, '-' => self::T_MINUS, '\\' => self::T_NAMESPACE_SEPARATOR]

$withCase

protected array<string, int> $withCase = ['true' => self::T_TRUE, 'false' => self::T_FALSE, 'null' => self::T_NULL]

$peek

Current peek of current lexer position.

private int $peek = 0

$position

Current lexer position in input string.

private int $position = 0

$regex

Composed regex for input parsing.

private string|null $regex

$tokens

Array of scanned tokens.

private array<string|int, array<string|int, mixed>> $tokens = []

Each token is an associative array containing three items:

  • 'value' : the string value of the token in the input string
  • 'type' : the type of the token (identifier, numeric, string, input parameter, none)
  • 'position' : the position of the token in the input string
Tags
psalm-var

list<Token>

Methods

getInputUntilPosition()

Retrieve the original lexer's input until a given position.

public getInputUntilPosition(int $position) : string
Parameters
$position : int
Return values
string

getLiteral()

Gets the literal for a given token.

public getLiteral(int|string $token) : int|string
Parameters
$token : int|string
Return values
int|string

glimpse()

Peeks at the next token, returns it and immediately resets the peek.

public glimpse() : array<string|int, mixed>|null
Tags
psalm-return

Token|null

Return values
array<string|int, mixed>|null

The next token or NULL if there are no more tokens ahead.

isA()

Checks if given value is identical to the given token.

public isA(mixed $value, int|string $token) : bool
Parameters
$value : mixed
$token : int|string
Return values
bool

isNextToken()

Checks whether a given token matches the current lookahead.

public isNextToken(int|string $type) : bool
Parameters
$type : int|string
Return values
bool

isNextTokenAny()

Checks whether any of the given tokens matches the current lookahead.

public isNextTokenAny(array<int, int|string> $types) : bool
Parameters
$types : array<int, int|string>
Return values
bool

moveNext()

Moves to the next token in the input string.

public moveNext() : bool
Return values
bool

nextTokenIsAdjacent()

Whether the next token starts immediately, or if there were non-captured symbols before that

public nextTokenIsAdjacent() : bool
Return values
bool

peek()

Moves the lookahead token forward.

public peek() : array<string|int, mixed>|null
Tags
psalm-return

Token|null

Return values
array<string|int, mixed>|null

The next token or NULL if there are no more tokens ahead.

reset()

Resets the lexer.

public reset() : void
Return values
void

resetPeek()

Resets the peek pointer to 0.

public resetPeek() : void
Return values
void

resetPosition()

Resets the lexer position on the input to the given position.

public resetPosition(int $position) : void
Parameters
$position : int

Position to place the lexical scanner.

Return values
void

setInput()

Sets the input data to be tokenized.

public setInput(string $input) : void

The Lexer is immediately reset and the new input tokenized. Any unprocessed tokens from any previous input are lost.

Parameters
$input : string

The input to be tokenized.

Return values
void

skipUntil()

Tells the lexer to skip input tokens until it sees a token with the given value.

public skipUntil(string $type) : void
Parameters
$type : string

The token type to skip until.

Return values
void

getCatchablePatterns()

Lexical catchable patterns.

protected getCatchablePatterns() : array<string|int, string>
Return values
array<string|int, string>

getModifiers()

Regex modifiers

protected getModifiers() : string
Return values
string

getNonCatchablePatterns()

Lexical non-catchable patterns.

protected getNonCatchablePatterns() : array<string|int, string>
Return values
array<string|int, string>

getType()

Retrieve token type. Also processes the token value if necessary.

protected getType(mixed &$value) : int|string|null
Parameters
$value : mixed
Return values
int|string|null

scan()

Scans the input string for tokens.

protected scan(string $input) : void
Parameters
$input : string

A query string.

Return values
void

Search results