File: CHANGES.md

package info (click to toggle)
instaparse-clojure 1.4.7-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, buster, sid
  • size: 536 kB
  • ctags: 3
  • sloc: xml: 124; makefile: 23
file content (275 lines) | stat: -rw-r--r-- 7,797 bytes parent folder | download
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
# Instaparse Change Log

## 1.4.7

### Enhancements

* `visualize` now supports `:output-file :buffered-image`, which returns a java.awt.image.BufferedImage object.

### Bugfixes

* Fixed problem where `visualize` with `:output-file` didn't work on rootless trees.

## 1.4.6

### Performance improvements

* Better performance for ABNF grammars in Clojurescript.

## 1.4.5

### Bugfixes

* Fixed regression in 1.4.4 involving parsers based off of URIs.

* defparser now supports the full range of relevant parser options.

## 1.4.4

### Enhancements

* Instaparse is now cross-platform compatible between Clojure and Clojurescript.

### Features

* defparser - builds parser at compile time

## 1.4.3

### Bugfixes

* Fixed bug with insta/transform on tree with hidden root tag and strings at the top level of the tree.

## 1.4.2

### Bugfixes

* Fixed problem with counted repetitions in ABNF.

## 1.4.1

### Features

* New function `add-line-and-column-info-to-metadata` in the instaparse.core namespace.

### Enhancements

* Added new combinators for unicode character ranges, for better portability to Clojurescript.

### Bugfixes

* Improved compatibility with boot, which allows having multiple versions of Clojure on the classpath, by making change to string-reader which needs to
be aware of what version of Clojure it is running due to a breaking change in Clojure 1.7.

* Fixed bug with the way failure messages were printed in certain cases.

## 1.4.0

### Bugfixes

* In 1.3.6, parsing of any CharSequence was introduced, however, the error messages
  for failed parses weren't printing properly.  This has been fixed.    

* 1.4.0 uses a more robust algorithm for handling nested negative lookaheads, in
  response to a bug report where the existing mechanism produced incorrect parses
  (in addition to the correct parse) for a very unusual case.   

### Enhancements

* New support for tracing the steps the parser goes through.  Call your parser with
  the optional flag `:trace true`.  The first time you use this flag, it triggers a
  recompilation of the code with additional tracing and profiling steps.
  To restore the code to its non-instrumented form, call `(insta/disable-tracing!)`.

## 1.3.6

### Enhancements

* Modified for compatibility with Clojure 1.7.0-alpha6
* Instaparse now can parse anything supporting the CharSequence interface, not just strings.
  Specifically, this allows instaparse to operate on StringBuilder objects. 

## 1.3.5

### Bugfixes

* Fixed bug with `transform` on hiccup data structures with numbers or other atomic data as leaves.

* Fixed bug with character concatenation support in ABNF grammar

### Enhancements

* Added support for Unicode characters to ABNF.

## 1.3.4

### Enhancements

* Modified for compatibility with Clojure 1.7.0-alpha2.

## 1.3.3

### Enhancements

Made two changes to make it possible to use instaparse on Google App Engine.

* Removed dependency on javax.swing.text.Segment class.
* Added `:no-slurp true` keyword option to `insta/parser` to disable URI slurping behavior, since GAE does not support slurp.

## 1.3.2

### Bugfixes

* Regular expressions on empty strings weren't properly returning a failure.

## 1.3.1

### Enhancements

* Updated tests to use Clojure 1.6.0's final release.
* Added `:ci-string true` flag to `insta/parser`.

## 1.3.0

### Compatibility with Clojure 1.6

## 1.2.16

### Bugfixes

* Calling `empty` on a FlattenOnDemandVector now returns [].

## 1.2.15

### Enhancements

* :auto-whitespace can now take the keyword :standard or :comma to access one of the predefined whitespace parsers.

### Bugfixes

* Fixed newline problem visualizing parse trees on Linux.
* Fixed problem with visualizing rootless trees.

