# La clase Parle\Parser

(PECL parle >= 0.5.1)

## Introducción

Clase de análisis sintáctico. Las reglas pueden ser definidas sobre la marcha. Una vez finalizada, se requiere una instancia de Parle\Lexer para proporcionar el flujo de tokens.

## Sinopsis de la Clase

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;
/* Propiedades */
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`

## Propiedades

action

  Las acciones del analizador actual que corresponden a una de las constantes de clase de acción, en modo de solo lectura.

reduceId

  Las reglas de gramática id justo tratadas en la acción de reducción. El valor corresponde a un token o a un identificador de producción. En modo de solo lectura.

## Tabla de contenidos

- Parle\Parser::advance — Procesa la regla siguiente del analizador
- Parle\Parser::build — Finaliza las reglas de gramática
- Parle\Parser::consume — Consume los datos para el procesamiento
- Parle\Parser::dump — Muestra la gramática
- Parle\Parser::errorInfo — Recupera las informaciones de error
- Parle\Parser::left — Declara un token con asociatividad a la izquierda
- Parle\Parser::nonassoc — Declara un token sin asociatividad
- Parle\Parser::precedence — Declara una regla de precedencia
- Parle\Parser::push — Añade una regla de gramática
- Parle\Parser::reset — Reinicializa el estado del analizador
- Parle\Parser::right — Declara un token con asociatividad a la derecha
- Parle\Parser::sigil — Recupera una parte correspondiente de una regla
- Parle\Parser::sigilCount — Número de elementos en la regla correspondiente
- Parle\Parser::sigilName — Recupera un nombre de regla o de token
- Parle\Parser::token — Declara un token
- Parle\Parser::tokenId — Devuelve el identificador del token
- Parle\Parser::trace — Rastrea la operación del analizador
- Parle\Parser::validate — Valida una entrada

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