Skip to content

Commit ecaf880

Browse files
cut 0.8.14 version
1 parent 7c2b65a commit ecaf880

File tree

2 files changed

+45
-1
lines changed

2 files changed

+45
-1
lines changed

CHANGES.txt

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,47 @@
1+
0.8.14 - 2023-06-21
2+
3+
- Added regression tests t12 to t15, all of which are C++ tests that test
4+
common data in the same manner as we already tested symbol data.
5+
6+
- fix regression on moving data, specifying a move snippet for the common
7+
type would invoke it from the wrong source location.
8+
9+
- fix for scanner pattern matches without sym but with common data
10+
such matches would invoke the common data destructor twice, once following
11+
the pattern action, and possibly again if the stack was reset or
12+
cleaned up before the next token.
13+
14+
- fix for generated code skipping over initializer for "need_common_move"
15+
variable (C++ only issue.)
16+
17+
- fix for common move snippets not being able to use `$0` to refer to the
18+
source common data (could still use `${0}` but this is not symmetric with
19+
`%type` -- while `${0}` typically refers to common data and `$0` to sym
20+
specific data, the subject here is the data type, rather than how it is
21+
used; so consistency across `%type` and `%common_type` is preferred over
22+
the distinction between common data and symbol data.)
23+
24+
- `<prefix>token_common_data()`
25+
Returns the common data associated with the current token. This is useful
26+
in the specific scenario of a scanner / parser combination where the parser
27+
runs into a _<PREFIX>SYNTAX_ERROR on the next token. This next token has
28+
already been scanned (and therefore its common data constructed), but has
29+
not yet moved into the parser stack. However, to report the error, the
30+
common data may be very useful. Because there is no way to access it without
31+
knowing about the implementation details of the scanner, the new
32+
`<prefix>token_common_data()` function is provided.
33+
Note that is can return NULL if there is currently no "next" token, which is
34+
most of the time. It is probably only useful in the specific scenario above,
35+
and even then only when the parser is not used stand-alone but in combination
36+
with a scanner.
37+
Please see the manual at https://carburetta.com/manual.html for details.
38+
39+
- `%common_class` directive
40+
The `%common_class` directive is the C++ class variation for %common_type,
41+
it provides the same convenience of use as `%class` but for the common data
42+
types.
43+
Please see the manual at https://carburetta.com/manual.html for details.
44+
145
0.8.12 - 2023-06-02
246

347
- `%class` directive

src/version.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ extern "C" {
77

88
#define CARBURETTA_MAJOR_VER 0
99
#define CARBURETTA_MINOR_VER 8
10-
#define CARBURETTA_PATCH_VER 13
10+
#define CARBURETTA_PATCH_VER 14
1111

1212
#define CARBURETTA_STRINGIFY_i(x) #x
1313
#define CARBURETTA_STRINGIFY(x) CARBURETTA_STRINGIFY_i(x)

0 commit comments

Comments
 (0)