Lexer/parser/semantic analyser