0.4.0
Per tradition, let's start with parse statistics:
Total parses: 3987;
successful parses: 3943;
failed parses: 44;
success percentage: 98.90%
Nothing too notable this cycle, but we managed to parse a bit more.
While the changes weren't breaking, modifying the layout engine is
rather risky and thus a minor is issued to warn users to test this
version before using in production.
Parsing improvements
Grammar improvements
-
except
andfinally
branches withintry
expressions are now
optional (#62). This enabled much better error recovery. -
Field names for complex structures are made consistent and many was
added (#69). This should make writing tools interacting with the
syntax tree a lot easier. -
Type declaration body is now optional (#72). This is a syntax quirk
utilized bysystem.nim
.
Layout engine improvements
-
Removed "one-shot termination" hack during error recovery (#72).
-
SYNCHRONIZE
syntax node is no longer used to fix scanner state
(#72). This in theory should cause less errors to happen during
incremental parsing which would translate to better editing
experience. -
Scanner now properly end layout in error states (#72). This delivers
better error recovery in error states where a layout could not be
ended (ie. in parentheses).