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¶
مقدار توکنی که نشاندهندهی یک شناسه یا کلیدواژه است.
-
token.NUMBER¶
مقدار توکن نشاندهندهی یک لفظی عددی
-
token.STRING¶
مقدار توکنی که نشاندهندهی یک رشته یا بایت لفظی است، بهاستثنای رشتههای لفظی قالببندیشده. رشتهی توکن تفسیر نمیشود: شامل علامتهای نقلقول اطراف و پیشوند (در صورت وجود) میشود؛ بکاسلشها بهصورت لفظی، بدون پردازش دنبالههای خنثیسازی، گنجانده میشوند.
-
token.OP¶
یک مقدار توکن عام که نشاندهندهی یک عملگر یا جداکننده است.
این مقدار فقط توسط ماژول tokenize گزارش داده میشود. در عوض، توکنساز بهصورت داخلی از انواع دقیق توکن استفاده میکند.
-
token.COMMENT¶
مقدار توکنی که برای نشان دادن یک کامنت استفاده میشود. پارسر توکنهای COMMENT را نادیده میگیرد.
-
token.NEWLINE¶
مقدار توکنی که پایان یک خط منطقی را نشان میدهد.
-
token.NL¶
مقدار توکنی که برای نشان دادن یک خط جدید غیرپایاندهنده به کار میرود. توکنهای NL هنگامی تولید میشوند که یک خط منطقی از کد در چندین خط فیزیکی ادامه یابد. پارسر توکنهای NL را نادیده میگیرد.
-
token.INDENT¶
مقدار توکنی که در ابتدای یک خط منطقی برای نشان دادن آغاز یک بلوک تورفته استفاده میشود.
-
token.DEDENT¶
مقدار توکنی که در ابتدای یک خط منطقی برای نشان دادن پایان یک بلوک تورفته استفاده میشود.
-
token.FSTRING_START¶
مقدار توکنی که برای نشان دادن آغاز یک افاسترینگ لفظی استفاده میشود.
رشتهی توکن شامل پیشوند و علامتهای نقلقول آغازین است، اما هیچبخشی از محتوای مقدار لفظی را شامل نمیشود.
-
token.FSTRING_MIDDLE¶
مقدار توکن استفادهشده برای متن لفظی درون یک افاسترینگ لفظی، شامل مشخصات قالببندی.
فیلدهای جایگزینی (یعنی بخشهای غیرلفظی افاسترینگها) از همان توکنهای سایر عبارتها استفاده میکنند و با توکنهای LBRACE، RBRACE، EXCLAMATION و COLON جدا میشوند.
-
token.FSTRING_END¶
مقدار توکنی که برای نشان دادن پایان یک افاسترینگ استفاده میشود.
رشتهی توکن شامل علامت(های) نقلقول پایانی است.
-
token.TSTRING_START¶
مقدار توکن که برای نشان دادن آغاز یک رشتهی قالب (template string literal) به کار میرود.
رشتهی توکن شامل پیشوند و علامتهای نقلقول آغازین است، اما هیچبخشی از محتوای مقدار لفظی را شامل نمیشود.
اضافه شده در نسخهی 3.14.
-
token.TSTRING_MIDDLE¶
مقدار توکن استفادهشده برای متن لفظی درون یک رشتهقالب لفظی (template string literal)، شامل مشخصات قالببندی.
فیلدهای جایگزینی، یعنی بخشهای غیرلفظی رشتههای t (t-strings)، از همان توکنهای سایر عبارتها استفاده میکنند و با توکنهای LBRACE، RBRACE، EXCLAMATION و COLON جدا شدهاند.
اضافه شده در نسخهی 3.14.
-
token.TSTRING_END¶
مقدار توکن که برای نشان دادن پایان یک رشتهی قالب (template string literal) به کار میرود.
رشتهی توکن شامل علامت(های) نقلقول پایانی است.
اضافه شده در نسخهی 3.14.
-
token.ENDMARKER¶
مقدار توکنی که پایان ورودی را نشان میدهد. در قواعد دستوری سطح بالا استفاده میشود.
-
token.ENCODING¶
مقدار توکنی که کدگذاری استفادهشده برای کدگشایی بایتهای منبع به متن را نشان میدهد. نخستین توکن برگرداندهشده توسط tokenize.tokenize() همیشه یک توکن ENCODING خواهد بود.
این نوع توکن توسط توکنساز C استفاده نمیشود، اما برای ماژول tokenize مورد نیاز است.
انواع توکن زیر توسط ماژول tokenize تولید نمیشوند و برای کاربردهای خاص در توکنساز یا پارسر تعریف شدهاند:
-
token.TYPE_IGNORE¶
مقدار توکنی که نشان میدهد یک کامنت type: ignore شناسایی شده است. چنین توکنهایی بهجای توکنهای معمولی COMMENT فقط با پرچم PyCF_TYPE_COMMENTS تولید میشوند.
-
token.TYPE_COMMENT¶
مقدار توکنی که نشان میدهد یک توضیح نوع شناسایی شده است. چنین توکنهایی تنها با پرچم PyCF_TYPE_COMMENTS بهجای توکنهای معمولی COMMENT تولید میشوند.
-
token.SOFT_KEYWORD¶
مقدار توکن نشاندهندهی یک کلیدواژه نرم.
توکنساز (tokenizer) هرگز این مقدار را تولید نمیکند. برای بررسی یک کلیدواژهی نرم (soft keyword)، رشتهی یک توکن NAME را به keyword.issoftkeyword() ارسال کنید.
-
token.ERRORTOKEN¶
مقدار توکن برای نشان دادن ورودی نادرست استفاده میشود.
ماژول tokenize معمولاً بهجای تولید این توکن، خطاها را با پرتاب استثناها نشان میدهد. همچنین میتواند توکنهایی مانند OP یا NAME را با رشتههایی تولید کند که بعداً توسط پارسر رد میشوند.
توکنهای باقیمانده نشاندهندهی عملگرهای مشخص و جداکنندههای مشخص هستند. (ماژول tokenize اینها را بهعنوان OP گزارش میکند؛ برای جزئیات، exact_type را در مستندات tokenize ببینید.)
توکن |
مقدار |
-
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¶
دیکشنریای که نمایش رشتهای یک توکن را به کد عددی آن نگاشت میکند.
تغییر یافته در نسخهی 3.5: توکنهای AWAIT و ASYNC افزوده شدند.
تغییر یافته در نسخهی 3.7: توکنهای AWAIT و ASYNC حذف شدند. «async» و «await» اکنون بهعنوان توکنهای NAME توکنسازی میشوند.
تغییر یافته در نسخهی 3.8: TYPE_COMMENT، TYPE_IGNORE و COLONEQUAL افزوده شدند. توکنهای AWAIT و ASYNC دوباره افزوده شدند (این توکنها برای پشتیبانی از تجزیه نسخههای قدیمیتر پایتون برای ast.parse() با feature_version تنظیمشده روی 6 یا کمتر لازم هستند).
تغییر یافته در نسخهی 3.13: توکنهای AWAIT و ASYNC بار دیگر حذف شدند.
©
حق نشر 2001 Python Software Foundation.
این صفحه تحت مجوز بنیاد نرمافزار پایتون نسخه ۲ منتشر شده است.
مثالها، دستورالعملها، و سایر کدهای موجود در مستندات همچنین تحت مجوز بدون بند BSD منتشر شدهاند.
برای اطلاعات بیشتر به
تاریخچه و مجوز مراجعه کنید.
بنیاد نرمافزار پایتون یک شرکت غیرانتفاعی است.
لطفاً کمک مالی کنید.
آخرین بهروزرسانی در نوامبر 12, 2026 (06:19 UTC).
آیا
اشکالی یافتید؟
ساخته شده با
Sphinx 9.1.0.