Класс Parle\Lexer

(PECL parle >= 0.5.1)

Введение

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

Обзор класса

class Parle\Lexer {
/* Константы */
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 advance(): void
public build(): void
public callout(int $id, callable $callback): void
public consume(string $data): void
public dump(): void
public insertMacro(string $name, string $regex): void
public push(string $regex, int $id): void
public reset(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

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

Содержание

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top