Antlr is used for ... It can help you to create program (in C++, Java) according to rules you defined.
基础知识:
词法分析是对从输入识别出标识符、关键字、常量等相对独立的记号(token,也叫符号或单词),形成记号序列记号流的过程。根据规则,输入中的部分内容可能会被过滤掉。比如在编译计算机程序时,源程序中的部分空格、换行符和注释等会在词法分析过程中被过滤掉。
语法分析是根据词法分析输出的记号流,分析源程序的语法结构,并添加代表语法结构的抽象单词(如:表达式、类、方法等),按照语法结构生成语法树的过程。
编译原理中使用四元组来表示文法G[Vn,Vt,P,S],其中G 为文法句称,Vn 为非终结符的集合,Vt 为终结符的集合,P 是文法规则的集合,S 为启始规则。
如果G[S]的所有规则都满足形如:a => b 其中a 的长度要小于等于b,这时G[S]文法是上下文有关文法(context-free grammars)。
如果G[S] 的所有规则都满足形如:A=> aB 或A=>a 其中A 和B 是非终结符,a 是终结符,这时G[S]文法是正规文法。
上下文无关文法产生的语言就是上下文无关语言,正规文法产生的语言就是正规语言。
EBNF: 扩展的巴科斯范式