add
revise, fully implement string grammar
fix bug