评论

收藏

[C++] C++bnf中文版

编程语言 编程语言 发布于:2021-12-07 18:39 | 阅读数:219 | 评论:0

`C++`巴范语法规则

词分器.字符集
四16进制:
  16进制数 16进制数 16进制数 16进制数
通用字符名:
  \u 四16进制
  \U 四16进制 四16进制

词分器.预令牌
预处理令牌:
  头名
  标识符
  预数字
  符字面
  用户定义符字面 C++0x
  串字面
  用户定义串字面 C++0x
  预处理操作或运算
  非空白字符不能为以上.

词分器.令牌
令牌:
  标识符
  关键字
  字面
  符号令牌见C++标准核心语言问题n.189
  运算子见C++标准核心语言问题n.189

词分器.头
头名:
  <h符序列>
  "q符序列"
h符序列:
  h符
  h符序列 h符
h符:
  除了"新行|>"的其他符
q符序列:
  q符
  q符序列 q符
q符:
  除了"新行|""的

词分器.预数字
预数字:
  数字
  .数字
  预数字 数字
  预数字 非数字标识符
  预数字 e 正负号
  预数字 E 正负号
  预数字 .

词分器.名
标识符:
  非数字标识符 C++0x
  标识符 非数字标识符 C++0x
  标识符 数字
非数字标识符:
  非数字 C++0x
  通用字符名 C++0x
  其他实现定义字符C++0x
非数字:
  C++0x移除通用字符名
  a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z _(下划线)
数字:
  0 1 2 3 4 5 6 7 8 9

词分器.键
关键字:
  16符型 32符型 常式 推导 无异 空针 静断 线本 对齐为 的对齐 C++0x
  //上面都是C++0x
  导出 C++0x-保留未来用
  类 常 常转 下 默认 删 干 双精 动转 异 枚 显 外 假 浮 对 友 至 如 内联 整 长 可变 名字空间 新 符号 私 保护 公 注册 重转 中 短 整 的大小 静 静转 构 开关 元 本 抛 真 试 又 具型 型名 联 正 用 虚 空 易失 宽符型 当 汇编 动 极 断 若 抓 符

词分器.操作符
符号令牌:
  在C++标准核心语言问题n.189下见预处理操作或运算
运算子:
  在C++标准核心语言问题n.189下见预处理操作或运算
预处理操作或运算:
  { } [ ] # ## () <: :> <% %> %: %:%: ; : ...  新 删:: .  .* + - * / % ^ & | ~ !  = < > += -= *= /= %= ^= &= |= << >> <<= >>= == != <= >= && || ++ -- , ->* -> 和 与等 位与 位或 补 不 不等 或 或等 异或 异或等

词分器.字面.种类
字面:
  整字面 符字面 浮字面 串字面 布尔字面
  指针字面 用户定义字面 C++0x

词分器.图标
整字面:
  十进制字面 整后缀 可选
  八进制字面 整后缀 可选
  16进制字面 整后缀 可选
十进制字面:
  非零数字
  十进制字面 数字
八进制字面:
  0
  八进制字面 八进制数字
16进制字面:
  0x 16进制数
  0X 16进制数
  16进制字面 16进制数
非零数字:
  1 2 3 4 5 6 7 8 9
八进制数字:
  0 1 2 3 4 5 6 7
16进制数:
  0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F
整后缀:
  正后缀 长后缀 可选
  正后缀 长长后缀 可选 C++0x
  长后缀 正后缀 可选
  长长后缀 正后缀 可选 C++0x
正后缀:
  u U
长后缀:
  l L
长长后缀:
  ll LL C++0x

词分器.符常
符字面:
  'c符序列'
  u'c符序列' C++0x
  U'c符序列' C++0x
  L'c符序列'
c符序列:
  c符
  c符序列 c符
c符:
  除了"\'|\\|\n"符
  转义序列
  通用字符名

转义序列:
  简单转义序列
  八进制转义序列
  16进制转义序列
