简单文法(以c语言为例)
//程序
<program> :
external_declaration //外部声明
| body program //函数主体 程序
//外部声明
<external_declaration> :
declaration external_declaration //头文件声明 外部声明
| function_definition external_declaration //函数声明 外部声明
| program //程序
//头文件声明
<declaration>:
Symbol identifier bracket identifier bracket declaration //符号 标识符符号头文件 符号 头文件声明
|type_specifier variate ‘;’ declaration //数据类型 变量 头文件声明
(全局变量)
| type_specifier variate ( type_specifier variate ,type_specifier variate , )program //数据类型 变量(函数名) 参数 程序 (自定义函数的声明)
//函数
<function_definition> :
type_specifier declarator //类型 头文件声明
compound_statement //混合声明
//函数主体
<body> :
identifier bracket body //main
|type_specifier variate ‘;’ //数据类型 变量 ;
|initializer //初始化、
|statement //声明、陈述
//初始化
<initializer> :
variate Initializer //变量 初始化
|Symbol Initializer //符号 初始化
|unction_definition //函数 (函数调用)
//数据类型
<type_specifier> :
Void
|char
|int
|float
|double
//标识符 头文件
<identifier> :
Include
| define
|stdio.h
|math.h
|stdlib.h
|time.h
|string.h
|main ‘(‘ ‘)’
//声明、陈述
<statement> :
judge_statement //判断
|jump_statement //跳转符
|iteration_statement //循环
|selection_statement //选择
//判断
<Judge_statement> :
if Body
|Body
//循环
<iteration_statement>:
while Body
| for Body
| do Body while
|Body
//跳转符
<jump_statement> :
Continue body
|break body
|return body
|return body
|body
//符号
<Symbol > :
#
|+ bracket
|= bracket
|- bracket
|: bracket
|,bracket
|;
|空串
//括号
<bracket> :
( bracket
|) bracket
|{ bracket
|} bracket
|< bracket
|> bracket
|空串
//指针
<Pointer > :
'*'
| '*' variate //变量
//变量
<variate >:
a variate
|b variate
|c variate
|.....
|z variate
//数字
<figure>
0 figure
|1 figure
|2 figure
......
|9 figure