COD CIF解析器
用法
选项
COD CIF解析器用于检测和报告最常见的CIF语法错误。这是使用扩展语法实现的。COD CIF解析器的行为由以下选项控制:
- 修复错误(_E)。启用所有语法错误更正功能。
- 修复数据头.忽略第一个数据块之前的杂散CIF值和丢失的值
数据_
收割台。
- 修复数据块名称。在数据块名称后将杂散的CIF值附加到数据块名称。
- fix_duplicate_tags_with_same_values(具有名称值的固定列表标签)。忽略同一数据块中具有相同值的两个或多个数据项。
- 带有空值的修复重复标记。如果在同一数据块中找到多个数据项,并且该数据项的其余值未知,则使用已知值(而不是“?”或“.”)保留该数据项值。
- 修复字符串引号。将多个未加引号的值放在非循环数据项后面的引号中。
- 允许使用字符串.将以方括号([)开头的未加引号的字符串放在单引号中。
- 固定ctrlz。删除不属于引号或文本字段的DOS EOF(^Z,Ctrl-Z)字符。
- 修复_非ascii_符号.使用编码非ASCII符号数字字符引用.
- 修复丢失闭合双引号。在适当的地方插入缺少的双右引号。
- 修复丢失关闭单引号。在适当的地方插入缺少的单引号。
还有几个其他选项会影响CIF文件的解析方式:
- do_not_unload_text(不展开文本)。在不应用文本字段展开算法的情况下分析文件。
- do_not_unprefix文本。在不应用文本字段取消固定算法的情况下分析文件。
- 无打印(_P)。返回包含错误消息的数据结构,而不是将其直接输出到标准错误流。
用法
所有其他选项也同样打开/关闭。
数据结构
解析的CIF文件的数据块存储在关联数组中,键如下:
- 名称(字符串):CIF数据块的名称;
- 标签(数组):CIF数据块中的数据名称(小写);
- 值(关联数组):键是
标签
数组,值是包含每个数据项的值的数组;
- 类型(关联数组):键是
标签
数组,值是包含每个数据值的词汇派生数据类型的数组;
- 精确度(关联数组):键是
标签
数组,值是包含每个数据项的标准不确定性的数组;
- 循环(数组数组):每个内部数组对应于CIF数据块中的一个循环,并包含循环中存在的数据项列表;
- 内环(关联数组):键是
标签
数组,值对应于外部的索引循环
数组。它被用作优化循环相关搜索中的数据项的索引。
- 到岸价(关联数组):具有键
专业
和少数的
对应于CIF格式的次要版本和主要版本,当前为1.1或2.0。
简单CIF文件的Perl表示示例
进一步阅读