C语言文法分析

时间:2023-03-10 07:24:07
C语言文法分析

程序 → <外部声明>|<程序><外部声明>

<外部声明> → <函数定义> | <声明>

<函数定义> → <类型标识符> <说明符> <复合语句>

<类型标识符> → void | char | int | float

说明符 → <指针 ><直接说明符>|<直接说明符>

指针 → <*>|<*><指针>

<参数列表> → <参数声明> | <参数列表 ,参数声明>

<参数声明> → <说明符声明><标识符>

<复合语句> → < 语句列表 > | <声明列表 语句列表>

<语句列表> → <语句> | <语句列表> <语句>

<语句> → <复合语句> | <表达式语句> |  <循环语句> | <条件语句>

<表达式语句> → <表达式;>

<循环语句> → < WHILE(表达式)语句> | < FOR(表达式语句表达式语句)语句> | < FOR(表达式语句表达式语句表达式)语句>

<条件语句> → < IF(表达式)语句> | < IF(表达式)语句 > < ELSE 语句>

<表达式语句> → <赋值表达式> | <逻辑表达式> | <算术表达式 E>

<赋值表达式> → <变量> = <算术表达式>

<逻辑表达式> → (<表达式> | <数字> ) <逻辑运算符> (<表达式> | <数字>)

E → E + T | E – T | T

T → T * F| T / F | F

F  F ↑ P | P

P (E) | <常量> | <标识符>

< 赋值运算符> →  <乘法赋值> | <除法赋值> | <求余赋值> | <加法赋值> | <减法赋值>