Класс 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 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 push(
    string $state,
    string $regex,
    int $id,
    string $newState
): void
public push(string $state, string $regex, string $newState): void
public pushState(string $state): int
public 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

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

Содержание

add a note add a note

User Contributed Notes

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