- From: Peter Bex <notifications@github.com>
- Date: Tue, 18 Sep 2018 00:05:26 -0700
- To: whatwg/url <url@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <whatwg/url/pull/416/review/156227111@github.com>
sjamaan commented on this pull request.
> +
+ pchar = unreserved / pct-encoded / sub-delims / ":" / "@"
+
+ query = *( pchar / "/" / "?" )
+
+ fragment = *( pchar / "/" / "?" )
+
+ pct-encoded = "%" HEXDIG HEXDIG
+
+ unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~"
+ reserved = gen-delims / sub-delims
+ gen-delims = ":" / "/" / "?" / "#" / "[" / "]" / "@"
+ sub-delims = "!" / "$" / "&" / "'" / "(" / ")"
+ / "*" / "+" / "," / ";" / "="
+</pre>
+
Regarding the preformatted text, I wouldn't mind polishing it to make it formatted in a way that makes it more readable. Would that involve adding BNF tags to bikeshed, or are there suitable options already?
Testing a grammar would be kind of tricky. Usually one would pick a parser generator and make the necessary transformations to make the BNF fit that particular parser. I have several different implementations of the RFC using various parser generators in [my project's repository](https://bugs.call-cc.org/browser/project/release/5/uri-generic/trunk/alternatives) but if you inspect them they all involve some modifications. Funny enough, the [one based on SRE](https://bugs.call-cc.org/browser/project/release/5/uri-generic/trunk/alternatives/uri-generic.irregex.scm#L503) (a composable form of regular expressions) is the only one without *any* changes from the BNF, IIRC.
We could include that SRE-based implementation in WPT. If only JavaScript is accepted as an implementation language I can take a look at the ecosystem to find a good parser generator and try my hand at transcoding the BNF to it. I'm not a good JavaScript coder, though!
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/whatwg/url/pull/416#discussion_r218318573
Received on Tuesday, 18 September 2018 07:05:49 UTC