简单转义序列:
  "\'"
  """
  \
  \\
  \a
  \b
  \f
  \n
  \r
  \t
  \v

八进制转义序列:
  \八进制数字
  \八进制数字 八进制数字
  \八进制数字 八进制数字 八进制数字

16进制转义序列:
  \x 16进制数
  16进制转义序列 16进制数

词分器.浮常
浮字面:
  分数常数 指数部分 可选 浮动后缀 可选
  数字序列 指数部分 浮动后缀 可选
分数常数:
  数字序列 可选 . 数字序列
  数字序列 .
指数部分:
  e 正负号 可选 数字序列
  E 正负号 可选 数字序列
正负号:
  +
  -
数字序列:
  数字
  数字序列 数字
浮动后缀:
  f l F L

词分器.串
串字面:
  编码前缀 可选 " s符序列 可选 " C++0x
  编码前缀 可选 R 原始串 C++0x
编码前缀:
  u8 u U L C++0x
s符序列:
  s符
  s符序列 s符
s符:
  除了""|\\|\n"符
  转义序列
  通用字符名
原始串:
  "d符序列 可选 (r符序列 可选) d符序列 可选"C++0x
r符序列:
  r符 C++0x
  r符序列 r符 C++0x
r符:
  除了")"序 初始d符序列 可选 """
d符序列:
  d符 C++0x
  d符序列 d符 C++0x
d符:
  除了"空格|()|\\|水平控制符|\t|\p|\n"等

词分器.极
布尔字面:
  假
  真

词分器.空针
指针字面:
  空针 C++0x

词分器.扩展
用户定义字面:
  用户定义整字面 C++0x
  用户定义浮字面 C++0x
  用户定义串字面 C++0x
  用户定义符字面 C++0x
用户定义整字面:
  十进制字面 用定后缀 C++0x
  八进制字面 用定后缀 C++0x
  16进制字面 用定后缀 C++0x
用户定义浮字面:
  分数常数 指数部分 可选 用定后缀 C++0x
  数字序列 指数部分 用定后缀 C++0x
用户定义串字面:
  串字面 用定后缀 C++0x
用户定义符字面:
  符字面 用定后缀 C++0x
用定后缀:
  标识符 C++0x

基本.链接
翻译单元:
  声明序列 可选

式.主要.一般
主要式:
  字面
  本
  (式)
  标识式
  λ式 C++0x
标识式:
  不合格标识
  合格标识
不合格标识:
  标识符
  符号函数标识
  转换函数标识
  字面符号标识 C++0x
  ~类名
  ~推导型限定器 C++0x
  模板标识
合格标识:
  :: 可选 嵌套名限定器 元 可选 不合格标识
  ::标识符
  ::符号函数标识
  ::字面符号标识 C++0x
  ::模板标识
嵌套名限定器:
  型名::
  名间名::
  推导型限定器::C++0x
  嵌套名限定器 标识符::
  嵌套名限定器 元 可选 简单模板标识::

式.主要.λ
λ式:
  λ引入者 λ声明器 可选 组合句 C++0x
λ引入者:
  [捕捉λ 可选] C++0x
捕捉λ:
  默认取 C++0x
  捕捉列表 C++0x
  默认取 , 捕捉列表 C++0x
默认取:
  & C++0x
  = C++0x
捕捉列表:
  捕捉... 可选 C++0x
  捕捉列表 , 捕捉... 可选 C++0x
捕捉:
  标识符 C++0x
  & 标识符 C++0x
  本 C++0x
λ声明器:
  ( 形参声明语句 )可变 可选 异常规范 可选 属性限定器序列 可选 尾中类型 可选 C++0x

