基本概念:
JavaCC:
Java Compiler Compiler 是一个用JAVA开发的最受欢迎的语法分析生成器。这个分析生成器工具可以读取上下文无关且有着特殊意义的语法并把它转换成可以识别且匹配该语法的JAVA程序。它还提供JJTree等工具来帮助我们建立语法树 。
巴克斯范式:BNF 是一種用於表示上下文無關文法的語言,上下文無關文法描述了一類形式語言。儘管巴科斯範式也能表示一部分自然語言的語法,它還是更廣泛地使用於程式語言、指令集、通信協議的語法表示中。
BNF 規定是推導規則(產生式)的集合,寫為:
<符号> ::= <使用符号的表达式>
這裏的 <符號> 是非終結符,而表達式由一個符號序列,或用指示選擇的豎杠 '|' 分隔的多個符號序列構成,每個符號序列整體都是左端的符號的一種可能的替代。從未在左端出現的符號叫做終結符。
expr ::= term ((+|-) term)*
term ::= factor ((*|/) factor)*
factor ::= number | expr
number ::= [0-9]+...
语法分析器+解析器: lexical analyser+parser
JavaCC学习文档:(很初级的入门教程)
http://www.engr.mun.ca/~theo/JavaCC-Tutorial/javacc-tutorial.pdf
中文翻译教程:http://code.google.com/p/orzjisp/wiki/The_JavaCC_Tutorial