token — Konstanter som används med Python parse-träd

Källkod: Lib/token.py


Denna modul tillhandahåller konstanter som representerar de numeriska värdena för bladnoder i parseträdet (terminaltokens). Se filen Grammar/Tokens i Python-distributionen för definitionerna av namnen i samband med språkgrammatiken. De specifika numeriska värden som namnen motsvarar kan ändras mellan olika Python-versioner.

Modulen innehåller också en mappning från numeriska koder till namn och vissa funktioner. Funktionerna speglar definitionerna i Python C:s huvudfiler.

Observera att en tokens värde kan bero på tokenizer-alternativ. Till exempel kan en "+"-token rapporteras som antingen PLUS eller OP, eller en "match"-token kan vara antingen NAME eller SOFT_KEYWORD.

token.tok_name

Ordbok som mappar de numeriska värdena för de konstanter som definieras i den här modulen tillbaka till namnsträngar, vilket gör det möjligt att generera mer lättlästa representationer av parseträd.

token.ISTERMINAL(x)

Returnerar True för terminal token-värden.

token.ISNONTERMINAL(x)

Returnerar True för icke-terminala tokenvärden.

token.ISEOF(x)

Returnerar True om x är markören som indikerar slutet på inmatningen.

Tokenkonstanterna är:

token.NAME

Tokenvärde som anger en identifierare. Observera att nyckelord också initialt tokeniseras som NAME-tokens.

token.NUMBER

Tokenvärde som anger en numerisk bokstav

token.STRING

Tokenvärde som anger en sträng- eller byte-litteral, exklusive formaterade stränglitteraler. Tokensträngen tolkas inte: den inkluderar de omgivande citattecknen och prefixet (om det anges); backslashes inkluderas bokstavligen, utan att bearbeta escape-sekvenser.

token.OP

Ett generiskt tokenvärde som anger en operator eller delimiter.

Detta värde rapporteras endast av modulen tokenize. Internt använder tokenizer exakta token-typer istället.

token.COMMENT

Tokenvärde som används för att ange en kommentar. Parsern ignorerar COMMENT-tokens.

token.NEWLINE

Tokenvärde som anger slutet på en logisk rad.

token.NL

Tokenvärde som används för att ange en icke-avslutande ny rad. NL-tokens genereras när en logisk kodrad fortsätter över flera fysiska rader. Parsern ignorerar NL-tokens.

token.INDENT

Tokenvärde som används i början av en logisk rad för att ange början av ett inklätt block.

token.DEDENT

Tokenvärde som används i början av en logisk rad för att ange slutet av ett inklätt block.

token.FSTRING_START

Tokenvärde som används för att ange början på en f-string literal.

Tokensträngen innehåller prefixet och de inledande citaten, men inget av innehållet i den bokstavliga texten.

token.FSTRING_MIDDLE

Tokenvärde som används för bokstavlig text i en f-string literal, inklusive formatspecifikationer.

Ersättningsfält (dvs. de icke-bokstavliga delarna av f-strängar) använder samma symboler som andra uttryck och avgränsas av symbolerna LBRACE, RBRACE, EXCLAMATION och COLON.

token.FSTRING_END

Tokenvärde som används för att ange slutet på en f-string.

Tokensträngen innehåller det avslutande citatet (citaten).

token.TSTRING_START

Tokenvärde som används för att ange början på en mallsträng.

Tokensträngen innehåller prefixet och de inledande citaten, men inget av innehållet i den bokstavliga texten.

Tillagd i version 3.14.

token.TSTRING_MIDDLE

Tokenvärde som används för bokstavlig text i en mallsträng, inklusive formatspecifikationer.

Ersättningsfält (dvs. de icke-bokstavliga delarna av t-strängar) använder samma symboler som andra uttryck och avgränsas av symbolerna LBRACE, RBRACE, EXCLAMATION och COLON.

Tillagd i version 3.14.

token.TSTRING_END

Tokenvärde som används för att ange slutet på en mallsträng.

Tokensträngen innehåller det avslutande citatet (citaten).

Tillagd i version 3.14.

token.ENDMARKER

Tokenvärde som anger slutet på inmatningen. Används i grammatikregler på högsta nivå.

token.ENCODING

Tokenvärde som anger den kodning som används för att avkoda källbytes till text. Den första token som returneras av tokenize.tokenize() kommer alltid att vara en ENCODING token.

Den här token-typen används inte av C-tokenizer men behövs för modulen tokenize.

Följande token-typer produceras inte av modulen tokenize, utan definieras för speciella användningsområden i tokenizer eller parser:

token.TYPE_IGNORE

Tokenvärde som indikerar att en typ: ignore kommentar identifierades. Sådana tokens produceras istället för vanliga COMMENT tokens endast med PyCF_TYPE_COMMENTS flaggan.

token.TYPE_COMMENT

Tokenvärde som indikerar att en typkommentar har identifierats. Sådana tokens produceras istället för vanliga COMMENT-tokens endast med PyCF_TYPE_COMMENTS-flaggan.

token.SOFT_KEYWORD

Tokenvärde som anger ett mjukt nyckelord.

Tokenizer producerar aldrig detta värde. För att kontrollera om det finns ett mjukt nyckelord, skicka en NAME-tokensträng till keyword.issoftkeyword().

token.ERRORTOKEN

Tokenvärde som används för att indikera felaktig inmatning.

Modulen tokenize indikerar i allmänhet fel genom att skapa undantag i stället för att skicka ut denna token. Den kan också avge tokens som OP eller NAME med strängar som senare avvisas av parsern.

De återstående symbolerna representerar specifika operatorer och avgränsare. (Modulen tokenize rapporterar dessa som OP; se exact_type i tokenize-dokumentationen för detaljer)

Token

Värde

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

"!"

Följande icke-token-konstanter tillhandahålls:

token.N_TOKENS

Antalet token-typer som definieras i denna modul.

token.EXACT_TOKEN_TYPES

En ordbok som mappar strängrepresentationen av en token till dess numeriska kod.

Tillagd i version 3.8.

Ändrad i version 3.5: Lagt till AWAIT och ASYNC tokens.

Ändrad i version 3.7: Lagt till COMMENT, NL och ENCODING tokens.

Ändrad i version 3.7: Tog bort AWAIT och ASYNC tokens. ”async” och ”await” är nu tokeniserade som NAME tokens.

Ändrad i version 3.8: Lagt till TYPE_COMMENT, TYPE_IGNORE, COLONEQUAL. Lagt till AWAIT och ASYNC tokens igen (de behövs för att stödja parsning av äldre Python-versioner för ast.parse() med feature_version satt till 6 eller lägre).

Ändrad i version 3.12: Lagt till EXCLAMATION.

Ändrad i version 3.13: Tog bort AWAIT och ASYNC tokens igen.