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

Новое название состояния после применения правила.

Если в качестве состояния выхода указано '.', то состояние лексера не изменяется, когда правило совпадает. Состояние выхода с '>' перед именем означает добавление. Используйте сигнатуру без идентификатора либо для продолжения, либо для начала сопоставления, когда требуется продолжение или рекурсия.

Если в качестве состояния выхода указано '<', это означает извлечение. В этом случае сигнатура, содержащая идентификатор, может использоваться для идентификации совпадения. Обратите внимание, что даже в том случае, если указан идентификатор, правило завершится первым, когда будут выполнены все предыдущие добавления.

Возвращаемые значения

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

add a note add a note

User Contributed Notes

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