Redo preprocessor to handle nested tokens correctly