Contains the identifier used within the actual source program
For example, "complex_array a;" would create a Variable of data type complex_array with the identifier set to "a";
In the case of constants, the identifier is equal to the string representation of the constant.
The purpose of this function is to have a single function that all derived classes can
call to perform the initialization steps of setting the byte size, data type, and size type
While this could be done in the constructor, by putting it here and then relying on the
necessary get calls that all descended classes must implement, this makes it easier
to write correct code which fills in the proper values as one need only remember to call
initVariables in the constructor, rather than remember to write out all of the fields below.
InstructionProcessor is the primary Class used to take Intermediate Instructions
and properly dispatch them to be converted into the appriopriate machine-specific
instruction set
Refers to whether a Variable represents an element within either an array a Variable
Example: Within "int_array x[5]; x[0] = 1;", "x[0]" should create an array element variable to pass into the IR
Retruns whether the Variable's value has been set
The function has been included so that variables can have
their initial values set implicitly when they are declared
within the .data section of the ASM file instead of requiring
a "mov" instruction to set it in the begining
This feature is specificaly required for floating point values
because floating point operations do not accept immediate operands.