编辑: 无理的喜欢 2014-03-26

$_ti_or_ | $_ti_eq_ = $_ti_la_ (left angle) <

$_ti_ra_ (right angle) >

$_ti_lb_ (left brace) { $_ti_rb_ (right brace) } $_ti_ls_ (left square) [ $_ti_rs_ (right square) ] $_ti_lr_ (left round) ( $_ti_rr_ (right round) ) $_ti_qt_ 第二,系统预定义了一些有特殊含义的变量: $_ti_ch_ 通配符: 任意一个字符(字母、数字、汉字);

支持自定义权重,提取需要提取 的内容. $_ti_filler_ 通配符:

0 到任意多个字符;

不支持自定义权重,纯粹用于过 滤. $_ti_main_ 现已废弃. $_ti_garbage_ 保留,暂未定义. 3.3.2.4. 声明变量 如果要应用的规则,所在的文法不可见,但又要引用它,则可以使用动态变 量关键字来声明,小型文法一般不需要. 科大讯飞语义开放平台 《abnf 文法规范》

16 3.4. 运算符 变量定义部分从逻辑上看,是几种不同的逻辑结构,这些结构由不同的运算 符共同形成.主要涉及的结构和运算符为:串连(空白符)、选择(分割符)、 可选(中括号)、分组(小括号)、重复(尖括号). 3.4.1. 规则声明引用符――$'

和'

@'

单目操作,用于规则定义中的声明或规则的引用. 如 $x = $y 一下 ,第一个'

$'

表示声明,声明 x 规则,第二个表示引 用,引用 y 规则. 引用时只用$,定义时两者皆可.区别前述已经介绍. 3.4.2. 定义符―― '

='

双目操作,如上规则中的'

='

,在一个规则定义中必须且只能出现一次. 3.4.3. 注释符―― '

//'

或'

前者行注释,后者块注释.和C语言的使用方式一致,但是//行注释在末尾 时不能用反斜杠续行. $rule = a /* 这里是注释 */b;

相当于 $rule = a b;

3.4.4. 语义符――'

{'

'

}'

必须左右配对使用,不可嵌套 内容包含两种操作符'

:'

和'

%'

分别表示语义输出符号分级及幅值 左右配对操作符之间可嵌套,但不可交错 科大讯飞语义开放平台 《abnf 文法规范》

17 3.4.5. 串连―― 空格符、TAB 双目操作,左右结合顺序无关紧要, 在后接符号为其他操作符时可以不写, 如$a$b 串连相当于程序设计中的顺序结构.由终结词、变量以空白符相隔、顺序排 列,其形式如下: 我查话费 // 终结词的串连 $查询 $费用 // 变量引用的串连 我$want $查询 $费用 // 终结词和变量引用的串连 3.4.6. 选择―― '

|'

选择表示匹配用户输入时,经过几条并行路径中的一条路径.不同的选择分 支使用英文半角 | 来分隔,形式如下: 查|查询 // 终结词的选择 $查询 | $取消 // 变量引用的选择 开通 | $查询 | $取消 // 终结词和变量引用的选择 3.4.7. 可选――中括号 '

['

'

]'

可选表示匹配用户输入时,可以经过一条路径也可以不经过此路径.可选部 分由英文半角中括号 [] 来标记,[ ]之间的部分为可选,形式如下: [我] // 终结词的可选 [$want] // 变量的可选 3.4.8. 分组――小括号 '

('

'

)'

通过英文半角小括号 () 可以将若干个文法单元封装界定为一个结构, () 以内的部分为一个整体单元,可避免文法在阅读上产生歧义. 科大讯飞语义开放平台 《abnf 文法规范》

18 必须左右配对使用,可嵌套,通常用于改变优先级可以改变文法单元的结合 优先级.例如: $order = 我想|要查话费;

这样的结构阅读起来让人费解,因为优先级不如串联符号,这一句等价于: $o........

下载(注:源文件不在本站服务器,都将跳转到源网站下载)
备用下载
发帖评论
相关话题
发布一个新话题