1 <rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="m-1">
2 <data xmlns="urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring">module turing-machine {
3 namespace "http://example.net/turing-machine";
7 "Data model for the Turing Machine.";
19 "Type of symbols appearing in tape cells.
21 A blank is represented as an empty string where necessary.";
27 "Type for indexing tape cells.";
33 "Type for indexing states of the control unit.";
43 "Possible directions for moving the read/write head, one cell
44 to the left or right (default).";
49 "The tape of the Turing Machine is represented as a sparse
54 "List of non-blank cells.";
58 "Coordinate (index) of the tape cell.";
66 "Symbol appearing in the tape cell.
68 Blank (empty string) is not allowed here because the
69 'cell' list only contains non-blank cells.";
74 container turing-machine {
76 "State data and configuration of a Turing Machine.";
82 "Current state of the control unit.
84 The initial state is 0.";
92 "Position of tape read/write head.";
98 "The contents of the tape.";
102 container transition-function {
104 "The Turing Machine is configured by specifying the
105 transition function.";
108 unique "input/state input/symbol";
110 "The list of transition rules.";
114 "An arbitrary label of the transition rule.";
119 "Input parameters (arguments) of the transition rule.";
124 "Current state of the control unit.";
131 "Symbol read from the tape cell.";
137 "Output values of the transition rule.";
141 "New state of the control unit. If this leaf is not
142 present, the state doesn't change.";
148 "Symbol to be written to the tape cell. If this leaf is
149 not present, the symbol doesn't change.";
155 "Move the head one cell to the left or right";
164 "Initialize the Turing Machine as follows:
166 1. Put the control unit into the initial state (0).
168 2. Move the read/write head to the tape cell with coordinate
171 3. Write the string from the 'tape-content' input parameter to
172 the tape, character by character, starting at cell 0. The
173 tape is othewise empty.";
179 "The string with which the tape shall be initialized. The
180 leftmost symbol will be at tape coordinate 0.";
187 "Start the Turing Machine operation.";
192 "Start the Turing Machine operation and let it run until it is halted
193 or ALL the defined breakpoint conditions are satisfied.";
198 "What state the control unit has to be at for the execution to be paused.";
204 "Position of tape read/write head for which the breakpoint applies.";
209 "What content the tape has to have for the breakpoint to apply.";
218 "The number of steps executed since the last 'run-until' call.";
224 "'True' if the Turing machine is halted, 'false' if it is only paused.";
229 notification halted {
231 "The Turing Machine has halted. This means that there is no
232 transition rule for the current state and tape symbol.";
237 "The state of the control unit in which the machine has
242 notification paused {
244 "The Turing machine has reached a breakpoint and was paused.";
249 "State of the control unit in which the machine was paused.";
256 "Position of tape read/write head when the machine was paused.";
261 "Content of the tape when the machine was paused.";