atoms

Implementation level

Type

Status

CML extraction template

image1

HTML5 representation

image2

Template attributes

Attribute

Value

source

Turbomole control file

id

atoms

name

Atom definition section

pattern

\s*\u0024atoms\s*

endPattern

\s*\u0024.*

endPattern2

~

endOffset

0

xml:base

atoms.xml

Input

$atoms
ru 1                                                                           \
   basis =ru def2-SVP                                                          \
   ecp   =ru def2-ecp                                                          \
   jbas  =ru def2-SVP
n  2-7                                                                         \
   basis =n def2-SVP                                                           \
   jbas  =n def2-SVP
h  8-31                                                                        \
   basis =h def2-SVP                                                           \
   jbas  =h def2-SVP
c  32-61                                                                       \
   basis =c def2-SVP                                                           \
   jbas  =c def2-SVP

Output text

 1<comment class="example.output" id="atoms">
 2       <module cmlx:templateRef="atoms">
 3          <module cmlx:templateRef="atomdef">
 4             <list dictRef="t:atom">
 5                <scalar dataType="xsd:string" dictRef="cc:elementType">ru</scalar>
 6                <scalar dataType="xsd:string" dictRef="t:atomrange">1</scalar>
 7             </list>
 8             <list dictRef="t:basis">
 9                <scalar dataType="xsd:string" dictRef="cc:elementType">ru</scalar>
10                <scalar dataType="xsd:string" dictRef="t:basis">def2-SVP</scalar>
11             </list>
12             <list dictRef="t:ecp">
13                <scalar dataType="xsd:string" dictRef="cc:elementType">ru</scalar>
14                <scalar dataType="xsd:string" dictRef="t:ecp">def2-ecp</scalar>
15             </list>
16          </module>
17          <module cmlx:templateRef="atomdef">
18             <list dictRef="t:atom">
19                <scalar dataType="xsd:string" dictRef="cc:elementType">n</scalar>
20                <scalar dataType="xsd:string" dictRef="t:atomrange">2-7</scalar>
21             </list>
22             <list dictRef="t:basis">
23                <scalar dataType="xsd:string" dictRef="cc:elementType">n</scalar>
24                <scalar dataType="xsd:string" dictRef="t:basis">def2-SVP</scalar>
25             </list>
26          </module>
27          <module cmlx:templateRef="atomdef">
28             <list dictRef="t:atom">
29                <scalar dataType="xsd:string" dictRef="cc:elementType">h</scalar>
30                <scalar dataType="xsd:string" dictRef="t:atomrange">8-31</scalar>
31             </list>
32             <list dictRef="t:basis">
33                <scalar dataType="xsd:string" dictRef="cc:elementType">h</scalar>
34                <scalar dataType="xsd:string" dictRef="t:basis">def2-SVP</scalar>
35             </list>
36          </module>
37          <module cmlx:templateRef="atomdef">
38             <list dictRef="t:atom">
39                <scalar dataType="xsd:string" dictRef="cc:elementType">c</scalar>
40                <scalar dataType="xsd:string" dictRef="t:atomrange">32-61</scalar>
41             </list>
42             <list dictRef="t:basis">
43                <scalar dataType="xsd:string" dictRef="cc:elementType">c</scalar>
44                <scalar dataType="xsd:string" dictRef="t:basis">def2-SVP</scalar>
45             </list>
46          </module>
47       </module>
48    </comment>

Template definition

 1<record repeat="1" />
 2<templateList>  <template id="atomdef" pattern="\s*[A-Za-z]{1,3}\s*([0-9,-]+)[\s*\\?]+" endPattern="\s*[A-Za-z]{1,3}\s*([0-9,-]+)[\s*\\?]+" endPattern2="~" endOffset="0" repeat="*">    <record>{A,cc:elementType}{X,t:atomrange}\s*\\?\s*</record>    <templateList>      <template id="basis" pattern="\s*basis.*" endPattern=".*" endOffset="0">        <record>\s*basis\s*=\s*{A,cc:elementType}{X,t:basis}[\s*\\?]+</record>        <transform process="addDictRef" xpath=".//cml:list/cml:list" value="t:basis" />        <transform process="pullup" xpath=".//cml:list/cml:list" repeat="2" />
 3                </template>      <template id="jbas" pattern="\s*jbas.*" endPattern=".*" endOffset="0">        <record>\s*jbas\s*=\s*{A,cc:elementType}{X,t:jbas}[\s*\\?]+</record>        <transform process="addDictRef" xpath=".//cml:list/cml:list" value="t:jbas" />        <transform process="pullup" xpath=".//cml:list/cml:list" repeat="2" />
 4                </template>      <template id="ecp" pattern="\s*ecp.*" endPattern=".*" endOffset="0">        <record>\s*ecp\s*=\s*{A,cc:elementType}{X,t:ecp}[\s*\\?]+</record>        <transform process="addDictRef" xpath=".//cml:list/cml:list" value="t:ecp" />        <transform process="pullup" xpath=".//cml:list/cml:list" repeat="2" />
 5                </template>
 6            </templateList>    <transform process="addDictRef" xpath=".//cml:list/cml:list" value="t:atom" />    <transform process="pullup" xpath=".//cml:list/cml:list" />
 7        </template>
 8    </templateList>
 9<transform process="delete" xpath=".//cml:list[count(*)=0]" />
10<transform process="delete" xpath=".//cml:list[count(*)=0]" />
11<transform process="delete" xpath=".//cml:module[count(*)=0]" />