This example generates logical expressions. It is similar to the
logical_expressions_simple example, with the following differences:

- The logical_expression.yg file is based on a Bison input file.  As such,
  there is code in the action block to store the parsed expression along with
  the line number in parsed_expressions. The user_code directory contains the
  include file normally used by bison and flex.
- The atomic propositions to the left and right of a binary operator are
  constrained so that they can't be the same.
- The main generator program is provided by the user, instead of using the
  default generated one. This version prints "-p" instead of "- p"

Run it with:

$ yagg -m -u user_code logical_expression.yg logical_expression.lg
$ ./output/progs/generate 4

If you want to make the parser source code, it's in
logical_expression_parser/. If you want to feed generated expressions to the
parser, try the following:

$ perl ./test_generator_and_parser.pl

This will test whether the generator is indeed producing strings that can be
parsed by a program created by bison using the same grammar. (It's battle of
the generators!)
