Universal Assembler/Deassembler*
Traditionally in CS152, making small changes to the assembler
mipsasm was difficult. When a user realized that
branch should increment by a different amount, or change
or add instruction, the administrator of mipsasm had
to first understand how mipsasm worked, hack, then
compile it. Also, most assemblers (mipsasm included)
were tailored for just one machine architecture, and making any
small change entailed great hacking one way or the other.
Kove relieves this burden by reading a "universal table" that
can translate a table into another source code, which
then is used to assemble or disassemble* codes. In anther
word, similar to FLEX, Kova reads a table, generates a code,
then executes that code to parse correctly. Now
a user can now simply enter a table for MIPS, byte-code,
x86 (though this would take forever), or any assembly format
without rewriting the assembler.
Below is snapshot of an actual working "universal table"
for MIPS encoding.

In this snapshot, two main instruction encoding attributes are set
for the assembler. The
string token must be specified for the
parser. Afterwards, a table following the string token
conventions are specified.