CascadiaPHP 2024

The Parle\RLexer class

(PECL parle >= 0.5.1)


Multistate lexer class. Lexemes can be defined on the fly. If the particular lexer instance is meant to be used with Parle\RParser, the token IDs need to be taken from there. Otherwise, arbitrary token IDs can be supplied. Note, that Parle\Parser is not compatible with this lexer.

Class synopsis

class Parle\RLexer {
/* Constants */
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;
/* Properties */
public bool $bol = false;
public int $flags = 0;
public int $state = 0;
public int $marker = 0;
public int $cursor = 0;
/* Methods */
public advance(): void
public build(): void
public callout(int $id, callable $callback): void
public consume(string $data): void
public dump(): void
public insertMacro(string $name, string $regex): void
public push(string $regex, int $id): void
public push(
    string $state,
    string $regex,
    int $id,
    string $newState
): void
public push(string $state, string $regex, string $newState): void
public pushState(string $state): int
public reset(int $pos): void



Start of input flag.


Lexer flags.


Current lexer state, readonly.


Position of the latest token match, readonly.


Current input offset, readonly.

Table of Contents

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top