aboutsummaryrefslogtreecommitdiff
path: root/grammars
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2023-05-06 13:56:48 -0400
committerBruce Hill <bruce@bruce-hill.com>2023-05-06 13:56:48 -0400
commit68f6218444376a72a485bfe56a6a163f10bddf20 (patch)
tree12f69300cc5b14af06721a1858a5cc8603f6f114 /grammars
parent6f5bb02b923c1402eba04ce78033317da401971e (diff)
Fix domains to require a TLD (but allow non-tld domains like "localhost"
in URLS)
Diffstat (limited to 'grammars')
-rw-r--r--grammars/web.bp5
1 files changed, 3 insertions, 2 deletions
diff --git a/grammars/web.bp b/grammars/web.bp
index 3e47eba..9845676 100644
--- a/grammars/web.bp
+++ b/grammars/web.bp
@@ -1,13 +1,14 @@
# This file defines some web-related patterns
url: (
("https"/"http"/"ftp") "://" [>..`@ +url-char [`: +url-char] `@]
- (ipv4/ipv6/domain) [`: int] [url-path]
+ (ipv4/ipv6/domain/domain-segment) [`: int] [url-path]
/ "mailto:" email
/ "file://" +(`/ *url-char)
)
url-path: +(`/ *url-char) [`? +(+url-char`=+url-char)%`&]
ipv4: 4 int % `.
ipv6: 8 (4 Hex) % `:
-domain: +(+(Abc/digit/`-))%`.
+domain-segment: +(Abc/digit/`-)
+domain: 2+domain-segment % `.
url-char: Abc/digit/`$,-,_,.,+,!,*,',(,),,,%
email: +(Abc/digit/`.,-,+) `@ domain