AsmTools Source Code Description
The AsmTools source code is divided into areas based on their responsibility or whether they are general versus or specific. Generally, the package division is based on a specific tool being implemented, along with various support packages.
Packages
Located in the src/
directory under the root of the Mercurial project tree:
org.openjdk.asmtools
This is the top-level package of asmtools. The 'Main' dispatch class is located here.
org.openjdk.asmtools
.jasm
org.openjdk.asmtools
.jdis
These sub-packages implement the JASM assembler and disassembler, respectively. Each of these packages contains a 'Main' dispatch class, properties, and support classes.
asmtools.jasm contains a hierarchy of parser classes, responsible for parsing the JASM syntax of a .jasm file, and populating IR support classes representing the various parts of a Java .class. The IR classes are responsible for translating this structure into the final binary representation of a .class file.
asmtools.jdis also contain IR support classes that are responsible for dispatching the byte streams of a .class file amongst themselves to populate class data. These IR classes are also directly responsible for the generation of JASM text through dispatched printXXX() methods
org.openjdk.asmtools
.jcod
org.openjdk.asmtools
.jdec
org.openjdk.asmtools
.jcdec
These sub-packages implement the JCOD assembler and disassemblers, respectively. Each of these packages contains a 'Main' dispatch class, properties, and support classes.
asmtools.jcod implements a simple scanner and parser to translate JCOD structures into a .class file byte stream.
asmtools.jdec and asmtools.jcdec implement simple scanners and parsers to translate .class file byte streams into JCOD syntax. asmtools.jcdec is a superset of jdec, adding additional parsing for .cap binary files.
org.openjdk.asmtools
.asmutils
Contains support classes available to all of the assembler tools. This is support for Hex translation and other utilities.
org.openjdk.asmtools
.util
This package contains utilities used for the production of AsmTools. This includes support for bundle versioning, and internationalization.