Клас 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 getToken(): Parle\Token
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
Поточне зміщення введення доступне тільки для читання.
Зміст
- 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 - скидає лексер