Я делаю грамматику с использованием Pyparsing
и хочу, чтобы она анализировала все вставки, даже те, которые имеют дату.Я не понимаю, как сделать quotedStrings
целым блоком.
ident = Word( alphas, alphanums + "_$" ).setName("identifier")
number = Word(nums)
quotedString = "'" + delimitedList(number | ident , ".", combine=True) + "'"
quotedStringList = Group(delimitedList(quotedString))
insert_statement <<= (INSERT + INTO + tableNameList + VALUES + delimitedList(openingparenthese + quotedStringList + closingparenthese) + Optional(endLine))
data = "INSERT INTO test VALUES('2008-07-28 00:00:05', 'a');"
print (data, "\n", insert_statement.parseString( data ))
Я ожидаю получить что-то вроде:
['insert', 'into', ['test'], 'values', '(', ["'", '2008-07-28 00:00:05', "'", "'", 'a', "'"], ')', ';']
Но я получаю только:
Expected "'"