Класс Parle\Lexer

(PECL parle >= 0.5.1)

Введение

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

Обзор классов

classParle\Lexer {
constintICASE = 1;
constintDOT_NOT_LF = 2;
constintDOT_NOT_CRLF = 4;
constintSKIP_WS = 8;
publicbool$bol = false;
publicint$flags = 0;
publicint$state = 0;
publicint$marker = 0;
publicint$cursor = 0;
publicadvance(): void
publicbuild(): void
publiccallout(int$id, callable$callback): void
publicconsume(string$data): void
publicdump(): void
publicinsertMacro(string$name, string$regex): void
publicpush(string$regex, int$id): void
publicreset(int$pos): void
}

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

Parle\Lexer::ICASE

Parle\Lexer::DOT_NOT_LF

Parle\Lexer::DOT_NOT_CRLF

Parle\Lexer::SKIP_WS

Parle\Lexer::MATCH_ZERO_LEN

Свойства

bol

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

flags

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

state

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

marker

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

cursor

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

Содержание

To Top