-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathChangeLog
More file actions
436 lines (310 loc) · 12.5 KB
/
ChangeLog
File metadata and controls
436 lines (310 loc) · 12.5 KB
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
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
2022-01-28 Christophe Delord <cdelord.fr>
* Version 3.2.4:
Python 3.10 support:
- Dependency to the parser module removed
2020-05-29 Christophe Delord <cdelord.fr>
* Version 3.2.3:
TPG moved to cdelord.fr
2013-12-29 Christophe Delord <cdsoft.fr>
* Version 3.2.2:
Documentation: minor bug fixes
2012-05-28 Christophe Delord <cdsoft.fr>
* Version 3.2.1:
Tests: deprecated assertEquals renamed assertEqual
* Bug fixes:
- replace print by sys.stderr.write in the verbose
parser to avoid encoding issues.
2012-05-18 Christophe Delord <cdsoft.fr>
* Version 3.2.0:
reStructuredText support
* New features:
- in grammar docstring the text before a line ended
with '::' is ignored. This allows a grammar to be
embeded in a reStructuredText formated docstring.
2012-01-18 Christophe Delord <cdsoft.fr>
* Version 3.1.4:
Documentation: some english mistakes fixed
2011-08-17 Christophe Delord <cdsoft.fr>
* Version 3.1.3:
Python 3 support
2008-03-20 Christophe Delord <cdsoft.fr>
* Version 3.1.2:
Unicode support
* New features:
- Unicode grammars produce unicode parsers (thanks to
Gustavo Niemeyer).
2006-10-07 Christophe Delord <cdsoft.fr>
* Version 3.1.1:
Bug fix
* Bug fixes:
- Change text extraction to work with Python 2.5
2006-03-19 Christophe Delord <cdsoft.fr>
* Version 3.1.0:
Bug fixes and new features
* Bug fixes:
- Fixed some more typos in the documentation (thanks
to Johannes Schöön).
- Bug fix (wrong column number for the first token).
- Row is deprecated and renamed as column.
* New features:
- Make string tokens match triple quoted strings.
- Add default variable for non specified return values.
2005-07-08 Christophe Delord <cdsoft.fr>
* Version 3.0.6:
Fixed some typos in the documentation (thanks to Heinz Preisig).
Bug fix (wrong error reporting when using the context sensitive
lexer (thanks to Tiberius Teng).
2005-03-01 Christophe Delord <cdsoft.fr>
* Version 3.0.5:
Fixed some typos in comments (thanks to Mike O'Connor).
Documentation updated (Debian packets by Mike O'Connor
and Logilab).
2004-11-20 Christophe Delord <cdsoft.fr>
* Version 3.0.4:
Bug fix
* Bug fix:
- Check regular expressions before building the lexer
in order to detect incorrect tokens in a more explicit
way (thanks to Laszlo Kalman for reporting the bug).
- Check Python code before compiling the parser
in order to detect Python syntax errors in a more
explicit way too.
2004-04-08 Christophe Delord <cdsoft.fr>
* Version 3.0.3:
Bug fix
* Bug fix:
- Empty sequences are authorized only in the last branch
of alternatives (thanks to Laszlo Kalman for reporting
the bug).
2004-03-15 Christophe Delord <cdsoft.fr>
* Version 3.0.2:
Bug fix
* Bug fix:
- Word boundaries not added when only the beginning of the
token looks like a word. TPG can now handle tokens like
'http:' (thanks to Reinhard Gantar for reporting the bug).
2004-01-18 Christophe Delord <cdsoft.fr>
* Version 3.0.1:
Minor bug fixes
More unit tests
2003-11-11 Christophe Delord <cdsoft.fr>
* Version 3.0.0:
This is a complete rewrite of TPG 2 in order to simplify
the parser and the code generator. The syntax is also
incompatible with TPG 2.
* New features:
- The grammar of parsers is the doc string of the class.
- Syntax of expressions improved and simplified.
- The word_boundary option tells TPG to use or not
automatic word boundaries (\b) around identifier like
tokens (thanks to Zeph Grunschlag for the remark).
- The compilation options of regular expressions can be
changed for each parser (thanks to Mark Andrew for the
remark).
- New lexers have been added (mainly to bypass the limitation
of the sre package to 100 named groups).
- Adds debugging facilities (thanks to Mark Andrew again).
* Bug fixes:
- I wrote some unit tests and discovered (and fixed) many
small bugs.
* tpg.pyg:
This is the source containing the TPG grammar and generator.
* tpg.py:
This is the "compiled" version of tpg.pyg
*********************************************************************
* Incompatible changes from version 3.0.0
*********************************************************************
2003-05-25 Christophe Delord <cdsoft.fr>
* Version 2.1.6-dev:
The first code of the .g file is placed before
any other code (for __future__ statements).
Thanks to Rodrigo B. de Oliveira for the comment.
Some bug fixes.
* codegen.py:
Add code before "import tpg.base".
* parser.g:
Parse the first code appart.
Make CSL parser inherits from ToyParserCSL instead
of ToyParser1 (thanks to Dominic Hillenbrand).
2003-04-20 Christophe Delord <cdsoft.fr>
* Version 2.1.5:
Optionnal indent and deindent tokens (indent option).
Global and local (to a single parser) options.
* base.py:
Indent and deindent preprocessor.
* codegen.py:
Distinction between global and local options.
Indent and deindent preprocessor code generation.
* parser.g:
Distinction between global and local options.
Indent and deindent definition.
2002-10-20 Christophe Delord <cdsoft.fr>
* Version 2.1.4:
HTML documentation uses the free png image format instead
of the expensive gif.
TPG uses spaces instead of tabs.
TPG now generate Python code instead of source code in
a string (to check the generated parser as soon as
possible).
* codegen.py:
Indentation uses four spaces instead of a tabulation.
Bug fix: add a newline on the last line.
* parser.g:
The tpg.translate method translates TPG into Python source.
The tpg.compile method compiles TPG into Python code.
2002-08-22 Christophe Delord <cdsoft.fr>
* Version 2.1.3:
Some bug fixes.
Added the cut operator (!). ! acts as in Prolog, i.e. when
TPG backtracks on a cut, others alternatives are not tried.
The main difference with Prolog is that ! immediatly exits
i.e. it cuts all the pending alternatives (not only the
innermost). This helps TPG to report errors more precisely.
Marks are renamed as '@' (was '!' in previous versions)
LexicalError and SyntaxError have been renamed LexerError
and ParserError to avoid conflicts.
* base.py:
Bug fix: added the *args parameters in ToyParser.__init__
Improvment: _Scanner.tokens uses lastgroup to find to
matched token instead of an ugly loop.
Added the tpg.Error base class for tpg.LexicalError,
tpg.SyntaxError and tpg.SemanticError.
* parser.g:
Better error reporting.
Added 'Cut' support.
Added support for keyword arguments, *args and **kw.
* codegen.py:
Bug fix: quotes are escaped in strings if necessary
Added "Cut" support.
Improvment: Alternative is now generated as a balanced
tree to allow more alternatives.
Bug fix: predefined tokens and inline tokens could have
the same internal name (and re couldn't compile the lexer).
Added support for keyword arguments, *args and **kw.
2002-08-07 Christophe Delord <cdsoft.fr>
* Version 2.1.2:
The context sensitive lexer of TPG 0.1.9 has been
reintroduced (CSL option). TPG can produce both
type of lexers.
* base.py:
The ToyParserCSL class inherits from ToyParser and
is the base class for CSL parsers.
ToyParser and ToyParserCSL classes have a 'init' method
to provide the user a way to initialize the parser,
a 'error' method to stop parsing and raise an error
as a SemanticError exception.
* codegen.py:
Parsers, Code, Parser, Rule, Symbol, Sequence,
Alternative, MakeAST, AddAST, Check, Rep, Mark
and Extraction InlineToken have been updated to
generate CSL code.
LexRule has been added to generate the code for
lexical rules.
class Error: code generator for the error keyword.
Bug fix: Check.collect was buggy
* parser.g:
PARSERS, OPTIONS, TOKEN and INLINE_TOKEN updated
to parse CSL grammars.
LEX_RULE added to parse lexical rules.
ATOM updated to parse the 'error' statement.
2002-08-05 Christophe Delord <cdsoft.fr>
* Version 2.1.1:
Delivered with a better documentation and tutorial
* tpg.pdf:
First version of the TPG documentation
* codegen.py:
Added 'import sys' to enable -v and -vv options
with the tpg script (thanks to John Krumpotick)
Completed Slice class for [x:], [:y] and [:]
Added Check class (just a shortcut for self.check)
* parser.g:
Uses the 'check' shortcut
Changed INDICE to parse [x:], [:y] and [:] slices
Changed FACT to parse the 'check' shortcut
2002-07-12 Christophe Delord <cdsoft.fr>
* Version 2.1:
Packaged in a package directory + distutils
Any previous version needs to be uninstalled before
upgrading
* codegen.py:
Minimalist runtime, cannot generate autonomous parsers
TPG needs to be installed and imported
2002-07-10 Christophe Delord <cdsoft.fr>
* Version 2.0.5
* tpg_grammar.g: Bug fix in the command line parser
2002-07-07 Christophe Delord <cdsoft.fr>
* Version 2.0.4
* tpg_grammar.g:
Bug fix in NB rule
Bug fix in object and arg list code generation
* License: Now licensed with the LGPL
2002-06-24 Christophe Delord <cdsoft.fr>
* Version 2.0.3
* tpg_grammar.g: Bug fix in runtime generation
2002-06-23 Christophe Delord <cdsoft.fr>
* Version 2.0.2
* tpg_grammar.g:
Doc strings updated
Add Python code as objects (parameters, return values)
Bug fix in the grammar
2002-06-05 Christophe Delord <cdsoft.fr>
* Version 2.0.1
* tpg_grammar.g:
Minor changes
Bug fix (scanner without runtime didn't find _TokenDef class)
2002-05-26 Christophe Delord <cdsoft.fr>
* Version 2.0: Not compatible with TPG 0.1.9
* tpg_grammar.g:
Complete rewrite of TPG
Faster lexical scanner
Smaller generated code
2002-04-27 Christophe Delord <cdsoft.fr>
* Version 0.1.9
* install-TPG-0.1.9.py: Bug fix in the installation procedure
2002-04-06 Christophe Delord <cdsoft.fr>
* Version 0.1.8
* install-TPG-0.1.8.py: TPG is now packaged with Install Maker
2002-03-27 Christophe Delord <cdsoft.fr>
* Version 0.1.7
* tp.g:
Some code rewriting
Bug fix: when an error occurs, an empty file was created
2002-03-13 Christophe Delord <cdsoft.fr>
* Version 0.1.6
* tp.g:
Bug fix, remove backtracking in some regexp and now use
re (sre) instead of pre (thanks to Fredrik Lundh) and
speed improvement (thanks to Nick Mathewson)
2002-02-07 Christophe Delord <cdsoft.fr>
* Version 0.1.5
* tp.g:
Changed command line parsing (do not use TPG anymore)
2002-01-20 Christophe Delord <cdsoft.fr>
* Version 0.1.4
* tp.g:
Changed unindent function
Command line is now parsed by TPG
2002-01-16 Christophe Delord <cdsoft.fr>
* Version 0.1.3
* tp.g:
Add __all__ definition
Changed runtime option behaviour
Changed the way to add the runtime (#<> tags)
Changed genCode/genRetVal into genLValue and genRValue
String built by joining lists instead step by step concatenating
Bug fix: begin mark code fixed (missing '=')
2002-01-09 Christophe Delord <cdsoft.fr>
* Version 0.1.2
* tp.g:
New features:
Distinction between lexical and syntactic rules
Mark definition and text extraction
Bug fix:
Code is now delimited by {{ ... }} (otherwise symbol <<code>>
was recognised as symbol with <code> as attribute)
2001-12-29 Christophe Delord <cdsoft.fr>
* Version 0.1.1
* tp.g: Bug fix
'a b' was recognised as if b was a parameter of a
2001-12-23 Christophe Delord <cdsoft.fr>
* Version 0.1: Initial version