Skip to content

0.4.0

Compare
Choose a tag to compare
@alaviss alaviss released this 11 Dec 23:59
· 27 commits to main since this release
0.4.0
77762e3

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 and finally branches within try 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 by system.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).