implement more parsers
This commit is contained in:
@@ -15,8 +15,8 @@ sealed class Argument<T : Any>(
|
||||
}
|
||||
|
||||
class OrElse<T : Any>(
|
||||
val other: T,
|
||||
parser: Parser<T>,
|
||||
val other: T,
|
||||
) : Argument<T>(parser) {
|
||||
override val required: Boolean
|
||||
get() = false
|
||||
@@ -41,7 +41,7 @@ sealed class Argument<T : Any>(
|
||||
Required(StringParser)
|
||||
|
||||
fun stringOrElse(other: String) =
|
||||
OrElse(other, StringParser)
|
||||
OrElse(StringParser, other)
|
||||
|
||||
fun stringOrNull() =
|
||||
OrNull(StringParser)
|
||||
@@ -53,7 +53,7 @@ sealed class Argument<T : Any>(
|
||||
Required(IntParser)
|
||||
|
||||
fun intOrElse(other: Int) =
|
||||
OrElse(other, IntParser)
|
||||
OrElse(IntParser, other)
|
||||
|
||||
fun intOrNull() =
|
||||
OrNull(IntParser)
|
||||
@@ -61,11 +61,47 @@ sealed class Argument<T : Any>(
|
||||
fun ints() =
|
||||
Variable(IntParser)
|
||||
|
||||
fun long() =
|
||||
Required(LongParser)
|
||||
|
||||
fun longOrElse(other: Long) =
|
||||
OrElse(LongParser, other)
|
||||
|
||||
fun longOrNull() =
|
||||
OrNull(LongParser)
|
||||
|
||||
fun longs() =
|
||||
Variable(LongParser)
|
||||
|
||||
fun float() =
|
||||
Required(FloatParser)
|
||||
|
||||
fun floatOrElse(other: Float) =
|
||||
OrElse(FloatParser, other)
|
||||
|
||||
fun floatOrNull() =
|
||||
OrNull(FloatParser)
|
||||
|
||||
fun floats() =
|
||||
Variable(FloatParser)
|
||||
|
||||
fun double() =
|
||||
Required(DoubleParser)
|
||||
|
||||
fun doubleOrElse(other: Double) =
|
||||
OrElse(DoubleParser, other)
|
||||
|
||||
fun doubleOrNull() =
|
||||
OrNull(DoubleParser)
|
||||
|
||||
fun doubles() =
|
||||
Variable(DoubleParser)
|
||||
|
||||
fun boolean() =
|
||||
Required(BooleanParser)
|
||||
|
||||
fun booleanOrElse(other: Boolean) =
|
||||
OrElse(other, BooleanParser)
|
||||
OrElse(BooleanParser, other)
|
||||
|
||||
fun booleanOrNull() =
|
||||
OrNull(BooleanParser)
|
||||
@@ -77,12 +113,24 @@ sealed class Argument<T : Any>(
|
||||
Required(enumParser<T>())
|
||||
|
||||
inline fun <reified T : Enum<T>> enumOrElse(other: T) =
|
||||
OrElse(other, enumParser<T>())
|
||||
OrElse(enumParser<T>(), other)
|
||||
|
||||
inline fun <reified T : Enum<T>> enumOrNull() =
|
||||
OrNull(enumParser<T>())
|
||||
|
||||
inline fun <reified T : Enum<T>> enums() =
|
||||
Variable(enumParser<T>())
|
||||
|
||||
fun regex() =
|
||||
Required(RegexParser)
|
||||
|
||||
fun regexOrElse(other: Regex) =
|
||||
OrElse(RegexParser, other)
|
||||
|
||||
fun regexOrNull() =
|
||||
OrNull(RegexParser)
|
||||
|
||||
fun regexs() =
|
||||
Variable(RegexParser)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -104,6 +104,42 @@ sealed class Option<T : Any>(
|
||||
fun ints(vararg names: String) =
|
||||
Variable(IntParser, names.asList())
|
||||
|
||||
fun long(vararg names: String) =
|
||||
Required(LongParser, names.asList())
|
||||
|
||||
fun longOrElse(vararg names: String, other: Long) =
|
||||
OrElse(LongParser, names.asList(), other)
|
||||
|
||||
fun longOrNull(vararg names: String) =
|
||||
OrNull(LongParser, names.asList())
|
||||
|
||||
fun longs(vararg names: String) =
|
||||
Variable(LongParser, names.asList())
|
||||
|
||||
fun float(vararg names: String) =
|
||||
Required(FloatParser, names.asList())
|
||||
|
||||
fun floatOrElse(vararg names: String, other: Float) =
|
||||
OrElse(FloatParser, names.asList(), other)
|
||||
|
||||
fun floatOrNull(vararg names: String) =
|
||||
OrNull(FloatParser, names.asList())
|
||||
|
||||
fun floats(vararg names: String) =
|
||||
Variable(FloatParser, names.asList())
|
||||
|
||||
fun double(vararg names: String) =
|
||||
Required(DoubleParser, names.asList())
|
||||
|
||||
fun doubleOrElse(vararg names: String, other: Double) =
|
||||
OrElse(DoubleParser, names.asList(), other)
|
||||
|
||||
fun doubleOrNull(vararg names: String) =
|
||||
OrNull(DoubleParser, names.asList())
|
||||
|
||||
fun doubles(vararg names: String) =
|
||||
Variable(DoubleParser, names.asList())
|
||||
|
||||
fun boolean(vararg names: String) =
|
||||
Required(BooleanParser, true, names.asList())
|
||||
|
||||
@@ -127,5 +163,17 @@ sealed class Option<T : Any>(
|
||||
|
||||
inline fun <reified T : Enum<T>> enums(vararg names: String) =
|
||||
Variable(enumParser<T>(), names.asList())
|
||||
|
||||
fun regex(vararg names: String) =
|
||||
Required(RegexParser, names.asList())
|
||||
|
||||
fun regexOrElse(vararg names: String, other: Regex) =
|
||||
OrElse(RegexParser, names.asList(), other)
|
||||
|
||||
fun regexOrNull(vararg names: String) =
|
||||
OrNull(RegexParser, names.asList())
|
||||
|
||||
fun regexs(vararg names: String) =
|
||||
Variable(RegexParser, names.asList())
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user