# Класс Parle\Parser

(PECL parle >= 0.5.1)

## Введение

Класс парсера. Правила можно определять на лету. После завершения требуется экземпляр Parle\Lexer для доставки потока токенов.

## Обзор класса

class Parle\Parser {
/* Константы */
const int ACTION_ERROR = 0;
const int ACTION_SHIFT = 1;
const int ACTION_REDUCE = 2;
const int ACTION_GOTO = 3;
const int ACTION_ACCEPT = 4;
const int ERROR_SYNTAX = 0;
const int ERROR_NON_ASSOCIATIVE = 1;
const int ERROR_UNKNOWN_TOKEN = 2;
/* Свойства */
public int $action = 0;
public int $reduceId = 0;
/* Методы */
public function advance(): void
public function build(): void
public function consume(string `$data`, Parle\Lexer `$lexer`): void
public function dump(): void
public function errorInfo(): Parle\ErrorInfo
public function left(string `$tok`): void
public function nonassoc(string `$tok`): void
public function precedence(string `$tok`): void
public function push(string `$name`, string `$rule`): int
public function reset(int `$tokenId` = ?): void
public function right(string `$tok`): void
public function sigil(int `$idx`): string
public function sigilCount(): int
public function sigilName(int `$idx`): string
public function token(string `$tok`): void
public function tokenId(string `$tok`): int
public function trace(): string
public function validate(string `$data`, Parle\Lexer `$lexer`): bool
}

## Предопределённые константы

`Parle\Parser::ACTION_ERROR`

`Parle\Parser::ACTION_SHIFT`

`Parle\Parser::ACTION_REDUCE`

`Parle\Parser::ACTION_GOTO`

`Parle\Parser::ACTION_ACCEPT`

`Parle\Parser::ERROR_SYNTAX`

`Parle\Parser::ERROR_NON_ASSOCIATIVE`

`Parle\Parser::ERROR_UNKNOWN_TOKEN`

## Свойства

action

  Текущее действие синтаксического анализатора, которое соответствует одной из констант класса действия, только для чтения.

reduceId

  Идентификатор правила грамматики, только что обработанный в действии сокращения. Значение соответствует токену или производственному идентификатору. Идентификатор доступен только для чтения.

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

- Parle\Parser::advance — Обрабатывает следующее правило парсера
- Parle\Parser::build — Завершает грамматические правила
- Parle\Parser::consume — Потребляет данные для обработки
- Parle\Parser::dump — Выводит грамматику
- Parle\Parser::errorInfo — Получает информацию об ошибке
- Parle\Parser::left — Объявляет токен с левой ассоциативностью
- Parle\Parser::nonassoc — Объявляет токен без ассоциативности
- Parle\Parser::precedence — Объявляет правило приоритета
- Parle\Parser::push — Добавляет грамматическое правило
- Parle\Parser::reset — Сбрасывает состояние парсера
- Parle\Parser::right — Объявляет токен с правой ассоциативностью
- Parle\Parser::sigil — Извлекает часть совпадения по правилу
- Parle\Parser::sigilCount — Получает количество элементов в совпадающем правиле
- Parle\Parser::sigilName — Получает имя правила или токена
- Parle\Parser::token — Объявляет токен
- Parle\Parser::tokenId — Получает идентификатор токена
- Parle\Parser::trace — Следит за работой парсера
- Parle\Parser::validate — Проверяет входные данные

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