`
wankunde
  • 浏览: 158247 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

ANTLR使用入门

    博客分类:
  • Hive
阅读更多
  • 简介

简介

ANTLR是一个有力的用于读,处理,执行,翻译结构化文本或者二进制文件的解析生成器。它被广泛的使用在编译语言,工具和框架中。通过一个语法,ANTLR可以生成一个能够编译和走通编译树的解析(parser)。

  1. 使用入门

  1. 安装Java环境。Antlr是使用Java开发的,所以这个是需要的。

到这个地方下载Antlr工具包antlr-4.1-complete.jar。我这里用的是版本4.

  1. 把包放在/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'

  1. 编辑文件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

  1. 运行程序antlr4 Hello.g4。生成parserlexer.
  1. 编译antlr生成的代码

javac*.java

  1. 运行程序

$ 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.

  1. In Big Picture

  1. 一些概念

Interpreter:解释执行

Translator:翻译程序,由一种语言翻译为另一种语言

Parser / syntax analyzers:根据语法等识别程序

Syntax:句法

Grammar:语法

 

Separate stages 分割语句

根据单词读入语句,然后和字典中的单词做对比。

Lexical analysis / simply tokenizing 分词

Lexer:词法分析程序

分享到:
评论

相关推荐

    antlr4入门例子

    antlr4 hello world。antlr4 hello world。antlr4 hello world。antlr4 hello world

    ANTLR实现计算器 ANTLR入门

    2004年第3期 程序员 中的文章,教你从头到尾实现一个计算器。ANTLR实现计算器 ANTLR入门

    Antlr入门介绍小demo

    Antlr入门介绍小demo

    ANTLR入门 中英文

    ANTLR入门 中英文 Terence Parr 程序员 2004 马维达 译 原文: An Introduction To ANTLR

    antlr入门 编译领域

    antlr入门,用于在学习编译原理课程和做词法分析,语法分析时有用。

    ANTLR3.0简单编译入门.pdf

    ANTLR3.0简单编译入门.pdf,学习antlr很好的资源

    ANTLR入门详细教程定稿.pdf

    ANTLR入门详细教程定稿.pdf

    Antlr入门详解

    Antlr入门详解 中国知网论文:ANRLR安装、使用、文法详解

    Antlr4指南

    Antlr4指南 权威介绍 学习教程

    antlr 五分钟入门

    NULL 博文链接:https://xinglijun1973.iteye.com/blog/1906811

    ANTLR之Hello World

    ANTLR之"Hello World",是ANTLR的入门。

    Antlr入门详细教程

    Antlr 中有主要类有两种(其实还有一种 TreeLexer )    Lexer: 文法分析器类。主要用于把读入的字节流根据规则分段。既把长面条根据你要的尺寸切成一段一段:)并不对其作任何修改。    Parser: 解析器类。...

    antlr4权威指南

     ANTLR 4有哪些神奇之处ANTLR 4引入了一些新功能,降低了入门门槛,使得语法和语言类应用程序的开发更加容易。最重要的新特性在于,ANTLR 4几乎能够处理任何语法(除了间接左递归,稍后会提到)。在ANTLR将你的语法...

    收集的一些antlr资源

    Antlr入门详细教程.doc 利用ANTLR生成C 描述的分析程序.htm 使用 Antlr 处理文本.htm 使用 Antlr 开发领域语言.htm 强悍的ANTLR Lexer.htm a little madness » Blog Archive » ANTLR By Example Part 1 The ...

    java-antrl-example.rar_ANTLR JAVA_Antlr Rewrite_ant_antlr_antrl

    ANTLR 编译器入门范例,其中包含了20多套样本,200多个文件.

    编译器的编译器antlr的教程

    教程定位为帮助零基础的初学者入门到掌握编译前端,为熟悉antlr的人,提供一些问题备忘录,以及共享一些对antlr本身设计的看法。希望能对您有所帮助。产品的开发需要,对词法语法解析工具选型,选了几个工具,javacc...

    Antlr Reference

    Antlr的入门指导,英文版,很详细,包括工具的使用,安装,以及生成文件的解读

    antlr4ide.examples.hello:使用 Antlr4ide eclipse 插件的简单入门项目

    #Antlr4ide 示例 这是一个使用的示例项目。 ##Pre-requisites 按照安装 Antlr4ide。 注意:如果您使用的是 java 8,则在运行 antlr 时可能会出现错误。 截至撰写时(2015 年 2 月),antlr 需要 java7 并且无法...

    antlr4cs:ANTLR 4的原始,高度优化的C#目标

    :warning: 从4.5.0-alpha003版本开始,不再需要用户安装Java运行时才能使用ANTLR 4编译.NET应用程序。但是,安装Java将大大提高代码生成过程的性能。 强烈建议使用此功能,尤其是在将后台代码生成用于IntelliSense...

Global site tag (gtag.js) - Google Analytics