Tag: pyparsing

Pyparsing:空格有时很重要,有时不重要

我想为包含多个部分的文件(如下面的PARAGRAPH)创build一个语法。 一节以其关键字(例如PARAGRAPH)开头,后面跟着一个标题(标题在这里),其内容在下面的行上,一行内容是该行的一行。 就像它是一个表头,行和列。 在下面的例子(tablefile)中,我将限制部分有一列和一行。 表格文件自上而下的BNF: tablefile := paragraph* paragraph := PARAGRAPH title CR TAB content title, content := \w+ Pyparsing语法: 因为我需要换行和制表符来处理,所以我需要设置默认的空格为“”。 def grammar(): ''' Bottom-up grammar definition ''' ParserElement.setDefaultWhitespaceChars(' ') TAB = White("\t").suppress() CR = LineEnd().setName("Carriage Return").suppress() PARAGRAPH = 'PARAGRAPH' title = Word(alphas) content = Word(alphas) paragraph = (PARAGRAPH + title + CR + TAB […]

用PythonparsingSQL

我想在非关系数据存储上创build一个SQL接口。 非关系数据存储,但以关系方式访问数据是有意义的。 我正在研究使用ANTLR生成一个代表SQL作为关系代数expression式的AST。 然后通过评估/行走树来返回数据。 我从来没有实现过一个parsing器,因此我想就如何最好地实现SQLparsing器和评估器提供一些build议。 上面描述的方法是否正确? 还有其他的工具/库我应该看看? 像PLY或Pyparsing一样 。 指向将帮助我的文章,书籍或源代码是赞赏。 更新: 我使用pyparsing实现了一个简单的SQLparsing器。 结合对我的数据存储实现关系操作的Python代码,这非常简单。 正如我在其中一个评论中所说的那样,这个练习的重点是使数据可用于报告引擎。 要做到这一点,我可能需要实现一个ODBC驱动程序。 这可能是很多工作。