Documented BoolStatement
Removed doubled REMOVE token from sasm
Initial work on calling native functions done.
Added more compatability to API/Function. Easier to write API functions
Updated documentation and improved the now working VM->Native API
Made API Modulo function work with VM->Native interface.
Cleaned up VM->Native interface on API IntToStringFunction
Removed DropBox conflict
Added VM->Native Bool to string stub.
Added VM true and VM false constants
Converted BoolStatement to generate code according to VM::vmTrue and VM::vmFalse constants instead of 1 and 0
Converted BoolToStringFunction to use new VM->Native API
Improved FunctionStatement code generation. Fixed a possible bug when a call did not want its result stored.
Fixed a bug with last commit causing the number of instructions generated to be calculated wrong.
Fixed a bug caused by the newline being generated in strings in intermediate code by changing the SASM Regular expression. NOTE: Look into better string regex
Added VMLogFile to .gitignore
Moved lots of output into the newly generated VMLogFile. NOTE: Bug occurs with if statement code generation
Fixed bug with if statement code returning wrong number of generated instructions. REMINDER: jmpr uses number of OpCode instructions which is not necessarily equal to instructions in SASM ( For example as there is no neq OpCode neq a b ends up being two instructions )
Added code to pop arguments at the start of a functions execution ( Arguments now work. Woop )
Fixed IfStatement code size generation.
Rewrote Sieve to work with newer changes.
Added OpArrayLength in VM. ArrayLength(array, reg) results in the length of the array reference at array being placed into the destination register. Length is by element not byte
Added code to stop the garbage collector deleting active references stored on the stack and not on the heap.