On 11/25/2014 07:54 PM, Ben Finney wrote:
Tim Daneliuk <tun...@tundraware.com> writes:
Here's the problem: Determine is the string S appears *outside* or
*inside* any such quotation.
This is a problem for parsing text. There is no general, simple
solution.
If someone tries to convince you they have one, be highly suspicious: it
will either be not general, or not simple, or neither simple nor general.
I know lots of ugly/complicated/heavyweight ways to solve this, but
I'm wondering if any of you geniuses have a pythonic/elegant/short
algo that solves this.
I would recommend one of the following, in descending order of
preference:
* Try very hard to change the requirements so that the input must be in
a mature well-known format for which there are *existing*, maintained,
reliable parsers. Use those instead of rolling your own.
* If that fails, then: Try very hard to drastically simplify the
specified input format so that every possible input is either
obviously invalid, or obviously has exactly one meaning.
* If that fails, then: Bite the bullet and acknowledge you will be
entering the complexities of parsing text. Use a mature library for
writing your parser; don't attempt to write a parsing library
yourself. *This is the worst option*; changing the requirements for
input will be much less pain than this.
In this case, I am not trying to write a fullblown language or recover
from syntax errors. Here's a usecase - I want to know whether I need
to use a sudo password when the user passes a command on the command line
of a program:
someprog.py uname && sudo cat /etc/sudoers
vs.
someprog.py uname && echo "sudo cat /etc/suoders"
In the first instance, I need the sudo passoword, in the second I don't.
--
----------------------------------------------------------------------------
Tim Daneliuk tun...@tundraware.com
PGP Key: http://www.tundraware.com/PGP/
--
https://mail.python.org/mailman/listinfo/python-list