A recursive descent lexical analyzer and tokenizer for the C language using recursive descent parsing techniques