Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. ParserAbstract.php

function ParserAbstract::createTokenMap

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 ';'.

Return value

array<int, int> The token map

1 call to ParserAbstract::createTokenMap()
ParserAbstract::__construct in vendor/nikic/php-parser/lib/PhpParser/ParserAbstract.php
Creates a parser instance.

File

vendor/nikic/php-parser/lib/PhpParser/ParserAbstract.php, line 1234

Class

ParserAbstract

Namespace

PhpParser

Code

protected function createTokenMap() : array {
    $tokenMap = [];
    // Single-char tokens use an identity mapping.
    for ($i = 0; $i < 256; ++$i) {
        $tokenMap[$i] = $i;
    }
    foreach ($this->symbolToName as $name) {
        if ($name[0] === 'T') {
            $tokenMap[\constant($name)] = constant(static::class . '::' . $name);
        }
    }
    // T_OPEN_TAG_WITH_ECHO with dropped T_OPEN_TAG results in T_ECHO
    $tokenMap[\T_OPEN_TAG_WITH_ECHO] = static::T_ECHO;
    // T_CLOSE_TAG is equivalent to ';'
    $tokenMap[\T_CLOSE_TAG] = ord(';');
    // We have created a map from PHP token IDs to external symbol IDs.
    // Now map them to the internal symbol ID.
    $fullTokenMap = [];
    foreach ($tokenMap as $phpToken => $extSymbol) {
        $intSymbol = $this->tokenToSymbol[$extSymbol];
        if ($intSymbol === $this->invalidSymbol) {
            continue;
        }
        $fullTokenMap[$phpToken] = $intSymbol;
    }
    return $fullTokenMap;
}

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal