add char class, refactor lexer

dfa_generator can be improved by merging error states
try to implement it
end tag is useless, need refactor