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

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

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

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

    <标识符类型> → <无类型> | <字符> | <整型> | <浮点型>

    <声明>  <指针直接声明> | <直接声明>

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

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

    <标识符列表> : <标识符> | <标识符列表 ,标识符>

    <常数表达式> → <条件表达式>

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

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

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

    <声明列表> → <声明> | <声明列表> <声明>

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

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

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

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

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

    <语句> | <复合语句> | <表达式语句> | <选择语句> | <循环语句> |<跳转语句>

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

    <选择语句> : < IF(表达式)语句> | < IF(表达式)语句 > < ELSE 语句>

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

    <表达式> : <赋值表达式> | <表达式, 赋值表达式>

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

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

    <关系表达式> : <替换表达式> | <关系表达式 < 替换表达式> | <关系表达式 > 替换表达式> | <关系表达式<=替换表达式> | <关系表达式>=替换表达式>

    <替换表达式> : <加法表达式> | <替换表达式> <左运算> <加法表达式> | <替换表达式> <右运算> <加法表达式>

    <加法表达式> : <乘法表达式> | <加法表达式 + 乘法表达式> | <加法表达式 - 乘法表达式>

    <乘法表达式> : <强制转换表达式> | <乘法表达式 * 强制转换表达式> | <乘法表达式 / 强制转换表达式> | <乘法表达式 % 强制转换表达式>

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

    <一元表达式> : <后缀表达式> | <加一运算> <一元表达式> | <减一运算> <一元表达式> | <一元运算符> <强制转换表达式> | <结构体变量> <一元表达式> | <结构体变量(类型名称)>

    <结构体或共用体> : <结构体> | <共同体>

    <结构体声明列表> : <结构体声明> | <结构体声明列表> <结构体声明>

    <标记语句> → <标识符 : 语句> | <case> <常数表达式 : 语句> | <default> <语句>

  • 相关阅读:
    leetcode 1. 两数之和
    leetcode 671. 二叉树中第二小的节点
    leetcode 100. 相同的树
    leetcode 110. 平衡二叉树
    leetcode 144. 二叉树的前序遍历
    1066. Root of AVL Tree (25)
    leetcode 100 相同的树
    leeCode 515 在每个树行中找最大值
    LeetCode 31.下一个排列
    面向对象UML中类关系
  • 原文地址:https://www.cnblogs.com/a305810827/p/6008623.html
Copyright © 2011-2022 走看看