mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
parser: check (mut f Foo)
syntax
This commit is contained in:
@@ -100,27 +100,27 @@ pub fn new_flag_parser(args []string) &FlagParser {
|
||||
}
|
||||
|
||||
// change the application name to be used in 'usage' output
|
||||
pub fn (fs mut FlagParser) application(name string) {
|
||||
pub fn (mut fs FlagParser) application(name string) {
|
||||
fs.application_name = name
|
||||
}
|
||||
|
||||
// change the application version to be used in 'usage' output
|
||||
pub fn (fs mut FlagParser) version(vers string) {
|
||||
pub fn (mut fs FlagParser) version(vers string) {
|
||||
fs.application_version = vers
|
||||
}
|
||||
|
||||
// change the application version to be used in 'usage' output
|
||||
pub fn (fs mut FlagParser) description(desc string) {
|
||||
pub fn (mut fs FlagParser) description(desc string) {
|
||||
fs.application_description = desc
|
||||
}
|
||||
|
||||
// in most cases you do not need the first argv for flag parsing
|
||||
pub fn (fs mut FlagParser) skip_executable() {
|
||||
pub fn (mut fs FlagParser) skip_executable() {
|
||||
fs.args.delete(0)
|
||||
}
|
||||
|
||||
// private helper to register a flag
|
||||
fn (fs mut FlagParser) add_flag(name string, abbr byte, usage string, desc string) {
|
||||
fn (mut fs FlagParser) add_flag(name string, abbr byte, usage string, desc string) {
|
||||
fs.flags << Flag{
|
||||
name: name,
|
||||
abbr: abbr,
|
||||
@@ -138,7 +138,7 @@ fn (fs mut FlagParser) add_flag(name string, abbr byte, usage string, desc strin
|
||||
//
|
||||
// - the name, usage are registered
|
||||
// - found arguments and corresponding values are removed from args list
|
||||
fn (fs mut FlagParser) parse_value(longhand string, shorthand byte) []string {
|
||||
fn (mut fs FlagParser) parse_value(longhand string, shorthand byte) []string {
|
||||
full := '--$longhand'
|
||||
mut found_entries := []string{}
|
||||
mut to_delete := []int{}
|
||||
@@ -190,7 +190,7 @@ fn (fs mut FlagParser) parse_value(longhand string, shorthand byte) []string {
|
||||
// special: it is allowed to define bool flags without value
|
||||
// -> '--flag' is parsed as true
|
||||
// -> '--flag' is equal to '--flag=true'
|
||||
fn (fs mut FlagParser) parse_bool_value(longhand string, shorthand byte) ?string {
|
||||
fn (mut fs FlagParser) parse_bool_value(longhand string, shorthand byte) ?string {
|
||||
full := '--$longhand'
|
||||
for i, arg in fs.args {
|
||||
if arg == '--' {
|
||||
@@ -230,7 +230,7 @@ fn (fs mut FlagParser) parse_bool_value(longhand string, shorthand byte) ?string
|
||||
|
||||
// bool_opt returns an optional that returns the value associated with the flag.
|
||||
// In the situation that the flag was not provided, it returns null.
|
||||
pub fn (fs mut FlagParser) bool_opt(name string, abbr byte, usage string) ?bool {
|
||||
pub fn (mut fs FlagParser) bool_opt(name string, abbr byte, usage string) ?bool {
|
||||
fs.add_flag(name, abbr, usage, '<bool>')
|
||||
parsed := fs.parse_bool_value(name, abbr) or {
|
||||
return error("parameter '$name' not provided")
|
||||
@@ -245,7 +245,7 @@ pub fn (fs mut FlagParser) bool_opt(name string, abbr byte, usage string) ?bool
|
||||
// the default value is returned
|
||||
// version with abbr
|
||||
//TODO error handling for invalid string to bool conversion
|
||||
pub fn (fs mut FlagParser) bool(name string, abbr byte, bdefault bool, usage string) bool {
|
||||
pub fn (mut fs FlagParser) bool(name string, abbr byte, bdefault bool, usage string) bool {
|
||||
value := fs.bool_opt(name, abbr, usage) or {
|
||||
return bdefault
|
||||
}
|
||||
@@ -254,7 +254,7 @@ pub fn (fs mut FlagParser) bool(name string, abbr byte, bdefault bool, usage str
|
||||
|
||||
// int_multi returns all instances of values associated with the flags provided
|
||||
// In the case that none were found, it returns an empty array.
|
||||
pub fn (fs mut FlagParser) int_multi(name string, abbr byte, usage string) []int {
|
||||
pub fn (mut fs FlagParser) int_multi(name string, abbr byte, usage string) []int {
|
||||
fs.add_flag(name, abbr, usage, '<multiple ints>')
|
||||
parsed := fs.parse_value(name, abbr)
|
||||
mut value := []int{}
|
||||
@@ -266,7 +266,7 @@ pub fn (fs mut FlagParser) int_multi(name string, abbr byte, usage string) []int
|
||||
|
||||
// int_opt returns an optional that returns the value associated with the flag.
|
||||
// In the situation that the flag was not provided, it returns null.
|
||||
pub fn (fs mut FlagParser) int_opt(name string, abbr byte, usage string) ?int {
|
||||
pub fn (mut fs FlagParser) int_opt(name string, abbr byte, usage string) ?int {
|
||||
fs.add_flag(name, abbr, usage, '<int>')
|
||||
parsed := fs.parse_value(name, abbr)
|
||||
if parsed.len == 0 {
|
||||
@@ -282,7 +282,7 @@ pub fn (fs mut FlagParser) int_opt(name string, abbr byte, usage string) ?int {
|
||||
// the default value is returned
|
||||
// version with abbr
|
||||
//TODO error handling for invalid string to int conversion
|
||||
pub fn (fs mut FlagParser) int(name string, abbr byte, idefault int, usage string) int {
|
||||
pub fn (mut fs FlagParser) int(name string, abbr byte, idefault int, usage string) int {
|
||||
value := fs.int_opt(name, abbr, usage) or {
|
||||
return idefault
|
||||
}
|
||||
@@ -291,7 +291,7 @@ pub fn (fs mut FlagParser) int(name string, abbr byte, idefault int, usage strin
|
||||
|
||||
// float_multi returns all instances of values associated with the flags provided
|
||||
// In the case that none were found, it returns an empty array.
|
||||
pub fn (fs mut FlagParser) float_multi(name string, abbr byte, usage string) []f64 {
|
||||
pub fn (mut fs FlagParser) float_multi(name string, abbr byte, usage string) []f64 {
|
||||
fs.add_flag(name, abbr, usage, '<multiple floats>')
|
||||
parsed := fs.parse_value(name, abbr)
|
||||
mut value := []f64{}
|
||||
@@ -303,7 +303,7 @@ pub fn (fs mut FlagParser) float_multi(name string, abbr byte, usage string) []f
|
||||
|
||||
// float_opt returns an optional that returns the value associated with the flag.
|
||||
// In the situation that the flag was not provided, it returns null.
|
||||
pub fn (fs mut FlagParser) float_opt(name string, abbr byte, usage string) ?f64 {
|
||||
pub fn (mut fs FlagParser) float_opt(name string, abbr byte, usage string) ?f64 {
|
||||
fs.add_flag(name, abbr, usage, '<float>')
|
||||
parsed := fs.parse_value(name, abbr)
|
||||
if parsed.len == 0 {
|
||||
@@ -319,7 +319,7 @@ pub fn (fs mut FlagParser) float_opt(name string, abbr byte, usage string) ?f64
|
||||
// the default value is returned
|
||||
// version with abbr
|
||||
//TODO error handling for invalid string to float conversion
|
||||
pub fn (fs mut FlagParser) float(name string, abbr byte, fdefault f64, usage string) f64 {
|
||||
pub fn (mut fs FlagParser) float(name string, abbr byte, fdefault f64, usage string) f64 {
|
||||
value := fs.float_opt(name, abbr, usage) or {
|
||||
return fdefault
|
||||
}
|
||||
@@ -328,14 +328,14 @@ pub fn (fs mut FlagParser) float(name string, abbr byte, fdefault f64, usage str
|
||||
|
||||
// string_multi returns all instances of values associated with the flags provided
|
||||
// In the case that none were found, it returns an empty array.
|
||||
pub fn (fs mut FlagParser) string_multi(name string, abbr byte, usage string) []string {
|
||||
pub fn (mut fs FlagParser) string_multi(name string, abbr byte, usage string) []string {
|
||||
fs.add_flag(name, abbr, usage, '<multiple floats>')
|
||||
return fs.parse_value(name, abbr)
|
||||
}
|
||||
|
||||
// string_opt returns an optional that returns the value associated with the flag.
|
||||
// In the situation that the flag was not provided, it returns null.
|
||||
pub fn (fs mut FlagParser) string_opt(name string, abbr byte, usage string) ?string {
|
||||
pub fn (mut fs FlagParser) string_opt(name string, abbr byte, usage string) ?string {
|
||||
fs.add_flag(name, abbr, usage, '<string>')
|
||||
parsed := fs.parse_value(name, abbr)
|
||||
if parsed.len == 0 {
|
||||
@@ -350,14 +350,14 @@ pub fn (fs mut FlagParser) string_opt(name string, abbr byte, usage string) ?str
|
||||
// else
|
||||
// the default value is returned
|
||||
// version with abbr
|
||||
pub fn (fs mut FlagParser) string(name string, abbr byte, sdefault string, usage string) string {
|
||||
pub fn (mut fs FlagParser) string(name string, abbr byte, sdefault string, usage string) string {
|
||||
value := fs.string_opt(name, abbr, usage) or {
|
||||
return sdefault
|
||||
}
|
||||
return value
|
||||
}
|
||||
|
||||
pub fn (fs mut FlagParser) limit_free_args_to_at_least(n int) {
|
||||
pub fn (mut fs FlagParser) limit_free_args_to_at_least(n int) {
|
||||
if n > MAX_ARGS_NUMBER {
|
||||
panic('flag.limit_free_args_to_at_least expect n to be smaller than $MAX_ARGS_NUMBER')
|
||||
}
|
||||
@@ -367,7 +367,7 @@ pub fn (fs mut FlagParser) limit_free_args_to_at_least(n int) {
|
||||
fs.min_free_args = n
|
||||
}
|
||||
|
||||
pub fn (fs mut FlagParser) limit_free_args_to_exactly(n int) {
|
||||
pub fn (mut fs FlagParser) limit_free_args_to_exactly(n int) {
|
||||
if n > MAX_ARGS_NUMBER {
|
||||
panic('flag.limit_free_args_to_exactly expect n to be smaller than $MAX_ARGS_NUMBER')
|
||||
}
|
||||
@@ -380,7 +380,7 @@ pub fn (fs mut FlagParser) limit_free_args_to_exactly(n int) {
|
||||
|
||||
// this will cause an error in finalize() if free args are out of range
|
||||
// (min, ..., max)
|
||||
pub fn (fs mut FlagParser) limit_free_args(min, max int) {
|
||||
pub fn (mut fs FlagParser) limit_free_args(min, max int) {
|
||||
if min > max {
|
||||
panic('flag.limit_free_args expect min < max, got $min >= $max')
|
||||
}
|
||||
@@ -388,7 +388,7 @@ pub fn (fs mut FlagParser) limit_free_args(min, max int) {
|
||||
fs.max_free_args = max
|
||||
}
|
||||
|
||||
pub fn (fs mut FlagParser) arguments_description(description string){
|
||||
pub fn (mut fs FlagParser) arguments_description(description string){
|
||||
fs.args_description = description
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user