Re: Args with multiple identical keywords
Sascha Alexander Jopen <[email protected]> Wed, 08 Aug 2012 12:49:49 +0200
| Newsgroups | gmane.network.routing.click |
|---|---|
| Message-ID | <[email protected]> |
Thank you Eddie. This is exactly what i was looking for. Sascha On 08/08/12 04:57, Eddie Kohler wrote: > Hi Sascha, > > This is a good point. Unfortunately, the different argument order in > read_all_with was important for hidden reasons, specifically > EtherAddressArg with an 'unsigned char *' argument. Furthermore the > IPAddressArg::parse function for vectors actually parses a SINGLE > SPACE-SEPARATED argument; it doesn't work for multiple arguments. > > I checked in a number of changes that should fix this issue. The changes > also add a new "Args::read_all()" method, which calls a parser once per > argument and collects the results in a vector. > > Hope this is useful. > Eddie > > > On 8/7/12 7:44 AM, Sascha Alexander Jopen wrote: >> Hello, >> >> while using read_all_with() i found different parse method signatures in >> the parsers AnyArg and IPAddressArg for parsing into Vectors. I propose >> to change the parse() signature of AnyArg for Vectors, as well as the >> parser call in base_read_all_with() to have the same order of the >> arguments as all other parse() methods. This may break existing custom >> parsers, however. >> >> You can find the necessary changes in the attached patch, if you think >> this is a reasonable change. >> >> Regards, >> Sascha >> >> >> On 07/30/12 19:37, Eddie Kohler wrote: >>> Yes, try Args::read_all_with(). >>> >>> Eddie >>> >>> >>> On Mon, Jul 30, 2012 at 7:35 AM, Sascha Alexander Jopen >>> <[email protected]> wrote: >>>> Hey, >>>> >>>> is it possible to parse argument lists containing the same keyword >>>> multiple times, having each occurence of the keyword values assigned to >>>> another variable? >>>> >>>> For example, would like to parse a configuration like this: >>>> >>>> SomeElement(FIRSTKEYWORD 1, FIRSTKEYWORD 2, ..., SECONDKEYWORD a, >>>> SECONDKEYWORD b, ...); >>>> >>>> Currently only the last value of a keyword group is parsed and returned >>>> as a result after consume() and all additional identical keyword >>>> arguments are removed from the configuration string. >>>> >>>> The only solution i see so far is having a single keyword and >>>> concatenating all values into a single argument to this keyword. This >>>> keyword is then parsed as a string, splitting the string and passing >>>> the >>>> parts to additional argument parsers of the right type. >>>> >>>> Does anybody know a better solution, which can directly be handled by >>>> the argument parser? >>>> >>>> Regards, >>>> Sascha >>>> _______________________________________________ >>>> click mailing list >>>> [email protected] >>>> https://amsterdam.lcs.mit.edu/mailman/listinfo/click >>