aboutsummaryrefslogtreecommitdiff
path: root/src/lib/GetOpts.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/GetOpts.rs')
-rw-r--r--src/lib/GetOpts.rs80
1 files changed, 40 insertions, 40 deletions
diff --git a/src/lib/GetOpts.rs b/src/lib/GetOpts.rs
index f85ce85c..0cacf3ff 100644
--- a/src/lib/GetOpts.rs
+++ b/src/lib/GetOpts.rs
@@ -7,8 +7,8 @@
* argument values out of the match object.
*/
-import option.some;
-import option.none;
+import Option.some;
+import Option.none;
tag name { long(str); short(char); }
tag hasarg { yes; no; maybe; }
@@ -17,7 +17,7 @@ tag occur { req; optional; multi; }
type opt = rec(name name, hasarg hasarg, occur occur);
fn mkname(str nm) -> name {
- if (_str.char_len(nm) == 1u) { ret short(_str.char_at(nm, 0u)); }
+ if (Str.char_len(nm) == 1u) { ret short(Str.char_at(nm, 0u)); }
else { ret long(nm); }
}
fn reqopt(str name) -> opt {
@@ -41,11 +41,11 @@ tag optval {
type match = rec(vec[opt] opts, vec[mutable vec[optval]] vals, vec[str] free);
fn is_arg(str arg) -> bool {
- ret _str.byte_len(arg) > 1u && arg.(0) == '-' as u8;
+ ret Str.byte_len(arg) > 1u && arg.(0) == '-' as u8;
}
fn name_str(name nm) -> str {
alt (nm) {
- case (short(?ch)) {ret _str.from_char(ch);}
+ case (short(?ch)) {ret Str.from_char(ch);}
case (long(?s)) {ret s;}
}
}
@@ -55,16 +55,16 @@ fn name_eq(name a, name b) -> bool {
alt (a) {
case (long(?a)) {
alt (b) {
- case (long(?b)) { ret _str.eq(a, b); }
+ case (long(?b)) { ret Str.eq(a, b); }
case (_) { ret false; }
}
}
case (_) { if (a == b) { ret true; } else {ret false; } }
}
}
-fn find_opt(vec[opt] opts, name nm) -> option.t[uint] {
+fn find_opt(vec[opt] opts, name nm) -> Option.t[uint] {
auto i = 0u;
- auto l = _vec.len[opt](opts);
+ auto l = Vec.len[opt](opts);
while (i < l) {
if (name_eq(opts.(i).name, nm)) { ret some[uint](i); }
i += 1u;
@@ -102,41 +102,41 @@ tag result {
}
fn getopts(vec[str] args, vec[opt] opts) -> result {
- auto n_opts = _vec.len[opt](opts);
- fn empty_(uint x) -> vec[optval]{ret _vec.empty[optval]();}
+ auto n_opts = Vec.len[opt](opts);
+ fn empty_(uint x) -> vec[optval]{ret Vec.empty[optval]();}
auto f = empty_;
- auto vals = _vec.init_fn_mut[vec[optval]](f, n_opts);
+ auto vals = Vec.init_fn_mut[vec[optval]](f, n_opts);
let vec[str] free = vec();
- auto l = _vec.len[str](args);
+ auto l = Vec.len[str](args);
auto i = 0u;
while (i < l) {
auto cur = args.(i);
- auto curlen = _str.byte_len(cur);
+ auto curlen = Str.byte_len(cur);
if (!is_arg(cur)) {
- _vec.push[str](free, cur);
- } else if (_str.eq(cur, "--")) {
- free += _vec.slice[str](args, i + 1u, l);
+ Vec.push[str](free, cur);
+ } else if (Str.eq(cur, "--")) {
+ free += Vec.slice[str](args, i + 1u, l);
break;
} else {
auto names;
- auto i_arg = option.none[str];
+ auto i_arg = Option.none[str];
if (cur.(1) == '-' as u8) {
- auto tail = _str.slice(cur, 2u, curlen);
- auto eq = _str.index(tail, '=' as u8);
+ auto tail = Str.slice(cur, 2u, curlen);
+ auto eq = Str.index(tail, '=' as u8);
if (eq == -1) {
names = vec(long(tail));
} else {
- names = vec(long(_str.slice(tail, 0u, eq as uint)));
- i_arg = option.some[str]
- (_str.slice(tail, (eq as uint) + 1u, curlen - 2u));
+ names = vec(long(Str.slice(tail, 0u, eq as uint)));
+ i_arg = Option.some[str]
+ (Str.slice(tail, (eq as uint) + 1u, curlen - 2u));
}
} else {
auto j = 1u;
names = vec();
while (j < curlen) {
- auto range = _str.char_range_at(cur, j);
- _vec.push[name](names, short(range._0));
+ auto range = Str.char_range_at(cur, j);
+ Vec.push[name](names, short(range._0));
j = range._1;
}
}
@@ -152,29 +152,29 @@ fn getopts(vec[str] args, vec[opt] opts) -> result {
}
alt (opts.(optid).hasarg) {
case (no) {
- _vec.push[optval](vals.(optid), given);
+ Vec.push[optval](vals.(optid), given);
}
case (maybe) {
- if (!option.is_none[str](i_arg)) {
- _vec.push[optval](vals.(optid),
- val(option.get[str](i_arg)));
- } else if (name_pos < _vec.len[name](names) ||
+ if (!Option.is_none[str](i_arg)) {
+ Vec.push[optval](vals.(optid),
+ val(Option.get[str](i_arg)));
+ } else if (name_pos < Vec.len[name](names) ||
i + 1u == l || is_arg(args.(i + 1u))) {
- _vec.push[optval](vals.(optid), given);
+ Vec.push[optval](vals.(optid), given);
} else {
i += 1u;
- _vec.push[optval](vals.(optid), val(args.(i)));
+ Vec.push[optval](vals.(optid), val(args.(i)));
}
}
case (yes) {
- if (!option.is_none[str](i_arg)) {
- _vec.push[optval](vals.(optid),
- val(option.get[str](i_arg)));
+ if (!Option.is_none[str](i_arg)) {
+ Vec.push[optval](vals.(optid),
+ val(Option.get[str](i_arg)));
} else if (i + 1u == l) {
ret failure(argument_missing(name_str(nm)));
} else {
i += 1u;
- _vec.push[optval](vals.(optid), val(args.(i)));
+ Vec.push[optval](vals.(optid), val(args.(i)));
}
}
}
@@ -185,7 +185,7 @@ fn getopts(vec[str] args, vec[opt] opts) -> result {
i = 0u;
while (i < n_opts) {
- auto n = _vec.len[optval](vals.(i));
+ auto n = Vec.len[optval](vals.(i));
auto occ = opts.(i).occur;
if (occ == req) {if (n == 0u) {
ret failure(option_missing(name_str(opts.(i).name)));
@@ -212,7 +212,7 @@ fn opt_val(match m, str nm) -> optval {
ret opt_vals(m, nm).(0);
}
fn opt_present(match m, str nm) -> bool {
- ret _vec.len[optval](opt_vals(m, nm)) > 0u;
+ ret Vec.len[optval](opt_vals(m, nm)) > 0u;
}
fn opt_str(match m, str nm) -> str {
alt (opt_val(m, nm)) {
@@ -224,15 +224,15 @@ fn opt_strs(match m, str nm) -> vec[str] {
let vec[str] acc = vec();
for (optval v in opt_vals(m, nm)) {
alt (v) {
- case (val(?s)) { _vec.push[str](acc, s); }
+ case (val(?s)) { Vec.push[str](acc, s); }
case (_) {}
}
}
ret acc;
}
-fn opt_maybe_str(match m, str nm) -> option.t[str] {
+fn opt_maybe_str(match m, str nm) -> Option.t[str] {
auto vals = opt_vals(m, nm);
- if (_vec.len[optval](vals) == 0u) { ret none[str]; }
+ if (Vec.len[optval](vals) == 0u) { ret none[str]; }
alt (vals.(0)) {
case (val(?s)) { ret some[str](s); }
case (_) { ret none[str]; }