式.提交
后缀式:
  主要式
  后缀式[式]
  后缀式[括号初化列表 可选]C++0x
  后缀式(式列表 可选)
  简单类型限定器(式列表 可选)
  型名限定器(式列表 可选)
  简单类型限定器 括号初化列表 C++0x
  型名限定器 括号初化列表 C++0x
  后缀式.元 可选 标识式
  后缀式->元 可选 标识式
  后缀式.伪析构器名
  后缀式->伪析构器名
  后缀式++
  后缀式--
  动转<型标>(式)
  静转<型标>(式)
  重转<型标>(式)
  常转<型标>(式)
  具型(式)
  具型(型标)
式列表:
  初化器列表
伪析构器名:
  :: 可选 嵌套名限定器 可选 型名::~型名
  :: 可选 嵌套名限定器 元 简单模板标识::~型名 C++0x
  :: 可选 嵌套名限定器 可选~型名
  ~推导型限定器 C++0x

式.一元
一元式:
  后缀式
  ++强转式
  --强转式
  一元符号 强转式
  的大小 一元式
  的大小(型标)
  的大小...(标识符)C++0x
  的对齐(型标)C++0x
  无异式 C++0x
  新式
  删式
一元符号:
  * & + - ! ~

式.新
新式:
  :: 可选 新 新放置 可选 新型标 新初化器 可选
  :: 可选 新 新放置 可选(型标)新初化器 可选
新放置:
  (式列表)
新型标:
  类型限定器序列 新声明器 可选
新声明器:
  针符号 新声明器 可选
  无针新声明器 C++0x
无针新声明器:
  [式]属性限定器序列 可选 C++0x
  无针新声明器[常数式]属性限定器序列 可选 C++0x
新初化器:
  (式列表 可选)
  括号初化列表 C++0x

式.删
删式:
  :: 可选 删 强转式
  :: 可选 删[]强转式

式.一元.无异
无异式:
  无异(式)C++0x

式.转换
强转式:
  一元式
  (型标)强转式

式.成针.操作
成针式:
  强转式
  成针式.*强转式
  成针式->*强转式

式.乘
乘法式:
  成针式
  乘法式*成针式
  乘法式/成针式
  乘法式%成针式

式.加
加式:
  乘法式
  加式+乘法式
  加式-乘法式

式.转移
转移式:
  加式
  转移式<<加式
  转移式>>加式

式.相对
关系式:
  转移式
  关系式<转移式
  关系式>转移式
  关系式<=转移式
  关系式>=转移式

式.等
等式:
  关系式
  等式==关系式
  等式!=关系式

式.位.和
与式:
  等式
  与式&等式

式.异或
异或式:
  与式
  异或式 ^ 与式

式.或
包含或式:
  异或式
  包含或式|异或式

式.日志.和
逻辑与式:
  包含或式
  逻辑与式 && 包含或式

式.日志.或
逻辑或式:
  逻辑与式
  逻辑或式||逻辑与式

式.条件
条件式:
  逻辑或式
  逻辑或式 式:赋值式

式.赋值
赋值式:
  条件式
  逻辑或式 赋值符 初化器语句 C++0x
  抛式
赋值符:
  = *= /= %= += -= >>= <<= &= ^= |=

式.逗号
式:
  赋值式
  式,赋值式

式.常
常数式:
  条件式

语句.语句
语句:
  标签语句
  属性限定器序列 可选 式句 C++0x
  属性限定器序列 可选 组合句 C++0x
  属性限定器序列 可选 选择语句 C++0x
  属性限定器序列 可选 步语句 C++0x
  属性限定器序列 可选 跳语句 C++0x
  声明句
  属性限定器序列 可选 试块

语句.标签
标签语句:
  属性限定器序列 可选 标识符:语句
  属性限定器序列 可选 若 常数式:语句
  属性限定器序列 可选 默认:语句

语句.式
式句:
  式 可选;

语句.块
组合句:
  {语句序列 可选}
语句序列:
  语句
  语句序列 语句

语句.选择
选择语句:
  如(条件)语句
  如(条件)语句 异 语句
  开关(条件)语句
条件:
  式
  属性限定器序列 可选 声明限定器序列 声明器=初化器语句 C++0x
  属性限定器序列 可选 声明限定器序列 声明器 括号初化列表 C++0x

