public static ParserResult <object> Choose( IEnumerable <Type> types, IEnumerable <string> arguments, StringComparer nameComparer, CultureInfo parsingCulture) { return(Choose( (args, optionSpecs) => Tokenizer.Tokenize(args, name => NameLookup.Contains(name, optionSpecs, nameComparer)), types, arguments, nameComparer, parsingCulture)); }
public static ParserResult <T> Build <T>( Func <T> factory, IEnumerable <string> arguments, StringComparer nameComparer, CultureInfo parsingCulture) { return(InstanceBuilder.Build( factory, (args, optionSpecs) => Tokenizer.Tokenize(args, name => NameLookup.Contains(name, optionSpecs, nameComparer)), arguments, nameComparer, parsingCulture)); }
public static ParserResult <object> Choose( IEnumerable <Type> types, IEnumerable <string> arguments, StringComparer nameComparer, CultureInfo parsingCulture) { return(Choose( (args, optionSpecs) => { var tokens = Tokenizer.Tokenize(args, name => NameLookup.Contains(name, optionSpecs, nameComparer)); var explodedTokens = Tokenizer.ExplodeOptionList(tokens, name => NameLookup.HavingSeparator(name, optionSpecs, nameComparer)); return explodedTokens; }, types, arguments, nameComparer, parsingCulture)); }
public static ParserResult <T> Build <T>( Maybe <Func <T> > factory, IEnumerable <string> arguments, StringComparer nameComparer, CultureInfo parsingCulture) { return(Build( factory, (args, optionSpecs) => { var tokens = Tokenizer.Tokenize(args, name => NameLookup.Contains(name, optionSpecs, nameComparer)); var explodedTokens = Tokenizer.ExplodeOptionList( tokens, name => NameLookup.HavingSeparator(name, optionSpecs, nameComparer)); return explodedTokens; }, arguments, nameComparer, parsingCulture)); }
ConfigureTokenizer( StringComparer nameComparer, bool ignoreUnknownArguments, bool enableDashDash) { return((arguments, optionSpecs) => { var normalize = ignoreUnknownArguments ? toks => Tokenizer.Normalize(toks, name => NameLookup.Contains(name, optionSpecs, nameComparer) != NameLookupResult.NoOptionFound) : new Func <IEnumerable <Token>, IEnumerable <Token> >(toks => toks); var tokens = enableDashDash ? Tokenizer.PreprocessDashDash( arguments, args => Tokenizer.Tokenize(args, name => NameLookup.Contains(name, optionSpecs, nameComparer), normalize)) : Tokenizer.Tokenize(arguments, name => NameLookup.Contains(name, optionSpecs, nameComparer), normalize); var explodedTokens = Tokenizer.ExplodeOptionList(tokens, name => NameLookup.HavingSeparator(name, optionSpecs, nameComparer)); return explodedTokens; }); }