Interleaving syntax and semantics in an efficient bottom-up parser | Synapse