# A classe Parle\Parser

(PECL parle >= 0.5.1)

## Introdução

Classe analisadora. As regras podem ser definidas dinamicamente. Uma vez finalizadas, uma instância de Parle\Lexer é necessária para entregar o fluxo de tokens.

## Resumo da classe

class Parle\Parser {
/* Constantes */
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;
/* Propriedades */
public int $action = 0;
public int $reduceId = 0;
/* Métodos */
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
}

## Constantes predefinidas

`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`

## Propriedades

action

  Ação do analisador atual que corresponde a uma das constantes da classe de ação, somente leitura.

reduceId

  ID da regra gramatical recém-processada na ação de redução. O valor corresponde a um token ou a um ID de produção. Somente leitura.

## Índice

- Parle\Parser::advance — Processa a próxima regra do analisador
- Parle\Parser::build — Finaliza as regras gramaticais
- Parle\Parser::consume — Consome os dados para processamento
- Parle\Parser::dump — Despeja a gramática
- Parle\Parser::errorInfo — Obtém informação do erro
- Parle\Parser::left — Declara um token com associatividade à esquerda
- Parle\Parser::nonassoc — Declara um token sem associatividade
- Parle\Parser::precedence — Declara uma regra de precedência
- Parle\Parser::push — Adiciona uma regra gramatical
- Parle\Parser::reset — Redefine estado do analisador
- Parle\Parser::right — Declara um token com associatividade à direita
- Parle\Parser::sigil — Recupera uma parte correspondente de uma regra
- Parle\Parser::sigilCount — Número de elementos na regra correspondente
- Parle\Parser::sigilName — Recupera um nome de regra ou de token
- Parle\Parser::token — Declara um token
- Parle\Parser::tokenId — Obtém o ID do token
- Parle\Parser::trace — Rastreia a operação do analisador
- Parle\Parser::validate — Valida entrada

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