Форум сайта python.su
изучаю pyparsing с целью разбора sql.
название таблицы определяю как:
tableName = Optional('`') + Group( ident + Optional( "." + ident )).setResultsName( "tables" ) + Optional ('`')
Офлайн
а стоит его изучать?
может регуляркой проще?
c pyparser можно очень быстро упереться в проблемы производительности
Офлайн
мне кажется, что pyparsing это попытка использовать принципы формальной грамматики и уже за это стоит в нём разобраться
регуляркой не пробовал, да и не смотрел ещё, что могут регулярки в python. (пользовал только в php)
даже если они окажутся очень похожи с php, то неизвестно, сколько времени займёт создание собственного класса, который бы преобразовывал строку sql запроса в объект.
проблема производительности в текущей задаче третьестепенна.
Офлайн
как вариант можно:
tName = Group( ident + Optional( "." + ident )).setResultsName( "tables" )
tableName = ( tName | '"'+ tName + '"' )
Офлайн