The Parle\RLexer class

(PECL parle >= 0.5.1)

Introduction

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

classParle\RLexer {
constintICASE = 1;
constintDOT_NOT_LF = 2;
constintDOT_NOT_CRLF = 4;
constintSKIP_WS = 8;
publicbool$bol = false;
publicint$flags = 0;
publicint$state = 0;
publicint$marker = 0;
publicint$cursor = 0;
publicadvance(): void
publicbuild(): void
publiccallout(int$id, callable$callback): void
publicconsume(string$data): void
publicdump(): void
publicinsertMacro(string$name, string$regex): void
publicpush(string$regex, int$id): void
publicpush(
    string$state,
    string$regex,
    int$id,
    string$newState
): void
publicpush(string$state, string$regex, string$newState): void
publicpushState(string$state): int
publicreset(int$pos): void
}

Properties

bol

Start of input flag.

flags

Lexer flags.

state

Current lexer state, readonly.

marker

Position of the latest token match, readonly.

cursor

Current input offset, readonly.

Table of Contents

To Top