文档章节

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

Y
 Y13
发布于 2016/05/14 01:39
字数 534
阅读 55
收藏 0
点赞 2
评论 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。但我实在是没精力一一介绍了,之前实在没想到这工具如此繁多。

© 著作权归作者所有

共有 人打赏支持
Y

Y13

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

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

Jackin ⋅ 2015/01/21 ⋅ 1

[转] 使用 Antlr 开发领域语言(DSL)

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

红薯 ⋅ 2011/03/08 ⋅ 5

实现一个简单的编译器

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

Yunba ⋅ 2016/11/07 ⋅ 0

Lua2.4 程序分析 parser.c

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

晓寒 ⋅ 2014/10/10 ⋅ 0

词法/语法分析框架--chrysanthemum

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

江浸月 ⋅ 2011/12/31 ⋅ 2

Lua5.0 词法分析

语法分析器会调用词法分析器。 在语法分析之前,简单的看一下词法分析。 内存管理和 ZIO 输入在词法分析中会用到,因为它们相对比较孤立,不影响主流程的阅读。 上一个版本也看过它们了,这里...

晓寒 ⋅ 2015/09/01 ⋅ 0

词法分析器--Arsenal

目标组件: 可配置的词法分析器 可配置的LR-Parser Ray: 类C的中间语言 汇编器 相关设计,测试工具 已完成组件: 可配置的词法分析器 可配置的LR-Parser,支持SLR(1),LALR(1) 文法设计工具 ...

匿名 ⋅ 2010/09/10 ⋅ 0

MySQL · 源码分析 · 词法分析及其性能优化

Table of Contents 简介 MySQL 支持标准的 SQL 语言,具体实现的时候必然要涉及到词法分析和语法分析。早期的程序可能会优先考虑手工实现词法分析和语法分析,现在大多数场合下都会采用工具来...

阿里云RDS-数据库内核组 ⋅ 2017/02/05 ⋅ 0

如何用flex+bison写语法分析器

背景 这个星期,项目中要使用C++或C语言解析JSON格式的数据,把解析的结果放到一个通用的数据结构。这个通用的数据结构,实际上是作为web服务层(这一层大家可以认为是类似于PHP服务器或web...

costaxu ⋅ 2013/02/02 ⋅ 0

Lex和Yacc介绍

Lex: 词法分析器。 Wiki: http://zh.wikipedia.org/wiki/Lex http://en.wikipedia.org/wiki/Lexprogrammingtool 已经成为POSIX的标准了,所以一般的linux系统应该都自带了lex命令了。flex是...

shenghong ⋅ 2012/02/18 ⋅ 1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

istio 文档

https://istio.io/docs/concepts/ https://istio.io/docs/concepts/traffic-management/handling-failures/ https://istio.io/docs/concepts/traffic-management/rules-configuration/......

xiaomin0322 ⋅ 13分钟前 ⋅ 0

编程语言的作用及与操作系统和硬件的关系

一、编程语言的作用及与操作系统和硬件的关系 作用:编程语言是计算机语言,是一种程序员与计算机之间沟通的介质,通过编程语言可以使得计算机能够根据人的指令一步一步去工作,完成某种特定...

slagga ⋅ 24分钟前 ⋅ 0

runtime实现按钮点击事件

也不能说是实现吧,,,就是有点类似于RAC里边的写法,不用给btn添加另外的点击事件,就那个add...select...这样子很不友好,来看下代码: [self.btn handleControlEvent:UIControlEventTou...

RainOrz ⋅ 24分钟前 ⋅ 0

Windows系统运维转linux系统运维的经历

开篇之前,首先介绍一下我的背景把:我是一个三线城市的甲方运维。最近,在《Linux就该这么学》书籍的影响下和朋友小A(Linux运维已经三年了,工资也比我的高很多)的影响下,决定转行。最近...

linux-tao ⋅ 25分钟前 ⋅ 0

zip压缩工具,tar打包工具

zip压缩工具 zip打包工具跟前面说到的gzip,bz2,xz 工具最大的不一样是zip可以压缩目录。如果没有安装,需要使用yum install -y zip 来安装。安装完之后就可以直接使用了,跟之前提到的压缩...

李超小牛子 ⋅ 33分钟前 ⋅ 0

使用npm发布自己的npm组件包

一、注册npm账号 官网:https://www.npmjs.com/signup 注册之后需要进行邮箱验证,否则后面进行组件包发布时候会提示403错误,让进行邮箱核准。 二、本地新建一个文件夹,cd进入后使用npm i...

灰白发 ⋅ 35分钟前 ⋅ 0

010. 深入JVM学习—垃圾收集策略概览

1. 新生代可用GC策略 1. 串行GC(Serial Copying) 算法:复制(Copying)清理算法; 操作步骤: 扫描年轻代中所有存活的对象; 使用Minor GC进行垃圾回收,同时将存活对象保存到“S0”或“S...

影狼 ⋅ 35分钟前 ⋅ 0

JVM性能调优实践——JVM篇

在遇到实际性能问题时,除了关注系统性能指标。还要结合应用程序的系统的日志、堆栈信息、GClog、threaddump等数据进行问题分析和定位。关于性能指标分析可以参考前一篇JVM性能调优实践——性...

Java小铺 ⋅ 36分钟前 ⋅ 0

误关了gitlab sign-in 功能的恢复记录

本想关sign-up的,误点了sign-in 退出后登录界面提示: No authentication methods configured 一脸懵逼.. 百度后众多方案说修改application_settings 的 signin_enabled字段; 实际上新版本字段...

铂金蛋蛋 ⋅ 37分钟前 ⋅ 0

登录后,后续请求接口没有带登录cookie可能原因

1.XMLHttpRequest.withCredentials没设置好,参考https://developer.mozilla.org/zh-CN/docs/Web/API/XMLHttpRequest/withCredentials...

LM_Mike ⋅ 38分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部