The Parle\RLexer class

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

Parle\RLexer
class Parle\RLexer {
/* Constants */
const int Parle\RLexer::ICASE = 1;
const int Parle\RLexer::DOT_NOT_LF = 2;
const int Parle\RLexer::DOT_NOT_CRLF = 4;
const int Parle\RLexer::SKIP_WS = 8;
const int Parle\RLexer::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 void advance()
public void build()
public void callout(int $id, callable $callback)
public void consume(string $data)
public void dump()
public Parle\Token getToken()
public void insertMacro(string $name, string $regex)
public void push(string $regex, int $id)
public void push(
    string $state,
    string $regex,
    int $id,
    string $newState
)
public void push(string $state, string $regex, string $newState)
public int pushState(string $state)
public void reset(int $pos)
}

Predefined Constants

Parle\RLexer::ICASE

Parle\RLexer::DOT_NOT_LF

Parle\RLexer::DOT_NOT_CRLF

Parle\RLexer::SKIP_WS

Parle\RLexer::MATCH_ZERO_LEN

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