module Checkit { Stack New { Data "foo://example.com:8042/over/there?name=ferret#nose", "urn:example:animal:ferret:nose" Data "jdbc:mysql://test_user:ouupppssss@localhost:3306/sakila?profileSQL=true", "ftp://ftp.is.co.za/rfc/rfc1808.txt" Data "http://www.ietf.org/rfc/rfc2396.txt#header1", "ldap://[2001:db8::7]/c=GB?objectClass=one&objectClass=two" Data "mailto:John.Doe@example.com", "news:comp.infosystems.www.servers.unix", "tel:+1-816-555-1212" Data "telnet://192.0.2.16:80/", "urn:oasis:names:specification:docbook:dtd:xml:4.1.2", "ssh://alice@example.com" Data "https://bob:pass@example.com/place", "http://example.com/?a=1&b=2+2&c=3&c=4&d=%65%6e%63%6F%64%65%64" a=Array([]) } function prechar$(a$, b$) { if a$<>"" then {=quote$(b$+a$)} else ={""} } z=each(a) document s$="["+{ } While z { a$=array$(z) s1$={ "uri": }+quote$(a$)+{, "authority": }+ quote$(string$(a$ as URLAuthority))+{, "userInfo": }+ quote$(string$(a$ as URLUserInfo))+{, "scheme": }+quote$(string$(a$ as URLScheme))+{, "hostname": }+quote$(string$(a$ as UrlHost))+{, "Port": }+quote$(string$(a$ as UrlPort))+{, "pathname": }+quote$(string$(a$ as UrlPath))+{, "search": }+prechar$(string$(a$ as URLpart 6),"?")+{, "hash": }+prechar$(string$(a$ as UrlFragment),"#")+{ } s$=" {"+{ }+s1$+" }" \\ z^ is the iteraror's counter (z is an iterator of a, a touple - array in M2000) if z^