zoukankan      html  css  js  c++  java
  • 简化C语言文法

     

     

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

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

    函数定义 → 类型标识符 声明部分语句

    类型标识符 → 空类型|字符型|整型|浮点型

    声明部分语句 → 指针 直接声明|直接声明

    指针 → * |* 指针

    直接声明 → 标识符 | 直接声明[ ] | 直接声明[常数表达式] | 标识符(参数列表) | 标识符() | 直接声明 ,标识符列表

    标识符列表 → 标识符 | 标识符列表,标识符

    标识符 → 下划线 标识符|字母 标识符|数字|字母|下划线

    常数表达式 → 条件表达式

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

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

    语句列表 → 语句 | 语句列表 语句

    语句 → 复合语句 | 表达式语句 | 选择语句 | 循环语句

    复合语句 → { } | { 语句列表 } | { 声明列表 语句列表 }

    声明列表 → 声明 | 声明列表 声明

    声明 → 初始化声明 | 初始化声明列表 ,初始化声明

    初始化声明 → 声明 | 声明=初始化程序

    初始化程序 → 表达式 | {初始化程序列表} | {初始化程序列表 , }

    初始化程序列表 → 初始化程序 | 初始化程序列表 , 初始化程序

    表达式语句  → 表达式;

    表达式 → 赋值表达式 | 表达式, 赋值表达式

    赋值表达式 → 条件表达式| 一元表达式 赋值操作符 赋值表达式

    条件表达式 → 逻辑‘或’表达式 | 逻辑‘或’表达式 ? 表达式: 条件表达式

    逻辑‘或’表达式 → 逻辑‘与’表达式 | 逻辑‘或’表达式 ‘或’运算 逻辑‘与’表达式

    逻辑‘与’表达式 → 逻辑‘或’表达式 | 逻辑‘与’表达式 ‘与’运算 逻辑‘或’表达式

    一元表达式 → 加一运算 一元表达式 | 减一运算 一元表达式|一元运算符 强制转换表达式

    一元运算符 → & | * | + | - | !

    强制转换表达式 → 一元表达式 | (类型名称)强制转换表达式

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

    基本表达式 → 标识符 | 常量 | 字符串 | (表达式)

    选择语句  → IF(表达式)语句 |  IF(表达式)语句   ELSE 语句

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

    加法表达式 → 乘法表达式 | 加法表达式 + 乘法表达式 | 加法表达式 - 乘法表达式

    乘法表达式 → 强制转换表达式 | 乘法表达式 * 强制转换表达式 | 乘法表达式 / 强制转换表达式 | 乘法表达式 % 强制转换表达式

  • 相关阅读:
    【miscellaneous】 GStreamer应用开发手册学习笔记之基础概念介绍
    【miscellaneous】gstreamer构建的简单方法
    【miscellaneous】gstreamer构建的简单方法
    【miscellaneous】理解Gstreamer架构
    【miscellaneous】理解Gstreamer架构
    【miscellaneous】基于gstreamer的实时转码
    【miscellaneous】基于gstreamer的实时转码
    【miscellaneous】各种音视频编解码学习详解
    【miscellaneous】各种音视频编解码学习详解
    【miscellaneous】MPEG2、MPEG4、H264的差异
  • 原文地址:https://www.cnblogs.com/168-hui/p/6009417.html
Copyright © 2011-2022 走看看