• 1014 C语言文法定义与C程序的推导过程


    程序-> <外部声明><程序><外部声明>

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

    函数定义-> <函数类型><说明符><复合语句>

    函数类型-> void|char|int|float

    说明符-> <指针 ><直接说明符>|<直接说明符>

    指针-> <*>|<*><指针>

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

    标识符序列-> <标识符>|<标识符序列><,><标识符>

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

    参数序列-> <参数声明>|<参数声明><,><参数声明>

    参数声明-> <声明说明符><声明符>

    复合语句-> <{}>|<{<陈述序列>}>|<{<声明序列><陈述序列>}>

    声明序列-> <声明符>|<声明序列><声明符>

    声明符-> <初始化说明符>|<初始化说明符><,><初始化说明符>

    初始化说明符-> <说明符>|<说明符><=><初始化程序>

    初始化程序-> <赋值表达式>|<{<初始化序列>}>|<{<初始化序列><,>}>

    初始化序列-> <初始化程序>|<初始化序列><,><初始化>

    陈述序列-> <陈述语句>|<陈述序列><陈述语句>

    陈述语句-> <复合语句>|<表达式语句>|<选择语句>|<循环语句>|<转移语句>

    表达式语句-> <;>|<表达式><;>

    选择语句-> <if(表达式)陈述语句>| <if(表达式)陈述语句><,><else 陈述语句>

    循环语句->  <for (<表达式语句 ><表达式语句>< 表达>)>|<for (<表达式语句 ><表达式语句>< 表达>)><,><陈述语句>

    转移语句-> continue|break|return|return <表达式><;>

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

    赋值表达式-> <条件表达式>|<一元表达式><赋值运算符><赋值表达式>

    条件表达式-> <逻辑或表达>|<逻辑或表达><?><表达式><条件表达式>

    逻辑或表达-> <逻辑或表达>|<逻辑或表达><运算逻辑和表达>

    运算逻辑和表达->  <包容性或表达>|<包容性或表达><运算包容性或表达>

    包容性或表达->  <异或表达式>|<包容性或表达><|><异或表达式>

    异或表达式-> <与表达式>|<异或表达式><^><与表达式>

    与表达式->   <相等表达式>|<与表达式><&><相等表达式>

    相等表达式->  <关系式>|<相等表达式><运算关系式>

    关系式->  <移动式>|<关系式><'<'><移动式>|<关系式><'>'><移动式>

    移动式-> <累积式>|<移动式> <LEFT_OP ><累积式>|<>移动式><RIGHT_OP ><累积式>

    累积式-> <乘法式>|<移动式><+> <乘法式> |<移动式><-><乘法式>

    乘法式-> <转换表达式>|<转换表达式><*><乘法式> |<转换表达式></><乘法式> | <转换表达式><%><乘法式>

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

    一元表达式-> <后缀表达式>|<INC_OP > <一元表达式 >|<DEC_OP > <一元表达式 >|<一元运算符> <转换表达式>|<sizeof> <一元表达式>| <sizeof> <(类型名称)> 

    后缀表达式->  <主要表达式>| <转换表达式><[ ]>|  <转换表达式><( )>|  <转换表达式><参数表达式列表>|  <转换表达式>

  • 相关阅读:
    Jzoj3895 数字对
    Jzoj3895 数字对
    Jzoj3894 改造二叉树
    Jzoj3894 改造二叉树
    Jzoj3883 线段树
    Jzoj3883 线段树
    Jzoj3882 近邻
    Jzoj3882 近邻
    第三十一天 how can I 坚持
    第三十天 how can I 坚持
  • 原文地址:https://www.cnblogs.com/xinmingwang/p/4919999.html
Copyright © 2020-2023  润新知