# 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 advance ( void ) : void
public build ( void ) : void
public callout ( int `$id` , callable `$callback` ) : void
public consume ( string `$data` ) : void
public dump ( void ) : void
public getToken ( void ) : Parle\Token
public insertMacro ( string `$name` , string `$regex` ) : void
public push ( string `$regex` , int `$id` ) : void
public reset ( int `$pos` ) : void
}

## 定義済み定数

`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.

## 目次

- Parle\Lexer::advance — Process next lexer rule
- Parle\Lexer::build — Finalize the lexer rule set
- Parle\Lexer::callout — Define token callback
- Parle\Lexer::consume — Pass the data for processing
- Parle\Lexer::dump — Dump the state machine
- Parle\Lexer::getToken — Retrieve the current token
- Parle\Lexer::insertMacro — Insert regex macro
- Parle\Lexer::push — Add a lexer rule
- Parle\Lexer::reset — Reset lexer