reimplement decoration tokens using a one pass parser