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

소스 코드: Lib/token.py

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

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

Note that a token’s value may depend on tokenizer options. For example, a `"+"` token may be reported as either `PLUS` or `OP`, or a `"match"` token may be either `NAME` or `SOFT_KEYWORD`.

token.tok_name

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

token.ISTERMINAL(x)

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

token.ISNONTERMINAL(x)

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

token.ISEOF(x)

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

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

token.NAME

  Token value that indicates an identifier. Note that keywords are also initially tokenized as `NAME` tokens.

token.NUMBER

  Token value that indicates a numeric literal

token.STRING

  Token value that indicates a string or byte literal, excluding formatted string literals. The token string is not interpreted: it includes the surrounding quotation marks and the prefix (if given); backslashes are included literally, without processing escape sequences.

token.OP

  A generic token value that indicates an operator or delimiter.

  CPython 구현 상세: This value is only reported by the `tokenize` module. Internally, the tokenizer uses exact token types instead.

token.COMMENT

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

token.NEWLINE

  Token value that indicates the end of a logical line.

token.NL

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

token.INDENT

  Token value used at the beginning of a logical line to indicate the start of an indented block.

token.DEDENT

  Token value used at the beginning of a logical line to indicate the end of an indented block.

token.FSTRING_START

  Token value used to indicate the beginning of an f-string literal.

  CPython 구현 상세: The token string includes the prefix and the opening quote(s), but none of the contents of the literal.

token.FSTRING_MIDDLE

  Token value used for literal text inside an f-string literal, including format specifications.

  CPython 구현 상세: Replacement fields (that is, the non-literal parts of f-strings) use the same tokens as other expressions, and are delimited by `LBRACE`, `RBRACE`, `EXCLAMATION` and `COLON` tokens.

token.FSTRING_END

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

  CPython 구현 상세: The token string contains the closing quote(s).

token.ENDMARKER

  입력의 끝을 나타내는 데 사용되는 토큰값.

token.ENCODING

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

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

The following token types are not produced by the `tokenize` module, and are defined for special uses in the tokenizer or parser:

token.TYPE_IGNORE

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

token.TYPE_COMMENT

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

token.SOFT_KEYWORD

  Token value indicating a soft keyword.

  The tokenizer never produces this value. To check for a soft keyword, pass a `NAME` token’s string to `keyword.issoftkeyword()`.

token.ERRORTOKEN

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

  The `tokenize` module generally indicates errors by raising exceptions instead of emitting this token. It can also emit tokens such as `OP` or `NAME` with strings that are later rejected by the parser.

The remaining tokens represent specific operators and delimiters. (The `tokenize` module reports these as `OP`; see `exact_type` in the `tokenize` documentation for details.)

토큰 | 값
--- | ---

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

  The number of token types defined in this module.

token.EXACT_TOKEN_TYPES

  A dictionary mapping the string representation of a token to its numeric code.

  Added in version 3.8.

버전 3.5에서 변경: `AWAIT` 와 `ASYNC` 토큰이 추가되었습니다.

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

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

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

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

버전 3.13에서 변경: `AWAIT` 와 `ASYNC` 토큰을 다시 제거했습니다.