fixing semantic analysis tree traversal
adding line numbers to AST nodes
making lexer recognize boolean literals... oops