1. A method for building an expression, the method comprising: displaying, using a processor of a computer, an expression on a computer display via a graphical user interface, where the expression includes a non-terminal display object corresponding to a non-terminal element defined in a grammar; and in response to receiving selection of the non-terminal display object, displaying, using the processor of the computer, a candidate terminal display object and a candidate non-terminal display object, where the candidate terminal display object corresponds to a terminal element within the grammar, and where the candidate non-terminal display object corresponds to another non-terminal element within the grammar; in response to receiving selection of the candidate terminal display object, replacing, using the processor of the computer, the selected non-terminal display object in the expression with the selected candidate terminal display object; and in response to receiving selection of the candidate non-terminal display object, replacing, using the processor of the computer, the selected non-terminal display object in the expression with the candidate non-terminal display object, where the candidate non-terminal display object is further replaced by one of another candidate terminal display object and another candidate non-terminal display object until no non-terminal display object remains in the displayed expression.