Клас Parle\RParser
(PECL parle >= 0.7.0)
Вступ
Клас парсеру. Правила можуть бути визначені на льоту. Після завершення необхідно створити екземпляр Parle\RLexerдля доставки потока токенов.
Огляд класів
class Parle\RParser
{
/* Константы */
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 advance(): void
public build(): void
public consume(string $data, Parle\RLexer $rlexer): void
public dump(): void
public errorInfo(): Parle\ErrorInfo
public left(string $tok): void
public nonassoc(string $tok): void
public precedence(string $tok): void
public push(string $name, string $rule): int
public reset(int $tokenId = ?): void
public right(string $tok): void
public sigil(int $idx = ?): string
public sigilCount(): int
public sigilName(int $idx): string
public token(string $tok): void
public tokenId(string $tok): int
public trace(): string
public validate(string $data, Parle\RLexer $lexer): bool
}
Обумовлені константи
Parle\RParser::ACTION_ERROR
Parle\RParser::ACTION_SHIFT
Parle\RParser::ACTION_REDUCE
Parle\RParser::ACTION_GOTO
Parle\RParser::ACTION_ACCEPT
Parle\RParser::ERROR_SYNTAX
Parle\RParser::ERROR_NON_ASSOCIATIVE
Parle\RParser::ERROR_UNKNOWN_TOKEN
Властивості
action
Поточна дія парсера, яка відповідає одній із констант класу дії, лише для читання.
reduceId
Ідентифікатор правила граматики, щойно оброблений у дії скорочення. Значення відповідає токену чи виробничому ідентифікатору. Лише для читання.
Зміст
- Parle\RParser::advance - Обробка наступного правила парсера
- Parle\RParser::build - Завершує граматичні правила
- Parle\RParser::consume— Використовувати дані для обробки
- Parle\RParser::dump - Виводить граматику
- Parle\RParser::errorInfo— Отримує інформацію про помилку
- Parle\RParser::left - Оголошує токен з лівою асоціативністю
- Parle\RParser::nonassoc - Оголошує токен без асоціативності
- Parle\RParser::precedence— Оголошує правило пріоритету
- Parle\RParser::push— Додає граматичне правило
- Parle\RParser::reset— скидає стан парсера
- Parle\RParser::right— Оголошує токен із правою асоціативністю
- Parle\RParser::sigil— Витягує збігаючу частину за правилом
- Parle\RParser::sigilCount— Отримує кількість елементів у відповідному правилі
- Parle\RParser::sigilName— Отримує ім'я правила чи токена
- Parle\RParser::token - Оголошує токен
- Parle\RParser::tokenId— Отримує ідентифікатор токена
- Parle\RParser::trace— Слідкує за роботою парсера
- Parle\RParser::validate - Перевіряє вхідні дані