# Класс 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 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 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

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

## Содержание

- Parle\Lexer::advance — Обрабатывает следующее правило лексера
- Parle\Lexer::build — Завершает набор правил лексера
- Parle\Lexer::callout — Определяет callback-функцию токена
- Parle\Lexer::consume — Передаёт данные на обработку
- Parle\Lexer::dump — Выводит состояние устройства
- Parle\Lexer::getToken — Получает текущий токен
- Parle\Lexer::insertMacro — Вставляет макрос регулярного выражения
- Parle\Lexer::push — Добавляет правило лексера
- Parle\Lexer::reset — Сбрасывает лексер

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open