aravagarwal/CodeCloakPII
0
1================================================================================2Identifiers with Greek letters3================================================================================4 5ψ1 = β_γ + Ψ_56 7--------------------------------------------------------------------------------8 9(module10 (expression_statement11 (assignment12 left: (identifier)13 right: (binary_operator14 left: (identifier)15 right: (identifier)))))16 17================================================================================18Subscript expressions19================================================================================20 21a[1]22b[2, 3]23c[4, 5,]24 25--------------------------------------------------------------------------------26 27(module28 (expression_statement29 (subscript30 (identifier)31 (integer)))32 (expression_statement33 (subscript34 (identifier)35 (integer)36 (integer)))37 (expression_statement38 (subscript39 (identifier)40 (integer)41 (integer))))42 43================================================================================44Subscript slice expressions45================================================================================46 47a[:]48b[5:]49b[5:6, ...]50c[::]51 52--------------------------------------------------------------------------------53 54(module55 (expression_statement56 (subscript57 (identifier)58 (slice)))59 (expression_statement60 (subscript61 (identifier)62 (slice63 (integer))))64 (expression_statement65 (subscript66 (identifier)67 (slice68 (integer)69 (integer))70 (ellipsis)))71 (expression_statement72 (subscript73 (identifier)74 (slice))))75 76================================================================================77Attribute references78================================================================================79 80a.b.c81 82--------------------------------------------------------------------------------83 84(module85 (expression_statement86 (attribute87 (attribute88 (identifier)89 (identifier))90 (identifier))))91 92================================================================================93Await expressions94================================================================================95 96await i(j, 5)97return await i(j, 5)98async def region_exists(region: str) -> bool:99 return region in await all_regions()100 101assert await a(b) == c102 103--------------------------------------------------------------------------------104 105(module106 (expression_statement107 (await108 (call109 (identifier)110 (argument_list111 (identifier)112 (integer)))))113 (return_statement114 (await115 (call116 (identifier)117 (argument_list118 (identifier)119 (integer)))))120 (function_definition121 (identifier)122 (parameters123 (typed_parameter124 (identifier)125 (type126 (identifier))))127 (type128 (identifier))129 (block130 (return_statement131 (comparison_operator132 (identifier)133 (await134 (call135 (identifier)136 (argument_list)))))))137 (assert_statement138 (comparison_operator139 (await140 (call141 (identifier)142 (argument_list143 (identifier))))144 (identifier))))145 146================================================================================147Call expressions148================================================================================149 150__a__()151b(1)152c(e, f=g)153i(j, 5,)154 155--------------------------------------------------------------------------------156 157(module158 (expression_statement159 (call160 (identifier)161 (argument_list)))162 (expression_statement163 (call164 (identifier)165 (argument_list166 (integer))))167 (expression_statement168 (call169 (identifier)170 (argument_list171 (identifier)172 (keyword_argument173 (identifier)174 (identifier)))))175 (expression_statement176 (call177 (identifier)178 (argument_list179 (identifier)180 (integer)))))181 182================================================================================183Print used as an identifier184================================================================================185 186print()187print(a)188print(a, b=c)189print(d, e)190print(d, *e)191print(*f, **g,)192a(print)193 194--------------------------------------------------------------------------------195 196(module197 (expression_statement198 (call199 (identifier)200 (argument_list)))201 (expression_statement202 (call203 (identifier)204 (argument_list205 (identifier))))206 (expression_statement207 (call208 (identifier)209 (argument_list210 (identifier)211 (keyword_argument212 (identifier)213 (identifier)))))214 (expression_statement215 (call216 (identifier)217 (argument_list218 (identifier)219 (identifier))))220 (expression_statement221 (call222 (identifier)223 (argument_list224 (identifier)225 (list_splat226 (identifier)))))227 (expression_statement228 (call229 (identifier)230 (argument_list231 (list_splat232 (identifier))233 (dictionary_splat234 (identifier)))))235 (expression_statement236 (call237 (identifier)238 (argument_list239 (identifier)))))240 241================================================================================242Print used as a parameter243================================================================================244 245def a(print):246 b247def a(printer=print):248 c249def a(*print):250 b251def a(**print):252 b253def print():254 a255 256--------------------------------------------------------------------------------257 258(module259 (function_definition260 (identifier)261 (parameters262 (identifier))263 (block264 (expression_statement265 (identifier))))266 (function_definition267 (identifier)268 (parameters269 (default_parameter270 (identifier)271 (identifier)))272 (block273 (expression_statement274 (identifier))))275 (function_definition276 (identifier)277 (parameters278 (list_splat_pattern279 (identifier)))280 (block281 (expression_statement282 (identifier))))283 (function_definition284 (identifier)285 (parameters286 (dictionary_splat_pattern287 (identifier)))288 (block289 (expression_statement290 (identifier))))291 (function_definition292 (identifier)293 (parameters)294 (block295 (expression_statement296 (identifier)))))297 298================================================================================299Exec used as an identifier300================================================================================301 302exec("print \"'%s' has %i characters\" % (public_function(), len(public_function()))", {"__builtins__" : None}, safe_dict)303exec("""exec _code_ in _globs_, _locs_""")304 305--------------------------------------------------------------------------------306 307(module308 (expression_statement309 (call310 (identifier)311 (argument_list312 (string313 (string_start)314 (string_content315 (escape_sequence)316 (escape_sequence))317 (string_end))318 (dictionary319 (pair320 (string321 (string_start)322 (string_content)323 (string_end))324 (none)))325 (identifier))))326 (expression_statement327 (call328 (identifier)329 (argument_list330 (string331 (string_start)332 (string_content)333 (string_end))))))334 335================================================================================336Async / await used as identifiers337================================================================================338 339async = 4340await = 5341print async, await342 343--------------------------------------------------------------------------------344 345(module346 (expression_statement347 (assignment348 (identifier)349 (integer)))350 (expression_statement351 (assignment352 (identifier)353 (integer)))354 (print_statement355 (identifier)356 (identifier)))357 358================================================================================359Calls with splats360================================================================================361 362a(*())363a(**{})364a(*b)365c(d, *e, **g)366 367--------------------------------------------------------------------------------368 369(module370 (expression_statement371 (call372 (identifier)373 (argument_list374 (list_splat375 (tuple)))))376 (expression_statement377 (call378 (identifier)379 (argument_list380 (dictionary_splat381 (dictionary)))))382 (expression_statement383 (call384 (identifier)385 (argument_list386 (list_splat387 (identifier)))))388 (expression_statement389 (call390 (identifier)391 (argument_list392 (identifier)393 (list_splat394 (identifier))395 (dictionary_splat396 (identifier))))))397 398================================================================================399Math operators400================================================================================401 402a + b * c ** d - e / 5403-5404+x405~x406 407--------------------------------------------------------------------------------408 409(module410 (expression_statement411 (binary_operator412 (binary_operator413 (identifier)414 (binary_operator415 (identifier)416 (binary_operator417 (identifier)418 (identifier))))419 (binary_operator420 (identifier)421 (integer))))422 (expression_statement423 (unary_operator424 (integer)))425 (expression_statement426 (unary_operator427 (identifier)))428 (expression_statement429 (unary_operator430 (identifier))))431 432================================================================================433Binary Addition / Subtraction With Floats434================================================================================435 436.1-.0437.1+.0438.1-0439.1+0440 4411-.04421+.0443 444--------------------------------------------------------------------------------445 446(module447 (expression_statement448 (binary_operator449 (float)450 (float)))451 (expression_statement452 (binary_operator453 (float)454 (float)))455 (expression_statement456 (binary_operator457 (float)458 (integer)))459 (expression_statement460 (binary_operator461 (float)462 (integer)))463 (expression_statement464 (binary_operator465 (integer)466 (float)))467 (expression_statement468 (binary_operator469 (integer)470 (float))))471 472================================================================================473Power Operator Precedence474================================================================================475 4762**2**3477-2**2478 479--------------------------------------------------------------------------------480 481(module482 (expression_statement483 (binary_operator484 (integer)485 (binary_operator486 (integer)487 (integer))))488 (expression_statement489 (unary_operator490 (binary_operator491 (integer)492 (integer)))))493 494================================================================================495Operator precedence496================================================================================497 498a() + b[c] * c.d.e499 500--------------------------------------------------------------------------------501 502(module503 (expression_statement504 (binary_operator505 left: (call506 function: (identifier)507 arguments: (argument_list))508 right: (binary_operator509 left: (subscript510 value: (identifier)511 subscript: (identifier))512 right: (attribute513 object: (attribute514 object: (identifier)515 attribute: (identifier))516 attribute: (identifier))))))517 518================================================================================519Bitwise operators520================================================================================521 522a << b | c >> d & e523 524--------------------------------------------------------------------------------525 526(module527 (expression_statement528 (binary_operator529 (binary_operator530 (identifier)531 (identifier))532 (binary_operator533 (binary_operator534 (identifier)535 (identifier))536 (identifier)))))537 538================================================================================539Boolean operators540================================================================================541 542a or b and c543not d544not a and b or c545a and not b and c546 547--------------------------------------------------------------------------------548 549(module550 (expression_statement551 (boolean_operator552 (identifier)553 (boolean_operator554 (identifier)555 (identifier))))556 (expression_statement557 (not_operator558 (identifier)))559 (expression_statement560 (boolean_operator561 (boolean_operator562 (not_operator563 (identifier))564 (identifier))565 (identifier)))566 (expression_statement567 (boolean_operator568 (boolean_operator569 (identifier)570 (not_operator571 (identifier)))572 (identifier))))573 574================================================================================575Comparison operators576================================================================================577 578a < b <= c == d >= e > f579not a == b or c == d580a not in b581a is not b582 583--------------------------------------------------------------------------------584 585(module586 (expression_statement587 (comparison_operator588 (identifier)589 (identifier)590 (identifier)591 (identifier)592 (identifier)593 (identifier)))594 (expression_statement595 (boolean_operator596 (not_operator597 (comparison_operator598 (identifier)599 (identifier)))600 (comparison_operator601 (identifier)602 (identifier))))603 (expression_statement604 (comparison_operator605 (identifier)606 (identifier)))607 (expression_statement608 (comparison_operator609 (identifier)610 (identifier))))611 612================================================================================613Assignments614================================================================================615 616a = 1617a, b = 1, 2618a, *c = 1, 2, 3619a, = 1, 2620a[b] = c = d621a, *b.c = d622 623--------------------------------------------------------------------------------624 625(module626 (expression_statement627 (assignment628 (identifier)629 (integer)))630 (expression_statement631 (assignment632 (pattern_list633 (identifier)634 (identifier))635 (expression_list636 (integer)637 (integer))))638 (expression_statement639 (assignment640 (pattern_list641 (identifier)642 (list_splat_pattern643 (identifier)))644 (expression_list645 (integer)646 (integer)647 (integer))))648 (expression_statement649 (assignment650 (pattern_list651 (identifier))652 (expression_list653 (integer)654 (integer))))655 (expression_statement656 (assignment657 (subscript658 (identifier)659 (identifier))660 (assignment661 (identifier)662 (identifier))))663 (expression_statement664 (assignment665 (pattern_list666 (identifier)667 (list_splat_pattern668 (attribute669 (identifier)670 (identifier))))671 (identifier))))672 673================================================================================674Assignments with type annotations675================================================================================676 677tail_leaves: List[Leaf] = []678 679--------------------------------------------------------------------------------680 681(module682 (expression_statement683 (assignment684 (identifier)685 (type686 (generic_type687 (identifier)688 (type_parameter689 (type690 (identifier)))))691 (list))))692 693================================================================================694Augmented assignments695================================================================================696 697a += 1698b >>= 2699c //= 1700 701--------------------------------------------------------------------------------702 703(module704 (expression_statement705 (augmented_assignment706 (identifier)707 (integer)))708 (expression_statement709 (augmented_assignment710 (identifier)711 (integer)))712 (expression_statement713 (augmented_assignment714 (identifier)715 (integer))))716 717================================================================================718Named expressions719================================================================================720 721a := x722(y := f(x))723foo(x=(y := f(x)))724y0 = (y1 := f(x))725def foo(answer=(p := 42)):726 return answer;727def foo(answer: (p := 42) = 5):728 return answer;729foo(x := 3, cat='vector')730(z := (y := (x := 0)))731 732--------------------------------------------------------------------------------733 734(module735 (expression_statement736 (named_expression737 (identifier)738 (identifier)))739 (expression_statement740 (parenthesized_expression741 (named_expression742 (identifier)743 (call744 (identifier)745 (argument_list746 (identifier))))))747 (expression_statement748 (call749 (identifier)750 (argument_list751 (keyword_argument752 (identifier)753 (parenthesized_expression754 (named_expression755 (identifier)756 (call757 (identifier)758 (argument_list759 (identifier)))))))))760 (expression_statement761 (assignment762 (identifier)763 (parenthesized_expression764 (named_expression765 (identifier)766 (call767 (identifier)768 (argument_list769 (identifier)))))))770 (function_definition771 (identifier)772 (parameters773 (default_parameter774 (identifier)775 (parenthesized_expression776 (named_expression777 (identifier)778 (integer)))))779 (block780 (return_statement781 (identifier))))782 (function_definition783 (identifier)784 (parameters785 (typed_default_parameter786 (identifier)787 (type788 (parenthesized_expression789 (named_expression790 (identifier)791 (integer))))792 (integer)))793 (block794 (return_statement795 (identifier))))796 (expression_statement797 (call798 (identifier)799 (argument_list800 (named_expression801 (identifier)802 (integer))803 (keyword_argument804 (identifier)805 (string806 (string_start)807 (string_content)808 (string_end))))))809 (expression_statement810 (parenthesized_expression811 (named_expression812 (identifier)813 (parenthesized_expression814 (named_expression815 (identifier)816 (parenthesized_expression817 (named_expression818 (identifier)819 (integer)))))))))820 821================================================================================822Yield expressions823================================================================================824 825def example():826 yield827 yield 1828 x = yield 2829 yield from a830 yield from (yield from (x for x in range(1, 10)))831 832--------------------------------------------------------------------------------833 834(module835 (function_definition836 (identifier)837 (parameters)838 (block839 (expression_statement840 (yield))841 (expression_statement842 (yield843 (integer)))844 (expression_statement845 (assignment846 (identifier)847 (yield848 (integer))))849 (expression_statement850 (yield851 (identifier)))852 (expression_statement853 (yield854 (parenthesized_expression855 (yield856 (generator_expression857 (identifier)858 (for_in_clause859 (identifier)860 (call861 (identifier)862 (argument_list863 (integer)864 (integer))))))))))))865 866================================================================================867lambdas868================================================================================869 870lambda b, c: d("e" % f)871lambda: True872lambda a, b = c, *d, **e: a873lambda (a, b): (a, b)874 875--------------------------------------------------------------------------------876 877(module878 (expression_statement879 (lambda880 (lambda_parameters881 (identifier)882 (identifier))883 (call884 (identifier)885 (argument_list886 (binary_operator887 (string888 (string_start)889 (string_content)890 (string_end))891 (identifier))))))892 (expression_statement893 (lambda894 (true)))895 (expression_statement896 (lambda897 (lambda_parameters898 (identifier)899 (default_parameter900 (identifier)901 (identifier))902 (list_splat_pattern903 (identifier))904 (dictionary_splat_pattern905 (identifier)))906 (identifier)))907 (expression_statement908 (lambda909 (lambda_parameters910 (tuple_pattern911 (identifier)912 (identifier)))913 (tuple914 (identifier)915 (identifier)))))916 917================================================================================918Tuples with splats919================================================================================920 921(foo, *bar, *baz)922 923--------------------------------------------------------------------------------924 925(module926 (expression_statement927 (tuple928 (identifier)929 (list_splat930 (identifier))931 (list_splat932 (identifier)))))933 934================================================================================935Tuples with yield936================================================================================937 938(a, yield a, b, c)939 940--------------------------------------------------------------------------------941 942(module943 (expression_statement944 (tuple945 (identifier)946 (yield947 (expression_list948 (identifier)949 (identifier)950 (identifier))))))951 952================================================================================953Default Tuple Arguments954================================================================================955 956def comp_args((a, b)=(3, 4)):957 return a, b958 959--------------------------------------------------------------------------------960 961(module962 (function_definition963 (identifier)964 (parameters965 (default_parameter966 (tuple_pattern967 (identifier)968 (identifier))969 (tuple970 (integer)971 (integer))))972 (block973 (return_statement974 (expression_list975 (identifier)976 (identifier))))))977 978================================================================================979Conditional if expressions980================================================================================981 982a = b if c else d983something() if a else d984slice(1,1,1) if a else d985 986--------------------------------------------------------------------------------987 988(module989 (expression_statement990 (assignment991 (identifier)992 (conditional_expression993 (identifier)994 (identifier)995 (identifier))))996 (expression_statement997 (conditional_expression998 (call999 (identifier)1000 (argument_list))1001 (identifier)1002 (identifier)))1003 (expression_statement1004 (conditional_expression1005 (call1006 (identifier)1007 (argument_list1008 (integer)1009 (integer)1010 (integer)))1011 (identifier)1012 (identifier))))1013 1014================================================================================1015Async context managers and iterators1016================================================================================1017 1018async with a as b:1019 async for c in d:1020 [e async for f in g]1021 1022--------------------------------------------------------------------------------1023 1024(module1025 (with_statement1026 (with_clause1027 (with_item1028 value: (as_pattern1029 (identifier)1030 alias: (as_pattern_target1031 (identifier)))))1032 body: (block1033 (for_statement1034 left: (identifier)1035 right: (identifier)1036 body: (block1037 (expression_statement1038 (list_comprehension1039 body: (identifier)1040 (for_in_clause1041 left: (identifier)1042 right: (identifier)))))))))1043 1044================================================================================1045Arbitrary indentation between brackets1046================================================================================1047 1048def a():1049 b(10501,105121052 )1053 1054 c = [105531056 ]1057 1058--------------------------------------------------------------------------------1059 1060(module1061 (function_definition1062 (identifier)1063 (parameters)1064 (block1065 (expression_statement1066 (call1067 (identifier)1068 (argument_list1069 (integer)1070 (integer))))1071 (expression_statement1072 (assignment1073 (identifier)1074 (list1075 (integer)))))))1076 1077================================================================================1078Splat Inside of Expression List1079================================================================================1080 1081a,c = [1,2],31082w, x, y, z = 0, *a, c1083 1084--------------------------------------------------------------------------------1085 1086(module1087 (expression_statement1088 (assignment1089 (pattern_list1090 (identifier)1091 (identifier))1092 (expression_list1093 (list1094 (integer)1095 (integer))1096 (integer))))1097 (expression_statement1098 (assignment1099 (pattern_list1100 (identifier)1101 (identifier)1102 (identifier)1103 (identifier))1104 (expression_list1105 (integer)1106 (list_splat1107 (identifier))1108 (identifier)))))1109 