aravagarwal/CodeCloakPII
0
1================================================================================2Import statements3================================================================================4 5import a, b6import b.c as d7import a.b.c8 9--------------------------------------------------------------------------------10 11(module12 (import_statement13 (dotted_name14 (identifier))15 (dotted_name16 (identifier)))17 (import_statement18 (aliased_import19 (dotted_name20 (identifier)21 (identifier))22 (identifier)))23 (import_statement24 (dotted_name25 (identifier)26 (identifier)27 (identifier))))28 29================================================================================30Import-from statements31================================================================================32 33from a import b34from a import *35from a import (b, c)36from a.b import c37from . import b38from .. import b39from .a import b40from ..a import b41 42--------------------------------------------------------------------------------43 44(module45 (import_from_statement46 (dotted_name47 (identifier))48 (dotted_name49 (identifier)))50 (import_from_statement51 (dotted_name52 (identifier))53 (wildcard_import))54 (import_from_statement55 (dotted_name56 (identifier))57 (dotted_name58 (identifier))59 (dotted_name60 (identifier)))61 (import_from_statement62 (dotted_name63 (identifier)64 (identifier))65 (dotted_name66 (identifier)))67 (import_from_statement68 (relative_import69 (import_prefix))70 (dotted_name71 (identifier)))72 (import_from_statement73 (relative_import74 (import_prefix))75 (dotted_name76 (identifier)))77 (import_from_statement78 (relative_import79 (import_prefix)80 (dotted_name81 (identifier)))82 (dotted_name83 (identifier)))84 (import_from_statement85 (relative_import86 (import_prefix)87 (dotted_name88 (identifier)))89 (dotted_name90 (identifier))))91 92================================================================================93Future import statements94================================================================================95 96from __future__ import print_statement97from __future__ import python498from __future__ import (absolute_import, division, print_function,99 unicode_literals)100--------------------------------------------------------------------------------101 102(module103 (future_import_statement104 (dotted_name105 (identifier)))106 (future_import_statement107 (dotted_name108 (identifier)))109 (future_import_statement110 (dotted_name111 (identifier))112 (dotted_name113 (identifier))114 (dotted_name115 (identifier))116 (dotted_name117 (identifier))))118 119================================================================================120Print statements121================================================================================122 123print a124print b, c125print 0 or 1, 1 or 0,126print 0 or 1127print not True128 129--------------------------------------------------------------------------------130 131(module132 (print_statement133 (identifier))134 (print_statement135 (identifier)136 (identifier))137 (print_statement138 (boolean_operator139 (integer)140 (integer))141 (boolean_operator142 (integer)143 (integer)))144 (print_statement145 (boolean_operator146 (integer)147 (integer)))148 (print_statement149 (not_operator150 (true))))151 152================================================================================153Print statements with redirection154================================================================================155 156print >> a157print >> a, "b", "c"158 159--------------------------------------------------------------------------------160 161(module162 (print_statement163 (chevron164 (identifier)))165 (print_statement166 (chevron167 (identifier))168 (string169 (string_start)170 (string_content)171 (string_end))172 (string173 (string_start)174 (string_content)175 (string_end))))176 177================================================================================178Assert statements179================================================================================180 181assert a182assert b, c183 184--------------------------------------------------------------------------------185 186(module187 (assert_statement188 (identifier))189 (assert_statement190 (identifier)191 (identifier)))192 193================================================================================194Expression statements195================================================================================196 197a198b + c1991, 2, 32001, 2, 3,201 202--------------------------------------------------------------------------------203 204(module205 (expression_statement206 (identifier))207 (expression_statement208 (binary_operator209 (identifier)210 (identifier)))211 (expression_statement212 (integer)213 (integer)214 (integer))215 (expression_statement216 (integer)217 (integer)218 (integer)))219 220================================================================================221Delete statements222================================================================================223 224del a[1], b[2]225 226--------------------------------------------------------------------------------227 228(module229 (delete_statement230 (expression_list231 (subscript232 (identifier)233 (integer))234 (subscript235 (identifier)236 (integer)))))237 238================================================================================239Control-flow statements240================================================================================241 242while true:243 pass244 break245 continue246 247--------------------------------------------------------------------------------248 249(module250 (while_statement251 condition: (identifier)252 body: (block253 (pass_statement)254 (break_statement)255 (continue_statement))))256 257================================================================================258Return statements259================================================================================260 261return262return a + b, c263return not b264 265--------------------------------------------------------------------------------266 267(module268 (return_statement)269 (return_statement270 (expression_list271 (binary_operator272 (identifier)273 (identifier))274 (identifier)))275 (return_statement276 (not_operator277 (identifier))))278 279================================================================================280If statements281================================================================================282 283if a:284 b285 c286 287--------------------------------------------------------------------------------288 289(module290 (if_statement291 condition: (identifier)292 consequence: (block293 (expression_statement294 (identifier))295 (expression_statement296 (identifier)))))297 298================================================================================299If else statements300================================================================================301 302if a:303 b304elif c:305 d306else:307 f308 309if a:310 b311else:312 f313 314if a: b315 316if a: b; c317 318--------------------------------------------------------------------------------319 320(module321 (if_statement322 condition: (identifier)323 consequence: (block324 (expression_statement325 (identifier)))326 alternative: (elif_clause327 condition: (identifier)328 consequence: (block329 (expression_statement330 (identifier))))331 alternative: (else_clause332 body: (block333 (expression_statement334 (identifier)))))335 (if_statement336 condition: (identifier)337 consequence: (block338 (expression_statement339 (identifier)))340 alternative: (else_clause341 body: (block342 (expression_statement343 (identifier)))))344 (if_statement345 condition: (identifier)346 consequence: (block347 (expression_statement348 (identifier))))349 (if_statement350 condition: (identifier)351 consequence: (block352 (expression_statement353 (identifier))354 (expression_statement355 (identifier)))))356 357================================================================================358Nested if statements359================================================================================360 361if a:362 if b:363 c364 else:365 if e:366 f367g368 369--------------------------------------------------------------------------------370 371(module372 (if_statement373 condition: (identifier)374 consequence: (block375 (if_statement376 condition: (identifier)377 consequence: (block378 (expression_statement379 (identifier)))380 alternative: (else_clause381 body: (block382 (if_statement383 condition: (identifier)384 consequence: (block385 (expression_statement386 (identifier)))))))))387 (expression_statement388 (identifier)))389 390================================================================================391While statements392================================================================================393 394while a:395 b396 397while c:398 d399else:400 e401 f402 403--------------------------------------------------------------------------------404 405(module406 (while_statement407 condition: (identifier)408 body: (block409 (expression_statement410 (identifier))))411 (while_statement412 condition: (identifier)413 body: (block414 (expression_statement415 (identifier)))416 alternative: (else_clause417 body: (block418 (expression_statement419 (identifier))420 (expression_statement421 (identifier))))))422 423================================================================================424For statements425================================================================================426 427for line, i in lines:428 print line429 for character, j in line:430 print character431else:432 print x433 434for x, in [(1,), (2,), (3,)]:435 x436 437--------------------------------------------------------------------------------438 439(module440 (for_statement441 left: (pattern_list442 (identifier)443 (identifier))444 right: (identifier)445 body: (block446 (print_statement447 argument: (identifier))448 (for_statement449 left: (pattern_list450 (identifier)451 (identifier))452 right: (identifier)453 body: (block454 (print_statement455 argument: (identifier)))))456 alternative: (else_clause457 body: (block458 (print_statement459 argument: (identifier)))))460 (for_statement461 left: (pattern_list462 (identifier))463 right: (list464 (tuple465 (integer))466 (tuple467 (integer))468 (tuple469 (integer)))470 body: (block471 (expression_statement472 (identifier)))))473 474================================================================================475Try statements476================================================================================477 478try:479 a480except b:481 c482except d as e:483 f484except g, h:485 i486except:487 j488 489try:490 a491except b:492 c493 d494else:495 e496finally:497 f498 499try:500 a501except* b:502 c503except* d as e:504 f505else:506 g507finally:508 h509 510--------------------------------------------------------------------------------511 512(module513 (try_statement514 body: (block515 (expression_statement516 (identifier)))517 (except_clause518 (identifier)519 (block520 (expression_statement521 (identifier))))522 (except_clause523 (as_pattern524 (identifier)525 alias: (as_pattern_target526 (identifier)))527 (block528 (expression_statement529 (identifier))))530 (except_clause531 (identifier)532 (identifier)533 (block534 (expression_statement535 (identifier))))536 (except_clause537 (block538 (expression_statement539 (identifier)))))540 (try_statement541 body: (block542 (expression_statement543 (identifier)))544 (except_clause545 (identifier)546 (block547 (expression_statement548 (identifier))549 (expression_statement550 (identifier))))551 (else_clause552 body: (block553 (expression_statement554 (identifier))))555 (finally_clause556 (block557 (expression_statement558 (identifier)))))559 (try_statement560 body: (block561 (expression_statement562 (identifier)))563 (except_group_clause564 (identifier)565 (block566 (expression_statement567 (identifier))))568 (except_group_clause569 (as_pattern570 (identifier)571 alias: (as_pattern_target572 (identifier)))573 (block574 (expression_statement575 (identifier))))576 (else_clause577 body: (block578 (expression_statement579 (identifier))))580 (finally_clause581 (block582 (expression_statement583 (identifier))))))584 585================================================================================586With statements587================================================================================588 589with a as b:590 c591 592with (open('d') as d,593 open('e') as e):594 f595 596with e as f, g as h,:597 i598 599--------------------------------------------------------------------------------600 601(module602 (with_statement603 (with_clause604 (with_item605 (as_pattern606 (identifier)607 (as_pattern_target608 (identifier)))))609 (block610 (expression_statement611 (identifier))))612 (with_statement613 (with_clause614 (with_item615 (as_pattern616 (call617 (identifier)618 (argument_list619 (string620 (string_start)621 (string_content)622 (string_end))))623 (as_pattern_target624 (identifier))))625 (with_item626 (as_pattern627 (call628 (identifier)629 (argument_list630 (string631 (string_start)632 (string_content)633 (string_end))))634 (as_pattern_target635 (identifier)))))636 (block637 (expression_statement638 (identifier))))639 (with_statement640 (with_clause641 (with_item642 (as_pattern643 (identifier)644 (as_pattern_target645 (identifier))))646 (with_item647 (as_pattern648 (identifier)649 (as_pattern_target650 (identifier)))))651 (block652 (expression_statement653 (identifier)))))654 655================================================================================656Async Function definitions657================================================================================658 659async def a():660 b661 662async def c(d):663 e664 665async def g(g, h,):666 i667 668async def c(a: str):669 a670 671async def c(a: b.c):672 a673 674async def d(a: Sequence[T]) -> T:675 a676 677async def i(a, b=c, *c, **d):678 a679 680async def d(a: str) -> None:681 return None682 683async def d(a:str="default", b=c) -> None:684 return None685 686--------------------------------------------------------------------------------687 688(module689 (function_definition690 name: (identifier)691 parameters: (parameters)692 body: (block693 (expression_statement694 (identifier))))695 (function_definition696 name: (identifier)697 parameters: (parameters698 (identifier))699 body: (block700 (expression_statement701 (identifier))))702 (function_definition703 name: (identifier)704 parameters: (parameters705 (identifier)706 (identifier))707 body: (block708 (expression_statement709 (identifier))))710 (function_definition711 name: (identifier)712 parameters: (parameters713 (typed_parameter714 (identifier)715 type: (type716 (identifier))))717 body: (block718 (expression_statement719 (identifier))))720 (function_definition721 name: (identifier)722 parameters: (parameters723 (typed_parameter724 (identifier)725 type: (type726 (attribute727 object: (identifier)728 attribute: (identifier)))))729 body: (block730 (expression_statement731 (identifier))))732 (function_definition733 name: (identifier)734 parameters: (parameters735 (typed_parameter736 (identifier)737 type: (type738 (generic_type739 (identifier)740 (type_parameter741 (type742 (identifier)))))))743 return_type: (type744 (identifier))745 body: (block746 (expression_statement747 (identifier))))748 (function_definition749 name: (identifier)750 parameters: (parameters751 (identifier)752 (default_parameter753 name: (identifier)754 value: (identifier))755 (list_splat_pattern756 (identifier))757 (dictionary_splat_pattern758 (identifier)))759 body: (block760 (expression_statement761 (identifier))))762 (function_definition763 name: (identifier)764 parameters: (parameters765 (typed_parameter766 (identifier)767 type: (type768 (identifier))))769 return_type: (type770 (none))771 body: (block772 (return_statement773 (none))))774 (function_definition775 name: (identifier)776 parameters: (parameters777 (typed_default_parameter778 name: (identifier)779 type: (type780 (identifier))781 value: (string782 (string_start)783 (string_content)784 (string_end)))785 (default_parameter786 name: (identifier)787 value: (identifier)))788 return_type: (type789 (none))790 body: (block791 (return_statement792 (none)))))793 794================================================================================795Function definitions796================================================================================797 798def e((a,b)):799 return (a,b)800 801def e(*list: str):802 pass803 804def e(**list: str):805 pass806 807def f():808 nonlocal a809 810def g(h, i, /, j, *, k=100, **kwarg):811 return h,i,j,k,kwarg812 813def h(*a):814 i((*a))815 j(((*a)))816 817def foo():818 pass \819\820\821 822--------------------------------------------------------------------------------823 824(module825 (function_definition826 name: (identifier)827 parameters: (parameters828 (tuple_pattern829 (identifier)830 (identifier)))831 body: (block832 (return_statement833 (tuple834 (identifier)835 (identifier)))))836 (function_definition837 name: (identifier)838 parameters: (parameters839 (typed_parameter840 (list_splat_pattern841 (identifier))842 type: (type843 (identifier))))844 body: (block845 (pass_statement)))846 (function_definition847 name: (identifier)848 parameters: (parameters849 (typed_parameter850 (dictionary_splat_pattern851 (identifier))852 type: (type853 (identifier))))854 body: (block855 (pass_statement)))856 (function_definition857 name: (identifier)858 parameters: (parameters)859 body: (block860 (nonlocal_statement861 (identifier))))862 (function_definition863 name: (identifier)864 parameters: (parameters865 (identifier)866 (identifier)867 (positional_separator)868 (identifier)869 (keyword_separator)870 (default_parameter871 name: (identifier)872 value: (integer))873 (dictionary_splat_pattern874 (identifier)))875 body: (block876 (return_statement877 (expression_list878 (identifier)879 (identifier)880 (identifier)881 (identifier)882 (identifier)))))883 (function_definition884 name: (identifier)885 parameters: (parameters886 (list_splat_pattern887 (identifier)))888 body: (block889 (expression_statement890 (call891 function: (identifier)892 arguments: (argument_list893 (parenthesized_expression894 (list_splat895 (identifier))))))896 (expression_statement897 (call898 function: (identifier)899 arguments: (argument_list900 (parenthesized_expression901 (parenthesized_expression902 (list_splat903 (identifier)))))))))904 (function_definition905 name: (identifier)906 parameters: (parameters)907 body: (block908 (pass_statement)))909 (line_continuation)910 (line_continuation)911 (line_continuation))912 913================================================================================914Empty blocks915================================================================================916 917# These are not actually valid python; blocks918# must contain at least one statement. But we919# allow them because error recovery for empty920# blocks doesn't work very well otherwise.921def a(b, c):922 923if d:924 print e925 while f():926 927--------------------------------------------------------------------------------928 929(module930 (comment)931 (comment)932 (comment)933 (comment)934 (function_definition935 name: (identifier)936 parameters: (parameters937 (identifier)938 (identifier))939 body: (block))940 (if_statement941 condition: (identifier)942 consequence: (block943 (print_statement944 argument: (identifier))945 (while_statement946 condition: (call947 function: (identifier)948 arguments: (argument_list))949 body: (block)))))950 951================================================================================952Class definitions953================================================================================954 955class A:956 def b(self):957 return c958class B():959 pass960class B(method1):961 def method1(self):962 return963class C(method1, Sequence[T]):964 pass965class D(Sequence[T, U]):966 pass967 968--------------------------------------------------------------------------------969 970(module971 (class_definition972 (identifier)973 (block974 (function_definition975 (identifier)976 (parameters977 (identifier))978 (block979 (return_statement980 (identifier))))))981 (class_definition982 (identifier)983 (argument_list)984 (block985 (pass_statement)))986 (class_definition987 (identifier)988 (argument_list989 (identifier))990 (block991 (function_definition992 (identifier)993 (parameters994 (identifier))995 (block996 (return_statement)))))997 (class_definition998 (identifier)999 (argument_list1000 (identifier)1001 (subscript1002 (identifier)1003 (identifier)))1004 (block1005 (pass_statement)))1006 (class_definition1007 (identifier)1008 (argument_list1009 (subscript1010 (identifier)1011 (identifier)1012 (identifier)))1013 (block1014 (pass_statement))))1015 1016================================================================================1017Class definitions with superclasses1018================================================================================1019 1020class A(B, C):1021 def d():1022 e1023 1024--------------------------------------------------------------------------------1025 1026(module1027 (class_definition1028 (identifier)1029 (argument_list1030 (identifier)1031 (identifier))1032 (block1033 (function_definition1034 (identifier)1035 (parameters)1036 (block1037 (expression_statement1038 (identifier)))))))1039 1040================================================================================1041Decorated definitions1042================================================================================1043 1044@a.b1045class C:1046 @d(1)1047 @e[2].f.g1048 def f():1049 g1050 1051 @f()1052 async def f():1053 g1054 1055@buttons[0].clicked.connect1056def spam():1057 ...1058 1059--------------------------------------------------------------------------------1060 1061(module1062 (decorated_definition1063 (decorator1064 (attribute1065 (identifier)1066 (identifier)))1067 (class_definition1068 (identifier)1069 (block1070 (decorated_definition1071 (decorator1072 (call1073 (identifier)1074 (argument_list1075 (integer))))1076 (decorator1077 (attribute1078 (attribute1079 (subscript1080 (identifier)1081 (integer))1082 (identifier))1083 (identifier)))1084 (function_definition1085 (identifier)1086 (parameters)1087 (block1088 (expression_statement1089 (identifier)))))1090 (decorated_definition1091 (decorator1092 (call1093 (identifier)1094 (argument_list)))1095 (function_definition1096 (identifier)1097 (parameters)1098 (block1099 (expression_statement1100 (identifier))))))))1101 (decorated_definition1102 (decorator1103 (attribute1104 (attribute1105 (subscript1106 (identifier)1107 (integer))1108 (identifier))1109 (identifier)))1110 (function_definition1111 (identifier)1112 (parameters)1113 (block1114 (expression_statement1115 (ellipsis))))))1116 1117================================================================================1118Raise statements1119================================================================================1120 1121raise1122raise RuntimeError('NO')1123raise RunTimeError('NO') from e1124 1125--------------------------------------------------------------------------------1126 1127(module1128 (raise_statement)1129 (raise_statement1130 (call1131 (identifier)1132 (argument_list1133 (string1134 (string_start)1135 (string_content)1136 (string_end)))))1137 (raise_statement1138 (call1139 (identifier)1140 (argument_list1141 (string1142 (string_start)1143 (string_content)1144 (string_end))))1145 (identifier)))1146 1147================================================================================1148Comments1149================================================================================1150 1151print a1152# hi1153print b # bye1154print c1155 1156--------------------------------------------------------------------------------1157 1158(module1159 (print_statement1160 (identifier))1161 (comment)1162 (print_statement1163 (identifier))1164 (comment)1165 (print_statement1166 (identifier)))1167 1168================================================================================1169Comments at different indentation levels1170================================================================================1171 1172if a:1173 # one1174# two1175 # three1176 b1177 # four1178 c1179 1180--------------------------------------------------------------------------------1181 1182(module1183 (if_statement1184 (identifier)1185 (comment)1186 (comment)1187 (comment)1188 (block1189 (expression_statement1190 (identifier))1191 (comment)1192 (expression_statement1193 (identifier)))))1194 1195================================================================================1196Comments after dedents1197================================================================================1198 1199if a:1200 b