Parle Parle\Lexer 클래스

(PECL parle >= 0.5.1)


소개

단일 상태 렉서 클래스. 어휘는 즉석에서 정의할 수 있습니다. 특정 렉서 인스턴스가 Parle\Parser와 함께 사용되어야 하는 경우 토큰 ID를 가져와야 합니다. 그렇지 않으면 임의의 토큰 ID를 제공할 수 있습니다. 이 렉서는 다중 상태가 필요하지 않은 경우 Parle\RLexer에 비해 특정 성능 이점을 제공할 수 있습니다. Parle\RParser는 이 렉서와 호환되지 않습니다.


클래스 개요

                  
class Parle\Lexer {

  /* 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 getToken(): 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

Properties

bol
입력 플래그의 시작입니다.
flags
렉서 플래그.
state
현재 렉서 상태, 읽기 전용입니다.
marker
최신 토큰 일치의 위치, 읽기 전용입니다.
cursor
현재 입력 오프셋, 읽기 전용.

목차