文档章节

语法分析器自动生成工具一览

Y
 Y13
发布于 2016/05/14 01:39
字数 534
阅读 67
收藏 0

 

  • Lex/Yacc

  它生于Unix,是最经典的词法\语法分析器,是经典教材中的示例御用工具。现在它也支持在Windows上生成(安装环境),然而其所生成语法分析器的语言仅有C语言。

  • Flex/Bison

  与前者类似,Bison与Yacc有很高的兼容性。生成语言为C、C++和Java。

  • CoCo/R

  较早的一个语法分析器生成工具。其生成语法分析器的语言极其之多,包括C#、 Java、 C++、F#、VB.Net、Oberon等等。

  • ANTLR

  作为翻译程序的一部分,你可以使用简单的操作符和动作来参数化你的文法,使之告诉ANTLR怎样去创建抽象语法树(AST)和怎样产生输出。ANTLR知道怎样去生成识别程序,生成语法分析器的语言包括Java,C++,C#. 语法有点麻烦。

  • GOLD

  它是一个较为复杂的分析器,支持语言貌似最多。生成语言包括(官网说的):Assembly - Intel x86 、ANSI C、C#、D、Delphi、Java、Pascal、Python、Visual Basic、Visual Basic .NET、Visual C++、所有.NET语言、所有ActiveX语言。难以想象这居然是个免费的软件。

  • Grammatica

  这是一个C#和Java的语法剖析器生成器(Parser Generator或叫作编译器的编译器:Compiler Complier) 。它相对于其它一些类似的工具如yacc和ANTLR有了更好的改进。这是因为Grammatica: 
   1.创建了更好的注释和易读的源代码.
   2.拥有错误自动恢复并能够详述错误信息. 
   3.支持语法/词法测试与调试.  

  • JavaCC

  它是用JAVA开发的最受欢迎的语法分析生成器之一。它还提供JJTree等工具来帮助我们建立语法树。它还有一个用于辅助JavaCC应用程序开发的Eclipse插件.生成语法分析器语言为java。
     

      还有很多语法分析器生成工具,比如JFlex、SableC、Beaver、JTopas、Runcc、CUP、SJPT、Chaperon。但我实在是没精力一一介绍了,之前实在没想到这工具如此繁多。

© 著作权归作者所有

共有 人打赏支持
上一篇: POI
下一篇: visual C++ & Makefile
Y

Y13

粉丝 0
博文 30
码字总数 148304
作品 0
大连
高级程序员
私信 提问
lex和yacc 入门-- 计算器

lex 是自动生成词法分析器的工具,通过输入扩展名为.l的文件,输出词法分析器的C 语言代码。 flex是增强版的lex。 yacc是自动生成语法分析器的工具,通过输入扩展名为.y的文件,输出语法分析...

Jackin
2015/01/21
0
1
[转] 使用 Antlr 开发领域语言(DSL)

Antlr 简介 ANTLR 语言识别的一个工具 (ANother Tool for Language Recognition ) 是一种语言工具,它提供了一个框架,可以通过包含 Java, C++, 或 C# 动作(action)的语法描述来构造语言识...

红薯
2011/03/08
5K
5
实现一个简单的编译器

简单的说 就是语言翻译器,它一般将高级语言翻译成更低级的语言,如 GCC 可将 C/C++ 语言翻译成可执行机器语言,Java 编译器可以将 Java 源代码翻译成 Java 虚拟机可以执行的字节码。 编译器...

Yunba
2016/11/07
30
0
Lua2.4 程序分析 parser.c

这个版本的语法分析器是由工具 yacc 生成的,其相应的源文件为 lua.stx。这个不是我关注的重点,略过。 这一节这样结束有点儿寒酸,闲话几句。 yacc 的历史就不说了,yacc 类工具出现,使得程...

晓寒
2014/10/10
0
0
词法/语法分析框架--chrysanthemum

chrysanthemum (中文名“菊花”)是一个由C++写成的小巧灵活、高度可伸缩、模块化、高性能的词法/语法分析框架。 chrysanthemum 是一个纯模板库,包含头文件即可使用,且无任何第三方依赖。 ...

江浸月
2011/12/31
3K
2

没有更多内容

加载失败,请刷新页面

加载更多

用PyTorch创建一个图像分类器?So easy!(Part 1)

摘要: 本文将为你介绍为何要重用神经网络?哪部分可以重用,哪部分不可以重用。了解完这些基础概念,你就可以自行创建一个图像分类器了。 经过了几个月的学习和实践,我完成了优达学城网站上...

阿里云官方博客
11分钟前
0
0
ssh使用正确的密码登录服务器被拒绝

1、用一个普通用户登录服务器被拒绝。 2、在服务器上,tail -f /var/log/secure, 看到: Dec 19 11:03:20 mmi5 sshd[11126]: pam_tally2(sshd:auth): user carrot (1003) tally 144, deny 3 ......

gelare
11分钟前
0
0
基于腾讯AI Lab词向量进行未知词、短语向量补齐与域内相似词搜索

AI Lab开源大规模高质量中文词向量数据,800万中文词随你用,质量非常高,就是一个词向量.txt文件都有16G之多,太夸张了。。不过的确非常有特点: ⒈ 覆盖率(Coverage): 该词向量数据包含...

火力全開
13分钟前
0
0
Shiro简介——《跟我学Shiro》

1、《跟我学Shiro》PDF完结版下载 2、shiro简介——《跟我学Shiro》 3、shiro demo

近在咫尺远在天涯
14分钟前
0
0
教你一个vue小技巧,一般人我不说的

本文由云+社区发表 1. 需求 最近的项目中,需要实现在vue框架中动态渲染带提示框的单选/多选文本框,具体的效果如下图所示,在输入框聚焦时,前端组件通过接收的kv参数渲染出选项,用户点击选...

腾讯云加社区
17分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部