语句.步
步语句:
  当(条件)语句
  干 语句 当(式);
  对(对初化语句 条件 可选;式 可选)语句
  对(对区间声明:对区间初化器)语句 C++0x
对初化语句:
  式句
  简单声明
对区间声明:
  属性限定器序列 可选 类型限定器序列 声明器 C++0x
对区间初化器:
  式
  括号初化列表

语句.跳
跳语句:
  断;
  下;
  中 式 可选;
  中 括号初化列表 可选;C++0x
  至 标识符;

语句.声明
声明句:
  声明块

声明.声明
声明序列:
  声明
  声明序列 声明
声明:
  声明块
  定义函数
  模板声明
  显实例
  显特化
  链接规范
  定义名间
  声明空 C++0x
  声明属性 C++0x
声明块:
  简单声明
  定义汇编
  定义名间别名
  用声明
  用指令
  静断声明 C++0x
  别名声明 C++0x
  暗色枚声明 C++0x

别名声明:
  用 标识符=型标;C++0x

简单声明:
  属性限定器序列 可选 声明限定器序列 可选 初化声明器列表 可选;C++0x
静断声明:
  静断(常数式,串字面);C++0x
声明空:
  ;C++0x
声明属性:
  属性限定器序列;C++0x

声明.特殊
声明限定器:
  存储类限定器
  类型限定器
  函数限定器
  友
  又
  常式 C++0x
声明限定器序列:
  声明限定器 属性限定器序列 可选 C++0x
  声明限定器 声明限定器序列 C++0x

声明.存储类
存储类限定器:
  //动 移除 C++0x
  线本 C++0x
  注册 静 外 可变

声明.函数型.特殊
函数限定器:
  内联
  虚
  显

声明.又
又名:
  标识符

声明.类型
类型限定器:
  尾型限定器
  类限定器
  枚限定器

尾型限定器:
  简单类型限定器
  详述型限定器
  型名限定器
  常易限定器

类型限定器序列:
  类型限定器 属性限定器序列 可选 C++0x
  类型限定器 类型限定器序列

尾型限定器序列:
  尾型限定器 属性限定器序列 可选 C++0x
  尾型限定器 尾型限定器序列 C++0x

字典.类型.简单
简单类型限定器:
  :: 可选 嵌套名限定器 可选 型名
  :: 可选 嵌套名限定器 元 简单模板标识
  16符型 C++0x
  32符型 C++0x
  符 宽符型 极 短 整 长 整 正 浮 双精 空
  动 C++0x
  推导型限定器 C++0x
型名:
  类名
  枚名
  又名
  简单模板标识 C++0x
推导型限定器:
  推导(式)C++0x

声明.类型.详
详述型限定器:
  类键 属性限定器序列 可选:: 可选 嵌套名限定器 可选 标识符
  类键:: 可选 嵌套名限定器 可选 元 可选 简单模板标识
  枚:: 可选 嵌套名限定器 可选 标识符

声明.枚
枚名:
  标识符
枚限定器:
  枚头{枚举器列表 可选}C++0x
  枚头{枚举器列表,}C++0x
枚头:
  枚键 属性限定器序列 可选 标识符 可选 枚基 可选 C++0x
  枚键 属性限定器序列 可选 嵌套名限定器 标识符 枚基 可选 C++0x
暗色枚声明:
  枚键 属性限定器序列 可选 标识符 枚基 可选;C++0x
枚键:
  枚 C++0x
  枚 类 C++0x
  枚 构 C++0x
枚基:
  :类型限定器序列 C++0x
枚举器列表:
  定义枚举器 C++0x
  枚举器列表,定义枚举器 C++0x
定义枚举器:
  枚举器
  枚举器=常数式
枚举器:
  标识符

名字空间.定义
名间名:
  原名间名
  别名名间
原名间名:
  标识符
