[Tutor] shlex parsing
Karim
karim.liateni at free.fr
Thu Jul 28 00:15:57 CEST 2011
On 07/28/2011 12:11 AM, Dan Stromberg wrote:
>
> You could probably use a recursive descent parser with the standard
> library.
>
> But if your management is OK with pyparsing, that might be easier, and
> a bit more clear as well.
Yes, I thought to use str method partition in a recursive way but using
pyParsing still be easer.
Thanks
Cheers
>
> On Wed, Jul 27, 2011 at 2:08 PM, Karim <karim.liateni at free.fr
> <mailto:karim.liateni at free.fr>> wrote:
>
>
> Thank you Dan for answering.
>
> I ended with this and gave up with shlex:
>
> split = ['-option1', '[get_rule', 'A1', 'B2]', '-option2', '$VAR',
> '-option3', 'TAG']
>
> procedure_found = False
> result = []
>
> for token in split:
> if not token.startswith('[') and not token.endswith(']') and
> not procedure_found:
> result.append(token)
> elif token.startswith('['):
> procedure_found = True
> _token = token
> elif token.endswith(']'):
> procedure_found = False
> _token += ' ' + token
> result.append(_token)
> else:
> _token += ' ' + token
>
> print split
> print result
>
> which gives the desired values:
>
> ['-option1', '[get_rule', 'A1', 'B2]', '-option2', '$VAR',
> '-option3', 'TAG']
> ['-option1', '[get_rule A1 B2]', '-option2', '$VAR', '-option3',
> 'TAG']
>
>
> Sure pyParsing seems to be pretty simple but my constraint is to use
> standard lib (at maximum). To bad it is not part of python
> standard libs.
> On the other hand, I will have to regroup expression like
> '-option1 $VAL == $CONSTRAINT'
> in ['-option1', '$VAL == $CONSTRAINT'].
>
> So it seems that I have no others choicse and have to use a parser
> like pyParsing.
>
> Regards
> Karim
>
>
> On 07/27/2011 10:44 PM, Dan Stromberg wrote:
>>
>> I've not used the shlex module, but this feels more like an issue
>> to address with a parser than for a lexical analyzer - or perhaps
>> even both, since you're splitting on whitespace sometimes, and
>> matching square brackets sometimes.
>>
>> I've used pyparsing for stuff a bit similar to this.
>>
>> Or here's a list:
>> http://wiki.python.org/moin/LanguageParsing
>>
>> On Wed, Jul 27, 2011 at 12:30 PM, Karim <karim.liateni at free.fr
>> <mailto:karim.liateni at free.fr>> wrote:
>>
>>
>> Hello All,
>>
>> I would like to parse this TCL command line with shlex:
>>
>> '-option1 [get_rule A1 B2] -option2 $VAR -option3 TAG'
>>
>> And I want to get the splitted list:
>>
>> ['-option1', '[get_rule A1 B2]', '-option2', '$VAR',
>> '-option3', 'TAG']
>>
>> Then I will gather in tuple 2 by 2 the arguments.
>>
>> I tried to the shlec properties attributes 'quotes',
>> 'whitespace', etc...
>>
>> But I make 'choux blanc'.
>>
>> If somebody has complex experiences with this module I am in.
>>
>> Cheers
>> Karim
>> --
>> http://mail.python.org/mailman/listinfo/python-list
>>
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20110728/2fd6c8c8/attachment.html>
More information about the Tutor
mailing list