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:
Alec Thomas
2022-04-08 06:41:09 +10:00
parent 556f8b773b
commit 7c6ff10d33
3 changed files with 31 additions and 9 deletions
+8 -3
View File
@@ -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}