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
|
colm 0.11 - May 26, 2013
------------------------
* Require <> around ref and ptr type declarations (eg: ptr<type_ref>)
* Added production labels, which follow a production with the form
:Label. Labels are exposed in the C++ interface using an enum. They
are prefixed with _ to avoid conflict with member access functions.
* It's now possible to access Tree::tokdata from the C++ interface.
* The print, stream print, stream push, and stream append operations all
no longer trim trees by default. This makes these functions
consistent with constructor, which refrains from trimming to avoid
extra work. A construct with a tree trim is accomplished with an
additional operator. The above print and stream operations now have
the same usage patterns.
* Fixes to prodNum preservation through tree copy, and to the parser
colm 0.10 - Apr 18, 2013
------------------------
* Implemented the colm parser in colm. Bootstrapping with a parse tree
construction in C++. Using that generated parser to to parse the colm
grammar, from which the primary parser is produced.
* Improved error reporting.
* Added some tracking of progress through a stream for better
backtracking over includes that are pushed onto a stream.
* Updated the vim syntax, no longer highlighting parser, list, etc
(types).
* Parse expressions are now returning trees again. Returning the parser
results in semantics inconsistent with many other areas of the
program.
* Can now put '.' or eos on the end of a send expression to terminate
the parse
* Removed the original send syntax (<<).
* Lowercased and otherwise improved the C interface.
* The default binary name no longer has .bin suffix.
* Fixed -o option, now using -c to mean compile on (library). The
export filename options are now -e and -x.
colm 0.9 - Feb 19, 2013
-----------------------
* The parse loop now scans data that is owned by the input stream. It
is copied into a contiguous block in the scanner when the token is
consumed.
* The syntax of lexical regions was altered to omit the name. The
curlies were replaced with lex ... end syntax.
* The syntax of namespaces were altered. Curlies were replaced with
namespace <ID> ... end.
colm 0.8 - Dec 29, 2012
-----------------------
* The parse statement now includes a call to the finish operation. It
returns a value of type parser<Type>. The result tree and any error
message can be retrieved from this object using 'tree' and 'error'
members.
* Dropped curly brackets and the name from the syntax of lexical region
defintition. Using "lex ... end"
* Dropped curly brackets from the syntax of namespaces and context blocks.
Using "namespace N ... end N" and "context N ... end N"
* Now have a growable stack instead of a large, fixed, pre-allocated stack.
|