File: program.rng

package info (click to toggle)
mobyle 1.5.5%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 8,284 kB
  • ctags: 2,783
  • sloc: python: 22,709; sh: 33; makefile: 31; ansic: 10; xml: 6
file content (133 lines) | stat: -rw-r--r-- 4,575 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
<?xml version="1.0" encoding="UTF-8"?>
<grammar xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  <include href="common.rng"/>
  <start combine="choice">
    <ref name="Program"/>
  </start>
  <define name="Program">
    <element name="program">
      <ref name="Service"/>
    </element>
  </define>
  <define name="InvocationHead" combine="interleave">
    <interleave>
      <optional>
        <interleave>
          <optional>
            <element name="command">
              <a:documentation>executable name</a:documentation>
              <interleave>
                <optional>
                  <attribute name="path">
                    <a:documentation>custom path	</a:documentation>
                  </attribute>
                </optional>
                <text/>
              </interleave>
            </element>
          </optional>
          <zeroOrMore>
            <element name="env">
              <a:documentation>environment variable for program invocation</a:documentation>
              <interleave>
                <attribute name="name">
                  <a:documentation>name</a:documentation>
                </attribute>
                <text>
                  <a:documentation>value</a:documentation>
                </text>
              </interleave>
            </element>
          </zeroOrMore>
        </interleave>
      </optional>
      <optional>
        <!-- displayed even before the program completes -->
        <element name="progressReport">
          <a:documentation>progress report output for the program</a:documentation>
          <interleave>
            <optional>
              <attribute name="prompt">
                <a:documentation>prompt to "label" the progress report</a:documentation>
              </attribute>
            </optional>
            <text/>
          </interleave>
        </element>
      </optional>
    </interleave>
  </define>
  <define name="InvocationParagraph" combine="interleave">
    <optional>
      <ref name="Argpos"/>
    </optional>
  </define>
  <define name="InvocationParameterElements" combine="interleave">
    <interleave>
      <choice>
        <optional>
          <!-- iscommand : if true& this parameter specify the line of command to run the program  used when the command line is more complicated. -->
          <attribute name="iscommand">
            <a:documentation>command parameter</a:documentation>
            <data type="boolean"/>
          </attribute>
        </optional>
        <optional>
          <element name="paramfile">
            <a:documentation>parameter file</a:documentation>
            <text/>
          </element>
        </optional>
      </choice>
      <optional>
        <ref name="Format">
          <a:documentation>command line chunk evaluation code </a:documentation>
        </ref>
      </optional>
      <optional>
        <ref name="Argpos">
          <a:documentation>command line chunk position index</a:documentation>
        </ref>
      </optional>
      <optional>
        <!--
          this element is relevant only for output parameters, it is used to find the files in which the results are stored
          each code must have ONLY ONE file unix mask 
        -->
        <element name="filenames">
          <a:documentation>result file(s) mask(s) </a:documentation>
          <oneOrMore>
            <ref name="Code"/>
          </oneOrMore>
        </element>
      </optional>
    </interleave>
  </define>
  <define name="Argpos">
    <!--
      in parameter: specifies the position of this parameter on the command line
      in paragraph: specifies the position on the command line for all parameters of this paragraph
      by convention the argpos of command must be 0. if we want args before command we could get negative argpos.
    -->
    <element name="argpos">
      <a:documentation>command line chunk position index </a:documentation>
      <data type="integer"/>
    </element>
  </define>
  <define name="Format">
    <!-- a code which will be evaluated to form the command line -->
    <element name="format">
      <a:documentation>command line chunk construction code</a:documentation>
      <oneOrMore>
        <ref name="Code"/>
      </oneOrMore>
    </element>
  </define>
  <define name="InterfaceType" combine="interleave">
    <choice>
      <value>form</value>
      <value>job_input</value>
      <value>job_output</value>
    </choice>
  </define>
</grammar>