@@ -13,7 +13,7 @@ msgid ""
1313msgstr ""
1414"Project-Id-Version : Python 3.14\n "
1515"Report-Msgid-Bugs-To : \n "
16- "POT-Creation-Date : 2026-08-26 03:59+0000 \n "
16+ "POT-Creation-Date : 2026-08-26 07:47+0330 \n "
1717"PO-Revision-Date : 2021-06-28 00:54+0000\n "
1818"Last-Translator : Sepehr Rasouli <sepehrrasouli06@gmail.com>, 2026\n "
1919"Language-Team : Persian (https://github.com/python/python-docs-fa/fa/)\n "
@@ -41,6 +41,163 @@ msgstr ""
4141msgid "The abstract grammar is currently defined as follows:"
4242msgstr ""
4343
44+ msgid ""
45+ "-- ASDL's 4 builtin types are:\n"
46+ "-- identifier, int, string, constant\n"
47+ "\n"
48+ "module Python\n"
49+ "{\n"
50+ " mod = Module(stmt* body, type_ignore* type_ignores)\n"
51+ " | Interactive(stmt* body)\n"
52+ " | Expression(expr body)\n"
53+ " | FunctionType(expr* argtypes, expr returns)\n"
54+ "\n"
55+ " stmt = FunctionDef(identifier name, arguments args,\n"
56+ " stmt* body, expr* decorator_list, expr? returns,\n"
57+ " string? type_comment, type_param* type_params)\n"
58+ " | AsyncFunctionDef(identifier name, arguments args,\n"
59+ " stmt* body, expr* decorator_list, expr? returns,\n"
60+ " string? type_comment, type_param* type_params)\n"
61+ "\n"
62+ " | ClassDef(identifier name,\n"
63+ " expr* bases,\n"
64+ " keyword* keywords,\n"
65+ " stmt* body,\n"
66+ " expr* decorator_list,\n"
67+ " type_param* type_params)\n"
68+ " | Return(expr? value)\n"
69+ "\n"
70+ " | Delete(expr* targets)\n"
71+ " | Assign(expr* targets, expr value, string? type_comment)\n"
72+ " | TypeAlias(expr name, type_param* type_params, expr value)\n"
73+ " | AugAssign(expr target, operator op, expr value)\n"
74+ " -- 'simple' indicates that we annotate simple name without parens\n"
75+ " | AnnAssign(expr target, expr annotation, expr? value, int simple)\n"
76+ "\n"
77+ " -- use 'orelse' because else is a keyword in target languages\n"
78+ " | For(expr target, expr iter, stmt* body, stmt* orelse, string? type_comment)\n"
79+ " | AsyncFor(expr target, expr iter, stmt* body, stmt* orelse, string? type_comment)\n"
80+ " | While(expr test, stmt* body, stmt* orelse)\n"
81+ " | If(expr test, stmt* body, stmt* orelse)\n"
82+ " | With(withitem* items, stmt* body, string? type_comment)\n"
83+ " | AsyncWith(withitem* items, stmt* body, string? type_comment)\n"
84+ "\n"
85+ " | Match(expr subject, match_case* cases)\n"
86+ "\n"
87+ " | Raise(expr? exc, expr? cause)\n"
88+ " | Try(stmt* body, excepthandler* handlers, stmt* orelse, stmt* finalbody)\n"
89+ " | TryStar(stmt* body, excepthandler* handlers, stmt* orelse, stmt* finalbody)\n"
90+ " | Assert(expr test, expr? msg)\n"
91+ "\n"
92+ " | Import(alias* names)\n"
93+ " | ImportFrom(identifier? module, alias* names, int? level)\n"
94+ "\n"
95+ " | Global(identifier* names)\n"
96+ " | Nonlocal(identifier* names)\n"
97+ " | Expr(expr value)\n"
98+ " | Pass | Break | Continue\n"
99+ "\n"
100+ " -- col_offset is the byte offset in the utf8 string the parser uses\n"
101+ " attributes (int lineno, int col_offset, int? end_lineno, int? end_col_offset)\n"
102+ "\n"
103+ " -- BoolOp() can use left & right?\n"
104+ " expr = BoolOp(boolop op, expr* values)\n"
105+ " | NamedExpr(expr target, expr value)\n"
106+ " | BinOp(expr left, operator op, expr right)\n"
107+ " | UnaryOp(unaryop op, expr operand)\n"
108+ " | Lambda(arguments args, expr body)\n"
109+ " | IfExp(expr test, expr body, expr orelse)\n"
110+ " | Dict(expr?* keys, expr* values)\n"
111+ " | Set(expr* elts)\n"
112+ " | ListComp(expr elt, comprehension* generators)\n"
113+ " | SetComp(expr elt, comprehension* generators)\n"
114+ " | DictComp(expr key, expr value, comprehension* generators)\n"
115+ " | GeneratorExp(expr elt, comprehension* generators)\n"
116+ " -- the grammar constrains where yield expressions can occur\n"
117+ " | Await(expr value)\n"
118+ " | Yield(expr? value)\n"
119+ " | YieldFrom(expr value)\n"
120+ " -- need sequences for compare to distinguish between\n"
121+ " -- x < 4 < 3 and (x < 4) < 3\n"
122+ " | Compare(expr left, cmpop* ops, expr* comparators)\n"
123+ " | Call(expr func, expr* args, keyword* keywords)\n"
124+ " | FormattedValue(expr value, int conversion, expr? format_spec)\n"
125+ " | Interpolation(expr value, constant str, int conversion, expr? format_spec)\n"
126+ " | JoinedStr(expr* values)\n"
127+ " | TemplateStr(expr* values)\n"
128+ " | Constant(constant value, string? kind)\n"
129+ "\n"
130+ " -- the following expression can appear in assignment context\n"
131+ " | Attribute(expr value, identifier attr, expr_context ctx)\n"
132+ " | Subscript(expr value, expr slice, expr_context ctx)\n"
133+ " | Starred(expr value, expr_context ctx)\n"
134+ " | Name(identifier id, expr_context ctx)\n"
135+ " | List(expr* elts, expr_context ctx)\n"
136+ " | Tuple(expr* elts, expr_context ctx)\n"
137+ "\n"
138+ " -- can appear only in Subscript\n"
139+ " | Slice(expr? lower, expr? upper, expr? step)\n"
140+ "\n"
141+ " -- col_offset is the byte offset in the utf8 string the parser uses\n"
142+ " attributes (int lineno, int col_offset, int? end_lineno, int? end_col_offset)\n"
143+ "\n"
144+ " expr_context = Load | Store | Del\n"
145+ "\n"
146+ " boolop = And | Or\n"
147+ "\n"
148+ " operator = Add | Sub | Mult | MatMult | Div | Mod | Pow | LShift\n"
149+ " | RShift | BitOr | BitXor | BitAnd | FloorDiv\n"
150+ "\n"
151+ " unaryop = Invert | Not | UAdd | USub\n"
152+ "\n"
153+ " cmpop = Eq | NotEq | Lt | LtE | Gt | GtE | Is | IsNot | In | NotIn\n"
154+ "\n"
155+ " comprehension = (expr target, expr iter, expr* ifs, int is_async)\n"
156+ "\n"
157+ " excepthandler = ExceptHandler(expr? type, identifier? name, stmt* body)\n"
158+ " attributes (int lineno, int col_offset, int? end_lineno, int? end_col_offset)\n"
159+ "\n"
160+ " arguments = (arg* posonlyargs, arg* args, arg? vararg, arg* kwonlyargs,\n"
161+ " expr?* kw_defaults, arg? kwarg, expr* defaults)\n"
162+ "\n"
163+ " arg = (identifier arg, expr? annotation, string? type_comment)\n"
164+ " attributes (int lineno, int col_offset, int? end_lineno, int? end_col_offset)\n"
165+ "\n"
166+ " -- keyword arguments supplied to call (NULL identifier for **kwargs)\n"
167+ " keyword = (identifier? arg, expr value)\n"
168+ " attributes (int lineno, int col_offset, int? end_lineno, int? end_col_offset)\n"
169+ "\n"
170+ " -- import name with optional 'as' alias.\n"
171+ " alias = (identifier name, identifier? asname)\n"
172+ " attributes (int lineno, int col_offset, int? end_lineno, int? end_col_offset)\n"
173+ "\n"
174+ " withitem = (expr context_expr, expr? optional_vars)\n"
175+ "\n"
176+ " match_case = (pattern pattern, expr? guard, stmt* body)\n"
177+ "\n"
178+ " pattern = MatchValue(expr value)\n"
179+ " | MatchSingleton(constant value)\n"
180+ " | MatchSequence(pattern* patterns)\n"
181+ " | MatchMapping(expr* keys, pattern* patterns, identifier? rest)\n"
182+ " | MatchClass(expr cls, pattern* patterns, identifier* kwd_attrs, pattern* kwd_patterns)\n"
183+ "\n"
184+ " | MatchStar(identifier? name)\n"
185+ " -- The optional \" rest\" MatchMapping parameter handles capturing extra mapping keys\n"
186+ "\n"
187+ " | MatchAs(pattern? pattern, identifier? name)\n"
188+ " | MatchOr(pattern* patterns)\n"
189+ "\n"
190+ " attributes (int lineno, int col_offset, int end_lineno, int end_col_offset)\n"
191+ "\n"
192+ " type_ignore = TypeIgnore(int lineno, string tag)\n"
193+ "\n"
194+ " type_param = TypeVar(identifier name, expr? bound, expr? default_value)\n"
195+ " | ParamSpec(identifier name, expr? default_value)\n"
196+ " | TypeVarTuple(identifier name, expr? default_value)\n"
197+ " attributes (int lineno, int col_offset, int end_lineno, int end_col_offset)\n"
198+ "}\n"
199+ msgstr ""
200+
44201msgid "Node classes"
45202msgstr ""
46203
0 commit comments