How do I go about evaluating logical expression like “VERB1 OR (VERB2 AND VERB3) OR (VERB4)” entered at runtime. VERB* are placeholder to evaluate certain conditions. For example, VERB1 might mean check for the existence of a record in database.
In expression “VERB1 OR (VERB2 AND VERB3) OR (VERB4)”, other verbs should not be executed if VERB1 is true
EDIT: Example described at http://www.alittlemadness.com/2006/06/05/antlr-by-example-part-1-the-language/ seems very similar to what I am trying to do. However, the optimization step (other verbs should not be executed if VERB1 is true) doesn’t seem to be there.
If you can use
||and&&in place ofANDandOR, you can just use groovy’s missing property methods and the GroovyShell base class setting like so:That should print: