ParseName:
PROC [name:
ROPE]
RETURNS [parsedName:
PATH];
Parsing names in canonical form.
ParseComponent:
PROC [name:
ROPE, first:
NAT ← 0]
RETURNS [component: Component, next:
NAT];
parses a component beginning at name[first] and returns that component; next = first + length of the parsed component.
bug: should interpret escape sequences.
ParseVersion:
PROC [v:
ROPE, first:
NAT ← 0]
RETURNS [version: Version, next:
NAT];
parses a version beginning at name[first] and returns that version; next = first + length of the parsed version.