===================================== Integers ===================================== -1 0xDEAD 0XDEAD 1j -1j 0o123 0O123 0b001 0B001 1_1 0B1_1 0O1_1 0L --- (module (expression_statement (unary_operator (integer))) (expression_statement (integer)) (expression_statement (integer)) (expression_statement (integer)) (expression_statement (unary_operator (integer))) (expression_statement (integer)) (expression_statement (integer)) (expression_statement (integer)) (expression_statement (integer)) (expression_statement (integer)) (expression_statement (integer)) (expression_statement (integer)) (expression_statement (integer))) ===================================== Floats ===================================== -.6_6 +.1_1 123.4123 123.123J 1_1.3_1 1_1. 1e+3_4j .3e1_4 1_0.l .1l --- (module (expression_statement (unary_operator (float))) (expression_statement (unary_operator (float))) (expression_statement (float)) (expression_statement (float)) (expression_statement (float)) (expression_statement (float)) (expression_statement (float)) (expression_statement (float)) (expression_statement (float)) (expression_statement (float))) ===================================== Scientific Notation Floats ===================================== 1e322 1e-3 1e+3 1.8e10 1.e10 -1e10 --- (module (expression_statement (float)) (expression_statement (float)) (expression_statement (float)) (expression_statement (float)) (expression_statement (float)) (expression_statement (unary_operator (float)))) ===================================== Strings ===================================== "I'm ok" '"ok"' UR'bye' b'sup' B"sup" `1` "\\" "/" "multiline \ string" b"\x12\u12\U12\x13\N{WINKING FACE}" "\xab\123\'\"\a\b\f\r\n\t\v\\" "\xgh\o123\p\q\c\d\e\u12\U1234" --- (module (expression_statement (string)) (expression_statement (string)) (expression_statement (string)) (expression_statement (string)) (expression_statement (string)) (expression_statement (string)) (expression_statement (string (escape_sequence))) (expression_statement (string)) (expression_statement (string (escape_sequence))) (expression_statement (string (escape_sequence) (escape_sequence))) (expression_statement (string (escape_sequence) (escape_sequence) (escape_sequence) (escape_sequence) (escape_sequence) (escape_sequence) (escape_sequence) (escape_sequence) (escape_sequence) (escape_sequence) (escape_sequence) (escape_sequence))) (expression_statement (string))) ===================================== Raw strings ===================================== 'ab\x00cd' "\n" # no escape sequences in these r'ab\x00cd' ur"\n" --- (module (expression_statement (string (escape_sequence))) (expression_statement (string (escape_sequence))) (comment) (expression_statement (string)) (expression_statement (string))) ===================================== Raw strings with escaped quotes ===================================== re.compile(r"(\n|\A)#include\s*['\"]" r"(?P[\w\d./\\]+[.]src)['\"]") --- (module (expression_statement (call (attribute (identifier) (identifier)) (argument_list (concatenated_string (string) (string)))))) ===================================== Format strings ===================================== # nested! f"a {b(f'c {e} d')} e" f"a {{}} e" --- (module (comment) (expression_statement (string (interpolation (call (identifier) (argument_list (string (interpolation (identifier)))))))) (expression_statement (string))) ====================================== Format strings with format specifiers ====================================== f"a {b:2} {c:34.5}" f"{b:{c.d}.{d.e}}" --- (module (expression_statement (string (interpolation (identifier) (format_specifier)) (interpolation (identifier) (format_specifier)))) (expression_statement (string (interpolation (identifier) (format_specifier (format_expression (attribute (identifier) (identifier))) (format_expression (attribute (identifier) (identifier)))))))) ===================================== Unicode escape sequences ===================================== "\x12 \123 \u1234" --- (module (expression_statement (string (escape_sequence) (escape_sequence) (escape_sequence)))) ===================================== Other primitives ===================================== True False None --- (module (expression_statement (true)) (expression_statement (false)) (expression_statement (none))) ===================================== Concatenated strings ===================================== "one" "two" "three" --- (module (expression_statement (concatenated_string (string) (string) (string)))) ===================================== Multi-line strings ===================================== """ A double quote hello, without double or single quotes. """ """ A double quote "hello", with double quotes. """ """ A double quote 'hello', with single quotes. """ ''' A single quote hello, without double or single quotes. ''' ''' A single quote 'hello', with single quotes. ''' ''' A single quote "hello", with double quotes. ''' """ A double quote hello\n\ with an escaped newline\n\ and another escaped newline\n\ """ --- (module (expression_statement (string)) (expression_statement (string)) (expression_statement (string)) (expression_statement (string)) (expression_statement (string)) (expression_statement (string)) (expression_statement (string (escape_sequence) (escape_sequence) (escape_sequence) (escape_sequence) (escape_sequence) (escape_sequence)))) ===================================== Lists ===================================== [a, b, [c, d]] [*()] [*[]] [*a] [*a.b] [*a[b].c] [*a()] --- (module (expression_statement (list (identifier) (identifier) (list (identifier) (identifier)))) (expression_statement (list (list_splat (tuple)))) (expression_statement (list (list_splat (list)))) (expression_statement (list (list_splat (identifier)))) (expression_statement (list (list_splat (attribute (identifier) (identifier))))) (expression_statement (list (list_splat (attribute (subscript (identifier) (identifier)) (identifier))))) (expression_statement (list (list_splat (call (identifier) (argument_list)))))) ===================================== List comprehensions ===================================== [a + b for (a, b) in items] [a for b in c for a in b] [(x,y) for x in [1,2,3] for y in [1,2,3] if True] [a for a in lambda: True, lambda: False if a()] --- (module (expression_statement (list_comprehension (binary_operator (identifier) (identifier)) (for_in_clause (variables (tuple (identifier) (identifier))) (identifier)))) (expression_statement (list_comprehension (identifier) (for_in_clause (variables (identifier)) (identifier)) (for_in_clause (variables (identifier)) (identifier)))) (expression_statement (list_comprehension (tuple (identifier) (identifier)) (for_in_clause (variables (identifier)) (list (integer) (integer) (integer))) (for_in_clause (variables (identifier)) (list (integer) (integer) (integer))) (if_clause (true)))) (expression_statement (list_comprehension (identifier) (for_in_clause (variables (identifier)) (lambda (true)) (lambda (false))) (if_clause (call (identifier) (argument_list)))))) ===================================== Dictionaries ===================================== {a: 1, b: 2} {} {**{}} {**a} {**a.b} {**a[b].c} {**a()} --- (module (expression_statement (dictionary (pair (identifier) (integer)) (pair (identifier) (integer)))) (expression_statement (dictionary)) (expression_statement (dictionary (dictionary_splat (dictionary)))) (expression_statement (dictionary (dictionary_splat (identifier)))) (expression_statement (dictionary (dictionary_splat (attribute (identifier) (identifier))))) (expression_statement (dictionary (dictionary_splat (attribute (subscript (identifier) (identifier)) (identifier))))) (expression_statement (dictionary (dictionary_splat (call (identifier) (argument_list)))))) ===================================== Dictionary comprehensions ===================================== {a: b for a, b in items} {a: b for c in d for e in items} --- (module (expression_statement (dictionary_comprehension (pair (identifier) (identifier)) (for_in_clause (variables (identifier) (identifier)) (identifier)))) (expression_statement (dictionary_comprehension (pair (identifier) (identifier)) (for_in_clause (variables (identifier)) (identifier)) (for_in_clause (variables (identifier)) (identifier))))) ===================================== Sets ===================================== {a, b, c,} {*{}} --- (module (expression_statement (set (identifier) (identifier) (identifier))) (expression_statement (set (list_splat (dictionary))))) ===================================== Set comprehensions ===================================== {a[b][c] for a, b, c in items} {r for s in qs for n in ms} --- (module (expression_statement (set_comprehension (subscript (subscript (identifier) (identifier)) (identifier)) (for_in_clause (variables (identifier) (identifier) (identifier)) (identifier)))) (expression_statement (set_comprehension (identifier) (for_in_clause (variables (identifier)) (identifier)) (for_in_clause (variables (identifier)) (identifier))))) ===================================== Tuples ===================================== () (a, b) (a, b, c,) (print, exec) --- (module (expression_statement (tuple)) (expression_statement (tuple (identifier) (identifier))) (expression_statement (tuple (identifier) (identifier) (identifier))) (expression_statement (tuple (identifier) (identifier)))) ===================================== Generator expression ===================================== (a[b][c] for a, b, c in items) dict((a, b) for a, b in d) (a for b in c for d in e,) (x for x in range(1, 10)) --- (module (expression_statement (generator_expression (subscript (subscript (identifier) (identifier)) (identifier)) (for_in_clause (variables (identifier) (identifier) (identifier)) (identifier)))) (expression_statement (call (identifier) (generator_expression (tuple (identifier) (identifier)) (for_in_clause (variables (identifier) (identifier)) (identifier))))) (expression_statement (generator_expression (identifier) (for_in_clause (variables (identifier)) (identifier)) (for_in_clause (variables (identifier)) (identifier)))) (expression_statement (generator_expression (identifier) (for_in_clause (variables (identifier)) (call (identifier) (argument_list (integer) (integer)))))))