generally in {A,E}BNF, if one literal is a prefix of another,
the longer one is specified first, otherwise the shorter one
will always match, either causing a spurious error or a parsing
ambiguity, unless using a parser architecture which automatically
resolved local ambiguities by collecting alternatives.
this is something the rest of the KDL and KQL specs do well,
but it seems this case slipped through the cracks.
* Exclude hex above max Unicode Scalar Value
simplify surrogate regex to use ranges
* allow leading 0s, but still limit max length to 6
* Add explicit regex-set rules to hex unicode
document {1,3} ranges
* add space-separators between sets
* Make test fail *only* for length limits
Previously it failed due to specifying a codepoint past max *as well*, obscuring the intended fail condition.
---------
Co-authored-by: Tab Atkins Jr. <jackalmage@gmail.com>
Fixes: https://github.com/kdl-org/kdl/issues/461
* Initial conversion to Internet-Draft.
* Setup repository for draft-marchan-kdl2 using https://github.com/martinthomson/i-d-template
* Remove unnecessary changes.
* Tweak source to make the I-D build.
* Fix zkat's name. Guess at their preferred initials.
* Separate links where linking text equals the anchor.
This works around https://github.com/cabo/kramdown-rfc/issues/249.
* Replace horizontal rules with subsections.
RFCXML v3 doesn't include horizontal rules.
* Use ~~~kdl instead of `` for strings with significant whitespace.
That compiles to <sourcecode> which preserves sequences of spaces.
* Give breadcrumbs to the RFC format definitions.
* Point contributors to https://author-tools.ietf.org/.
For if installing the dependencies is inconvenient.
* Separate a code block from adjacent text.
* Remove a workflow that overwrites customized files.
* Remove the 'archive' workflow.
* Use "Term ({{term}})" uniformly instead of just when the term matches the anchor.
* Fix the instructions for preserving the RFCXML.
* Remove the default copyright notice until the spec is relicensed.
* Take the IETF licensing details out of CONTRIBUTING.md.
* Support empty multiline strings
Per <https://github.com/kdl-org/kdl/discussions/481>, the grammar doesn't actually allow the first and last newline in a multiline string to be the same (indicating an empty string). This looks like the minimal fix for it.
* Add tests for empty multilines
* remove accidental newline
* Release KDL 2.0.0
* fix grammar for multiline quoted strings to allow escaped whitespace on closing line
* Add unicode-space to raw string
* Remove nonexistent equals-sign from the grammar (#435)
* fix multiline string tests
* grammar: fix disallowed-keyword-identifiers and string-character (#436)
* Back out "fix multiline string tests"
This backs out commit 0c5604b462.
* add extra javascript implementation (#437)
* reword interaction multiline + whitespace escape (#439)
* More tests for backslash behaviour (#438)
* More tests for baskslash behaviour
* Incorrect example of escaped final newline
* Test with non-literal indent
* Make line-space a superset of node-space (#440)
* Allow escline everywhere
* escline tests
* Always escape \ inside single quotes in the grammar text (#441)
to match the other uses of it and the metalanguage description below
* Add tests for mandatory whitespace between arguments or properties (#442)
* Add an optional version marker (#444)
* Add version marker to the grammer
* Add version marker to the Changelog
* Update SPEC.md
Co-authored-by: eilvelia <hi@eilvelia.cat>
* add a mandatory newline after the version marker
* add mandatory space between version number
---------
Co-authored-by: eilvelia <hi@eilvelia.cat>
* Fix a changelog line erroneously truncated in #444 (#445)
* fix: move vertical tab to the line-breaking whitespace to match Unicode (#446)
* add vertical tab change test
* final tweaks before release
---------
Co-authored-by: eilvelia <hi@eilvelia.cat>
Co-authored-by: Bram Gotink <bram@gotink.me>
Co-authored-by: Thomas Jollans <tjol@tjol.eu>
Co-authored-by: Evgeny <eugenesvk@users.noreply.github.com>
* Make the raw-string productions non-greedy, and describe the infallibility. Closes#415
* More explicitly use and reference a cut point, rather than infallibility.