The Parle\Lexer class

(PECL parle >= 0.5.1)

简介

Single state lexer class. Lexemes can be defined on the fly. If the particular lexer instance is meant to be used with Parle\Parser, the token IDs need to be taken from there. Otherwise, arbitrary token IDs can be supplied. This lexer can give a certain performance advantage over Parle\RLexer, if no multiple states are required. Note, that Parle\RParser is not compatible with this lexer.

类摘要

Parle\Lexer {
/* Constants */
const integer ICASE = 1 ;
const integer DOT_NOT_LF = 2 ;
const integer DOT_NOT_CRLF = 4 ;
const integer SKIP_WS = 8 ;
const integer MATCH_ZERO_LEN = 16 ;
/* 属性 */
public boolean $bol = false ;
public integer $flags = 0 ;
public integer $state = 0 ;
public integer $marker = 0 ;
public integer $cursor = 0 ;
/* 方法 */
public void advance ( void )
public void build ( void )
public void callout ( integer $id , callable $callback )
public void consume ( string $data )
public void dump ( void )
public Parle\Token getToken ( void )
public void insertMacro ( string $name , string $regex )
public void push ( string $regex , integer $id )
public void reset ( integer $pos )
}

预定义常量

Parle\Lexer::ICASE

Parle\Lexer::DOT_NOT_LF

Parle\Lexer::DOT_NOT_CRLF

Parle\Lexer::SKIP_WS

Parle\Lexer::MATCH_ZERO_LEN

属性

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

User Contributed Notes

There are no user contributed notes for this page.