Decimal point not allowed according to Path Data ENBF
waruyama opened this issue · 3 comments
Either I am completely missing something, or the ENBF for a coordinate in path data does not allow decimal points.
Here is the relevant part of the SVG 2.0 spec:
https://www.w3.org/TR/SVG2/paths.html#PathDataBNF
According to this a coordinate can only consist of digits with an optional leading sign. This is the ENBF for a coordinate as written in the spec:
coordinate::= sign? number
sign::= "+"|"-"
number ::= ([0-9])+
The correct definition for number (to allow numbers like "0.3", ".3", "3.") must probably look like this:
number ::= ([0-9]+ "."? [0-9]* | "." [0-9]+)
Indeed, and also things like 1.0e-42
should be allowed too. This was correct in SVG 1.1, see:
https://www.w3.org/TR/SVG11/paths.html#PathDataBNF
I believe the idea is that in SVG 2.0, it should delegate the definition of "number" to CSS.
There are in fact a few other things that were broken when the grammar was rewritten between 1.1 and 2.0, see:
Is there someone on the committee and/or with merge rights that can volunteer to review these changes, integrate them, and close all these related issues? The above PR is a good place to start as it's quite a trivial change: only one line modified. If someone is willing to review and merge PRs, starting with the one above, then I can take the time to volunteer to make other PRs to fix the remaining grammar problems.
Also, I just realized that the link you provided is from the W3C Candidate Recommendation of 04 October 2018.
The number syntax has already been fixed since, the latest version ("Editors draft") can be found at this link:
Which already contains the following fix to the number grammar:
So I think we can close this specific issue.
Sorry for that, the link came up in the Google search when searching for the SVG2 spec and I did not check if it is the current version.
Closing this issue.