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的语法,基本一致。
参见最新的官网:
中的语法:
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
转载请注明:在路上 » 【整理】antlr的历史版本