Version 1.4012:
- Fix Makefile.PL warning
- Fix deleting of inc during release process
- Better fix for AutomatedTester warning

Version 1.4011:
- Updating META.yml

Version 1.4010:
- Switch to File::Slurper

Version 1.4009:
- Trying once again to fix the compile test on windows
- Reorder the Makefile to avoid a warning about missing parser files

Version 1.4008:
- Add standard tests
- Fix compatibility issue with newer versions of perl, which remove "." from
- Check in standard tests, including one that skips the compile check on Windows
- Strengthen the programs check, forcing Makefile.PL to fail if they are missing.
  Hopefully this will address false failures from CPAN testers.

Version 1.4007: May 2 2015
- Prevent CPAN from indexing private-lib

Version 1.4006: Mon Apr 20 2015
- Fix perl 5.21.10 warning about unescaped {. Thanks to Slaven Rezic
  <> for the report.
- Allow for generic "c++" instead of requiring g++. Thanks to Slaven Rezic
  <> for the report.
- Default make binary to "gmake" for freebsd. Thanks to Slaven Rezic
  <> for the patch.
- Clarify licensing terms
- Move verbose testing to a private module, and implement it in a way that
  doesn't require editing the Makefile after it is generated.
- Require File::Slurp instead of including it, to avoid potential problems 
  like this: 
- Dump stdout and stderr in case of test failure, to help debug CPAN testers
  failures such as this:

Version 1.4005: Sun Apr 12 2015
- Enable verbose testing for CPAN-testers
- Consolidate issue tracking at

Version 1.4004: Mon Mar 23 2015
- Moved code to github
- Updated code avoid use of deprecated foreach $x qw() syntax
  Thanks to for the bug report.
- Fix code to avoid recursing into "old" subdir during makefile generation

Version 1.4003: Sun Jul 11 2010
- Added some missing #include to allow code to be compiled by gcc 4.3. (Thanks
	to Sebastien Fricker <> for the patch.)
- Updated t/logical_expressions_simple to match code that would be generated
	with the latest version.

Version 1.4002: Sun Aug 16 2009
- Updated to the latest version of Module::Install
- Fixed missing File::HomeDir files
- Cleaned up spurious spaces added to makefiles during installation
- Moved hosting to Google Code
- Implemented an optimization where the generator will skip over variables
	that were not accessed during constraint checking

Version 1.4001: Sun Apr 1 2007
- Added a section to the tutorial on controlling output formatting. (Thanks to
	Casiano Rodriguez Leon <> for the question.)
- Fixed a misspelling in the hexadecimal example's README.
- Updated the makefile version
- Fixed an assert failure that would occur if (1) a rule list has more than
	one nonterminal, (2) some nonterminal in the list except the last one had no
	strings for a given allocation, and (3) the last nonterminal had strings for
	the given allocation.
- Updated the Makefiles
- Updated the test cases for the pass-by-reference updates in 1.3000.
- Make it possible to call Print_Strings from anywhere in the program for
	debugging. Maybe I'll add a flag for it later.
- Added RBD example

Version 1.4000: Tue Aug 22 2006
- Added a program to generate random strings
- Fixed a bug where yagg would be unable to generate a double quote character.
	(Thanks to Brad Hill <> for finding and fixing the bug.)
- Fixed a bug where use equivalence alternation would result in an assertion
	failing. (Thanks to Brad Hill <> for finding the bug.)

Version 1.3001: Mon Jun 6 2005
- Fixed a bug generating code for nonpointer rule types
- Fixed an rsync bug involving paths with spaces in them

Version 1.3000: Mon Mar 21 2005
- Removed unnecessary copy constructors, operator= functions, Clone functions
- Optimization for 2X speedup
  - $1 values are now only copied when needed
  - Rule lists in nonterminals are now not deleted and recreated
  - More values are passed by reference
- Added -M option to allow the user to provide additional make arguments
- Changed the syntax for alternation in the terminal file from "a|b" to
- Paths are removed from the makefile when compiling remotely
- Generator program can now generate any rule in the grammar
- Modified setup to automatically use g++ for LD, since the LD given by Perl
  is the C compiler, not the C++ compiler

Version 1.2100: Sun Feb 6 2005
- 2-3X faster. Figured out how to do equivalence classes without computing the
  terminal rules. So I got rid of Get_Terminals().
- Fixed build failure and runtime failure when using
- Fixed an infinite loop for some grammars which was related to a string
  caching optimization. (Thanks to Ted Turocy <> for
  the bug report.)
- Fixed a bug that would cause left recursion to reproduce some strings.
  (Thanks to Ted Turocy <> for the bug report.)
- Enhanced test cases
- Improved interactions with "find" that would cause running make on the
  generated code to not build anything, on some systems.

Version 1.20:
- Over 30X faster. Added an allocations cache for rule lists
- Changed the name to "yagg" and moved development to SourceForge

Version 1.11:
- Added support for empty productions
- Fixed chmod to do the right thing on remote machines
- Fixed a bug where a remote command would be executed even if "cd" failed
- Fixed a missing unindent and a typo for SHORT_RULE_TRACE debug output
- Enhanced debugging information for length computations.

Version 1.10:
- Updated all the examples, tutorial, and documentation
- Polished off everything for public distribution

Version 1.02:
- Switch from File::Find to rsync, which is *much* faster
- This version works completely for the logical expressions and fault trees
  - Added a tutorial
  - Changed the terminals input file into a lex-like format
  - Nonterminal input file is now basically yacc+undo actions.
- Added -c flag to rsync to avoid copying identical files, which prevents
  recompilation unless it is needed. Also added --delete to remove previously
  generated files.
- Fixed some bugs in generator_generator when input files don't have head or
  tail blocks
- Moved example input files into separate directories in new examples/
- Added support for constant strings like "x" 'x' 23 to the nonterminal .yg
- Added #line directives in the generated code
- Added string length optimization for disabling infeasible productions
- Added test cases.
- Prepared everything for installation and distribution
- Wrote a tutorial and finished the documentation
- Added -L and -C flags
- Restructured the file layout

Version 1.01:
- Added TODO file
- Restructured parsing of the grammars. Grammar now returns info on the union,
  and parses the union name declarations. (See the comments for the Post_Parse
- Moved template files into the input_generator_code directory, renaming them
  to, foo.template.h, etc.
- Added code to remove any rule lists containing the special "error" token
- Changed syntax for 'atomic_#' to ['atomic_#']
- Updated the grammar to bless rules as 'SIMPLE' or 'ALTERNATION'. Renamed
- Implemented action code blocks, with a few rough parts. See TODO file
- Fixed terminal generation for alternation
- Updated the generator with the changes from generate-dfts-oo
  (yacc_compatible branch). This makes it easier to generate the code blocks.
  I can see that the terminal generation isn't quite right... Need to fix
- Renamed template files.

Version 1.0:
- Initial version