## 1.2.11

### Minor enhancements

* Further refinements to the way ordered choice interacts with epsilon parsers.

## 1.2.10

### Bugfixes

* Fixed bug introduced by 1.2.9 affecting ordered choice.

## 1.2.9

### Bugfixes

* Fixed bug where ordered choice was ignoring epsilon parser.

## 1.2.8

### Bugfixes

* Fixed bug introduced by 1.2.7, affecting printing of grammars with regexes.

### Enhancements

* Parser printing format now includes <> hidden information and tags.

## 1.2.7

### Bugfixes

* Fixed bug when regular expression contains | character.

## 1.2.6

### Bugfixes

* Changed pre-condition assertion for auto-whitespace option which was causing a problem with "lein jar".

## 1.2.5

### Bugfixes

* Improved handling of unusual characters in ABNF grammars.

## 1.2.4

### Bugfixes

* When parsing in :total mode with :enlive as the output format, changed the content of failure node from vector to list to match the rest of the enlive output.

## 1.2.3

### Bugfixes

* Fixed problem when epsilon was the only thing in a nonterminal, e.g., "S = epsilon"

### Features

* Added experimental `:auto-whitespace` feature.  See the [Experimental Features Document](docs/ExperimentalFeatures.md) for more details.

## 1.2.2

### Bugfixes

* Fixed reflection warning.

## 1.2.1

### Bugfixes

* I had accidentally left a dependency on tools.trace in the repeat.clj file, used while I was debugging that namespace.  Removed it.

## 1.2.0

### New Features

* `span` function returns substring indexes into the parsed text for a portion of the parse tree.
* `visualize` function draws the parse tree, using rhizome and graphviz if installed.
* `:optimize :memory` flag that, for suitable parsers, will perform the parsing in discrete chunks, using less memory.
* New parsing flag to undo the effect of the <> hide notation.
    + `(my-parser text :unhide :tags)` - reveals tags, i.e., `<>` applied on the left-hand sides of rules. 
    + `(my-parser text :unhide :content)` - reveals content hidden on the right-hand side of rules with `<>`
    + `(my-parser text :unhide :all)` - reveals both tags and content.

### Notable Performance Improvements

* Dramatic performance improvement (quadratic time reduced to linear) when repetition parsers (+ or *) operate on text whose parse tree contains a large number of repetitions.
* Performance improvement for regular expressions. 

### Minor Enhancements

* Added more support to IncrementalVector for a wider variety of vector operations, including subvec, nth, and vec.

## 1.1.0

### Breaking Changes

* When you run a parser in "total" mode, the failure node is no longer tagged with `:failure`, but instead is tagged with `:instaparse/failure`.

### New Features

* Comments now supported in CFGs.  Use (* and *) notation.
* Added `ebnf` combinator to the `instaparse/combinators` namespace.  This new combinator converts string specifications to the combinator-built equivalent.  See combinator section of the updated tutorial for details.
* ABNF: can now create a parser from a specification using `:input-format :abnf` for ABNF parser syntax.
    * New combinators related to ABNF:
        1. `abnf` -- converts ABNF string fragments to combinators.
        2. `string-ci` -- case-insensitive strings.
        3. `rep` -- between m and n repetitions.
    * New core function related to ABNF:
        `set-default-input-format!` -- initially defaults to :ebnf

### Minor Enhancements

* Added comments to regexes used by the parser that processes the context-free grammar syntax, improving the readability of error messages if you have a faulty grammar specification.

### Bug Fixes

* Backslashes in front of quotation mark were escaping the quotation mark, even if the backslash itself was escaped.
* Unescaped double-quote marks weren't properly handled, e.g., (parser "A = '\"'").
* Nullable Plus: ((parser "S = ('a'?)+") "") previously returned a failure, now returns [:S]
* Fixed problem with failure reporting that would occur if parse failed on an input that ended with a newline character.