split parser and tokenizer