Releases: conflowio/parsley
Releases · conflowio/parsley
0.17.0
0.16.0
0.15.0
BACKWARDS INCOMPATIBILITIES:
- Replace
Type() string
on parsley.Node withSchema() interface{}
to support any user-defined schema - Allow to set schema for nil parser
IMPROVEMENTS:
- Use Go 1.16
- Move tools dependency file to a subpackage
OTHER:
- Remove CodeCov integration
0.14.0
BACKWARDS INCOMPATIBILITIES:
- Remove NL and Whitespaces parsers, these are achievable using the trim parsers
- Change Trim parsers to always skip all whitespaces and return specific whitespace error
- In text.LeftTrim prefer a not found parse error over a whitespace error if the position is the same
IMPROVEMENTS:
- Add struct wrapper for parser functions to allow recursive parser definitions
- Simplify parsley.Error, remove unnecessary msg field (and therefore unnecessary .Error()
- Introduce notfound errors when a parser doesn't match
- Only collect notfound errors in any/choice if they are not in the starting position
0.13.0
BACKWARDS INCOMPATIBILITIES:
- The parsley.Evaluate function doesn't expect an evaluation context anymore, which was renamed to user context to make it more clear and can be set on parsley.Context
- Move ast.WalkNode to parsley.Walk
- The transform functions don't expect a NodeTransformer object anymore (the node transformation must be set on the interpreter)
IMPROVEMENTS:
- The evaluation context is called user context now and can be set on parsley.Context
- Proper recursive static checking (depth-first)
- Proper recursive node transformation support (breadth-first)
- The static checking and transformation are disabled by default and can be enabled on parsley.Context
- Add NodeTransformerRegistry interface
0.12.3
0.12.2
0.12.1
0.12.0
IMPROVEMENTS:
- Add parsley.NonTerminalNode interface for nonterminal nodes
- Add parsley.StaticChecker and parsley.StaticCheckable interface for doing static analysis
- Add type to the AST nodes
BACKWARDS INCOMPATIBILITIES:
- The parsley.Interpreter's Eval now expects a parsley.NonTerminalNode instead of a list of nodes
- The ast.NodeList's node methods will run always on the first node only
- The ast.NilNode was renamed to ast.EmptyNode to avoid confusion
- The ast.NewTerminalNode now expects a new valueType parameter
- Most of the text/terminal parsers now will return a custom node type (string node, int node, etc.)