summaryrefslogtreecommitdiff
path: root/module/url.m
diff options
context:
space:
mode:
authorCharles.Forsyth <devnull@localhost>2006-12-22 20:52:35 +0000
committerCharles.Forsyth <devnull@localhost>2006-12-22 20:52:35 +0000
commit46439007cf417cbd9ac8049bb4122c890097a0fa (patch)
tree6fdb25e5f3a2b6d5657eb23b35774b631d4d97e4 /module/url.m
parent37da2899f40661e3e9631e497da8dc59b971cbd0 (diff)
20060303-partial
Diffstat (limited to 'module/url.m')
-rw-r--r--module/url.m34
1 files changed, 34 insertions, 0 deletions
diff --git a/module/url.m b/module/url.m
new file mode 100644
index 00000000..fa537076
--- /dev/null
+++ b/module/url.m
@@ -0,0 +1,34 @@
+Url: module
+{
+ PATH : con "/dis/lib/url.dis";
+
+ # scheme ids
+ NOSCHEME, HTTP, HTTPS, FTP, FILE, GOPHER, MAILTO, NEWS,
+ NNTP, TELNET, WAIS, PROSPERO, JAVASCRIPT, UNKNOWN: con iota;
+
+ # general url syntax:
+ # <scheme>://<user>:<passwd>@<host>:<port>/<path>?<query>#<fragment>
+ #
+ # relative urls might omit some prefix of the above
+ ParsedUrl: adt
+ {
+ scheme: int;
+ utf8: int; # strings not in us-ascii
+ user: string;
+ passwd: string;
+ host: string;
+ port: string;
+ pstart: string; # what precedes <path>: either "/" or ""
+ path: string;
+ query: string;
+ frag: string;
+
+ makeabsolute: fn(url: self ref ParsedUrl, base: ref ParsedUrl);
+ tostring: fn(url: self ref ParsedUrl) : string;
+ };
+
+ schemes: array of string;
+
+ init: fn(); # call before anything else
+ makeurl: fn(s: string) : ref ParsedUrl;
+};