Compiler Semantic Analysis using Reference Attribute Grammars. Implemented name analysis, type checking and error checking