support recursive tokenize