定义名间:
  定义命名名间
  定义未命名名间
定义命名名间:
  定义原名间
  扩展定义名间
定义原名间:
  内联 可选 名字空间 标识符{名间体}C++0x
扩展定义名间:
  内联 可选 名字空间 原名间名{名间体}C++0x
定义未命名名间:
  内联 可选 名字空间{名间体}
名间体:
  声明序列 可选

名字空间.别名
别名名间:
  标识符
定义名间别名:
  名字空间 标识符=合格名间限定器;
合格名间限定器:
  :: 可选 嵌套名限定器 可选 名间名

名字空间.用声明
用声明:
  用 型名 可选:: 可选 嵌套名限定器 不合格标识;
  用::不合格标识;

名字空间.用指令
用指令:
  属性限定器序列 可选 用 名字空间:: 可选 嵌套名限定器 可选 名间名;

声明.汇编
定义汇编:
  汇编(串字面);

声明.链接
链接规范:
  外 串字面{声明序列 可选}
  外 串字面 声明

声明.属性.语法
属性限定器序列:
  属性限定器 C++0x
  属性限定器序列 属性限定器 C++0x
属性限定器:
  [[属性列表]]C++0x
  对齐限定器 C++0x
对齐限定器:
  对齐为(型标... 可选)C++0x
  对齐为(赋值式... 可选)C++0x
属性列表:
  特性 可选 C++0x
  属性列表,特性 可选 C++0x
  特性...C++0x
  属性列表,特性...C++0x
特性:
  属性令牌 属性实参语句 可选 C++0x
属性令牌:
  标识符 C++0x
  属性域令牌 C++0x
属性域令牌:
  属性名间::标识符 C++0x
属性名间:
  标识符 C++0x
属性实参语句:
  (平衡令牌序列)C++0x
平衡令牌序列:
  平衡令牌 C++0x
  平衡令牌序列 平衡令牌 C++0x
平衡令牌:
  (平衡令牌序列)C++0x
  [平衡令牌序列]C++0x
  {平衡令牌序列}C++0x
  除了"()[]{}"的令牌 C++0x

声明.声明
初化声明器列表:
  初化声明器
  初化声明器列表,初化声明器
初化声明器:
  声明器 初化器 可选
声明器:
  针声明器 C++0x
  无针声明器 形参和限定器 尾中类型 C++0x
针声明器:
  无针声明器 C++0x
  针符号 针声明器 C++0x
无针声明器:
  声明器标识 属性限定器序列 可选 C++0x
  无针声明器 形参和限定器 C++0x
  无针声明器[常数式 可选]属性限定器序列 可选 C++0x
  (针声明器)C++0x
形参和限定器:
  (形参声明语句)属性限定器序列 可选 常易限定器序列 可选 引用限定器 可选 异常规范 可选 C++0x
尾中类型:
  ->尾型限定器序列 抽象声明符 可选 C++0x
针符号:
  *属性限定器序列 可选 常易限定器序列 可选 C++0x
  &属性限定器序列 可选 C++0x
  &&属性限定器序列 可选 C++0x
  :: 可选 嵌套名限定器*属性限定器序列 可选 常易限定器序列 可选 C++0x
常易限定器序列:
  常易限定器
  常易限定器 常易限定器序列
常易限定器:
  常
  易失
引用限定器:
  &C++0x
  &&C++0x
声明器标识:
  ... 可选 标识式 C++0x
  :: 可选 嵌套名限定器 可选 类名 C++0x

声明.名
型标:
  类型限定器序列 抽象声明器 可选
抽象声明符:
  针抽象声明器 C++0x
  无针抽象声明器 可选 形参和限定器 尾中类型 C++0x
  ... C++0x
针抽象声明器:
  无针抽象声明器 C++0x
  针符号 针抽象声明器 可选 C++0x
无针抽象声明器:
  无针抽象声明器 可选 形参和限定器 C++0x
  无针抽象声明器 可选[常数式]属性限定器序列 可选 C++0x
  (针抽象声明器)C++0x

