Gentle introduction into compilers. Part 1: Lexical analysis and Scanner