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

  • 相关阅读:
    Linux虚拟机突然不能上网了
    项目经验不丰富、技术不突出的程序员怎么打动面试官?
    10分钟看懂!基于Zookeeper的分布式锁
    BATJ等大厂最全经典面试题分享
    分享30道Redis面试题,面试官能问到的我都找到了
    一个六年Java程序员的从业总结:比起掉发,我更怕掉队
    我是这样手写 Spring 的(麻雀虽小五脏俱全)
    自述:为什么一部分大公司还在采用过时的技术,作为技术人而言该去大公司还是小公司
    Java精选面试题之Spring Boot 三十三问
    Java程序员秋招面经大合集(BAT美团网易小米华为中兴等)
  • 原文地址:https://www.cnblogs.com/wenjian1027/p/6121256.html
Copyright © 2011-2022 走看看