Started implementing semantic analysis, added in some more tests and updated run_tests.sh