声明.函数型
形参声明语句:
  形参声明列表 可选... 可选
  形参声明列表,...
形参声明列表:
  形参声明
  形参声明列表,形参声明
形参声明:
  属性限定器序列 可选 声明限定器序列 声明器 C++0x
  属性限定器序列 可选 声明限定器序列 声明器=初化器语句 C++0x
  属性限定器序列 可选 声明限定器序列 抽象声明符 可选 C++0x
  属性限定器序列 可选 声明限定器序列 抽象声明符 可选=初化器语句 C++0x

声明.函数型.定义.一般
定义函数:
  属性限定器序列 可选 声明限定器序列 可选 声明器 函数体 C++0x
  属性限定器序列 可选 声明限定器序列 可选 声明器=默认;C++0x
  属性限定器序列 可选 声明限定器序列 可选 声明器=删;C++0x
函数体:
  构造器初化器 可选 组合句 C++0x
  函数试块 C++0x

声明.初化
初化器:
  括等号初化器 C++0x
  (式列表)C++0x
括等号初化器:
  =初化器语句 C++0x
  括号初化列表 C++0x
初化器语句:
  赋值式 C++0x
  括号初化列表 C++0x
初化器列表:
  初化器语句... 可选 C++0x
  初化器列表,初化器语句... 可选 C++0x
括号初化列表:
  {初化器列表, 可选}C++0x
  {}C++0x

类
类名:
  标识符
  简单模板标识 C++0x
类限定器:
  类头{成员规范 可选}
类头:
  类键 属性限定器序列 可选 类头名 虚类限定器序列 可选 基句 可选 C++0x
  类键 属性限定器序列 可选 基句 可选 C++0x
类头名:
  嵌套名限定器 可选 类名 C++0x
虚类限定器序列:
  虚类限定器 C++0x
  虚类限定器序列 虚类限定器 C++0x
虚类限定器:
  止 C++0x
类键:
  类
  构
  联

类.内存
成员规范:
  成员声明 成员规范 可选
  访问限定器:成员规范 可选
成员声明:
  属性限定器序列 可选 声明限定器序列 可选 成员声明器列表 可选;C++0x
  定义函数; 可选
  用声明
  静断声明 C++0x
  模板声明
  别名声明 C++0x
成员声明器列表:
  成员声明器
  成员声明器列表,成员声明器
成员声明器:
  声明器 虚限定器序列 可选 纯限定寄 可选
  声明器 虚限定器序列 可选 括等号初化器 可选 C++0x
  标识符 可选 属性限定器序列 可选 虚限定器序列 可选:常数式
虚限定器序列:
  虚限定器
  虚限定器序列 虚限定器
虚限定器:
  盖
  止
  新
纯限定器:
  =0

类.继承
基句:
  :基限定器列表
基限定器列表:
  基限定器... 可选 C++0x
  基限定器列表,基限定器... 可选 C++0x
基限定器:
  属性限定器序列 可选 基类型限定器 C++0x
  属性限定器序列 可选 虚 访问限定器 可选 基类型限定器 C++0x
  属性限定器序列 可选 访问限定器 虚 可选 基类型限定器 C++0x
类或推导:
  :: 可选 嵌套名限定器 可选 类名 C++0x
  推导型限定器 C++0x
基类型限定器:
  类或推导 C++0x
访问限定器:
  私
  保护
  公

类.转换.函数型
转换函数标识:
  符号 转换型标识
转换型标识:
  类型限定器序列 转换声明器 可选
转换声明器:
  针符号 转换声明器 可选

类.基.初化
构造器初化器:
  :内存初化器列表
内存初化器列表:
  内存初化器... 可选 C++0x
  内存初化器,内存初化器列表... 可选 C++0x
内存初化器:
  内存初化器标识(式列表 可选)
  内存初化器标识 括号初化列表 C++0x
内存初化器标识:
  类或推导
  标识符

