Python

token — 파이썬 구문 분석 트리에 사용되는 상수

소스 코드: Lib/token.py


이 모듈은 구문 분석 트리의 말단 노드의 숫자 값을 나타내는 상수를 제공합니다 (터미널 토큰). 언어 문법의 문맥에서 이름의 정의는 파이썬 배포판의 Grammar/Tokens 파일을 참조하십시오. 이름이 매핑되는 특정 숫자 값은 파이썬 버전 간에 변경될 수 있습니다.

이 모듈은 숫자 코드에서 이름으로의 매핑과 몇몇 함수도 제공합니다. 이 함수는 파이썬 C 헤더 파일의 정의를 반영합니다.

토큰의 값은 토크나이저 옵션에 따라 다를 수 있습니다. 예를 들어, "+" 토큰은 PLUS 또는 OP 로 보고될 수 있으며, "match" 토큰은 NAME 또는 SOFT_KEYWORD 일 수 있습니다.

token.tok_name

이 모듈에 정의된 상수의 숫자 값을 다시 이름 문자열로 매핑하여 사람이 읽을 수 있는 구문 분석 트리 표현을 생성할 수 있도록 하는 딕셔너리.

token.ISTERMINAL(x)

터미널 토큰값이면 True를 반환합니다.

token.ISNONTERMINAL(x)

비 터미널 토큰값이면 True를 반환합니다.

token.ISEOF(x)

x가 입력의 마지막을 나타내는 표시면 True를 반환합니다.

토큰 상수는 다음과 같습니다:

token.NAME

:ref:`식별자 또는 키워드 <identifiers>`를 나타내는 토큰 값입니다.

token.NUMBER

:ref:`숫자 리터럴 <numbers>`를 나타내는 토큰 값입니다.

token.STRING

:ref:`형식화된 문자열 리터럴 <f-strings>`을 제외한, :ref:`문자 또는 바이트 리터럴 <strings>`을 나타내는 토큰 값입니다. 토큰 문자열은 해석되지 않습니다. 주변 따옴표와 접두사(제공된 경우)가 포함되며, 백슬래시는 이스케이프 시퀀스 처리 없이 문자 그대로 포함됩니다.

token.OP

연산자 또는 :ref:`구분자 <delimiters>`를 나타내는 일반적인 토큰 값입니다.

이 값은 tokenize 모듈에 의해서만 보고됩니다. 내부적으로 토크나이저는 대신 :ref:`정확한 토큰 유형 <token_operators_delimiters>`을 사용합니다.

token.COMMENT

주석을 나타내는 데 사용되는 토큰값. 구문 분석기는 COMMENT 토큰을 무시합니다.

token.NEWLINE

:ref:`논리적 라인 <logical-lines>`의 끝을 나타내는 토큰 값입니다.

token.NL

비종결 줄넘김을 나타내는데 사용되는 토큰값. NL 토큰은 코드의 논리적 줄이 여러 물리적 줄로 이어질 때 생성됩니다. 구문 분석기는 NL 토큰을 무시합니다.

token.INDENT

:ref:`논리적 라인 <logical-lines>`의 시작에서 :ref:`들여쓰기 블록 <indentation>`의 시작을 나타내는 데 사용되는 토큰 값입니다.

token.DEDENT

:ref:`논리적 라인 <logical-lines>`의 시작에서 :ref:`들여쓰기 블록 <indentation>`의 끝을 나타내는 데 사용되는 토큰 값입니다.

token.FSTRING_START

:ref:`f-string 리터럴 <f-strings>`의 시작을 나타내는 데 사용되는 토큰 값입니다.

토큰 문자열에는 접두사와 시작 따옴표는 포함되지만, 리터럴의 내용은 포함되지 않습니다.

token.FSTRING_MIDDLE

서식 지정자를 포함하여 f-string 리터럴 내부의 리터럴 텍스트에 사용되는 토큰 값입니다.

치환 필드(즉, f-string의 비리터럴 부분)는 다른 표현식과 동일한 토큰을 사용하며, LBRACE, RBRACE, EXCLAMATIONCOLON 토큰으로 구분됩니다.

token.FSTRING_END

f-string의 끝을 나타내는 데 사용되는 토큰값.

토큰 문자열에는 종료 따옴표가 포함됩니다.

token.TSTRING_START

템플릿 문자열 리터럴의 시작을 나타내는 데 사용되는 토큰 값입니다.

토큰 문자열에는 접두사와 시작 따옴표는 포함되지만, 리터럴의 내용은 포함되지 않습니다.

Added in version 3.14.

token.TSTRING_MIDDLE

서식 지정자를 포함하여 템플릿 문자열 리터럴 내부의 리터럴 텍스트에 사용되는 토큰 값입니다.

치환 필드(즉, t-string의 비리터럴 부분)는 다른 표현식과 동일한 토큰을 사용하며, LBRACE, RBRACE, EXCLAMATIONCOLON 토큰으로 구분됩니다.

Added in version 3.14.

token.TSTRING_END

템플릿 문자열 리터럴의 끝을 나타내는 데 사용되는 토큰 값입니다.

토큰 문자열에는 종료 따옴표가 포함됩니다.

