kdl icon indicating copy to clipboard operation
kdl copied to clipboard

Update formal grammar for KDL 2.0

Open CAD97 opened this issue 2 years ago • 4 comments

Closes #284 by making the formal grammar match the implementation and prose, explicitly treating slashdashed nodes as line-space and slashdashed node properties, arguments, and children as node-space.

CAD97 avatar Aug 21 '22 18:08 CAD97

The formal grammar is actually the "authoritative" version here, rather than the prose, so this is basically a breaking change. I think it's about time we start talking about the next version of KDL, though. We have a few breaking changes in the pipeline that have just been sitting on the sidelines (mostly minor things, tho).

zkat avatar Aug 21 '22 18:08 zkat

Also, it's probably worth doing a survey of existing implementations to see what exactly each of their behaviors here is. It's not unlikely there's divergence here.

CAD97 avatar Aug 21 '22 20:08 CAD97

Additionally, before merging this, I'd like to see a handful of updated tests in our compliance test suite that cover these corner cases.

zkat avatar Aug 28 '22 20:08 zkat

I'll bring in some conformance tests for these edge cases later this week; I'm writing a bunch as part of writing my implementation anyway.

CAD97 avatar Aug 28 '22 20:08 CAD97

I merged in the "alternate formulation" that uses required-node-space and optional-node-space, as it's exactly what I was going to suggest while reading the first fix attempt. ^_^

tabatkins avatar Oct 06 '23 21:10 tabatkins

I'm going to merge this, but I kinda want to see what it takes to allow node{} to be legal. We can do that after this, though.

zkat avatar Dec 11 '23 01:12 zkat