Parle\RLexer::push

(PECL parle >= 0.5.1)

Parle\RLexer::push - Додає правило лексера

Опис

public Parle\RLexer::push(string $regex, int $id): void
public Parle\RLexer::push(    string $state,    string $regex,    int $id,    string $newState): void
public Parle\RLexer::push(string $state, string $regex, string $newState): void

Додає шаблон для розпізнавання лексеми.

"Початковий стан" та "стан виходу" можна вказати за допомогою відповідної сигнатури.

Список параметрів

regex

Регулярне вираз, використовуване зіставлення токенів.

id

Ідентифікатор токена. Якщо екземпляр лексера призначений для автономного використання, це може бути довільне число. Якщо екземпляр лексера буде переданий синтаксичному аналізатору, це має бути ідентифікатор, який повертається Parle\RParser::tokenid()

state

Назва стану. Якщо як початковий стан використовується '*', то правило застосовується до всіх станів лексера.

newState

Нова назва стану після застосування правила.

Якщо як стан виходу вказано '.', то стан лексера не змінюється, коли правило збігається. Стан виходу з '>' перед іменем означає додавання. Використовуйте сигнатуру без ідентифікатора або для продовження або для початку зіставлення, коли потрібно продовження або рекурсія.

Якщо як стан виходу вказано '<', це означає вилучення. У цьому випадку сигнатура, що містить ідентифікатор, може бути використана для ідентифікації збігу. Зверніть увагу, що навіть якщо зазначений ідентифікатор, правило завершиться першим, коли будуть виконані всі попередні додавання.

Значення, що повертаються

Функція не повертає значення після виконання.