{"diffoscope-json-version": 1, "source1": "/srv/reproducible-results/rbuild-debian/r-b-build.NjC5gXgV/b1/libxtc-rats-java_1.15.0-2_i386.changes", "source2": "/srv/reproducible-results/rbuild-debian/r-b-build.NjC5gXgV/b2/libxtc-rats-java_1.15.0-2_i386.changes", "unified_diff": null, "details": [{"source1": "Files", "source2": "Files", "unified_diff": "@@ -1,2 +1,2 @@\n \n- 60a8ad120f4ced6a4876d6f040ea49ce 493932 java optional libxtc-rats-java_1.15.0-2_all.deb\n+ 36279eb38da7e1de2c385f5372266290 496924 java optional libxtc-rats-java_1.15.0-2_all.deb\n"}, {"source1": "libxtc-rats-java_1.15.0-2_all.deb", "source2": "libxtc-rats-java_1.15.0-2_all.deb", "unified_diff": null, "details": [{"source1": "file list", "source2": "file list", "unified_diff": "@@ -1,3 +1,3 @@\n -rw-r--r-- 0 0 0 4 2021-10-25 09:54:06.000000 debian-binary\n -rw-r--r-- 0 0 0 920 2021-10-25 09:54:06.000000 control.tar.xz\n--rw-r--r-- 0 0 0 492820 2021-10-25 09:54:06.000000 data.tar.xz\n+-rw-r--r-- 0 0 0 495812 2021-10-25 09:54:06.000000 data.tar.xz\n"}, {"source1": "control.tar.xz", "source2": "control.tar.xz", "unified_diff": null, "details": [{"source1": "control.tar", "source2": "control.tar", "unified_diff": null, "details": [{"source1": "./control", "source2": "./control", "unified_diff": "@@ -1,12 +1,12 @@\n Package: libxtc-rats-java\n Version: 1.15.0-2\n Architecture: all\n Maintainer: Debian Java Maintainers \n-Installed-Size: 594\n+Installed-Size: 597\n Depends: libantlr-java\n Section: java\n Priority: optional\n Homepage: https://cs.nyu.edu/rgrimm/xtc/\n Description: parser generator written in Java\n The xtc (eXTensible Compiler) project is exploring novel programming languages\n and tools to improve the expressiveness, safety, and efficiency of complex\n"}, {"source1": "./md5sums", "source2": "./md5sums", "unified_diff": null, "details": [{"source1": "./md5sums", "source2": "./md5sums", "comments": ["Files differ"], "unified_diff": null}]}]}]}, {"source1": "data.tar.xz", "source2": "data.tar.xz", "unified_diff": null, "details": [{"source1": "data.tar", "source2": "data.tar", "unified_diff": null, "details": [{"source1": "file list", "source2": "file list", "unified_diff": "@@ -2,16 +2,16 @@\n drwxr-xr-x 0 root (0) root (0) 0 2021-10-25 09:54:06.000000 ./usr/\n drwxr-xr-x 0 root (0) root (0) 0 2021-10-25 09:54:06.000000 ./usr/share/\n drwxr-xr-x 0 root (0) root (0) 0 2021-10-25 09:54:06.000000 ./usr/share/doc/\n drwxr-xr-x 0 root (0) root (0) 0 2021-10-25 09:54:06.000000 ./usr/share/doc/libxtc-rats-java/\n -rw-r--r-- 0 root (0) root (0) 243 2021-10-25 09:54:06.000000 ./usr/share/doc/libxtc-rats-java/changelog.Debian.gz\n -rw-r--r-- 0 root (0) root (0) 6742 2021-10-25 09:54:06.000000 ./usr/share/doc/libxtc-rats-java/copyright\n drwxr-xr-x 0 root (0) root (0) 0 2021-10-25 09:54:06.000000 ./usr/share/java/\n--rw-r--r-- 0 root (0) root (0) 520374 2021-10-25 09:54:06.000000 ./usr/share/java/rats-1.15.0.jar\n--rw-r--r-- 0 root (0) root (0) 44055 2021-10-25 09:54:06.000000 ./usr/share/java/rats-runtime-1.15.0.jar\n+-rw-r--r-- 0 root (0) root (0) 523173 2021-10-25 09:54:06.000000 ./usr/share/java/rats-1.15.0.jar\n+-rw-r--r-- 0 root (0) root (0) 45592 2021-10-25 09:54:06.000000 ./usr/share/java/rats-runtime-1.15.0.jar\n drwxr-xr-x 0 root (0) root (0) 0 2021-10-25 09:54:06.000000 ./usr/share/maven-repo/\n drwxr-xr-x 0 root (0) root (0) 0 2021-10-25 09:54:06.000000 ./usr/share/maven-repo/xtc/\n drwxr-xr-x 0 root (0) root (0) 0 2021-10-25 09:54:06.000000 ./usr/share/maven-repo/xtc/rats/\n drwxr-xr-x 0 root (0) root (0) 0 2021-10-25 09:54:06.000000 ./usr/share/maven-repo/xtc/rats/1.15.0/\n -rw-r--r-- 0 root (0) root (0) 2195 2021-10-25 09:54:06.000000 ./usr/share/maven-repo/xtc/rats/1.15.0/rats-1.15.0.pom\n drwxr-xr-x 0 root (0) root (0) 0 2021-10-25 09:54:06.000000 ./usr/share/maven-repo/xtc/rats/debian/\n -rw-r--r-- 0 root (0) root (0) 2195 2021-10-25 09:54:06.000000 ./usr/share/maven-repo/xtc/rats/debian/rats-debian.pom\n"}, {"source1": "./usr/share/java/rats-1.15.0.jar", "source2": "./usr/share/java/rats-1.15.0.jar", "unified_diff": null, "details": [{"source1": "zipinfo {}", "source2": "zipinfo {}", "unified_diff": "@@ -1,13 +1,13 @@\n-Zip file size: 520374 bytes, number of entries: 309\n+Zip file size: 523173 bytes, number of entries: 309\n -rw---- 2.0 fat 0 bx stor 21-Oct-25 09:54 META-INF/\n -rw-r--r-- 2.0 unx 145 b- defN 21-Oct-25 09:54 META-INF/MANIFEST.MF\n -rw---- 1.0 fat 0 b- stor 21-Oct-25 09:54 xtc/\n--rw---- 2.0 fat 1056 bl defN 21-Oct-25 09:54 xtc/Constants$FuzzyBoolean.class\n--rw---- 2.0 fat 5170 bl defN 21-Oct-25 09:54 xtc/Constants.class\n+-rw---- 2.0 fat 1075 bl defN 21-Oct-25 09:54 xtc/Constants$FuzzyBoolean.class\n+-rw---- 2.0 fat 5194 bl defN 21-Oct-25 09:54 xtc/Constants.class\n -rw---- 2.0 fat 5676 bl defN 21-Oct-25 09:54 xtc/Limits.class\n -rw---- 2.0 fat 878 bl defN 21-Oct-25 09:54 xtc/Platform.class\n -rw---- 1.0 fat 0 b- stor 21-Oct-25 09:54 xtc/parser/\n -rw---- 2.0 fat 2733 bl defN 21-Oct-25 09:54 xtc/parser/Action.class\n -rw---- 2.0 fat 872 bl defN 21-Oct-25 09:54 xtc/parser/ActionBaseValue.class\n -rw---- 2.0 fat 1091 bl defN 21-Oct-25 09:54 xtc/parser/AlternativeAddition.class\n -rw---- 2.0 fat 1129 bl defN 21-Oct-25 09:54 xtc/parser/AlternativeRemoval.class\n@@ -82,26 +82,26 @@\n -rw---- 2.0 fat 1009 bl defN 21-Oct-25 09:54 xtc/parser/NodeMarker.class\n -rw---- 2.0 fat 2390 bl defN 21-Oct-25 09:54 xtc/parser/NonTerminal.class\n -rw---- 2.0 fat 976 bl defN 21-Oct-25 09:54 xtc/parser/NotFollowedBy.class\n -rw---- 2.0 fat 905 bl defN 21-Oct-25 09:54 xtc/parser/NullLiteral.class\n -rw---- 2.0 fat 713 bl defN 21-Oct-25 09:54 xtc/parser/NullValue.class\n -rw---- 2.0 fat 958 bl defN 21-Oct-25 09:54 xtc/parser/Option.class\n -rw---- 2.0 fat 1227 bl defN 21-Oct-25 09:54 xtc/parser/OrderedChoice.class\n--rw---- 2.0 fat 535 bl defN 21-Oct-25 09:54 xtc/parser/PParser$Chunk1.class\n--rw---- 2.0 fat 523 bl defN 21-Oct-25 09:54 xtc/parser/PParser$Chunk2.class\n--rw---- 2.0 fat 565 bl defN 21-Oct-25 09:54 xtc/parser/PParser$Chunk3.class\n--rw---- 2.0 fat 310 bl defN 21-Oct-25 09:54 xtc/parser/PParser$Chunk4.class\n--rw---- 2.0 fat 665 bl defN 21-Oct-25 09:54 xtc/parser/PParser$PParserColumn.class\n--rw---- 2.0 fat 46398 bl defN 21-Oct-25 09:54 xtc/parser/PParser.class\n+-rw---- 2.0 fat 554 bl defN 21-Oct-25 09:54 xtc/parser/PParser$Chunk1.class\n+-rw---- 2.0 fat 542 bl defN 21-Oct-25 09:54 xtc/parser/PParser$Chunk2.class\n+-rw---- 2.0 fat 584 bl defN 21-Oct-25 09:54 xtc/parser/PParser$Chunk3.class\n+-rw---- 2.0 fat 329 bl defN 21-Oct-25 09:54 xtc/parser/PParser$Chunk4.class\n+-rw---- 2.0 fat 684 bl defN 21-Oct-25 09:54 xtc/parser/PParser$PParserColumn.class\n+-rw---- 2.0 fat 46430 bl defN 21-Oct-25 09:54 xtc/parser/PParser.class\n -rw---- 2.0 fat 1564 bl defN 21-Oct-25 09:54 xtc/parser/PParserState.class\n -rw---- 2.0 fat 1554 bl defN 21-Oct-25 09:54 xtc/parser/ParseError.class\n -rw---- 2.0 fat 239 bl defN 21-Oct-25 09:54 xtc/parser/ParseException.class\n -rw---- 2.0 fat 2056 bl defN 21-Oct-25 09:54 xtc/parser/ParseTreeNode.class\n -rw---- 2.0 fat 770 bl defN 21-Oct-25 09:54 xtc/parser/ParserAction.class\n--rw---- 2.0 fat 7016 bl defN 21-Oct-25 09:54 xtc/parser/ParserBase.class\n+-rw---- 2.0 fat 7305 bl defN 21-Oct-25 09:54 xtc/parser/ParserBase.class\n -rw---- 2.0 fat 622 bl defN 21-Oct-25 09:54 xtc/parser/PartialProduction.class\n -rw---- 2.0 fat 236 bl defN 21-Oct-25 09:54 xtc/parser/Predicate.class\n -rw---- 2.0 fat 2473 bl defN 21-Oct-25 09:54 xtc/parser/PrefixFolder.class\n -rw---- 2.0 fat 953 bl defN 21-Oct-25 09:54 xtc/parser/PrettyPrinter$1.class\n -rw---- 2.0 fat 20265 bl defN 21-Oct-25 09:54 xtc/parser/PrettyPrinter.class\n -rw---- 2.0 fat 2132 bl defN 21-Oct-25 09:54 xtc/parser/Production.class\n -rw---- 2.0 fat 1448 bl defN 21-Oct-25 09:54 xtc/parser/ProductionOverride.class\n@@ -151,67 +151,67 @@\n -rw---- 2.0 fat 1193 bl defN 21-Oct-25 09:54 xtc/parser/VariantSorter$1.class\n -rw---- 2.0 fat 2786 bl defN 21-Oct-25 09:54 xtc/parser/VariantSorter$Registrar.class\n -rw---- 2.0 fat 4400 bl defN 21-Oct-25 09:54 xtc/parser/VariantSorter$Typer.class\n -rw---- 2.0 fat 11935 bl defN 21-Oct-25 09:54 xtc/parser/VariantSorter.class\n -rw---- 2.0 fat 1011 bl defN 21-Oct-25 09:54 xtc/parser/VoidedElement.class\n -rw---- 1.0 fat 0 b- stor 21-Oct-25 09:54 xtc/tree/\n -rw---- 2.0 fat 907 bl defN 21-Oct-25 09:54 xtc/tree/Annotation.class\n--rw---- 2.0 fat 3037 bl defN 21-Oct-25 09:54 xtc/tree/Attribute.class\n--rw---- 2.0 fat 1043 bl defN 21-Oct-25 09:54 xtc/tree/Comment$Kind.class\n--rw---- 2.0 fat 2165 bl defN 21-Oct-25 09:54 xtc/tree/Comment.class\n+-rw---- 2.0 fat 3294 bl defN 21-Oct-25 09:54 xtc/tree/Attribute.class\n+-rw---- 2.0 fat 1062 bl defN 21-Oct-25 09:54 xtc/tree/Comment$Kind.class\n+-rw---- 2.0 fat 2189 bl defN 21-Oct-25 09:54 xtc/tree/Comment.class\n -rw---- 2.0 fat 1161 bl defN 21-Oct-25 09:54 xtc/tree/Formatting$After1.class\n -rw---- 2.0 fat 1163 bl defN 21-Oct-25 09:54 xtc/tree/Formatting$Before1.class\n -rw---- 2.0 fat 1246 bl defN 21-Oct-25 09:54 xtc/tree/Formatting$Round1.class\n -rw---- 2.0 fat 3224 bl defN 21-Oct-25 09:54 xtc/tree/Formatting$RoundN.class\n -rw---- 2.0 fat 1221 bl defN 21-Oct-25 09:54 xtc/tree/Formatting.class\n--rw---- 2.0 fat 1188 bl defN 21-Oct-25 09:54 xtc/tree/GNode$Fixed.class\n--rw---- 2.0 fat 1109 bl defN 21-Oct-25 09:54 xtc/tree/GNode$Fixed0.class\n--rw---- 2.0 fat 1384 bl defN 21-Oct-25 09:54 xtc/tree/GNode$Fixed1.class\n--rw---- 2.0 fat 1536 bl defN 21-Oct-25 09:54 xtc/tree/GNode$Fixed2.class\n--rw---- 2.0 fat 1641 bl defN 21-Oct-25 09:54 xtc/tree/GNode$Fixed3.class\n--rw---- 2.0 fat 1754 bl defN 21-Oct-25 09:54 xtc/tree/GNode$Fixed4.class\n--rw---- 2.0 fat 1867 bl defN 21-Oct-25 09:54 xtc/tree/GNode$Fixed5.class\n--rw---- 2.0 fat 1981 bl defN 21-Oct-25 09:54 xtc/tree/GNode$Fixed6.class\n--rw---- 2.0 fat 2094 bl defN 21-Oct-25 09:54 xtc/tree/GNode$Fixed7.class\n--rw---- 2.0 fat 2207 bl defN 21-Oct-25 09:54 xtc/tree/GNode$Fixed8.class\n--rw---- 2.0 fat 2599 bl defN 21-Oct-25 09:54 xtc/tree/GNode$Variable.class\n--rw---- 2.0 fat 7328 bl defN 21-Oct-25 09:54 xtc/tree/GNode.class\n+-rw---- 2.0 fat 1207 bl defN 21-Oct-25 09:54 xtc/tree/GNode$Fixed.class\n+-rw---- 2.0 fat 1290 bl defN 21-Oct-25 09:54 xtc/tree/GNode$Fixed0.class\n+-rw---- 2.0 fat 1565 bl defN 21-Oct-25 09:54 xtc/tree/GNode$Fixed1.class\n+-rw---- 2.0 fat 1717 bl defN 21-Oct-25 09:54 xtc/tree/GNode$Fixed2.class\n+-rw---- 2.0 fat 1822 bl defN 21-Oct-25 09:54 xtc/tree/GNode$Fixed3.class\n+-rw---- 2.0 fat 1935 bl defN 21-Oct-25 09:54 xtc/tree/GNode$Fixed4.class\n+-rw---- 2.0 fat 2048 bl defN 21-Oct-25 09:54 xtc/tree/GNode$Fixed5.class\n+-rw---- 2.0 fat 2162 bl defN 21-Oct-25 09:54 xtc/tree/GNode$Fixed6.class\n+-rw---- 2.0 fat 2275 bl defN 21-Oct-25 09:54 xtc/tree/GNode$Fixed7.class\n+-rw---- 2.0 fat 2388 bl defN 21-Oct-25 09:54 xtc/tree/GNode$Fixed8.class\n+-rw---- 2.0 fat 2618 bl defN 21-Oct-25 09:54 xtc/tree/GNode$Variable.class\n+-rw---- 2.0 fat 7372 bl defN 21-Oct-25 09:54 xtc/tree/GNode.class\n -rw---- 2.0 fat 2007 bl defN 21-Oct-25 09:54 xtc/tree/LineMarker.class\n -rw---- 2.0 fat 5102 bl defN 21-Oct-25 09:54 xtc/tree/LineupPrinter.class\n -rw---- 2.0 fat 263 bl defN 21-Oct-25 09:54 xtc/tree/Locatable.class\n -rw---- 2.0 fat 1664 bl defN 21-Oct-25 09:54 xtc/tree/Location.class\n--rw---- 2.0 fat 1046 bl defN 21-Oct-25 09:54 xtc/tree/Node$1.class\n--rw---- 2.0 fat 7769 bl defN 21-Oct-25 09:54 xtc/tree/Node.class\n+-rw---- 2.0 fat 1065 bl defN 21-Oct-25 09:54 xtc/tree/Node$1.class\n+-rw---- 2.0 fat 8082 bl defN 21-Oct-25 09:54 xtc/tree/Node.class\n -rw---- 2.0 fat 1132 bl defN 21-Oct-25 09:54 xtc/tree/ParseTreePrinter.class\n -rw---- 2.0 fat 1246 bl defN 21-Oct-25 09:54 xtc/tree/ParseTreeStripper.class\n -rw---- 2.0 fat 1485 bl defN 21-Oct-25 09:54 xtc/tree/Pragma.class\n--rw---- 2.0 fat 9802 bl defN 21-Oct-25 09:54 xtc/tree/Printer.class\n+-rw---- 2.0 fat 10006 bl defN 21-Oct-25 09:54 xtc/tree/Printer.class\n -rw---- 2.0 fat 1741 bl defN 21-Oct-25 09:54 xtc/tree/Relocator.class\n -rw---- 2.0 fat 1497 bl defN 21-Oct-25 09:54 xtc/tree/SourceIdentity.class\n--rw---- 2.0 fat 1473 bl defN 21-Oct-25 09:54 xtc/tree/Token.class\n+-rw---- 2.0 fat 1710 bl defN 21-Oct-25 09:54 xtc/tree/Token.class\n -rw---- 2.0 fat 1504 bl defN 21-Oct-25 09:54 xtc/tree/Transducer$1.class\n -rw---- 2.0 fat 7173 bl defN 21-Oct-25 09:54 xtc/tree/Transducer.class\n -rw---- 2.0 fat 2017 bl defN 21-Oct-25 09:54 xtc/tree/TraversalException.class\n -rw---- 2.0 fat 395 bl defN 21-Oct-25 09:54 xtc/tree/Utility.class\n -rw---- 2.0 fat 273 bl defN 21-Oct-25 09:54 xtc/tree/VisitingException.class\n--rw---- 2.0 fat 657 bl defN 21-Oct-25 09:54 xtc/tree/Visitor$1.class\n--rw---- 2.0 fat 689 bl defN 21-Oct-25 09:54 xtc/tree/Visitor$CacheKey.class\n--rw---- 2.0 fat 5438 bl defN 21-Oct-25 09:54 xtc/tree/Visitor.class\n+-rw---- 2.0 fat 676 bl defN 21-Oct-25 09:54 xtc/tree/Visitor$1.class\n+-rw---- 2.0 fat 708 bl defN 21-Oct-25 09:54 xtc/tree/Visitor$CacheKey.class\n+-rw---- 2.0 fat 5929 bl defN 21-Oct-25 09:54 xtc/tree/Visitor.class\n -rw---- 2.0 fat 353 bl defN 21-Oct-25 09:54 xtc/tree/VisitorException.class\n -rw---- 1.0 fat 0 b- stor 21-Oct-25 09:54 xtc/type/\n -rw---- 2.0 fat 989 bl defN 21-Oct-25 09:54 xtc/type/AST$1.class\n -rw---- 2.0 fat 474 bl defN 21-Oct-25 09:54 xtc/type/AST$MetaData.class\n -rw---- 2.0 fat 20554 bl defN 21-Oct-25 09:54 xtc/type/AST.class\n -rw---- 2.0 fat 1683 bl defN 21-Oct-25 09:54 xtc/type/AliasT.class\n -rw---- 2.0 fat 1145 bl defN 21-Oct-25 09:54 xtc/type/AnnotatedT.class\n -rw---- 2.0 fat 2558 bl defN 21-Oct-25 09:54 xtc/type/ArrayT.class\n -rw---- 2.0 fat 1426 bl defN 21-Oct-25 09:54 xtc/type/BooleanT.class\n -rw---- 2.0 fat 2435 bl defN 21-Oct-25 09:54 xtc/type/C$1.class\n -rw---- 2.0 fat 23184 bl defN 21-Oct-25 09:54 xtc/type/C.class\n--rw---- 2.0 fat 4921 bl defN 21-Oct-25 09:54 xtc/type/CFactory.class\n+-rw---- 2.0 fat 5208 bl defN 21-Oct-25 09:54 xtc/type/CFactory.class\n -rw---- 2.0 fat 1202 bl defN 21-Oct-25 09:54 xtc/type/CastReference.class\n -rw---- 2.0 fat 1913 bl defN 21-Oct-25 09:54 xtc/type/ClassOrInterfaceT.class\n -rw---- 2.0 fat 1910 bl defN 21-Oct-25 09:54 xtc/type/ClassT.class\n -rw---- 2.0 fat 854 bl defN 21-Oct-25 09:54 xtc/type/Constant$1.class\n -rw---- 2.0 fat 1222 bl defN 21-Oct-25 09:54 xtc/type/Constant$Kind.class\n -rw---- 2.0 fat 3984 bl defN 21-Oct-25 09:54 xtc/type/Constant.class\n -rw---- 2.0 fat 337 bl defN 21-Oct-25 09:54 xtc/type/DerivedT.class\n@@ -289,23 +289,23 @@\n -rw---- 2.0 fat 592 bl defN 21-Oct-25 09:54 xtc/util/Function$F7.class\n -rw---- 2.0 fat 633 bl defN 21-Oct-25 09:54 xtc/util/Function$F8.class\n -rw---- 2.0 fat 633 bl defN 21-Oct-25 09:54 xtc/util/Function$F9.class\n -rw---- 2.0 fat 2570 bl defN 21-Oct-25 09:54 xtc/util/Function.class\n -rw---- 2.0 fat 254 bl defN 21-Oct-25 09:54 xtc/util/NestedReader$EOFListener.class\n -rw---- 2.0 fat 2499 bl defN 21-Oct-25 09:54 xtc/util/NestedReader.class\n -rw---- 2.0 fat 1140 bl defN 21-Oct-25 09:54 xtc/util/Nonce.class\n--rw---- 2.0 fat 1155 bl defN 21-Oct-25 09:54 xtc/util/Option$Kind.class\n--rw---- 2.0 fat 662 bl defN 21-Oct-25 09:54 xtc/util/Option.class\n--rw---- 2.0 fat 1009 bl defN 21-Oct-25 09:54 xtc/util/Pair$1.class\n--rw---- 2.0 fat 7341 bl defN 21-Oct-25 09:54 xtc/util/Pair.class\n--rw---- 2.0 fat 837 bl defN 21-Oct-25 09:54 xtc/util/Runtime$1.class\n--rw---- 2.0 fat 14085 bl defN 21-Oct-25 09:54 xtc/util/Runtime.class\n+-rw---- 2.0 fat 1174 bl defN 21-Oct-25 09:54 xtc/util/Option$Kind.class\n+-rw---- 2.0 fat 686 bl defN 21-Oct-25 09:54 xtc/util/Option.class\n+-rw---- 2.0 fat 1028 bl defN 21-Oct-25 09:54 xtc/util/Pair$1.class\n+-rw---- 2.0 fat 7637 bl defN 21-Oct-25 09:54 xtc/util/Pair.class\n+-rw---- 2.0 fat 856 bl defN 21-Oct-25 09:54 xtc/util/Runtime$1.class\n+-rw---- 2.0 fat 14406 bl defN 21-Oct-25 09:54 xtc/util/Runtime.class\n -rw---- 2.0 fat 844 bl defN 21-Oct-25 09:54 xtc/util/SingletonIterator.class\n -rw---- 2.0 fat 195 bl defN 21-Oct-25 09:54 xtc/util/State.class\n -rw---- 2.0 fat 2216 bl defN 21-Oct-25 09:54 xtc/util/Statistics.class\n--rw---- 2.0 fat 6451 bl defN 21-Oct-25 09:54 xtc/util/SymbolTable$Scope.class\n--rw---- 2.0 fat 5940 bl defN 21-Oct-25 09:54 xtc/util/SymbolTable.class\n+-rw---- 2.0 fat 6717 bl defN 21-Oct-25 09:54 xtc/util/SymbolTable$Scope.class\n+-rw---- 2.0 fat 6315 bl defN 21-Oct-25 09:54 xtc/util/SymbolTable.class\n -rw---- 2.0 fat 1539 bl defN 21-Oct-25 09:54 xtc/util/Throughput.class\n--rw---- 2.0 fat 9448 bl defN 21-Oct-25 09:54 xtc/util/Tool.class\n--rw---- 2.0 fat 9911 bl defN 21-Oct-25 09:54 xtc/util/Utilities.class\n+-rw---- 2.0 fat 9780 bl defN 21-Oct-25 09:54 xtc/util/Tool.class\n+-rw---- 2.0 fat 10303 bl defN 21-Oct-25 09:54 xtc/util/Utilities.class\n -rw---- 2.0 fat 4448 bl defN 21-Oct-25 09:54 xtc/util/UtilitiesTest.class\n-309 files, 957810 bytes uncompressed, 475358 bytes compressed: 50.4%\n+309 files, 963932 bytes uncompressed, 478157 bytes compressed: 50.4%\n"}, {"source1": "xtc/Constants$FuzzyBoolean.class", "source2": "xtc/Constants$FuzzyBoolean.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,16 +1,16 @@\n- SHA-256 checksum c118ba81a9c26bc647b8d3573e90c37a9eeb420a4b122acf8b834104fbc6ce13\n+ SHA-256 checksum a8610a766e8b2c7062bb54cb9c6ad0ef85eea2b6309c2e3e775b6956e5d2ec59\n Compiled from \"Constants.java\"\n public final class xtc.Constants$FuzzyBoolean extends java.lang.Enum\n minor version: 0\n- major version: 52\n+ major version: 61\n flags: (0x4031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER, ACC_ENUM\n this_class: #1 // xtc/Constants$FuzzyBoolean\n super_class: #23 // java/lang/Enum\n- interfaces: 0, fields: 4, methods: 5, attributes: 3\n+ interfaces: 0, fields: 4, methods: 5, attributes: 4\n Constant pool:\n #1 = Class #2 // xtc/Constants$FuzzyBoolean\n #2 = Utf8 xtc/Constants$FuzzyBoolean\n #3 = Fieldref #1.#4 // xtc/Constants$FuzzyBoolean.TRUE:Lxtc/Constants$FuzzyBoolean;\n #4 = NameAndType #5:#6 // TRUE:Lxtc/Constants$FuzzyBoolean;\n #5 = Utf8 TRUE\n #6 = Utf8 Lxtc/Constants$FuzzyBoolean;\n@@ -53,18 +53,19 @@\n #43 = Utf8 (Ljava/lang/String;)Lxtc/Constants$FuzzyBoolean;\n #44 = Utf8 Signature\n #45 = Utf8 ()V\n #46 = Utf8 \n #47 = Utf8 Ljava/lang/Enum;\n #48 = Utf8 SourceFile\n #49 = Utf8 Constants.java\n- #50 = Utf8 InnerClasses\n+ #50 = Utf8 NestHost\n #51 = Class #52 // xtc/Constants\n #52 = Utf8 xtc/Constants\n- #53 = Utf8 FuzzyBoolean\n+ #53 = Utf8 InnerClasses\n+ #54 = Utf8 FuzzyBoolean\n {\n public static final xtc.Constants$FuzzyBoolean TRUE;\n descriptor: Lxtc/Constants$FuzzyBoolean;\n flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ENUM\n \n public static final xtc.Constants$FuzzyBoolean FALSE;\n descriptor: Lxtc/Constants$FuzzyBoolean;\n@@ -170,9 +171,10 @@\n line 90: 0\n line 91: 13\n line 92: 26\n line 89: 39\n }\n Signature: #47 // Ljava/lang/Enum;\n SourceFile: \"Constants.java\"\n+NestHost: class xtc/Constants\n InnerClasses:\n- public static final #53= #1 of #51; // FuzzyBoolean=class xtc/Constants$FuzzyBoolean of class xtc/Constants\n+ public static final #54= #1 of #51; // FuzzyBoolean=class xtc/Constants$FuzzyBoolean of class xtc/Constants\n"}]}, {"source1": "xtc/Constants.class", "source2": "xtc/Constants.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,16 +1,16 @@\n- SHA-256 checksum 2bc35a54dcc35f65ee10993b7482979fe0be7e980d934c59f20626e1b526a03a\n+ SHA-256 checksum 1b77e1cd2f3eb4e74fc90690de2a06a37cac5ebd3e15df8c7fd46768677126cc\n Compiled from \"Constants.java\"\n public interface xtc.Constants\n minor version: 0\n- major version: 52\n+ major version: 61\n flags: (0x0601) ACC_PUBLIC, ACC_INTERFACE, ACC_ABSTRACT\n this_class: #1 // xtc/Constants\n super_class: #281 // java/lang/Object\n- interfaces: 0, fields: 84, methods: 1, attributes: 2\n+ interfaces: 0, fields: 84, methods: 1, attributes: 3\n Constant pool:\n #1 = Class #2 // xtc/Constants\n #2 = Utf8 xtc/Constants\n #3 = String #4 // line.separator\n #4 = Utf8 line.separator\n #5 = Methodref #6.#7 // java/lang/System.getProperty:(Ljava/lang/String;)Ljava/lang/String;\n #6 = Class #8 // java/lang/System\n@@ -369,18 +369,19 @@\n #359 = Utf8 VALUE_PRIVATE\n #360 = Utf8 \n #361 = Utf8 ()V\n #362 = Utf8 Code\n #363 = Utf8 LineNumberTable\n #364 = Utf8 SourceFile\n #365 = Utf8 Constants.java\n- #366 = Utf8 InnerClasses\n+ #366 = Utf8 NestMembers\n #367 = Class #368 // xtc/Constants$FuzzyBoolean\n #368 = Utf8 xtc/Constants$FuzzyBoolean\n- #369 = Utf8 FuzzyBoolean\n+ #369 = Utf8 InnerClasses\n+ #370 = Utf8 FuzzyBoolean\n {\n public static final boolean DEBUG = false;\n descriptor: Z\n flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL\n ConstantValue: int 0\n \n public static final int MAJOR = 1;\n@@ -1068,9 +1069,11 @@\n line 334: 570\n line 337: 583\n line 340: 596\n line 343: 609\n line 346: 622\n }\n SourceFile: \"Constants.java\"\n+NestMembers:\n+ xtc/Constants$FuzzyBoolean\n InnerClasses:\n- public static final #369= #367 of #1; // FuzzyBoolean=class xtc/Constants$FuzzyBoolean of class xtc/Constants\n+ public static final #370= #367 of #1; // FuzzyBoolean=class xtc/Constants$FuzzyBoolean of class xtc/Constants\n"}]}, {"source1": "xtc/parser/Column.class", "source2": "xtc/parser/Column.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,12 +1,12 @@\n- SHA-256 checksum e046499fa3458dcf75a1ec8ed09726dd1613205db813bd758a02225d5ed6c59b\n+ SHA-256 checksum ab64fbb89692bf784a29ac10d42a7f4a3277983b7a6d753aada0198e44a7df96\n Compiled from \"Column.java\"\n public abstract class xtc.parser.Column\n minor version: 0\n- major version: 52\n+ major version: 61\n flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT\n this_class: #7 // xtc/parser/Column\n super_class: #2 // java/lang/Object\n interfaces: 0, fields: 4, methods: 1, attributes: 1\n Constant pool:\n #1 = Methodref #2.#3 // java/lang/Object.\"\":()V\n #2 = Class #4 // java/lang/Object\n"}]}, {"source1": "xtc/parser/PParser$Chunk1.class", "source2": "xtc/parser/PParser$Chunk1.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,16 +1,16 @@\n- SHA-256 checksum 5fc5b1d0209fb9e0c144e8f536cc82f6497eb093e7055a022f232c48edaa41a8\n+ SHA-256 checksum 7df369807712bfe7fd8bd8b347dd66fced5db41d53001f28afd193ebd3467ec0\n Compiled from \"PParser.java\"\n final class xtc.parser.PParser$Chunk1\n minor version: 0\n- major version: 52\n+ major version: 61\n flags: (0x0030) ACC_FINAL, ACC_SUPER\n this_class: #7 // xtc/parser/PParser$Chunk1\n super_class: #2 // java/lang/Object\n- interfaces: 0, fields: 10, methods: 1, attributes: 2\n+ interfaces: 0, fields: 10, methods: 1, attributes: 3\n Constant pool:\n #1 = Methodref #2.#3 // java/lang/Object.\"\":()V\n #2 = Class #4 // java/lang/Object\n #3 = NameAndType #5:#6 // \"\":()V\n #4 = Utf8 java/lang/Object\n #5 = Utf8 \n #6 = Utf8 ()V\n@@ -27,18 +27,19 @@\n #17 = Utf8 fSequence\n #18 = Utf8 fSequence$$Star1\n #19 = Utf8 fSequenceName\n #20 = Utf8 Code\n #21 = Utf8 LineNumberTable\n #22 = Utf8 SourceFile\n #23 = Utf8 PParser.java\n- #24 = Utf8 InnerClasses\n+ #24 = Utf8 NestHost\n #25 = Class #26 // xtc/parser/PParser\n #26 = Utf8 xtc/parser/PParser\n- #27 = Utf8 Chunk1\n+ #27 = Utf8 InnerClasses\n+ #28 = Utf8 Chunk1\n {\n xtc.parser.Result fModuleList;\n descriptor: Lxtc/parser/Result;\n flags: (0x0000)\n \n xtc.parser.Result fModuleList$$Star1;\n descriptor: Lxtc/parser/Result;\n@@ -84,9 +85,10 @@\n 0: aload_0\n 1: invokespecial #1 // Method java/lang/Object.\"\":()V\n 4: return\n LineNumberTable:\n line 45: 0\n }\n SourceFile: \"PParser.java\"\n+NestHost: class xtc/parser/PParser\n InnerClasses:\n- static final #27= #7 of #25; // Chunk1=class xtc/parser/PParser$Chunk1 of class xtc/parser/PParser\n+ static final #28= #7 of #25; // Chunk1=class xtc/parser/PParser$Chunk1 of class xtc/parser/PParser\n"}]}, {"source1": "xtc/parser/PParser$Chunk2.class", "source2": "xtc/parser/PParser$Chunk2.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,16 +1,16 @@\n- SHA-256 checksum 4866d40e0626a33eda876f316ef49d3ebab9dae879ec3728098093785780e1fc\n+ SHA-256 checksum a0623ccd9e3c216c83623b182002b702e6a558b6f6114ccf3e8ca997c51a7d0d\n Compiled from \"PParser.java\"\n final class xtc.parser.PParser$Chunk2\n minor version: 0\n- major version: 52\n+ major version: 61\n flags: (0x0030) ACC_FINAL, ACC_SUPER\n this_class: #7 // xtc/parser/PParser$Chunk2\n super_class: #2 // java/lang/Object\n- interfaces: 0, fields: 10, methods: 1, attributes: 2\n+ interfaces: 0, fields: 10, methods: 1, attributes: 3\n Constant pool:\n #1 = Methodref #2.#3 // java/lang/Object.\"\":()V\n #2 = Class #4 // java/lang/Object\n #3 = NameAndType #5:#6 // \"\":()V\n #4 = Utf8 java/lang/Object\n #5 = Utf8 \n #6 = Utf8 ()V\n@@ -27,18 +27,19 @@\n #17 = Utf8 fTypeNameCharacters\n #18 = Utf8 fTypeNameCharacters$$Star1\n #19 = Utf8 fName\n #20 = Utf8 Code\n #21 = Utf8 LineNumberTable\n #22 = Utf8 SourceFile\n #23 = Utf8 PParser.java\n- #24 = Utf8 InnerClasses\n+ #24 = Utf8 NestHost\n #25 = Class #26 // xtc/parser/PParser\n #26 = Utf8 xtc/parser/PParser\n- #27 = Utf8 Chunk2\n+ #27 = Utf8 InnerClasses\n+ #28 = Utf8 Chunk2\n {\n xtc.parser.Result fVoided;\n descriptor: Lxtc/parser/Result;\n flags: (0x0000)\n \n xtc.parser.Result fSuffix;\n descriptor: Lxtc/parser/Result;\n@@ -84,9 +85,10 @@\n 0: aload_0\n 1: invokespecial #1 // Method java/lang/Object.\"\":()V\n 4: return\n LineNumberTable:\n line 59: 0\n }\n SourceFile: \"PParser.java\"\n+NestHost: class xtc/parser/PParser\n InnerClasses:\n- static final #27= #7 of #25; // Chunk2=class xtc/parser/PParser$Chunk2 of class xtc/parser/PParser\n+ static final #28= #7 of #25; // Chunk2=class xtc/parser/PParser$Chunk2 of class xtc/parser/PParser\n"}]}, {"source1": "xtc/parser/PParser$Chunk3.class", "source2": "xtc/parser/PParser$Chunk3.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,16 +1,16 @@\n- SHA-256 checksum 5422c200eb16afdf36b0efba7a6bea2f685bbf93731534ec1d508e5f6cededa7\n+ SHA-256 checksum a34eb1a1c13e6a845fe307f0dab91846f7eda37b4c720504c420e558b501cbad\n Compiled from \"PParser.java\"\n final class xtc.parser.PParser$Chunk3\n minor version: 0\n- major version: 52\n+ major version: 61\n flags: (0x0030) ACC_FINAL, ACC_SUPER\n this_class: #7 // xtc/parser/PParser$Chunk3\n super_class: #2 // java/lang/Object\n- interfaces: 0, fields: 10, methods: 1, attributes: 2\n+ interfaces: 0, fields: 10, methods: 1, attributes: 3\n Constant pool:\n #1 = Methodref #2.#3 // java/lang/Object.\"\":()V\n #2 = Class #4 // java/lang/Object\n #3 = NameAndType #5:#6 // \"\":()V\n #4 = Utf8 java/lang/Object\n #5 = Utf8 \n #6 = Utf8 ()V\n@@ -27,18 +27,19 @@\n #17 = Utf8 fStringLiteral\n #18 = Utf8 fStringLiteral$$Star1\n #19 = Utf8 fClassChar\n #20 = Utf8 Code\n #21 = Utf8 LineNumberTable\n #22 = Utf8 SourceFile\n #23 = Utf8 PParser.java\n- #24 = Utf8 InnerClasses\n+ #24 = Utf8 NestHost\n #25 = Class #26 // xtc/parser/PParser\n #26 = Utf8 xtc/parser/PParser\n- #27 = Utf8 Chunk3\n+ #27 = Utf8 InnerClasses\n+ #28 = Utf8 Chunk3\n {\n xtc.parser.Result fWord;\n descriptor: Lxtc/parser/Result;\n flags: (0x0000)\n \n xtc.parser.Result fNameCharacters;\n descriptor: Lxtc/parser/Result;\n@@ -84,9 +85,10 @@\n 0: aload_0\n 1: invokespecial #1 // Method java/lang/Object.\"\":()V\n 4: return\n LineNumberTable:\n line 73: 0\n }\n SourceFile: \"PParser.java\"\n+NestHost: class xtc/parser/PParser\n InnerClasses:\n- static final #27= #7 of #25; // Chunk3=class xtc/parser/PParser$Chunk3 of class xtc/parser/PParser\n+ static final #28= #7 of #25; // Chunk3=class xtc/parser/PParser$Chunk3 of class xtc/parser/PParser\n"}]}, {"source1": "xtc/parser/PParser$Chunk4.class", "source2": "xtc/parser/PParser$Chunk4.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,16 +1,16 @@\n- SHA-256 checksum 5d920639aba8deaf04a0c3bd4d01192a09461b76733d4fb16ad64d9dd949921b\n+ SHA-256 checksum adbe86334ab8fc18bd71225174a663b4f141bd55caa03c18921aa3a6ba2f3126\n Compiled from \"PParser.java\"\n final class xtc.parser.PParser$Chunk4\n minor version: 0\n- major version: 52\n+ major version: 61\n flags: (0x0030) ACC_FINAL, ACC_SUPER\n this_class: #7 // xtc/parser/PParser$Chunk4\n super_class: #2 // java/lang/Object\n- interfaces: 0, fields: 1, methods: 1, attributes: 2\n+ interfaces: 0, fields: 1, methods: 1, attributes: 3\n Constant pool:\n #1 = Methodref #2.#3 // java/lang/Object.\"\":()V\n #2 = Class #4 // java/lang/Object\n #3 = NameAndType #5:#6 // \"\":()V\n #4 = Utf8 java/lang/Object\n #5 = Utf8 \n #6 = Utf8 ()V\n@@ -18,18 +18,19 @@\n #8 = Utf8 xtc/parser/PParser$Chunk4\n #9 = Utf8 fSymbol\n #10 = Utf8 Lxtc/parser/Result;\n #11 = Utf8 Code\n #12 = Utf8 LineNumberTable\n #13 = Utf8 SourceFile\n #14 = Utf8 PParser.java\n- #15 = Utf8 InnerClasses\n+ #15 = Utf8 NestHost\n #16 = Class #17 // xtc/parser/PParser\n #17 = Utf8 xtc/parser/PParser\n- #18 = Utf8 Chunk4\n+ #18 = Utf8 InnerClasses\n+ #19 = Utf8 Chunk4\n {\n xtc.parser.Result fSymbol;\n descriptor: Lxtc/parser/Result;\n flags: (0x0000)\n \n xtc.parser.PParser$Chunk4();\n descriptor: ()V\n@@ -39,9 +40,10 @@\n 0: aload_0\n 1: invokespecial #1 // Method java/lang/Object.\"\":()V\n 4: return\n LineNumberTable:\n line 87: 0\n }\n SourceFile: \"PParser.java\"\n+NestHost: class xtc/parser/PParser\n InnerClasses:\n- static final #18= #7 of #16; // Chunk4=class xtc/parser/PParser$Chunk4 of class xtc/parser/PParser\n+ static final #19= #7 of #16; // Chunk4=class xtc/parser/PParser$Chunk4 of class xtc/parser/PParser\n"}]}, {"source1": "xtc/parser/PParser$PParserColumn.class", "source2": "xtc/parser/PParser$PParserColumn.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,16 +1,16 @@\n- SHA-256 checksum f69edbfb3fb08577519b25a79862a8adb3e216eb44d5e8874b7a7567d9aaf8b6\n+ SHA-256 checksum 0600dc4ea27c977db6379d477163fef8f84c3f512f5d99093535b27372247d7a\n Compiled from \"PParser.java\"\n final class xtc.parser.PParser$PParserColumn extends xtc.parser.Column\n minor version: 0\n- major version: 52\n+ major version: 61\n flags: (0x0030) ACC_FINAL, ACC_SUPER\n this_class: #7 // xtc/parser/PParser$PParserColumn\n super_class: #2 // xtc/parser/Column\n- interfaces: 0, fields: 4, methods: 1, attributes: 2\n+ interfaces: 0, fields: 4, methods: 1, attributes: 3\n Constant pool:\n #1 = Methodref #2.#3 // xtc/parser/Column.\"\":()V\n #2 = Class #4 // xtc/parser/Column\n #3 = NameAndType #5:#6 // \"\":()V\n #4 = Utf8 xtc/parser/Column\n #5 = Utf8 \n #6 = Utf8 ()V\n@@ -24,30 +24,31 @@\n #14 = Utf8 Lxtc/parser/PParser$Chunk3;\n #15 = Utf8 chunk4\n #16 = Utf8 Lxtc/parser/PParser$Chunk4;\n #17 = Utf8 Code\n #18 = Utf8 LineNumberTable\n #19 = Utf8 SourceFile\n #20 = Utf8 PParser.java\n- #21 = Utf8 InnerClasses\n+ #21 = Utf8 NestHost\n #22 = Class #23 // xtc/parser/PParser\n #23 = Utf8 xtc/parser/PParser\n- #24 = Utf8 PParserColumn\n- #25 = Class #26 // xtc/parser/PParser$Chunk1\n- #26 = Utf8 xtc/parser/PParser$Chunk1\n- #27 = Utf8 Chunk1\n- #28 = Class #29 // xtc/parser/PParser$Chunk2\n- #29 = Utf8 xtc/parser/PParser$Chunk2\n- #30 = Utf8 Chunk2\n- #31 = Class #32 // xtc/parser/PParser$Chunk3\n- #32 = Utf8 xtc/parser/PParser$Chunk3\n- #33 = Utf8 Chunk3\n- #34 = Class #35 // xtc/parser/PParser$Chunk4\n- #35 = Utf8 xtc/parser/PParser$Chunk4\n- #36 = Utf8 Chunk4\n+ #24 = Utf8 InnerClasses\n+ #25 = Utf8 PParserColumn\n+ #26 = Class #27 // xtc/parser/PParser$Chunk1\n+ #27 = Utf8 xtc/parser/PParser$Chunk1\n+ #28 = Utf8 Chunk1\n+ #29 = Class #30 // xtc/parser/PParser$Chunk2\n+ #30 = Utf8 xtc/parser/PParser$Chunk2\n+ #31 = Utf8 Chunk2\n+ #32 = Class #33 // xtc/parser/PParser$Chunk3\n+ #33 = Utf8 xtc/parser/PParser$Chunk3\n+ #34 = Utf8 Chunk3\n+ #35 = Class #36 // xtc/parser/PParser$Chunk4\n+ #36 = Utf8 xtc/parser/PParser$Chunk4\n+ #37 = Utf8 Chunk4\n {\n xtc.parser.PParser$Chunk1 chunk1;\n descriptor: Lxtc/parser/PParser$Chunk1;\n flags: (0x0000)\n \n xtc.parser.PParser$Chunk2 chunk2;\n descriptor: Lxtc/parser/PParser$Chunk2;\n@@ -69,13 +70,14 @@\n 0: aload_0\n 1: invokespecial #1 // Method xtc/parser/Column.\"\":()V\n 4: return\n LineNumberTable:\n line 94: 0\n }\n SourceFile: \"PParser.java\"\n+NestHost: class xtc/parser/PParser\n InnerClasses:\n- static final #24= #7 of #22; // PParserColumn=class xtc/parser/PParser$PParserColumn of class xtc/parser/PParser\n- static final #27= #25 of #22; // Chunk1=class xtc/parser/PParser$Chunk1 of class xtc/parser/PParser\n- static final #30= #28 of #22; // Chunk2=class xtc/parser/PParser$Chunk2 of class xtc/parser/PParser\n- static final #33= #31 of #22; // Chunk3=class xtc/parser/PParser$Chunk3 of class xtc/parser/PParser\n- static final #36= #34 of #22; // Chunk4=class xtc/parser/PParser$Chunk4 of class xtc/parser/PParser\n+ static final #25= #7 of #22; // PParserColumn=class xtc/parser/PParser$PParserColumn of class xtc/parser/PParser\n+ static final #28= #26 of #22; // Chunk1=class xtc/parser/PParser$Chunk1 of class xtc/parser/PParser\n+ static final #31= #29 of #22; // Chunk2=class xtc/parser/PParser$Chunk2 of class xtc/parser/PParser\n+ static final #34= #32 of #22; // Chunk3=class xtc/parser/PParser$Chunk3 of class xtc/parser/PParser\n+ static final #37= #35 of #22; // Chunk4=class xtc/parser/PParser$Chunk4 of class xtc/parser/PParser\n"}]}, {"source1": "xtc/parser/PParser.class", "source2": "xtc/parser/PParser.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -1092,16 +1092,16 @@\n final Result pSymbol = this.pSymbol(n);\n if (pSymbol.hasValue(\"&\")) {\n final Result pSuffix = this.pSuffix(pSymbol.index);\n parseError = pSuffix.select(parseError);\n if (pSuffix.hasValue()) {\n final Element element = (Element)pSuffix.semanticValue();\n Object o;\n- if (element instanceof Action) {\n- o = new SemanticPredicate((Action)element);\n+ if (element instanceof final Action action) {\n+ o = new SemanticPredicate(action);\n }\n else {\n o = new FollowedBy(element);\n }\n this.setLocation((Locatable)o, n);\n return (Result)pSuffix.createValue(o, parseError);\n }\n@@ -1118,16 +1118,16 @@\n }\n final Result pSymbol3 = this.pSymbol(n);\n if (pSymbol3.hasValue(\"^\")) {\n final Result pSuffix3 = this.pSuffix(pSymbol3.index);\n parseError = pSuffix3.select(parseError);\n if (pSuffix3.hasValue()) {\n final Element element2 = (Element)pSuffix3.semanticValue();\n- if (element2 instanceof Action) {\n- final ParserAction parserAction = new ParserAction((Action)element2);\n+ if (element2 instanceof final Action action2) {\n+ final ParserAction parserAction = new ParserAction(action2);\n this.setLocation((Locatable)parserAction, n);\n return (Result)pSuffix3.createValue((Object)parserAction, parseError);\n }\n }\n }\n final Result pWord = this.pWord(n);\n ParseError parseError2 = pWord.select(parseError);\n@@ -1700,16 +1700,16 @@\n Object decode;\n try {\n decode = Integer.decode(nm);\n }\n catch (final NumberFormatException ex) {\n decode = null;\n }\n- if (decode instanceof Locatable) {\n- this.setLocation((Locatable)decode, n);\n+ if (decode instanceof final Locatable locatable) {\n+ this.setLocation(locatable, n);\n }\n return (Result)pSpacing.createValue(decode, parseError);\n }\n }\n final Result pName = this.pName(n);\n final ParseError select = pName.select(parseError);\n if (pName.hasValue()) {\n"}]}, {"source1": "xtc/parser/PParserState.class", "source2": "xtc/parser/PParserState.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,12 +1,12 @@\n- SHA-256 checksum 80dc6cb305f75d571b45dd68efe9ba0be0e60239828b91a7b77bc08b611bfda2\n+ SHA-256 checksum 429c28ae36617f22740ba62a3cbcb46451f7e652182f157538e930fabbb60725\n Compiled from \"PParserState.java\"\n public class xtc.parser.PParserState implements xtc.util.State\n minor version: 0\n- major version: 52\n+ major version: 61\n flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n this_class: #8 // xtc/parser/PParserState\n super_class: #2 // java/lang/Object\n interfaces: 1, fields: 3, methods: 10, attributes: 1\n Constant pool:\n #1 = Methodref #2.#3 // java/lang/Object.\"\":()V\n #2 = Class #4 // java/lang/Object\n"}]}, {"source1": "xtc/parser/ParseError.class", "source2": "xtc/parser/ParseError.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,12 +1,12 @@\n- SHA-256 checksum 732e116fc2203a459a0a34bde147e9bb245a95b3ccb9ac3ccc5c402ceb4387e8\n+ SHA-256 checksum e3be7055bc3635b75407ebad2990c454400f750b6bf2e14362be8fe83ce02063\n Compiled from \"ParseError.java\"\n public final class xtc.parser.ParseError extends xtc.parser.Result\n minor version: 0\n- major version: 52\n+ major version: 61\n flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER\n this_class: #8 // xtc/parser/ParseError\n super_class: #2 // xtc/parser/Result\n interfaces: 0, fields: 2, methods: 11, attributes: 1\n Constant pool:\n #1 = Methodref #2.#3 // xtc/parser/Result.\"\":(I)V\n #2 = Class #4 // xtc/parser/Result\n"}]}, {"source1": "xtc/parser/ParseException.class", "source2": "xtc/parser/ParseException.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,12 +1,12 @@\n- SHA-256 checksum d27cfcb61a779857a2fccb51d56562448f4a3842bc544b101a69dcb1e6f0d341\n+ SHA-256 checksum b502108310b5040130348a1f2d401a04c6f2f7cb86b18a71cf5cae839b7ed790\n Compiled from \"ParseException.java\"\n public class xtc.parser.ParseException extends java.lang.Exception\n minor version: 0\n- major version: 52\n+ major version: 61\n flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n this_class: #7 // xtc/parser/ParseException\n super_class: #2 // java/lang/Exception\n interfaces: 0, fields: 0, methods: 1, attributes: 1\n Constant pool:\n #1 = Methodref #2.#3 // java/lang/Exception.\"\":(Ljava/lang/String;)V\n #2 = Class #4 // java/lang/Exception\n"}]}, {"source1": "xtc/parser/ParserBase.class", "source2": "xtc/parser/ParserBase.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -21,26 +21,26 @@\n protected char[] yyData;\n protected Column[] yyColumns;\n \n public ParserBase(final Reader reader, final String s) {\n this(reader, s, 4095);\n }\n \n- public ParserBase(final Reader yyReader, final String file, final int i) {\n+ public ParserBase(final Reader yyReader, final String file, final int n) {\n if (null == file) {\n throw new NullPointerException(\"Null file\");\n }\n- if (i < 0) {\n- throw new IllegalArgumentException(\"Negative size: \" + i);\n+ if (n < 0) {\n+ throw new IllegalArgumentException(\"Negative size: \" + n);\n }\n this.yyReader = yyReader;\n this.yyCount = 0;\n this.yyEOF = false;\n- this.yyData = new char[i + 1];\n- this.yyColumns = new Column[i + 1];\n+ this.yyData = new char[n + 1];\n+ this.yyColumns = new Column[n + 1];\n final Column column = this.newColumn();\n column.file = file;\n column.seenCR = false;\n column.line = 1;\n column.column = 1;\n this.yyColumns[0] = column;\n }\n@@ -174,75 +174,75 @@\n return (offset == n) ? \"\" : new String(this.yyData, offset, n - offset);\n }\n \n public final boolean isEOF(final int n) {\n return this.yyEOF && n == this.yyCount - 1;\n }\n \n- public final String lineAt(int i) throws IOException {\n- if (0 > i) {\n- throw new IndexOutOfBoundsException(\"Parser index: \" + i);\n- }\n- if (0 < i && 10 == this.character(i) && 13 == this.character(i - 1)) {\n- --i;\n- }\n- int n = i;\n- int n2 = i;\n- for (int n3 = this.character(n2); -1 != n3 && 13 != n3 && 10 != n3; n3 = this.character(n2)) {\n- ++n2;\n+ public final String lineAt(int n) throws IOException {\n+ if (0 > n) {\n+ throw new IndexOutOfBoundsException(\"Parser index: \" + n);\n+ }\n+ if (0 < n && 10 == this.character(n) && 13 == this.character(n - 1)) {\n+ --n;\n+ }\n+ int n2 = n;\n+ int n3 = n;\n+ for (int n4 = this.character(n3); -1 != n4 && 13 != n4 && 10 != n4; n4 = this.character(n3)) {\n+ ++n3;\n }\n- while (n) {\n- final int character = this.character(n - 1);\n+ while (n2) {\n+ final int character = this.character(n2 - 1);\n if (13 != character) {\n if (10 != character) {\n- --n;\n+ --n2;\n continue;\n }\n }\n- return this.difference(n, n2);\n+ return this.difference(n2, n3);\n }\n- return this.difference(n, n2);\n+ return this.difference(n2, n3);\n }\n \n public final Location location(final int n) {\n final Column column = this.column(n);\n return new Location(column.file, column.line, column.column);\n }\n \n- protected final void setLocation(final int i, final String file, final int n, final int n2) {\n+ protected final void setLocation(final int n, final String file, final int line, final int column) {\n if (null == file) {\n throw new NullPointerException(\"Null file\");\n }\n- if (0 > n) {\n- throw new IllegalArgumentException(\"Invalid line number: \" + n);\n+ if (0 > line) {\n+ throw new IllegalArgumentException(\"Invalid line number: \" + line);\n }\n- if (1 > n2) {\n- throw new IllegalArgumentException(\"Invalid column number: \" + n2);\n+ if (1 > column) {\n+ throw new IllegalArgumentException(\"Invalid column number: \" + column);\n }\n- if (i < 0 || this.yyCount <= i) {\n- throw new IndexOutOfBoundsException(\"Parser index: \" + i);\n+ if (n < 0 || this.yyCount <= n) {\n+ throw new IndexOutOfBoundsException(\"Parser index: \" + n);\n }\n- final Column column = this.yyColumns[i];\n- if (null != column) {\n- if (file.equals(column.file) && n == column.line && n2 == column.column) {\n+ final Column column2 = this.yyColumns[n];\n+ if (null != column2) {\n+ if (file.equals(column2.file) && line == column2.line && column == column2.column) {\n return;\n }\n- if (0 != i) {\n- throw new IllegalStateException(\"Location at index \" + i + \" is already committed\");\n+ if (0 != n) {\n+ throw new IllegalStateException(\"Location at index \" + n + \" is already committed\");\n }\n }\n- for (int j = i + 1; j < this.yyCount; ++j) {\n- if (null != this.yyColumns[j]) {\n- throw new IllegalStateException(\"Location at index \" + i + \" is already committed\");\n+ for (int i = n + 1; i < this.yyCount; ++i) {\n+ if (null != this.yyColumns[i]) {\n+ throw new IllegalStateException(\"Location at index \" + n + \" is already committed\");\n }\n }\n- final Column column2 = this.column(i);\n- column2.file = file;\n- column2.line = n;\n- column2.column = n2;\n+ final Column column3 = this.column(n);\n+ column3.file = file;\n+ column3.line = line;\n+ column3.column = column;\n }\n \n public final void setLocation(final Locatable locatable, final int n) {\n if (null != locatable && !locatable.hasLocation()) {\n final Column column = this.column(n);\n locatable.setLocation(new Location(column.file, column.line, column.column));\n }\n"}]}, {"source1": "xtc/parser/Result.class", "source2": "xtc/parser/Result.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,12 +1,12 @@\n- SHA-256 checksum 876584179a9e41990db16a7815e1448baccb64ce55b3fd14a3755cdaac69e246\n+ SHA-256 checksum 9043dc1c962cf313c6912ee96a64531370fa0ad8582de5cc82e2e3688440b9a6\n Compiled from \"Result.java\"\n public abstract class xtc.parser.Result\n minor version: 0\n- major version: 52\n+ major version: 61\n flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT\n this_class: #8 // xtc/parser/Result\n super_class: #2 // java/lang/Object\n interfaces: 0, fields: 1, methods: 9, attributes: 1\n Constant pool:\n #1 = Methodref #2.#3 // java/lang/Object.\"\":()V\n #2 = Class #4 // java/lang/Object\n"}]}, {"source1": "xtc/parser/SemanticValue.class", "source2": "xtc/parser/SemanticValue.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,12 +1,12 @@\n- SHA-256 checksum 2037cdafe4d363a594344ee0f982a3eeaa03ee03fdc6366918e21a5d32edf643\n+ SHA-256 checksum 2c0d4740fae1deae7c4c03d40fbbe6d2c5612fad418199c7bcb570495811aa15\n Compiled from \"SemanticValue.java\"\n public final class xtc.parser.SemanticValue extends xtc.parser.Result\n minor version: 0\n- major version: 52\n+ major version: 61\n flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER\n this_class: #8 // xtc/parser/SemanticValue\n super_class: #14 // xtc/parser/Result\n interfaces: 0, fields: 2, methods: 10, attributes: 1\n Constant pool:\n #1 = Fieldref #2.#3 // xtc/parser/ParseError.DUMMY:Lxtc/parser/ParseError;\n #2 = Class #4 // xtc/parser/ParseError\n"}]}, {"source1": "xtc/tree/Annotation.class", "source2": "xtc/tree/Annotation.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,12 +1,12 @@\n- SHA-256 checksum 5d5adf4a6831e6f7207ae0e108b8cba003ef8e3421358b2feee546ff7d4630dd\n+ SHA-256 checksum 509ce7bcfb00469e329e4c6a218c3f92e092fd54ae192d563345220ba9623cf8\n Compiled from \"Annotation.java\"\n public abstract class xtc.tree.Annotation extends xtc.tree.Node\n minor version: 0\n- major version: 52\n+ major version: 61\n flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT\n this_class: #8 // xtc/tree/Annotation\n super_class: #2 // xtc/tree/Node\n interfaces: 0, fields: 1, methods: 9, attributes: 1\n Constant pool:\n #1 = Methodref #2.#3 // xtc/tree/Node.\"\":()V\n #2 = Class #4 // xtc/tree/Node\n"}]}, {"source1": "xtc/tree/Attribute.class", "source2": "xtc/tree/Attribute.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -25,22 +25,22 @@\n return true;\n }\n \n public int size() {\n return (null == this.value) ? 1 : 2;\n }\n \n- public Object get(final int i) {\n- if (0 == i) {\n+ public Object get(final int n) {\n+ if (0 == n) {\n return this.name;\n }\n- if (null != this.value && 1 == i) {\n+ if (null != this.value && 1 == n) {\n return this.value;\n }\n- throw new IndexOutOfBoundsException(\"Index : \" + i + \", Size: \" + ((null == this.value) ? 1 : 2));\n+ throw new IndexOutOfBoundsException(\"Index : \" + n + \", Size: \" + ((null == this.value) ? 1 : 2));\n }\n \n public Object set(final int n, final Object o) {\n throw new IllegalStateException(\"Attributes are immutable\");\n }\n \n public String getName() {\n@@ -81,24 +81,24 @@\n for (final Object next : (Iterable)this.value) {\n if (n != 0) {\n n = 0;\n }\n else {\n appendable.append(\", \");\n }\n- if (next instanceof Node) {\n- ((Node)next).write(appendable);\n+ if (next instanceof final Node node) {\n+ node.write(appendable);\n }\n else {\n appendable.append(next.toString());\n }\n }\n }\n- else if (this.value instanceof Node) {\n- ((Node)this.value).write(appendable);\n+ else if (this.value instanceof final Node node2) {\n+ node2.write(appendable);\n }\n else {\n appendable.append(this.value.toString());\n }\n appendable.append(')');\n }\n }\n"}]}, {"source1": "xtc/tree/Comment$Kind.class", "source2": "xtc/tree/Comment$Kind.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,16 +1,16 @@\n- SHA-256 checksum c48b0b9fb9f55782541d55cb0b5bef69c4b33f8605df431477b2cf734644fe5d\n+ SHA-256 checksum 26a1f48d98d02a43c23dc7fd1cd41eb4e8574553cca4a4ecf2aa55ffc137d46f\n Compiled from \"Comment.java\"\n public final class xtc.tree.Comment$Kind extends java.lang.Enum\n minor version: 0\n- major version: 52\n+ major version: 61\n flags: (0x4031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER, ACC_ENUM\n this_class: #1 // xtc/tree/Comment$Kind\n super_class: #23 // java/lang/Enum\n- interfaces: 0, fields: 4, methods: 5, attributes: 3\n+ interfaces: 0, fields: 4, methods: 5, attributes: 4\n Constant pool:\n #1 = Class #2 // xtc/tree/Comment$Kind\n #2 = Utf8 xtc/tree/Comment$Kind\n #3 = Fieldref #1.#4 // xtc/tree/Comment$Kind.SINGLE_LINE:Lxtc/tree/Comment$Kind;\n #4 = NameAndType #5:#6 // SINGLE_LINE:Lxtc/tree/Comment$Kind;\n #5 = Utf8 SINGLE_LINE\n #6 = Utf8 Lxtc/tree/Comment$Kind;\n@@ -53,18 +53,19 @@\n #43 = Utf8 (Ljava/lang/String;)Lxtc/tree/Comment$Kind;\n #44 = Utf8 Signature\n #45 = Utf8 ()V\n #46 = Utf8 \n #47 = Utf8 Ljava/lang/Enum;\n #48 = Utf8 SourceFile\n #49 = Utf8 Comment.java\n- #50 = Utf8 InnerClasses\n+ #50 = Utf8 NestHost\n #51 = Class #52 // xtc/tree/Comment\n #52 = Utf8 xtc/tree/Comment\n- #53 = Utf8 Kind\n+ #53 = Utf8 InnerClasses\n+ #54 = Utf8 Kind\n {\n public static final xtc.tree.Comment$Kind SINGLE_LINE;\n descriptor: Lxtc/tree/Comment$Kind;\n flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ENUM\n \n public static final xtc.tree.Comment$Kind MULTIPLE_LINES;\n descriptor: Lxtc/tree/Comment$Kind;\n@@ -170,9 +171,10 @@\n line 36: 0\n line 37: 13\n line 38: 26\n line 35: 39\n }\n Signature: #47 // Ljava/lang/Enum;\n SourceFile: \"Comment.java\"\n+NestHost: class xtc/tree/Comment\n InnerClasses:\n- public static final #53= #1 of #51; // Kind=class xtc/tree/Comment$Kind of class xtc/tree/Comment\n+ public static final #54= #1 of #51; // Kind=class xtc/tree/Comment$Kind of class xtc/tree/Comment\n"}]}, {"source1": "xtc/tree/Comment.class", "source2": "xtc/tree/Comment.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,16 +1,16 @@\n- SHA-256 checksum 3180363cd284345c626d55b3e65862dc228e0bb8c8fbcb9349886e858a9d44a7\n+ SHA-256 checksum f48de41f058ae802c07b5329cc74a424a4a9789c007e937873afbf45e1095f60\n Compiled from \"Comment.java\"\n public class xtc.tree.Comment extends xtc.tree.Annotation\n minor version: 0\n- major version: 52\n+ major version: 61\n flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n this_class: #2 // xtc/tree/Comment\n super_class: #8 // xtc/tree/Annotation\n- interfaces: 0, fields: 2, methods: 5, attributes: 2\n+ interfaces: 0, fields: 2, methods: 5, attributes: 3\n Constant pool:\n #1 = Methodref #2.#3 // xtc/tree/Comment.\"\":(Lxtc/tree/Comment$Kind;Ljava/util/List;Lxtc/tree/Node;)V\n #2 = Class #4 // xtc/tree/Comment\n #3 = NameAndType #5:#6 // \"\":(Lxtc/tree/Comment$Kind;Ljava/util/List;Lxtc/tree/Node;)V\n #4 = Utf8 xtc/tree/Comment\n #5 = Utf8 \n #6 = Utf8 (Lxtc/tree/Comment$Kind;Ljava/util/List;Lxtc/tree/Node;)V\n@@ -104,16 +104,17 @@\n #94 = Utf8 StackMapTable\n #95 = Utf8 documentation\n #96 = Utf8 (Ljava/lang/String;)Lxtc/tree/Comment;\n #97 = Class #98 // \"[Ljava/lang/String;\"\n #98 = Utf8 [Ljava/lang/String;\n #99 = Utf8 SourceFile\n #100 = Utf8 Comment.java\n- #101 = Utf8 InnerClasses\n- #102 = Utf8 Kind\n+ #101 = Utf8 NestMembers\n+ #102 = Utf8 InnerClasses\n+ #103 = Utf8 Kind\n {\n public xtc.tree.Comment$Kind kind;\n descriptor: Lxtc/tree/Comment$Kind;\n flags: (0x0001) ACC_PUBLIC\n \n public java.util.List text;\n descriptor: Ljava/util/List;\n@@ -420,9 +421,11 @@\n frame_type = 253 /* append */\n offset_delta = 16\n locals = [ class java/util/List, int ]\n frame_type = 250 /* chop */\n offset_delta = 23\n }\n SourceFile: \"Comment.java\"\n+NestMembers:\n+ xtc/tree/Comment$Kind\n InnerClasses:\n- public static final #102= #81 of #2; // Kind=class xtc/tree/Comment$Kind of class xtc/tree/Comment\n+ public static final #103= #81 of #2; // Kind=class xtc/tree/Comment$Kind of class xtc/tree/Comment\n"}]}, {"source1": "xtc/tree/GNode$Fixed.class", "source2": "xtc/tree/GNode$Fixed.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,16 +1,16 @@\n- SHA-256 checksum cf26b93b3739f7c248577e2b346b356fcec141e03bad6845b2fe40e8bde72fd3\n+ SHA-256 checksum fc9aaf623682f5c10aaac54bd2ad428fe8c9e3afd2dbdb0fb79b3976a58dd7c7\n Compiled from \"GNode.java\"\n abstract class xtc.tree.GNode$Fixed extends xtc.tree.GNode\n minor version: 0\n- major version: 52\n+ major version: 61\n flags: (0x0420) ACC_SUPER, ACC_ABSTRACT\n this_class: #12 // xtc/tree/GNode$Fixed\n super_class: #2 // xtc/tree/GNode\n- interfaces: 0, fields: 0, methods: 8, attributes: 2\n+ interfaces: 0, fields: 0, methods: 8, attributes: 3\n Constant pool:\n #1 = Methodref #2.#3 // xtc/tree/GNode.\"\":(Ljava/lang/String;)V\n #2 = Class #4 // xtc/tree/GNode\n #3 = NameAndType #5:#6 // \"\":(Ljava/lang/String;)V\n #4 = Utf8 xtc/tree/GNode\n #5 = Utf8 \n #6 = Utf8 (Ljava/lang/String;)V\n@@ -36,16 +36,17 @@\n #26 = Utf8 (Ljava/util/Collection<*>;)Lxtc/tree/Node;\n #27 = Utf8 (ILjava/util/Collection;)Lxtc/tree/Node;\n #28 = Utf8 (ILjava/util/Collection<*>;)Lxtc/tree/Node;\n #29 = Utf8 remove\n #30 = Utf8 (I)Ljava/lang/Object;\n #31 = Utf8 SourceFile\n #32 = Utf8 GNode.java\n- #33 = Utf8 InnerClasses\n- #34 = Utf8 Fixed\n+ #33 = Utf8 NestHost\n+ #34 = Utf8 InnerClasses\n+ #35 = Utf8 Fixed\n {\n xtc.tree.GNode$Fixed(java.lang.String);\n descriptor: (Ljava/lang/String;)V\n flags: (0x0000)\n Code:\n stack=2, locals=2, args_size=2\n 0: aload_0\n@@ -148,9 +149,10 @@\n 4: ldc #9 // String Generic node with a fixed number of children\n 6: invokespecial #11 // Method java/lang/UnsupportedOperationException.\"\":(Ljava/lang/String;)V\n 9: athrow\n LineNumberTable:\n line 91: 0\n }\n SourceFile: \"GNode.java\"\n+NestHost: class xtc/tree/GNode\n InnerClasses:\n- static abstract #34= #12 of #2; // Fixed=class xtc/tree/GNode$Fixed of class xtc/tree/GNode\n+ static abstract #35= #12 of #2; // Fixed=class xtc/tree/GNode$Fixed of class xtc/tree/GNode\n"}]}, {"source1": "xtc/tree/GNode$Fixed0.class", "source2": "xtc/tree/GNode$Fixed0.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -13,18 +13,18 @@\n super(fixed0.name);\n }\n \n public int size() {\n return 0;\n }\n \n- public Object get(final int i) {\n- throw new IndexOutOfBoundsException(\"Index: \" + i + \", Size: 0\");\n+ public Object get(final int n) {\n+ throw new IndexOutOfBoundsException(\"Index: \" + n + \", Size: 0\");\n }\n \n- public Object set(final int i, final Object o) {\n- throw new IndexOutOfBoundsException(\"Index: \" + i + \", Size: 0\");\n+ public Object set(final int n, final Object o) {\n+ throw new IndexOutOfBoundsException(\"Index: \" + n + \", Size: 0\");\n }\n \n public void addAllTo(final Collection collection) {\n }\n }\n"}]}, {"source1": "xtc/tree/GNode$Fixed1.class", "source2": "xtc/tree/GNode$Fixed1.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -16,27 +16,27 @@\n this(fixed1.name, fixed1.c1);\n }\n \n public int size() {\n return 1;\n }\n \n- public Object get(final int i) {\n- if (0 == i) {\n+ public Object get(final int n) {\n+ if (0 == n) {\n return this.c1;\n }\n- throw new IndexOutOfBoundsException(\"Index: \" + i + \", Size: 1\");\n+ throw new IndexOutOfBoundsException(\"Index: \" + n + \", Size: 1\");\n }\n \n- public Object set(final int i, final Object c1) {\n- if (0 == i) {\n+ public Object set(final int n, final Object c1) {\n+ if (0 == n) {\n final Object c2 = this.c1;\n this.c1 = c1;\n return c2;\n }\n- throw new IndexOutOfBoundsException(\"Index: \" + i + \", Size: 1\");\n+ throw new IndexOutOfBoundsException(\"Index: \" + n + \", Size: 1\");\n }\n \n public void addAllTo(final Collection collection) {\n collection.add(this.c1);\n }\n }\n"}]}, {"source1": "xtc/tree/GNode$Fixed2.class", "source2": "xtc/tree/GNode$Fixed2.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -18,42 +18,42 @@\n this(fixed2.name, fixed2.c1, fixed2.c2);\n }\n \n public int size() {\n return 2;\n }\n \n- public Object get(final int i) {\n- switch (i) {\n+ public Object get(final int n) {\n+ switch (n) {\n case 0: {\n return this.c1;\n }\n case 1: {\n return this.c2;\n }\n default: {\n- throw new IndexOutOfBoundsException(\"Index: \" + i + \", Size: 2\");\n+ throw new IndexOutOfBoundsException(\"Index: \" + n + \", Size: 2\");\n }\n }\n }\n \n- public Object set(final int i, final Object o) {\n- switch (i) {\n+ public Object set(final int n, final Object o) {\n+ switch (n) {\n case 0: {\n final Object c1 = this.c1;\n this.c1 = o;\n return c1;\n }\n case 1: {\n final Object c2 = this.c2;\n this.c2 = o;\n return c2;\n }\n default: {\n- throw new IndexOutOfBoundsException(\"Index: \" + i + \", Size: 2\");\n+ throw new IndexOutOfBoundsException(\"Index: \" + n + \", Size: 2\");\n }\n }\n }\n \n public void addAllTo(final Collection collection) {\n collection.add(this.c1);\n collection.add(this.c2);\n"}]}, {"source1": "xtc/tree/GNode$Fixed3.class", "source2": "xtc/tree/GNode$Fixed3.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -20,33 +20,33 @@\n this(fixed3.name, fixed3.c1, fixed3.c2, fixed3.c3);\n }\n \n public int size() {\n return 3;\n }\n \n- public Object get(final int i) {\n- switch (i) {\n+ public Object get(final int n) {\n+ switch (n) {\n case 0: {\n return this.c1;\n }\n case 1: {\n return this.c2;\n }\n case 2: {\n return this.c3;\n }\n default: {\n- throw new IndexOutOfBoundsException(\"Index: \" + i + \", Size: 3\");\n+ throw new IndexOutOfBoundsException(\"Index: \" + n + \", Size: 3\");\n }\n }\n }\n \n- public Object set(final int i, final Object c3) {\n- switch (i) {\n+ public Object set(final int n, final Object c3) {\n+ switch (n) {\n case 0: {\n final Object c4 = this.c1;\n this.c1 = c3;\n return c4;\n }\n case 1: {\n final Object c5 = this.c2;\n@@ -55,15 +55,15 @@\n }\n case 2: {\n final Object c6 = this.c3;\n this.c3 = c3;\n return c6;\n }\n default: {\n- throw new IndexOutOfBoundsException(\"Index: \" + i + \", Size: 3\");\n+ throw new IndexOutOfBoundsException(\"Index: \" + n + \", Size: 3\");\n }\n }\n }\n \n public void addAllTo(final Collection collection) {\n collection.add(this.c1);\n collection.add(this.c2);\n"}]}, {"source1": "xtc/tree/GNode$Fixed4.class", "source2": "xtc/tree/GNode$Fixed4.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -22,36 +22,36 @@\n this(fixed4.name, fixed4.c1, fixed4.c2, fixed4.c3, fixed4.c4);\n }\n \n public int size() {\n return 4;\n }\n \n- public Object get(final int i) {\n- switch (i) {\n+ public Object get(final int n) {\n+ switch (n) {\n case 0: {\n return this.c1;\n }\n case 1: {\n return this.c2;\n }\n case 2: {\n return this.c3;\n }\n case 3: {\n return this.c4;\n }\n default: {\n- throw new IndexOutOfBoundsException(\"Index: \" + i + \", Size: 4\");\n+ throw new IndexOutOfBoundsException(\"Index: \" + n + \", Size: 4\");\n }\n }\n }\n \n- public Object set(final int i, final Object o) {\n- switch (i) {\n+ public Object set(final int n, final Object o) {\n+ switch (n) {\n case 0: {\n final Object c1 = this.c1;\n this.c1 = o;\n return c1;\n }\n case 1: {\n final Object c2 = this.c2;\n@@ -65,15 +65,15 @@\n }\n case 3: {\n final Object c4 = this.c4;\n this.c4 = o;\n return c4;\n }\n default: {\n- throw new IndexOutOfBoundsException(\"Index: \" + i + \", Size: 4\");\n+ throw new IndexOutOfBoundsException(\"Index: \" + n + \", Size: 4\");\n }\n }\n }\n \n public void addAllTo(final Collection collection) {\n collection.add(this.c1);\n collection.add(this.c2);\n"}]}, {"source1": "xtc/tree/GNode$Fixed5.class", "source2": "xtc/tree/GNode$Fixed5.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -24,16 +24,16 @@\n this(fixed5.name, fixed5.c1, fixed5.c2, fixed5.c3, fixed5.c4, fixed5.c5);\n }\n \n public int size() {\n return 5;\n }\n \n- public Object get(final int i) {\n- switch (i) {\n+ public Object get(final int n) {\n+ switch (n) {\n case 0: {\n return this.c1;\n }\n case 1: {\n return this.c2;\n }\n case 2: {\n@@ -42,21 +42,21 @@\n case 3: {\n return this.c4;\n }\n case 4: {\n return this.c5;\n }\n default: {\n- throw new IndexOutOfBoundsException(\"Index: \" + i + \", Size: 5\");\n+ throw new IndexOutOfBoundsException(\"Index: \" + n + \", Size: 5\");\n }\n }\n }\n \n- public Object set(final int i, final Object c5) {\n- switch (i) {\n+ public Object set(final int n, final Object c5) {\n+ switch (n) {\n case 0: {\n final Object c6 = this.c1;\n this.c1 = c5;\n return c6;\n }\n case 1: {\n final Object c7 = this.c2;\n@@ -75,15 +75,15 @@\n }\n case 4: {\n final Object c10 = this.c5;\n this.c5 = c5;\n return c10;\n }\n default: {\n- throw new IndexOutOfBoundsException(\"Index: \" + i + \", Size: 5\");\n+ throw new IndexOutOfBoundsException(\"Index: \" + n + \", Size: 5\");\n }\n }\n }\n \n public void addAllTo(final Collection collection) {\n collection.add(this.c1);\n collection.add(this.c2);\n"}]}, {"source1": "xtc/tree/GNode$Fixed6.class", "source2": "xtc/tree/GNode$Fixed6.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -26,16 +26,16 @@\n this(fixed6.name, fixed6.c1, fixed6.c2, fixed6.c3, fixed6.c4, fixed6.c5, fixed6.c6);\n }\n \n public int size() {\n return 6;\n }\n \n- public Object get(final int i) {\n- switch (i) {\n+ public Object get(final int n) {\n+ switch (n) {\n case 0: {\n return this.c1;\n }\n case 1: {\n return this.c2;\n }\n case 2: {\n@@ -47,21 +47,21 @@\n case 4: {\n return this.c5;\n }\n case 5: {\n return this.c6;\n }\n default: {\n- throw new IndexOutOfBoundsException(\"Index: \" + i + \", Size: 6\");\n+ throw new IndexOutOfBoundsException(\"Index: \" + n + \", Size: 6\");\n }\n }\n }\n \n- public Object set(final int i, final Object o) {\n- switch (i) {\n+ public Object set(final int n, final Object o) {\n+ switch (n) {\n case 0: {\n final Object c1 = this.c1;\n this.c1 = o;\n return c1;\n }\n case 1: {\n final Object c2 = this.c2;\n@@ -85,15 +85,15 @@\n }\n case 5: {\n final Object c6 = this.c6;\n this.c6 = o;\n return c6;\n }\n default: {\n- throw new IndexOutOfBoundsException(\"Index: \" + i + \", Size: 6\");\n+ throw new IndexOutOfBoundsException(\"Index: \" + n + \", Size: 6\");\n }\n }\n }\n \n public void addAllTo(final Collection collection) {\n collection.add(this.c1);\n collection.add(this.c2);\n"}]}, {"source1": "xtc/tree/GNode$Fixed7.class", "source2": "xtc/tree/GNode$Fixed7.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -28,16 +28,16 @@\n this(fixed7.name, fixed7.c1, fixed7.c2, fixed7.c3, fixed7.c4, fixed7.c5, fixed7.c6, fixed7.c7);\n }\n \n public int size() {\n return 7;\n }\n \n- public Object get(final int i) {\n- switch (i) {\n+ public Object get(final int n) {\n+ switch (n) {\n case 0: {\n return this.c1;\n }\n case 1: {\n return this.c2;\n }\n case 2: {\n@@ -52,21 +52,21 @@\n case 5: {\n return this.c6;\n }\n case 6: {\n return this.c7;\n }\n default: {\n- throw new IndexOutOfBoundsException(\"Index: \" + i + \", Size: 7\");\n+ throw new IndexOutOfBoundsException(\"Index: \" + n + \", Size: 7\");\n }\n }\n }\n \n- public Object set(final int i, final Object c7) {\n- switch (i) {\n+ public Object set(final int n, final Object c7) {\n+ switch (n) {\n case 0: {\n final Object c8 = this.c1;\n this.c1 = c7;\n return c8;\n }\n case 1: {\n final Object c9 = this.c2;\n@@ -95,15 +95,15 @@\n }\n case 6: {\n final Object c14 = this.c7;\n this.c7 = c7;\n return c14;\n }\n default: {\n- throw new IndexOutOfBoundsException(\"Index: \" + i + \", Size: 7\");\n+ throw new IndexOutOfBoundsException(\"Index: \" + n + \", Size: 7\");\n }\n }\n }\n \n public void addAllTo(final Collection collection) {\n collection.add(this.c1);\n collection.add(this.c2);\n"}]}, {"source1": "xtc/tree/GNode$Fixed8.class", "source2": "xtc/tree/GNode$Fixed8.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -30,16 +30,16 @@\n this(fixed8.name, fixed8.c1, fixed8.c2, fixed8.c3, fixed8.c4, fixed8.c5, fixed8.c6, fixed8.c7, fixed8.c8);\n }\n \n public int size() {\n return 8;\n }\n \n- public Object get(final int i) {\n- switch (i) {\n+ public Object get(final int n) {\n+ switch (n) {\n case 0: {\n return this.c1;\n }\n case 1: {\n return this.c2;\n }\n case 2: {\n@@ -57,21 +57,21 @@\n case 6: {\n return this.c7;\n }\n case 7: {\n return this.c8;\n }\n default: {\n- throw new IndexOutOfBoundsException(\"Index: \" + i + \", Size: 8\");\n+ throw new IndexOutOfBoundsException(\"Index: \" + n + \", Size: 8\");\n }\n }\n }\n \n- public Object set(final int i, final Object o) {\n- switch (i) {\n+ public Object set(final int n, final Object o) {\n+ switch (n) {\n case 0: {\n final Object c1 = this.c1;\n this.c1 = o;\n return c1;\n }\n case 1: {\n final Object c2 = this.c2;\n@@ -105,15 +105,15 @@\n }\n case 7: {\n final Object c8 = this.c8;\n this.c8 = o;\n return c8;\n }\n default: {\n- throw new IndexOutOfBoundsException(\"Index: \" + i + \", Size: 8\");\n+ throw new IndexOutOfBoundsException(\"Index: \" + n + \", Size: 8\");\n }\n }\n }\n \n public void addAllTo(final Collection collection) {\n collection.add(this.c1);\n collection.add(this.c2);\n"}]}, {"source1": "xtc/tree/GNode$Variable.class", "source2": "xtc/tree/GNode$Variable.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,16 +1,16 @@\n- SHA-256 checksum 7b8a1ea2e021d61ceea3aaae0ec0f82c36c638f12f24a9ebb9432d86494a884b\n+ SHA-256 checksum 8814800cc43c013fb30dcb37f40f73db8c8212021ae66468cf17d58187448927\n Compiled from \"GNode.java\"\n class xtc.tree.GNode$Variable extends xtc.tree.GNode\n minor version: 0\n- major version: 52\n+ major version: 61\n flags: (0x0020) ACC_SUPER\n this_class: #13 // xtc/tree/GNode$Variable\n super_class: #2 // xtc/tree/GNode\n- interfaces: 0, fields: 1, methods: 17, attributes: 2\n+ interfaces: 0, fields: 1, methods: 17, attributes: 3\n Constant pool:\n #1 = Methodref #2.#3 // xtc/tree/GNode.\"\":(Ljava/lang/String;)V\n #2 = Class #4 // xtc/tree/GNode\n #3 = NameAndType #5:#6 // \"\":(Ljava/lang/String;)V\n #4 = Utf8 xtc/tree/GNode\n #5 = Utf8 \n #6 = Utf8 (Ljava/lang/String;)V\n@@ -102,16 +102,17 @@\n #92 = Utf8 (ILjava/util/Collection;)Lxtc/tree/Node;\n #93 = Utf8 (ILjava/util/Collection<*>;)Lxtc/tree/Node;\n #94 = Utf8 addAllTo\n #95 = Utf8 (Ljava/util/Collection;)V\n #96 = Utf8 ()Ljava/util/Iterator;\n #97 = Utf8 SourceFile\n #98 = Utf8 GNode.java\n- #99 = Utf8 InnerClasses\n- #100 = Utf8 Variable\n+ #99 = Utf8 NestHost\n+ #100 = Utf8 InnerClasses\n+ #101 = Utf8 Variable\n {\n private java.util.ArrayList children;\n descriptor: Ljava/util/ArrayList;\n flags: (0x0002) ACC_PRIVATE\n Signature: #75 // Ljava/util/ArrayList;\n \n xtc.tree.GNode$Variable(java.lang.String);\n@@ -383,9 +384,10 @@\n 4: iload_1\n 5: invokevirtual #71 // Method java/util/ArrayList.remove:(I)Ljava/lang/Object;\n 8: areturn\n LineNumberTable:\n line 852: 0\n }\n SourceFile: \"GNode.java\"\n+NestHost: class xtc/tree/GNode\n InnerClasses:\n- static #100= #13 of #2; // Variable=class xtc/tree/GNode$Variable of class xtc/tree/GNode\n+ static #101= #13 of #2; // Variable=class xtc/tree/GNode$Variable of class xtc/tree/GNode\n"}]}, {"source1": "xtc/tree/GNode.class", "source2": "xtc/tree/GNode.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -277,16 +277,16 @@\n variable.addAll(pair);\n return (GNode)variable;\n }\n }\n }\n \n public static GNode create(final GNode gNode) {\n- if (gNode instanceof GNode.Variable) {\n- return (GNode)new GNode.Variable((GNode.Variable)gNode);\n+ if (gNode instanceof final GNode.Variable variable) {\n+ return (GNode)new GNode.Variable(variable);\n }\n switch (gNode.size()) {\n case 0: {\n return (GNode)new GNode.Fixed0((GNode.Fixed0)gNode);\n }\n case 1: {\n return (GNode)new GNode.Fixed1((GNode.Fixed1)gNode);\n"}]}, {"source1": "xtc/tree/Locatable.class", "source2": "xtc/tree/Locatable.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,12 +1,12 @@\n- SHA-256 checksum 7fcd71194acbd15eacee544c7e631a1ce82af0bf4fbde2c9ba28abf704d22576\n+ SHA-256 checksum 06c6c87368c1ae736ee8adfa50704590c057364c3ff9e33a69cd4848853d25b3\n Compiled from \"Locatable.java\"\n public interface xtc.tree.Locatable\n minor version: 0\n- major version: 52\n+ major version: 61\n flags: (0x0601) ACC_PUBLIC, ACC_INTERFACE, ACC_ABSTRACT\n this_class: #1 // xtc/tree/Locatable\n super_class: #3 // java/lang/Object\n interfaces: 0, fields: 0, methods: 4, attributes: 1\n Constant pool:\n #1 = Class #2 // xtc/tree/Locatable\n #2 = Utf8 xtc/tree/Locatable\n"}]}, {"source1": "xtc/tree/Location.class", "source2": "xtc/tree/Location.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,12 +1,12 @@\n- SHA-256 checksum a6005c1da05f1f225ad71566d5b289a264ff1c5ec7fb516f87c68766b5ab7220\n+ SHA-256 checksum 1bb8e202b5b626259011e07c53657a987c93918f20fede13381202affabd31d5\n Compiled from \"Location.java\"\n public class xtc.tree.Location implements java.lang.Comparable\n minor version: 0\n- major version: 52\n+ major version: 61\n flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n this_class: #8 // xtc/tree/Location\n super_class: #2 // java/lang/Object\n interfaces: 1, fields: 3, methods: 6, attributes: 1\n Constant pool:\n #1 = Methodref #2.#3 // java/lang/Object.\"\":()V\n #2 = Class #4 // java/lang/Object\n"}]}, {"source1": "xtc/tree/Node$1.class", "source2": "xtc/tree/Node$1.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,16 +1,16 @@\n- SHA-256 checksum a929940c42fe6d7ec052b2b0cc05744ef99ec189d053894ac10d35bd8e906c8b\n+ SHA-256 checksum 6f30b54e8c28608018a12565255ff73c56d3c67126e7ed6b66f9a5379bdb5b36\n Compiled from \"Node.java\"\n class xtc.tree.Node$1 extends java.lang.Object implements java.util.Iterator\n minor version: 0\n- major version: 52\n+ major version: 61\n flags: (0x0020) ACC_SUPER\n this_class: #2 // xtc/tree/Node$1\n super_class: #12 // java/lang/Object\n- interfaces: 1, fields: 3, methods: 4, attributes: 4\n+ interfaces: 1, fields: 3, methods: 4, attributes: 5\n Constant pool:\n #1 = Fieldref #2.#3 // xtc/tree/Node$1.this$0:Lxtc/tree/Node;\n #2 = Class #4 // xtc/tree/Node$1\n #3 = NameAndType #5:#6 // this$0:Lxtc/tree/Node;\n #4 = Utf8 xtc/tree/Node$1\n #5 = Utf8 this$0\n #6 = Utf8 Lxtc/tree/Node;\n@@ -58,15 +58,16 @@\n #48 = Utf8 Ljava/lang/Object;Ljava/util/Iterator;\n #49 = Utf8 SourceFile\n #50 = Utf8 Node.java\n #51 = Utf8 EnclosingMethod\n #52 = NameAndType #53:#54 // iterator:()Ljava/util/Iterator;\n #53 = Utf8 iterator\n #54 = Utf8 ()Ljava/util/Iterator;\n- #55 = Utf8 InnerClasses\n+ #55 = Utf8 NestHost\n+ #56 = Utf8 InnerClasses\n {\n int cursor;\n descriptor: I\n flags: (0x0000)\n \n final int val$size;\n descriptor: I\n@@ -163,9 +164,10 @@\n 9: athrow\n LineNumberTable:\n line 365: 0\n }\n Signature: #48 // Ljava/lang/Object;Ljava/util/Iterator;\n SourceFile: \"Node.java\"\n EnclosingMethod: #21.#52 // xtc.tree.Node.iterator\n+NestHost: class xtc/tree/Node\n InnerClasses:\n #2; // class xtc/tree/Node$1\n"}]}, {"source1": "xtc/tree/Node.class", "source2": "xtc/tree/Node.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -146,16 +146,16 @@\n }\n \n public String getString(final int n) {\n final Object value = this.get(n);\n if (null == value) {\n return null;\n }\n- if (value instanceof String) {\n- return (String)value;\n+ if (value instanceof final String s) {\n+ return s;\n }\n return ((Node)value).getTokenText();\n }\n \n public Node getNode(final int n) {\n return (Node)this.get(n);\n }\n@@ -288,16 +288,16 @@\n appendable.append(\"null\");\n }\n else if (next instanceof String) {\n appendable.append('\\\"');\n Utilities.escape((String)next, appendable, 8);\n appendable.append('\\\"');\n }\n- else if (next instanceof Node) {\n- ((Node)next).write(appendable);\n+ else if (next instanceof final Node node) {\n+ node.write(appendable);\n }\n else {\n appendable.append(next.toString());\n }\n }\n appendable.append(')');\n }\n@@ -315,14 +315,14 @@\n return sb.toString();\n }\n \n public static final boolean isList(final Object o) {\n return o instanceof Pair && (Pair.EMPTY == o || ((Pair)o).head() instanceof Node);\n }\n \n- public static final Pair toList(final Object obj) {\n- if (isList(obj)) {\n- return (Pair)obj;\n+ public static final Pair toList(final Object o) {\n+ if (isList(o)) {\n+ return (Pair)o;\n }\n- throw new ClassCastException(\"Not a list of nodes \" + obj);\n+ throw new ClassCastException(\"Not a list of nodes \" + o);\n }\n }\n"}]}, {"source1": "xtc/tree/Printer.class", "source2": "xtc/tree/Printer.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -424,16 +424,15 @@\n }\n \n private Printer format1(final Object o, final boolean b) {\n this.indent();\n if (null == o) {\n this.p(\"null\");\n }\n- else if (o instanceof Node) {\n- final Node node = (Node)o;\n+ else if (o instanceof final Node node) {\n this.p(node.getName());\n if (b && node.hasLocation()) {\n final Location location = node.getLocation();\n this.p('@');\n if (!location.file.equals(this.formatFile)) {\n this.p(location.file).p(':');\n this.formatFile = location.file;\n@@ -444,16 +443,15 @@\n if (node.isEmpty()) {\n this.p(')');\n }\n else {\n this.pln().incr().formatElements((Iterable)node, b).decr().indent().p(')');\n }\n }\n- else if (o instanceof Pair) {\n- final Pair pair = (Pair)o;\n+ else if (o instanceof final Pair pair) {\n if (pair.isEmpty()) {\n this.p(\"[]\");\n }\n else {\n this.pln('[').incr().formatElements((Iterable)pair, b).decr().indent().p(']');\n }\n }\n@@ -475,16 +473,15 @@\n }\n this.pln();\n }\n return this;\n }\n \n public Printer loc(Locatable locatable) {\n- if (locatable instanceof Node) {\n- final Node node = (Node)locatable;\n+ if (locatable instanceof final Node node) {\n if (node.hasProperty(\"xtc.Constants.Original\")) {\n locatable = (Locatable)node.getProperty(\"xtc.Constants.Original\");\n }\n }\n if (locatable.hasLocation()) {\n final Location location = locatable.getLocation();\n this.p(location.file).p(':').p(location.line).p(':').p(location.column);\n@@ -492,32 +489,32 @@\n return this;\n }\n \n public Printer lineUp(final Locatable locatable) {\n return this.lineUp(locatable, 0);\n }\n \n- public Printer lineUp(final Locatable obj, final int i) {\n- if (!obj.hasLocation()) {\n- throw new IllegalArgumentException(\"Locatable without location \" + obj);\n- }\n- final Location location = obj.getLocation();\n- if (0 > location.column - i) {\n- throw new IllegalArgumentException(\"Invalid character distance \" + i);\n+ public Printer lineUp(final Locatable locatable, final int n) {\n+ if (!locatable.hasLocation()) {\n+ throw new IllegalArgumentException(\"Locatable without location \" + locatable);\n+ }\n+ final Location location = locatable.getLocation();\n+ if (0 > location.column - n) {\n+ throw new IllegalArgumentException(\"Invalid character distance \" + n);\n }\n if (location.line > this.line) {\n- for (int n = 0; n < location.line - this.line; ++n) {\n+ for (int n2 = 0; n2 < location.line - this.line; ++n2) {\n this.pln();\n }\n- for (int j = 0; j < location.column - i; ++j) {\n+ for (int i = 0; i < location.column - n; ++i) {\n this.p(' ');\n }\n }\n- else if (location.line == this.line && location.column - i >= this.column) {\n- for (int k = 0; k < location.column - i - this.column; ++k) {\n+ else if (location.line == this.line && location.column - n >= this.column) {\n+ for (int j = 0; j < location.column - n - this.column; ++j) {\n this.p(' ');\n }\n }\n else {\n this.p(' ');\n }\n return this;\n"}]}, {"source1": "xtc/tree/Token.class", "source2": "xtc/tree/Token.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -25,32 +25,32 @@\n return true;\n }\n \n public int size() {\n return 1;\n }\n \n- public Object get(final int i) {\n- if (0 == i) {\n+ public Object get(final int n) {\n+ if (0 == n) {\n return this.text;\n }\n- throw new IndexOutOfBoundsException(\"Index: \" + i + \", Size: 1\");\n+ throw new IndexOutOfBoundsException(\"Index: \" + n + \", Size: 1\");\n }\n \n public Object set(final int n, final Object o) {\n throw new IllegalStateException(\"Not modifiable\");\n }\n \n public static final boolean test(final Object o) {\n return o instanceof String || (o instanceof Node && ((Node)o).strip().isToken());\n }\n \n public static final String cast(final Object o) {\n if (null == o) {\n return null;\n }\n- if (o instanceof String) {\n- return (String)o;\n+ if (o instanceof final String s) {\n+ return s;\n }\n return ((Node)o).getTokenText();\n }\n }\n"}]}, {"source1": "xtc/tree/TraversalException.class", "source2": "xtc/tree/TraversalException.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,12 +1,12 @@\n- SHA-256 checksum 7224c485113e3c8495dd02fc85f04871cc065e42cf134f23af924cdab64b4e83\n+ SHA-256 checksum 588338573f8ba742e09d232835ecfbb1ba14ab09fe958c5e397a7ef4e927892c\n Compiled from \"TraversalException.java\"\n public class xtc.tree.TraversalException extends java.lang.RuntimeException\n minor version: 0\n- major version: 52\n+ major version: 61\n flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n this_class: #15 // xtc/tree/TraversalException\n super_class: #2 // java/lang/RuntimeException\n interfaces: 0, fields: 0, methods: 7, attributes: 1\n Constant pool:\n #1 = Methodref #2.#3 // java/lang/RuntimeException.\"\":(Ljava/lang/String;)V\n #2 = Class #4 // java/lang/RuntimeException\n"}]}, {"source1": "xtc/tree/Utility.class", "source2": "xtc/tree/Utility.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,12 +1,12 @@\n- SHA-256 checksum e629cac0785c1c0a78417c1f0e2370a42dbfa91081d8b247aa64b8d51d2be0a5\n+ SHA-256 checksum 1a718efd43e0c9a22b55affd25e2ad3b3542f51b152824a44d47ffa7c468e95a\n Compiled from \"Utility.java\"\n public abstract class xtc.tree.Utility\n minor version: 0\n- major version: 52\n+ major version: 61\n flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT\n this_class: #8 // xtc/tree/Utility\n super_class: #2 // java/lang/Object\n interfaces: 0, fields: 1, methods: 3, attributes: 1\n Constant pool:\n #1 = Methodref #2.#3 // java/lang/Object.\"\":()V\n #2 = Class #4 // java/lang/Object\n"}]}, {"source1": "xtc/tree/VisitingException.class", "source2": "xtc/tree/VisitingException.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,12 +1,12 @@\n- SHA-256 checksum bd90707ed15e51b8a8ffbdb6ca7af6124edf9874fa7258f68ff08aeb7905fad0\n+ SHA-256 checksum 58b4accf2a9f3373b855fcd14606e6d592ff24c49aadd7d5bc6e40b41a18e10c\n Compiled from \"VisitingException.java\"\n public class xtc.tree.VisitingException extends xtc.tree.TraversalException\n minor version: 0\n- major version: 52\n+ major version: 61\n flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n this_class: #7 // xtc/tree/VisitingException\n super_class: #2 // xtc/tree/TraversalException\n interfaces: 0, fields: 0, methods: 1, attributes: 1\n Constant pool:\n #1 = Methodref #2.#3 // xtc/tree/TraversalException.\"\":(Ljava/lang/String;Ljava/lang/Throwable;)V\n #2 = Class #4 // xtc/tree/TraversalException\n"}]}, {"source1": "xtc/tree/Visitor$1.class", "source2": "xtc/tree/Visitor$1.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,16 +1,16 @@\n- SHA-256 checksum 309a3011c2a3457042fd8c85a3156409e43363e52a5d7f51a8e329a9e0b2d390\n+ SHA-256 checksum e81b57dbaa9bdaaa04226f8ae86640bf751c00e38008f36fc5b6bc05c5f56cab\n Compiled from \"Visitor.java\"\n class xtc.tree.Visitor$1 extends java.util.LinkedHashMap\n minor version: 0\n- major version: 52\n+ major version: 61\n flags: (0x0020) ACC_SUPER\n this_class: #10 // xtc/tree/Visitor$1\n super_class: #4 // java/util/LinkedHashMap\n- interfaces: 0, fields: 0, methods: 2, attributes: 4\n+ interfaces: 0, fields: 0, methods: 2, attributes: 5\n Constant pool:\n #1 = Class #2 // xtc/tree/Visitor\n #2 = Utf8 xtc/tree/Visitor\n #3 = Methodref #4.#5 // java/util/LinkedHashMap.\"\":(IFZ)V\n #4 = Class #6 // java/util/LinkedHashMap\n #5 = NameAndType #7:#8 // \"\":(IFZ)V\n #6 = Utf8 java/util/LinkedHashMap\n@@ -28,23 +28,24 @@\n #18 = Utf8 (Ljava/util/Map$Entry;)Z\n #19 = Utf8 StackMapTable\n #20 = Utf8 Signature\n #21 = Utf8 Ljava/util/LinkedHashMap;\n #22 = Utf8 SourceFile\n #23 = Utf8 Visitor.java\n #24 = Utf8 EnclosingMethod\n- #25 = Utf8 InnerClasses\n- #26 = Class #27 // java/util/Map$Entry\n- #27 = Utf8 java/util/Map$Entry\n- #28 = Class #29 // java/util/Map\n- #29 = Utf8 java/util/Map\n- #30 = Utf8 Entry\n- #31 = Class #32 // xtc/tree/Visitor$CacheKey\n- #32 = Utf8 xtc/tree/Visitor$CacheKey\n- #33 = Utf8 CacheKey\n+ #25 = Utf8 NestHost\n+ #26 = Utf8 InnerClasses\n+ #27 = Class #28 // java/util/Map$Entry\n+ #28 = Utf8 java/util/Map$Entry\n+ #29 = Class #30 // java/util/Map\n+ #30 = Utf8 java/util/Map\n+ #31 = Utf8 Entry\n+ #32 = Class #33 // xtc/tree/Visitor$CacheKey\n+ #33 = Utf8 xtc/tree/Visitor$CacheKey\n+ #34 = Utf8 CacheKey\n {\n xtc.tree.Visitor$1(int, float, boolean);\n descriptor: (IFZ)V\n flags: (0x0000)\n Code:\n stack=4, locals=4, args_size=4\n 0: aload_0\n@@ -75,11 +76,12 @@\n frame_type = 14 /* same */\n frame_type = 64 /* same_locals_1_stack_item */\n stack = [ int ]\n }\n Signature: #21 // Ljava/util/LinkedHashMap;\n SourceFile: \"Visitor.java\"\n EnclosingMethod: #1.#0 // xtc.tree.Visitor\n+NestHost: class xtc/tree/Visitor\n InnerClasses:\n #10; // class xtc/tree/Visitor$1\n- public static #30= #26 of #28; // Entry=class java/util/Map$Entry of class java/util/Map\n- static final #33= #31 of #1; // CacheKey=class xtc/tree/Visitor$CacheKey of class xtc/tree/Visitor\n+ public static #31= #27 of #29; // Entry=class java/util/Map$Entry of class java/util/Map\n+ static final #34= #32 of #1; // CacheKey=class xtc/tree/Visitor$CacheKey of class xtc/tree/Visitor\n"}]}, {"source1": "xtc/tree/Visitor$CacheKey.class", "source2": "xtc/tree/Visitor$CacheKey.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,16 +1,16 @@\n- SHA-256 checksum 7221af55629929edc7cc96ff43681453bc0d23518f4ae142c14365b5dda49504\n+ SHA-256 checksum be852beead24521f6c3b1fe5d7bc9a976655856230b842354a2c68450a986bd4\n Compiled from \"Visitor.java\"\n final class xtc.tree.Visitor$CacheKey\n minor version: 0\n- major version: 52\n+ major version: 61\n flags: (0x0030) ACC_FINAL, ACC_SUPER\n this_class: #8 // xtc/tree/Visitor$CacheKey\n super_class: #2 // java/lang/Object\n- interfaces: 0, fields: 2, methods: 3, attributes: 2\n+ interfaces: 0, fields: 2, methods: 3, attributes: 3\n Constant pool:\n #1 = Methodref #2.#3 // java/lang/Object.\"\":()V\n #2 = Class #4 // java/lang/Object\n #3 = NameAndType #5:#6 // \"\":()V\n #4 = Utf8 java/lang/Object\n #5 = Utf8 \n #6 = Utf8 ()V\n@@ -38,16 +38,17 @@\n #28 = Methodref #2.#25 // java/lang/Object.equals:(Ljava/lang/Object;)Z\n #29 = Utf8 (Lxtc/tree/Visitor;Ljava/lang/Object;)V\n #30 = Utf8 Code\n #31 = Utf8 LineNumberTable\n #32 = Utf8 StackMapTable\n #33 = Utf8 SourceFile\n #34 = Utf8 Visitor.java\n- #35 = Utf8 InnerClasses\n- #36 = Utf8 CacheKey\n+ #35 = Utf8 NestHost\n+ #36 = Utf8 InnerClasses\n+ #37 = Utf8 CacheKey\n {\n public xtc.tree.Visitor visitor;\n descriptor: Lxtc/tree/Visitor;\n flags: (0x0001) ACC_PUBLIC\n \n public java.lang.Object node;\n descriptor: Ljava/lang/Object;\n@@ -126,9 +127,10 @@\n StackMapTable: number_of_entries = 2\n frame_type = 9 /* same */\n frame_type = 252 /* append */\n offset_delta = 20\n locals = [ class xtc/tree/Visitor$CacheKey ]\n }\n SourceFile: \"Visitor.java\"\n+NestHost: class xtc/tree/Visitor\n InnerClasses:\n- static final #36= #8 of #18; // CacheKey=class xtc/tree/Visitor$CacheKey of class xtc/tree/Visitor\n+ static final #37= #8 of #18; // CacheKey=class xtc/tree/Visitor$CacheKey of class xtc/tree/Visitor\n"}]}, {"source1": "xtc/tree/Visitor.class", "source2": "xtc/tree/Visitor.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -26,52 +26,52 @@\n return this == o;\n }\n \n public Object visit(final Annotation annotation) {\n return this.dispatch(annotation.node);\n }\n \n- public final Object dispatch(final Node obj) {\n- if (null == obj) {\n+ public final Object dispatch(final Node node) {\n+ if (null == node) {\n return null;\n }\n Visitor.key.visitor = this;\n- if (obj.isGeneric()) {\n- Visitor.key.node = obj.getName();\n+ if (node.isGeneric()) {\n+ Visitor.key.node = node.getName();\n }\n else {\n- Visitor.key.node = obj.getClass();\n+ Visitor.key.node = node.getClass();\n }\n Method method = (Method)Visitor.cache.get(Visitor.key);\n if (null == method) {\n- method = this.findMethod(obj);\n+ method = this.findMethod(node);\n Visitor.cache.put(new Visitor.CacheKey(this, Visitor.key.node), method);\n }\n- Visitor.arguments[0] = obj;\n+ Visitor.arguments[0] = node;\n try {\n return method.invoke(this, Visitor.arguments);\n }\n catch (final IllegalAccessException ex) {\n throw new VisitorException(\"Unable to invoke \" + method + \" on \" + Visitor.arguments[0]);\n }\n catch (final IllegalArgumentException ex2) {\n- throw new VisitorException(\"Internal error while visiting node \" + obj + \" with visitor \" + this);\n+ throw new VisitorException(\"Internal error while visiting node \" + node + \" with visitor \" + this);\n }\n catch (final InvocationTargetException ex3) {\n final Throwable cause = ex3.getCause();\n- if (cause instanceof VisitingException) {\n- throw (VisitingException)cause;\n+ if (cause instanceof final VisitingException ex5) {\n+ throw ex5;\n }\n- if (cause instanceof VisitorException) {\n- throw (VisitorException)cause;\n+ if (cause instanceof final VisitorException ex6) {\n+ throw ex6;\n }\n- throw new VisitingException(\"Error visiting node \" + obj + \" with visitor \" + this, cause);\n+ throw new VisitingException(\"Error visiting node \" + node + \" with visitor \" + this, cause);\n }\n catch (final NullPointerException ex4) {\n- throw new VisitorException(\"Internal error while visiting node \" + obj + \" with visitor \" + this);\n+ throw new VisitorException(\"Internal error while visiting node \" + node + \" with visitor \" + this);\n }\n }\n \n private Method findMethod(final Node node) {\n final Class class1 = this.getClass();\n Method method = null;\n if (node.isGeneric()) {\n"}]}, {"source1": "xtc/type/CFactory.class", "source2": "xtc/type/CFactory.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -120,19 +120,19 @@\n return type.attribute(Constants.ATT_CONSTANT);\n }\n \n public Type builtin(final Type type) {\n return type.attribute(Constants.ATT_BUILTIN);\n }\n \n- public CFactory decl(final boolean b, final String str, final Type type) {\n+ public CFactory decl(final boolean b, final String s, final Type type) {\n if (b) {\n- this.scope.define(str, (Object)this.builtin(type));\n+ this.scope.define(s, (Object)this.builtin(type));\n }\n- this.scope.define(this.prefix + str, (Object)this.builtin(type));\n+ this.scope.define(this.prefix + s, (Object)this.builtin(type));\n return this;\n }\n \n public void declareBuiltIns(final boolean b) {\n this.decl(b, \"calloc\", this.f(this.p2v(), this.size(), this.size()));\n this.decl(b, \"free\", this.f(this.v(), this.p2v()));\n this.decl(b, \"malloc\", this.f(this.p2v(), this.size()));\n"}]}, {"source1": "xtc/util/Action.class", "source2": "xtc/util/Action.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,12 +1,12 @@\n- SHA-256 checksum 015465bd28a8afc22dc32e5a5a05647a25c1427a169af7277a30bd532f709704\n+ SHA-256 checksum a714ed2b19890ac8885e4e88f7807881403fe9d4bc0974fa84f959152ac338de\n Compiled from \"Action.java\"\n public interface xtc.util.Action\n minor version: 0\n- major version: 52\n+ major version: 61\n flags: (0x0601) ACC_PUBLIC, ACC_INTERFACE, ACC_ABSTRACT\n this_class: #1 // xtc/util/Action\n super_class: #3 // java/lang/Object\n interfaces: 0, fields: 0, methods: 1, attributes: 2\n Constant pool:\n #1 = Class #2 // xtc/util/Action\n #2 = Utf8 xtc/util/Action\n"}]}, {"source1": "xtc/util/Option$Kind.class", "source2": "xtc/util/Option$Kind.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,16 +1,16 @@\n- SHA-256 checksum 04b43a28f6a40202a139d1afc66b12cb80a9308961189c2acb4f20d2b59fb588\n+ SHA-256 checksum 6e71a4ac914455d557ae4ca886a5f02c223a989cd5ed504a16a3a291b59ba2d9\n Compiled from \"Option.java\"\n public final class xtc.util.Option$Kind extends java.lang.Enum\n minor version: 0\n- major version: 52\n+ major version: 61\n flags: (0x4031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER, ACC_ENUM\n this_class: #1 // xtc/util/Option$Kind\n super_class: #32 // java/lang/Enum\n- interfaces: 0, fields: 7, methods: 5, attributes: 3\n+ interfaces: 0, fields: 7, methods: 5, attributes: 4\n Constant pool:\n #1 = Class #2 // xtc/util/Option$Kind\n #2 = Utf8 xtc/util/Option$Kind\n #3 = Fieldref #1.#4 // xtc/util/Option$Kind.BOOLEAN:Lxtc/util/Option$Kind;\n #4 = NameAndType #5:#6 // BOOLEAN:Lxtc/util/Option$Kind;\n #5 = Utf8 BOOLEAN\n #6 = Utf8 Lxtc/util/Option$Kind;\n@@ -65,18 +65,19 @@\n #55 = Utf8 (Ljava/lang/String;)Lxtc/util/Option$Kind;\n #56 = Utf8 Signature\n #57 = Utf8 ()V\n #58 = Utf8 \n #59 = Utf8 Ljava/lang/Enum;\n #60 = Utf8 SourceFile\n #61 = Utf8 Option.java\n- #62 = Utf8 InnerClasses\n+ #62 = Utf8 NestHost\n #63 = Class #64 // xtc/util/Option\n #64 = Utf8 xtc/util/Option\n- #65 = Utf8 Kind\n+ #65 = Utf8 InnerClasses\n+ #66 = Utf8 Kind\n {\n public static final xtc.util.Option$Kind BOOLEAN;\n descriptor: Lxtc/util/Option$Kind;\n flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ENUM\n \n public static final xtc.util.Option$Kind WORD;\n descriptor: Lxtc/util/Option$Kind;\n@@ -221,9 +222,10 @@\n 81: putstatic #22 // Field $VALUES:[Lxtc/util/Option$Kind;\n 84: return\n LineNumberTable:\n line 30: 0\n }\n Signature: #59 // Ljava/lang/Enum;\n SourceFile: \"Option.java\"\n+NestHost: class xtc/util/Option\n InnerClasses:\n- public static final #65= #1 of #63; // Kind=class xtc/util/Option$Kind of class xtc/util/Option\n+ public static final #66= #1 of #63; // Kind=class xtc/util/Option$Kind of class xtc/util/Option\n"}]}, {"source1": "xtc/util/Option.class", "source2": "xtc/util/Option.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,16 +1,16 @@\n- SHA-256 checksum 3ee4b8b5aa776db0eca4455da29b6ccf66b60400cba83d23ad8b08ac62c005a0\n+ SHA-256 checksum f004f5de8aaf0b4ff9d7a64064b37ca0a42e8a8fd826c84d468bcbc455b265c0\n Compiled from \"Option.java\"\n class xtc.util.Option\n minor version: 0\n- major version: 52\n+ major version: 61\n flags: (0x0020) ACC_SUPER\n this_class: #8 // xtc/util/Option\n super_class: #2 // java/lang/Object\n- interfaces: 0, fields: 6, methods: 1, attributes: 2\n+ interfaces: 0, fields: 6, methods: 1, attributes: 3\n Constant pool:\n #1 = Methodref #2.#3 // java/lang/Object.\"\":()V\n #2 = Class #4 // java/lang/Object\n #3 = NameAndType #5:#6 // \"\":()V\n #4 = Utf8 java/lang/Object\n #5 = Utf8 \n #6 = Utf8 ()V\n@@ -39,18 +39,19 @@\n #29 = NameAndType #30:#16 // description:Ljava/lang/String;\n #30 = Utf8 description\n #31 = Utf8 (Lxtc/util/Option$Kind;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;ZLjava/lang/String;)V\n #32 = Utf8 Code\n #33 = Utf8 LineNumberTable\n #34 = Utf8 SourceFile\n #35 = Utf8 Option.java\n- #36 = Utf8 InnerClasses\n+ #36 = Utf8 NestMembers\n #37 = Class #38 // xtc/util/Option$Kind\n #38 = Utf8 xtc/util/Option$Kind\n- #39 = Utf8 Kind\n+ #39 = Utf8 InnerClasses\n+ #40 = Utf8 Kind\n {\n public final xtc.util.Option$Kind kind;\n descriptor: Lxtc/util/Option$Kind;\n flags: (0x0011) ACC_PUBLIC, ACC_FINAL\n \n public final java.lang.String external;\n descriptor: Ljava/lang/String;\n@@ -105,9 +106,11 @@\n line 64: 14\n line 65: 19\n line 66: 25\n line 67: 31\n line 68: 37\n }\n SourceFile: \"Option.java\"\n+NestMembers:\n+ xtc/util/Option$Kind\n InnerClasses:\n- public static final #39= #37 of #8; // Kind=class xtc/util/Option$Kind of class xtc/util/Option\n+ public static final #40= #37 of #8; // Kind=class xtc/util/Option$Kind of class xtc/util/Option\n"}]}, {"source1": "xtc/util/Pair$1.class", "source2": "xtc/util/Pair$1.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,16 +1,16 @@\n- SHA-256 checksum a65204d2f9f7f939d3d0ee60de4186b52b19229dfc7ca4c9a544b3d95063a298\n+ SHA-256 checksum 66feb1585eec6bfac903197331e6cca568384bcdca63d8abf79561c9e95d60b5\n Compiled from \"Pair.java\"\n class xtc.util.Pair$1 extends java.lang.Object implements java.util.Iterator\n minor version: 0\n- major version: 52\n+ major version: 61\n flags: (0x0020) ACC_SUPER\n this_class: #2 // xtc/util/Pair$1\n super_class: #8 // java/lang/Object\n- interfaces: 1, fields: 2, methods: 4, attributes: 4\n+ interfaces: 1, fields: 2, methods: 4, attributes: 5\n Constant pool:\n #1 = Fieldref #2.#3 // xtc/util/Pair$1.this$0:Lxtc/util/Pair;\n #2 = Class #4 // xtc/util/Pair$1\n #3 = NameAndType #5:#6 // this$0:Lxtc/util/Pair;\n #4 = Utf8 xtc/util/Pair$1\n #5 = Utf8 this$0\n #6 = Utf8 Lxtc/util/Pair;\n@@ -58,15 +58,16 @@\n #48 = Utf8 Ljava/lang/Object;Ljava/util/Iterator;\n #49 = Utf8 SourceFile\n #50 = Utf8 Pair.java\n #51 = Utf8 EnclosingMethod\n #52 = NameAndType #53:#54 // iterator:()Ljava/util/Iterator;\n #53 = Utf8 iterator\n #54 = Utf8 ()Ljava/util/Iterator;\n- #55 = Utf8 InnerClasses\n+ #55 = Utf8 NestHost\n+ #56 = Utf8 InnerClasses\n {\n private xtc.util.Pair pair;\n descriptor: Lxtc/util/Pair;\n flags: (0x0002) ACC_PRIVATE\n Signature: #37 // Lxtc/util/Pair;\n \n final xtc.util.Pair this$0;\n@@ -157,9 +158,10 @@\n 7: athrow\n LineNumberTable:\n line 537: 0\n }\n Signature: #48 // Ljava/lang/Object;Ljava/util/Iterator;\n SourceFile: \"Pair.java\"\n EnclosingMethod: #17.#52 // xtc.util.Pair.iterator\n+NestHost: class xtc/util/Pair\n InnerClasses:\n #2; // class xtc/util/Pair$1\n"}]}, {"source1": "xtc/util/Pair.class", "source2": "xtc/util/Pair.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -106,41 +106,41 @@\n }\n \n public T get(final int n) {\n if (0 > n) {\n throw new IndexOutOfBoundsException(\"Index: \" + n + \", Size: \" + this.size());\n }\n Pair tail = this;\n- int i = 0;\n+ int n2 = 0;\n while (Pair.EMPTY != tail) {\n- if (n == i) {\n+ if (n == n2) {\n return tail.head;\n }\n- ++i;\n+ ++n2;\n tail = tail.tail;\n }\n- throw new IndexOutOfBoundsException(\"Index: \" + n + \", Size: \" + i);\n+ throw new IndexOutOfBoundsException(\"Index: \" + n + \", Size: \" + n2);\n }\n \n public T set(final int n, final T head) {\n if (0 > n) {\n throw new IndexOutOfBoundsException(\"Index: \" + n + \", Size: \" + this.size());\n }\n Pair tail = this;\n- int i = 0;\n+ int n2 = 0;\n while (Pair.EMPTY != tail) {\n- if (n == i) {\n+ if (n == n2) {\n final T head2 = tail.head;\n tail.head = head;\n return head2;\n }\n- ++i;\n+ ++n2;\n tail = tail.tail;\n }\n- throw new IndexOutOfBoundsException(\"Index: \" + n + \", Size: \" + i);\n+ throw new IndexOutOfBoundsException(\"Index: \" + n + \", Size: \" + n2);\n }\n \n public int size() {\n Pair tail = this;\n int n = 0;\n while (tail != Pair.EMPTY) {\n ++n;\n"}]}, {"source1": "xtc/util/Runtime$1.class", "source2": "xtc/util/Runtime$1.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,16 +1,16 @@\n- SHA-256 checksum 993faa40ee5d6ea15aaa7a670a0c1c365925860f28803ec4c4cbf34072d90fb1\n+ SHA-256 checksum 41d2a72b79f9dc737c4d34ca27dd48140fa997c5cf0914a3583fd1bde25ad111\n Compiled from \"Runtime.java\"\n class xtc.util.Runtime$1\n minor version: 0\n- major version: 52\n+ major version: 61\n flags: (0x1020) ACC_SUPER, ACC_SYNTHETIC\n this_class: #8 // xtc/util/Runtime$1\n super_class: #38 // java/lang/Object\n- interfaces: 0, fields: 1, methods: 1, attributes: 3\n+ interfaces: 0, fields: 1, methods: 1, attributes: 4\n Constant pool:\n #1 = Methodref #2.#3 // xtc/util/Option$Kind.values:()[Lxtc/util/Option$Kind;\n #2 = Class #4 // xtc/util/Option$Kind\n #3 = NameAndType #5:#6 // values:()[Lxtc/util/Option$Kind;\n #4 = Utf8 xtc/util/Option$Kind\n #5 = Utf8 values\n #6 = Utf8 ()[Lxtc/util/Option$Kind;\n@@ -53,18 +53,19 @@\n #43 = Utf8 LineNumberTable\n #44 = Utf8 StackMapTable\n #45 = Utf8 SourceFile\n #46 = Utf8 Runtime.java\n #47 = Utf8 EnclosingMethod\n #48 = Class #49 // xtc/util/Runtime\n #49 = Utf8 xtc/util/Runtime\n- #50 = Utf8 InnerClasses\n- #51 = Class #52 // xtc/util/Option\n- #52 = Utf8 xtc/util/Option\n- #53 = Utf8 Kind\n+ #50 = Utf8 NestHost\n+ #51 = Utf8 InnerClasses\n+ #52 = Class #53 // xtc/util/Option\n+ #53 = Utf8 xtc/util/Option\n+ #54 = Utf8 Kind\n {\n static final int[] $SwitchMap$xtc$util$Option$Kind;\n descriptor: [I\n flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC\n \n static {};\n descriptor: ()V\n@@ -146,10 +147,11 @@\n frame_type = 0 /* same */\n frame_type = 78 /* same_locals_1_stack_item */\n stack = [ class java/lang/NoSuchFieldError ]\n frame_type = 0 /* same */\n }\n SourceFile: \"Runtime.java\"\n EnclosingMethod: #48.#0 // xtc.util.Runtime\n+NestHost: class xtc/util/Runtime\n InnerClasses:\n- public static final #53= #2 of #51; // Kind=class xtc/util/Option$Kind of class xtc/util/Option\n+ public static final #54= #2 of #52; // Kind=class xtc/util/Option$Kind of class xtc/util/Option\n static #8; // class xtc/util/Runtime$1\n"}]}, {"source1": "xtc/util/Runtime.class", "source2": "xtc/util/Runtime.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -72,20 +72,20 @@\n this.errConsole = errConsole;\n }\n \n public long freeMemory() {\n return java.lang.Runtime.getRuntime().freeMemory();\n }\n \n- protected void check(final String str, final String str2) {\n- if (this.externalMap.containsKey(str)) {\n- throw new IllegalArgumentException(\"Option with external name \" + str + \" already exists\");\n+ protected void check(final String s, final String s2) {\n+ if (this.externalMap.containsKey(s)) {\n+ throw new IllegalArgumentException(\"Option with external name \" + s + \" already exists\");\n }\n- if (this.internalMap.containsKey(str2)) {\n- throw new IllegalArgumentException(\"Option with internal name \" + str2 + \" already exists\");\n+ if (this.internalMap.containsKey(s2)) {\n+ throw new IllegalArgumentException(\"Option with internal name \" + s2 + \" already exists\");\n }\n }\n \n protected void add(final Option option) {\n this.optionList.add(option);\n this.externalMap.put(option.external, option);\n this.internalMap.put(option.internal, option);\n@@ -125,40 +125,40 @@\n this.check(s, s2);\n this.add(new Option(Option.Kind.ATTRIBUTE, s, s2, (Object)null, b, s3));\n return this;\n }\n \n public void printOptions() {\n int a = 0;\n- for (final Option obj : this.optionList) {\n- switch (Runtime.Runtime$1.$SwitchMap$xtc$util$Option$Kind[obj.kind.ordinal()]) {\n+ for (Option option : this.optionList) {\n+ switch (Runtime.Runtime$1.$SwitchMap$xtc$util$Option$Kind[option.kind.ordinal()]) {\n case 1: {\n- a = Math.max(a, obj.external.length() + 5);\n+ a = Math.max(a, option.external.length() + 5);\n continue;\n }\n case 2:\n case 3: {\n- a = Math.max(a, obj.external.length() + 5 + 7);\n+ a = Math.max(a, option.external.length() + 5 + 7);\n continue;\n }\n case 4:\n case 5:\n case 6: {\n- a = Math.max(a, obj.external.length() + 5 + 6);\n+ a = Math.max(a, option.external.length() + 5 + 6);\n continue;\n }\n default: {\n- assert false : \"Invalid option \" + obj;\n+ assert false : \"Invalid option \" + option;\n continue;\n }\n }\n }\n- for (final Option obj2 : this.optionList) {\n- this.console.p(\" -\").p(obj2.external);\n- switch (Runtime.Runtime$1.$SwitchMap$xtc$util$Option$Kind[obj2.kind.ordinal()]) {\n+ for (Option option2 : this.optionList) {\n+ this.console.p(\" -\").p(option2.external);\n+ switch (Runtime.Runtime$1.$SwitchMap$xtc$util$Option$Kind[option2.kind.ordinal()]) {\n case 1: {\n break;\n }\n case 2: {\n this.console.p(\" \");\n break;\n }\n@@ -175,49 +175,49 @@\n break;\n }\n case 6: {\n this.console.p(\" \");\n break;\n }\n default: {\n- assert false : \"Invalid option \" + obj2;\n+ assert false : \"Invalid option \" + option2;\n break;\n }\n }\n- this.console.align(a).wrap(a, obj2.description).pln();\n+ this.console.align(a).wrap(a, option2.description).pln();\n }\n this.console.flush();\n }\n \n public int process(final String[] array) {\n int n = 0;\n this.options.clear();\n while (n < array.length && array[n].startsWith(\"-\")) {\n if (1 >= array[n].length()) {\n this.error(\"empty command line option\");\n }\n else {\n final String substring = array[n].substring(1);\n- final Option obj = (Option)this.externalMap.get(substring);\n- if (null == obj) {\n+ final Option option = (Option)this.externalMap.get(substring);\n+ if (null == option) {\n this.error(\"unrecognized command line option \" + substring);\n }\n- else if (!obj.multiple && this.options.containsKey(obj.internal)) {\n+ else if (!option.multiple && this.options.containsKey(option.internal)) {\n this.error(\"repeated \" + substring + \" option\");\n }\n- else if (Option.Kind.BOOLEAN == obj.kind) {\n- this.options.put(obj.internal, Boolean.TRUE);\n+ else if (Option.Kind.BOOLEAN == option.kind) {\n+ this.options.put(option.internal, Boolean.TRUE);\n }\n else if (array.length == n + 1) {\n this.error(substring + \" option without argument\");\n }\n else {\n Object value = null;\n ++n;\n- switch (Runtime.Runtime$1.$SwitchMap$xtc$util$Option$Kind[obj.kind.ordinal()]) {\n+ switch (Runtime.Runtime$1.$SwitchMap$xtc$util$Option$Kind[option.kind.ordinal()]) {\n case 2: {\n value = array[n];\n break;\n }\n case 4: {\n try {\n value = new Integer(array[n]);\n@@ -251,46 +251,46 @@\n }\n case 6: {\n final PParser pParser = new PParser((Reader)new StringReader(array[n]), \"\", array[n].length());\n Object pAttribute = null;\n try {\n pAttribute = pParser.pAttribute(0);\n }\n- catch (final IOException obj2) {\n- this.error(\"internal error: \" + obj2);\n+ catch (final IOException ex2) {\n+ this.error(\"internal error: \" + ex2);\n }\n if (!((Result)pAttribute).hasValue()) {\n this.error(\"malformed attribute \" + array[n] + \": \" + ((ParseError)pAttribute).msg);\n break;\n }\n if (((Result)pAttribute).index != array[n].length()) {\n this.error(\"extra characters after \" + array[n].substring(0, ((Result)pAttribute).index));\n break;\n }\n value = ((SemanticValue)pAttribute).value;\n break;\n }\n default: {\n- assert false : \"Unrecognized option \" + obj;\n+ assert false : \"Unrecognized option \" + option;\n break;\n }\n }\n if (null != value) {\n- if (obj.multiple) {\n- if (this.options.containsKey(obj.internal)) {\n- ((List)this.options.get(obj.internal)).add(value);\n+ if (option.multiple) {\n+ if (this.options.containsKey(option.internal)) {\n+ ((List)this.options.get(option.internal)).add(value);\n }\n else {\n final ArrayList list = new ArrayList();\n list.add(value);\n- this.options.put(obj.internal, list);\n+ this.options.put(option.internal, list);\n }\n }\n else {\n- this.options.put(obj.internal, value);\n+ this.options.put(option.internal, value);\n }\n }\n }\n }\n ++n;\n }\n return n;\n@@ -344,54 +344,54 @@\n if (((String)iterator.next()).startsWith(prefix)) {\n return true;\n }\n }\n return false;\n }\n \n- public Object getValue(final String str) {\n- if (this.options.containsKey(str)) {\n- return this.options.get(str);\n+ public Object getValue(final String s) {\n+ if (this.options.containsKey(s)) {\n+ return this.options.get(s);\n }\n- throw new IllegalArgumentException(\"Undefined internal option \" + str);\n+ throw new IllegalArgumentException(\"Undefined internal option \" + s);\n }\n \n- public boolean test(final String str) {\n- if (this.options.containsKey(str)) {\n- return Boolean.valueOf(this.options.get((Object)str));\n+ public boolean test(final String s) {\n+ if (this.options.containsKey(s)) {\n+ return Boolean.valueOf(this.options.get((Object)s));\n }\n- throw new IllegalArgumentException(\"Undefined boolean option \" + str);\n+ throw new IllegalArgumentException(\"Undefined boolean option \" + s);\n }\n \n- public int getInt(final String str) {\n- if (this.options.containsKey(str)) {\n- return Integer.valueOf(this.options.get((Object)str));\n+ public int getInt(final String s) {\n+ if (this.options.containsKey(s)) {\n+ return Integer.valueOf(this.options.get((Object)s));\n }\n- throw new IllegalArgumentException(\"Undefined integer option \" + str);\n+ throw new IllegalArgumentException(\"Undefined integer option \" + s);\n }\n \n- public String getString(final String str) {\n- if (this.options.containsKey(str)) {\n- return this.options.get(str);\n+ public String getString(final String s) {\n+ if (this.options.containsKey(s)) {\n+ return this.options.get(s);\n }\n- throw new IllegalArgumentException(\"Undefined word option \" + str);\n+ throw new IllegalArgumentException(\"Undefined word option \" + s);\n }\n \n- public File getFile(final String str) {\n- if (this.options.containsKey(str)) {\n- return this.options.get(str);\n+ public File getFile(final String s) {\n+ if (this.options.containsKey(s)) {\n+ return this.options.get(s);\n }\n- throw new IllegalArgumentException(\"Undefined file/directory option \" + str);\n+ throw new IllegalArgumentException(\"Undefined file/directory option \" + s);\n }\n \n- public List getList(final String str) {\n- if (this.options.containsKey(str)) {\n- return this.options.get(str);\n+ public List getList(final String s) {\n+ if (this.options.containsKey(s)) {\n+ return this.options.get(s);\n }\n- throw new IllegalArgumentException(\"Undefined option \" + str + \" with multiple values\");\n+ throw new IllegalArgumentException(\"Undefined option \" + s + \" with multiple values\");\n }\n \n public List getAttributeList(final String s) {\n final List list = this.getList(s);\n if (0 < list.size()) {\n final Attribute attribute = (Attribute)list.get(0);\n }\n@@ -402,96 +402,96 @@\n final List list = this.getList(s);\n if (0 < list.size()) {\n final File file = (File)list.get(0);\n }\n return (List)list;\n }\n \n- protected void check(final Option obj, final Object o) {\n- switch (Runtime.Runtime$1.$SwitchMap$xtc$util$Option$Kind[obj.kind.ordinal()]) {\n+ protected void check(final Option option, final Object o) {\n+ switch (Runtime.Runtime$1.$SwitchMap$xtc$util$Option$Kind[option.kind.ordinal()]) {\n case 1: {\n if (!(o instanceof Boolean)) {\n- throw new IllegalArgumentException(\"Invalid value \" + o + \" for boolean option \" + obj.internal);\n+ throw new IllegalArgumentException(\"Invalid value \" + o + \" for boolean option \" + option.internal);\n }\n break;\n }\n case 2: {\n if (!(o instanceof String)) {\n- throw new IllegalArgumentException(\"Invalid value \" + o + \" for word option \" + obj.internal);\n+ throw new IllegalArgumentException(\"Invalid value \" + o + \" for word option \" + option.internal);\n }\n break;\n }\n case 4: {\n if (!(o instanceof Integer)) {\n- throw new IllegalArgumentException(\"Invalid value \" + o + \" for number option \" + obj.internal);\n+ throw new IllegalArgumentException(\"Invalid value \" + o + \" for number option \" + option.internal);\n }\n break;\n }\n case 3: {\n if (!(o instanceof File) || !((File)o).exists()) {\n- throw new IllegalArgumentException(\"Invalid value \" + o + \" for file option \" + obj.internal);\n+ throw new IllegalArgumentException(\"Invalid value \" + o + \" for file option \" + option.internal);\n }\n break;\n }\n case 5: {\n if (!(o instanceof File) || !((File)o).isDirectory()) {\n- throw new IllegalArgumentException(\"Invalid value \" + o + \" for directory option \" + obj.internal);\n+ throw new IllegalArgumentException(\"Invalid value \" + o + \" for directory option \" + option.internal);\n }\n break;\n }\n case 6: {\n if (!(o instanceof Attribute)) {\n- throw new IllegalArgumentException(\"Invalid value \" + o + \" for attribute option \" + obj.internal);\n+ throw new IllegalArgumentException(\"Invalid value \" + o + \" for attribute option \" + option.internal);\n }\n break;\n }\n default: {\n- assert false : \"Invalid option \" + obj;\n+ assert false : \"Invalid option \" + option;\n break;\n }\n }\n }\n \n- public void setValue(final String str, Object o) {\n- final Option option = (Option)this.internalMap.get(str);\n+ public void setValue(final String s, Object o) {\n+ final Option option = (Option)this.internalMap.get(s);\n if (null == option) {\n- throw new IllegalArgumentException(\"Undefined option \" + str);\n+ throw new IllegalArgumentException(\"Undefined option \" + s);\n }\n this.check(option, o);\n if (option.multiple) {\n final ArrayList list = new ArrayList(1);\n list.add(o);\n o = list;\n }\n- this.options.put(str, o);\n+ this.options.put(s, o);\n }\n \n public void setValue(final String s, final boolean b) {\n final Option option = (Option)this.internalMap.get(s);\n if (null == option) {\n throw new IllegalArgumentException(\"Undefined option \" + s);\n }\n if (Option.Kind.BOOLEAN != option.kind) {\n throw new IllegalArgumentException(\"Not a boolean-valued option \" + s);\n }\n this.options.put(s, Boolean.valueOf(b));\n }\n \n- public File locate(final String s) throws FileNotFoundException {\n+ public File locate(final String child) throws FileNotFoundException {\n final List fileList = this.getFileList(\"inputDirectory\");\n if (null != fileList) {\n final Iterator iterator = fileList.iterator();\n while (iterator.hasNext()) {\n- final File file = new File(iterator.next(), s);\n+ final File file = new File(iterator.next(), child);\n if (file.exists() && file.isFile()) {\n return file;\n }\n }\n }\n- throw new FileNotFoundException(s + \" not found\");\n+ throw new FileNotFoundException(child + \" not found\");\n }\n \n public Reader getReader(final File file) throws IOException {\n return this.getReader(new FileInputStream(file));\n }\n \n public Reader getReader(final InputStream inputStream) throws UnsupportedEncodingException {\n"}]}, {"source1": "xtc/util/State.class", "source2": "xtc/util/State.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,12 +1,12 @@\n- SHA-256 checksum 786111e39f19c13592b14595e97751bc538dfe9cfdbaad230395156162674002\n+ SHA-256 checksum 73aa8077e33febe72a9a25ef778274ac45d1d23b17e0463d6ac5437bd80fea75\n Compiled from \"State.java\"\n public interface xtc.util.State\n minor version: 0\n- major version: 52\n+ major version: 61\n flags: (0x0601) ACC_PUBLIC, ACC_INTERFACE, ACC_ABSTRACT\n this_class: #1 // xtc/util/State\n super_class: #3 // java/lang/Object\n interfaces: 0, fields: 0, methods: 4, attributes: 1\n Constant pool:\n #1 = Class #2 // xtc/util/State\n #2 = Utf8 xtc/util/State\n"}]}, {"source1": "xtc/util/Statistics.class", "source2": "xtc/util/Statistics.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,12 +1,12 @@\n- SHA-256 checksum 583ec6823f887247aaacea0ed9954d33cda77f71b2723e4222b8ca6aa52b2670\n+ SHA-256 checksum 1d79794fbf0e73eb60ba0d74366d90a30e8c75bbbd8bbf085899fd8446330e33\n Compiled from \"Statistics.java\"\n public class xtc.util.Statistics\n minor version: 0\n- major version: 52\n+ major version: 61\n flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n this_class: #11 // xtc/util/Statistics\n super_class: #2 // java/lang/Object\n interfaces: 0, fields: 1, methods: 11, attributes: 1\n Constant pool:\n #1 = Methodref #2.#3 // java/lang/Object.\"\":()V\n #2 = Class #4 // java/lang/Object\n"}]}, {"source1": "xtc/util/SymbolTable$Scope.class", "source2": "xtc/util/SymbolTable$Scope.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -18,25 +18,25 @@\n Map symbols;\n \n Scope(final String s) {\n this.name = s;\n this.qName = s;\n }\n \n- Scope(final String s, final Scope parent) {\n- if (null != parent.scopes && parent.scopes.containsKey(s)) {\n- throw new IllegalArgumentException(\"Scope \" + parent.qName + \" already contains scope \" + s);\n+ Scope(final String name, final Scope parent) {\n+ if (null != parent.scopes && parent.scopes.containsKey(name)) {\n+ throw new IllegalArgumentException(\"Scope \" + parent.qName + \" already contains scope \" + name);\n }\n- this.name = s;\n- this.qName = Utilities.qualify(parent.qName, s);\n+ this.name = name;\n+ this.qName = Utilities.qualify(parent.qName, name);\n this.parent = parent;\n if (null == parent.scopes) {\n parent.scopes = new HashMap();\n }\n- parent.scopes.put(s, this);\n+ parent.scopes.put(name, this);\n }\n \n public String getName() {\n return this.name;\n }\n \n public String getQualifiedName() {\n@@ -76,22 +76,22 @@\n return null != this.getNested(s);\n }\n \n public Scope getNested(final String s) {\n return (null == this.scopes) ? null : ((Scope)this.scopes.get(s));\n }\n \n- public boolean isMergeable(final String s) {\n- final Scope nested = this.getNested(s);\n+ public boolean isMergeable(final String anObject) {\n+ final Scope nested = this.getNested(anObject);\n if (null == nested) {\n- throw new IllegalArgumentException(\"Scope \" + this.qName + \" does not contain scope \" + s);\n+ throw new IllegalArgumentException(\"Scope \" + this.qName + \" does not contain scope \" + anObject);\n }\n if (null != nested.scopes) {\n- for (final String s2 : nested.scopes.keySet()) {\n- if (!s2.equals(s) && this.scopes.containsKey(s2)) {\n+ for (final String s : nested.scopes.keySet()) {\n+ if (!s.equals(anObject) && this.scopes.containsKey(s)) {\n return false;\n }\n }\n }\n if (null != this.symbols && null != nested.symbols) {\n final Iterator iterator2 = nested.symbols.keySet().iterator();\n while (iterator2.hasNext()) {\n@@ -189,16 +189,16 @@\n \n public void addDefinition(final String s, final Object o) {\n if (null == this.symbols) {\n this.symbols = new HashMap();\n }\n if (this.symbols.containsKey(s)) {\n final List value = this.symbols.get(s);\n- if (value instanceof List) {\n- ((List)value).add(o);\n+ if (value instanceof final List list2) {\n+ list2.add(o);\n }\n else {\n final ArrayList list = new ArrayList();\n list.add(value);\n list.add(o);\n this.symbols.put(s, list);\n }\n@@ -218,26 +218,26 @@\n return Utilities.qualify(this.qName, s);\n }\n \n public void dump(final Printer printer) {\n final boolean b = null != printer.visitor();\n printer.indent().p('.').p(this.name).pln(\" = {\").incr();\n if (null != this.symbols) {\n- for (final Map.Entry entry : this.symbols.entrySet()) {\n+ for (Map.Entry entry : this.symbols.entrySet()) {\n final String s = (String)entry.getKey();\n final Object value = entry.getValue();\n printer.indent().p(s).p(\" = \");\n if (null == value) {\n printer.p(\"null\");\n }\n else if (b && value instanceof Node) {\n printer.p((Node)value);\n }\n- else if (value instanceof String) {\n- printer.p('\\\"').escape((String)value, 8).p('\\\"');\n+ else if (value instanceof final String s2) {\n+ printer.p('\\\"').escape(s2, 8).p('\\\"');\n }\n else {\n try {\n printer.p(value.toString());\n }\n catch (final Exception ex) {\n printer.p(((String)value).getClass().getName() + \"@?\");\n"}]}, {"source1": "xtc/util/SymbolTable.class", "source2": "xtc/util/SymbolTable.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -170,34 +170,34 @@\n final StringBuilder sb = new StringBuilder();\n sb.append(str);\n sb.append('$');\n sb.append(this.freshIdCount++);\n return sb.toString();\n }\n \n- public static String toNameSpace(final String str, final String str2) {\n- return str2 + '(' + str + ')';\n+ public static String toNameSpace(final String s, final String s2) {\n+ return s2 + \"(\" + s;\n }\n \n public static boolean isInNameSpace(final String s, final String prefix) {\n try {\n return s.startsWith(prefix) && '(' == s.charAt(prefix.length()) && s.endsWith(SymbolTable.END_OPAQUE);\n }\n catch (final IndexOutOfBoundsException ex) {\n return false;\n }\n }\n \n- public static String fromNameSpace(final String str) {\n- final int index = str.indexOf(40);\n- final int n = str.length() - 1;\n- if (0 < index && ')' == str.charAt(n)) {\n- return str.substring(index + 1, n);\n+ public static String fromNameSpace(final String s) {\n+ final int index = s.indexOf(40);\n+ final int n = s.length() - 1;\n+ if (0 < index && ')' == s.charAt(n)) {\n+ return s.substring(index + 1, n);\n }\n- throw new IllegalArgumentException(\"Not a mangled symbol '\" + str + \"'\");\n+ throw new IllegalArgumentException(\"Not a mangled symbol '\" + s);\n }\n \n public static String toMacroScopeName(final String s) {\n return toNameSpace(s, \"macro\");\n }\n \n public static boolean isMacroScopeName(final String s) {\n"}]}, {"source1": "xtc/util/Tool.class", "source2": "xtc/util/Tool.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -54,18 +54,18 @@\n this.runtime.setValue(\"optionPerformance\", true);\n }\n }\n \n public void diagnose() {\n }\n \n- public File locate(final String s) throws IOException {\n- final File file = new File(s);\n+ public File locate(final String pathname) throws IOException {\n+ final File file = new File(pathname);\n if (!file.exists()) {\n- throw new FileNotFoundException(s + \": not found\");\n+ throw new FileNotFoundException(pathname + \": not found\");\n }\n return file;\n }\n \n public abstract Node parse(final Reader p0, final File p1) throws IOException, ParseException;\n \n public void process(final Node node) {\n"}]}, {"source1": "xtc/util/Utilities.class", "source2": "xtc/util/Utilities.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -95,16 +95,16 @@\n return s;\n }\n \n public static String unqualify(final String s) {\n return isQualified(s) ? getName(s) : s;\n }\n \n- public static String qualify(final String str, final String str2) {\n- return (null == str) ? str2 : (str + '.' + str2);\n+ public static String qualify(final String s, final String s2) {\n+ return (null == s) ? s2 : (s + \".\" + s2);\n }\n \n public static String[] toComponents(final String s) {\n final int length = s.length();\n int n = 1;\n int n2 = 0;\n for (int i = 0; i < length; ++i) {\n@@ -178,27 +178,27 @@\n return requalify(s, '$');\n }\n \n public static String toPath(final String s) {\n return requalify(s, File.separatorChar);\n }\n \n- public static String toPath(final String s, final String str) {\n- return toPath(s) + '.' + str;\n+ public static String toPath(final String s, final String s2) {\n+ return toPath(s) + \".\" + s2;\n }\n \n- public static File locate(final List list, final String s) throws FileNotFoundException {\n+ public static File locate(final List list, final String child) throws FileNotFoundException {\n final Iterator iterator = list.iterator();\n while (iterator.hasNext()) {\n- final File file = new File(iterator.next(), s);\n+ final File file = new File(iterator.next(), child);\n if (file.exists() && file.isFile()) {\n return file;\n }\n }\n- throw new FileNotFoundException(s + \" not found\");\n+ throw new FileNotFoundException(child + \" not found\");\n }\n \n public static void pump(final Reader reader, final Writer writer) throws IOException {\n if (null == Utilities.charBuffer) {\n Utilities.charBuffer = new char[4096];\n }\n for (int n = reader.read(Utilities.charBuffer); -1 != n; n = reader.read(Utilities.charBuffer)) {\n@@ -561,15 +561,15 @@\n break;\n }\n case 118: {\n sb.append('\\u000b');\n break;\n }\n default: {\n- throw new IllegalArgumentException(\"illegal escaped character '\\\\\" + char2 + \"'\");\n+ throw new IllegalArgumentException(\"illegal escaped character '\\\\\" + char2);\n }\n }\n }\n }\n return sb.toString();\n }\n \n@@ -637,11 +637,17 @@\n }\n return \"a\";\n }\n \n static {\n Utilities.charBuffer = null;\n WHITE_SPACE = Pattern.compile(\"\\\\s+\");\n- SPACE_NEWLINE_SPACE = Pattern.compile(\"[ \\t\\f]*(?:\\r\\n|\\r|\\n)[ \\t\\f]*\");\n- COMMENT_NEWLINE = Pattern.compile(\"[ \\t\\f]*(?:\\r\\n|\\r|\\n)[ \\t\\f]*\\\\**[ \\t\\f]*\");\n+ SPACE_NEWLINE_SPACE = Pattern.compile(\"\"\"\n+ [ \t\\f]*(?:\\r\n+ |\\r|\n+ )[ \t\\f]*\"\"\");\n+ COMMENT_NEWLINE = Pattern.compile(\"\"\"\n+ [ \t\\f]*(?:\\r\n+ |\\r|\n+ )[ \t\\f]*\\**[ \t\\f]*\"\"\");\n }\n }\n"}]}]}, {"source1": "./usr/share/java/rats-runtime-1.15.0.jar", "source2": "./usr/share/java/rats-runtime-1.15.0.jar", "unified_diff": null, "details": [{"source1": "zipinfo {}", "source2": "zipinfo {}", "unified_diff": "@@ -1,42 +1,42 @@\n-Zip file size: 44055 bytes, number of entries: 40\n+Zip file size: 45592 bytes, number of entries: 40\n -rw---- 2.0 fat 0 bx stor 21-Oct-25 09:54 META-INF/\n -rw-r--r-- 2.0 unx 117 b- defN 21-Oct-25 09:54 META-INF/MANIFEST.MF\n -rw---- 1.0 fat 0 b- stor 21-Oct-25 09:54 xtc/\n -rw---- 1.0 fat 0 b- stor 21-Oct-25 09:54 xtc/parser/\n -rw---- 2.0 fat 290 bl defN 21-Oct-25 09:54 xtc/parser/Column.class\n -rw---- 2.0 fat 1554 bl defN 21-Oct-25 09:54 xtc/parser/ParseError.class\n -rw---- 2.0 fat 239 bl defN 21-Oct-25 09:54 xtc/parser/ParseException.class\n--rw---- 2.0 fat 7016 bl defN 21-Oct-25 09:54 xtc/parser/ParserBase.class\n+-rw---- 2.0 fat 7305 bl defN 21-Oct-25 09:54 xtc/parser/ParserBase.class\n -rw---- 2.0 fat 701 bl defN 21-Oct-25 09:54 xtc/parser/Result.class\n -rw---- 2.0 fat 1592 bl defN 21-Oct-25 09:54 xtc/parser/SemanticValue.class\n -rw---- 1.0 fat 0 b- stor 21-Oct-25 09:54 xtc/tree/\n -rw---- 2.0 fat 907 bl defN 21-Oct-25 09:54 xtc/tree/Annotation.class\n -rw---- 2.0 fat 1161 bl defN 21-Oct-25 09:54 xtc/tree/Formatting$After1.class\n -rw---- 2.0 fat 1163 bl defN 21-Oct-25 09:54 xtc/tree/Formatting$Before1.class\n -rw---- 2.0 fat 1246 bl defN 21-Oct-25 09:54 xtc/tree/Formatting$Round1.class\n -rw---- 2.0 fat 3224 bl defN 21-Oct-25 09:54 xtc/tree/Formatting$RoundN.class\n -rw---- 2.0 fat 1221 bl defN 21-Oct-25 09:54 xtc/tree/Formatting.class\n--rw---- 2.0 fat 1188 bl defN 21-Oct-25 09:54 xtc/tree/GNode$Fixed.class\n--rw---- 2.0 fat 1109 bl defN 21-Oct-25 09:54 xtc/tree/GNode$Fixed0.class\n--rw---- 2.0 fat 1384 bl defN 21-Oct-25 09:54 xtc/tree/GNode$Fixed1.class\n--rw---- 2.0 fat 1536 bl defN 21-Oct-25 09:54 xtc/tree/GNode$Fixed2.class\n--rw---- 2.0 fat 1641 bl defN 21-Oct-25 09:54 xtc/tree/GNode$Fixed3.class\n--rw---- 2.0 fat 1754 bl defN 21-Oct-25 09:54 xtc/tree/GNode$Fixed4.class\n--rw---- 2.0 fat 1867 bl defN 21-Oct-25 09:54 xtc/tree/GNode$Fixed5.class\n--rw---- 2.0 fat 1981 bl defN 21-Oct-25 09:54 xtc/tree/GNode$Fixed6.class\n--rw---- 2.0 fat 2094 bl defN 21-Oct-25 09:54 xtc/tree/GNode$Fixed7.class\n--rw---- 2.0 fat 2207 bl defN 21-Oct-25 09:54 xtc/tree/GNode$Fixed8.class\n--rw---- 2.0 fat 2599 bl defN 21-Oct-25 09:54 xtc/tree/GNode$Variable.class\n--rw---- 2.0 fat 7328 bl defN 21-Oct-25 09:54 xtc/tree/GNode.class\n+-rw---- 2.0 fat 1207 bl defN 21-Oct-25 09:54 xtc/tree/GNode$Fixed.class\n+-rw---- 2.0 fat 1290 bl defN 21-Oct-25 09:54 xtc/tree/GNode$Fixed0.class\n+-rw---- 2.0 fat 1565 bl defN 21-Oct-25 09:54 xtc/tree/GNode$Fixed1.class\n+-rw---- 2.0 fat 1717 bl defN 21-Oct-25 09:54 xtc/tree/GNode$Fixed2.class\n+-rw---- 2.0 fat 1822 bl defN 21-Oct-25 09:54 xtc/tree/GNode$Fixed3.class\n+-rw---- 2.0 fat 1935 bl defN 21-Oct-25 09:54 xtc/tree/GNode$Fixed4.class\n+-rw---- 2.0 fat 2048 bl defN 21-Oct-25 09:54 xtc/tree/GNode$Fixed5.class\n+-rw---- 2.0 fat 2162 bl defN 21-Oct-25 09:54 xtc/tree/GNode$Fixed6.class\n+-rw---- 2.0 fat 2275 bl defN 21-Oct-25 09:54 xtc/tree/GNode$Fixed7.class\n+-rw---- 2.0 fat 2388 bl defN 21-Oct-25 09:54 xtc/tree/GNode$Fixed8.class\n+-rw---- 2.0 fat 2618 bl defN 21-Oct-25 09:54 xtc/tree/GNode$Variable.class\n+-rw---- 2.0 fat 7372 bl defN 21-Oct-25 09:54 xtc/tree/GNode.class\n -rw---- 2.0 fat 263 bl defN 21-Oct-25 09:54 xtc/tree/Locatable.class\n -rw---- 2.0 fat 1664 bl defN 21-Oct-25 09:54 xtc/tree/Location.class\n--rw---- 2.0 fat 1046 bl defN 21-Oct-25 09:54 xtc/tree/Node$1.class\n--rw---- 2.0 fat 7769 bl defN 21-Oct-25 09:54 xtc/tree/Node.class\n--rw---- 2.0 fat 1473 bl defN 21-Oct-25 09:54 xtc/tree/Token.class\n+-rw---- 2.0 fat 1065 bl defN 21-Oct-25 09:54 xtc/tree/Node$1.class\n+-rw---- 2.0 fat 8082 bl defN 21-Oct-25 09:54 xtc/tree/Node.class\n+-rw---- 2.0 fat 1710 bl defN 21-Oct-25 09:54 xtc/tree/Token.class\n -rw---- 1.0 fat 0 b- stor 21-Oct-25 09:54 xtc/util/\n -rw---- 2.0 fat 239 bl defN 21-Oct-25 09:54 xtc/util/Action.class\n--rw---- 2.0 fat 1009 bl defN 21-Oct-25 09:54 xtc/util/Pair$1.class\n--rw---- 2.0 fat 7341 bl defN 21-Oct-25 09:54 xtc/util/Pair.class\n+-rw---- 2.0 fat 1028 bl defN 21-Oct-25 09:54 xtc/util/Pair$1.class\n+-rw---- 2.0 fat 7637 bl defN 21-Oct-25 09:54 xtc/util/Pair.class\n -rw---- 2.0 fat 195 bl defN 21-Oct-25 09:54 xtc/util/State.class\n--rw---- 2.0 fat 9911 bl defN 21-Oct-25 09:54 xtc/util/Utilities.class\n-40 files, 78029 bytes uncompressed, 38577 bytes compressed: 50.6%\n+-rw---- 2.0 fat 10303 bl defN 21-Oct-25 09:54 xtc/util/Utilities.class\n+40 files, 81305 bytes uncompressed, 40114 bytes compressed: 50.7%\n"}, {"source1": "xtc/parser/Column.class", "source2": "xtc/parser/Column.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,12 +1,12 @@\n- SHA-256 checksum e046499fa3458dcf75a1ec8ed09726dd1613205db813bd758a02225d5ed6c59b\n+ SHA-256 checksum ab64fbb89692bf784a29ac10d42a7f4a3277983b7a6d753aada0198e44a7df96\n Compiled from \"Column.java\"\n public abstract class xtc.parser.Column\n minor version: 0\n- major version: 52\n+ major version: 61\n flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT\n this_class: #7 // xtc/parser/Column\n super_class: #2 // java/lang/Object\n interfaces: 0, fields: 4, methods: 1, attributes: 1\n Constant pool:\n #1 = Methodref #2.#3 // java/lang/Object.\"\":()V\n #2 = Class #4 // java/lang/Object\n"}]}, {"source1": "xtc/parser/ParseError.class", "source2": "xtc/parser/ParseError.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,12 +1,12 @@\n- SHA-256 checksum 732e116fc2203a459a0a34bde147e9bb245a95b3ccb9ac3ccc5c402ceb4387e8\n+ SHA-256 checksum e3be7055bc3635b75407ebad2990c454400f750b6bf2e14362be8fe83ce02063\n Compiled from \"ParseError.java\"\n public final class xtc.parser.ParseError extends xtc.parser.Result\n minor version: 0\n- major version: 52\n+ major version: 61\n flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER\n this_class: #8 // xtc/parser/ParseError\n super_class: #2 // xtc/parser/Result\n interfaces: 0, fields: 2, methods: 11, attributes: 1\n Constant pool:\n #1 = Methodref #2.#3 // xtc/parser/Result.\"\":(I)V\n #2 = Class #4 // xtc/parser/Result\n"}]}, {"source1": "xtc/parser/ParseException.class", "source2": "xtc/parser/ParseException.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,12 +1,12 @@\n- SHA-256 checksum d27cfcb61a779857a2fccb51d56562448f4a3842bc544b101a69dcb1e6f0d341\n+ SHA-256 checksum b502108310b5040130348a1f2d401a04c6f2f7cb86b18a71cf5cae839b7ed790\n Compiled from \"ParseException.java\"\n public class xtc.parser.ParseException extends java.lang.Exception\n minor version: 0\n- major version: 52\n+ major version: 61\n flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n this_class: #7 // xtc/parser/ParseException\n super_class: #2 // java/lang/Exception\n interfaces: 0, fields: 0, methods: 1, attributes: 1\n Constant pool:\n #1 = Methodref #2.#3 // java/lang/Exception.\"\":(Ljava/lang/String;)V\n #2 = Class #4 // java/lang/Exception\n"}]}, {"source1": "xtc/parser/ParserBase.class", "source2": "xtc/parser/ParserBase.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -21,26 +21,26 @@\n protected char[] yyData;\n protected Column[] yyColumns;\n \n public ParserBase(final Reader reader, final String s) {\n this(reader, s, 4095);\n }\n \n- public ParserBase(final Reader yyReader, final String file, final int i) {\n+ public ParserBase(final Reader yyReader, final String file, final int n) {\n if (null == file) {\n throw new NullPointerException(\"Null file\");\n }\n- if (i < 0) {\n- throw new IllegalArgumentException(\"Negative size: \" + i);\n+ if (n < 0) {\n+ throw new IllegalArgumentException(\"Negative size: \" + n);\n }\n this.yyReader = yyReader;\n this.yyCount = 0;\n this.yyEOF = false;\n- this.yyData = new char[i + 1];\n- this.yyColumns = new Column[i + 1];\n+ this.yyData = new char[n + 1];\n+ this.yyColumns = new Column[n + 1];\n final Column column = this.newColumn();\n column.file = file;\n column.seenCR = false;\n column.line = 1;\n column.column = 1;\n this.yyColumns[0] = column;\n }\n@@ -174,75 +174,75 @@\n return (offset == n) ? \"\" : new String(this.yyData, offset, n - offset);\n }\n \n public final boolean isEOF(final int n) {\n return this.yyEOF && n == this.yyCount - 1;\n }\n \n- public final String lineAt(int i) throws IOException {\n- if (0 > i) {\n- throw new IndexOutOfBoundsException(\"Parser index: \" + i);\n- }\n- if (0 < i && 10 == this.character(i) && 13 == this.character(i - 1)) {\n- --i;\n- }\n- int n = i;\n- int n2 = i;\n- for (int n3 = this.character(n2); -1 != n3 && 13 != n3 && 10 != n3; n3 = this.character(n2)) {\n- ++n2;\n+ public final String lineAt(int n) throws IOException {\n+ if (0 > n) {\n+ throw new IndexOutOfBoundsException(\"Parser index: \" + n);\n+ }\n+ if (0 < n && 10 == this.character(n) && 13 == this.character(n - 1)) {\n+ --n;\n+ }\n+ int n2 = n;\n+ int n3 = n;\n+ for (int n4 = this.character(n3); -1 != n4 && 13 != n4 && 10 != n4; n4 = this.character(n3)) {\n+ ++n3;\n }\n- while (n) {\n- final int character = this.character(n - 1);\n+ while (n2) {\n+ final int character = this.character(n2 - 1);\n if (13 != character) {\n if (10 != character) {\n- --n;\n+ --n2;\n continue;\n }\n }\n- return this.difference(n, n2);\n+ return this.difference(n2, n3);\n }\n- return this.difference(n, n2);\n+ return this.difference(n2, n3);\n }\n \n public final Location location(final int n) {\n final Column column = this.column(n);\n return new Location(column.file, column.line, column.column);\n }\n \n- protected final void setLocation(final int i, final String file, final int n, final int n2) {\n+ protected final void setLocation(final int n, final String file, final int line, final int column) {\n if (null == file) {\n throw new NullPointerException(\"Null file\");\n }\n- if (0 > n) {\n- throw new IllegalArgumentException(\"Invalid line number: \" + n);\n+ if (0 > line) {\n+ throw new IllegalArgumentException(\"Invalid line number: \" + line);\n }\n- if (1 > n2) {\n- throw new IllegalArgumentException(\"Invalid column number: \" + n2);\n+ if (1 > column) {\n+ throw new IllegalArgumentException(\"Invalid column number: \" + column);\n }\n- if (i < 0 || this.yyCount <= i) {\n- throw new IndexOutOfBoundsException(\"Parser index: \" + i);\n+ if (n < 0 || this.yyCount <= n) {\n+ throw new IndexOutOfBoundsException(\"Parser index: \" + n);\n }\n- final Column column = this.yyColumns[i];\n- if (null != column) {\n- if (file.equals(column.file) && n == column.line && n2 == column.column) {\n+ final Column column2 = this.yyColumns[n];\n+ if (null != column2) {\n+ if (file.equals(column2.file) && line == column2.line && column == column2.column) {\n return;\n }\n- if (0 != i) {\n- throw new IllegalStateException(\"Location at index \" + i + \" is already committed\");\n+ if (0 != n) {\n+ throw new IllegalStateException(\"Location at index \" + n + \" is already committed\");\n }\n }\n- for (int j = i + 1; j < this.yyCount; ++j) {\n- if (null != this.yyColumns[j]) {\n- throw new IllegalStateException(\"Location at index \" + i + \" is already committed\");\n+ for (int i = n + 1; i < this.yyCount; ++i) {\n+ if (null != this.yyColumns[i]) {\n+ throw new IllegalStateException(\"Location at index \" + n + \" is already committed\");\n }\n }\n- final Column column2 = this.column(i);\n- column2.file = file;\n- column2.line = n;\n- column2.column = n2;\n+ final Column column3 = this.column(n);\n+ column3.file = file;\n+ column3.line = line;\n+ column3.column = column;\n }\n \n public final void setLocation(final Locatable locatable, final int n) {\n if (null != locatable && !locatable.hasLocation()) {\n final Column column = this.column(n);\n locatable.setLocation(new Location(column.file, column.line, column.column));\n }\n"}]}, {"source1": "xtc/parser/Result.class", "source2": "xtc/parser/Result.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,12 +1,12 @@\n- SHA-256 checksum 876584179a9e41990db16a7815e1448baccb64ce55b3fd14a3755cdaac69e246\n+ SHA-256 checksum 9043dc1c962cf313c6912ee96a64531370fa0ad8582de5cc82e2e3688440b9a6\n Compiled from \"Result.java\"\n public abstract class xtc.parser.Result\n minor version: 0\n- major version: 52\n+ major version: 61\n flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT\n this_class: #8 // xtc/parser/Result\n super_class: #2 // java/lang/Object\n interfaces: 0, fields: 1, methods: 9, attributes: 1\n Constant pool:\n #1 = Methodref #2.#3 // java/lang/Object.\"\":()V\n #2 = Class #4 // java/lang/Object\n"}]}, {"source1": "xtc/parser/SemanticValue.class", "source2": "xtc/parser/SemanticValue.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,12 +1,12 @@\n- SHA-256 checksum 2037cdafe4d363a594344ee0f982a3eeaa03ee03fdc6366918e21a5d32edf643\n+ SHA-256 checksum 2c0d4740fae1deae7c4c03d40fbbe6d2c5612fad418199c7bcb570495811aa15\n Compiled from \"SemanticValue.java\"\n public final class xtc.parser.SemanticValue extends xtc.parser.Result\n minor version: 0\n- major version: 52\n+ major version: 61\n flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER\n this_class: #8 // xtc/parser/SemanticValue\n super_class: #14 // xtc/parser/Result\n interfaces: 0, fields: 2, methods: 10, attributes: 1\n Constant pool:\n #1 = Fieldref #2.#3 // xtc/parser/ParseError.DUMMY:Lxtc/parser/ParseError;\n #2 = Class #4 // xtc/parser/ParseError\n"}]}, {"source1": "xtc/tree/Annotation.class", "source2": "xtc/tree/Annotation.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,12 +1,12 @@\n- SHA-256 checksum 5d5adf4a6831e6f7207ae0e108b8cba003ef8e3421358b2feee546ff7d4630dd\n+ SHA-256 checksum 509ce7bcfb00469e329e4c6a218c3f92e092fd54ae192d563345220ba9623cf8\n Compiled from \"Annotation.java\"\n public abstract class xtc.tree.Annotation extends xtc.tree.Node\n minor version: 0\n- major version: 52\n+ major version: 61\n flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT\n this_class: #8 // xtc/tree/Annotation\n super_class: #2 // xtc/tree/Node\n interfaces: 0, fields: 1, methods: 9, attributes: 1\n Constant pool:\n #1 = Methodref #2.#3 // xtc/tree/Node.\"\":()V\n #2 = Class #4 // xtc/tree/Node\n"}]}, {"source1": "xtc/tree/GNode$Fixed.class", "source2": "xtc/tree/GNode$Fixed.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,16 +1,16 @@\n- SHA-256 checksum cf26b93b3739f7c248577e2b346b356fcec141e03bad6845b2fe40e8bde72fd3\n+ SHA-256 checksum fc9aaf623682f5c10aaac54bd2ad428fe8c9e3afd2dbdb0fb79b3976a58dd7c7\n Compiled from \"GNode.java\"\n abstract class xtc.tree.GNode$Fixed extends xtc.tree.GNode\n minor version: 0\n- major version: 52\n+ major version: 61\n flags: (0x0420) ACC_SUPER, ACC_ABSTRACT\n this_class: #12 // xtc/tree/GNode$Fixed\n super_class: #2 // xtc/tree/GNode\n- interfaces: 0, fields: 0, methods: 8, attributes: 2\n+ interfaces: 0, fields: 0, methods: 8, attributes: 3\n Constant pool:\n #1 = Methodref #2.#3 // xtc/tree/GNode.\"\":(Ljava/lang/String;)V\n #2 = Class #4 // xtc/tree/GNode\n #3 = NameAndType #5:#6 // \"\":(Ljava/lang/String;)V\n #4 = Utf8 xtc/tree/GNode\n #5 = Utf8 \n #6 = Utf8 (Ljava/lang/String;)V\n@@ -36,16 +36,17 @@\n #26 = Utf8 (Ljava/util/Collection<*>;)Lxtc/tree/Node;\n #27 = Utf8 (ILjava/util/Collection;)Lxtc/tree/Node;\n #28 = Utf8 (ILjava/util/Collection<*>;)Lxtc/tree/Node;\n #29 = Utf8 remove\n #30 = Utf8 (I)Ljava/lang/Object;\n #31 = Utf8 SourceFile\n #32 = Utf8 GNode.java\n- #33 = Utf8 InnerClasses\n- #34 = Utf8 Fixed\n+ #33 = Utf8 NestHost\n+ #34 = Utf8 InnerClasses\n+ #35 = Utf8 Fixed\n {\n xtc.tree.GNode$Fixed(java.lang.String);\n descriptor: (Ljava/lang/String;)V\n flags: (0x0000)\n Code:\n stack=2, locals=2, args_size=2\n 0: aload_0\n@@ -148,9 +149,10 @@\n 4: ldc #9 // String Generic node with a fixed number of children\n 6: invokespecial #11 // Method java/lang/UnsupportedOperationException.\"\":(Ljava/lang/String;)V\n 9: athrow\n LineNumberTable:\n line 91: 0\n }\n SourceFile: \"GNode.java\"\n+NestHost: class xtc/tree/GNode\n InnerClasses:\n- static abstract #34= #12 of #2; // Fixed=class xtc/tree/GNode$Fixed of class xtc/tree/GNode\n+ static abstract #35= #12 of #2; // Fixed=class xtc/tree/GNode$Fixed of class xtc/tree/GNode\n"}]}, {"source1": "xtc/tree/GNode$Fixed0.class", "source2": "xtc/tree/GNode$Fixed0.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -13,18 +13,18 @@\n super(fixed0.name);\n }\n \n public int size() {\n return 0;\n }\n \n- public Object get(final int i) {\n- throw new IndexOutOfBoundsException(\"Index: \" + i + \", Size: 0\");\n+ public Object get(final int n) {\n+ throw new IndexOutOfBoundsException(\"Index: \" + n + \", Size: 0\");\n }\n \n- public Object set(final int i, final Object o) {\n- throw new IndexOutOfBoundsException(\"Index: \" + i + \", Size: 0\");\n+ public Object set(final int n, final Object o) {\n+ throw new IndexOutOfBoundsException(\"Index: \" + n + \", Size: 0\");\n }\n \n public void addAllTo(final Collection collection) {\n }\n }\n"}]}, {"source1": "xtc/tree/GNode$Fixed1.class", "source2": "xtc/tree/GNode$Fixed1.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -16,27 +16,27 @@\n this(fixed1.name, fixed1.c1);\n }\n \n public int size() {\n return 1;\n }\n \n- public Object get(final int i) {\n- if (0 == i) {\n+ public Object get(final int n) {\n+ if (0 == n) {\n return this.c1;\n }\n- throw new IndexOutOfBoundsException(\"Index: \" + i + \", Size: 1\");\n+ throw new IndexOutOfBoundsException(\"Index: \" + n + \", Size: 1\");\n }\n \n- public Object set(final int i, final Object c1) {\n- if (0 == i) {\n+ public Object set(final int n, final Object c1) {\n+ if (0 == n) {\n final Object c2 = this.c1;\n this.c1 = c1;\n return c2;\n }\n- throw new IndexOutOfBoundsException(\"Index: \" + i + \", Size: 1\");\n+ throw new IndexOutOfBoundsException(\"Index: \" + n + \", Size: 1\");\n }\n \n public void addAllTo(final Collection collection) {\n collection.add(this.c1);\n }\n }\n"}]}, {"source1": "xtc/tree/GNode$Fixed2.class", "source2": "xtc/tree/GNode$Fixed2.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -18,42 +18,42 @@\n this(fixed2.name, fixed2.c1, fixed2.c2);\n }\n \n public int size() {\n return 2;\n }\n \n- public Object get(final int i) {\n- switch (i) {\n+ public Object get(final int n) {\n+ switch (n) {\n case 0: {\n return this.c1;\n }\n case 1: {\n return this.c2;\n }\n default: {\n- throw new IndexOutOfBoundsException(\"Index: \" + i + \", Size: 2\");\n+ throw new IndexOutOfBoundsException(\"Index: \" + n + \", Size: 2\");\n }\n }\n }\n \n- public Object set(final int i, final Object o) {\n- switch (i) {\n+ public Object set(final int n, final Object o) {\n+ switch (n) {\n case 0: {\n final Object c1 = this.c1;\n this.c1 = o;\n return c1;\n }\n case 1: {\n final Object c2 = this.c2;\n this.c2 = o;\n return c2;\n }\n default: {\n- throw new IndexOutOfBoundsException(\"Index: \" + i + \", Size: 2\");\n+ throw new IndexOutOfBoundsException(\"Index: \" + n + \", Size: 2\");\n }\n }\n }\n \n public void addAllTo(final Collection collection) {\n collection.add(this.c1);\n collection.add(this.c2);\n"}]}, {"source1": "xtc/tree/GNode$Fixed3.class", "source2": "xtc/tree/GNode$Fixed3.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -20,33 +20,33 @@\n this(fixed3.name, fixed3.c1, fixed3.c2, fixed3.c3);\n }\n \n public int size() {\n return 3;\n }\n \n- public Object get(final int i) {\n- switch (i) {\n+ public Object get(final int n) {\n+ switch (n) {\n case 0: {\n return this.c1;\n }\n case 1: {\n return this.c2;\n }\n case 2: {\n return this.c3;\n }\n default: {\n- throw new IndexOutOfBoundsException(\"Index: \" + i + \", Size: 3\");\n+ throw new IndexOutOfBoundsException(\"Index: \" + n + \", Size: 3\");\n }\n }\n }\n \n- public Object set(final int i, final Object c3) {\n- switch (i) {\n+ public Object set(final int n, final Object c3) {\n+ switch (n) {\n case 0: {\n final Object c4 = this.c1;\n this.c1 = c3;\n return c4;\n }\n case 1: {\n final Object c5 = this.c2;\n@@ -55,15 +55,15 @@\n }\n case 2: {\n final Object c6 = this.c3;\n this.c3 = c3;\n return c6;\n }\n default: {\n- throw new IndexOutOfBoundsException(\"Index: \" + i + \", Size: 3\");\n+ throw new IndexOutOfBoundsException(\"Index: \" + n + \", Size: 3\");\n }\n }\n }\n \n public void addAllTo(final Collection collection) {\n collection.add(this.c1);\n collection.add(this.c2);\n"}]}, {"source1": "xtc/tree/GNode$Fixed4.class", "source2": "xtc/tree/GNode$Fixed4.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -22,36 +22,36 @@\n this(fixed4.name, fixed4.c1, fixed4.c2, fixed4.c3, fixed4.c4);\n }\n \n public int size() {\n return 4;\n }\n \n- public Object get(final int i) {\n- switch (i) {\n+ public Object get(final int n) {\n+ switch (n) {\n case 0: {\n return this.c1;\n }\n case 1: {\n return this.c2;\n }\n case 2: {\n return this.c3;\n }\n case 3: {\n return this.c4;\n }\n default: {\n- throw new IndexOutOfBoundsException(\"Index: \" + i + \", Size: 4\");\n+ throw new IndexOutOfBoundsException(\"Index: \" + n + \", Size: 4\");\n }\n }\n }\n \n- public Object set(final int i, final Object o) {\n- switch (i) {\n+ public Object set(final int n, final Object o) {\n+ switch (n) {\n case 0: {\n final Object c1 = this.c1;\n this.c1 = o;\n return c1;\n }\n case 1: {\n final Object c2 = this.c2;\n@@ -65,15 +65,15 @@\n }\n case 3: {\n final Object c4 = this.c4;\n this.c4 = o;\n return c4;\n }\n default: {\n- throw new IndexOutOfBoundsException(\"Index: \" + i + \", Size: 4\");\n+ throw new IndexOutOfBoundsException(\"Index: \" + n + \", Size: 4\");\n }\n }\n }\n \n public void addAllTo(final Collection collection) {\n collection.add(this.c1);\n collection.add(this.c2);\n"}]}, {"source1": "xtc/tree/GNode$Fixed5.class", "source2": "xtc/tree/GNode$Fixed5.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -24,16 +24,16 @@\n this(fixed5.name, fixed5.c1, fixed5.c2, fixed5.c3, fixed5.c4, fixed5.c5);\n }\n \n public int size() {\n return 5;\n }\n \n- public Object get(final int i) {\n- switch (i) {\n+ public Object get(final int n) {\n+ switch (n) {\n case 0: {\n return this.c1;\n }\n case 1: {\n return this.c2;\n }\n case 2: {\n@@ -42,21 +42,21 @@\n case 3: {\n return this.c4;\n }\n case 4: {\n return this.c5;\n }\n default: {\n- throw new IndexOutOfBoundsException(\"Index: \" + i + \", Size: 5\");\n+ throw new IndexOutOfBoundsException(\"Index: \" + n + \", Size: 5\");\n }\n }\n }\n \n- public Object set(final int i, final Object c5) {\n- switch (i) {\n+ public Object set(final int n, final Object c5) {\n+ switch (n) {\n case 0: {\n final Object c6 = this.c1;\n this.c1 = c5;\n return c6;\n }\n case 1: {\n final Object c7 = this.c2;\n@@ -75,15 +75,15 @@\n }\n case 4: {\n final Object c10 = this.c5;\n this.c5 = c5;\n return c10;\n }\n default: {\n- throw new IndexOutOfBoundsException(\"Index: \" + i + \", Size: 5\");\n+ throw new IndexOutOfBoundsException(\"Index: \" + n + \", Size: 5\");\n }\n }\n }\n \n public void addAllTo(final Collection collection) {\n collection.add(this.c1);\n collection.add(this.c2);\n"}]}, {"source1": "xtc/tree/GNode$Fixed6.class", "source2": "xtc/tree/GNode$Fixed6.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -26,16 +26,16 @@\n this(fixed6.name, fixed6.c1, fixed6.c2, fixed6.c3, fixed6.c4, fixed6.c5, fixed6.c6);\n }\n \n public int size() {\n return 6;\n }\n \n- public Object get(final int i) {\n- switch (i) {\n+ public Object get(final int n) {\n+ switch (n) {\n case 0: {\n return this.c1;\n }\n case 1: {\n return this.c2;\n }\n case 2: {\n@@ -47,21 +47,21 @@\n case 4: {\n return this.c5;\n }\n case 5: {\n return this.c6;\n }\n default: {\n- throw new IndexOutOfBoundsException(\"Index: \" + i + \", Size: 6\");\n+ throw new IndexOutOfBoundsException(\"Index: \" + n + \", Size: 6\");\n }\n }\n }\n \n- public Object set(final int i, final Object o) {\n- switch (i) {\n+ public Object set(final int n, final Object o) {\n+ switch (n) {\n case 0: {\n final Object c1 = this.c1;\n this.c1 = o;\n return c1;\n }\n case 1: {\n final Object c2 = this.c2;\n@@ -85,15 +85,15 @@\n }\n case 5: {\n final Object c6 = this.c6;\n this.c6 = o;\n return c6;\n }\n default: {\n- throw new IndexOutOfBoundsException(\"Index: \" + i + \", Size: 6\");\n+ throw new IndexOutOfBoundsException(\"Index: \" + n + \", Size: 6\");\n }\n }\n }\n \n public void addAllTo(final Collection collection) {\n collection.add(this.c1);\n collection.add(this.c2);\n"}]}, {"source1": "xtc/tree/GNode$Fixed7.class", "source2": "xtc/tree/GNode$Fixed7.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -28,16 +28,16 @@\n this(fixed7.name, fixed7.c1, fixed7.c2, fixed7.c3, fixed7.c4, fixed7.c5, fixed7.c6, fixed7.c7);\n }\n \n public int size() {\n return 7;\n }\n \n- public Object get(final int i) {\n- switch (i) {\n+ public Object get(final int n) {\n+ switch (n) {\n case 0: {\n return this.c1;\n }\n case 1: {\n return this.c2;\n }\n case 2: {\n@@ -52,21 +52,21 @@\n case 5: {\n return this.c6;\n }\n case 6: {\n return this.c7;\n }\n default: {\n- throw new IndexOutOfBoundsException(\"Index: \" + i + \", Size: 7\");\n+ throw new IndexOutOfBoundsException(\"Index: \" + n + \", Size: 7\");\n }\n }\n }\n \n- public Object set(final int i, final Object c7) {\n- switch (i) {\n+ public Object set(final int n, final Object c7) {\n+ switch (n) {\n case 0: {\n final Object c8 = this.c1;\n this.c1 = c7;\n return c8;\n }\n case 1: {\n final Object c9 = this.c2;\n@@ -95,15 +95,15 @@\n }\n case 6: {\n final Object c14 = this.c7;\n this.c7 = c7;\n return c14;\n }\n default: {\n- throw new IndexOutOfBoundsException(\"Index: \" + i + \", Size: 7\");\n+ throw new IndexOutOfBoundsException(\"Index: \" + n + \", Size: 7\");\n }\n }\n }\n \n public void addAllTo(final Collection collection) {\n collection.add(this.c1);\n collection.add(this.c2);\n"}]}, {"source1": "xtc/tree/GNode$Fixed8.class", "source2": "xtc/tree/GNode$Fixed8.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -30,16 +30,16 @@\n this(fixed8.name, fixed8.c1, fixed8.c2, fixed8.c3, fixed8.c4, fixed8.c5, fixed8.c6, fixed8.c7, fixed8.c8);\n }\n \n public int size() {\n return 8;\n }\n \n- public Object get(final int i) {\n- switch (i) {\n+ public Object get(final int n) {\n+ switch (n) {\n case 0: {\n return this.c1;\n }\n case 1: {\n return this.c2;\n }\n case 2: {\n@@ -57,21 +57,21 @@\n case 6: {\n return this.c7;\n }\n case 7: {\n return this.c8;\n }\n default: {\n- throw new IndexOutOfBoundsException(\"Index: \" + i + \", Size: 8\");\n+ throw new IndexOutOfBoundsException(\"Index: \" + n + \", Size: 8\");\n }\n }\n }\n \n- public Object set(final int i, final Object o) {\n- switch (i) {\n+ public Object set(final int n, final Object o) {\n+ switch (n) {\n case 0: {\n final Object c1 = this.c1;\n this.c1 = o;\n return c1;\n }\n case 1: {\n final Object c2 = this.c2;\n@@ -105,15 +105,15 @@\n }\n case 7: {\n final Object c8 = this.c8;\n this.c8 = o;\n return c8;\n }\n default: {\n- throw new IndexOutOfBoundsException(\"Index: \" + i + \", Size: 8\");\n+ throw new IndexOutOfBoundsException(\"Index: \" + n + \", Size: 8\");\n }\n }\n }\n \n public void addAllTo(final Collection collection) {\n collection.add(this.c1);\n collection.add(this.c2);\n"}]}, {"source1": "xtc/tree/GNode$Variable.class", "source2": "xtc/tree/GNode$Variable.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,16 +1,16 @@\n- SHA-256 checksum 7b8a1ea2e021d61ceea3aaae0ec0f82c36c638f12f24a9ebb9432d86494a884b\n+ SHA-256 checksum 8814800cc43c013fb30dcb37f40f73db8c8212021ae66468cf17d58187448927\n Compiled from \"GNode.java\"\n class xtc.tree.GNode$Variable extends xtc.tree.GNode\n minor version: 0\n- major version: 52\n+ major version: 61\n flags: (0x0020) ACC_SUPER\n this_class: #13 // xtc/tree/GNode$Variable\n super_class: #2 // xtc/tree/GNode\n- interfaces: 0, fields: 1, methods: 17, attributes: 2\n+ interfaces: 0, fields: 1, methods: 17, attributes: 3\n Constant pool:\n #1 = Methodref #2.#3 // xtc/tree/GNode.\"\":(Ljava/lang/String;)V\n #2 = Class #4 // xtc/tree/GNode\n #3 = NameAndType #5:#6 // \"\":(Ljava/lang/String;)V\n #4 = Utf8 xtc/tree/GNode\n #5 = Utf8 \n #6 = Utf8 (Ljava/lang/String;)V\n@@ -102,16 +102,17 @@\n #92 = Utf8 (ILjava/util/Collection;)Lxtc/tree/Node;\n #93 = Utf8 (ILjava/util/Collection<*>;)Lxtc/tree/Node;\n #94 = Utf8 addAllTo\n #95 = Utf8 (Ljava/util/Collection;)V\n #96 = Utf8 ()Ljava/util/Iterator;\n #97 = Utf8 SourceFile\n #98 = Utf8 GNode.java\n- #99 = Utf8 InnerClasses\n- #100 = Utf8 Variable\n+ #99 = Utf8 NestHost\n+ #100 = Utf8 InnerClasses\n+ #101 = Utf8 Variable\n {\n private java.util.ArrayList children;\n descriptor: Ljava/util/ArrayList;\n flags: (0x0002) ACC_PRIVATE\n Signature: #75 // Ljava/util/ArrayList;\n \n xtc.tree.GNode$Variable(java.lang.String);\n@@ -383,9 +384,10 @@\n 4: iload_1\n 5: invokevirtual #71 // Method java/util/ArrayList.remove:(I)Ljava/lang/Object;\n 8: areturn\n LineNumberTable:\n line 852: 0\n }\n SourceFile: \"GNode.java\"\n+NestHost: class xtc/tree/GNode\n InnerClasses:\n- static #100= #13 of #2; // Variable=class xtc/tree/GNode$Variable of class xtc/tree/GNode\n+ static #101= #13 of #2; // Variable=class xtc/tree/GNode$Variable of class xtc/tree/GNode\n"}]}, {"source1": "xtc/tree/GNode.class", "source2": "xtc/tree/GNode.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -277,16 +277,16 @@\n variable.addAll(pair);\n return (GNode)variable;\n }\n }\n }\n \n public static GNode create(final GNode gNode) {\n- if (gNode instanceof GNode.Variable) {\n- return (GNode)new GNode.Variable((GNode.Variable)gNode);\n+ if (gNode instanceof final GNode.Variable variable) {\n+ return (GNode)new GNode.Variable(variable);\n }\n switch (gNode.size()) {\n case 0: {\n return (GNode)new GNode.Fixed0((GNode.Fixed0)gNode);\n }\n case 1: {\n return (GNode)new GNode.Fixed1((GNode.Fixed1)gNode);\n"}]}, {"source1": "xtc/tree/Locatable.class", "source2": "xtc/tree/Locatable.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,12 +1,12 @@\n- SHA-256 checksum 7fcd71194acbd15eacee544c7e631a1ce82af0bf4fbde2c9ba28abf704d22576\n+ SHA-256 checksum 06c6c87368c1ae736ee8adfa50704590c057364c3ff9e33a69cd4848853d25b3\n Compiled from \"Locatable.java\"\n public interface xtc.tree.Locatable\n minor version: 0\n- major version: 52\n+ major version: 61\n flags: (0x0601) ACC_PUBLIC, ACC_INTERFACE, ACC_ABSTRACT\n this_class: #1 // xtc/tree/Locatable\n super_class: #3 // java/lang/Object\n interfaces: 0, fields: 0, methods: 4, attributes: 1\n Constant pool:\n #1 = Class #2 // xtc/tree/Locatable\n #2 = Utf8 xtc/tree/Locatable\n"}]}, {"source1": "xtc/tree/Location.class", "source2": "xtc/tree/Location.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,12 +1,12 @@\n- SHA-256 checksum a6005c1da05f1f225ad71566d5b289a264ff1c5ec7fb516f87c68766b5ab7220\n+ SHA-256 checksum 1bb8e202b5b626259011e07c53657a987c93918f20fede13381202affabd31d5\n Compiled from \"Location.java\"\n public class xtc.tree.Location implements java.lang.Comparable\n minor version: 0\n- major version: 52\n+ major version: 61\n flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n this_class: #8 // xtc/tree/Location\n super_class: #2 // java/lang/Object\n interfaces: 1, fields: 3, methods: 6, attributes: 1\n Constant pool:\n #1 = Methodref #2.#3 // java/lang/Object.\"\":()V\n #2 = Class #4 // java/lang/Object\n"}]}, {"source1": "xtc/tree/Node$1.class", "source2": "xtc/tree/Node$1.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,16 +1,16 @@\n- SHA-256 checksum a929940c42fe6d7ec052b2b0cc05744ef99ec189d053894ac10d35bd8e906c8b\n+ SHA-256 checksum 6f30b54e8c28608018a12565255ff73c56d3c67126e7ed6b66f9a5379bdb5b36\n Compiled from \"Node.java\"\n class xtc.tree.Node$1 extends java.lang.Object implements java.util.Iterator\n minor version: 0\n- major version: 52\n+ major version: 61\n flags: (0x0020) ACC_SUPER\n this_class: #2 // xtc/tree/Node$1\n super_class: #12 // java/lang/Object\n- interfaces: 1, fields: 3, methods: 4, attributes: 4\n+ interfaces: 1, fields: 3, methods: 4, attributes: 5\n Constant pool:\n #1 = Fieldref #2.#3 // xtc/tree/Node$1.this$0:Lxtc/tree/Node;\n #2 = Class #4 // xtc/tree/Node$1\n #3 = NameAndType #5:#6 // this$0:Lxtc/tree/Node;\n #4 = Utf8 xtc/tree/Node$1\n #5 = Utf8 this$0\n #6 = Utf8 Lxtc/tree/Node;\n@@ -58,15 +58,16 @@\n #48 = Utf8 Ljava/lang/Object;Ljava/util/Iterator;\n #49 = Utf8 SourceFile\n #50 = Utf8 Node.java\n #51 = Utf8 EnclosingMethod\n #52 = NameAndType #53:#54 // iterator:()Ljava/util/Iterator;\n #53 = Utf8 iterator\n #54 = Utf8 ()Ljava/util/Iterator;\n- #55 = Utf8 InnerClasses\n+ #55 = Utf8 NestHost\n+ #56 = Utf8 InnerClasses\n {\n int cursor;\n descriptor: I\n flags: (0x0000)\n \n final int val$size;\n descriptor: I\n@@ -163,9 +164,10 @@\n 9: athrow\n LineNumberTable:\n line 365: 0\n }\n Signature: #48 // Ljava/lang/Object;Ljava/util/Iterator;\n SourceFile: \"Node.java\"\n EnclosingMethod: #21.#52 // xtc.tree.Node.iterator\n+NestHost: class xtc/tree/Node\n InnerClasses:\n #2; // class xtc/tree/Node$1\n"}]}, {"source1": "xtc/tree/Node.class", "source2": "xtc/tree/Node.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -146,16 +146,16 @@\n }\n \n public String getString(final int n) {\n final Object value = this.get(n);\n if (null == value) {\n return null;\n }\n- if (value instanceof String) {\n- return (String)value;\n+ if (value instanceof final String s) {\n+ return s;\n }\n return ((Node)value).getTokenText();\n }\n \n public Node getNode(final int n) {\n return (Node)this.get(n);\n }\n@@ -288,16 +288,16 @@\n appendable.append(\"null\");\n }\n else if (next instanceof String) {\n appendable.append('\\\"');\n Utilities.escape((String)next, appendable, 8);\n appendable.append('\\\"');\n }\n- else if (next instanceof Node) {\n- ((Node)next).write(appendable);\n+ else if (next instanceof final Node node) {\n+ node.write(appendable);\n }\n else {\n appendable.append(next.toString());\n }\n }\n appendable.append(')');\n }\n@@ -315,14 +315,14 @@\n return sb.toString();\n }\n \n public static final boolean isList(final Object o) {\n return o instanceof Pair && (Pair.EMPTY == o || ((Pair)o).head() instanceof Node);\n }\n \n- public static final Pair toList(final Object obj) {\n- if (isList(obj)) {\n- return (Pair)obj;\n+ public static final Pair toList(final Object o) {\n+ if (isList(o)) {\n+ return (Pair)o;\n }\n- throw new ClassCastException(\"Not a list of nodes \" + obj);\n+ throw new ClassCastException(\"Not a list of nodes \" + o);\n }\n }\n"}]}, {"source1": "xtc/tree/Token.class", "source2": "xtc/tree/Token.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -25,32 +25,32 @@\n return true;\n }\n \n public int size() {\n return 1;\n }\n \n- public Object get(final int i) {\n- if (0 == i) {\n+ public Object get(final int n) {\n+ if (0 == n) {\n return this.text;\n }\n- throw new IndexOutOfBoundsException(\"Index: \" + i + \", Size: 1\");\n+ throw new IndexOutOfBoundsException(\"Index: \" + n + \", Size: 1\");\n }\n \n public Object set(final int n, final Object o) {\n throw new IllegalStateException(\"Not modifiable\");\n }\n \n public static final boolean test(final Object o) {\n return o instanceof String || (o instanceof Node && ((Node)o).strip().isToken());\n }\n \n public static final String cast(final Object o) {\n if (null == o) {\n return null;\n }\n- if (o instanceof String) {\n- return (String)o;\n+ if (o instanceof final String s) {\n+ return s;\n }\n return ((Node)o).getTokenText();\n }\n }\n"}]}, {"source1": "xtc/util/Action.class", "source2": "xtc/util/Action.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,12 +1,12 @@\n- SHA-256 checksum 015465bd28a8afc22dc32e5a5a05647a25c1427a169af7277a30bd532f709704\n+ SHA-256 checksum a714ed2b19890ac8885e4e88f7807881403fe9d4bc0974fa84f959152ac338de\n Compiled from \"Action.java\"\n public interface xtc.util.Action\n minor version: 0\n- major version: 52\n+ major version: 61\n flags: (0x0601) ACC_PUBLIC, ACC_INTERFACE, ACC_ABSTRACT\n this_class: #1 // xtc/util/Action\n super_class: #3 // java/lang/Object\n interfaces: 0, fields: 0, methods: 1, attributes: 2\n Constant pool:\n #1 = Class #2 // xtc/util/Action\n #2 = Utf8 xtc/util/Action\n"}]}, {"source1": "xtc/util/Pair$1.class", "source2": "xtc/util/Pair$1.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,16 +1,16 @@\n- SHA-256 checksum a65204d2f9f7f939d3d0ee60de4186b52b19229dfc7ca4c9a544b3d95063a298\n+ SHA-256 checksum 66feb1585eec6bfac903197331e6cca568384bcdca63d8abf79561c9e95d60b5\n Compiled from \"Pair.java\"\n class xtc.util.Pair$1 extends java.lang.Object implements java.util.Iterator\n minor version: 0\n- major version: 52\n+ major version: 61\n flags: (0x0020) ACC_SUPER\n this_class: #2 // xtc/util/Pair$1\n super_class: #8 // java/lang/Object\n- interfaces: 1, fields: 2, methods: 4, attributes: 4\n+ interfaces: 1, fields: 2, methods: 4, attributes: 5\n Constant pool:\n #1 = Fieldref #2.#3 // xtc/util/Pair$1.this$0:Lxtc/util/Pair;\n #2 = Class #4 // xtc/util/Pair$1\n #3 = NameAndType #5:#6 // this$0:Lxtc/util/Pair;\n #4 = Utf8 xtc/util/Pair$1\n #5 = Utf8 this$0\n #6 = Utf8 Lxtc/util/Pair;\n@@ -58,15 +58,16 @@\n #48 = Utf8 Ljava/lang/Object;Ljava/util/Iterator;\n #49 = Utf8 SourceFile\n #50 = Utf8 Pair.java\n #51 = Utf8 EnclosingMethod\n #52 = NameAndType #53:#54 // iterator:()Ljava/util/Iterator;\n #53 = Utf8 iterator\n #54 = Utf8 ()Ljava/util/Iterator;\n- #55 = Utf8 InnerClasses\n+ #55 = Utf8 NestHost\n+ #56 = Utf8 InnerClasses\n {\n private xtc.util.Pair pair;\n descriptor: Lxtc/util/Pair;\n flags: (0x0002) ACC_PRIVATE\n Signature: #37 // Lxtc/util/Pair;\n \n final xtc.util.Pair this$0;\n@@ -157,9 +158,10 @@\n 7: athrow\n LineNumberTable:\n line 537: 0\n }\n Signature: #48 // Ljava/lang/Object;Ljava/util/Iterator;\n SourceFile: \"Pair.java\"\n EnclosingMethod: #17.#52 // xtc.util.Pair.iterator\n+NestHost: class xtc/util/Pair\n InnerClasses:\n #2; // class xtc/util/Pair$1\n"}]}, {"source1": "xtc/util/Pair.class", "source2": "xtc/util/Pair.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -106,41 +106,41 @@\n }\n \n public T get(final int n) {\n if (0 > n) {\n throw new IndexOutOfBoundsException(\"Index: \" + n + \", Size: \" + this.size());\n }\n Pair tail = this;\n- int i = 0;\n+ int n2 = 0;\n while (Pair.EMPTY != tail) {\n- if (n == i) {\n+ if (n == n2) {\n return tail.head;\n }\n- ++i;\n+ ++n2;\n tail = tail.tail;\n }\n- throw new IndexOutOfBoundsException(\"Index: \" + n + \", Size: \" + i);\n+ throw new IndexOutOfBoundsException(\"Index: \" + n + \", Size: \" + n2);\n }\n \n public T set(final int n, final T head) {\n if (0 > n) {\n throw new IndexOutOfBoundsException(\"Index: \" + n + \", Size: \" + this.size());\n }\n Pair tail = this;\n- int i = 0;\n+ int n2 = 0;\n while (Pair.EMPTY != tail) {\n- if (n == i) {\n+ if (n == n2) {\n final T head2 = tail.head;\n tail.head = head;\n return head2;\n }\n- ++i;\n+ ++n2;\n tail = tail.tail;\n }\n- throw new IndexOutOfBoundsException(\"Index: \" + n + \", Size: \" + i);\n+ throw new IndexOutOfBoundsException(\"Index: \" + n + \", Size: \" + n2);\n }\n \n public int size() {\n Pair tail = this;\n int n = 0;\n while (tail != Pair.EMPTY) {\n ++n;\n"}]}, {"source1": "xtc/util/State.class", "source2": "xtc/util/State.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,12 +1,12 @@\n- SHA-256 checksum 786111e39f19c13592b14595e97751bc538dfe9cfdbaad230395156162674002\n+ SHA-256 checksum 73aa8077e33febe72a9a25ef778274ac45d1d23b17e0463d6ac5437bd80fea75\n Compiled from \"State.java\"\n public interface xtc.util.State\n minor version: 0\n- major version: 52\n+ major version: 61\n flags: (0x0601) ACC_PUBLIC, ACC_INTERFACE, ACC_ABSTRACT\n this_class: #1 // xtc/util/State\n super_class: #3 // java/lang/Object\n interfaces: 0, fields: 0, methods: 4, attributes: 1\n Constant pool:\n #1 = Class #2 // xtc/util/State\n #2 = Utf8 xtc/util/State\n"}]}, {"source1": "xtc/util/Utilities.class", "source2": "xtc/util/Utilities.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -95,16 +95,16 @@\n return s;\n }\n \n public static String unqualify(final String s) {\n return isQualified(s) ? getName(s) : s;\n }\n \n- public static String qualify(final String str, final String str2) {\n- return (null == str) ? str2 : (str + '.' + str2);\n+ public static String qualify(final String s, final String s2) {\n+ return (null == s) ? s2 : (s + \".\" + s2);\n }\n \n public static String[] toComponents(final String s) {\n final int length = s.length();\n int n = 1;\n int n2 = 0;\n for (int i = 0; i < length; ++i) {\n@@ -178,27 +178,27 @@\n return requalify(s, '$');\n }\n \n public static String toPath(final String s) {\n return requalify(s, File.separatorChar);\n }\n \n- public static String toPath(final String s, final String str) {\n- return toPath(s) + '.' + str;\n+ public static String toPath(final String s, final String s2) {\n+ return toPath(s) + \".\" + s2;\n }\n \n- public static File locate(final List list, final String s) throws FileNotFoundException {\n+ public static File locate(final List list, final String child) throws FileNotFoundException {\n final Iterator iterator = list.iterator();\n while (iterator.hasNext()) {\n- final File file = new File(iterator.next(), s);\n+ final File file = new File(iterator.next(), child);\n if (file.exists() && file.isFile()) {\n return file;\n }\n }\n- throw new FileNotFoundException(s + \" not found\");\n+ throw new FileNotFoundException(child + \" not found\");\n }\n \n public static void pump(final Reader reader, final Writer writer) throws IOException {\n if (null == Utilities.charBuffer) {\n Utilities.charBuffer = new char[4096];\n }\n for (int n = reader.read(Utilities.charBuffer); -1 != n; n = reader.read(Utilities.charBuffer)) {\n@@ -561,15 +561,15 @@\n break;\n }\n case 118: {\n sb.append('\\u000b');\n break;\n }\n default: {\n- throw new IllegalArgumentException(\"illegal escaped character '\\\\\" + char2 + \"'\");\n+ throw new IllegalArgumentException(\"illegal escaped character '\\\\\" + char2);\n }\n }\n }\n }\n return sb.toString();\n }\n \n@@ -637,11 +637,17 @@\n }\n return \"a\";\n }\n \n static {\n Utilities.charBuffer = null;\n WHITE_SPACE = Pattern.compile(\"\\\\s+\");\n- SPACE_NEWLINE_SPACE = Pattern.compile(\"[ \\t\\f]*(?:\\r\\n|\\r|\\n)[ \\t\\f]*\");\n- COMMENT_NEWLINE = Pattern.compile(\"[ \\t\\f]*(?:\\r\\n|\\r|\\n)[ \\t\\f]*\\\\**[ \\t\\f]*\");\n+ SPACE_NEWLINE_SPACE = Pattern.compile(\"\"\"\n+ [ \t\\f]*(?:\\r\n+ |\\r|\n+ )[ \t\\f]*\"\"\");\n+ COMMENT_NEWLINE = Pattern.compile(\"\"\"\n+ [ \t\\f]*(?:\\r\n+ |\\r|\n+ )[ \t\\f]*\\**[ \t\\f]*\"\"\");\n }\n }\n"}]}]}]}]}]}]}