首页 > 代码库 > 简单文法(以c语言为例)

简单文法(以c语言为例)

简单文法(以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

 

 

 

 

简单文法(以c语言为例)