* Make branches not identical
* Removed temporary file
* Typecheck
- Added `attemptPointerAriehmeticCoercion(Value, Value)`
* Typechecker
- Moved `attemptPointerAriehmeticCoercion(Value, Value)` to class-level and made privately accessible
* Test cases
- Added pointer arithmetic in the form of `*(ptr+0)` to `simple_pointer.t` to start testing it out
* Typechecker
- When handling `BinaryOperatorExpression` call `attemptPointerAriehmeticCoercion(Value, Value)` with both `(vLhsInstr, vRhsInstr)` before we call `vLhsInstr.getInstrType()` and `vRhsInstr.getInstrType()` before `isSameType(vLhsType, vRhsType)`. By doing so we attempt to coerce the types of both instructions if one is a pointer and another is an integer, else do nothing
* DGen
- When emitting for `PointerDereferenceAssignmentInstruction` we didn't wrap `<expr>` with `()`. So instead of `*(<expre>)` we got `*<expr>` which doesn't work if you're doing pointer arithmetic
* Test cases
- Added `simple_pointer_cast.t` to test casting (currently broken parsing-wise)
DGen
- Added a todo for semantic tests for the `simple_pointer_cast.t` test case
* Parser
- Added a TODO - we need a `parseType()`
* Test cases
- Removed `simple_cast_complex_type.t` as it is wrong, syntax wise
* Test cases
- Removed coercion usage, I am only testing the casting here (explicit)
* Test cases
- Removed `simple_pointer_cast.t` and replace it with `simple_pointer_cast_le.t` which casts the integer pointer to a byte pointer and sets the lowest significant byte (little endian hence at base of integer) to `2+2`
DGen
- Added semantic test for `simple_pointer_cast_le.t`
* Test cases
- Update `simple_pointer_cast_le.t` to do some pointer airthmetic at the byte-level of the 32-bit integer
DGen
- Updated the semantic test code generation for `simple_pointer_cast_le.t` to check for new values
* Added 'simple_pointer_cast_le.t' to Emit tests
* TypeChecker
- Update `isSameType(Type t1, Type t2)` to now handle pointers explicitly and in a recursive manner based on their referred types
- This check occurs before the `Integer` type check therefore following the rule of most specific types to least
* Test cases
- Added new test case `simple_pointer_malloc.t`
- Added semantic code test generation for `simple_pointer_malloc.t`
- Added `malloc_test.sh` to compile and generate `mem.o` from `mem.c` to link it then with `simple_pointer_malloc.t`
- Added `mem.c` external C file to generate the required `mem.o` for linking against `simple_pointer_malloc.t`
* Test cases
- Updated `malloc_test.sh` to look for any `brk()` system calls and fixed its interpreter path