- 简介
简介
ANTLR是一个有力的用于读,处理,执行,翻译结构化文本或者二进制文件的解析生成器。它被广泛的使用在编译语言,工具和框架中。通过一个语法,ANTLR可以生成一个能够编译和走通编译树的解析(parser)。
-
使用入门
- 安装Java环境。Antlr是使用Java开发的,所以这个是需要的。
到这个地方下载Antlr工具包antlr-4.1-complete.jar。我这里用的是版本4.
- 把包放在/usr/local/lib路径下,并设置alias环境变量.
这里顺便把CLASSPATH环境变量设置,为以后编译用。
export CLASSPATH=.:/usr/local/lib/antlr-4.1-complete.jar:$CLASSPATH
alias antlr4='java -jar /usr/local/lib/antlr-4.1-complete.jar'
alias grun='java org.antlr.v4.runtime.misc.TestRig'
- 编辑文件Hello.g4
// Define a grammar called Hello
grammar Hello;
r : 'hello'ID ; // match keyword hello followed by an identifier
ID : [a-z]+ ; // match lower-case identifiers
WS : [ \t\r\n]+ -> skip ; // skip spaces, tabs, newlines
- 运行程序antlr4 Hello.g4。生成parser和lexer.
- 编译antlr生成的代码
javac*.java
- 运行程序
$ grun Hello r -tree
hello parrt
^D
(r hello parrt)
(That ^D means EOF on unix; it's ^Z in Windows.) The -tree option prints the parse tree in LISP notation.
结果有下列几种输出(还有未列出):
-tokens prints out the token stream.
-tree prints out the parse tree in LISP form.
-gui displays the parse tree visually in a dialog box.
-psfile.ps generates a visual representation of the parse tree in PostScript and
stores it in file.ps. The parse tree figures in this chapter were generated
with -ps.
-
In Big Picture
-
一些概念
Interpreter:解释执行
Translator:翻译程序,由一种语言翻译为另一种语言
Parser / syntax analyzers:根据语法等识别程序
Syntax:句法
Grammar:语法
Separate stages 分割语句
根据单词读入语句,然后和字典中的单词做对比。
Lexical analysis / simply tokenizing :分词
Lexer:词法分析程序
相关推荐
antlr4 hello world。antlr4 hello world。antlr4 hello world。antlr4 hello world
2004年第3期 程序员 中的文章,教你从头到尾实现一个计算器。ANTLR实现计算器 ANTLR入门
Antlr入门介绍小demo
ANTLR入门 中英文 Terence Parr 程序员 2004 马维达 译 原文: An Introduction To ANTLR
antlr入门,用于在学习编译原理课程和做词法分析,语法分析时有用。
ANTLR3.0简单编译入门.pdf,学习antlr很好的资源
ANTLR入门详细教程定稿.pdf
Antlr入门详解 中国知网论文:ANRLR安装、使用、文法详解
Antlr4指南 权威介绍 学习教程
NULL 博文链接:https://xinglijun1973.iteye.com/blog/1906811
ANTLR之"Hello World",是ANTLR的入门。
Antlr 中有主要类有两种(其实还有一种 TreeLexer ) Lexer: 文法分析器类。主要用于把读入的字节流根据规则分段。既把长面条根据你要的尺寸切成一段一段:)并不对其作任何修改。 Parser: 解析器类。...
ANTLR 4有哪些神奇之处ANTLR 4引入了一些新功能,降低了入门门槛,使得语法和语言类应用程序的开发更加容易。最重要的新特性在于,ANTLR 4几乎能够处理任何语法(除了间接左递归,稍后会提到)。在ANTLR将你的语法...
Antlr入门详细教程.doc 利用ANTLR生成C 描述的分析程序.htm 使用 Antlr 处理文本.htm 使用 Antlr 开发领域语言.htm 强悍的ANTLR Lexer.htm a little madness » Blog Archive » ANTLR By Example Part 1 The ...
ANTLR 编译器入门范例,其中包含了20多套样本,200多个文件.
教程定位为帮助零基础的初学者入门到掌握编译前端,为熟悉antlr的人,提供一些问题备忘录,以及共享一些对antlr本身设计的看法。希望能对您有所帮助。产品的开发需要,对词法语法解析工具选型,选了几个工具,javacc...
Antlr的入门指导,英文版,很详细,包括工具的使用,安装,以及生成文件的解读
#Antlr4ide 示例 这是一个使用的示例项目。 ##Pre-requisites 按照安装 Antlr4ide。 注意:如果您使用的是 java 8,则在运行 antlr 时可能会出现错误。 截至撰写时(2015 年 2 月),antlr 需要 java7 并且无法...
:warning: 从4.5.0-alpha003版本开始,不再需要用户安装Java运行时才能使用ANTLR 4编译.NET应用程序。但是,安装Java将大大提高代码生成过程的性能。 强烈建议使用此功能,尤其是在将后台代码生成用于IntelliSense...