hasmer
Class List
Here are the classes, structs, unions and interfaces with brief descriptions:
[detail level 1234]
 NHasmer
 NAssembler
 NParser
 NVisitor
 CDataDisassemblerUsed for diassembling the data section of a Hermes bytecode file
 CDisassemblerOptionsRepresents the options to be used when disassembling
 CFunctionDisassemblerDisassembles a function from Hermes bytecode into Hasm assembly
 CHbcAssemblerRepresents a Hasm assembler, which assembles into Hermes bytecode
 CHbcDisassemblerRepresents a Hermes bytecode disassembler
 NCLI
 CProgram
 NDecompiler
 NAnalysis
 NAST
 NVisitor
 CDecompilerContextRepresents the context of a function as it is being decompiled
 CDecompilerOptionsRepresents the options to be used when decompiling
 CFunctionDecompilerRepresents a decompiler for an entire function
 CFunctionStateRepresents the state of a function as it is decompiled
 CHbcDecompilerRepresents a decompiler of a Hermes bytecode file, used for approximating the original JavaScript source
 CRegisterTrackerRepresents the registers of a function, and keeps track of the operations being performed on them
 NLSP
 CLSPServerImplements the LSP methods
 CProgram
 CTee
 CHbcAbstractInstructionDefinitionRepresents the abstract form of variant instructions. Variant instructions are instructions which perform the same action, but can have differently sized operands. By abstracting these instructions to all have one name, the assembler can optimize the size of the operands. Thus, programmers do not have to figure out the proper sizes when they write Hasm code.

Passing the "--exact" flag to the hasmer disassmbler will ignore abstract definitions, and instead emit the exact instruction
 CHbcBytecodeFormatRepresents a definition of the bytecode operations for a given Hermes version.
This is generally used by deserializing a JSON object, specifically the "Bytecode*.json" file in the Resources directory that corresponds to the desired Hermes version.
The "Bytecode*.json" themselves are autogenerated using the "bytecode-format-generator" tool, which is located in a directory at the root of this git repository
 CHbcCjsModuleTableEntry
 CHbcDataBufferRepresents a Hermes data buffer, such as the array buffer
 CHbcDataBufferItemsRepresents an entry in the data buffer (data type and subsequent items)
 CHbcDataBufferPrefixRepresents the header of an array in the data buffer
 CHbcEncodedItemRepresents an item whose parsing format is defined in JSON, whose value corresponds to a series of data in a Hermes bytecode file
 CHbcFileRepresents a parsed Hermes bytecode file
 CHbcFuncHeaderRepresents a function header definition in a Hermes bytecode file
 CHbcHeaderRepresents the header of a Hermes bytecode file
 CHbcInstructionRepresents an instruction in Hermes bytecode
 CHbcInstructionDefinitionRepresents the definition of an instruction in a JSON bytecode definitions file
 CHbcInstructionOperandRepresents an operand of Hermes bytecode instruction
 CHbcOverflowStringTableEntryRepresents a string that was too large to be in the normal string table
 CHbcReaderRepresents a BinaryReader that can also read individual bits
 CHbcRegExpTableEntry
 CHbcSmallFuncHeaderRepresents a SmallFuncHeader, which is just a FuncHeader but also includes a pointer to the full function. This is the default function information implementation in bytecode files, but if the function's contents (i.e. bytecode, register count, etc) cannot be included within the bounds of a SmallFuncHeader, this object includes a pointer to the full header as well
 CHbcSmallStringTableEntryRepresents a string in the string raw buffer. Used for creating the string table
 CHbcWriterRepresents a BinaryWriter which can write individual bits
 CPrimitiveValueA wrapper type for any other given type, which keeps track of the original type that was passed. This is used to ensure that primitive types can maintain their original type when cast from object to their type. By just using object, all primitive values are coerced into a double, which is undesirable
 CResourceManagerUtility for working with embedded resources
 CSourceCodeBuilderRepresents source code. Used for maintaining indentation and other source code syntax
 CStringEscapeUtility for working with string escape codes