Python中文
首页
教程
问答
标签
搜索
登录
注册
EBNF语法分析器modu
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>你知道有一个语法分析器模块(用Ruby、Python、Javascript等编写)在给定一个标记列表和一个类似于<a href="http://en.wikipedia.org/wiki/Extended_Backus%E2%80%93Naur_Form" rel="nofollow">EBNF</a>的语法(作为简单字符串传递)时,它会返回解析后的树吗?我发现的与此最接近的是<a href="http://simpleparse.sourceforge.net/" rel="nofollow">SimpleParse</a>,这是一个不错的库,但不幸的是它使用了一步解析(没有标记化)。如果可能的话,我宁愿不使用实现与语言本身纠缠在一起的库(<a href="http://pyparsing.wikispaces.com/" rel="nofollow">pyparsing</a>,<a href="http://treetop.rubyforge.org/" rel="nofollow">treetop</a>,…)。在</p> <p>我不担心lexing/tokenization,因为有很多库可用(甚至编写自己的库也很容易),但是实现ENBF解析器并不是一项简单的任务。我检查了pythonwiki <a href="http://wiki.python.org/moin/LanguageParsing" rel="nofollow">LanguageParsing</a>并测试了其中一些,但没有任何效果(可能我忽略了我正在寻找的那个,有太多了…)</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>如果您完全熟悉Clojure,我发现<a href="https://github.com/Engelberg/instaparse" rel="nofollow">Instaparse</a>很棒。您可以在“vanilla”EBNF中以多行字符串的形式编写(或者在一个单独的文件中,它甚至将EBNF从上下文无关的语法扩展到上下文相关的语法中(尽管我没有用过那么多)。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
无法使用Django/mongoengine连接到MongoDB(身份验证失败)
7 回答
无法使用Django\u mssql\u后端迁移到外部hos
2 回答
无法使用Django&Python3.4连接到MySql
9 回答
无法使用Django+nginx上载媒体文件
10 回答
无法使用Django1.6导入名称模式
9 回答
无法使用Django1.7和mongodb登录管理站点
3 回答
无法使用Djangoadmin创建项目,进程使用了错误的路径,因为我事先安装了错误的Python
1 回答
无法使用Djangockedi验证CBV中的字段
2 回答
无法使用Djangocketditor上载图像(错误400)
10 回答
无法使用Djangocron进行函数调用
10 回答
无法使用Djangofiler djang上载文件
1 回答
无法使用Djangokronos
10 回答
无法使用Djangomssql provid
1 回答
无法使用Djangomssql连接到带有Django 1.11的MS SQL Server 2016
4 回答
无法使用Djangomssq迁移Django数据库
5 回答
无法使用Djangonox创建用户
5 回答
无法使用Djangopyodb从Django查询SQL Server
5 回答
无法使用Djangopython3ldap连接到ldap
10 回答
无法使用Djangoredis连接到redis
4 回答
无法使用Django中的FK创建新表
10 回答