On 07/29/2011 09:24 AM, Web Dreamer wrote:
Nobody a écrit ce jeudi 28 juillet 2011 18:37 dans
<pan.2011.07.28.16.37.35.287...@nowhere.com>  :

On Thu, 28 Jul 2011 17:48:34 +0200, Web Dreamer wrote:

I would like to parse this TCL command line with shlex:

'-option1 [get_rule A1 B2] -option2 $VAR -option3 TAG'
s = s.replace('[','"[')
s = s.replace(']',']"')
Note that this approach won't work if you have nested brackets or braces.
That would require a real parser.
True,
I tried with the shlex class, but adding '[]' to a shlexobject.quotes
doesn't work.
Indeed, shlex expects an opening and closing quote to be the same, and [ is
different from ] so shlex therefore expects an opening [ to be closed with [
and not ]

My solution indeed only works as long as there are not any nested brackets.

Yeah I saw that shlex object behavior is slighty different from shlex.split() fonction. the char minus by default is taken as a individual word and in split it is not. get_token() method return '-' alone and you have to set object attributes
wordchars += '-' to have the same behavior as shlex.split().

Cheers
Karim

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to