Augmented Transition Networks
A grammar can be written in network form. Branches are labeled with parts of speech or phrase names. Actions, such as constructing a database query, can be taken as arcs are traversed.
ATN's are more readable than lists of productions.
ATN interpreter and compiler packages exist; one can also write an ATN-like program directly in Lisp.