aravagarwal/CodeCloakPII
0
1================================================================================2standalone assignment expression3================================================================================4 5x = 3;6 7--------------------------------------------------------------------------------8 9(program10 (expression_statement11 (assignment_expression12 (identifier)13 (decimal_integer_literal))))14 15================================================================================16standalone binary expression17================================================================================18 19a > b;20a < b;21a == b;22a >= b;23a <= b;24a != b;25a && b;26a || b;27a & b;28a | b;29a ^ b;30a % b;31a << b;32a >> b;33a >>> b;343 + 2;353 - 2;363 * 2;379 / 3;38 39--------------------------------------------------------------------------------40 41(program42 (expression_statement43 (binary_expression44 (identifier)45 (identifier)))46 (expression_statement47 (binary_expression48 (identifier)49 (identifier)))50 (expression_statement51 (binary_expression52 (identifier)53 (identifier)))54 (expression_statement55 (binary_expression56 (identifier)57 (identifier)))58 (expression_statement59 (binary_expression60 (identifier)61 (identifier)))62 (expression_statement63 (binary_expression64 (identifier)65 (identifier)))66 (expression_statement67 (binary_expression68 (identifier)69 (identifier)))70 (expression_statement71 (binary_expression72 (identifier)73 (identifier)))74 (expression_statement75 (binary_expression76 (identifier)77 (identifier)))78 (expression_statement79 (binary_expression80 (identifier)81 (identifier)))82 (expression_statement83 (binary_expression84 (identifier)85 (identifier)))86 (expression_statement87 (binary_expression88 (identifier)89 (identifier)))90 (expression_statement91 (binary_expression92 (identifier)93 (identifier)))94 (expression_statement95 (binary_expression96 (identifier)97 (identifier)))98 (expression_statement99 (binary_expression100 (identifier)101 (identifier)))102 (expression_statement103 (binary_expression104 (decimal_integer_literal)105 (decimal_integer_literal)))106 (expression_statement107 (binary_expression108 (decimal_integer_literal)109 (decimal_integer_literal)))110 (expression_statement111 (binary_expression112 (decimal_integer_literal)113 (decimal_integer_literal)))114 (expression_statement115 (binary_expression116 (decimal_integer_literal)117 (decimal_integer_literal))))118 119================================================================================120instanceof expressions121================================================================================122 123a instanceof C.D;124a instanceof List<B>;125c instanceof C[];126c instanceof C foo;127d instanceof final D bar;128 129--------------------------------------------------------------------------------130 131(program132 (expression_statement133 (instanceof_expression134 (identifier)135 (scoped_type_identifier136 (type_identifier)137 (type_identifier))))138 (expression_statement139 (instanceof_expression140 (identifier)141 (generic_type142 (type_identifier)143 (type_arguments144 (type_identifier)))))145 (expression_statement146 (instanceof_expression147 (identifier)148 (array_type149 (type_identifier)150 (dimensions))))151 (expression_statement152 (instanceof_expression153 (identifier)154 (type_identifier)155 (identifier)))156 (expression_statement157 (instanceof_expression158 (identifier)159 (type_identifier)160 (identifier))))161 162================================================================================163if statements164================================================================================165 166if (x)167 y;168 169--------------------------------------------------------------------------------170 171(program172 (if_statement173 condition: (condition174 (identifier))175 consequence: (expression_statement176 (identifier))))177 178================================================================================179if statements with nested parenthesized expression180================================================================================181 182if ((x))183 y;184 185--------------------------------------------------------------------------------186 187(program188 (if_statement189 condition: (condition190 (parenthesized_expression191 (identifier)))192 consequence: (expression_statement193 (identifier))))194 195================================================================================196if statements with braces197================================================================================198 199if (x) {200 y;201}202 203--------------------------------------------------------------------------------204 205(program206 (if_statement207 condition: (condition208 (identifier))209 consequence: (block210 (expression_statement211 (identifier)))))212 213================================================================================214if statements with assignment without braces215================================================================================216 217if (x = 3)218 y = 2;219 220--------------------------------------------------------------------------------221 222(program223 (if_statement224 condition: (condition225 (assignment_expression226 left: (identifier)227 right: (decimal_integer_literal)))228 consequence: (expression_statement229 (assignment_expression230 left: (identifier)231 right: (decimal_integer_literal)))))232 233================================================================================234if then else statement235================================================================================236 237if (x = 3) {238 y = 9;239} else {240 y = 0;241}242 243--------------------------------------------------------------------------------244 245(program246 (if_statement247 condition: (condition248 (assignment_expression249 left: (identifier)250 right: (decimal_integer_literal)))251 consequence: (block252 (expression_statement253 (assignment_expression254 left: (identifier)255 right: (decimal_integer_literal))))256 alternative: (block257 (expression_statement258 (assignment_expression259 left: (identifier)260 right: (decimal_integer_literal))))))261 262================================================================================263nested if then else statements264================================================================================265 266if (a)267 if (b)268 c();269 else270 d();271 272--------------------------------------------------------------------------------273 274(program275 (if_statement276 (condition277 (identifier))278 (if_statement279 (condition280 (identifier))281 (expression_statement282 (method_invocation283 (identifier)284 (argument_list)))285 (expression_statement286 (method_invocation287 (identifier)288 (argument_list))))))289 290================================================================================291ternary expressions292================================================================================293 294max = (a > b) ? a : b;295 296--------------------------------------------------------------------------------297 298(program299 (expression_statement300 (assignment_expression301 left: (identifier)302 right: (ternary_expression303 condition: (parenthesized_expression304 (binary_expression305 left: (identifier)306 right: (identifier)))307 consequence: (identifier)308 alternative: (identifier)))))309 310================================================================================311for statement312================================================================================313 314for(int i = 1; i < 11; i++) {315 System.out.println("Count is: " + i);316}317 318for (j.init(i); j.check(); j.update()) {319 System.out.println(j);320}321 322--------------------------------------------------------------------------------323 324(program325 (for_statement326 init: (local_variable_declaration327 type: (integral_type)328 declarator: (variable_declarator329 name: (identifier)330 value: (decimal_integer_literal)))331 condition: (binary_expression332 left: (identifier)333 right: (decimal_integer_literal))334 update: (update_expression335 (identifier))336 body: (block337 (expression_statement338 (method_invocation339 object: (field_access340 object: (identifier)341 field: (identifier))342 name: (identifier)343 arguments: (argument_list344 (binary_expression345 left: (string_literal346 (string_fragment))347 right: (identifier)))))))348 (for_statement349 init: (method_invocation350 object: (identifier)351 name: (identifier)352 arguments: (argument_list353 (identifier)))354 condition: (method_invocation355 object: (identifier)356 name: (identifier)357 arguments: (argument_list))358 update: (method_invocation359 object: (identifier)360 name: (identifier)361 arguments: (argument_list))362 body: (block363 (expression_statement364 (method_invocation365 object: (field_access366 object: (identifier)367 field: (identifier))368 name: (identifier)369 arguments: (argument_list370 (identifier)))))))371 372================================================================================373Enhanced for statements374================================================================================375 376for (A b : c) {377 d(b);378}379 380--------------------------------------------------------------------------------381 382(program383 (enhanced_for_statement384 (type_identifier)385 (identifier)386 (identifier)387 (block388 (expression_statement389 (method_invocation390 (identifier)391 (argument_list392 (identifier)))))))393 394================================================================================395while statement396================================================================================397 398class WhileDemo {399 public static void main(String[] args){400 int count = 1;401 while (count < 11) {402 System.out.println("Count is: " + count);403 count++;404 }405 }406}407 408--------------------------------------------------------------------------------409 410(program411 (class_declaration412 name: (identifier)413 body: (class_body414 (method_declaration415 (modifiers)416 type: (void_type)417 name: (identifier)418 parameters: (formal_parameters419 (formal_parameter420 type: (array_type421 element: (type_identifier)422 dimensions: (dimensions))423 name: (identifier)))424 body: (block425 (local_variable_declaration426 type: (integral_type)427 declarator: (variable_declarator428 name: (identifier)429 value: (decimal_integer_literal)))430 (while_statement431 condition: (condition432 (binary_expression433 left: (identifier)434 right: (decimal_integer_literal)))435 body: (block436 (expression_statement437 (method_invocation438 object: (field_access439 object: (identifier)440 field: (identifier))441 name: (identifier)442 arguments: (argument_list443 (binary_expression444 left: (string_literal445 (string_fragment))446 right: (identifier)))))447 (expression_statement448 (update_expression449 (identifier))))))))))450 451================================================================================452try-with-resources statements453================================================================================454 455try (FileInputStream input = new FileInputStream("file.txt")) {456 int data = input.read();457}458 459--------------------------------------------------------------------------------460 461(program462 (try_with_resources_statement463 resources: (resource_specification464 (resource465 type: (type_identifier)466 name: (identifier)467 value: (object_creation_expression468 type: (type_identifier)469 arguments: (argument_list470 (string_literal471 (string_fragment))))))472 body: (block473 (local_variable_declaration474 type: (integral_type)475 declarator: (variable_declarator476 name: (identifier)477 value: (method_invocation478 object: (identifier)479 name: (identifier)480 arguments: (argument_list)))))))481 482================================================================================483return statement484================================================================================485 486return x;487return x * y;488return x + 2;489return fire(x);490 491--------------------------------------------------------------------------------492 493(program494 (return_statement495 (identifier))496 (return_statement497 (binary_expression498 (identifier)499 (identifier)))500 (return_statement501 (binary_expression502 (identifier)503 (decimal_integer_literal)))504 (return_statement505 (method_invocation506 (identifier)507 (argument_list508 (identifier)))))509 510================================================================================511annotation512================================================================================513 514@SuppressWarnings(value = "unchecked")515@GwtCompatible(emulated = true)516class Duck {517 518}519 520--------------------------------------------------------------------------------521 522(program523 (class_declaration524 (modifiers525 (annotation526 (identifier)527 (annotation_argument_list528 (element_value_pair529 (identifier)530 (string_literal531 (string_fragment)))))532 (annotation533 (identifier)534 (annotation_argument_list535 (element_value_pair536 (identifier)537 (true)))))538 (identifier)539 (class_body)))540 541================================================================================542marker annotation543================================================================================544 545@Override546class Quack {547 @bar548 public void foo() {549 550 }551}552 553--------------------------------------------------------------------------------554 555(program556 (class_declaration557 (modifiers558 (marker_annotation559 (identifier)))560 (identifier)561 (class_body562 (method_declaration563 (modifiers564 (marker_annotation565 (identifier)))566 (void_type)567 (identifier)568 (formal_parameters)569 (block)))))570 571================================================================================572single element annotation573================================================================================574 575@Duck(waddle.swim)576@SuppressWarnings("unchecked")577class Quack {578 579}580 581--------------------------------------------------------------------------------582 583(program584 (class_declaration585 (modifiers586 (annotation587 (identifier)588 (annotation_argument_list589 (field_access590 (identifier)591 (identifier))))592 (annotation593 (identifier)594 (annotation_argument_list595 (string_literal596 (string_fragment)))))597 (identifier)598 (class_body)))599 600================================================================================601annotation in array creation602================================================================================603 604String[] allMyStrings = new @Nullable String[5];605 606--------------------------------------------------------------------------------607 608(program609 (local_variable_declaration610 (array_type611 (type_identifier)612 (dimensions))613 (variable_declarator614 (identifier)615 (array_creation_expression616 (marker_annotation617 (identifier))618 (type_identifier)619 (dimensions_expr620 (decimal_integer_literal))))))621 622================================================================================623lambda expression624================================================================================625 626class LambdaTest {627 void singleton() {628 version -> create;629 (record, b) -> record + b;630 }631}632 633--------------------------------------------------------------------------------634 635(program636 (class_declaration637 (identifier)638 (class_body639 (method_declaration640 (void_type)641 (identifier)642 (formal_parameters)643 (block644 (expression_statement645 (lambda_expression646 (identifier)647 (identifier)))648 (expression_statement649 (lambda_expression650 (inferred_parameters651 (identifier)652 (identifier))653 (binary_expression654 (identifier)655 (identifier)))))))))656 657================================================================================658traditional switch statement659================================================================================660 661public class SwitchDemo {662 public static void main(String[] args) {663 int destinysChild = 2;664 String destinysChildString;665 switch (destinysChild) {666 case 1: destinysChildString = "Beyonce";667 break;668 case 2: destinysChildString = "Kelly";669 break;670 case 3: destinysChildString = "Michelle";671 break;672 default: destinysChildString = "Invalid";673 break;674 }675 System.out.println(destinysChildString);676 }677}678 679--------------------------------------------------------------------------------680 681(program682 (class_declaration683 (modifiers)684 name: (identifier)685 body: (class_body686 (method_declaration687 (modifiers)688 type: (void_type)689 name: (identifier)690 parameters: (formal_parameters691 (formal_parameter692 type: (array_type693 element: (type_identifier)694 dimensions: (dimensions))695 name: (identifier)))696 body: (block697 (local_variable_declaration698 type: (integral_type)699 declarator: (variable_declarator700 name: (identifier)701 value: (decimal_integer_literal)))702 (local_variable_declaration703 type: (type_identifier)704 declarator: (variable_declarator705 name: (identifier)))706 (switch_expression707 condition: (parenthesized_expression708 (identifier))709 body: (switch_block710 (switch_block_statement_group711 (switch_label712 (decimal_integer_literal))713 (expression_statement714 (assignment_expression715 left: (identifier)716 right: (string_literal717 (string_fragment))))718 (break_statement))719 (switch_block_statement_group720 (switch_label721 (decimal_integer_literal))722 (expression_statement723 (assignment_expression724 left: (identifier)725 right: (string_literal726 (string_fragment))))727 (break_statement))728 (switch_block_statement_group729 (switch_label730 (decimal_integer_literal))731 (expression_statement732 (assignment_expression733 left: (identifier)734 right: (string_literal735 (string_fragment))))736 (break_statement))737 (switch_block_statement_group738 (switch_label)739 (expression_statement740 (assignment_expression741 left: (identifier)742 right: (string_literal743 (string_fragment))))744 (break_statement))))745 (expression_statement746 (method_invocation747 object: (field_access748 object: (identifier)749 field: (identifier))750 name: (identifier)751 arguments: (argument_list752 (identifier)))))))))753 754================================================================================755functional switch statement756================================================================================757 758class Test {759 int i;760 int f(int i) {761 return 0;762 }763 764 void main() {765 switch (f(i)) {766 case 0, 1 -> System.out.println(6);767 case 2 -> System.out.println(7);768 }769 }770}771 772--------------------------------------------------------------------------------773 774(program775 (class_declaration776 name: (identifier)777 body: (class_body778 (field_declaration779 type: (integral_type)780 declarator: (variable_declarator781 name: (identifier)))782 (method_declaration783 type: (integral_type)784 name: (identifier)785 parameters: (formal_parameters786 (formal_parameter787 type: (integral_type)788 name: (identifier)))789 body: (block790 (return_statement791 (decimal_integer_literal))))792 (method_declaration793 type: (void_type)794 name: (identifier)795 parameters: (formal_parameters)796 body: (block797 (switch_expression798 condition: (parenthesized_expression799 (method_invocation800 name: (identifier)801 arguments: (argument_list802 (identifier))))803 body: (switch_block804 (switch_rule805 (switch_label806 (decimal_integer_literal)807 (decimal_integer_literal))808 (expression_statement809 (method_invocation810 object: (field_access811 object: (identifier)812 field: (identifier))813 name: (identifier)814 arguments: (argument_list815 (decimal_integer_literal)))))816 (switch_rule817 (switch_label818 (decimal_integer_literal))819 (expression_statement820 (method_invocation821 object: (field_access822 object: (identifier)823 field: (identifier))824 name: (identifier)825 arguments: (argument_list826 (decimal_integer_literal))))))))))))827 828================================================================================829traditional-style switch expression830================================================================================831 832class Test {833 int d = 3;834 static final int NUM = 2;835 void main() {836 int result = switch (d) {837 case 5 + 6:838 yield 1;839 case NUM:840 yield 2;841 default:842 System.out.println("hmmm...");843 yield 0;844 };845 }846}847 848--------------------------------------------------------------------------------849 850(program851 (class_declaration852 name: (identifier)853 body: (class_body854 (field_declaration855 type: (integral_type)856 declarator: (variable_declarator857 name: (identifier)858 value: (decimal_integer_literal)))859 (field_declaration860 (modifiers)861 type: (integral_type)862 declarator: (variable_declarator863 name: (identifier)864 value: (decimal_integer_literal)))865 (method_declaration866 type: (void_type)867 name: (identifier)868 parameters: (formal_parameters)869 body: (block870 (local_variable_declaration871 type: (integral_type)872 declarator: (variable_declarator873 name: (identifier)874 value: (switch_expression875 condition: (parenthesized_expression876 (identifier))877 body: (switch_block878 (switch_block_statement_group879 (switch_label880 (binary_expression881 left: (decimal_integer_literal)882 right: (decimal_integer_literal)))883 (yield_statement884 (decimal_integer_literal)))885 (switch_block_statement_group886 (switch_label887 (identifier))888 (yield_statement889 (decimal_integer_literal)))890 (switch_block_statement_group891 (switch_label)892 (expression_statement893 (method_invocation894 object: (field_access895 object: (identifier)896 field: (identifier))897 name: (identifier)898 arguments: (argument_list899 (string_literal900 (string_fragment)))))901 (yield_statement902 (decimal_integer_literal))))))))))))903 904================================================================================905functional switch expression906================================================================================907 908class Test {909 int i;910 static final int ZERO = 0;911 void main() {912 int a = switch (i) {913 case ZERO, 1 -> 6;914 case (int)(2.0) -> 7;915 default -> 8;916 };917 }918}919 920--------------------------------------------------------------------------------921 922(program923 (class_declaration924 name: (identifier)925 body: (class_body926 (field_declaration927 type: (integral_type)928 declarator: (variable_declarator929 name: (identifier)))930 (field_declaration931 (modifiers)932 type: (integral_type)933 declarator: (variable_declarator934 name: (identifier)935 value: (decimal_integer_literal)))936 (method_declaration937 type: (void_type)938 name: (identifier)939 parameters: (formal_parameters)940 body: (block941 (local_variable_declaration942 type: (integral_type)943 declarator: (variable_declarator944 name: (identifier)945 value: (switch_expression946 condition: (parenthesized_expression947 (identifier))948 body: (switch_block949 (switch_rule950 (switch_label951 (identifier)952 (decimal_integer_literal))953 (expression_statement954 (decimal_integer_literal)))955 (switch_rule956 (switch_label957 (cast_expression958 type: (integral_type)959 value: (parenthesized_expression960 (decimal_floating_point_literal))))961 (expression_statement962 (decimal_integer_literal)))963 (switch_rule964 (switch_label)965 (expression_statement966 (decimal_integer_literal))))))))))))967 968================================================================================969switch expression with block970================================================================================971 972class Test {973 int i;974 void main() {975 int a = switch (i) {976 case 0, 1 -> 6;977 case 2 -> 7;978 default -> {979 int result = 8;980 yield result;981 }982 };983 }984}985 986--------------------------------------------------------------------------------987 988(program989 (class_declaration990 name: (identifier)991 body: (class_body992 (field_declaration993 type: (integral_type)994 declarator: (variable_declarator995 name: (identifier)))996 (method_declaration997 type: (void_type)998 name: (identifier)999 parameters: (formal_parameters)1000 body: (block1001 (local_variable_declaration1002 type: (integral_type)1003 declarator: (variable_declarator1004 name: (identifier)1005 value: (switch_expression1006 condition: (parenthesized_expression1007 (identifier))1008 body: (switch_block1009 (switch_rule1010 (switch_label1011 (decimal_integer_literal)1012 (decimal_integer_literal))1013 (expression_statement1014 (decimal_integer_literal)))1015 (switch_rule1016 (switch_label1017 (decimal_integer_literal))1018 (expression_statement1019 (decimal_integer_literal)))1020 (switch_rule1021 (switch_label)1022 (block1023 (local_variable_declaration1024 type: (integral_type)1025 declarator: (variable_declarator1026 name: (identifier)1027 value: (decimal_integer_literal)))1028 (yield_statement1029 (identifier)))))))))))))1030 1031================================================================================1032switch expressions added1033================================================================================1034 1035class Test {1036 int i;1037 static void foo(int i, int j) {1038 // switch expressions inside of a binary expression1039 int x = switch (i) { default -> 1; } + switch (j) { default -> 2; };1040 }1041}1042 1043--------------------------------------------------------------------------------1044 1045(program1046 (class_declaration1047 name: (identifier)1048 body: (class_body1049 (field_declaration1050 type: (integral_type)1051 declarator: (variable_declarator1052 name: (identifier)))1053 (method_declaration1054 (modifiers)1055 type: (void_type)1056 name: (identifier)1057 parameters: (formal_parameters1058 (formal_parameter1059 type: (integral_type)1060 name: (identifier))1061 (formal_parameter1062 type: (integral_type)1063 name: (identifier)))1064 body: (block1065 (line_comment)1066 (local_variable_declaration1067 type: (integral_type)1068 declarator: (variable_declarator1069 name: (identifier)1070 value: (binary_expression1071 left: (switch_expression1072 condition: (parenthesized_expression1073 (identifier))1074 body: (switch_block1075 (switch_rule1076 (switch_label)1077 (expression_statement1078 (decimal_integer_literal)))))1079 right: (switch_expression1080 condition: (parenthesized_expression1081 (identifier))1082 body: (switch_block1083 (switch_rule1084 (switch_label)1085 (expression_statement1086 (decimal_integer_literal)))))))))))))1087 1088================================================================================1089switch statement and pre-increment1090================================================================================1091 1092class Test {1093 int i;1094 static void foo(boolean bar) {1095 int ddsd;1096 switch(bar) {1097 default:1098 i = 3;1099 }1100 ++ddsd;1101 }1102}1103 1104--------------------------------------------------------------------------------1105 1106(program1107 (class_declaration1108 (identifier)1109 (class_body1110 (field_declaration1111 (integral_type)1112 (variable_declarator1113 (identifier)))1114 (method_declaration1115 (modifiers)1116 (void_type)1117 (identifier)1118 (formal_parameters1119 (formal_parameter1120 (boolean_type)1121 (identifier)))1122 (block1123 (local_variable_declaration1124 (integral_type)1125 (variable_declarator1126 (identifier)))1127 (switch_expression1128 (parenthesized_expression1129 (identifier))1130 (switch_block1131 (switch_block_statement_group1132 (switch_label)1133 (expression_statement1134 (assignment_expression1135 (identifier)1136 (decimal_integer_literal))))))1137 (expression_statement1138 (update_expression1139 (identifier))))))))1140 1141================================================================================1142Pattern matching1143================================================================================1144 1145public class Patterns {1146 static void patterns() {1147 Rectangle r = new Rectangle(new ColoredPoint(c1), new ColoredPoint(c2));1148 if (obj instanceof Point(int x)) {1149 }1150 if (r instanceof Rectangle(ColoredPoint ul)) {1151 }1152 if (r instanceof Rectangle(ColoredPoint(Point p, Color c),1153 ColoredPoint lr)) {1154 }1155 if (r instanceof Rectangle(ColoredPoint(Point(var x, var y), var c),1156 var lr)) {1157 }1158 }1159}1160 1161--------------------------------------------------------------------------------1162 1163(program1164 (class_declaration1165 (modifiers)1166 (identifier)1167 (class_body1168 (method_declaration1169 (modifiers)1170 (void_type)1171 (identifier)1172 (formal_parameters)1173 (block1174 (local_variable_declaration1175 (type_identifier)1176 (variable_declarator1177 (identifier)1178 (object_creation_expression1179 (type_identifier)1180 (argument_list1181 (object_creation_expression1182 (type_identifier)1183 (argument_list1184 (identifier)))1185 (object_creation_expression1186 (type_identifier)1187 (argument_list1188 (identifier)))))))1189 (if_statement1190 (condition1191 (instanceof_expression1192 (identifier)1193 (record_pattern1194 (identifier)1195 (record_pattern_body1196 (record_pattern_component1197 (integral_type)1198 (identifier))))))1199 (block))1200 (if_statement