X-Git-Url: http://nitlanguage.org diff --git a/lib/opts.nit b/lib/opts.nit index fd4a8a1..1d085b8 100644 --- a/lib/opts.nit +++ b/lib/opts.nit @@ -11,6 +11,9 @@ # You are allowed to redistribute it and sell it, alone or is a part of # another product. +# Manage options on the command line +module opts + # Super class of all option's class class Option # Names for the option (including long and short ones) @@ -79,7 +82,7 @@ class Option end class OptionText -special Option + super Option init(text: String) do init_opt(text, null, null) redef fun pretty(off) do return to_s @@ -88,7 +91,7 @@ special Option end class OptionBool -special Option + super Option redef type VALUE: Bool init(help: String, names: String...) do init_opt(help, false, names) @@ -97,7 +100,7 @@ special Option end class OptionCount -special Option + super Option redef type VALUE: Int init(help: String, names: String...) do init_opt(help, 0, names) @@ -107,7 +110,7 @@ end # Option with one mandatory parameter class OptionParameter -special Option + super Option protected fun convert(str: String): VALUE is abstract redef fun read_param(it) @@ -124,7 +127,7 @@ special Option end class OptionString -special OptionParameter + super OptionParameter redef type VALUE: nullable String init(help: String, names: String...) do init_opt(help, null, names) @@ -133,29 +136,29 @@ special OptionParameter end class OptionEnum -special OptionParameter + super OptionParameter redef type VALUE: Int - var _enum: Array[String] + var _values: Array[String] - init(enum: Array[String], help: String, default: Int, names: String...) + init(values: Array[String], help: String, default: Int, names: String...) do - assert enum.length > 0 - _enum = enum.to_a - init_opt("{help} <{enum.join(", ")}>", default, names) + assert values.length > 0 + _values = values.to_a + init_opt("{help} <{values.join(", ")}>", default, names) end redef fun convert(str) do - var id = _enum.index_of(str) + var id = _values.index_of(str) return id end - fun value_name: String = _enum[value] + fun value_name: String = _values[value] redef fun pretty_default do if default_value != null then - return " ({_enum[default_value.as(not null)]})" + return " ({_values[default_value.as(not null)]})" else return "" end @@ -163,7 +166,7 @@ special OptionParameter end class OptionInt -special OptionParameter + super OptionParameter redef type VALUE: Int init(help: String, default: Int, names: String...) do init_opt(help, default, names) @@ -172,7 +175,7 @@ special OptionParameter end class OptionArray -special OptionParameter + super OptionParameter redef type VALUE: Array[String] init(help: String, names: String...)