【整理】antlr的历史版本

antlr的历史版本

根据antlr的发展历史,到目前为止,一共有4大版本:

antrl v1 == PCCTS

1989年,第一版本发布的时候,叫做PCCTS。

也就是antrl v1.00

 

antrl v2

之前很长一段时间使用的,都是antrl v2.

 

antlr v2的语法

antlr v2版本中,语法分两部分:

lexer rule

parser rule

 

【TODO:添加antlr v2的示例语法,包含class lexer和class parser的】

 

Lexer的示例代码:

class L extends Lexer;

A	:	B 'b'
	;

protected  // only called from another lex rule
B	:	'x' ('b' | )
	;

Parser的示例代码:

 

 

antlr v3

目前主流所使用的版本是antlr v3。

 

antlr v3的语法

支持混合型语法,即同时包含了lexer和parser部分的语法。

示例语法:

grammar SimpleCalc;
 
add : NUMBER PLUS NUMBER;
 
NUMBER  : ('0'..'9')+ ;
 
PLUS    : '+';

 

提示:

所以当你使用antlrworks 1.x.jar的IDE,去新建.g的语法文件的时候,会出现让你选择语法类型

是parser还是lexer,还是(parser和lexer的)混合型语法。

 

antlv v4

最新刚出现的版本,是antlr v4.

2013-01-22发布的antlr v4.

 

antlr v4的语法

和antlr v3的语法,基本一致。

参见最新的官网:

http://www.antlr.org/

中的语法:

grammar Expr;		
prog:	(expr NEWLINE)* ;
expr:	expr ('*'|'/') expr
      |	expr ('+'|'-') expr
|	INT
|	'(' expr ')'
;

 

但是要注意的是,由于antlr内核升级了,所以所用的开发工具等都不一样了。

编译等过程也不一样。

 

参考资料

1.介绍了antrl的发展历史:

http://www.antlr2.org/history.html

2.介绍了,antlr发展过程中的主要贡献人员

http://www.antlr2.org/contributions.html



发表评论

电子邮件地址不会被公开。 必填项已用*标注

无觅相关文章插件,快速提升流量