Builder API.

Both Builder and Compiler are emitters that emit everything to a representation that allows further processing. The code stored in such representation is completely safe to be patched, simplified, reordered, obfuscated, removed, injected, analyzed, or processed some other way. Each instruction, label, directive, or other building block is stored as BaseNode (or derived class like InstNode or LabelNode) and contains all the information necessary to pass that node later to the Assembler.