nitlanguage
/
nit.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
lib: change identifier enum to values
[nit.git]
/
lib
/
opts.nit
diff --git
a/lib/opts.nit
b/lib/opts.nit
index
b9e5ceb
..
5bcb5d0
100644
(file)
--- a/
lib/opts.nit
+++ b/
lib/opts.nit
@@
-14,28
+14,28
@@
# Super class of all option's class
class Option
# Names for the option (including long and short ones)
# Super class of all option's class
class Option
# Names for the option (including long and short ones)
- readable attr _names: Array[String]
+ readable var _names: Array[String]
# Type of the value of the option
# Type of the value of the option
- type VALUE: Object
+ type VALUE: nullable Object
# Human readable description of the option
# Human readable description of the option
- readable attr _helptext: String
+ readable var _helptext: String
# Is this option mandatory?
# Is this option mandatory?
- readable writable attr _mandatory: Bool
+ readable writable var _mandatory: Bool
- # context where the option is located
- readable writable attr _context: OptionContext
+ # Current value of this option
+ writable var _value: nullable VALUE
# Current value of this option
# Current value of this option
- readable writable attr _value: VALUE
+ fun value: VALUE do return _value.as(VALUE)
# Default value of this option
# Default value of this option
- readable writable attr _default_value: VALUE
+ readable writable var _default_value: nullable VALUE
# Create a new option
# Create a new option
- init init_opt(help: String, default: VALUE, names: Array[String])
+ init init_opt(help: String, default: nullable VALUE, names: nullable Array[String])
do
if names == null then
_names = new Array[String]
do
if names == null then
_names = new Array[String]
@@
-49,43
+49,42
@@
class Option
end
# Add new aliases for this option
end
# Add new aliases for this option
- meth add_aliases(names: String...) do _names.add_all(names)
+ fun add_aliases(names: String...) do _names.add_all(names)
# An help text for this option with default settings
# An help text for this option with default settings
- redef meth to_s do return pretty(2)
+ redef fun to_s do return pretty(2)
# A pretty print for this help
# A pretty print for this help
- meth pretty(off: Int): String
+ fun pretty(off: Int): String
do
do
- var text = " "
+ var text = new Buffer.from(" ")
text.append(_names.join(", "))
text.append(" ")
var rest = off - text.length
if rest > 0 then text.append(" " * rest)
text.append(helptext)
#text.append(pretty_default)
text.append(_names.join(", "))
text.append(" ")
var rest = off - text.length
if rest > 0 then text.append(" " * rest)
text.append(helptext)
#text.append(pretty_default)
- return text
+ return text.to_s
end
end
- meth pretty_default: String
+ fun pretty_default: String
do
do
- if default_value != null then
- return " ({default_value})"
- end
+ var dv = default_value
+ if dv != null then return " ({dv})"
return ""
end
# Consume parameters for this option
return ""
end
# Consume parameters for this option
- protected meth read_param(it: Iterator[String]) is abstract
+ protected fun read_param(it: Iterator[String]) is abstract
end
class OptionText
special Option
init(text: String) do init_opt(text, null, null)
end
class OptionText
special Option
init(text: String) do init_opt(text, null, null)
- redef meth pretty(off) do return to_s
+ redef fun pretty(off) do return to_s
- redef meth to_s do return helptext
+ redef fun to_s do return helptext
end
class OptionBool
end
class OptionBool
@@
-94,17
+93,25
@@
special Option
init(help: String, names: String...) do init_opt(help, false, names)
init(help: String, names: String...) do init_opt(help, false, names)
- redef meth read_param(it) do value = true
+ redef fun read_param(it) do value = true
+end
+
+class OptionCount
+special Option
+ redef type VALUE: Int
+
+ init(help: String, names: String...) do init_opt(help, 0, names)
+
+ redef fun read_param(it) do value += 1
end
# Option with one mandatory parameter
class OptionParameter
special Option
end
# Option with one mandatory parameter
class OptionParameter
special Option
- protected meth convert(str: String): VALUE is abstract
+ protected fun convert(str: String): VALUE is abstract
- redef meth read_param(it)
+ redef fun read_param(it)
do
do
- assert context != null
if it.is_ok then
value = convert(it.item)
it.next
if it.is_ok then
value = convert(it.item)
it.next
@@
-118,35
+125,37
@@
end
class OptionString
special OptionParameter
class OptionString
special OptionParameter
- redef type VALUE: String
+ redef type VALUE: nullable String
init(help: String, names: String...) do init_opt(help, null, names)
init(help: String, names: String...) do init_opt(help, null, names)
- redef meth convert(str) do return str
+ redef fun convert(str) do return str
end
class OptionEnum
special OptionParameter
redef type VALUE: Int
end
class OptionEnum
special OptionParameter
redef type VALUE: Int
- attr _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
do
- assert enum != null and 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
end
- redef meth convert(str)
+ redef fun convert(str)
do
do
- var id = _enum.index_of(str)
+ var id = _values.index_of(str)
return id
end
return id
end
- redef meth pretty_default
+ fun value_name: String = _values[value]
+
+ redef fun pretty_default
do
if default_value != null then
do
if default_value != null then
- return " ({_enum[default_value]})"
+ return " ({_values[default_value.as(not null)]})"
else
return ""
end
else
return ""
end
@@
-159,7
+168,7
@@
special OptionParameter
init(help: String, default: Int, names: String...) do init_opt(help, default, names)
init(help: String, default: Int, names: String...) do init_opt(help, default, names)
- redef meth convert(str) do return str.to_i
+ redef fun convert(str) do return str.to_i
end
class OptionArray
end
class OptionArray
@@
-172,8
+181,8
@@
special OptionParameter
init_opt(help, _values, names)
end
init_opt(help, _values, names)
end
- attr _values: Array[String]
- redef meth convert(str)
+ var _values: Array[String]
+ redef fun convert(str)
do
_values.add(str)
return _values
do
_values.add(str)
return _values
@@
-181,12
+190,12
@@
special OptionParameter
end
class OptionContext
end
class OptionContext
- readable attr _options: Array[Option]
- readable attr _rest: Array[String]
+ readable var _options: Array[Option]
+ readable var _rest: Array[String]
- attr _optmap: Map[String, Option]
+ var _optmap: Map[String, Option]
- meth usage
+ fun usage
do
var lmax = 1
for i in _options do
do
var lmax = 1
for i in _options do
@@
-203,13
+212,13
@@
class OptionContext
end
# Parse ans assign options everywhere is the argument list
end
# Parse ans assign options everywhere is the argument list
- meth parse(argv: Collection[String])
+ fun parse(argv: Collection[String])
do
var it = argv.iterator
parse_intern(it)
end
do
var it = argv.iterator
parse_intern(it)
end
- protected meth parse_intern(it: Iterator[String])
+ protected fun parse_intern(it: Iterator[String])
do
var parseargs = true
build
do
var parseargs = true
build
@@
-234,10
+243,9
@@
class OptionContext
end
end
end
end
- meth add_option(opts: Option...)
+ fun add_option(opts: Option...)
do
for opt in opts do
do
for opt in opts do
- opt.context = self
_options.add(opt)
end
end
_options.add(opt)
end
end
@@
-249,7
+257,7
@@
class OptionContext
_rest = new Array[String]
end
_rest = new Array[String]
end
- private meth build
+ private fun build
do
for o in _options do
for n in o.names do
do
for o in _options do
for n in o.names do