pyPEG

软件截图:
pyPEG
软件详细信息:
版本: 2.4.1
上传日期: 14 Apr 15
开发: Volker Birk
许可: 免费
人气: 29

Rating: 1.5/5 (Total Votes: 2)

Python是一个很好的脚本语言。它甚至让您使用它自己的解析器和编译器。这也使您可以访问不同的其他解析器用于特殊目的,如XML和字符串模板。
但有时,你可能想有自己的解析器。这是什么pyPEG的。
要获取有关发生了什么快速查看,请阅读这篇文章对如何解析任意语言,pyPEG到XML在我的博客。
什么是PEG?
PEG是指解析表达式语法。这有点像正则表达式上下文无关语言的想法;一个非常明确的解释,你会发现关于PEG的维基百科文章。
带销,你可以描述相同的语言像BNF(而且他们甚至类似)。
什么是解析器解释器?
常见的解析器不使用的PEG和自上而下的分析,但LR(n)或LL(n)和自下而上的分析。这将导致在执行解析器生成器的想法。
由于与LR(n)或LL(N)分析器,你需要计算出一个DFA第一,平时你让解析器发电机为你做这个。其结果是一个解析器实现为您的BNF语法,为所述输入。人们可以调用一个解析器生成的BNF一个编译器解析器实现。
解析器解释器不工作作为一个解释,而不应是这样的编译器。只要给你的语法作为输入,并解析语言描述出来的文字。将不会有生成的程序。
使用pyPEG
这意味着:使用pyPEG是很容易;-)如果你已经知道正则表达式,您将学习如何快速使用pyPEG。
一个小样本
举个例子:想到一个简单的语言像这样的:
功能FAK(N){
 如果(N == 0){// 0! 1定义
 返回1;
 }其他{
 回报N * FAK(N - 1);
 };
}
一个pyPEG该语言看起来像下面的代码(见示例脚本):
高清评论():返回[re.compile(R“//.*”),re.compile(“/*.*?*/”,re.S)
高清文字():返回re.compile(“*?”r'd * .d的* | | D +')
高清符号():返回re.compile(r“W +”)
DEF运算符():返回re.compile(R“+ | - | * | / | ==”)
DEF操作():返回符号,运营商,[文字,functioncall]
高清表达式():返回[文字,操作,functioncall]
与expressionlist高清():返回表达式,-1,(“,”,表达式)
高清returnstatement():return关键字(“回归”),表达
高清ifstatement():return关键字(“如果”),“(”,表达“)”,块,关键词(“其他”),块
DEF声明():返回[ifstatement,returnstatement]“;”
DEF块():返回“{”,-2,声明中,“}”
高清PARAMETERLIST():回归“(”符号,-1,(“,”符号)“。)”
高清functioncall():返回符号“(”的expressionlist“)”
高清功能():return关键字(“功能”),符号,PARAMETERLIST,块
高清simpleLanguage():返回功能

什么在此版本中是新的

  • 在这是一个清理的释放。解析的代码()和撰写()是固定的。

什么是1.4版本,新的

  • 在该版本修复了一些bug与packrat解析

什么是1.3版的新

  • 在由符号更换元组在pyAST名(名单)类,这是相当兼容,但支持在编译器后端更具描述性的代码了。

什么是在1.2版本中新的

  • 在使用Unicode错误的错误处理固定

什么在1.1版本的新

  • 在Unicode支持加入

什么是在0.46版本新

  • 在pyPEG.print_trace为True
  • 在转换pyPEG到Python 3.x的,现在可以无缝地使用2to3的
  • 在该应用可以追溯到可选的语法规则通过设置
  • 在pyPEG将输出此跟踪到stderr。

什么在0.45版本新

  • 在错误修正

什么是在0.44版本新

  • 在pyPEG现在装饰与源文件名和行每个pyAST对象号。

要求

  • 在Python中

类似的软件

Perl
Perl

17 Aug 18

IGCC
IGCC

14 Apr 15

Mumps Compiler
Mumps Compiler

28 Sep 15

显影剂的其他软件 Volker Birk

YML
YML

11 May 15

意见 pyPEG

评论没有发现
添加评论
打开图片!