1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/sqlliterals/pyparser.py Sat Jun 02 19:41:22 2007 +0200
1.3 @@ -0,0 +1,20 @@
1.4 +#!/usr/bin/env python
1.5 +
1.6 +from pyparsing import *
1.7 +
1.8 +class Grammar:
1.9 + def __setattr__(self, name, value):
1.10 + self.__dict__[name] = Group(value).setResultsName(name)
1.11 +
1.12 +g = Grammar()
1.13 +
1.14 +g.non_literal = OneOrMore(CharsNotIn("'"))
1.15 +g.value = ZeroOrMore(Or([Literal("''"), CharsNotIn("'")]))
1.16 +g.literal = Literal("'") + g.value + Literal("'")
1.17 +g.query = ZeroOrMore(Or([g.non_literal, g.literal]))
1.18 +g.query.leaveWhitespace()
1.19 +
1.20 +def parseString(s):
1.21 + return g.query.parseString(s)
1.22 +
1.23 +# vim: tabstop=4 expandtab shiftwidth=4