1Revision history for Perl extension Yapp.
2
3	- original version; created by h2xs 1.18
40.01  Thu Jun 25 20:02:09 1998
50.02  Never released
60.03  Never released
70.04  Never released
8	- Fix installation of yapp.pl to $INST_SCRIPT
9	- $VERSION is now in Yapp/Driver to check compatibility
10	- Add debugging driver and debug option
11	- Bug in error recovery fixed: do not shift an $error reduction
12	- Add LeftValue, Curtok and Curval methods
13	- Add driver version compatibility check 
140.05  Thu Jul 03 20:05:05 1998
15	- Add LeftValue, Curtok and Curval methods
160.06  Tue Jul 07 20:36:17 GMT 1998
17    - Error token '$error' becomes 'error' (like in yacc)
18    - The '$end' token becomes ''
190.07  Never released
20    - Default action become a separate entry in states hash
21    - $COMPATIBLE value changed to 0.08
22    - The grammar parser is now a Yapp parser module
23    - Comments can be either Perl (#...\n) or C /* ... */ style
24    - The parser accepts %type, %union and <type> constructs and
25      almost ignore them, except checking consistency between token
26      and non-terminal declarations (warnings)
27    - The parser now has error recovery and consistent error line numbers
28    - The parser now accepts "in rule" actions and generates pseudo
29      empty rules to reduce, named @x-y, where x is a sequential
30      number and y the 'dot position' in the rule for the driver
31      to know how many parameters to pass to semantic action sub
32    - Add "in rule" actions handling in Driver.pm
33    - Empty rhs need not be the first one anymore
34    - Warning if more than one empty rhs for a given lhs
350.08  Fri Jul 10 22:04:31 GMT 1998
36    - Changed 'print STDERR' to 'warn' in parser.
37    - Use of literal 'error' produces a warning and is treated as
38      the error token
39    - Add prefix 'YY' before each parser object methods to avoid
40      clashes with user written methods
41    - Renamed YYUserData to YYData (shorter and more consistent with
42      other methods names)
43    - Renamed YYLeftVal to YYSemval for same reasons
44    - Modified Driver.pm so Semval(-n..n) reacts like $-n..$n in yacc
450.09  Never released
46    - Changed test suite to 't/' style and add base tests for semantic
47      actions/values and associativity tests
48    - Check code to be (almost) Perl's -w compatible
49    - Updates to pod section in Yapp.pm reflecting most of those changes
500.10  Mon Jul 13 20:53:40 GMT 1998
51    - Cosmetic changes
520.11  Wed Jul 15 19:46:17 GMT 1998
53    - Renamed Yapp::Parse parameters with a leading yy
54    - Updated Yapp.pm pod section
550.12  Tue Jul 21 22:34:00 GMT 1998
560.13  Never released. (I'm not supersticious, but who knows...8-))
57    - Renaming to Parse::Yapp for better CPAN entry...
580.14  Wed Jul 29 21:43:03 GMT 1998
59    - Doc change: empty token is '', not undef (perl -w complains otherwise)
60    - Bug in _ReduceGrammar: used $ruleno instead of $#{$grammar{RULES}}
61      making no-terminal pointing to wrong rhs if useless rules.
620.15  Mon Aug 17 11:39:01 CEST 1998
63    - YappParse.yp modified to allow empty tail section (not even \n)
64    - YappParse.yp modified to diagnose lack of rules in grammar section
65    - Driver.pm has been modified so there is no performance impact at
66      loading when debugging is not used and to insure thread safety at
67      runtime
68    - Output.pm can now include driver code into the parser module to
69      make it 'standalone'
70    - Copyright notice in Driver has been changed to reflect its use
71      if included in a standalone parser
72    - A -s option has been added to yapp.pl to generate standalone parsers
73    - Usage in yapp.pl reflects this new option 
74    - Updated Yapp.pm pod to add Standalone Parsers item
750.16  Sun Oct 25 12:36:05 CET 1998
76    - Output.pm modified not to use DATA handle, which seems broken on windows
77      systems when Parse::Yapp module is untarred and Output.pm hasn't its \n
78      converted to \r\n pairs.
79    - Added the %expect declaration, a la bison
80    - Updated Yapp.pm pod to reflect this new option
81    - The core of Parse::Yapp seems very stable now so I change the status from
82      alpha to beta and jump to version 0.20 directly.
830.20  Sun Dec 20 16:13:21 CET 1998
84    - Added YYExpect method in Parse/Yapp/Driver.pm
85    - Updated Yapp.pm pod to reflect this new method
86    - Modified Makefile.PL for using current Parse::Yapp version if recompiling
87      Parse/Yapp/Parse.pm from YappParse.yp ( $(PERL) -I. )
88    - Modified yapp.pl to add -V option and make output default to final name
89      of package, if -m option is specified. Usage updated.
90    - Added missing $@ check after eval of debugging driver.
910.21  Thu Dec 24 17:55:47 GMT 1998
92    - Corrected a weird bug in Lalr.pm (_SolveConflicts & _SetDefaults) about
93      shift/reduce conflicts on non-associative tokens
94    - Added a test in base.t to check non-associative conflicts and error
95      token handling
96    - Added some doc to explain YYExpect can include YYCurtok when non-associ-
97      ative errors happen
980.22  Wed Mar 10 17:03:39 CET 1999
99    - Moved Parse path tree under lib to be conformant with standard Perl
100      modules distributions
101    - Added Parse::Yapp::Options class as parent of Parse::Yapp::Grammar
102      to handle various options.
103    - As the Output method is not really 'public' yet, it now takes its
104      arguments as hash list, like YYParse. Can break code of people not
105      using the yapp.pl front-end.
106      Of course, its arguments are handled by Parse::Yapp::Options
107    - Added #line "inputfile" trace in generated grammar by default for input
108      source line numbers (obvious reason for adding that :-).
109    - Added language, linenumbers, inputfile, classname, standalone and input
110      options which default to ( 'Perl', 1, undef, 'Parser', 0, undef )
111    - Modified yapp.pl for new parameter list
112    - Idem for t/base.t and t/calc.t
113    - Modified Grammar.pm so it uses linenumbers option to know it must output
114      line numbers and inputfile as the filename. If inputfile is undef, then
115      use 'unkown'.
116    - Added a new flag -n to yapp.pl to disable line numbers in parser output
117    - Renamed yapp.pl to yapp (bored of typing .pl)
118    - Wrote pod for yapp frontend (so now there's a man 1 page !)
119    - Added article in copyright notice when using the standalone parser option
1200.30 Sat Apr  3 15:36:58 CEST 1999
121    - Corrected a silly bug in yapp front-end, calling Output method with
122      inputfile parameter, which was already done with the constructor
123    - Change to yapp frontend so the F<*.output> file goes to the same
124      directory than the F<*.yp> source file
125    - Corrected Head method in Parse::Yapp::Grammar so it returns '' if there
126      is no header code, to avoid a warning with perl's -w switch
127    - Same for Tail method, so no line number is output if there is no trailer
128      code
129    - Corrected a bug in Grammar.pm, to make useful rules useless if their lhs
130      are not reachable.
1310.31 Fri May  7 21:06:32 CEST 1999
132    - Won some milliseconds in Driver.pm by not calling an anonymous sub if
133      there is no semantic action: just get the first semantic value as result
134    - Added a patch from Andy Wardley (thanks) which allow people to specify
135      their own template rather than the standard one from Output.pm
136    - Added option C<-b> to yapp to specify a 'shebang'. If value is an empty
137      string, $Config{perlpath} is used.
1381.00 Wed Oct 20 17:52:38 CEST 1999
139    - Corrected a bug in Options.pm to have it run with Perl 5.6.0 
1401.01 Tue Mar 28 18:50:19 CEST 2000
141    - In YappParse.yp, if declaring a token with %left/%right/%nonassoc and
142      later redefining it with token lost precedence/associativity. Now, it
143      emits a warning
144    - In Lalr.pm, _FirstSfx, incorrectly looped when epsilon was in firstset
145      instead of beeing nullable (this one was weird)
146    - In Driver.pm, check for a call to YYErrok after calling error routine
147      to abort error recovery and continue normal parsing 
148    - New method YYLexer added in Driver.pm, to get a reference to the lexer
149      routine
150    - In Driver.pm, $check variable was not always cleaned up
1511.02 Mon May  1 13:42:03 CEST 2000
152    - English corrections in README file (thanks to Donald Lancon)
153	- New email address
154	- Updated copyright boundaries
155	- Various cleanups in Grammar.pm and Lalr.pm
1561.03 Sun Nov  5 13:14:49 CEST 2000
157    - In Lalr.pm, _Preds, recursivity removed
158    - English corrections in Parse::Yapp pod section (thanks to Julian Trudy)
159	- Updated copyright boundaries
160    - Stress test added (compile and check a full C++ grammar)
1611.04 Mon Feb 12 16:46:37 CET 2001
162    - Bug correction in YappParse.yp _Lexer sub to accept '\\' litterals
163      (Thanks to Denis Barbier to catch this one)
1641.05 Sun Nov  4 20:32:32 CET 2001
165