Tokenizer

Tokenizer

PHP 소스를 분석하거나 변환하는 도구를 직접 만들어 보고 싶다면, 텍스트 구문(lexical) 수준에서 언어를 다루는 일은 꽤 번거로워요. Tokenizer 확장은 Zend 엔진에 내장된 PHP 토크나이저에 접근하는 인터페이스를 제공해서, 그런 도구를 더 쉽게 만들 수 있게 해 줘요.

출처: Tokenizer

본문

토크나이저 함수들은 Zend 엔진에 내장된 PHP 토크나이저에 대한 인터페이스를 제공해요. 이 함수들을 쓰면 언어 사양을 어휘(lexical) 수준에서 직접 다루지 않고도, 직접 만든 PHP 소스 분석·변경 도구를 작성할 수 있어요. 토큰에 대한 부록(토큰 목록)도 함께 참고할 수 있어요.

설치·설정(Installing/Configuring)

  • 설치(Installation)
  • 사전 정의 상수(Predefined Constants)
  • 예제(Examples)

PhpToken 클래스

  • PhpToken — PhpToken 클래스
  • PhpToken::__construct — 새 PhpToken 객체를 반환해요(Returns a new PhpToken object).
  • PhpToken::getTokenName — 토큰의 이름을 반환해요(Returns the name of the token).
  • PhpToken::is — 토큰이 주어진 종류인지 알려줘요(Tells whether the token is of given kind).
  • PhpToken::isIgnorable — 토큰이 PHP 파서에 의해 무시될 토큰인지 알려줘요(Tells whether the token would be ignored by the PHP parser).
  • PhpToken::__toString — 토큰의 텍스트 콘텐츠를 반환해요(Returns the textual content of the token).
  • PhpToken::tokenize — 주어진 소스를 PhpToken 객체로 표현된 PHP 토큰으로 나눠요(Splits given source into PHP tokens, represented by PhpToken objects).

Tokenizer 함수(Tokenizer Functions)

  • token_get_all — 주어진 소스를 PHP 토큰으로 나눠요(Split given source into PHP tokens).
  • token_name — 주어진 PHP 토큰의 기호 이름을 가져와요(Get the symbolic name of a given PHP token).

더 알아보기

  • token_get_all()은 소스를 배열 형태의 토큰 목록으로 바꿔 주는데, 코드 스타일 검사기나 문법 하이라이터를 직접 만들 때 시작점으로 좋아요.
  • 토큰 상수(예: T_STRING, T_VARIABLE)와 함께 보면 반환값이 훨씬 명확해져요.