Класс Parle\RLexer

(PECL parle >= 0.5.1)

Введение

Класс лексера с несколькими состояниями. Лексемы можно определять на лету. Если конкретный экземпляр лексера предназначен для работы с классом Parle\RParser, идентификаторы токенов должны быть взяты оттуда. В противном случае могут быть предоставлены произвольные идентификаторы токенов. Обратите внимание, что класс Parle\Parser несовместим с этим лексером.

Обзор класса

class Parle\RLexer {
/* Константы */
const int ICASE = 1;
const int DOT_NOT_LF = 2;
const int DOT_NOT_CRLF = 4;
const int SKIP_WS = 8;
const int MATCH_ZERO_LEN = 16;
/* Свойства */
public bool $bol = false;
public int $flags = 0;
public int $state = 0;
public int $marker = 0;
public int $cursor = 0;
/* Методы */
public function advance(): void
public function build(): void
public function callout(int $id, callable $callback): void
public function consume(string $data): void
public function dump(): void
public function getToken(): Parle\Token
public function insertMacro(string $name, string $regex): void
public function push(string $regex, int $id): void
public function push(
    string $state,
    string $regex,
    int $id,
    string $newState
): void
public function push(string $state, string $regex, string $newState): void
public function pushState(string $state): int
public function reset(int $pos): void
}

Предопределённые константы

Parle\RLexer::ICASE

Parle\RLexer::DOT_NOT_LF

Parle\RLexer::DOT_NOT_CRLF

Parle\RLexer::SKIP_WS

Parle\RLexer::MATCH_ZERO_LEN

Свойства

bol

Флаг начала ввода.

flags

Флаги лексера.

state

Текущее состояние лексера, только для чтения.

marker

Позиция последнего совпадения токена, только для чтения.

cursor

Текущее смещение ввода, только для чтения.

Содержание

Добавить

Примечания пользователей

Пользователи ещё не добавляли примечания для страницы
To Top