重载.操作
符号函数标识:   见C++标准核心语言问题n.189
  符号 可重载符号
  符号 可重载符号<模板实参列表 可选>
可重载符号:   见C++标准核心语言问题n.189
  新 删 新[] 删[] + - * / % ^ & | ~ !  = < > += -= *= /= %= ^= &= |= << >> >>= <<= == != <= >= && || ++ -- , ->* -> () []

重载.字面
字面符号标识:
  符号""标识符 C++0x

模板
模板声明:
  元<模板形参列表>声明 C++0x-保留导出关键字,未来用
模板形参列表:
  模板形参
  模板形参列表,模板形参

模板.参数
模板形参:
  类型形参
  形参声明
类型形参:
  类... 可选 标识符 可选 C++0x
  类 标识符 可选=型标
  型名... 可选 标识符 可选 C++0x
  型名 标识符 可选=型标
  元<模板形参列表>类... 可选 标识符 可选 C++0x
  元<模板形参列表>类 标识符 可选=标识式

模板.名
简单模板标识:
  模板名<模板实参列表 可选>C++0x
模板标识:
  简单模板标识 C++0x
  符号函数标识<模板实参列表 可选>C++0x
  字面符号标识<模板实参列表 可选>C++0x
模板名:
  标识符
模板实参列表:
  模板实参... 可选 C++0x
  模板实参列表,模板实参... 可选 C++0x
模板实参:
  常数式 C++0x
  型标 C++0x
  标识式 C++0x

模板.资源
型名限定器:
  型名:: 可选 嵌套名限定器 标识符 C++0x
  型名:: 可选 嵌套名限定器 元 可选 简单模板标识 C++0x

模板.显
显实例:
  外 可选 元 声明 C++0x

模板.解释.特殊
显特化:
  元<>声明

异常
试块:
  试 组合句 处理器序列
函数试块:
  试 构造器初化器 可选 组合句 处理器序列 C++0x
处理器序列:
  处理器
  处理器 处理器序列
处理器:
  抓(声明异常)组合句
声明异常:
  属性限定器序列 可选 类型限定器序列 声明器 C++0x
  属性限定器序列 可选 类型限定器序列 抽象声明符 可选 C++0x
  ... C++0x
抛式:
  抛 赋值式选项

异常.特殊
异常规范:
  动态异常规范 C++0x
  无异规范 C++0x
动态异常规范:
  抛(型标列表 可选)C++0x
型标列表:
  型标... 可选 C++0x
  型标列表,型标... 可选 C++0x
无异规范:
  无异(常数式)C++0x
  无异 C++0x

c++
预处理文件:
  组 可选
组:
  组部分
  组 组部分
组部分:
  如节
  控制行
  文本行 C++0x
  #非指令 C++0x
如节:
  如组 异如组 可选 异组 可选 结束如果行
如组:
  #如 常数式 新行 组 可选
  #如定义 标识符 新行 组 可选
  #如未定义 标识符 新行 组 可选
异如组:
  异如组
  异如组 异如组
异如组:
  #异如 常数式 新行 组 可选
异组:
  #异 新行 组 可选
结束如果行:
  #结束如果 新行
控制行:
  #包含 预令牌 新行
  #定义 标识符 替代列表 新行
  #定义 标识符 左括号 标识符列表 可选)替代列表 新行 C++0x
  #定义 标识符 左括号 标识符列表,...)替代列表 新行 C++0x
  #未定义 标识符 新行
  #行 预令牌 新行
  #错误 预令牌 可选 新行
  #指示 预令牌 可选 新行
  #新行
文本行:
  预令牌 可选 新行 C++0x
非指令:
  预令牌 新行 C++0x
左括号:
  前无空格的(
标识符列表:
  标识符
  标识符列表,标识符
替代列表:
  预令牌 可选
预令牌:
  预处理令牌
  预令牌 预处理令牌
新行:
  新行符

关注下面的标签,发现更多相似文章