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