EL parser based on parser combination

overriding a val is a bad idea. turn it into a trait and define token as a def instead.