cyk库,包含解析上下文无关语法所需的所有工具。

grammp的Python项目详细描述


格莱美

当前版本:2.0.0

Build StatusCoverage Status

表示形式语法的包。 包含处理语法并解析它们的算法。

安装

如果您使用的是pip,只需运行以下命令。

pip install grammpy

您也可以从存储库安装包。

git clone https://github.com/PatrikValkovic/grammpy.git
cd grammpy
python setup.py install

用法

定义语法不再需要特殊工具。 你所需要的只是一个ide,你有充分的支持。

让我们用标准的python对象来定义语法。

fromgrammpyimport*fromgrammpy.transformsimportContextFree,InverseContextFreefromgrammpy.parsersimportcykclassNumber:def__init__(self,value):self.value=valuedef__hash__(self):returnhash(Number)classPlusNonterminal(Nonterminal):@propertydefvalue(self):returnself.to_rule.get_value()classPlusRule(Rule):rule=([PlusNonterminal],[PlusNonterminal,'+',PlusNonterminal])defget_value(self):child1=self.to_symbols[0]child2=self.to_symbols[2]returnchild1.value+child2.valueclassRewriteRule(Rule):fromSymbol=PlusNonterminaltoSymbol=Numberdefget_value(self):returnself.to_symbols[0].s.valueg=Grammar(terminals=[Number,'+'],nonterminals=[PlusNonterminal],rules=[PlusRule,RewriteRule],start_symbol=PlusNonterminal)ContextFree.prepare_for_cyk(g,inplace=True)root=cyk(g,[Number(5),'+',Number(3),'+',Number(8)])root=InverseContextFree.reverse_cyk_transforms(root)assertroot.value==16

文档

您可以在doc目录中阅读有关库的更多信息。

示例

您可以在examples目录中查看一些示例。


版本:2.0.0

作者:帕特里克·瓦尔科维奇

许可证:麻省理工学院

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Rest DSL路由无法启动路由,因为同一端点不允许有多个使用者   jvm有没有像JConsole或VisualVM这样的工具可以告诉我“类、对象、引用变量在java中存储在哪里?”   java为什么我的列表中的所有元素看起来都一样?   java运行时。运行shell脚本的exec无法打开文件   JPopupMenu的JMenuItem的java热键   会话在Java中被覆盖   如何在java中去除字符串中的尖锐重音?   java Mockito监视一个接口,模拟它的默认方法,获取NullPointerException   javascript如何在jquery中禁用同一时间选择   将数组列表附加到现有CSV文件,但它会附加并清除存储在Java文件中的以前的数据   java从我的jar中访问pdf文件   java Sonar issue参数必须为非Null,但标记为可为Null   java Salesforce流式API:在网络故障之后和重新订阅之前获取事件   在Java 1.8.0_65上运行Play2.0应用程序时出现playframework错误   java为什么字母的ASCII由方法自动转换。toCharArray()?   java如何知道JDialog是否关闭?   java向服务器发送POST请求,服务器的响应为null,启动   java如何设置JTable中特定单元格的值?   ImagePlus中的java保存问题