fix: values that look like flags would not be parsed correctly
Specifically, when parsing into slices or maps. Fixes #290
This commit is contained in:
+8
-3
@@ -114,15 +114,20 @@ type Scanner struct {
|
||||
args []Token
|
||||
}
|
||||
|
||||
// Scan creates a new Scanner from args with untyped tokens.
|
||||
func Scan(args ...string) *Scanner {
|
||||
// ScanAsType creates a new Scanner from args with the given type.
|
||||
func ScanAsType(ttype TokenType, args ...string) *Scanner {
|
||||
s := &Scanner{}
|
||||
for _, arg := range args {
|
||||
s.args = append(s.args, Token{Value: arg})
|
||||
s.args = append(s.args, Token{Value: arg, Type: ttype})
|
||||
}
|
||||
return s
|
||||
}
|
||||
|
||||
// Scan creates a new Scanner from args with untyped tokens.
|
||||
func Scan(args ...string) *Scanner {
|
||||
return ScanAsType(UntypedToken, args...)
|
||||
}
|
||||
|
||||
// ScanFromTokens creates a new Scanner from a slice of tokens.
|
||||
func ScanFromTokens(tokens ...Token) *Scanner {
|
||||
return &Scanner{args: tokens}
|
||||
|
||||
Reference in New Issue
Block a user