Properties

$code

$code : 

Type

$tokens

$tokens : 

Type

$pos

$pos : 

Type

$line

$line : 

Type

$filePos

$filePos : 

Type

$prevCloseTagHasNewline

$prevCloseTagHasNewline : 

Type

$tokenMap

$tokenMap : 

Type

$dropTokens

$dropTokens : 

Type

$usedAttributes

$usedAttributes : 

Type

Methods

__construct()

__construct(array  $options = array()) 

Creates a Lexer.

Parameters

array $options

Options array. Currently only the 'usedAttributes' option is supported, which is an array of attributes to add to the AST nodes. Possible attributes are: 'comments', 'startLine', 'endLine', 'startTokenPos', 'endTokenPos', 'startFilePos', 'endFilePos'. The option defaults to the first three. For more info see getNextToken() docs.

startLexing()

startLexing(string  $code, \PhpParser\ErrorHandler|null  $errorHandler = null) 

Initializes the lexer for lexing the provided source code.

This function does not throw if lexing errors occur. Instead, errors may be retrieved using the getErrors() method.

Parameters

string $code

The source code to lex

\PhpParser\ErrorHandler|null $errorHandler

Error handler to use for lexing errors. Defaults to ErrorHandler\Throwing

getNextToken()

getNextToken(mixed  $value = null, mixed  $startAttributes = null, mixed  $endAttributes = null) : integer

Fetches the next token.

The available attributes are determined by the 'usedAttributes' option, which can be specified in the constructor. The following attributes are supported:

  • 'comments' => Array of PhpParser\Comment or PhpParser\Comment\Doc instances, representing all comments that occurred between the previous non-discarded token and the current one.
  • 'startLine' => Line in which the node starts.
  • 'endLine' => Line in which the node ends.
  • 'startTokenPos' => Offset into the token array of the first token in the node.
  • 'endTokenPos' => Offset into the token array of the last token in the node.
  • 'startFilePos' => Offset into the code string of the first character that is part of the node.
  • 'endFilePos' => Offset into the code string of the last character that is part of the node.

Parameters

mixed $value

Variable to store token content in

mixed $startAttributes

Variable to store start attributes in

mixed $endAttributes

Variable to store end attributes in

Returns

integer —

Token id

getTokens()

getTokens() : array

Returns the token array for current code.

The token array is in the same format as provided by the token_get_all() function and does not discard tokens (i.e. whitespace and comments are included). The token position attributes are against this token array.

Returns

array —

Array of tokens in token_get_all() format

handleHaltCompiler()

handleHaltCompiler() : string

Handles __halt_compiler() by returning the text after it.

Returns

string —

Remaining text

resetErrors()

resetErrors() 

handleErrors()

handleErrors(\PhpParser\ErrorHandler  $errorHandler) 

Parameters

\PhpParser\ErrorHandler $errorHandler

createTokenMap()

createTokenMap() : array

Creates the token map.

The token map maps the PHP internal token identifiers to the identifiers used by the Parser. Additionally it maps T_OPEN_TAG_WITH_ECHO to T_ECHO and T_CLOSE_TAG to ';'.

Returns

array —

The token map

handleInvalidCharacterRange()

handleInvalidCharacterRange(  $start,   $end,   $line, \PhpParser\ErrorHandler  $errorHandler) 

Parameters

$start
$end
$line
\PhpParser\ErrorHandler $errorHandler

isUnterminatedComment()

isUnterminatedComment(  $token) 

Parameters

$token

errorMayHaveOccurred()

errorMayHaveOccurred()