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

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

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

    <函数定义>→<类型说明><声明符><符合语句>

    <类型说明>→<void>|<char>|<int>|<float>

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

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

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

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

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

    <标识符列表>→<标识符>|<标识符列><标识符>

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

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

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

    <初始化>→<赋值表达式>|<“{ }”“初始化列表”>|<“{ }”“初始化列表”>

    <初始化列表>→<初始化>|<初始化列表'><初始化>

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

    <语句>→<复合语句>|<表达语句>|<选择语句>|<迭代语句>|<跳转语句>

    <选择语句>→<if>|<IF (“表达式”)ELSE语句的声明>

    <迭代语句>→< WHILE >|< FOR >|< FOR ><语句>

    <跳转语句>→< CONTINUE >|< BREAK >< RETURN >< RETURN ><语句>

    <一元运算符>→ '&'| '*'| '+'| '-'| '~'| '!'

    <存储类说明符>→< TYPEDEF >|< EXTERN >|< STATIC >|< AUTO >|< REGISTER >

    <结构或联合说明符>→<结构或联合说明符><结构体声明列表>|<结构或联合><结构体声明列表>|<结构或联合><标识符>

    <结构或联合>→< STRUCT >|< UNION >

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

    <结构体声明>→<说明符限定符列表><结构说明符>

    <说明符限定符列表>→<类型说明符><说明符限定符列表>|<类型说明符>|<说明符限定符列表>|<类型限定符>

    <结构说明符列表>→<结构说明符>|<结构说明符列表><结构说明符>

    <结构说明符>→<说明符>|<常数表达式>|<常数表达式><说明符>

    <枚举说明符>→<枚举器列表>|<枚举标识符><枚举器列表>|<枚举标识符>

    <枚举标识符>→<枚举>|<枚举标识符><枚举>

    <枚举>→<标识符>|<常数表达式><标识符>

    <函数定义> —〉 <类型说明><函数名><参数列表><复合语句>
    <函数名> —〉<标识符>
    <参数列表〉 —〉<类型说明><变量名>
    <复合语句> —〉<变量>|<语句>
    <语句> —〉<表达式语句〉|<选择语句>|<循环语句>|<跳跃语句>
    <表达式语句> —〉 <赋值表达式>|<关系表达式>|<逻辑表达式>
    <赋值表达式> —〉 = | += | =+ | -= | =-
    <关系表达式> —> 〉| < | 〉=| <=
    <逻辑表达式> —〉 + | - | * | / 
    <选择语句> —〉 if else语句| switch语句
    <循环语句> —〉 for语句|while语句|do while语句
    <跳跃语句> —> return语句|break语句|continue语句
    <变量> —> <类型>丨<变量名>丨<变量值>
    <类型说明> —> int丨char丨double丨float丨long
    <变量名> <==> S
    S —> A|SB
    A —> a|b|c|……y|z
    B —> 0|1|2|3|4|5|6|7|8|9
    <变量值> —> <字母>丨〈数字〉
    <标识符> 〈==〉 S
    S —> a|b|c|……y|z|S
    <字母> —> a|b|c|……y|z
    <数字> 〈==〉 S
    A —> 1|2|3|4|5|6|7|8|9
    S —> A|SA|SA0

  • 相关阅读:
    git如何进行远程分支切换
    js中实现多态
    css选择器中:first-child与:first-of-type的区别
    js实现图片延时加载的原理
    认识AMD、CMD、UMD、CommonJS
    CORS详解
    JS实现继承的五种方式
    jQuery.fn.extend() 函数详解
    Java基础面试题
    Java面试题集
  • 原文地址:https://www.cnblogs.com/BOXczx/p/6025588.html
Copyright © 2011-2022 走看看