moved all of the traversals codes to semantic_analyzer and added nodes.py