Added in version 3.14.

token.ENDMARKER

입력의 끝을 나타내는 토큰 값입니다. :ref:`최상위 문법 규칙 <top-level>`에서 사용됩니다.

token.ENCODING

소스 바이트열을 텍스트로 디코딩하는 데 사용되는 인코딩을 나타내는 토큰값. tokenize.tokenize()에 의해 반환되는 첫 번째 토큰은 항상 ENCODING 토큰입니다.

이 토큰 유형은 C 토크나이저가 사용하지 않지만 tokenize 모듈에 필요합니다.

다음 토큰 유형은 tokenize 모듈에 의해 생성되지 않으며, 토크나이저나 파서에서 특별한 사용을 위해 정의됩니다:

token.TYPE_IGNORE

type: ignore 주석이 인식되었음을 나타내는 토큰값. 이러한 토큰은 PyCF_TYPE_COMMENTS 플래그가 있는 경우에만 일반 COMMENT 토큰 대신 생성됩니다.

token.TYPE_COMMENT

형 주석이 인식되었음을 나타내는 토큰값. 이러한 토큰은 PyCF_TYPE_COMMENTS 플래그가 있는 경우에만 일반 COMMENT 토큰 대신 생성됩니다.

token.SOFT_KEYWORD

:ref:`소프트 키워드 <soft-keywords>`를 나타내는 토큰 값을 의미합니다.

토크나이저는 이 값을 절대 생성하지 않습니다. 소프트 키워드를 확인하려면, NAME 토큰의 문자열을 :func:`keyword.issoftkeyword`에 전달하세요.

token.ERRORTOKEN

잘못된 입력을 나타내는 데 사용되는 토큰값.

tokenize 모듈은 일반적으로 이 토큰을 방출하는 대신 예외를 발생시켜 오류를 나타냅니다. 또한, 파서에 의해 나중에 거부되는 문자열을 가진 OP 또는 :data:`NAME`과 같은 토큰도 방출할 수 있습니다.

토큰 스트림 처리를 단순화하기 위해 모든 연산자 토큰 및 Ellipsis\는 일반적인 OP 토큰 유형을 사용해 반환됩니다. 정확한 유형은 tokenize 문서에서 tokenize.tokenize()\를 통해 반환된 네임드 튜플\의 exact_type 속성을 확인하여 알아낼 수 있습니다.

토큰

token.LPAR

"("

token.RPAR

")"

token.LSQB

"["

token.RSQB

"]"

token.COLON

":"

token.COMMA

","

token.SEMI

";"

token.PLUS

"+"

token.MINUS

"-"

token.STAR

"*"

token.SLASH

"/"

token.VBAR

"|"

token.AMPER

"&"

token.LESS

"<"

token.GREATER

">"

token.EQUAL

"="

token.DOT

"."

token.PERCENT

"%"

token.LBRACE

"{"

token.RBRACE

"}"

token.EQEQUAL

"=="

token.NOTEQUAL

"!="

token.LESSEQUAL

"<="

token.GREATEREQUAL

">="

token.TILDE

"~"

token.CIRCUMFLEX

"^"

token.LEFTSHIFT

"<<"

token.RIGHTSHIFT

">>"

token.DOUBLESTAR

"**"

token.PLUSEQUAL

"+="

token.MINEQUAL

"-="

token.STAREQUAL

"*="

token.SLASHEQUAL

"/="

token.PERCENTEQUAL

"%="

token.AMPEREQUAL

"&="

token.VBAREQUAL

"|="

token.CIRCUMFLEXEQUAL

"^="

token.LEFTSHIFTEQUAL

"<<="

token.RIGHTSHIFTEQUAL

">>="

token.DOUBLESTAREQUAL

"**="

token.DOUBLESLASH

"//"

token.DOUBLESLASHEQUAL

"//="

token.AT

"@"

token.ATEQUAL

"@="

token.RARROW

"->"

token.ELLIPSIS

"..."

token.COLONEQUAL

":="

token.EXCLAMATION

"!"

다음과 같은 토큰이 아닌 상수가 제공됩니다:

token.N_TOKENS

이 모듈에 정의된 토큰 유형의 개수입니다.

token.EXACT_TOKEN_TYPES

토큰의 문자열 표현과 해당 숫자 코드에 매핑하는 딕셔너리입니다.

Added in version 3.8.

버전 3.5에서 변경: AWAITASYNC 토큰이 추가되었습니다.

버전 3.7에서 변경: COMMENT, NLENCODING 토큰이 추가되었습니다.

버전 3.7에서 변경: AWAITASYNC 토큰이 제거되었습니다. “async”와 “await”는 이제 NAME 토큰으로 토큰화됩니다.

버전 3.8에서 변경: TYPE_COMMENT, TYPE_IGNORE, COLONEQUAL이 추가되었습니다. AWAITASYNC 토큰을 다시 추가했습니다 (feature_version을 6 이하로 설정하여 ast.parse()로 구형 파이썬 버전의 구문 분석을 지원하는 데 필요합니다).

버전 3.12에서 변경: EXCLAMATION을 추가했습니다.

버전 3.13에서 변경: AWAITASYNC 토큰을 다시 제거했습니다.