Python¶
Rules¶
1) module¶
2) _statement¶
ChoiceRule(
type="CHOICE",
members=[
SymbolRule(type="SYMBOL", name="_simple_statements"),
SymbolRule(type="SYMBOL", name="_compound_statement"),
],
)
3) _simple_statements¶
SeqRule(
type="SEQ",
members=[
SeqRule(
type="SEQ",
members=[
SymbolRule(type="SYMBOL", name="_simple_statement"),
RepeatRule(
type="REPEAT",
content=SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value=";"),
SymbolRule(
type="SYMBOL",
name="_simple_statement",
),
],
),
),
],
),
ChoiceRule(
type="CHOICE",
members=[
StringRule(type="STRING", value=";"),
BlankRule(type="BLANK"),
],
),
SymbolRule(type="SYMBOL", name="_newline"),
],
)
4) _simple_statement¶
ChoiceRule(
type="CHOICE",
members=[
SymbolRule(type="SYMBOL", name="future_import_statement"),
SymbolRule(type="SYMBOL", name="import_statement"),
SymbolRule(type="SYMBOL", name="import_from_statement"),
SymbolRule(type="SYMBOL", name="print_statement"),
SymbolRule(type="SYMBOL", name="assert_statement"),
SymbolRule(type="SYMBOL", name="expression_statement"),
SymbolRule(type="SYMBOL", name="return_statement"),
SymbolRule(type="SYMBOL", name="delete_statement"),
SymbolRule(type="SYMBOL", name="raise_statement"),
SymbolRule(type="SYMBOL", name="pass_statement"),
SymbolRule(type="SYMBOL", name="break_statement"),
SymbolRule(type="SYMBOL", name="continue_statement"),
SymbolRule(type="SYMBOL", name="global_statement"),
SymbolRule(type="SYMBOL", name="nonlocal_statement"),
SymbolRule(type="SYMBOL", name="exec_statement"),
SymbolRule(type="SYMBOL", name="type_alias_statement"),
],
)
5) import_statement¶
SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="import"),
SymbolRule(type="SYMBOL", name="_import_list"),
],
)
6) import_prefix¶
7) relative_import¶
SeqRule(
type="SEQ",
members=[
SymbolRule(type="SYMBOL", name="import_prefix"),
ChoiceRule(
type="CHOICE",
members=[
SymbolRule(type="SYMBOL", name="dotted_name"),
BlankRule(type="BLANK"),
],
),
],
)
8) future_import_statement¶
SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="from"),
StringRule(type="STRING", value="__future__"),
StringRule(type="STRING", value="import"),
ChoiceRule(
type="CHOICE",
members=[
SymbolRule(type="SYMBOL", name="_import_list"),
SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="("),
SymbolRule(
type="SYMBOL", name="_import_list"
),
StringRule(type="STRING", value=")"),
],
),
],
),
],
)
9) import_from_statement¶
SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="from"),
FieldRule(
name="module_name",
type="FIELD",
content=ChoiceRule(
type="CHOICE",
members=[
SymbolRule(type="SYMBOL", name="relative_import"),
SymbolRule(type="SYMBOL", name="dotted_name"),
],
),
),
StringRule(type="STRING", value="import"),
ChoiceRule(
type="CHOICE",
members=[
SymbolRule(type="SYMBOL", name="wildcard_import"),
SymbolRule(type="SYMBOL", name="_import_list"),
SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="("),
SymbolRule(
type="SYMBOL", name="_import_list"
),
StringRule(type="STRING", value=")"),
],
),
],
),
],
)
10) _import_list¶
SeqRule(
type="SEQ",
members=[
SeqRule(
type="SEQ",
members=[
FieldRule(
name="name",
type="FIELD",
content=ChoiceRule(
type="CHOICE",
members=[
SymbolRule(
type="SYMBOL", name="dotted_name"
),
SymbolRule(
type="SYMBOL", name="aliased_import"
),
],
),
),
RepeatRule(
type="REPEAT",
content=SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value=","),
FieldRule(
name="name",
type="FIELD",
content=ChoiceRule(
type="CHOICE",
members=[
SymbolRule(
type="SYMBOL",
name="dotted_name",
),
SymbolRule(
type="SYMBOL",
name="aliased_import",
),
],
),
),
],
),
),
],
),
ChoiceRule(
type="CHOICE",
members=[
StringRule(type="STRING", value=","),
BlankRule(type="BLANK"),
],
),
],
)
11) aliased_import¶
SeqRule(
type="SEQ",
members=[
FieldRule(
name="name",
type="FIELD",
content=SymbolRule(type="SYMBOL", name="dotted_name"),
),
StringRule(type="STRING", value="as"),
FieldRule(
name="alias",
type="FIELD",
content=SymbolRule(type="SYMBOL", name="identifier"),
),
],
)
12) wildcard_import¶
13) print_statement¶
ChoiceRule(
type="CHOICE",
members=[
PrecRule(
type="PREC",
value=1,
content=SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="print"),
SymbolRule(type="SYMBOL", name="chevron"),
RepeatRule(
type="REPEAT",
content=SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value=","),
FieldRule(
name="argument",
type="FIELD",
content=SymbolRule(
type="SYMBOL",
name="expression",
),
),
],
),
),
ChoiceRule(
type="CHOICE",
members=[
StringRule(type="STRING", value=","),
BlankRule(type="BLANK"),
],
),
],
),
),
PrecRule(
type="PREC",
value=-3,
content=PrecRule(
type="PREC_DYNAMIC",
value=-1,
content=SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="print"),
SeqRule(
type="SEQ",
members=[
FieldRule(
name="argument",
type="FIELD",
content=SymbolRule(
type="SYMBOL",
name="expression",
),
),
RepeatRule(
type="REPEAT",
content=SeqRule(
type="SEQ",
members=[
StringRule(
type="STRING",
value=",",
),
FieldRule(
name="argument",
type="FIELD",
content=SymbolRule(
type="SYMBOL",
name="expression",
),
),
],
),
),
],
),
ChoiceRule(
type="CHOICE",
members=[
StringRule(type="STRING", value=","),
BlankRule(type="BLANK"),
],
),
],
),
),
),
],
)
14) chevron¶
SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value=">>"),
SymbolRule(type="SYMBOL", name="expression"),
],
)
15) assert_statement¶
SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="assert"),
SeqRule(
type="SEQ",
members=[
SymbolRule(type="SYMBOL", name="expression"),
RepeatRule(
type="REPEAT",
content=SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value=","),
SymbolRule(
type="SYMBOL", name="expression"
),
],
),
),
],
),
],
)
16) expression_statement¶
ChoiceRule(
type="CHOICE",
members=[
SymbolRule(type="SYMBOL", name="expression"),
SeqRule(
type="SEQ",
members=[
SeqRule(
type="SEQ",
members=[
SymbolRule(type="SYMBOL", name="expression"),
RepeatRule(
type="REPEAT",
content=SeqRule(
type="SEQ",
members=[
StringRule(
type="STRING", value=","
),
SymbolRule(
type="SYMBOL",
name="expression",
),
],
),
),
],
),
ChoiceRule(
type="CHOICE",
members=[
StringRule(type="STRING", value=","),
BlankRule(type="BLANK"),
],
),
],
),
SymbolRule(type="SYMBOL", name="assignment"),
SymbolRule(type="SYMBOL", name="augmented_assignment"),
SymbolRule(type="SYMBOL", name="yield"),
],
)
17) named_expression¶
SeqRule(
type="SEQ",
members=[
FieldRule(
name="name",
type="FIELD",
content=SymbolRule(
type="SYMBOL", name="_named_expression_lhs"
),
),
StringRule(type="STRING", value=":="),
FieldRule(
name="value",
type="FIELD",
content=SymbolRule(type="SYMBOL", name="expression"),
),
],
)
18) _named_expression_lhs¶
ChoiceRule(
type="CHOICE",
members=[
SymbolRule(type="SYMBOL", name="identifier"),
SymbolRule(type="SYMBOL", name="keyword_identifier"),
],
)
19) return_statement¶
SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="return"),
ChoiceRule(
type="CHOICE",
members=[
SymbolRule(type="SYMBOL", name="_expressions"),
BlankRule(type="BLANK"),
],
),
],
)
20) delete_statement¶
SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="del"),
SymbolRule(type="SYMBOL", name="_expressions"),
],
)
21) _expressions¶
ChoiceRule(
type="CHOICE",
members=[
SymbolRule(type="SYMBOL", name="expression"),
SymbolRule(type="SYMBOL", name="expression_list"),
],
)
22) raise_statement¶
SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="raise"),
ChoiceRule(
type="CHOICE",
members=[
SymbolRule(type="SYMBOL", name="_expressions"),
BlankRule(type="BLANK"),
],
),
ChoiceRule(
type="CHOICE",
members=[
SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="from"),
FieldRule(
name="cause",
type="FIELD",
content=SymbolRule(
type="SYMBOL", name="expression"
),
),
],
),
BlankRule(type="BLANK"),
],
),
],
)
23) pass_statement¶
24) break_statement¶
25) continue_statement¶
26) _compound_statement¶
ChoiceRule(
type="CHOICE",
members=[
SymbolRule(type="SYMBOL", name="if_statement"),
SymbolRule(type="SYMBOL", name="for_statement"),
SymbolRule(type="SYMBOL", name="while_statement"),
SymbolRule(type="SYMBOL", name="try_statement"),
SymbolRule(type="SYMBOL", name="with_statement"),
SymbolRule(type="SYMBOL", name="function_definition"),
SymbolRule(type="SYMBOL", name="class_definition"),
SymbolRule(type="SYMBOL", name="decorated_definition"),
SymbolRule(type="SYMBOL", name="match_statement"),
],
)
27) if_statement¶
SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="if"),
FieldRule(
name="condition",
type="FIELD",
content=SymbolRule(type="SYMBOL", name="expression"),
),
StringRule(type="STRING", value=":"),
FieldRule(
name="consequence",
type="FIELD",
content=SymbolRule(type="SYMBOL", name="_suite"),
),
RepeatRule(
type="REPEAT",
content=FieldRule(
name="alternative",
type="FIELD",
content=SymbolRule(type="SYMBOL", name="elif_clause"),
),
),
ChoiceRule(
type="CHOICE",
members=[
FieldRule(
name="alternative",
type="FIELD",
content=SymbolRule(
type="SYMBOL", name="else_clause"
),
),
BlankRule(type="BLANK"),
],
),
],
)
28) elif_clause¶
SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="elif"),
FieldRule(
name="condition",
type="FIELD",
content=SymbolRule(type="SYMBOL", name="expression"),
),
StringRule(type="STRING", value=":"),
FieldRule(
name="consequence",
type="FIELD",
content=SymbolRule(type="SYMBOL", name="_suite"),
),
],
)
29) else_clause¶
SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="else"),
StringRule(type="STRING", value=":"),
FieldRule(
name="body",
type="FIELD",
content=SymbolRule(type="SYMBOL", name="_suite"),
),
],
)
30) match_statement¶
SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="match"),
SeqRule(
type="SEQ",
members=[
FieldRule(
name="subject",
type="FIELD",
content=SymbolRule(
type="SYMBOL", name="expression"
),
),
RepeatRule(
type="REPEAT",
content=SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value=","),
FieldRule(
name="subject",
type="FIELD",
content=SymbolRule(
type="SYMBOL", name="expression"
),
),
],
),
),
],
),
ChoiceRule(
type="CHOICE",
members=[
StringRule(type="STRING", value=","),
BlankRule(type="BLANK"),
],
),
StringRule(type="STRING", value=":"),
FieldRule(
name="body",
type="FIELD",
content=AliasRule(
type="ALIAS",
value="block",
named=True,
content=SymbolRule(
type="SYMBOL", name="_match_block"
),
),
),
],
)
31) _match_block¶
ChoiceRule(
type="CHOICE",
members=[
SeqRule(
type="SEQ",
members=[
SymbolRule(type="SYMBOL", name="_indent"),
RepeatRule(
type="REPEAT",
content=FieldRule(
name="alternative",
type="FIELD",
content=SymbolRule(
type="SYMBOL", name="case_clause"
),
),
),
SymbolRule(type="SYMBOL", name="_dedent"),
],
),
SymbolRule(type="SYMBOL", name="_newline"),
],
)
32) case_clause¶
SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="case"),
SeqRule(
type="SEQ",
members=[
SymbolRule(type="SYMBOL", name="case_pattern"),
RepeatRule(
type="REPEAT",
content=SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value=","),
SymbolRule(
type="SYMBOL", name="case_pattern"
),
],
),
),
],
),
ChoiceRule(
type="CHOICE",
members=[
StringRule(type="STRING", value=","),
BlankRule(type="BLANK"),
],
),
ChoiceRule(
type="CHOICE",
members=[
FieldRule(
name="guard",
type="FIELD",
content=SymbolRule(
type="SYMBOL", name="if_clause"
),
),
BlankRule(type="BLANK"),
],
),
StringRule(type="STRING", value=":"),
FieldRule(
name="consequence",
type="FIELD",
content=SymbolRule(type="SYMBOL", name="_suite"),
),
],
)
33) for_statement¶
SeqRule(
type="SEQ",
members=[
ChoiceRule(
type="CHOICE",
members=[
StringRule(type="STRING", value="async"),
BlankRule(type="BLANK"),
],
),
StringRule(type="STRING", value="for"),
FieldRule(
name="left",
type="FIELD",
content=SymbolRule(type="SYMBOL", name="_left_hand_side"),
),
StringRule(type="STRING", value="in"),
FieldRule(
name="right",
type="FIELD",
content=SymbolRule(type="SYMBOL", name="_expressions"),
),
StringRule(type="STRING", value=":"),
FieldRule(
name="body",
type="FIELD",
content=SymbolRule(type="SYMBOL", name="_suite"),
),
FieldRule(
name="alternative",
type="FIELD",
content=ChoiceRule(
type="CHOICE",
members=[
SymbolRule(type="SYMBOL", name="else_clause"),
BlankRule(type="BLANK"),
],
),
),
],
)
34) while_statement¶
SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="while"),
FieldRule(
name="condition",
type="FIELD",
content=SymbolRule(type="SYMBOL", name="expression"),
),
StringRule(type="STRING", value=":"),
FieldRule(
name="body",
type="FIELD",
content=SymbolRule(type="SYMBOL", name="_suite"),
),
ChoiceRule(
type="CHOICE",
members=[
FieldRule(
name="alternative",
type="FIELD",
content=SymbolRule(
type="SYMBOL", name="else_clause"
),
),
BlankRule(type="BLANK"),
],
),
],
)
35) try_statement¶
SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="try"),
StringRule(type="STRING", value=":"),
FieldRule(
name="body",
type="FIELD",
content=SymbolRule(type="SYMBOL", name="_suite"),
),
ChoiceRule(
type="CHOICE",
members=[
SeqRule(
type="SEQ",
members=[
Repeat1Rule(
type="REPEAT1",
content=SymbolRule(
type="SYMBOL", name="except_clause"
),
),
ChoiceRule(
type="CHOICE",
members=[
SymbolRule(
type="SYMBOL", name="else_clause"
),
BlankRule(type="BLANK"),
],
),
ChoiceRule(
type="CHOICE",
members=[
SymbolRule(
type="SYMBOL",
name="finally_clause",
),
BlankRule(type="BLANK"),
],
),
],
),
SeqRule(
type="SEQ",
members=[
Repeat1Rule(
type="REPEAT1",
content=SymbolRule(
type="SYMBOL",
name="except_group_clause",
),
),
ChoiceRule(
type="CHOICE",
members=[
SymbolRule(
type="SYMBOL", name="else_clause"
),
BlankRule(type="BLANK"),
],
),
ChoiceRule(
type="CHOICE",
members=[
SymbolRule(
type="SYMBOL",
name="finally_clause",
),
BlankRule(type="BLANK"),
],
),
],
),
SymbolRule(type="SYMBOL", name="finally_clause"),
],
),
],
)
36) except_clause¶
SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="except"),
ChoiceRule(
type="CHOICE",
members=[
SeqRule(
type="SEQ",
members=[
SymbolRule(type="SYMBOL", name="expression"),
ChoiceRule(
type="CHOICE",
members=[
SeqRule(
type="SEQ",
members=[
ChoiceRule(
type="CHOICE",
members=[
StringRule(
type="STRING",
value="as",
),
StringRule(
type="STRING",
value=",",
),
],
),
SymbolRule(
type="SYMBOL",
name="expression",
),
],
),
BlankRule(type="BLANK"),
],
),
],
),
BlankRule(type="BLANK"),
],
),
StringRule(type="STRING", value=":"),
SymbolRule(type="SYMBOL", name="_suite"),
],
)
37) except_group_clause¶
SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="except*"),
SeqRule(
type="SEQ",
members=[
SymbolRule(type="SYMBOL", name="expression"),
ChoiceRule(
type="CHOICE",
members=[
SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="as"),
SymbolRule(
type="SYMBOL", name="expression"
),
],
),
BlankRule(type="BLANK"),
],
),
],
),
StringRule(type="STRING", value=":"),
SymbolRule(type="SYMBOL", name="_suite"),
],
)
38) finally_clause¶
SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="finally"),
StringRule(type="STRING", value=":"),
SymbolRule(type="SYMBOL", name="_suite"),
],
)
39) with_statement¶
SeqRule(
type="SEQ",
members=[
ChoiceRule(
type="CHOICE",
members=[
StringRule(type="STRING", value="async"),
BlankRule(type="BLANK"),
],
),
StringRule(type="STRING", value="with"),
SymbolRule(type="SYMBOL", name="with_clause"),
StringRule(type="STRING", value=":"),
FieldRule(
name="body",
type="FIELD",
content=SymbolRule(type="SYMBOL", name="_suite"),
),
],
)
40) with_clause¶
ChoiceRule(
type="CHOICE",
members=[
SeqRule(
type="SEQ",
members=[
SeqRule(
type="SEQ",
members=[
SymbolRule(type="SYMBOL", name="with_item"),
RepeatRule(
type="REPEAT",
content=SeqRule(
type="SEQ",
members=[
StringRule(
type="STRING", value=","
),
SymbolRule(
type="SYMBOL",
name="with_item",
),
],
),
),
],
),
ChoiceRule(
type="CHOICE",
members=[
StringRule(type="STRING", value=","),
BlankRule(type="BLANK"),
],
),
],
),
SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="("),
SeqRule(
type="SEQ",
members=[
SymbolRule(type="SYMBOL", name="with_item"),
RepeatRule(
type="REPEAT",
content=SeqRule(
type="SEQ",
members=[
StringRule(
type="STRING", value=","
),
SymbolRule(
type="SYMBOL",
name="with_item",
),
],
),
),
],
),
ChoiceRule(
type="CHOICE",
members=[
StringRule(type="STRING", value=","),
BlankRule(type="BLANK"),
],
),
StringRule(type="STRING", value=")"),
],
),
],
)
41) with_item¶
PrecRule(
type="PREC_DYNAMIC",
value=1,
content=SeqRule(
type="SEQ",
members=[
FieldRule(
name="value",
type="FIELD",
content=SymbolRule(type="SYMBOL", name="expression"),
)
],
),
)
42) function_definition¶
SeqRule(
type="SEQ",
members=[
ChoiceRule(
type="CHOICE",
members=[
StringRule(type="STRING", value="async"),
BlankRule(type="BLANK"),
],
),
StringRule(type="STRING", value="def"),
FieldRule(
name="name",
type="FIELD",
content=SymbolRule(type="SYMBOL", name="identifier"),
),
FieldRule(
name="type_parameters",
type="FIELD",
content=ChoiceRule(
type="CHOICE",
members=[
SymbolRule(type="SYMBOL", name="type_parameter"),
BlankRule(type="BLANK"),
],
),
),
FieldRule(
name="parameters",
type="FIELD",
content=SymbolRule(type="SYMBOL", name="parameters"),
),
ChoiceRule(
type="CHOICE",
members=[
SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="->"),
FieldRule(
name="return_type",
type="FIELD",
content=SymbolRule(
type="SYMBOL", name="type"
),
),
],
),
BlankRule(type="BLANK"),
],
),
StringRule(type="STRING", value=":"),
FieldRule(
name="body",
type="FIELD",
content=SymbolRule(type="SYMBOL", name="_suite"),
),
],
)
43) parameters¶
SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="("),
ChoiceRule(
type="CHOICE",
members=[
SymbolRule(type="SYMBOL", name="_parameters"),
BlankRule(type="BLANK"),
],
),
StringRule(type="STRING", value=")"),
],
)
44) lambda_parameters¶
45) list_splat¶
SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="*"),
SymbolRule(type="SYMBOL", name="expression"),
],
)
46) dictionary_splat¶
SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="**"),
SymbolRule(type="SYMBOL", name="expression"),
],
)
47) global_statement¶
SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="global"),
SeqRule(
type="SEQ",
members=[
SymbolRule(type="SYMBOL", name="identifier"),
RepeatRule(
type="REPEAT",
content=SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value=","),
SymbolRule(
type="SYMBOL", name="identifier"
),
],
),
),
],
),
],
)
48) nonlocal_statement¶
SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="nonlocal"),
SeqRule(
type="SEQ",
members=[
SymbolRule(type="SYMBOL", name="identifier"),
RepeatRule(
type="REPEAT",
content=SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value=","),
SymbolRule(
type="SYMBOL", name="identifier"
),
],
),
),
],
),
],
)
49) exec_statement¶
SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="exec"),
FieldRule(
name="code",
type="FIELD",
content=ChoiceRule(
type="CHOICE",
members=[
SymbolRule(type="SYMBOL", name="string"),
SymbolRule(type="SYMBOL", name="identifier"),
],
),
),
ChoiceRule(
type="CHOICE",
members=[
SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="in"),
SeqRule(
type="SEQ",
members=[
SymbolRule(
type="SYMBOL", name="expression"
),
RepeatRule(
type="REPEAT",
content=SeqRule(
type="SEQ",
members=[
StringRule(
type="STRING",
value=",",
),
SymbolRule(
type="SYMBOL",
name="expression",
),
],
),
),
],
),
],
),
BlankRule(type="BLANK"),
],
),
],
)
50) type_alias_statement¶
PrecRule(
type="PREC_DYNAMIC",
value=1,
content=SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="type"),
SymbolRule(type="SYMBOL", name="type"),
StringRule(type="STRING", value="="),
SymbolRule(type="SYMBOL", name="type"),
],
),
)
51) class_definition¶
SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="class"),
FieldRule(
name="name",
type="FIELD",
content=SymbolRule(type="SYMBOL", name="identifier"),
),
FieldRule(
name="type_parameters",
type="FIELD",
content=ChoiceRule(
type="CHOICE",
members=[
SymbolRule(type="SYMBOL", name="type_parameter"),
BlankRule(type="BLANK"),
],
),
),
FieldRule(
name="superclasses",
type="FIELD",
content=ChoiceRule(
type="CHOICE",
members=[
SymbolRule(type="SYMBOL", name="argument_list"),
BlankRule(type="BLANK"),
],
),
),
StringRule(type="STRING", value=":"),
FieldRule(
name="body",
type="FIELD",
content=SymbolRule(type="SYMBOL", name="_suite"),
),
],
)
52) type_parameter¶
SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="["),
SeqRule(
type="SEQ",
members=[
SymbolRule(type="SYMBOL", name="type"),
RepeatRule(
type="REPEAT",
content=SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value=","),
SymbolRule(type="SYMBOL", name="type"),
],
),
),
],
),
ChoiceRule(
type="CHOICE",
members=[
StringRule(type="STRING", value=","),
BlankRule(type="BLANK"),
],
),
StringRule(type="STRING", value="]"),
],
)
53) parenthesized_list_splat¶
PrecRule(
type="PREC",
value=1,
content=SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="("),
ChoiceRule(
type="CHOICE",
members=[
AliasRule(
type="ALIAS",
value="parenthesized_expression",
named=True,
content=SymbolRule(
type="SYMBOL",
name="parenthesized_list_splat",
),
),
SymbolRule(type="SYMBOL", name="list_splat"),
],
),
StringRule(type="STRING", value=")"),
],
),
)
54) argument_list¶
SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="("),
ChoiceRule(
type="CHOICE",
members=[
SeqRule(
type="SEQ",
members=[
ChoiceRule(
type="CHOICE",
members=[
SymbolRule(
type="SYMBOL", name="expression"
),
SymbolRule(
type="SYMBOL", name="list_splat"
),
SymbolRule(
type="SYMBOL",
name="dictionary_splat",
),
AliasRule(
type="ALIAS",
value="parenthesized_expression",
named=True,
content=SymbolRule(
type="SYMBOL",
name="parenthesized_list_splat",
),
),
SymbolRule(
type="SYMBOL",
name="keyword_argument",
),
],
),
RepeatRule(
type="REPEAT",
content=SeqRule(
type="SEQ",
members=[
StringRule(
type="STRING", value=","
),
ChoiceRule(
type="CHOICE",
members=[
SymbolRule(
type="SYMBOL",
name="expression",
),
SymbolRule(
type="SYMBOL",
name="list_splat",
),
SymbolRule(
type="SYMBOL",
name="dictionary_splat",
),
AliasRule(
type="ALIAS",
value="parenthesized_expression",
named=True,
content=SymbolRule(
type="SYMBOL",
name="parenthesized_list_splat",
),
),
SymbolRule(
type="SYMBOL",
name="keyword_argument",
),
],
),
],
),
),
],
),
BlankRule(type="BLANK"),
],
),
ChoiceRule(
type="CHOICE",
members=[
StringRule(type="STRING", value=","),
BlankRule(type="BLANK"),
],
),
StringRule(type="STRING", value=")"),
],
)
55) decorated_definition¶
SeqRule(
type="SEQ",
members=[
Repeat1Rule(
type="REPEAT1",
content=SymbolRule(type="SYMBOL", name="decorator"),
),
FieldRule(
name="definition",
type="FIELD",
content=ChoiceRule(
type="CHOICE",
members=[
SymbolRule(
type="SYMBOL", name="class_definition"
),
SymbolRule(
type="SYMBOL", name="function_definition"
),
],
),
),
],
)
56) decorator¶
SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="@"),
SymbolRule(type="SYMBOL", name="expression"),
SymbolRule(type="SYMBOL", name="_newline"),
],
)
57) _suite¶
ChoiceRule(
type="CHOICE",
members=[
AliasRule(
type="ALIAS",
value="block",
named=True,
content=SymbolRule(
type="SYMBOL", name="_simple_statements"
),
),
SeqRule(
type="SEQ",
members=[
SymbolRule(type="SYMBOL", name="_indent"),
SymbolRule(type="SYMBOL", name="block"),
],
),
AliasRule(
type="ALIAS",
value="block",
named=True,
content=SymbolRule(type="SYMBOL", name="_newline"),
),
],
)
58) block¶
SeqRule(
type="SEQ",
members=[
RepeatRule(
type="REPEAT",
content=SymbolRule(type="SYMBOL", name="_statement"),
),
SymbolRule(type="SYMBOL", name="_dedent"),
],
)
59) expression_list¶
PrecRule(
type="PREC_RIGHT",
value=0,
content=SeqRule(
type="SEQ",
members=[
SymbolRule(type="SYMBOL", name="expression"),
ChoiceRule(
type="CHOICE",
members=[
StringRule(type="STRING", value=","),
SeqRule(
type="SEQ",
members=[
Repeat1Rule(
type="REPEAT1",
content=SeqRule(
type="SEQ",
members=[
StringRule(
type="STRING", value=","
),
SymbolRule(
type="SYMBOL",
name="expression",
),
],
),
),
ChoiceRule(
type="CHOICE",
members=[
StringRule(
type="STRING", value=","
),
BlankRule(type="BLANK"),
],
),
],
),
],
),
],
),
)
60) dotted_name¶
PrecRule(
type="PREC",
value=1,
content=SeqRule(
type="SEQ",
members=[
SymbolRule(type="SYMBOL", name="identifier"),
RepeatRule(
type="REPEAT",
content=SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="."),
SymbolRule(type="SYMBOL", name="identifier"),
],
),
),
],
),
)
61) case_pattern¶
PrecRule(
type="PREC",
value=1,
content=ChoiceRule(
type="CHOICE",
members=[
AliasRule(
type="ALIAS",
value="as_pattern",
named=True,
content=SymbolRule(type="SYMBOL", name="_as_pattern"),
),
SymbolRule(type="SYMBOL", name="keyword_pattern"),
SymbolRule(type="SYMBOL", name="_simple_pattern"),
],
),
)
62) _simple_pattern¶
PrecRule(
type="PREC",
value=1,
content=ChoiceRule(
type="CHOICE",
members=[
SymbolRule(type="SYMBOL", name="class_pattern"),
SymbolRule(type="SYMBOL", name="splat_pattern"),
SymbolRule(type="SYMBOL", name="union_pattern"),
AliasRule(
type="ALIAS",
value="list_pattern",
named=True,
content=SymbolRule(
type="SYMBOL", name="_list_pattern"
),
),
AliasRule(
type="ALIAS",
value="tuple_pattern",
named=True,
content=SymbolRule(
type="SYMBOL", name="_tuple_pattern"
),
),
SymbolRule(type="SYMBOL", name="dict_pattern"),
SymbolRule(type="SYMBOL", name="string"),
SymbolRule(type="SYMBOL", name="concatenated_string"),
SymbolRule(type="SYMBOL", name="true"),
SymbolRule(type="SYMBOL", name="false"),
SymbolRule(type="SYMBOL", name="none"),
SeqRule(
type="SEQ",
members=[
ChoiceRule(
type="CHOICE",
members=[
StringRule(type="STRING", value="-"),
BlankRule(type="BLANK"),
],
),
ChoiceRule(
type="CHOICE",
members=[
SymbolRule(type="SYMBOL", name="integer"),
SymbolRule(type="SYMBOL", name="float"),
],
),
],
),
SymbolRule(type="SYMBOL", name="complex_pattern"),
SymbolRule(type="SYMBOL", name="dotted_name"),
StringRule(type="STRING", value="_"),
],
),
)
63) _as_pattern¶
SeqRule(
type="SEQ",
members=[
SymbolRule(type="SYMBOL", name="case_pattern"),
StringRule(type="STRING", value="as"),
SymbolRule(type="SYMBOL", name="identifier"),
],
)
64) union_pattern¶
PrecRule(
type="PREC_RIGHT",
value=0,
content=SeqRule(
type="SEQ",
members=[
SymbolRule(type="SYMBOL", name="_simple_pattern"),
Repeat1Rule(
type="REPEAT1",
content=PrecRule(
type="PREC_LEFT",
value=0,
content=SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="|"),
SymbolRule(
type="SYMBOL", name="_simple_pattern"
),
],
),
),
),
],
),
)
65) _list_pattern¶
SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="["),
ChoiceRule(
type="CHOICE",
members=[
SeqRule(
type="SEQ",
members=[
SeqRule(
type="SEQ",
members=[
SymbolRule(
type="SYMBOL", name="case_pattern"
),
RepeatRule(
type="REPEAT",
content=SeqRule(
type="SEQ",
members=[
StringRule(
type="STRING",
value=",",
),
SymbolRule(
type="SYMBOL",
name="case_pattern",
),
],
),
),
],
),
ChoiceRule(
type="CHOICE",
members=[
StringRule(type="STRING", value=","),
BlankRule(type="BLANK"),
],
),
],
),
BlankRule(type="BLANK"),
],
),
StringRule(type="STRING", value="]"),
],
)
66) _tuple_pattern¶
SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="("),
ChoiceRule(
type="CHOICE",
members=[
SeqRule(
type="SEQ",
members=[
SeqRule(
type="SEQ",
members=[
SymbolRule(
type="SYMBOL", name="case_pattern"
),
RepeatRule(
type="REPEAT",
content=SeqRule(
type="SEQ",
members=[
StringRule(
type="STRING",
value=",",
),
SymbolRule(
type="SYMBOL",
name="case_pattern",
),
],
),
),
],
),
ChoiceRule(
type="CHOICE",
members=[
StringRule(type="STRING", value=","),
BlankRule(type="BLANK"),
],
),
],
),
BlankRule(type="BLANK"),
],
),
StringRule(type="STRING", value=")"),
],
)
67) dict_pattern¶
SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="{"),
ChoiceRule(
type="CHOICE",
members=[
SeqRule(
type="SEQ",
members=[
SeqRule(
type="SEQ",
members=[
ChoiceRule(
type="CHOICE",
members=[
SymbolRule(
type="SYMBOL",
name="_key_value_pattern",
),
SymbolRule(
type="SYMBOL",
name="splat_pattern",
),
],
),
RepeatRule(
type="REPEAT",
content=SeqRule(
type="SEQ",
members=[
StringRule(
type="STRING",
value=",",
),
ChoiceRule(
type="CHOICE",
members=[
SymbolRule(
type="SYMBOL",
name="_key_value_pattern",
),
SymbolRule(
type="SYMBOL",
name="splat_pattern",
),
],
),
],
),
),
],
),
ChoiceRule(
type="CHOICE",
members=[
StringRule(type="STRING", value=","),
BlankRule(type="BLANK"),
],
),
],
),
BlankRule(type="BLANK"),
],
),
StringRule(type="STRING", value="}"),
],
)
68) _key_value_pattern¶
SeqRule(
type="SEQ",
members=[
FieldRule(
name="key",
type="FIELD",
content=SymbolRule(type="SYMBOL", name="_simple_pattern"),
),
StringRule(type="STRING", value=":"),
FieldRule(
name="value",
type="FIELD",
content=SymbolRule(type="SYMBOL", name="case_pattern"),
),
],
)
69) keyword_pattern¶
SeqRule(
type="SEQ",
members=[
SymbolRule(type="SYMBOL", name="identifier"),
StringRule(type="STRING", value="="),
SymbolRule(type="SYMBOL", name="_simple_pattern"),
],
)
70) splat_pattern¶
PrecRule(
type="PREC",
value=1,
content=SeqRule(
type="SEQ",
members=[
ChoiceRule(
type="CHOICE",
members=[
StringRule(type="STRING", value="*"),
StringRule(type="STRING", value="**"),
],
),
ChoiceRule(
type="CHOICE",
members=[
SymbolRule(type="SYMBOL", name="identifier"),
StringRule(type="STRING", value="_"),
],
),
],
),
)
71) class_pattern¶
SeqRule(
type="SEQ",
members=[
SymbolRule(type="SYMBOL", name="dotted_name"),
StringRule(type="STRING", value="("),
ChoiceRule(
type="CHOICE",
members=[
SeqRule(
type="SEQ",
members=[
SeqRule(
type="SEQ",
members=[
SymbolRule(
type="SYMBOL", name="case_pattern"
),
RepeatRule(
type="REPEAT",
content=SeqRule(
type="SEQ",
members=[
StringRule(
type="STRING",
value=",",
),
SymbolRule(
type="SYMBOL",
name="case_pattern",
),
],
),
),
],
),
ChoiceRule(
type="CHOICE",
members=[
StringRule(type="STRING", value=","),
BlankRule(type="BLANK"),
],
),
],
),
BlankRule(type="BLANK"),
],
),
StringRule(type="STRING", value=")"),
],
)
72) complex_pattern¶
PrecRule(
type="PREC",
value=1,
content=SeqRule(
type="SEQ",
members=[
ChoiceRule(
type="CHOICE",
members=[
StringRule(type="STRING", value="-"),
BlankRule(type="BLANK"),
],
),
ChoiceRule(
type="CHOICE",
members=[
SymbolRule(type="SYMBOL", name="integer"),
SymbolRule(type="SYMBOL", name="float"),
],
),
ChoiceRule(
type="CHOICE",
members=[
StringRule(type="STRING", value="+"),
StringRule(type="STRING", value="-"),
],
),
ChoiceRule(
type="CHOICE",
members=[
SymbolRule(type="SYMBOL", name="integer"),
SymbolRule(type="SYMBOL", name="float"),
],
),
],
),
)
73) _parameters¶
SeqRule(
type="SEQ",
members=[
SeqRule(
type="SEQ",
members=[
SymbolRule(type="SYMBOL", name="parameter"),
RepeatRule(
type="REPEAT",
content=SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value=","),
SymbolRule(
type="SYMBOL", name="parameter"
),
],
),
),
],
),
ChoiceRule(
type="CHOICE",
members=[
StringRule(type="STRING", value=","),
BlankRule(type="BLANK"),
],
),
],
)
74) _patterns¶
SeqRule(
type="SEQ",
members=[
SeqRule(
type="SEQ",
members=[
SymbolRule(type="SYMBOL", name="pattern"),
RepeatRule(
type="REPEAT",
content=SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value=","),
SymbolRule(type="SYMBOL", name="pattern"),
],
),
),
],
),
ChoiceRule(
type="CHOICE",
members=[
StringRule(type="STRING", value=","),
BlankRule(type="BLANK"),
],
),
],
)
75) parameter¶
ChoiceRule(
type="CHOICE",
members=[
SymbolRule(type="SYMBOL", name="identifier"),
SymbolRule(type="SYMBOL", name="typed_parameter"),
SymbolRule(type="SYMBOL", name="default_parameter"),
SymbolRule(type="SYMBOL", name="typed_default_parameter"),
SymbolRule(type="SYMBOL", name="list_splat_pattern"),
SymbolRule(type="SYMBOL", name="tuple_pattern"),
SymbolRule(type="SYMBOL", name="keyword_separator"),
SymbolRule(type="SYMBOL", name="positional_separator"),
SymbolRule(type="SYMBOL", name="dictionary_splat_pattern"),
],
)
76) pattern¶
ChoiceRule(
type="CHOICE",
members=[
SymbolRule(type="SYMBOL", name="identifier"),
SymbolRule(type="SYMBOL", name="keyword_identifier"),
SymbolRule(type="SYMBOL", name="subscript"),
SymbolRule(type="SYMBOL", name="attribute"),
SymbolRule(type="SYMBOL", name="list_splat_pattern"),
SymbolRule(type="SYMBOL", name="tuple_pattern"),
SymbolRule(type="SYMBOL", name="list_pattern"),
],
)
77) tuple_pattern¶
SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="("),
ChoiceRule(
type="CHOICE",
members=[
SymbolRule(type="SYMBOL", name="_patterns"),
BlankRule(type="BLANK"),
],
),
StringRule(type="STRING", value=")"),
],
)
78) list_pattern¶
SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="["),
ChoiceRule(
type="CHOICE",
members=[
SymbolRule(type="SYMBOL", name="_patterns"),
BlankRule(type="BLANK"),
],
),
StringRule(type="STRING", value="]"),
],
)
79) default_parameter¶
SeqRule(
type="SEQ",
members=[
FieldRule(
name="name",
type="FIELD",
content=ChoiceRule(
type="CHOICE",
members=[
SymbolRule(type="SYMBOL", name="identifier"),
SymbolRule(type="SYMBOL", name="tuple_pattern"),
],
),
),
StringRule(type="STRING", value="="),
FieldRule(
name="value",
type="FIELD",
content=SymbolRule(type="SYMBOL", name="expression"),
),
],
)
80) typed_default_parameter¶
PrecRule(
type="PREC",
value=-1,
content=SeqRule(
type="SEQ",
members=[
FieldRule(
name="name",
type="FIELD",
content=SymbolRule(type="SYMBOL", name="identifier"),
),
StringRule(type="STRING", value=":"),
FieldRule(
name="type",
type="FIELD",
content=SymbolRule(type="SYMBOL", name="type"),
),
StringRule(type="STRING", value="="),
FieldRule(
name="value",
type="FIELD",
content=SymbolRule(type="SYMBOL", name="expression"),
),
],
),
)
81) list_splat_pattern¶
SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="*"),
ChoiceRule(
type="CHOICE",
members=[
SymbolRule(type="SYMBOL", name="identifier"),
SymbolRule(type="SYMBOL", name="keyword_identifier"),
SymbolRule(type="SYMBOL", name="subscript"),
SymbolRule(type="SYMBOL", name="attribute"),
],
),
],
)
82) dictionary_splat_pattern¶
SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="**"),
ChoiceRule(
type="CHOICE",
members=[
SymbolRule(type="SYMBOL", name="identifier"),
SymbolRule(type="SYMBOL", name="keyword_identifier"),
SymbolRule(type="SYMBOL", name="subscript"),
SymbolRule(type="SYMBOL", name="attribute"),
],
),
],
)
83) as_pattern¶
PrecRule(
type="PREC_LEFT",
value=0,
content=SeqRule(
type="SEQ",
members=[
SymbolRule(type="SYMBOL", name="expression"),
StringRule(type="STRING", value="as"),
FieldRule(
name="alias",
type="FIELD",
content=AliasRule(
type="ALIAS",
value="as_pattern_target",
named=True,
content=SymbolRule(
type="SYMBOL", name="expression"
),
),
),
],
),
)
84) _expression_within_for_in_clause¶
ChoiceRule(
type="CHOICE",
members=[
SymbolRule(type="SYMBOL", name="expression"),
AliasRule(
type="ALIAS",
value="lambda",
named=True,
content=SymbolRule(
type="SYMBOL", name="lambda_within_for_in_clause"
),
),
],
)
85) expression¶
ChoiceRule(
type="CHOICE",
members=[
SymbolRule(type="SYMBOL", name="comparison_operator"),
SymbolRule(type="SYMBOL", name="not_operator"),
SymbolRule(type="SYMBOL", name="boolean_operator"),
SymbolRule(type="SYMBOL", name="lambda"),
SymbolRule(type="SYMBOL", name="primary_expression"),
SymbolRule(type="SYMBOL", name="conditional_expression"),
SymbolRule(type="SYMBOL", name="named_expression"),
SymbolRule(type="SYMBOL", name="as_pattern"),
],
)
86) primary_expression¶
ChoiceRule(
type="CHOICE",
members=[
SymbolRule(type="SYMBOL", name="await"),
SymbolRule(type="SYMBOL", name="binary_operator"),
SymbolRule(type="SYMBOL", name="identifier"),
SymbolRule(type="SYMBOL", name="keyword_identifier"),
SymbolRule(type="SYMBOL", name="string"),
SymbolRule(type="SYMBOL", name="concatenated_string"),
SymbolRule(type="SYMBOL", name="integer"),
SymbolRule(type="SYMBOL", name="float"),
SymbolRule(type="SYMBOL", name="true"),
SymbolRule(type="SYMBOL", name="false"),
SymbolRule(type="SYMBOL", name="none"),
SymbolRule(type="SYMBOL", name="unary_operator"),
SymbolRule(type="SYMBOL", name="attribute"),
SymbolRule(type="SYMBOL", name="subscript"),
SymbolRule(type="SYMBOL", name="call"),
SymbolRule(type="SYMBOL", name="list"),
SymbolRule(type="SYMBOL", name="list_comprehension"),
SymbolRule(type="SYMBOL", name="dictionary"),
SymbolRule(type="SYMBOL", name="dictionary_comprehension"),
SymbolRule(type="SYMBOL", name="set"),
SymbolRule(type="SYMBOL", name="set_comprehension"),
SymbolRule(type="SYMBOL", name="tuple"),
SymbolRule(type="SYMBOL", name="parenthesized_expression"),
SymbolRule(type="SYMBOL", name="generator_expression"),
SymbolRule(type="SYMBOL", name="ellipsis"),
AliasRule(
type="ALIAS",
value="list_splat",
named=True,
content=SymbolRule(
type="SYMBOL", name="list_splat_pattern"
),
),
],
)
87) not_operator¶
PrecRule(
type="PREC",
value=12,
content=SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="not"),
FieldRule(
name="argument",
type="FIELD",
content=SymbolRule(type="SYMBOL", name="expression"),
),
],
),
)
88) boolean_operator¶
ChoiceRule(
type="CHOICE",
members=[
PrecRule(
type="PREC_LEFT",
value=11,
content=SeqRule(
type="SEQ",
members=[
FieldRule(
name="left",
type="FIELD",
content=SymbolRule(
type="SYMBOL", name="expression"
),
),
FieldRule(
name="operator",
type="FIELD",
content=StringRule(
type="STRING", value="and"
),
),
FieldRule(
name="right",
type="FIELD",
content=SymbolRule(
type="SYMBOL", name="expression"
),
),
],
),
),
PrecRule(
type="PREC_LEFT",
value=10,
content=SeqRule(
type="SEQ",
members=[
FieldRule(
name="left",
type="FIELD",
content=SymbolRule(
type="SYMBOL", name="expression"
),
),
FieldRule(
name="operator",
type="FIELD",
content=StringRule(type="STRING", value="or"),
),
FieldRule(
name="right",
type="FIELD",
content=SymbolRule(
type="SYMBOL", name="expression"
),
),
],
),
),
],
)
89) binary_operator¶
ChoiceRule(
type="CHOICE",
members=[
PrecRule(
type="PREC_LEFT",
value=18,
content=SeqRule(
type="SEQ",
members=[
FieldRule(
name="left",
type="FIELD",
content=SymbolRule(
type="SYMBOL", name="primary_expression"
),
),
FieldRule(
name="operator",
type="FIELD",
content=StringRule(type="STRING", value="+"),
),
FieldRule(
name="right",
type="FIELD",
content=SymbolRule(
type="SYMBOL", name="primary_expression"
),
),
],
),
),
PrecRule(
type="PREC_LEFT",
value=18,
content=SeqRule(
type="SEQ",
members=[
FieldRule(
name="left",
type="FIELD",
content=SymbolRule(
type="SYMBOL", name="primary_expression"
),
),
FieldRule(
name="operator",
type="FIELD",
content=StringRule(type="STRING", value="-"),
),
FieldRule(
name="right",
type="FIELD",
content=SymbolRule(
type="SYMBOL", name="primary_expression"
),
),
],
),
),
PrecRule(
type="PREC_LEFT",
value=19,
content=SeqRule(
type="SEQ",
members=[
FieldRule(
name="left",
type="FIELD",
content=SymbolRule(
type="SYMBOL", name="primary_expression"
),
),
FieldRule(
name="operator",
type="FIELD",
content=StringRule(type="STRING", value="*"),
),
FieldRule(
name="right",
type="FIELD",
content=SymbolRule(
type="SYMBOL", name="primary_expression"
),
),
],
),
),
PrecRule(
type="PREC_LEFT",
value=19,
content=SeqRule(
type="SEQ",
members=[
FieldRule(
name="left",
type="FIELD",
content=SymbolRule(
type="SYMBOL", name="primary_expression"
),
),
FieldRule(
name="operator",
type="FIELD",
content=StringRule(type="STRING", value="@"),
),
FieldRule(
name="right",
type="FIELD",
content=SymbolRule(
type="SYMBOL", name="primary_expression"
),
),
],
),
),
PrecRule(
type="PREC_LEFT",
value=19,
content=SeqRule(
type="SEQ",
members=[
FieldRule(
name="left",
type="FIELD",
content=SymbolRule(
type="SYMBOL", name="primary_expression"
),
),
FieldRule(
name="operator",
type="FIELD",
content=StringRule(type="STRING", value="/"),
),
FieldRule(
name="right",
type="FIELD",
content=SymbolRule(
type="SYMBOL", name="primary_expression"
),
),
],
),
),
PrecRule(
type="PREC_LEFT",
value=19,
content=SeqRule(
type="SEQ",
members=[
FieldRule(
name="left",
type="FIELD",
content=SymbolRule(
type="SYMBOL", name="primary_expression"
),
),
FieldRule(
name="operator",
type="FIELD",
content=StringRule(type="STRING", value="%"),
),
FieldRule(
name="right",
type="FIELD",
content=SymbolRule(
type="SYMBOL", name="primary_expression"
),
),
],
),
),
PrecRule(
type="PREC_LEFT",
value=19,
content=SeqRule(
type="SEQ",
members=[
FieldRule(
name="left",
type="FIELD",
content=SymbolRule(
type="SYMBOL", name="primary_expression"
),
),
FieldRule(
name="operator",
type="FIELD",
content=StringRule(type="STRING", value="//"),
),
FieldRule(
name="right",
type="FIELD",
content=SymbolRule(
type="SYMBOL", name="primary_expression"
),
),
],
),
),
PrecRule(
type="PREC_RIGHT",
value=21,
content=SeqRule(
type="SEQ",
members=[
FieldRule(
name="left",
type="FIELD",
content=SymbolRule(
type="SYMBOL", name="primary_expression"
),
),
FieldRule(
name="operator",
type="FIELD",
content=StringRule(type="STRING", value="**"),
),
FieldRule(
name="right",
type="FIELD",
content=SymbolRule(
type="SYMBOL", name="primary_expression"
),
),
],
),
),
PrecRule(
type="PREC_LEFT",
value=14,
content=SeqRule(
type="SEQ",
members=[
FieldRule(
name="left",
type="FIELD",
content=SymbolRule(
type="SYMBOL", name="primary_expression"
),
),
FieldRule(
name="operator",
type="FIELD",
content=StringRule(type="STRING", value="|"),
),
FieldRule(
name="right",
type="FIELD",
content=SymbolRule(
type="SYMBOL", name="primary_expression"
),
),
],
),
),
PrecRule(
type="PREC_LEFT",
value=15,
content=SeqRule(
type="SEQ",
members=[
FieldRule(
name="left",
type="FIELD",
content=SymbolRule(
type="SYMBOL", name="primary_expression"
),
),
FieldRule(
name="operator",
type="FIELD",
content=StringRule(type="STRING", value="&"),
),
FieldRule(
name="right",
type="FIELD",
content=SymbolRule(
type="SYMBOL", name="primary_expression"
),
),
],
),
),
PrecRule(
type="PREC_LEFT",
value=16,
content=SeqRule(
type="SEQ",
members=[
FieldRule(
name="left",
type="FIELD",
content=SymbolRule(
type="SYMBOL", name="primary_expression"
),
),
FieldRule(
name="operator",
type="FIELD",
content=StringRule(type="STRING", value="^"),
),
FieldRule(
name="right",
type="FIELD",
content=SymbolRule(
type="SYMBOL", name="primary_expression"
),
),
],
),
),
PrecRule(
type="PREC_LEFT",
value=17,
content=SeqRule(
type="SEQ",
members=[
FieldRule(
name="left",
type="FIELD",
content=SymbolRule(
type="SYMBOL", name="primary_expression"
),
),
FieldRule(
name="operator",
type="FIELD",
content=StringRule(type="STRING", value="<<"),
),
FieldRule(
name="right",
type="FIELD",
content=SymbolRule(
type="SYMBOL", name="primary_expression"
),
),
],
),
),
PrecRule(
type="PREC_LEFT",
value=17,
content=SeqRule(
type="SEQ",
members=[
FieldRule(
name="left",
type="FIELD",
content=SymbolRule(
type="SYMBOL", name="primary_expression"
),
),
FieldRule(
name="operator",
type="FIELD",
content=StringRule(type="STRING", value=">>"),
),
FieldRule(
name="right",
type="FIELD",
content=SymbolRule(
type="SYMBOL", name="primary_expression"
),
),
],
),
),
],
)
90) unary_operator¶
PrecRule(
type="PREC",
value=20,
content=SeqRule(
type="SEQ",
members=[
FieldRule(
name="operator",
type="FIELD",
content=ChoiceRule(
type="CHOICE",
members=[
StringRule(type="STRING", value="+"),
StringRule(type="STRING", value="-"),
StringRule(type="STRING", value="~"),
],
),
),
FieldRule(
name="argument",
type="FIELD",
content=SymbolRule(
type="SYMBOL", name="primary_expression"
),
),
],
),
)
91) comparison_operator¶
PrecRule(
type="PREC_LEFT",
value=13,
content=SeqRule(
type="SEQ",
members=[
SymbolRule(type="SYMBOL", name="primary_expression"),
Repeat1Rule(
type="REPEAT1",
content=SeqRule(
type="SEQ",
members=[
FieldRule(
name="operators",
type="FIELD",
content=ChoiceRule(
type="CHOICE",
members=[
StringRule(
type="STRING", value="<"
),
StringRule(
type="STRING", value="<="
),
StringRule(
type="STRING", value="=="
),
StringRule(
type="STRING", value="!="
),
StringRule(
type="STRING", value=">="
),
StringRule(
type="STRING", value=">"
),
StringRule(
type="STRING", value="<>"
),
StringRule(
type="STRING", value="in"
),
AliasRule(
type="ALIAS",
value="not in",
named=False,
content=SeqRule(
type="SEQ",
members=[
StringRule(
type="STRING",
value="not",
),
StringRule(
type="STRING",
value="in",
),
],
),
),
StringRule(
type="STRING", value="is"
),
AliasRule(
type="ALIAS",
value="is not",
named=False,
content=SeqRule(
type="SEQ",
members=[
StringRule(
type="STRING",
value="is",
),
StringRule(
type="STRING",
value="not",
),
],
),
),
],
),
),
SymbolRule(
type="SYMBOL", name="primary_expression"
),
],
),
),
],
),
)
92) lambda¶
PrecRule(
type="PREC",
value=-2,
content=SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="lambda"),
FieldRule(
name="parameters",
type="FIELD",
content=ChoiceRule(
type="CHOICE",
members=[
SymbolRule(
type="SYMBOL", name="lambda_parameters"
),
BlankRule(type="BLANK"),
],
),
),
StringRule(type="STRING", value=":"),
FieldRule(
name="body",
type="FIELD",
content=SymbolRule(type="SYMBOL", name="expression"),
),
],
),
)
93) lambda_within_for_in_clause¶
SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="lambda"),
FieldRule(
name="parameters",
type="FIELD",
content=ChoiceRule(
type="CHOICE",
members=[
SymbolRule(
type="SYMBOL", name="lambda_parameters"
),
BlankRule(type="BLANK"),
],
),
),
StringRule(type="STRING", value=":"),
FieldRule(
name="body",
type="FIELD",
content=SymbolRule(
type="SYMBOL", name="_expression_within_for_in_clause"
),
),
],
)
94) assignment¶
SeqRule(
type="SEQ",
members=[
FieldRule(
name="left",
type="FIELD",
content=SymbolRule(type="SYMBOL", name="_left_hand_side"),
),
ChoiceRule(
type="CHOICE",
members=[
SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="="),
FieldRule(
name="right",
type="FIELD",
content=SymbolRule(
type="SYMBOL", name="_right_hand_side"
),
),
],
),
SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value=":"),
FieldRule(
name="type",
type="FIELD",
content=SymbolRule(
type="SYMBOL", name="type"
),
),
],
),
SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value=":"),
FieldRule(
name="type",
type="FIELD",
content=SymbolRule(
type="SYMBOL", name="type"
),
),
StringRule(type="STRING", value="="),
FieldRule(
name="right",
type="FIELD",
content=SymbolRule(
type="SYMBOL", name="_right_hand_side"
),
),
],
),
],
),
],
)
95) augmented_assignment¶
SeqRule(
type="SEQ",
members=[
FieldRule(
name="left",
type="FIELD",
content=SymbolRule(type="SYMBOL", name="_left_hand_side"),
),
FieldRule(
name="operator",
type="FIELD",
content=ChoiceRule(
type="CHOICE",
members=[
StringRule(type="STRING", value="+="),
StringRule(type="STRING", value="-="),
StringRule(type="STRING", value="*="),
StringRule(type="STRING", value="/="),
StringRule(type="STRING", value="@="),
StringRule(type="STRING", value="//="),
StringRule(type="STRING", value="%="),
StringRule(type="STRING", value="**="),
StringRule(type="STRING", value=">>="),
StringRule(type="STRING", value="<<="),
StringRule(type="STRING", value="&="),
StringRule(type="STRING", value="^="),
StringRule(type="STRING", value="|="),
],
),
),
FieldRule(
name="right",
type="FIELD",
content=SymbolRule(
type="SYMBOL", name="_right_hand_side"
),
),
],
)
96) _left_hand_side¶
ChoiceRule(
type="CHOICE",
members=[
SymbolRule(type="SYMBOL", name="pattern"),
SymbolRule(type="SYMBOL", name="pattern_list"),
],
)
97) pattern_list¶
SeqRule(
type="SEQ",
members=[
SymbolRule(type="SYMBOL", name="pattern"),
ChoiceRule(
type="CHOICE",
members=[
StringRule(type="STRING", value=","),
SeqRule(
type="SEQ",
members=[
Repeat1Rule(
type="REPEAT1",
content=SeqRule(
type="SEQ",
members=[
StringRule(
type="STRING", value=","
),
SymbolRule(
type="SYMBOL", name="pattern"
),
],
),
),
ChoiceRule(
type="CHOICE",
members=[
StringRule(type="STRING", value=","),
BlankRule(type="BLANK"),
],
),
],
),
],
),
],
)
98) _right_hand_side¶
ChoiceRule(
type="CHOICE",
members=[
SymbolRule(type="SYMBOL", name="expression"),
SymbolRule(type="SYMBOL", name="expression_list"),
SymbolRule(type="SYMBOL", name="assignment"),
SymbolRule(type="SYMBOL", name="augmented_assignment"),
SymbolRule(type="SYMBOL", name="pattern_list"),
SymbolRule(type="SYMBOL", name="yield"),
],
)
99) yield¶
PrecRule(
type="PREC_RIGHT",
value=0,
content=SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="yield"),
ChoiceRule(
type="CHOICE",
members=[
SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="from"),
SymbolRule(
type="SYMBOL", name="expression"
),
],
),
ChoiceRule(
type="CHOICE",
members=[
SymbolRule(
type="SYMBOL", name="_expressions"
),
BlankRule(type="BLANK"),
],
),
],
),
],
),
)
100) attribute¶
PrecRule(
type="PREC",
value=22,
content=SeqRule(
type="SEQ",
members=[
FieldRule(
name="object",
type="FIELD",
content=SymbolRule(
type="SYMBOL", name="primary_expression"
),
),
StringRule(type="STRING", value="."),
FieldRule(
name="attribute",
type="FIELD",
content=SymbolRule(type="SYMBOL", name="identifier"),
),
],
),
)
101) subscript¶
PrecRule(
type="PREC",
value=22,
content=SeqRule(
type="SEQ",
members=[
FieldRule(
name="value",
type="FIELD",
content=SymbolRule(
type="SYMBOL", name="primary_expression"
),
),
StringRule(type="STRING", value="["),
SeqRule(
type="SEQ",
members=[
FieldRule(
name="subscript",
type="FIELD",
content=ChoiceRule(
type="CHOICE",
members=[
SymbolRule(
type="SYMBOL", name="expression"
),
SymbolRule(
type="SYMBOL", name="slice"
),
],
),
),
RepeatRule(
type="REPEAT",
content=SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value=","),
FieldRule(
name="subscript",
type="FIELD",
content=ChoiceRule(
type="CHOICE",
members=[
SymbolRule(
type="SYMBOL",
name="expression",
),
SymbolRule(
type="SYMBOL",
name="slice",
),
],
),
),
],
),
),
],
),
ChoiceRule(
type="CHOICE",
members=[
StringRule(type="STRING", value=","),
BlankRule(type="BLANK"),
],
),
StringRule(type="STRING", value="]"),
],
),
)
102) slice¶
SeqRule(
type="SEQ",
members=[
ChoiceRule(
type="CHOICE",
members=[
SymbolRule(type="SYMBOL", name="expression"),
BlankRule(type="BLANK"),
],
),
StringRule(type="STRING", value=":"),
ChoiceRule(
type="CHOICE",
members=[
SymbolRule(type="SYMBOL", name="expression"),
BlankRule(type="BLANK"),
],
),
ChoiceRule(
type="CHOICE",
members=[
SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value=":"),
ChoiceRule(
type="CHOICE",
members=[
SymbolRule(
type="SYMBOL", name="expression"
),
BlankRule(type="BLANK"),
],
),
],
),
BlankRule(type="BLANK"),
],
),
],
)
103) ellipsis¶
104) call¶
PrecRule(
type="PREC",
value=22,
content=SeqRule(
type="SEQ",
members=[
FieldRule(
name="function",
type="FIELD",
content=SymbolRule(
type="SYMBOL", name="primary_expression"
),
),
FieldRule(
name="arguments",
type="FIELD",
content=ChoiceRule(
type="CHOICE",
members=[
SymbolRule(
type="SYMBOL", name="generator_expression"
),
SymbolRule(
type="SYMBOL", name="argument_list"
),
],
),
),
],
),
)
105) typed_parameter¶
PrecRule(
type="PREC",
value=-1,
content=SeqRule(
type="SEQ",
members=[
ChoiceRule(
type="CHOICE",
members=[
SymbolRule(type="SYMBOL", name="identifier"),
SymbolRule(
type="SYMBOL", name="list_splat_pattern"
),
SymbolRule(
type="SYMBOL", name="dictionary_splat_pattern"
),
],
),
StringRule(type="STRING", value=":"),
FieldRule(
name="type",
type="FIELD",
content=SymbolRule(type="SYMBOL", name="type"),
),
],
),
)
106) type¶
ChoiceRule(
type="CHOICE",
members=[
SymbolRule(type="SYMBOL", name="expression"),
SymbolRule(type="SYMBOL", name="splat_type"),
SymbolRule(type="SYMBOL", name="generic_type"),
SymbolRule(type="SYMBOL", name="union_type"),
SymbolRule(type="SYMBOL", name="constrained_type"),
SymbolRule(type="SYMBOL", name="member_type"),
],
)
107) splat_type¶
PrecRule(
type="PREC",
value=1,
content=SeqRule(
type="SEQ",
members=[
ChoiceRule(
type="CHOICE",
members=[
StringRule(type="STRING", value="*"),
StringRule(type="STRING", value="**"),
],
),
SymbolRule(type="SYMBOL", name="identifier"),
],
),
)
108) generic_type¶
PrecRule(
type="PREC",
value=1,
content=SeqRule(
type="SEQ",
members=[
SymbolRule(type="SYMBOL", name="identifier"),
SymbolRule(type="SYMBOL", name="type_parameter"),
],
),
)
109) union_type¶
PrecRule(
type="PREC_LEFT",
value=0,
content=SeqRule(
type="SEQ",
members=[
SymbolRule(type="SYMBOL", name="type"),
StringRule(type="STRING", value="|"),
SymbolRule(type="SYMBOL", name="type"),
],
),
)
110) constrained_type¶
PrecRule(
type="PREC_RIGHT",
value=0,
content=SeqRule(
type="SEQ",
members=[
SymbolRule(type="SYMBOL", name="type"),
StringRule(type="STRING", value=":"),
SymbolRule(type="SYMBOL", name="type"),
],
),
)
111) member_type¶
SeqRule(
type="SEQ",
members=[
SymbolRule(type="SYMBOL", name="type"),
StringRule(type="STRING", value="."),
SymbolRule(type="SYMBOL", name="identifier"),
],
)
112) keyword_argument¶
SeqRule(
type="SEQ",
members=[
FieldRule(
name="name",
type="FIELD",
content=ChoiceRule(
type="CHOICE",
members=[
SymbolRule(type="SYMBOL", name="identifier"),
SymbolRule(
type="SYMBOL", name="keyword_identifier"
),
],
),
),
StringRule(type="STRING", value="="),
FieldRule(
name="value",
type="FIELD",
content=SymbolRule(type="SYMBOL", name="expression"),
),
],
)
113) list¶
SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="["),
ChoiceRule(
type="CHOICE",
members=[
SymbolRule(
type="SYMBOL", name="_collection_elements"
),
BlankRule(type="BLANK"),
],
),
StringRule(type="STRING", value="]"),
],
)
114) set¶
SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="{"),
SymbolRule(type="SYMBOL", name="_collection_elements"),
StringRule(type="STRING", value="}"),
],
)
115) tuple¶
SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="("),
ChoiceRule(
type="CHOICE",
members=[
SymbolRule(
type="SYMBOL", name="_collection_elements"
),
BlankRule(type="BLANK"),
],
),
StringRule(type="STRING", value=")"),
],
)
116) dictionary¶
SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="{"),
ChoiceRule(
type="CHOICE",
members=[
SeqRule(
type="SEQ",
members=[
ChoiceRule(
type="CHOICE",
members=[
SymbolRule(
type="SYMBOL", name="pair"
),
SymbolRule(
type="SYMBOL",
name="dictionary_splat",
),
],
),
RepeatRule(
type="REPEAT",
content=SeqRule(
type="SEQ",
members=[
StringRule(
type="STRING", value=","
),
ChoiceRule(
type="CHOICE",
members=[
SymbolRule(
type="SYMBOL",
name="pair",
),
SymbolRule(
type="SYMBOL",
name="dictionary_splat",
),
],
),
],
),
),
],
),
BlankRule(type="BLANK"),
],
),
ChoiceRule(
type="CHOICE",
members=[
StringRule(type="STRING", value=","),
BlankRule(type="BLANK"),
],
),
StringRule(type="STRING", value="}"),
],
)
117) pair¶
SeqRule(
type="SEQ",
members=[
FieldRule(
name="key",
type="FIELD",
content=SymbolRule(type="SYMBOL", name="expression"),
),
StringRule(type="STRING", value=":"),
FieldRule(
name="value",
type="FIELD",
content=SymbolRule(type="SYMBOL", name="expression"),
),
],
)
118) list_comprehension¶
SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="["),
FieldRule(
name="body",
type="FIELD",
content=SymbolRule(type="SYMBOL", name="expression"),
),
SymbolRule(type="SYMBOL", name="_comprehension_clauses"),
StringRule(type="STRING", value="]"),
],
)
119) dictionary_comprehension¶
SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="{"),
FieldRule(
name="body",
type="FIELD",
content=SymbolRule(type="SYMBOL", name="pair"),
),
SymbolRule(type="SYMBOL", name="_comprehension_clauses"),
StringRule(type="STRING", value="}"),
],
)
120) set_comprehension¶
SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="{"),
FieldRule(
name="body",
type="FIELD",
content=SymbolRule(type="SYMBOL", name="expression"),
),
SymbolRule(type="SYMBOL", name="_comprehension_clauses"),
StringRule(type="STRING", value="}"),
],
)
121) generator_expression¶
SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="("),
FieldRule(
name="body",
type="FIELD",
content=SymbolRule(type="SYMBOL", name="expression"),
),
SymbolRule(type="SYMBOL", name="_comprehension_clauses"),
StringRule(type="STRING", value=")"),
],
)
122) _comprehension_clauses¶
SeqRule(
type="SEQ",
members=[
SymbolRule(type="SYMBOL", name="for_in_clause"),
RepeatRule(
type="REPEAT",
content=ChoiceRule(
type="CHOICE",
members=[
SymbolRule(type="SYMBOL", name="for_in_clause"),
SymbolRule(type="SYMBOL", name="if_clause"),
],
),
),
],
)
123) parenthesized_expression¶
PrecRule(
type="PREC",
value=1,
content=SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="("),
ChoiceRule(
type="CHOICE",
members=[
SymbolRule(type="SYMBOL", name="expression"),
SymbolRule(type="SYMBOL", name="yield"),
],
),
StringRule(type="STRING", value=")"),
],
),
)
124) _collection_elements¶
SeqRule(
type="SEQ",
members=[
SeqRule(
type="SEQ",
members=[
ChoiceRule(
type="CHOICE",
members=[
SymbolRule(type="SYMBOL", name="expression"),
SymbolRule(type="SYMBOL", name="yield"),
SymbolRule(type="SYMBOL", name="list_splat"),
SymbolRule(
type="SYMBOL",
name="parenthesized_list_splat",
),
],
),
RepeatRule(
type="REPEAT",
content=SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value=","),
ChoiceRule(
type="CHOICE",
members=[
SymbolRule(
type="SYMBOL",
name="expression",
),
SymbolRule(
type="SYMBOL", name="yield"
),
SymbolRule(
type="SYMBOL",
name="list_splat",
),
SymbolRule(
type="SYMBOL",
name="parenthesized_list_splat",
),
],
),
],
),
),
],
),
ChoiceRule(
type="CHOICE",
members=[
StringRule(type="STRING", value=","),
BlankRule(type="BLANK"),
],
),
],
)
125) for_in_clause¶
PrecRule(
type="PREC_LEFT",
value=0,
content=SeqRule(
type="SEQ",
members=[
ChoiceRule(
type="CHOICE",
members=[
StringRule(type="STRING", value="async"),
BlankRule(type="BLANK"),
],
),
StringRule(type="STRING", value="for"),
FieldRule(
name="left",
type="FIELD",
content=SymbolRule(
type="SYMBOL", name="_left_hand_side"
),
),
StringRule(type="STRING", value="in"),
FieldRule(
name="right",
type="FIELD",
content=SeqRule(
type="SEQ",
members=[
SymbolRule(
type="SYMBOL",
name="_expression_within_for_in_clause",
),
RepeatRule(
type="REPEAT",
content=SeqRule(
type="SEQ",
members=[
StringRule(
type="STRING", value=","
),
SymbolRule(
type="SYMBOL",
name="_expression_within_for_in_clause",
),
],
),
),
],
),
),
ChoiceRule(
type="CHOICE",
members=[
StringRule(type="STRING", value=","),
BlankRule(type="BLANK"),
],
),
],
),
)
126) if_clause¶
SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="if"),
SymbolRule(type="SYMBOL", name="expression"),
],
)
127) conditional_expression¶
PrecRule(
type="PREC_RIGHT",
value=-1,
content=SeqRule(
type="SEQ",
members=[
SymbolRule(type="SYMBOL", name="expression"),
StringRule(type="STRING", value="if"),
SymbolRule(type="SYMBOL", name="expression"),
StringRule(type="STRING", value="else"),
SymbolRule(type="SYMBOL", name="expression"),
],
),
)
128) concatenated_string¶
SeqRule(
type="SEQ",
members=[
SymbolRule(type="SYMBOL", name="string"),
Repeat1Rule(
type="REPEAT1",
content=SymbolRule(type="SYMBOL", name="string"),
),
],
)
129) string¶
SeqRule(
type="SEQ",
members=[
SymbolRule(type="SYMBOL", name="string_start"),
RepeatRule(
type="REPEAT",
content=ChoiceRule(
type="CHOICE",
members=[
SymbolRule(type="SYMBOL", name="interpolation"),
SymbolRule(type="SYMBOL", name="string_content"),
],
),
),
SymbolRule(type="SYMBOL", name="string_end"),
],
)
130) string_content¶
PrecRule(
type="PREC_RIGHT",
value=0,
content=Repeat1Rule(
type="REPEAT1",
content=ChoiceRule(
type="CHOICE",
members=[
SymbolRule(
type="SYMBOL", name="escape_interpolation"
),
SymbolRule(type="SYMBOL", name="escape_sequence"),
SymbolRule(
type="SYMBOL", name="_not_escape_sequence"
),
SymbolRule(type="SYMBOL", name="_string_content"),
],
),
),
)
131) interpolation¶
SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="{"),
FieldRule(
name="expression",
type="FIELD",
content=SymbolRule(type="SYMBOL", name="_f_expression"),
),
ChoiceRule(
type="CHOICE",
members=[
StringRule(type="STRING", value="="),
BlankRule(type="BLANK"),
],
),
ChoiceRule(
type="CHOICE",
members=[
FieldRule(
name="type_conversion",
type="FIELD",
content=SymbolRule(
type="SYMBOL", name="type_conversion"
),
),
BlankRule(type="BLANK"),
],
),
ChoiceRule(
type="CHOICE",
members=[
FieldRule(
name="format_specifier",
type="FIELD",
content=SymbolRule(
type="SYMBOL", name="format_specifier"
),
),
BlankRule(type="BLANK"),
],
),
StringRule(type="STRING", value="}"),
],
)
132) _f_expression¶
ChoiceRule(
type="CHOICE",
members=[
SymbolRule(type="SYMBOL", name="expression"),
SymbolRule(type="SYMBOL", name="expression_list"),
SymbolRule(type="SYMBOL", name="pattern_list"),
SymbolRule(type="SYMBOL", name="yield"),
],
)
133) escape_sequence¶
TokenRule(
type="IMMEDIATE_TOKEN",
content=PrecRule(
type="PREC",
value=1,
content=SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="\\"),
ChoiceRule(
type="CHOICE",
members=[
PatternRule(
type="PATTERN",
value="u[a-fA-F\\d]{4}",
flags=None,
),
PatternRule(
type="PATTERN",
value="U[a-fA-F\\d]{8}",
flags=None,
),
PatternRule(
type="PATTERN",
value="x[a-fA-F\\d]{2}",
flags=None,
),
PatternRule(
type="PATTERN",
value="\\d{1,3}",
flags=None,
),
PatternRule(
type="PATTERN",
value="\\r?\\n",
flags=None,
),
PatternRule(
type="PATTERN",
value="['\"abfrntv\\\\]",
flags=None,
),
PatternRule(
type="PATTERN",
value="N\\{[^}]+\\}",
flags=None,
),
],
),
],
),
),
)
134) _not_escape_sequence¶
135) format_specifier¶
SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value=":"),
RepeatRule(
type="REPEAT",
content=ChoiceRule(
type="CHOICE",
members=[
TokenRule(
type="TOKEN",
content=PrecRule(
type="PREC",
value=1,
content=PatternRule(
type="PATTERN",
value="[^{}\\n]+",
flags=None,
),
),
),
AliasRule(
type="ALIAS",
value="format_expression",
named=True,
content=SymbolRule(
type="SYMBOL", name="interpolation"
),
),
],
),
),
],
)
136) type_conversion¶
137) integer¶
TokenRule(
type="TOKEN",
content=ChoiceRule(
type="CHOICE",
members=[
SeqRule(
type="SEQ",
members=[
ChoiceRule(
type="CHOICE",
members=[
StringRule(type="STRING", value="0x"),
StringRule(type="STRING", value="0X"),
],
),
Repeat1Rule(
type="REPEAT1",
content=PatternRule(
type="PATTERN",
value="_?[A-Fa-f0-9]+",
flags=None,
),
),
ChoiceRule(
type="CHOICE",
members=[
PatternRule(
type="PATTERN",
value="[Ll]",
flags=None,
),
BlankRule(type="BLANK"),
],
),
],
),
SeqRule(
type="SEQ",
members=[
ChoiceRule(
type="CHOICE",
members=[
StringRule(type="STRING", value="0o"),
StringRule(type="STRING", value="0O"),
],
),
Repeat1Rule(
type="REPEAT1",
content=PatternRule(
type="PATTERN",
value="_?[0-7]+",
flags=None,
),
),
ChoiceRule(
type="CHOICE",
members=[
PatternRule(
type="PATTERN",
value="[Ll]",
flags=None,
),
BlankRule(type="BLANK"),
],
),
],
),
SeqRule(
type="SEQ",
members=[
ChoiceRule(
type="CHOICE",
members=[
StringRule(type="STRING", value="0b"),
StringRule(type="STRING", value="0B"),
],
),
Repeat1Rule(
type="REPEAT1",
content=PatternRule(
type="PATTERN",
value="_?[0-1]+",
flags=None,
),
),
ChoiceRule(
type="CHOICE",
members=[
PatternRule(
type="PATTERN",
value="[Ll]",
flags=None,
),
BlankRule(type="BLANK"),
],
),
],
),
SeqRule(
type="SEQ",
members=[
Repeat1Rule(
type="REPEAT1",
content=PatternRule(
type="PATTERN",
value="[0-9]+_?",
flags=None,
),
),
ChoiceRule(
type="CHOICE",
members=[
ChoiceRule(
type="CHOICE",
members=[
PatternRule(
type="PATTERN",
value="[Ll]",
flags=None,
),
BlankRule(type="BLANK"),
],
),
ChoiceRule(
type="CHOICE",
members=[
PatternRule(
type="PATTERN",
value="[jJ]",
flags=None,
),
BlankRule(type="BLANK"),
],
),
],
),
],
),
],
),
)
138) float¶
TokenRule(
type="TOKEN",
content=SeqRule(
type="SEQ",
members=[
ChoiceRule(
type="CHOICE",
members=[
SeqRule(
type="SEQ",
members=[
Repeat1Rule(
type="REPEAT1",
content=PatternRule(
type="PATTERN",
value="[0-9]+_?",
flags=None,
),
),
StringRule(type="STRING", value="."),
ChoiceRule(
type="CHOICE",
members=[
Repeat1Rule(
type="REPEAT1",
content=PatternRule(
type="PATTERN",
value="[0-9]+_?",
flags=None,
),
),
BlankRule(type="BLANK"),
],
),
ChoiceRule(
type="CHOICE",
members=[
SeqRule(
type="SEQ",
members=[
PatternRule(
type="PATTERN",
value="[eE][\\+-]?",
flags=None,
),
Repeat1Rule(
type="REPEAT1",
content=PatternRule(
type="PATTERN",
value="[0-9]+_?",
flags=None,
),
),
],
),
BlankRule(type="BLANK"),
],
),
],
),
SeqRule(
type="SEQ",
members=[
ChoiceRule(
type="CHOICE",
members=[
Repeat1Rule(
type="REPEAT1",
content=PatternRule(
type="PATTERN",
value="[0-9]+_?",
flags=None,
),
),
BlankRule(type="BLANK"),
],
),
StringRule(type="STRING", value="."),
Repeat1Rule(
type="REPEAT1",
content=PatternRule(
type="PATTERN",
value="[0-9]+_?",
flags=None,
),
),
ChoiceRule(
type="CHOICE",
members=[
SeqRule(
type="SEQ",
members=[
PatternRule(
type="PATTERN",
value="[eE][\\+-]?",
flags=None,
),
Repeat1Rule(
type="REPEAT1",
content=PatternRule(
type="PATTERN",
value="[0-9]+_?",
flags=None,
),
),
],
),
BlankRule(type="BLANK"),
],
),
],
),
SeqRule(
type="SEQ",
members=[
Repeat1Rule(
type="REPEAT1",
content=PatternRule(
type="PATTERN",
value="[0-9]+_?",
flags=None,
),
),
SeqRule(
type="SEQ",
members=[
PatternRule(
type="PATTERN",
value="[eE][\\+-]?",
flags=None,
),
Repeat1Rule(
type="REPEAT1",
content=PatternRule(
type="PATTERN",
value="[0-9]+_?",
flags=None,
),
),
],
),
],
),
],
),
ChoiceRule(
type="CHOICE",
members=[
PatternRule(
type="PATTERN", value="[jJ]", flags=None
),
BlankRule(type="BLANK"),
],
),
],
),
)
139) identifier¶
140) keyword_identifier¶
ChoiceRule(
type="CHOICE",
members=[
PrecRule(
type="PREC",
value=-3,
content=AliasRule(
type="ALIAS",
value="identifier",
named=True,
content=ChoiceRule(
type="CHOICE",
members=[
StringRule(type="STRING", value="print"),
StringRule(type="STRING", value="exec"),
StringRule(type="STRING", value="async"),
StringRule(type="STRING", value="await"),
StringRule(type="STRING", value="match"),
],
),
),
),
AliasRule(
type="ALIAS",
value="identifier",
named=True,
content=StringRule(type="STRING", value="type"),
),
],
)
141) true¶
142) false¶
143) none¶
144) await¶
PrecRule(
type="PREC",
value=20,
content=SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="await"),
SymbolRule(type="SYMBOL", name="primary_expression"),
],
),
)
145) comment¶
TokenRule(
type="TOKEN",
content=SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="#"),
PatternRule(type="PATTERN", value=".*", flags=None),
],
),
)
146) line_continuation¶
TokenRule(
type="TOKEN",
content=SeqRule(
type="SEQ",
members=[
StringRule(type="STRING", value="\\"),
ChoiceRule(
type="CHOICE",
members=[
SeqRule(
type="SEQ",
members=[
ChoiceRule(
type="CHOICE",
members=[
StringRule(
type="STRING", value="\r"
),
BlankRule(type="BLANK"),
],
),
StringRule(type="STRING", value="\n"),
],
),
StringRule(type="STRING", value="\x00"),
],
),
],
),
)
147) positional_separator¶
148) keyword_separator¶
Extras¶
1)¶
2)¶
3)¶
Precedences¶
Externals¶
1)¶
2)¶
3)¶
4)¶
5)¶
6)¶
7)¶
8)¶
9)¶
10)¶
11)¶
12)¶
Inline¶
1) _simple_statement¶
2) _compound_statement¶
3) _suite¶
4) _expressions¶
5) _left_hand_side¶
6) keyword_identifier¶
Conflicts¶
1) primary_expression + pattern¶
2) primary_expression + list_splat_pattern¶
3) tuple + tuple_pattern¶
4) list + list_pattern¶
5) with_item + _collection_elements¶
6) named_expression + as_pattern¶
7) print_statement + primary_expression¶
8) type_alias_statement + primary_expression¶
Word¶
identifier