-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCHANGELOG
191 lines (159 loc) · 6.12 KB
/
CHANGELOG
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
0.9.0 [Unreleased]
-----
# Added
- Implemented "println" functions for all typed interfaces that simply call
"print" and then print a newline through the specified stream
- Implemented "-p" option in the lexer test
- Updated test_utils.h to use the new "println" implementation
# Changed
- Switched from GNU Autotools to CMake for building, testing and installing
- Updated tools/update_docs.sh script for CMake
- Reorganized directory structure
- Renamed "aux" directories to "defs", as "aux" is an illegal filename on
Windows
- Absorbed first.h and follow.h into grammar.h
- Reorganized test directory structure to mirror source structure
# Removed
- Removed useless pnode_t definition
0.8.0
-----
# Added
- Implemented lexer__print function
- Implemented lexer lexeme extraction
- Implemented boolean in struct lexer_state to indicate that the end of the
stream has been reached
- Implemented parse_tree__num_children function
# Changed
- Dashes "-" are now printed instead of blanks when printing SLR tables, this
is helpful for awk to print the right columns
0.7.0
-----
# Added
- Implemented int__compare, int__equals, and char__compare, char__equals
functions
- Implemented production__print function
- Implemented grammar and test
- Implemented first set computation and test
- Implemented follow set computation and test
- Implemented LR(0) item and test
- Added a pnode_t definition to the common typed header
- Implemented computation of the set of sets of LR(0) items for Simple LR and
test
- Implemented computation of the ACTION and GOTO tables for Simple LR and test
# Changed
- Typed interfaces now include the common typed functions header for
convenience
- Changed fpfdata_int, fpfdata_char, and fpfdata_str function names to
int__print, char__print and string__print
- Renamed fpfdata_test to print_test
- Renamed all "print_data" symbols to "print"
# Removed
- Removed pnode_t definitions from all files that defined it locally in favour
of the single definition that now lives in the common typed header
0.6.1
-----
# Fixed
- trie:
- Fixed conditions that decide the validity of a key, resulting in the
following fixes:
- "in" function no longer returns 1 when the trie is empty
- "in" function no longer accepts invalid prefixes that are part of a valid
key
- Fixed case where inserting a key-value pair whose key was an invalid prefix
of a valid key would result in the value of that key not being set
0.6.0
-----
# Added
- Implemented tests for terminal and production
- Implemented in function for trie
# Fixed
- Fixed fpfdata_str incorrectly dereferencing strings
- Trie no longer crashes when it has not found a key
- Fixed tools/viz_all_tests
# Changed
- The implementations of the lexer and trie print_data and dump_dot functions,
as well as the parse_tree__data function have been adapted so that common
typed fpfdata functions can now be used with them in the same manner as with
rest of implementations
0.5.1
-----
# Fixed:
- Removed test/test_utils.h from the files to be installed
0.5.0
-----
# Added
- Implemented equivalence class and tests
- Implemented trie and tests
- Implemented typed interfaces
- Added "UNUSED" function parameter decorator in idiom.h to mark unused
function parameters
- Added Doxygen documentation: for users, documenting the API, and for
maintainers, documenting some implementation details
# Changed
- All tests have been rewritten with typed interfaces
- Lexer code rewritten and improved (formerly REA or regular expression
automaton)
- Scrapped manually written Makefile in favor of GNU Autotools for building,
testing and installing
- Prefixed header guards with "_LIBSAPLING_{file path}_H_"
- Transformed macro symbols to uppercase
- Distilled common implementations as parametrized macros:
- Stack and queue (first out buffer)
- Typed stack and queue interface (typed first out buffer)
# Removed
- Removed all ".*__edge_storage" functions
- Renamed all "match" functions to "predicate"
# Fixed
- lexer:
- Fixed state comparison (comparison of attributed edges was being performed
with existential quantification on an AVL (search) instead of universal
quantification (traversal), also only one node's attributed edges were
compared with the other, if all that node's attributed edges were in the
second node, the states would be considered equal even if the second state
had all of the first node's attributed edges and more, e.g. only
`ae(s0) ⊆ ae(s1)` was being evaluated instead of
`ae(s0) ⊆ ae(s1) ∧ ae(s1) ⊆ ae(s0)`)
- Removed forced minimization after applying an operator
0.4.0
-----
- Implemented parse tree building and navigation
- Implemented parse tree tests with graph visualization
- Moved terminal implementation from sapling compiler
- Implemented path printing
- Defined macro for defining file scope typed stack operations
- Updated library implementation dependency chart
- Updated README
0.3.0
-----
- Changed REAB (Regular Expression Automata Builder) term in previous CHANGELOG
version to simply "regular expression automata" and also rename reab.gv to
rea.gv in docs
- Moved headers in include folder to libsapling subfolder for installation
purposes
- Added Linux/Unix installation recipe in Makefile
- Modified AVL tree implementation so that traversal is done in inorder
- Renamed to_dot.sh to vis.sh
- Lifted general implementation from rea.c
- Implemented get_user_info and get_impl_info functions and replaced where
expressions were used
- Implemented node__data functions for all collections and replaced where
expressions were used
- Updated README
0.2.0
-----
- Added CHANGELOG
- Implemented string escaping/unescaping text utilities
- Implemented regular expression automata
- Implemented regular expression automata tests with graph visualization
- Updated library implementation dependency chart
- Added regular expression automata implementation dependency chart
- Moved dependency charts to docs folder
- Updated README
0.1.1
-----
- Fixed typo in README
0.1.0
-----
- Implemented the following graph based collections: path, stack, queue,
AVL tree and trie
- Implemented tests with graph visualization