# La clase Parle\Lexer

(PECL parle >= 0.5.1)

## Introducción

Clase de análisis léxico de estado único. Los lexemas pueden ser definidos sobre la marcha. Si la instancia particular del lexer está destinada a ser utilizada con Parle\Parser, los identificadores de tokens deben ser tomados de allí. De lo contrario, pueden proporcionarse identificadores de tokens arbitrarios. Este lexer puede ofrecer cierta ventaja de rendimiento en comparación con Parle\RLexer, si no se necesitan múltiples estados. Es importante señalar que Parle\RParser no es compatible con este lexer.

## Sinopsis de la Clase

class Parle\Lexer {
/* Constantes */
const int ICASE = 1;
const int DOT_NOT_LF = 2;
const int DOT_NOT_CRLF = 4;
const int SKIP_WS = 8;
const int MATCH_ZERO_LEN = 16;
/* Propiedades */
public bool $bol = `false`;
public int $flags = 0;
public int $state = 0;
public int $marker = 0;
public int $cursor = 0;
/* Métodos */
public function advance(): void
public function build(): void
public function callout(int `$id`, callable `$callback`): void
public function consume(string `$data`): void
public function dump(): void
public function getToken(): Parle\Token
public function insertMacro(string `$name`, string `$regex`): void
public function push(string `$regex`, int `$id`): void
public function reset(int `$pos`): void
}

## Constantes predefinidas

`Parle\Lexer::ICASE`

`Parle\Lexer::DOT_NOT_LF`

`Parle\Lexer::DOT_NOT_CRLF`

`Parle\Lexer::SKIP_WS`

`Parle\Lexer::MATCH_ZERO_LEN`

## Propiedades

bol

  Indicador de inicio de entrada.

flags

  Flags del lexer.

state

  Estado actual del lexer, solo lectura.

marker

  Posición de la última coincidencia de token, solo lectura.

cursor

  Desplazamiento de entrada actual, solo lectura.

## Tabla de contenidos

- Parle\Lexer::advance — Avanzar a la regla siguiente del lexer
- Parle\Lexer::build — Finaliza el conjunto de reglas del lexer
- Parle\Lexer::callout — Define una función de retrollamada de token
- Parle\Lexer::consume — Pasa los datos para el procesamiento
- Parle\Lexer::dump — Muestra la máquina de estado
- Parle\Lexer::getToken — Devuelve el token actual
- Parle\Lexer::insertMacro — Inserta una macro regex
- Parle\Lexer::push — Añade una regla de análisis
- Parle\Lexer::reset — Reinicializa el analizador léxico

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