Moved all the tests to a common package.
Added the Visitor and Visitee interfaces and implemented the Visitee interface in the ASTNode subclasses.
Moved the expressions to a subpackage.
Renamed 'Visitor' to 'ASTNodeVisitor' and combined 'Visitee' and 'ASTNode'.
Added the Declaration AST Node.
Moved the value types to a subpackage, and let them implement the 'Value' class.
Replaced the type as a string with object instances.
Made the parser in the parser tests final.
Added type checker shell.
Overrided 'equals' and 'hashCode' methods in Ident, so it can be used for comparison.
Removed 'jacc' and 'rats' from the project, because I'm never going to use them anyway and only add unnecessary dependencies now.
Added type checking for duplicate declarations.
Added the 'Mockito' mocking framework.
Added a test to check if 'Form' calls visit on all its children.
Added type checking for 'Value' subtypes.
Added extra test for variable redeclares: if name equals but type doesn't it should still fail.
Added checking if identities are declared before they are used.
Reordered the methods within the TypecheckerVisitor
Added tests for boolean operators, and extracted superclasses to avoid duplicate code.
Added tests for integer operators.