final: supports multiple token classes, reads lex input from rules.txt