语法图用作可视地表示EBNF规则(syntax diagram),也叫铁道图,铁路图。
它是由表示终结符和非终结符的方框、表示序列和选择的带箭头的线,
以及每一个表示文法规则定义该非终结符的图表的非终结符标记组成。
圆形框和椭圆形框用来指出图中的终结符,而方形框和矩形框则用来指出非终结符。
废话少说,上例子:
1. 因子文法
factor→(exp) | number
2. 重复文法
A→{B}
3. 可选文法
A→[B]
4. 算术表达式文法
exp→expaddopterm|term
addop→+|-
term→termmulopfactor|factor
mulop→*
factor→(exp)|number
相对应的EBNF是
exp→trem{addopterm}
addop→+|-
term→factor{mulopfactor}
mulop→*
factor→(exp)|number
5. if语句文法
statement→if-stmt|other
if-stmt→if(exp)statement
|if(exp)statementelsestatement
exp→0|1
EBNF为
statement→if-stmt|other
if-stmt→if(exp)statement[elsestatement]
exp→0|1
6. JSON数值
7. JSON字符串
更多推荐
【编译原理】文法的语法图
发布评论