Counts the child nodes of a compound node of type "element/part" or "element/property".
<node name="count_lecturers" channel="inline" format="access/count" model=""> <node name="count" channel="inline" format="text/cybol-path" model=".count"/> <node name="part" channel="inline" format="text/cybol-path" model=".domain.lecturers"/> </node> <node name="count_weekdays" channel="inline" format="access/count" model=""> <node name="count" channel="inline" format="text/cybol-path" model="#column_count"/> <node name="part" channel="inline" format="text/cybol-path" model=".domain.weekdays"/> </node> <node name="count_nodes" channel="inline" format="access/count" model=""> <node name="count" channel="inline" format="text/cybol-path" model="#count"/> <node name="part" channel="inline" format="text/cybol-path" model=".db.(#list)"/> </node>
Name | Required | Format | Description |
---|---|---|---|
count | true | text/cybol-path | The number of counted child nodes as result. |
part | true | text/cybol-path | The compound node of type |
Retrieves a part's format.
<node name="retrieve_details" channel="inline" format="access/get-format" model=""> <node name="element" channel="inline" format="text/cybol-path" model="#format"/> <node name="part" channel="inline" format="text/cybol-path" model=".app.node"/> </node> <node name="get_xdt_field_format" channel="inline" format="access/get-format" model=""> <node name="element" channel="inline" format="text/cybol-path" model=".temporary.xdt.field.format"/> <node name="part" channel="inline" format="text/cybol-path" model=".temporary.xdt.field.root"/> </node>
Name | Required | Format | Description |
---|---|---|---|
element | true | text/cybol-path | The part's format as return value. |
part | true | text/cybol-path | The node whose format is to be retrieved. |
Retrieves a part's name.
<node name="get_xdt_field_name" channel="inline" format="access/get-name" model=""> <node name="element" channel="inline" format="text/cybol-path" model=".temporary.xdt.field.name"/> <node name="part" channel="inline" format="text/cybol-path" model=".temporary.xdt.field.root"/> </node> <node name="copy_name_of_part" channel="inline" format="access/get-name" model=""> <node name="element" channel="inline" format="text/cybol-path" model="#name"/> <node name="part" channel="inline" format="text/cybol-path" model=".list.[#index]"/> </node>
Name | Required | Format | Description |
---|---|---|---|
element | true | text/cybol-path | The part's name as return value. |
part | true | text/cybol-path | The node whose name is to be retrieved. |
Retrieves a part's type.
<node name="copy_type_of_part" channel="inline" format="access/get-type" model=""> <node name="element" channel="inline" format="text/cybol-path" model="#type"/> <node name="part" channel="inline" format="text/cybol-path" model=".part_1"/> </node>
Name | Required | Format | Description |
---|---|---|---|
element | true | text/cybol-path | The part's type as return value. |
part | true | text/cybol-path | The node whose type is to be retrieved. |
Indicates if the given part is empty, that is its count is zero.
<node name="test_empty" channel="inline" format="access/indicate-empty" model=""> <node name="result" channel="inline" format="text/cybol-path" model="#flag"/> <node name="part" channel="inline" format="text/cybol-path" model=".patients.[#index].surname"/> </node>
Name | Required | Format | Description |
---|---|---|---|
result | true | text/cybol-path | The flag being set to true if the part is empty, or being left untouched otherwise. |
part | true | text/cybol-path | The node which is to be checked for emptiness. |
Indicates if the given part is not empty, that is its count is greater than zero.
<node name="test_exists" channel="inline" format="access/indicate-exists" model=""> <node name="result" channel="inline" format="text/cybol-path" model="#flag"/> <node name="part" channel="inline" format="text/cybol-path" model="#number"/> </node> <!-- Verify existence of given url path. --> <node name="test_query" channel="inline" format="access/indicate-exists" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".var.query_exists"/> <node name="part" channel="inline" format="text/cybol-path" model=".var.request:uri:query"/> </node> <node name="evaluate_query" channel="inline" format="flow/branch" model=""> <node name="criterion" channel="inline" format="text/cybol-path" model=".var.query_exists"/> <node name="true" channel="inline" format="text/cybol-path" model=".logic.evaluate_query"/> <!-- CAUTION! Sending a response is important, even if the query was empty or not understood, since some browsers request a "/favicon.ico" or other things and if no response was sent, the browser would wait forever and block requests from other clients. --> <node name="false" channel="inline" format="text/cybol-path" model=".logic.send.empty_message"/> </node>
Name | Required | Format | Description |
---|---|---|---|
result | true | text/cybol-path | The flag being set to true if the part is not null and not empty, or being left untouched otherwise. |
part | true | text/cybol-path | The node which is to be checked for existence and non-empty data. |
Disables the communication channel, so that no more requests/events can be detected.
<node name="disable_server_socket" channel="inline" format="activate/disable" model=""> <node name="channel" channel="inline" format="meta/channel" model="socket"/> <node name="port" channel="inline" format="number/integer" model="1971"/> </node> <node name="disable_display_server" channel="inline" format="activate/disable" model=""> <node name="channel" channel="inline" format="meta/channel" model="display"/> </node>
Name | Required | Format | Description |
---|---|---|---|
channel | true | text/cybol-path | meta/channel | The communication channel. |
port | false | text/cybol-path | number/integer | The service identification, for example http socket port 80. If null, the default is zero, for example with channel display. |
Enables the communication channel, so that requests/events can be detected. Calling the operation "feel/sense" afterwards is not necessary for channel "display" on a linux operating system with x window system, since "activate/enable" catches the events of all client windows. On a windows operating system, however, one separate event thread is run per window, so that calling "feel/sense" after this "activate/enable" is necessary. Calling this operation "activate/enable" is not necessary for channels "terminal" or "serial", since clients get opened manually using "dispatch/open" and events can be detected right afterwards using the operation "feel/sense". The requesting client gets appended to an internal accept buffer list. It can be accessed in operation "dispatch/open" using the property "identification". However, this works only, if the "server" flag is set to true, so that the client is read from the accept buffer list.
<node name="enable_server_socket" channel="inline" format="activate/enable" model=""> <node name="channel" channel="inline" format="meta/channel" model="socket"/> <node name="port" channel="inline" format="number/integer" model="1971"/> <node name="handler" channel="inline" format="text/cybol-path" model=".logic.handle.enable"/> </node> <!-- Complete socket example with operations: enable, open, sense, identify, close. --> <!-- File "startup.cybol". --> <node name="enable_requests" channel="inline" format="activate/enable" model=""> <node name="channel" channel="inline" format="meta/channel" model="socket"/> <node name="port" channel="inline" format="number/integer" model="1971"/> <node name="handler" channel="inline" format="text/cybol-path" model=".logic.handle.enable"/> </node> <!-- File "enable.cybol". This is the enable handler file belonging to the above call of ".logic.handle.enable". --> <node name="open_client" channel="inline" format="dispatch/open" model=""> <node name="channel" channel="inline" format="meta/channel" model="socket"/> <!-- Open client device in SERVER mode. It was already pre-configured inside by the accepting server socket. --> <node name="server" channel="inline" format="logicvalue/boolean" model="true"/> <node name="port" channel="inline" format="number/integer" model="1971"/> <node name="identification" channel="inline" format="text/cybol-path" model=".var.client_socket"/> </node> <node name="sense_client_data" channel="inline" format="feel/sense" model=""> <node name="channel" channel="inline" format="meta/channel" model="socket"/> <node name="server" channel="inline" format="logicvalue/boolean" model="true"/> <node name="port" channel="inline" format="number/integer" model="1971"/> <node name="sender" channel="inline" format="text/cybol-path" model=".var.client_socket"/> <node name="language" channel="inline" format="meta/language" model="message/http-request"/> <!-- This is the callback function executed when the client sends data. --> <node name="handler" channel="inline" format="text/cybol-path" model=".logic.handle.sense"/> <!-- This is the callback function executed when the client does not respond and is to be closed. --> <node name="closer" channel="inline" format="text/cybol-path" model=".logic.handle.close"/> </node> <!-- File "sense.cybol" with processing instruction is left out here. --> <!-- File "close.cybol". This is the close handler file belonging to the above call of ".logic.handle.close". --> <!-- Get client belonging to the handler that was placed into the interrupt pipe. --> <node name="get_client_id" channel="inline" format="communicate/identify" model=""> <node name="identification" channel="inline" format="text/cybol-path" model=".var.client_socket"/> </node> <node name="handle_close" channel="inline" format="dispatch/close" model=""> <node name="channel" channel="inline" format="meta/channel" model="socket"/> <node name="server" channel="inline" format="logicvalue/boolean" model="true"/> <node name="port" channel="inline" format="number/integer" model="1971"/> <node name="identification" channel="inline" format="text/cybol-path" model=".var.client_socket"/> </node> <!-- Fill internal input buffer of the corresponding windows with received events. --> <node name="enable_display_server" channel="inline" format="activate/enable" model=""> <node name="channel" channel="inline" format="meta/channel" model="display"/> </node> <node name="enable_display_server_and_add_general_handler" channel="inline" format="activate/enable" model=""> <node name="channel" channel="inline" format="meta/channel" model="display"/> <!-- For standard window event processing, use operation "feel/sense" which allows to hand over a SPECIFIC handler for each window. However, it is possible to assign another callback function here, which is OPTIONAL and would be executed upon arrival of EACH event, independently of any window. --> <node name="handler" channel="inline" format="text/cybol-path" model=".handle_each_event"/> </node> <!-- Complete display example with operations: enable, sense, identify, receive. The "maintain/startup" and "dispatch/open" operations are assumed to have been called before. --> <node name="enable_server" channel="inline" format="activate/enable" model=""> <node name="channel" channel="inline" format="meta/channel" model="display"/> </node> <node name="sense_client_window_events" channel="inline" format="feel/sense" model=""> <node name="channel" channel="inline" format="meta/channel" model="display"/> <node name="server" channel="inline" format="logicvalue/boolean" model="true"/> <node name="sender" channel="inline" format="text/cybol-path" model=".gui.window_id"/> <node name="handler" channel="inline" format="text/cybol-path" model=".logic.handle"/> </node> <!-- File "handle.cybol". This is the event handler file belonging to the above call of ".logic.handle". --> <!-- Get window client belonging to the handler that was placed into the interrupt pipe. --> <node name="get_window_id" channel="inline" format="communicate/identify" model=""> <node name="identification" channel="inline" format="text/cybol-path" model=".gui.window_id"/> </node> <!-- The element hierarchy of the window given as "medium" gets searched through to identify a suitable action. --> <node name="receive_next_event" channel="inline" format="communicate/receive" model=""> <node name="channel" channel="inline" format="meta/channel" model="display"/> <node name="server" channel="inline" format="logicvalue/boolean" model="true"/> <node name="sender" channel="inline" format="text/cybol-path" model=".gui.window_id"/> <node name="language" channel="inline" format="meta/language" model="message/gui-request"> <node name="medium" channel="inline" format="text/cybol-path" model=".gui.window"/> </node> <node name="format" channel="inline" format="meta/format" model="text/plain"/> <node name="message" channel="inline" format="text/cybol-path" model=".gui.action"/> <!-- Read indirectly from internal buffer into which data have been written by activate/enable. --> <node name="asynchronicity" channel="inline" format="logicvalue/boolean" model="true"/> </node>
Name | Required | Format | Description |
---|---|---|---|
channel | true | text/cybol-path | meta/channel | The communication channel. |
port | false | text/cybol-path | number/integer | The service identification, for example http socket port 80. If null, the default is zero, for example with channel display. |
handler | false | text/cybol-path | The callback cybol model to be executed upon arrival of a request/event. |
Determines the absolute value of a number.
<node name="absolute" channel="inline" format="calculate/absolute" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".result"/> <node name="operand" channel="inline" format="number/integer" model="-2,+4"/> </node>
Name | Required | Format | Description |
---|---|---|---|
result | true | text/cybol-path | The absolute value of the given number. |
operand | true | text/cybol-path | number/any | The source number. |
count | false | text/cybol-path | number/integer | The number of elements to be calculated. This is relevant only for arrays with more than one element. If null, the default is the lesser of left and right operand count. |
result_index | false | text/cybol-path | number/integer | The result index from where to start calculating. If null, the default is zero. |
operand_index | false | text/cybol-path | number/integer | The operand index from where to start calculating. If null, the default is zero. |
Adds the operand to the result. sum = summand + summand Caution! Do not use this operation for adding characters (strings)! They may be concatenated by using the "modify/append" operation.
<node name="add_integer" channel="inline" format="calculate/add" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".result"/> <node name="operand" channel="inline" format="number/integer" model="2"/> </node> <node name="add_arrays_with_equal_size" channel="inline" format="calculate/add" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".result"/> <node name="operand" channel="inline" format="number/integer" model="1,2,3"/> </node> <node name="add_summand_to_sum" channel="inline" format="calculate/add" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".sum"/> <node name="operand" channel="inline" format="text/cybol-path" model=".summand"/> </node>
Name | Required | Format | Description |
---|---|---|---|
result | true | text/cybol-path | The sum resulting from the addition. It initially represents the first summand. |
operand | true | text/cybol-path | number/any | The second summand. |
count | false | text/cybol-path | number/integer | The number of elements to be calculated. This is relevant only for arrays with more than one element. If null, the default is the lesser of left and right operand count. |
result_index | false | text/cybol-path | number/integer | The result index from where to start calculating. If null, the default is zero. |
operand_index | false | text/cybol-path | number/integer | The operand index from where to start calculating. If null, the default is zero. |
Divides the result by the operand. quotient = dividend / divisor
<node name="divide_by_two" channel="inline" format="calculate/divide" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".result"/> <node name="operand" channel="inline" format="number/integer" model="2"/> </node>
Name | Required | Format | Description |
---|---|---|---|
result | true | text/cybol-path | The quotient resulting from the division. It initially represents the dividend. |
operand | true | text/cybol-path | number/any | The divisor. |
count | false | text/cybol-path | number/integer | The number of elements to be calculated. This is relevant only for arrays with more than one element. If null, the default is the lesser of left and right operand count. |
result_index | false | text/cybol-path | number/integer | The result index from where to start calculating. If null, the default is zero. |
operand_index | false | text/cybol-path | number/integer | The operand index from where to start calculating. If null, the default is zero. |
Determines the greater of two values.
<node name="determine_maximum" channel="inline" format="calculate/maximum" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".maximum"/> <node name="operand" channel="inline" format="number/integer" model=".value"/> </node>
Name | Required | Format | Description |
---|---|---|---|
result | true | text/cybol-path | The greater of the two given values. It initially represents the first value. |
operand | true | text/cybol-path | number/any | The second value. |
count | false | text/cybol-path | number/integer | The number of elements to be calculated. This is relevant only for arrays with more than one element. If null, the default is the lesser of left and right operand count. |
result_index | false | text/cybol-path | number/integer | The result index from where to start calculating. If null, the default is zero. |
operand_index | false | text/cybol-path | number/integer | The operand index from where to start calculating. If null, the default is zero. |
Determines the lesser of two values.
<node name="determine_minimum" channel="inline" format="calculate/minimum" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".minimum"/> <node name="operand" channel="inline" format="number/integer" model=".value"/> </node>
Name | Required | Format | Description |
---|---|---|---|
result | true | text/cybol-path | The lesser of the two given values. It initially represents the first value. |
operand | true | text/cybol-path | number/any | The second value. |
count | false | text/cybol-path | number/integer | The number of elements to be calculated. This is relevant only for arrays with more than one element. If null, the default is the lesser of left and right operand count. |
result_index | false | text/cybol-path | number/integer | The result index from where to start calculating. If null, the default is zero. |
operand_index | false | text/cybol-path | number/integer | The operand index from where to start calculating. If null, the default is zero. |
Determines the remainder of the integer division. remainder = dividend % divisor
<node name="determine_minimum" channel="inline" format="calculate/modulo" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".result"/> <node name="operand" channel="inline" format="number/integer" model="2"/> <node name="type" channel="inline" format="meta/type" model="number/integer"/> </node>
Name | Required | Format | Description |
---|---|---|---|
result | true | text/cybol-path | The remainder of the integer division. It initially represents the dividend. |
operand | true | text/cybol-path | number/any | The divisor. |
count | false | text/cybol-path | number/integer | The number of elements to be calculated. This is relevant only for arrays with more than one element. If null, the default is the lesser of left and right operand count. |
result_index | false | text/cybol-path | number/integer | The result index from where to start calculating. If null, the default is zero. |
operand_index | false | text/cybol-path | number/integer | The operand index from where to start calculating. If null, the default is zero. |
Multiplies the result with the operand. product = factor * factor
<node name="multiply" channel="inline" format="calculate/multiply" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".result"/> <node name="operand" channel="inline" format="number/integer" model="3"/> </node>
Name | Required | Format | Description |
---|---|---|---|
result | true | text/cybol-path | The product resulting from the multiplication. It initially represents the first factor. |
operand | true | text/cybol-path | number/any | The second factor. |
count | false | text/cybol-path | number/integer | The number of elements to be calculated. This is relevant only for arrays with more than one element. If null, the default is the lesser of left and right operand count. |
result_index | false | text/cybol-path | number/integer | The result index from where to start calculating. If null, the default is zero. |
operand_index | false | text/cybol-path | number/integer | The operand index from where to start calculating. If null, the default is zero. |
Negates a number by altering its sign. result = - operand
<node name="negate_number" channel="inline" format="calculate/negate" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".result"/> <node name="operand" channel="inline" format="number/integer" model="-4"/> </node>
Name | Required | Format | Description |
---|---|---|---|
result | true | text/cybol-path | The negated number. |
operand | true | text/cybol-path | number/any | The number to be negated. |
count | false | text/cybol-path | number/integer | The number of elements to be calculated. This is relevant only for arrays with more than one element. If null, the default is the lesser of left and right operand count. |
result_index | false | text/cybol-path | number/integer | The result index from where to start calculating. If null, the default is zero. |
operand_index | false | text/cybol-path | number/integer | The operand index from where to start calculating. If null, the default is zero. |
Reduces a vulgar fraction to the lowest possible denominator.
<node name="reduce_fraction" channel="inline" format="calculate/reduce" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".result"/> <node name="operand" channel="inline" format="number/fraction-vulgar" model="4/8"/> </node>
Name | Required | Format | Description |
---|---|---|---|
result | true | text/cybol-path | The reduced vulgar fraction with lowest possible denominator. |
operand | true | text/cybol-path | number/any | The vulgar fraction to be reduced. |
count | false | text/cybol-path | number/integer | The number of elements to be calculated. This is relevant only for arrays with more than one element. If null, the default is the lesser of left and right operand count. |
result_index | false | text/cybol-path | number/integer | The result index from where to start calculating. If null, the default is zero. |
operand_index | false | text/cybol-path | number/integer | The operand index from where to start calculating. If null, the default is zero. |
Subtracts the operand from the result. difference = minuend - subtrahend
<node name="subtract_integer" channel="inline" format="calculate/subtract" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".result"/> <node name="operand" channel="inline" format="number/integer" model="5"/> </node>
Name | Required | Format | Description |
---|---|---|---|
result | true | text/cybol-path | The difference resulting from the subtraction. It initially represents the minuend. |
operand | true | text/cybol-path | number/any | The subtrahend. |
count | false | text/cybol-path | number/integer | The number of elements to be calculated. This is relevant only for arrays with more than one element. If null, the default is the lesser of left and right operand count. |
result_index | false | text/cybol-path | number/integer | The result index from where to start calculating. If null, the default is zero. |
operand_index | false | text/cybol-path | number/integer | The operand index from where to start calculating. If null, the default is zero. |
Casts a value to type "byte".
<node name="cast_value" channel="inline" format="cast/byte" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".value"/> <node name="source" channel="inline" format="number/integer" model="123"/> </node>
Name | Required | Format | Description |
---|---|---|---|
destination | true | text/cybol-path | The destination value with the desired type to cast to. |
source | true | text/cybol-path | number/any | The source value to cast from. |
count | false | text/cybol-path | number/integer | The number of elements to be casted. This is relevant only for arrays with more than one element. If null, the default is the lesser of left and right operand count. |
destination_index | false | text/cybol-path | number/integer | The destination index from where to start writing values to. If null, the default is zero. |
source_index | false | text/cybol-path | number/integer | The source index from where to start reading values from. If null, the default is zero. |
Casts a value to type "character".
<node name="cast_value" channel="inline" format="cast/character" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".value"/> <node name="source" channel="inline" format="number/integer" model="54"/> </node>
Name | Required | Format | Description |
---|---|---|---|
destination | true | text/cybol-path | The destination value with the desired type to cast to. |
source | true | text/cybol-path | number/any | The source value to cast from. |
count | false | text/cybol-path | number/integer | The number of elements to be casted. This is relevant only for arrays with more than one element. If null, the default is the lesser of left and right operand count. |
destination_index | false | text/cybol-path | number/integer | The destination index from where to start writing values to. If null, the default is zero. |
source_index | false | text/cybol-path | number/integer | The source index from where to start reading values from. If null, the default is zero. |
Casts a value to type "double".
<node name="cast_value" channel="inline" format="cast/double" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".value"/> <node name="source" channel="inline" format="number/integer" model="123"/> </node>
Name | Required | Format | Description |
---|---|---|---|
destination | true | text/cybol-path | The destination value with the desired type to cast to. |
source | true | text/cybol-path | number/any | The source value to cast from. |
count | false | text/cybol-path | number/integer | The number of elements to be casted. This is relevant only for arrays with more than one element. If null, the default is the lesser of left and right operand count. |
destination_index | false | text/cybol-path | number/integer | The destination index from where to start writing values to. If null, the default is zero. |
source_index | false | text/cybol-path | number/integer | The source index from where to start reading values from. If null, the default is zero. |
Casts a value to type "integer".
<node name="cast_value" channel="inline" format="cast/integer" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".value"/> <node name="source" channel="inline" format="number/float" model="123.45"/> </node>
Name | Required | Format | Description |
---|---|---|---|
destination | true | text/cybol-path | The destination value with the desired type to cast to. |
source | true | text/cybol-path | number/any | The source value to cast from. |
count | false | text/cybol-path | number/integer | The number of elements to be casted. This is relevant only for arrays with more than one element. If null, the default is the lesser of left and right operand count. |
destination_index | false | text/cybol-path | number/integer | The destination index from where to start writing values to. If null, the default is zero. |
source_index | false | text/cybol-path | number/integer | The source index from where to start reading values from. If null, the default is zero. |
Checks lexicographically if left and right value are equal. Lexicographical comparison is usually applied to text, but can be used for vectors of other types as well. Even though both operands are vectors, there is always just one boolean result value altogether. Internally, the lexicographical flag is set to true also when doing deep comparison of compound parts of type "element/part", so that only one result value gets returned.
<node name="check_equal" channel="inline" format="check/equal" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".result"/> <node name="left" channel="inline" format="text/cybol-path" model=".some_string"/> <node name="right" channel="inline" format="text/plain" model="Hello"/> </node>
Name | Required | Format | Description |
---|---|---|---|
result | true | text/cybol-path | The boolean value resulting from lexicographical comparison. |
left | true | text/cybol-path | text/plain | The left operand. |
right | true | text/cybol-path | text/plain | The right operand. |
Checks lexicographically if the left value is greater than the right value. Lexicographical comparison is usually applied to text, but can be used for vectors of other types as well. Even though both operands are vectors, there is always just one boolean result value altogether. Internally, the lexicographical flag is set to true also when doing deep comparison of compound parts of type "element/part", so that only one result value gets returned.
<node name="check_greater" channel="inline" format="check/greater" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".result"/> <node name="left" channel="inline" format="text/cybol-path" model=".some_string"/> <node name="right" channel="inline" format="text/plain" model="Hello"/> </node>
Name | Required | Format | Description |
---|---|---|---|
result | true | text/cybol-path | The boolean value resulting from lexicographical comparison. |
left | true | text/cybol-path | text/plain | The left operand. |
right | true | text/cybol-path | text/plain | The right operand. |
Checks lexicographically if the left value is greater than the right value or both are equal. Lexicographical comparison is usually applied to text, but can be used for vectors of other types as well. Even though both operands are vectors, there is always just one boolean result value altogether. Internally, the lexicographical flag is set to true also when doing deep comparison of compound parts of type "element/part", so that only one result value gets returned.
<node name="check_greater_or_equal" channel="inline" format="check/greater-or-equal" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".result"/> <node name="left" channel="inline" format="text/cybol-path" model=".some_string"/> <node name="right" channel="inline" format="text/plain" model="Hello"/> </node>
Name | Required | Format | Description |
---|---|---|---|
result | true | text/cybol-path | The boolean value resulting from lexicographical comparison. |
left | true | text/cybol-path | text/plain | The left operand. |
right | true | text/cybol-path | text/plain | The right operand. |
Checks lexicographically if the left value is less than the right value. Lexicographical comparison is usually applied to text, but can be used for vectors of other types as well. Even though both operands are vectors, there is always just one boolean result value altogether. Internally, the lexicographical flag is set to true also when doing deep comparison of compound parts of type "element/part", so that only one result value gets returned.
<node name="check_less" channel="inline" format="check/less" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".result"/> <node name="left" channel="inline" format="text/cybol-path" model=".some_string"/> <node name="right" channel="inline" format="text/plain" model="Hello"/> </node>
Name | Required | Format | Description |
---|---|---|---|
result | true | text/cybol-path | The boolean value resulting from lexicographical comparison. |
left | true | text/cybol-path | text/plain | The left operand. |
right | true | text/cybol-path | text/plain | The right operand. |
Checks lexicographically if the left value is less than the right value or both are equal. Lexicographical comparison is usually applied to text, but can be used for vectors of other types as well. Even though both operands are vectors, there is always just one boolean result value altogether. Internally, the lexicographical flag is set to true also when doing deep comparison of compound parts of type "element/part", so that only one result value gets returned.
<node name="check_less_or_equal" channel="inline" format="check/less-or-equal" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".result"/> <node name="left" channel="inline" format="text/cybol-path" model=".some_string"/> <node name="right" channel="inline" format="text/plain" model="Hello"/> </node>
Name | Required | Format | Description |
---|---|---|---|
result | true | text/cybol-path | The boolean value resulting from lexicographical comparison. |
left | true | text/cybol-path | text/plain | The left operand. |
right | true | text/cybol-path | text/plain | The right operand. |
Checks lexicographically if left and right value are unequal. Lexicographical comparison is usually applied to text, but can be used for vectors of other types as well. Even though both operands are vectors, there is always just one boolean result value altogether. Internally, the lexicographical flag is set to true also when doing deep comparison of compound parts of type "element/part", so that only one result value gets returned.
<node name="check_unequal" channel="inline" format="check/unequal" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".result"/> <node name="left" channel="inline" format="text/cybol-path" model=".some_string"/> <node name="right" channel="inline" format="text/plain" model="Hello"/> </node>
Name | Required | Format | Description |
---|---|---|---|
result | true | text/cybol-path | The boolean value resulting from lexicographical comparison. |
left | true | text/cybol-path | text/plain | The left operand. |
right | true | text/cybol-path | text/plain | The right operand. |
Archives the given files into a packed format via shell command. TODO: COMPLETE AND VERIFY YET!
<node name="archive" channel="inline" format="command/archive" model=""> <node name="create" channel="inline" format="logicvalue/boolean" model="true"/> <node name="update" channel="inline" format="logicvalue/boolean" model="false"/> <node name="bzip2" channel="inline" format="logicvalue/boolean" model="false"/> </node>
Name | Required | Format | Description |
---|---|---|---|
create | false | text/cybol-path | logicvalue/boolean | The flag indicating the creation of an archive. |
update | false | text/cybol-path | logicvalue/boolean | The flag indicating the updating of an archive. |
bzip2 | false | text/cybol-path | logicvalue/boolean | The flag indicating usage of the bzip2 compression algorithm. |
Changes the current working directory via shell command. TODO: COMPLETE AND VERIFY YET!
<node name="change_directory" channel="inline" format="command/change-directory" model=""> <node name="directory" channel="inline" format="text/plain" model="../src/controller/"/> </node>
Name | Required | Format | Description |
---|---|---|---|
directory | true | text/cybol-path | text/plain | The new working directory. |
Changes the permission of a file or directory via shell command. TODO: COMPLETE AND VERIFY YET!
<node name="TODO" channel="inline" format="command/TODO" model=""> <node name="TODO" channel="inline" format="text/cybol-path" model=""/> </node>
Name | Required | Format | Description |
---|---|---|---|
path | true | text/cybol-path | text/plain | The filesystem path to the file or directory. |
user | true | text/cybol-path | text/plain | TODO |
group | true | text/cybol-path | text/plain | TODO |
other | true | text/cybol-path | text/plain | TODO |
recursive | false | text/cybol-path | logicvalue/boolean | The flag indicating recursive processing. |
silent | false | text/cybol-path | logicvalue/boolean | The flag indicating suppression of errors. |
verbose | false | text/cybol-path | logicvalue/boolean | The flag indicating that a diagnostic output is wanted for every file. |
Clears the terminal (console) screen via shell command. TODO: COMPLETE AND VERIFY YET!
<node name="clear" channel="inline" format="command/clear" model=""/>
Compares two files via shell command. TODO: COMPLETE AND VERIFY YET!
Configures the network via shell command. TODO: COMPLETE AND VERIFY YET!
Copies the given file into another via shell command. TODO: COMPLETE AND VERIFY YET!
Name | Required | Format | Description |
---|---|---|---|
source | true | text/cybol-path | text/plain | The source file to be copied. |
destination | true | text/cybol-path | text/plain | The destination to copy to. |
force | false | text/cybol-path | logicvalue/boolean | The flag indicating not to ask for permission for overwriting files or directories. |
interactive | false | text/cybol-path | logicvalue/boolean | The flag indicating to ask everytime for permission of overwriting a file or directory. |
preserve_all_attributes | false | text/cybol-path | logicvalue/boolean | The flag indicating that copied files and directories will have the same attributes as the originals. |
preserve_links | false | text/cybol-path | logicvalue/boolean | The flag indicating that links are preserved so that they are not dereferenced while copying. |
recursive | false | text/cybol-path | logicvalue/boolean | The flag indicating that all sub directories should be copied as well. |
update | false | text/cybol-path | logicvalue/boolean | The flag indicating that just more recent data are copied to a destination path. |
verbose | false | text/cybol-path | logicvalue/boolean | The flag indicating that the names of copied files and directories are shown. |
Creates a directory (folder) in the file system via shell command. TODO: COMPLETE AND VERIFY YET!
Name | Required | Format | Description |
---|---|---|---|
path | true | text/cybol-path | The filesystem path to the directory to be created. |
Prints out the date or changes it via shell command. TODO: COMPLETE AND VERIFY YET!
Name | Required | Format | Description |
---|---|---|---|
new | false | text/cybol-path | The value of the new date. |
Delays execution for the given number of seconds via shell command. TODO: COMPLETE AND VERIFY YET!
Name | Required | Format | Description |
---|---|---|---|
time | true | text/cybol-path | number/integer | The time in seconds. |
Displays differences between two files via shell command. TODO: COMPLETE AND VERIFY YET!
<node name="diff" channel="inline" format="command/diff" model=""> <node name="first" channel="inline" format="text/plain" model="shell_command_diff/diff_1.txt"/> <node name="second" channel="inline" format="text/plain" model="shell_command_diff/diff_2.txt"/> </node>
Name | Required | Format | Description |
---|---|---|---|
first | true | text/cybol-path | text/plain | The first file. |
second | true | text/cybol-path | text/plain | The second file. |
Displays the free disk space via shell command. TODO: COMPLETE AND VERIFY YET!
Name | Required | Format | Description |
---|---|---|---|
all | false | text/cybol-path | logicvalue/boolean | The flag indicating that files with a size of 0 blocks shall be listed. |
human | false | text/cybol-path | logicvalue/boolean | The flag indicating human-readable output. |
kilobytes | false | text/cybol-path | logicvalue/boolean | The flag indicating size output in kilobytes. |
local | false | text/cybol-path | logicvalue/boolean | The flag indicating that only local filesystems shall be listed. |
megabytes | false | text/cybol-path | logicvalue/boolean | The flag indicating size output in megabytes. |
type | false | text/cybol-path | logicvalue/boolean | The flag indicating output of each filesystem's type. |
Shows the usage of a directory via shell command. TODO: COMPLETE AND VERIFY YET!
Name | Required | Format | Description |
---|---|---|---|
human | false | text/cybol-path | logicvalue/boolean | The flag indicating human-readable output. |
summarise | false | text/cybol-path | logicvalue/boolean | The flag indicating that a summary shall be printed. |
all | false | text/cybol-path | logicvalue/boolean | The flag indicating that all shall be printed. |
bytes | false | text/cybol-path | logicvalue/boolean | The flag indicating size output in bytes. |
total | false | text/cybol-path | logicvalue/boolean | The flag indicating that the total usage shall be printed. |
Displays the content of one or more text files via shell command. TODO: COMPLETE AND VERIFY YET!
Name | Required | Format | Description |
---|---|---|---|
path | false | text/cybol-path | text/plain | The file whose content is to be printed. |
clear | false | text/cybol-path | logicvalue/boolean | The flag indicating to clear the screen before display. |
numbers | false | text/cybol-path | logicvalue/boolean | The flag indicating that output lines shall be numbered. |
squeeze | false | text/cybol-path | logicvalue/boolean | The flag indicating that multiple blank lines shall be merged into a single line. |
Prints the given message to standard output via shell command. TODO: COMPLETE AND VERIFY YET!
<node name="echo_text" channel="inline" format="command/echo" model=""> <node name="message" channel="inline" format="text/plain" model="Hello World!"/> </node>
Name | Required | Format | Description |
---|---|---|---|
message | false | text/cybol-path | text/plain | The message to be sent to standard output. |
Locates the command binary, source, or manual page files via shell command. TODO: COMPLETE AND VERIFY YET!
Name | Required | Format | Description | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
TODO | falsefalsefalsefalse | text/cybol-path | TODO |
Finds a file via shell command. TODO: COMPLETE AND VERIFY YET!
Name | Required | Format | Description | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
TODO | falsefalsefalse | text/cybol-path | TODO |
Searches for a pattern in the file and prints out those lines matching the pattern via shell command. TODO: COMPLETE AND VERIFY YET!
<node name="grep" channel="inline" format="command/grep" model=""> <node name="pattern" channel="inline" format="text/plain" model="test"/> <node name="file" channel="inline" format="text/plain" model="test/grep.txt"/> </node>
Name | Required | Format | Description | ||||
---|---|---|---|---|---|---|---|
TODO | falsefalse | text/cybol-path | TODO |
Displays information about a system command via shell command. TODO: COMPLETE AND VERIFY YET!
Name | Required | Format | Description |
---|---|---|---|
TODO | false | text/cybol-path | TODO |
Displays the name of the host (machine) via shell command. TODO: COMPLETE AND VERIFY YET!
Name | Required | Format | Description |
---|---|---|---|
TODO | false | text/cybol-path | TODO |
Displays the identification (id) of the user or group via shell command. TODO: COMPLETE AND VERIFY YET!
Calls ifconfig via shell command. TODO: COMPLETE AND VERIFY YET!
Shows if the network interface is available, via shell command. TODO: COMPLETE AND VERIFY YET!
Kills an application or system process via shell command. TODO: COMPLETE AND VERIFY YET!
Name | Required | Format | Description |
---|---|---|---|
TODO | false | text/cybol-path | TODO |
Lists the contents of the given directory via shell command. TODO: COMPLETE AND VERIFY YET!
Name | Required | Format | Description |
---|---|---|---|
TODO | false | text/cybol-path | TODO |
Shows open files in operating system via shell command. TODO: COMPLETE AND VERIFY YET!
Name | Required | Format | Description |
---|---|---|---|
TODO | false | text/cybol-path | TODO |
Lists all processes currently running on the computer, via shell command. TODO: COMPLETE AND VERIFY YET!
Name | Required | Format | Description |
---|---|---|---|
TODO | false | text/cybol-path | TODO |
Shows the usage of Random Access Memory (RAM), via shell command. TODO: COMPLETE AND VERIFY YET!
Name | Required | Format | Description |
---|---|---|---|
TODO | false | text/cybol-path | TODO |
Moves a file or directory to a destination path, via shell command. TODO: COMPLETE AND VERIFY YET!
<node name="move_file" channel="inline" format="command/move" model=""> <node name="destination" channel="inline" format="text/plain" model="./shell_command_move_file/moved_and_please_do_not_commit_me.txt"/> <node name="source" channel="inline" format="text/plain" model="./shell_command_move_file/original.txt"/> <node name="force" channel="inline" format="logicvalue/boolean" model="false"/> <node name="interactive" channel="inline" format="logicvalue/boolean" model="true"/> <node name="verbose" channel="inline" format="logicvalue/boolean" model="true"/> </node>
Name | Required | Format | Description |
---|---|---|---|
TODO | false | text/cybol-path | TODO |
Displays network information via shell command. TODO: COMPLETE AND VERIFY YET!
Name | Required | Format | Description |
---|---|---|---|
TODO | false | text/cybol-path | TODO |
Pings the given host via network, via shell command. TODO: COMPLETE AND VERIFY YET!
<node name="ping" channel="inline" format="command/ping" model=""> <node name="host" channel="inline" format="text/plain" model="www.cybop.org"/> <node name="count" channel="inline" format="text/plain" model="5"/> <node name="interface" channel="inline" format="text/plain" model="eth0"/> </node>
Name | Required | Format | Description |
---|---|---|---|
TODO | false | text/cybol-path | TODO |
Prints the path of the current working directory, via shell command. TODO: COMPLETE AND VERIFY YET!
Name | Required | Format | Description |
---|---|---|---|
TODO | false | text/cybol-path | TODO |
Removes a file or directory via shell command. TODO: COMPLETE AND VERIFY YET!
<node name="remove_file" channel="inline" format="command/remove" model=""> <node name="path" channel="inline" format="text/plain" model="./shell_command_remove_file/do_not_commit_if_this_is_deleted.txt"/> <node name="force" channel="inline" format="logicvalue/boolean" model="true"/> <node name="interactive" channel="inline" format="logicvalue/boolean" model="true"/> <node name="recursive" channel="inline" format="logicvalue/boolean" model="false"/> <node name="verbose" channel="inline" format="logicvalue/boolean" model="true"/> </node>
Name | Required | Format | Description |
---|---|---|---|
TODO | false | text/cybol-path | TODO |
Sorts the lines of a text file, via shell command. TODO: COMPLETE AND VERIFY YET!
Name | Required | Format | Description |
---|---|---|---|
TODO | false | text/cybol-path | TODO |
Spellchecks a file via shell command. TODO: COMPLETE AND VERIFY YET!
Name | Required | Format | Description |
---|---|---|---|
TODO | false | text/cybol-path | TODO |
Shows system messages from /var/log via shell command. TODO: COMPLETE AND VERIFY YET!
Name | Required | Format | Description |
---|---|---|---|
TODO | false | text/cybol-path | TODO |
Packs or unpacks a directory or file, via shell command. TODO: COMPLETE AND VERIFY YET!
<node name="pack_text_file_with_tape_archiver" channel="inline" format="command/tape-archiver" model=""> <node name="source" channel="inline" format="text/plain" model="./shell_command_tape_archiver_pack/i_should_be_packed_soon.txt"/> <node name="destination" channel="inline" format="text/plain" model="./shell_command_tape_archiver_pack/i_am_packed_now.tar"/> <node name="force" channel="inline" format="logicvalue/boolean" model="false"/> <node name="gzip" channel="inline" format="logicvalue/boolean" model="false"/> <node name="unpack" channel="inline" format="logicvalue/boolean" model="false"/> <node name="recursive" channel="inline" format="logicvalue/boolean" model="false"/> <node name="verbose" channel="inline" format="logicvalue/boolean" model="true"/> </node> <node name="unpack_tar_with_text_file" channel="inline" format="command/tape-archiver" model=""> <node name="source" channel="inline" format="text/plain" model="./shell_command_tape_archiver_unpack/package.tar"/> <node name="destination" channel="inline" format="text/plain" model="./shell_command_tape_archiver_unpack"/> <node name="force" channel="inline" format="logicvalue/boolean" model="false"/> <node name="gzip" channel="inline" format="logicvalue/boolean" model="false"/> <node name="unpack" channel="inline" format="logicvalue/boolean" model="true"/> <node name="recursive" channel="inline" format="logicvalue/boolean" model="false"/> <node name="verbose" channel="inline" format="logicvalue/boolean" model="true"/> </node>
Name | Required | Format | Description |
---|---|---|---|
TODO | false | text/cybol-path | TODO |
Displays the linux processes, via shell command. TODO: COMPLETE AND VERIFY YET!
Changes the timestamp of a file via shell command. May be used to create a new file. TODO: COMPLETE AND VERIFY YET!
Name | Required | Format | Description |
---|---|---|---|
TODO | false | text/cybol-path | TODO |
Traces and displays the packet route to the given host, via shell command. TODO: COMPLETE AND VERIFY YET!
Name | Required | Format | Description |
---|---|---|---|
host | true | text/cybol-path | text/plain | The host to trace the route to. |
Shows the users currently logged in to the machine, via shell command. TODO: COMPLETE AND VERIFY YET!
Name | Required | Format | Description |
---|---|---|---|
TODO | false | text/cybol-path | TODO |
Displays information about the current user, via shell command. TODO: COMPLETE AND VERIFY YET!
Displays the login name of the current user, via shell command. TODO: COMPLETE AND VERIFY YET!
Counts different occurences and outputs the number of rows, words and bytes for every file, via shell command. TODO: COMPLETE AND VERIFY YET!
<node name="count_words" channel="inline" format="command/word-count" model=""> <node name="path" channel="inline" format="text/plain" model="./shell_command_word_count/example.txt"/> <node name="bytes" channel="inline" format="logicvalue/boolean" model="false"/> <node name="chars" channel="inline" format="logicvalue/boolean" model="true"/> <node name="lines" channel="inline" format="logicvalue/boolean" model="true"/> <node name="max-line-length" channel="inline" format="logicvalue/boolean" model="false"/> <node name="words" channel="inline" format="logicvalue/boolean" model="true"/> </node>
Name | Required | Format | Description |
---|---|---|---|
TODO | false | text/cybol-path | TODO |
Identifies the device or client that has placed a request (handler) into the interrupt pipe.
<!-- Get gui client window belonging to the handler that was placed into the interrupt pipe. --> <node name="get_window_id" channel="inline" format="communicate/identify" model=""> <node name="identification" channel="inline" format="text/cybol-path" model=".gui.window_id"/> </node> <!-- Get client socket belonging to the handler that was placed into the interrupt pipe. --> <node name="get_client_socket_id" channel="inline" format="communicate/identify" model=""> <node name="identification" channel="inline" format="text/cybol-path" model=".client_socket"/> </node>
Name | Required | Format | Description |
---|---|---|---|
identification | true | text/cybol-path | The device or client identification, for example a file descriptor. |
Receives a message via the communication channel. Caution! Some file formats (like the German xDT format for medical data exchange) contain both, the model and the properties, in one file. To cover these cases, the model and properties are received together, in just one operation.
<!-- Initialise an application tree from file at startup. --> <node name="open_file" channel="inline" format="dispatch/open" model=""> <node name="channel" channel="inline" format="meta/channel" model="file"/> <node name="identification" channel="inline" format="text/cybol-path" model=".id"/> <node name="device" channel="inline" format="text/plain" model="counter/simple/app.cybol"/> </node> <node name="initialise_app" channel="inline" format="communicate/receive" model=""> <node name="channel" channel="inline" format="meta/channel" model="file"/> <node name="sender" channel="inline" format="text/cybol-path" model=".id"/> <node name="encoding" channel="inline" format="meta/encoding" model="utf-8"/> <node name="language" channel="inline" format="meta/language" model="text/cybol"/> <node name="format" channel="inline" format="meta/format" model="element/part"/> <node name="message" channel="inline" format="text/cybol-path" model="."/> </node> <node name="close_file" channel="inline" format="dispatch/close" model=""> <node name="channel" channel="inline" format="meta/channel" model="file"/> <node name="identification" channel="inline" format="text/cybol-path" model=".id"/> </node> <!-- Read extensible markup language (xml) data from file. --> <node name="open_file" channel="inline" format="dispatch/open" model=""> <node name="channel" channel="inline" format="meta/channel" model="file"/> <node name="identification" channel="inline" format="text/cybol-path" model=".id"/> <node name="device" channel="inline" format="text/plain" model="serialisation/xml/test/reference.xml"/> </node> <node name="deserialise_data" channel="inline" format="communicate/receive" model=""> <node name="channel" channel="inline" format="meta/channel" model="file"/> <node name="sender" channel="inline" format="text/cybol-path" model=".id"/> <node name="encoding" channel="inline" format="meta/encoding" model="utf-8"/> <node name="language" channel="inline" format="meta/language" model="application/xml"> <node name="normalisation" channel="inline" format="logicvalue/boolean" model="false"/> </node> <node name="format" channel="inline" format="meta/format" model="element/part"/> <node name="message" channel="inline" format="text/cybol-path" model=".data"/> </node> <node name="close_file" channel="inline" format="dispatch/close" model=""> <node name="channel" channel="inline" format="meta/channel" model="file"/> <node name="identification" channel="inline" format="text/cybol-path" model=".id"/> </node> <!-- Read javascript object notation (json) data from file. --> <node name="open_file" channel="inline" format="dispatch/open" model=""> <node name="channel" channel="inline" format="meta/channel" model="file"/> <node name="identification" channel="inline" format="text/cybol-path" model=".id"/> <node name="device" channel="inline" format="text/plain" model="serialisation/json/test/scenario/default.json"/> </node> <node name="deserialise_data" channel="inline" format="communicate/receive" model=""> <node name="channel" channel="inline" format="meta/channel" model="file"/> <node name="sender" channel="inline" format="text/cybol-path" model=".id"/> <node name="encoding" channel="inline" format="meta/encoding" model="utf-8"/> <node name="language" channel="inline" format="meta/language" model="application/json"/> <node name="format" channel="inline" format="meta/format" model="element/part"/> <node name="message" channel="inline" format="text/cybol-path" model=".data"/> </node> <node name="close_file" channel="inline" format="dispatch/close" model=""> <node name="channel" channel="inline" format="meta/channel" model="file"/> <node name="identification" channel="inline" format="text/cybol-path" model=".id"/> </node> <!-- Read character (comma) separated values (csv) from file. --> <node name="open_file" channel="inline" format="dispatch/open" model=""> <node name="channel" channel="inline" format="meta/channel" model="file"/> <node name="identification" channel="inline" format="text/cybol-path" model=".id"/> <node name="device" channel="inline" format="text/cybol-path" model="#filename"/> </node> <node name="receive_file" channel="inline" format="communicate/receive" model=""> <node name="channel" channel="inline" format="meta/channel" model="file"/> <node name="sender" channel="inline" format="text/cybol-path" model=".id"/> <node name="encoding" channel="inline" format="meta/encoding" model="utf-8"/> <node name="language" channel="inline" format="meta/language" model="text/csv"> <node name="delimiter" channel="inline" format="text/cybol-path" model="#delimiter"/> <node name="quotation" channel="inline" format="text/cybol-path" model="#quotation"/> <node name="header" channel="inline" format="text/cybol-path" model="#header"/> </node> <!-- CAUTION! A possibly existing header will be written into the destination message PROPERTIES. There is NO need to specify the cybol property "header" as sub node of "message" here, since it is generated under that name automatically by the deserialiser inside. CAUTION! The message has to be part of the HEAP memory, since it would not be extensible if lying on the stack. --> <node name="message" channel="inline" format="text/cybol-path" model="{#table}"/> </node> <node name="close_file" channel="inline" format="dispatch/close" model=""> <node name="channel" channel="inline" format="meta/channel" model="file"/> <node name="identification" channel="inline" format="text/cybol-path" model=".id"/> </node> <!-- Read user input command on terminal. --> <node name="receive_command" channel="inline" format="communicate/receive" model=""> <node name="channel" channel="inline" format="meta/channel" model="terminal"/> <node name="sender" channel="inline" format="text/cybol-path" model=".var.stdin"/> <node name="language" channel="inline" format="meta/language" model="message/tui"/> <node name="message" channel="inline" format="text/cybol-path" model="#command"/> <!-- Read data from buffer in which they got stored by the sensing thread started through feel/sense before. --> <node name="asynchronicity" channel="inline" format="logicvalue/boolean" model="true"/> </node> <!-- Receive a gui window event on display. --> <node name="receive_event" channel="inline" format="communicate/receive" model=""> <node name="channel" channel="inline" format="meta/channel" model="display"/> <node name="server" channel="inline" format="logicvalue/boolean" model="true"/> <node name="sender" channel="inline" format="text/cybol-path" model=".gui.window_id"/> <node name="language" channel="inline" format="meta/language" model="message/gui-request"> <node name="medium" channel="inline" format="text/cybol-path" model=".gui.window"/> </node> <node name="format" channel="inline" format="meta/format" model="text/plain"/> <node name="message" channel="inline" format="text/cybol-path" model=".gui.action"/> <!-- Read indirectly from internal buffer into which data have been written by activate/enable before. --> <node name="asynchronicity" channel="inline" format="logicvalue/boolean" model="true"/> </node> <!-- Receive a binary file whose path has been given for example via internet url. --> <node name="open_file" channel="inline" format="dispatch/open" model=""> <node name="channel" channel="inline" format="meta/channel" model="file"/> <node name="identification" channel="inline" format="text/cybol-path" model=".id"/> <node name="device" channel="inline" format="text/cybol-path" model=".var.path"/> </node> <node name="receive_file" channel="inline" format="communicate/receive" model=""> <node name="channel" channel="inline" format="meta/channel" model="file"/> <node name="sender" channel="inline" format="text/cybol-path" model=".id"/> <node name="language" channel="inline" format="meta/language" model="message/binary"/> <node name="message" channel="inline" format="text/cybol-path" model=".var.file"/> </node> <node name="close_file" channel="inline" format="dispatch/close" model=""> <node name="channel" channel="inline" format="meta/channel" model="file"/> <node name="identification" channel="inline" format="text/cybol-path" model=".id"/> </node> <!-- Receive client http request on the server side via network socket. --> <node name="receive_request" channel="inline" format="communicate/receive" model=""> <node name="channel" channel="inline" format="meta/channel" model="socket"/> <node name="server" channel="inline" format="logicvalue/boolean" model="true"/> <node name="port" channel="inline" format="number/integer" model="1971"/> <node name="sender" channel="inline" format="text/cybol-path" model=".var.client_socket"/> <node name="language" channel="inline" format="meta/language" model="message/http-request"/> <node name="format" channel="inline" format="meta/format" model="element/part"/> <node name="message" channel="inline" format="text/cybol-path" model=".var.request"/> <!-- Read indirectly from internal buffer into which data have been written by the sensing thread. --> <node name="asynchronicity" channel="inline" format="logicvalue/boolean" model="true"/> </node> <!-- Receive client binary request on the server side via network socket. --> <node name="receive_request" channel="inline" format="communicate/receive" model=""> <node name="channel" channel="inline" format="meta/channel" model="socket"/> <node name="server" channel="inline" format="logicvalue/boolean" model="true"/> <node name="port" channel="inline" format="number/integer" model="1971"/> <node name="sender" channel="inline" format="text/cybol-path" model=".client_socket"/> <node name="language" channel="inline" format="meta/language" model="message/binary-crlf"/> <node name="message" channel="inline" format="text/cybol-path" model=".request"/> <!-- Read indirectly from internal buffer into which data have been written by the sensing thread. --> <node name="asynchronicity" channel="inline" format="logicvalue/boolean" model="true"/> </node> <!-- Receive server response on the client side via network socket. --> <node name="receive_response" channel="inline" format="communicate/receive" model=""> <node name="channel" channel="inline" format="meta/channel" model="socket"/> <node name="sender" channel="inline" format="text/cybol-path" model=".server_socket"/> <node name="language" channel="inline" format="meta/language" model="message/binary-crlf"/> <node name="message" channel="inline" format="text/cybol-path" model=".response"/> </node>
Name | Required | Format | Description |
---|---|---|---|
channel | true | text/cybol-path | meta/channel | The communication channel. |
server | false | text/cybol-path | logicvalue/boolean | The flag indicating server mode. It means server-side client stub and not standalone client. If null, the default is false (client mode). |
port | false | text/cybol-path | number/integer | The service identification. It is relevant only in server mode. |
sender | true | text/cybol-path | The device identification, for example a file descriptor. Handing it over as hard-coded integer value does not make sense, since the operating system or server assigns it. Therefore, state a cybol-path. |
encoding | false | text/cybol-path | meta/encoding | The encoding, for example utf-8 or utf-32 or ascii. |
language | false | text/cybol-path | meta/language | The language used for deserialisation. It is also defining which prefix or suffix indicates the message length, for example binary-crlf, http-request, xdt. |
format | false | text/cybol-path | meta/format | The format (type) of the message data. |
message | true | text/cybol-path | The knowledge tree node storing the received data. |
asynchronicity | false | text/cybol-path | logicvalue/boolean | The flag indicating asynchronous reading from buffer in which data got stored by a sensing thread before. If null, the default is false (synchronous read). |
Name | Required | Format | Description |
---|---|---|---|
decimal_separator | false | text/plain | The symbol (or character sequence) used to separate the integer part from the fractional part of a floating point (decimal) number. |
thousands_separator | false | text/plain | The symbol (or character sequence) used for digit grouping. |
delimiter | false | text/plain | The separator between the single fields (values). It may consist of many characters, but also be a simple comma, for example. Used with joined strings or character (comma) separated values (csv). |
quotation | false | text/plain | The marker sequence used at the beginning and end of string fields (values). It may consist of many characters. Quotation is necessary if the delimiter character is part of the value. If the quotation is to be part of the value, then it has to be escaped by writing it twice (doubled). Used with joined strings or character (comma) separated values (csv). |
header | false | logicvalue/boolean | The flag indicating whether or not the source data contain a header, so that the deserialiser can treat the first line differently. Used with character (comma) separated values (csv). Caution! It should not be mixed up with the headermodel property in represent/serialise or communicate/send. |
normalisation | false | logicvalue/boolean | The flag indicating whether or not whitespaces and line breaks are merged into just one space. Used with xml or html, for example. If null, then the default is true (normalisation enabled). |
maximum | false | number/integer | The maximum number of bytes to be transmitted. Used with serial (port) interface. |
minimum | false | number/integer | The minimum number of bytes to be transmitted. Used with serial (port) interface. |
medium | false | text/cybol-path | The window to which the mouse button or keyboard key refers. It is needed to search through the hierarchy of gui elements via mouse coordinates, for a suitable action. Used with graphical user interface (gui). |
Sends a message via the communication channel.
<!-- Place a signal (event) into the cyboi system signal memory (event queue). --> <node name="send_exit_signal" channel="inline" format="communicate/send" model=""> <node name="channel" channel="inline" format="meta/channel" model="signal"/> <node name="message" channel="inline" format="live/exit" model=""/> </node> <!-- Send a signal that was read from a cybol file before. --> <node name="send_signal_taken_from_file" channel="inline" format="communicate/send" model=""> <node name="channel" channel="inline" format="meta/channel" model="signal"/> <node name="message" channel="file" format="element/part" model="exit/file/exit.cybol"/> </node> <!-- Send plain text to terminal. --> <node name="say_hello" channel="inline" format="communicate/send" model=""> <node name="channel" channel="inline" format="meta/channel" model="terminal"/> <node name="receiver" channel="inline" format="text/cybol-path" model=".var.stdout"/> <node name="language" channel="inline" format="meta/language" model="message/tui"/> <node name="format" channel="inline" format="meta/format" model="text/plain"/> <node name="message" channel="inline" format="text/plain" model="Hello World!"/> </node> <!-- Print an http request's uri query action on terminal. --> <node name="print_query" channel="inline" format="communicate/send" model=""> <node name="channel" channel="inline" format="meta/channel" model="terminal"/> <node name="receiver" channel="inline" format="text/cybol-path" model=".stdout"/> <node name="language" channel="inline" format="meta/language" model="message/tui"/> <node name="format" channel="inline" format="meta/format" model="text/plain"/> <node name="message" channel="inline" format="text/cybol-path" model=".var.request:uri:query.action"/> </node> <!-- Print http request as pure ascii data on terminal. --> <node name="print_request" channel="inline" format="communicate/send" model=""> <node name="channel" channel="inline" format="meta/channel" model="terminal"/> <node name="receiver" channel="inline" format="text/cybol-path" model=".stdout"/> <node name="language" channel="inline" format="meta/language" model="message/tui"/> <node name="format" channel="inline" format="meta/format" model="application/octet-stream"/> <node name="message" channel="inline" format="text/cybol-path" model=".request"/> </node> <!-- Send boolean value (flag) to terminal. --> <node name="log_flag" channel="inline" format="communicate/send" model=""> <node name="channel" channel="inline" format="meta/channel" model="terminal"/> <node name="receiver" channel="inline" format="text/cybol-path" model=".stdout"/> <node name="language" channel="inline" format="meta/language" model="message/tui"/> <node name="format" channel="inline" format="meta/format" model="logicvalue/boolean"/> <node name="message" channel="inline" format="text/cybol-path" model=".result_flag"/> </node> <!-- Send integer number to terminal. --> <node name="print_number" channel="inline" format="communicate/send" model=""> <node name="channel" channel="inline" format="meta/channel" model="terminal"/> <node name="receiver" channel="inline" format="text/cybol-path" model=".stdout"/> <node name="language" channel="inline" format="meta/language" model="message/tui"/> <node name="format" channel="inline" format="meta/format" model="number/integer"/> <node name="message" channel="inline" format="text/cybol-path" model=".index"/> </node> <!-- Send decimal fraction number to terminal. --> <node name="print_adc_value" channel="inline" format="communicate/send" model=""> <node name="channel" channel="inline" format="meta/channel" model="terminal"/> <node name="receiver" channel="inline" format="text/cybol-path" model=".stdout"/> <node name="language" channel="inline" format="meta/language" model="message/tui"/> <node name="format" channel="inline" format="meta/format" model="number/fraction-decimal"/> <node name="message" channel="inline" format="text/cybol-path" model=".settings.adc"/> </node> <!-- Send main menu as text user interface (tui) to terminal. --> <node name="send_menu" channel="inline" format="communicate/send" model=""> <node name="channel" channel="inline" format="meta/channel" model="terminal"/> <node name="receiver" channel="inline" format="text/cybol-path" model=".stdout"/> <node name="language" channel="inline" format="meta/language" model="message/tui"> <node name="clear" channel="inline" format="logicvalue/boolean" model="true"/> <node name="positioning" channel="inline" format="logicvalue/boolean" model="true"/> </node> <node name="format" channel="inline" format="meta/format" model="element/part"/> <node name="message" channel="inline" format="text/cybol-path" model=".tui.main"/> </node> <node name="set_cursor" channel="inline" format="communicate/send" model=""> <node name="channel" channel="inline" format="meta/channel" model="terminal"/> <node name="receiver" channel="inline" format="text/cybol-path" model=".stdout"/> <node name="language" channel="inline" format="meta/language" model="message/tui"> <!-- The clear flag is false by default and therefore does not have to be added here. --> <node name="positioning" channel="inline" format="logicvalue/boolean" model="true"/> </node> <!-- Use text/plain instead of element/part, since the cursor has just the position property but an empty model. --> <node name="format" channel="inline" format="meta/format" model="text/plain"/> <node name="message" channel="inline" format="text/cybol-path" model=".tui.cursor"/> </node> <!-- Draw graphical user interface (gui) window on display. --> <node name="refresh_display" channel="inline" format="communicate/send" model=""> <node name="channel" channel="inline" format="meta/channel" model="display"/> <!-- This flag is IMPORTANT for finding the correct client entry in the server list. --> <node name="server" channel="inline" format="logicvalue/boolean" model="true"/> <node name="receiver" channel="inline" format="text/cybol-path" model=".gui.window_id"/> <node name="language" channel="inline" format="meta/language" model="message/gui-response"/> <node name="format" channel="inline" format="meta/format" model="element/part"/> <node name="message" channel="inline" format="text/cybol-path" model=".gui.window"/> </node> <!-- Write runtime knowledge tree into file, which is useful for testing. --> <node name="open_file" channel="inline" format="dispatch/open" model=""> <node name="channel" channel="inline" format="meta/channel" model="file"/> <node name="identification" channel="inline" format="text/cybol-path" model=".id"/> <node name="device" channel="inline" format="text/plain" model="counter/simple/test_counter_simple.txt"/> <node name="mode" channel="inline" format="text/plain" model="write"/> </node> <node name="send_knowledge_tree_root" channel="inline" format="communicate/send" model=""> <node name="channel" channel="inline" format="meta/channel" model="file"/> <node name="receiver" channel="inline" format="text/cybol-path" model=".id"/> <node name="encoding" channel="inline" format="meta/encoding" model="utf-8"/> <node name="language" channel="inline" format="meta/language" model="text/model-diagram"/> <node name="format" channel="inline" format="meta/format" model="element/part"/> <node name="message" channel="inline" format="text/cybol-path" model="."/> </node> <node name="close_file" channel="inline" format="dispatch/close" model=""> <node name="channel" channel="inline" format="meta/channel" model="file"/> <node name="identification" channel="inline" format="text/cybol-path" model=".id"/> </node> <!-- Write binary data into a file. --> <node name="test_file_content" channel="inline" format="communicate/send" model=""> <node name="channel" channel="inline" format="meta/channel" model="file"/> <node name="receiver" channel="inline" format="text/cybol-path" model=".id"/> <node name="language" channel="inline" format="meta/language" model="message/binary"/> <node name="message" channel="inline" format="text/cybol-path" model=".var.file"/> </node> <!-- Serialise web user interface (wui) and store it as html file. --> <node name="generate_html" channel="inline" format="communicate/send" model=""> <node name="channel" channel="inline" format="meta/channel" model="file"/> <node name="receiver" channel="inline" format="text/cybol-path" model=".id"/> <node name="encoding" channel="inline" format="meta/encoding" model="utf-8"/> <node name="language" channel="inline" format="meta/language" model="text/html"> <node name="indentation" channel="inline" format="logicvalue/boolean" model="true"/> </node> <node name="format" channel="inline" format="meta/format" model="element/part"/> <node name="message" channel="inline" format="text/cybol-path" model=".wui.index"/> </node> <!-- Serialise a webpage into html within the knowledge tree and afterwards save it as file. --> <node name="serialise_webpage" channel="inline" format="represent/serialise" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".var.webpage"/> <node name="source" channel="inline" format="text/cybol-path" model=".wui.index"/> <node name="format" channel="inline" format="meta/format" model="element/part"/> <node name="language" channel="inline" format="meta/language" model="text/html"/> </node> <node name="write_serialised_webpage_into_file" channel="inline" format="communicate/send" model=""> <node name="channel" channel="inline" format="meta/channel" model="file"/> <node name="receiver" channel="inline" format="text/cybol-path" model=".id"/> <node name="encoding" channel="inline" format="meta/encoding" model="utf-8"/> <node name="language" channel="inline" format="meta/language" model="text/cybol"/> <node name="format" channel="inline" format="meta/format" model="text/plain"/> <node name="message" channel="inline" format="text/cybol-path" model=".var.webpage"/> </node> <!-- Assemble http response with webpage plus metadata and store it as file. --> <node name="test_http_response" channel="inline" format="communicate/send" model=""> <node name="channel" channel="inline" format="meta/channel" model="file"/> <node name="receiver" channel="inline" format="text/cybol-path" model=".id"/> <node name="language" channel="inline" format="meta/language" model="message/http-response"/> <node name="format" channel="inline" format="meta/format" model="text/plain"/> <node name="message" channel="inline" format="text/cybol-path" model=".var.webpage"> <node name="Server" channel="inline" format="text/plain" model="CYBOI/0.22.0 (Linux) CYBOL/2.0.0"/> <node name="Connection" channel="inline" format="text/plain" model="close"/> <node name="Content-Type" channel="inline" format="text/plain" model="text/html"/> </node> </node> <!-- Send ascii text "Hello World!" as binary data via socket. --> <node name="send_hello" channel="inline" format="communicate/send" model=""> <node name="channel" channel="inline" format="meta/channel" model="socket"/> <node name="server" channel="inline" format="logicvalue/boolean" model="true"/> <node name="port" channel="inline" format="number/integer" model="1971"/> <node name="receiver" channel="inline" format="text/cybol-path" model=".client_socket"/> <node name="language" channel="inline" format="meta/language" model="message/binary-crlf"/> <node name="message" channel="inline" format="application/octet-stream" model="Hello World!"/> </node> <!-- Send text data as http response via socket. --> <node name="send_file" channel="inline" format="communicate/send" model=""> <node name="channel" channel="inline" format="meta/channel" model="socket"/> <node name="server" channel="inline" format="logicvalue/boolean" model="true"/> <node name="port" channel="inline" format="number/integer" model="1971"/> <node name="receiver" channel="inline" format="text/cybol-path" model=".var.client_socket"/> <node name="language" channel="inline" format="meta/language" model="message/http-response"/> <node name="format" channel="inline" format="meta/format" model="text/plain"/> <node name="message" channel="inline" format="text/cybol-path" model=".var.file"/> </node> <!-- Send empty text http-response to indicate end of communication. --> <node name="send_empty_message" channel="inline" format="communicate/send" model=""> <node name="channel" channel="inline" format="meta/channel" model="socket"/> <node name="server" channel="inline" format="logicvalue/boolean" model="true"/> <node name="port" channel="inline" format="number/integer" model="1971"/> <node name="receiver" channel="inline" format="text/cybol-path" model=".var.client_socket"/> <node name="language" channel="inline" format="meta/language" model="message/http-response"/> <node name="format" channel="inline" format="meta/format" model="text/plain"/> <node name="message" channel="inline" format="text/plain" model=""/> </node> <!-- Send html encapsulated as http-response. --> <node name="send" channel="inline" format="communicate/send" model=""> <node name="channel" channel="inline" format="meta/channel" model="socket"/> <node name="server" channel="inline" format="logicvalue/boolean" model="true"/> <node name="port" channel="inline" format="number/integer" model="1971"/> <node name="receiver" channel="inline" format="text/cybol-path" model=".var.client_socket"/> <node name="language" channel="inline" format="meta/language" model="message/http-response"/> <node name="format" channel="inline" format="meta/format" model="text/plain"/> <!-- For the http response, the following headers are recommended: - Date - Server - Content-Length - Content-Type CAUTION! An "encoding" is NOT given when using the language "message/http-response", since it would cause the WHOLE http message to get encoded. But the http header should be ASCII (single-byte characters) only. Likewise, binary attachments such as images should NOT get encoded. CAUTION! It does NOT work adding the constraint "encoding" right here. It does properly appear in the knowledge tree, but is NOT recognised in the operation "send". The reason is that the format "text/cybol-path" points to another part ".webpage" whose properties are used INSTEAD of those constraints that might be specified here. In order to verify this, one might use the format "text/plain" testwise, with which the constraints are recognised properly. Therefore, the necessary "encoding" is added at the part ".webpage" DIRECTLY. --> <node name="message" channel="inline" format="text/cybol-path" model=".var.webpage"> <node name="Connection" channel="inline" format="text/plain" model="keep-alive"/> <!-- <node name="Content-Type" channel="inline" format="text/plain" model="text/html; charset=utf-8"/> --> <!-- The client has 300 s == 5 min to make any additional requests before the connection is closed. The client can send up to 1000 more requests. --> <node name="Keep-Alive" channel="inline" format="text/plain" model="timeout=300, max=1000"/> </node> </node> <!-- Send request on client side to server via socket. --> <node name="send_request" channel="inline" format="communicate/send" model=""> <node name="channel" channel="inline" format="meta/channel" model="socket"/> <node name="receiver" channel="inline" format="text/cybol-path" model=".server_socket"/> <node name="language" channel="inline" format="meta/language" model="message/binary-crlf"/> <node name="message" channel="inline" format="application/octet-stream" model="say-hello"/> </node>
Name | Required | Format | Description |
---|---|---|---|
channel | true | text/cybol-path | meta/channel | The communication channel. |
server | false | text/cybol-path | logicvalue/boolean | The flag indicating server mode. It means server-side client stub and not standalone client. If null, the default is false (client mode). |
port | false | text/cybol-path | number/integer | The service identification. It is relevant only in server mode. |
receiver | true | text/cybol-path | The device identification, for example a file descriptor. Handing it over as hard-coded integer value does not make sense, since the operating system or server assigns it. Therefore, state a cybol-path. |
encoding | false | text/cybol-path | meta/encoding | The encoding, for example utf-8 or utf-32 or ascii. |
language | false | text/cybol-path | meta/language | The language used for serialisation, for example model-diagram, html, binary-crlf, http-response, xdt. |
format | false | text/cybol-path | meta/format | The format (type) of the message data. |
message | true | text/cybol-path | application/octet-stream | any | The data to be sent. |
asynchronicity | false | text/cybol-path | logicvalue/boolean | The flag indicating asynchronous writing within a thread. If null, the default is false (synchronous write). |
handler | false | text/cybol-path | The callback cybol operation being executed when the thread finished writing data. |
Name | Required | Format | Description |
---|---|---|---|
sign | false | logicvalue/boolean | The flag indicating whether or not a plus sign is to be displayed for positive numbers. Negative numbers have a minus sign in any case. If null, the default is false (no plus sign for positive numbers). |
base | false | number/integer | The number base for example 2 for binary (dual), 8 for octal, 10 for decimal, 16 for hexadecimal. If null, the default is 10 (decimal number base). |
classicoctal | false | logicvalue/boolean | The flag indicating whether or not the octal number base prefix is to be displayed as 0 as in classic c/c++ or using modern style 0o as in perl and python. If null, the default is false (modern style with prefix 0o). |
grouping | false | text/plain | The symbol or character sequence used for digit grouping in thousands. If null, the default is not to use any thousands separator at all. |
separator | false | text/plain | The symbol or character sequence used to separate the integer part from the fractional part of a floating point decimal number. If null, the default is to use the full stop (dot). |
decimals | false | number/integer | The number of post-point decimal places (decimals). If null, the default is 4. |
scientific | false | logicvalue/boolean | The flag indicating whether or not the decimal fraction gets displayed with mantissa and exponent. If null, the default is false (standard representation without exponent). |
polar | false | logicvalue/boolean | The flag indicating whether or not to write the complex number using polar coordinates. If null, the default is false (using the cartesian form). |
newline | false | logicvalue/boolean | The flag indicating whether or not a line break is added at the end of the printed characters. If null, the default is true (line gets broken). Used with text (pseudo) terminal. |
clear | false | logicvalue/boolean | The flag indicating whether or not the terminal screen is cleared before printing characters on it. If null, the default is false (no clearing). Used with text (pseudo) terminal. |
positioning | false | logicvalue/boolean | The flag indicating whether or not the cursor position may get changed. If null, the default is false (no repositioning). Used with text (pseudo) terminal. |
indentation | false | logicvalue/boolean | The flag indicating whether or not the serialised data get beautified (pretty-formatted) by indenting the single lines depending on the hierarchy level. Used with xml or html, for example. |
delimiter | false | text/plain | The separator between the single fields (values). It may consist of many characters, but also be a simple comma, for example. Used with joined strings or character (comma) separated values (csv). |
quotation | false | text/plain | The marker sequence used at the beginning and end of string fields (values). It may consist of many characters. Quotation is necessary if the delimiter character is part of the value. If the quotation is to be part of the value, then it has to be escaped by writing it twice (doubled). Used with joined strings or character (comma) separated values (csv). |
normalisation | false | logicvalue/boolean | The flag indicating whether or not whitespaces and line breaks are merged into just one space. Used with xml or html, for example. If null, then the default is true (normalisation enabled). |
width | false | number/integer | The number of characters (or digits) belonging to a value. Free places get filled up with the character given in the fill property. This was defined in the original specification of character (comma) separated values (csv), in order to have fields (values) with equal width. Used with joined strings or csv. |
fill | false | text/plain | The characters (or digit) to be used to fill free places in a value whose width is greater. |
headermodel | false | text/cybol-path | The header data to be written as first line, yet before the actual content. Used with character (comma) separated values (csv). Caution! It should not be mixed up with the header property flag in represent/deserialise or communicate/receive. |
Compares if left and right value are equal. Commonly used operator in other programming languages: == Left and right operand as well as the boolean result are treated as vector. That is, one boolean result value is returned per each operand vector element. When comparing single elements, the vectors contain just one single value. Numbers may be given as vectors, for example the integer sequence "1,2,3". If using text operands, for example "Hello, World!", then the single characters are compared, one by one. Example with many elements: - operation: equal - left: 10,2,3 - right: 1,2,3 - result: 0,1,1 (which corresponds to "false,true,true") Example with one single element: - operation: equal - left: 33 - right: 3 - result: 0 (which corresponds to "false")
<node name="compare_one" channel="inline" format="compare/equal" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".result"/> <node name="left" channel="inline" format="number/integer" model="2"/> <node name="right" channel="inline" format="number/integer" model="2"/> </node> <node name="compare_many" channel="inline" format="compare/equal" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".result"/> <node name="left" channel="inline" format="number/integer" model="1,2,3"/> <node name="right" channel="inline" format="number/integer" model="2,3,4"/> </node> <node name="compare_literal_and_path" channel="inline" format="compare/equal" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".result"/> <node name="left" channel="inline" format="number/integer" model="3"/> <node name="right" channel="inline" format="text/cybol-path" model=".right"/> </node> <node name="compare_via_paths" channel="inline" format="compare/equal" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".result"/> <node name="left" channel="inline" format="text/cybol-path" model=".left"/> <node name="right" channel="inline" format="text/cybol-path" model=".right"/> </node> <node name="compare_with_index" channel="inline" format="compare/equal" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".result"/> <node name="left" channel="inline" format="number/integer" model="1,2,3"/> <node name="right" channel="inline" format="number/integer" model="2,3,4"/> <node name="count" channel="inline" format="number/integer" model="1"/> <node name="left_index" channel="inline" format="number/integer" model="1"/> <node name="right_index" channel="inline" format="number/integer" model="0"/> </node>
Name | Required | Format | Description |
---|---|---|---|
result | true | text/cybol-path | The boolean value vector resulting from comparison. |
left | true | text/cybol-path | number/any | text/plain | element/part | element/property | The left operand vector. |
right | true | text/cybol-path | number/any | text/plain | element/part | element/property | The right operand vector. |
count | false | text/cybol-path | number/integer | The number of elements to be compared. This is relevant only for arrays with more than one element. If null, the default is the lesser of left and right operand count. |
left_index | false | text/cybol-path | number/integer | The left index from where to start the comparison from. If null, the default is zero. |
right_index | false | text/cybol-path | number/integer | The right index from where to start the comparison from. If null, the default is zero. |
Compares if the left value is greater than the right value. Commonly used operator in other programming languages: > Left and right operand as well as the boolean result are treated as vector. That is, one boolean result value is returned per each operand vector element. When comparing single elements, the vectors contain just one single value. Numbers may be given as vectors, for example the integer sequence "1,2,3". If using text operands, for example "Hello, World!", then the single characters are compared, one by one. Example with many elements: - operation: greater - left: 10,2,3 - right: 1,2,3 - result: 0,1,1 (which corresponds to "false,true,true") Example with one single element: - operation: greater - left: 33 - right: 3 - result: 0 (which corresponds to "false")
<node name="compare_one" channel="inline" format="compare/greater" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".result"/> <node name="left" channel="inline" format="number/integer" model="2"/> <node name="right" channel="inline" format="number/integer" model="2"/> </node> <node name="compare_many" channel="inline" format="compare/greater" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".result"/> <node name="left" channel="inline" format="number/integer" model="1,2,3"/> <node name="right" channel="inline" format="number/integer" model="2,3,4"/> </node> <node name="compare_literal_and_path" channel="inline" format="compare/greater" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".result"/> <node name="left" channel="inline" format="number/integer" model="3"/> <node name="right" channel="inline" format="text/cybol-path" model=".right"/> </node> <node name="compare_via_paths" channel="inline" format="compare/greater" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".result"/> <node name="left" channel="inline" format="text/cybol-path" model=".left"/> <node name="right" channel="inline" format="text/cybol-path" model=".right"/> </node> <node name="compare_with_index" channel="inline" format="compare/greater" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".result"/> <node name="left" channel="inline" format="number/integer" model="1,2,3"/> <node name="right" channel="inline" format="number/integer" model="2,3,4"/> <node name="count" channel="inline" format="number/integer" model="1"/> <node name="left_index" channel="inline" format="number/integer" model="1"/> <node name="right_index" channel="inline" format="number/integer" model="0"/> </node>
Name | Required | Format | Description |
---|---|---|---|
result | true | text/cybol-path | The boolean value vector resulting from comparison. |
left | true | text/cybol-path | number/any | text/plain | element/part | element/property | The left operand vector. |
right | true | text/cybol-path | number/any | text/plain | element/part | element/property | The right operand vector. |
count | false | text/cybol-path | number/integer | The number of elements to be compared. This is relevant only for arrays with more than one element. If null, the default is the lesser of left and right operand count. |
left_index | false | text/cybol-path | number/integer | The left index from where to start the comparison from. If null, the default is zero. |
right_index | false | text/cybol-path | number/integer | The right index from where to start the comparison from. If null, the default is zero. |
Compares if the left value is greater than the right value or both are equal. Commonly used operator in other programming languages: >= Left and right operand as well as the boolean result are treated as vector. That is, one boolean result value is returned per each operand vector element. When comparing single elements, the vectors contain just one single value. Numbers may be given as vectors, for example the integer sequence "1,2,3". If using text operands, for example "Hello, World!", then the single characters are compared, one by one. Example with many elements: - operation: greater-or-equal - left: 10,2,3 - right: 1,2,3 - result: 0,1,1 (which corresponds to "false,true,true") Example with one single element: - operation: greater-or-equal - left: 33 - right: 3 - result: 0 (which corresponds to "false")
<node name="compare_one" channel="inline" format="compare/greater-or-equal" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".result"/> <node name="left" channel="inline" format="number/integer" model="2"/> <node name="right" channel="inline" format="number/integer" model="2"/> </node> <node name="compare_many" channel="inline" format="compare/greater-or-equal" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".result"/> <node name="left" channel="inline" format="number/integer" model="1,2,3"/> <node name="right" channel="inline" format="number/integer" model="2,3,4"/> </node> <node name="compare_literal_and_path" channel="inline" format="compare/greater-or-equal" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".result"/> <node name="left" channel="inline" format="number/integer" model="3"/> <node name="right" channel="inline" format="text/cybol-path" model=".right"/> </node> <node name="compare_via_paths" channel="inline" format="compare/greater-or-equal" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".result"/> <node name="left" channel="inline" format="text/cybol-path" model=".left"/> <node name="right" channel="inline" format="text/cybol-path" model=".right"/> </node> <node name="compare_with_index" channel="inline" format="compare/greater-or-equal" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".result"/> <node name="left" channel="inline" format="number/integer" model="1,2,3"/> <node name="right" channel="inline" format="number/integer" model="2,3,4"/> <node name="count" channel="inline" format="number/integer" model="1"/> <node name="left_index" channel="inline" format="number/integer" model="1"/> <node name="right_index" channel="inline" format="number/integer" model="0"/> </node>
Name | Required | Format | Description |
---|---|---|---|
result | true | text/cybol-path | The boolean value vector resulting from comparison. |
left | true | text/cybol-path | number/any | text/plain | element/part | element/property | The left operand vector. |
right | true | text/cybol-path | number/any | text/plain | element/part | element/property | The right operand vector. |
count | false | text/cybol-path | number/integer | The number of elements to be compared. This is relevant only for arrays with more than one element. If null, the default is the lesser of left and right operand count. |
left_index | false | text/cybol-path | number/integer | The left index from where to start the comparison from. If null, the default is zero. |
right_index | false | text/cybol-path | number/integer | The right index from where to start the comparison from. If null, the default is zero. |
Compares if the left value is lesser than the right value. Commonly used operator in other programming languages: < Left and right operand as well as the boolean result are treated as vector. That is, one boolean result value is returned per each operand vector element. When comparing single elements, the vectors contain just one single value. Numbers may be given as vectors, for example the integer sequence "1,2,3". If using text operands, for example "Hello, World!", then the single characters are compared, one by one. Example with many elements: - operation: less - left: 10,2,3 - right: 1,2,3 - result: 0,1,1 (which corresponds to "false,true,true") Example with one single element: - operation: less - left: 33 - right: 3 - result: 0 (which corresponds to "false")
<node name="compare_one" channel="inline" format="compare/less" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".result"/> <node name="left" channel="inline" format="number/integer" model="2"/> <node name="right" channel="inline" format="number/integer" model="2"/> </node> <node name="compare_many" channel="inline" format="compare/less" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".result"/> <node name="left" channel="inline" format="number/integer" model="1,2,3"/> <node name="right" channel="inline" format="number/integer" model="2,3,4"/> </node> <node name="compare_literal_and_path" channel="inline" format="compare/less" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".result"/> <node name="left" channel="inline" format="number/integer" model="3"/> <node name="right" channel="inline" format="text/cybol-path" model=".right"/> </node> <node name="compare_via_paths" channel="inline" format="compare/less" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".result"/> <node name="left" channel="inline" format="text/cybol-path" model=".left"/> <node name="right" channel="inline" format="text/cybol-path" model=".right"/> </node> <node name="compare_with_index" channel="inline" format="compare/less" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".result"/> <node name="left" channel="inline" format="number/integer" model="1,2,3"/> <node name="right" channel="inline" format="number/integer" model="2,3,4"/> <node name="count" channel="inline" format="number/integer" model="1"/> <node name="left_index" channel="inline" format="number/integer" model="1"/> <node name="right_index" channel="inline" format="number/integer" model="0"/> </node>
Name | Required | Format | Description |
---|---|---|---|
result | true | text/cybol-path | The boolean value vector resulting from comparison. |
left | true | text/cybol-path | number/any | text/plain | element/part | element/property | The left operand vector. |
right | true | text/cybol-path | number/any | text/plain | element/part | element/property | The right operand vector. |
count | false | text/cybol-path | number/integer | The number of elements to be compared. This is relevant only for arrays with more than one element. If null, the default is the lesser of left and right operand count. |
left_index | false | text/cybol-path | number/integer | The left index from where to start the comparison from. If null, the default is zero. |
right_index | false | text/cybol-path | number/integer | The right index from where to start the comparison from. If null, the default is zero. |
Compares if the left value is lesser than the right value or both are equal. Commonly used operator in other programming languages: <= Left and right operand as well as the boolean result are treated as vector. That is, one boolean result value is returned per each operand vector element. When comparing single elements, the vectors contain just one single value. Numbers may be given as vectors, for example the integer sequence "1,2,3". If using text operands, for example "Hello, World!", then the single characters are compared, one by one. Example with many elements: - operation: less-or-equal - left: 10,2,3 - right: 1,2,3 - result: 0,1,1 (which corresponds to "false,true,true") Example with one single element: - operation: less-or-equal - left: 33 - right: 3 - result: 0 (which corresponds to "false")
<node name="compare_one" channel="inline" format="compare/less-or-equal" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".result"/> <node name="left" channel="inline" format="number/integer" model="2"/> <node name="right" channel="inline" format="number/integer" model="2"/> </node> <node name="compare_many" channel="inline" format="compare/less-or-equal" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".result"/> <node name="left" channel="inline" format="number/integer" model="1,2,3"/> <node name="right" channel="inline" format="number/integer" model="2,3,4"/> </node> <node name="compare_literal_and_path" channel="inline" format="compare/less-or-equal" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".result"/> <node name="left" channel="inline" format="number/integer" model="3"/> <node name="right" channel="inline" format="text/cybol-path" model=".right"/> </node> <node name="compare_via_paths" channel="inline" format="compare/less-or-equal" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".result"/> <node name="left" channel="inline" format="text/cybol-path" model=".left"/> <node name="right" channel="inline" format="text/cybol-path" model=".right"/> </node> <node name="compare_with_index" channel="inline" format="compare/less-or-equal" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".result"/> <node name="left" channel="inline" format="number/integer" model="1,2,3"/> <node name="right" channel="inline" format="number/integer" model="2,3,4"/> <node name="count" channel="inline" format="number/integer" model="1"/> <node name="left_index" channel="inline" format="number/integer" model="1"/> <node name="right_index" channel="inline" format="number/integer" model="0"/> </node>
Name | Required | Format | Description |
---|---|---|---|
result | true | text/cybol-path | The boolean value vector resulting from comparison. |
left | true | text/cybol-path | number/any | text/plain | element/part | element/property | The left operand vector. |
right | true | text/cybol-path | number/any | text/plain | element/part | element/property | The right operand vector. |
count | false | text/cybol-path | number/integer | The number of elements to be compared. This is relevant only for arrays with more than one element. If null, the default is the lesser of left and right operand count. |
left_index | false | text/cybol-path | number/integer | The left index from where to start the comparison from. If null, the default is zero. |
right_index | false | text/cybol-path | number/integer | The right index from where to start the comparison from. If null, the default is zero. |
Compares if left and right value are unequal. Commonly used operators in other programming languages: != <> Left and right operand as well as the boolean result are treated as vector. That is, one boolean result value is returned per each operand vector element. When comparing single elements, the vectors contain just one single value. Numbers may be given as vectors, for example the integer sequence "1,2,3". If using text operands, for example "Hello, World!", then the single characters are compared, one by one. Example with many elements: - operation: unequal - left: 10,2,3 - right: 1,2,3 - result: 0,1,1 (which corresponds to "false,true,true") Example with one single element: - operation: unequal - left: 33 - right: 3 - result: 0 (which corresponds to "false")
<node name="compare_one" channel="inline" format="compare/unequal" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".result"/> <node name="left" channel="inline" format="number/integer" model="2"/> <node name="right" channel="inline" format="number/integer" model="2"/> </node> <node name="compare_many" channel="inline" format="compare/unequal" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".result"/> <node name="left" channel="inline" format="number/integer" model="1,2,3"/> <node name="right" channel="inline" format="number/integer" model="2,3,4"/> </node> <node name="compare_literal_and_path" channel="inline" format="compare/unequal" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".result"/> <node name="left" channel="inline" format="number/integer" model="3"/> <node name="right" channel="inline" format="text/cybol-path" model=".right"/> </node> <node name="compare_via_paths" channel="inline" format="compare/unequal" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".result"/> <node name="left" channel="inline" format="text/cybol-path" model=".left"/> <node name="right" channel="inline" format="text/cybol-path" model=".right"/> </node> <node name="compare_with_index" channel="inline" format="compare/unequal" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".result"/> <node name="left" channel="inline" format="number/integer" model="1,2,3"/> <node name="right" channel="inline" format="number/integer" model="2,3,4"/> <node name="count" channel="inline" format="number/integer" model="1"/> <node name="left_index" channel="inline" format="number/integer" model="1"/> <node name="right_index" channel="inline" format="number/integer" model="0"/> </node>
Name | Required | Format | Description |
---|---|---|---|
result | true | text/cybol-path | The boolean value vector resulting from comparison. |
left | true | text/cybol-path | number/any | text/plain | element/part | element/property | The left operand vector. |
right | true | text/cybol-path | number/any | text/plain | element/part | element/property | The right operand vector. |
count | false | text/cybol-path | number/integer | The number of elements to be compared. This is relevant only for arrays with more than one element. If null, the default is the lesser of left and right operand count. |
left_index | false | text/cybol-path | number/integer | The left index from where to start the comparison from. If null, the default is zero. |
right_index | false | text/cybol-path | number/integer | The right index from where to start the comparison from. If null, the default is zero. |
Checks if the given part contains the value at all, no matter at which position. TODO: NOT IMPLEMENTED YET!
<node name="check_for_string" channel="inline" format="contain/any" model=""> <node name="result" channel="inline" format="text/cybol-path" model="#flag"/> <node name="part" channel="inline" format="text/cybol-path" model=".gedichte.[#index]"/> <node name="value" channel="inline" format="text/plain" model="Stelldichein"/> </node>
Name | Required | Format | Description |
---|---|---|---|
result | true | text/cybol-path | The boolean result flag indicating whether or not the part contains the value at all. |
part | true | text/cybol-path | The part in which to search. |
value | true | text/cybol-path | text/plain | number/integer | The value to search for. |
Checks if the part starts with the given value, at the beginning. TODO: NOT IMPLEMENTED YET!
<node name="check_for_string" channel="inline" format="contain/left" model=""> <node name="result" channel="inline" format="text/cybol-path" model="#flag"/> <node name="part" channel="inline" format="text/cybol-path" model=".gedichte.[#index]"/> <node name="value" channel="inline" format="text/plain" model="Vom Eise befreit"/> </node>
Name | Required | Format | Description |
---|---|---|---|
result | true | text/cybol-path | The boolean result flag indicating whether or not the part starts with the value. |
part | true | text/cybol-path | The part in which to search. |
value | true | text/cybol-path | text/plain | number/integer | The value to search for. |
Checks if the part ends with the given value, at the end. TODO: NOT IMPLEMENTED YET!
<node name="check_for_string" channel="inline" format="contain/right" model=""> <node name="result" channel="inline" format="text/cybol-path" model="#flag"/> <node name="part" channel="inline" format="text/cybol-path" model=".gedichte.[#index]"/> <node name="value" channel="inline" format="text/plain" model="Laß du den Himmel, Freund, sorgen wie gestern so heut."/> </node>
Name | Required | Format | Description |
---|---|---|---|
result | true | text/cybol-path | The boolean result flag indicating whether or not the part ends with the value. |
part | true | text/cybol-path | The part in which to search. |
value | true | text/cybol-path | text/plain | number/integer | The value to search for. |
Decodes the source into the destination, according to the encoding. Caution! The decoded data are appended to the destination. Already existing content is not overwritten. Therefore, the destination possibly has to get emptied before since otherwise, the new data will get appended to the already existing old data.
<node name="decode_request" channel="inline" format="convert/decode" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".action"/> <node name="source" channel="inline" format="text/cybol-path" model=".request"/> <node name="encoding" channel="inline" format="meta/encoding" model="utf-8"/> </node> <node name="decode" channel="inline" format="convert/decode" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".result"/> <node name="source" channel="inline" format="text/cybol-path" model=".text"/> <node name="encoding" channel="inline" format="meta/encoding" model="utf-8"/> </node>
Name | Required | Format | Description |
---|---|---|---|
destination | true | text/cybol-path | The destination wide character array consisting of elements of type |
source | true | text/cybol-path | The source byte array consisting of elements of type |
encoding | true | text/cybol-path | meta/encoding | The message encoding. |
Encodes the source into the destination, according to the encoding. Caution! The encoded data are appended to the destination. Already existing content is not overwritten. Therefore, the destination possibly has to get emptied before since otherwise, the new data will get appended to the already existing old data.
<node name="decode" channel="inline" format="convert/encode" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".data"/> <node name="source" channel="inline" format="text/cybol-path" model=".webpage"/> <node name="encoding" channel="inline" format="meta/encoding" model="utf-8"/> </node>
Name | Required | Format | Description |
---|---|---|---|
destination | true | text/cybol-path | The destination byte array consisting of elements of type |
source | true | text/cybol-path | The source wide character array consisting of elements of type |
encoding | true | text/cybol-path | meta/encoding | The message encoding. |
Closes down a client resource that has been used for connecting to a device or service on the given channel.
<node name="close_file" channel="inline" format="dispatch/close" model=""> <node name="channel" channel="inline" format="meta/channel" model="file"/> <node name="identification" channel="inline" format="text/cybol-path" model=".id"/> </node> <node name="close_stdout" channel="inline" format="dispatch/close" model=""> <node name="channel" channel="inline" format="meta/channel" model="terminal"/> <node name="identification" channel="inline" format="text/cybol-path" model=".app.stdout"/> </node> <node name="handle_close" channel="inline" format="dispatch/close" model=""> <node name="channel" channel="inline" format="meta/channel" model="socket"/> <node name="server" channel="inline" format="logicvalue/boolean" model="true"/> <node name="port" channel="inline" format="number/integer" model="1971"/> <node name="identification" channel="inline" format="text/cybol-path" model=".client_socket"/> </node>
Name | Required | Format | Description |
---|---|---|---|
channel | true | text/cybol-path | meta/channel | The communication channel. |
server | false | text/cybol-path | logicvalue/boolean | The flag indicating server mode. It is used for example for a window or client socket stub. If null, the default is false (standalone client mode). |
port | false | text/cybol-path | number/integer | The service identification. It is relevant only in server mode. If null, the default is zero. |
identification | true | text/cybol-path | The file descriptor or client socket number or window id returned from cyboi when opening the resource. |
Opens up a client resource for connecting to a device or service on the given channel.
<node name="open_file_in_read_mode" channel="inline" format="dispatch/open" model=""> <node name="channel" channel="inline" format="meta/channel" model="file"/> <node name="identification" channel="inline" format="text/cybol-path" model=".id"/> <node name="device" channel="inline" format="text/plain" model="app/config.cybol"/> </node> <node name="open_file_in_write_mode" channel="inline" format="dispatch/open" model=""> <node name="channel" channel="inline" format="meta/channel" model="file"/> <node name="identification" channel="inline" format="text/cybol-path" model=".id"/> <node name="device" channel="inline" format="text/plain" model="knowledge_tree_test.txt"/> <node name="mode" channel="inline" format="text/plain" model="write"/> </node> <node name="open_stdout" channel="inline" format="dispatch/open" model=""> <node name="channel" channel="inline" format="meta/channel" model="terminal"/> <node name="device" channel="inline" format="text/plain" model="standard-output"/> <node name="identification" channel="inline" format="text/cybol-path" model=".stdout"/> </node> <node name="open_stdin" channel="inline" format="dispatch/open" model=""> <node name="channel" channel="inline" format="meta/channel" model="terminal"/> <node name="device" channel="inline" format="text/plain" model="standard-input"/> <node name="identification" channel="inline" format="text/cybol-path" model=".var.stdin"/> </node> <node name="open_serial_port" channel="inline" format="dispatch/open" model=""> <node name="channel" channel="inline" format="meta/channel" model="serial"/> <node name="filename" channel="inline" format="text/plain" model="/dev/ttyACM0"/> <node name="baudrate" channel="inline" format="number/integer" model="115200"/> <node name="identification" channel="inline" format="text/cybol-path" model=".dev.serial_0"/> </node> <node name="open_fifo_named_pipe" channel="inline" format="dispatch/open" model=""> <node name="channel" channel="inline" format="meta/channel" model="fifo"/> <node name="identification" channel="inline" format="text/cybol-path" model=".id"/> <node name="device" channel="inline" format="text/plain" model="app/special_file"/> <node name="mode" channel="inline" format="text/plain" model="write"/> </node> <node name="open_serverside_client_socket_accepted_by_server_before" channel="inline" format="dispatch/open" model=""> <node name="channel" channel="inline" format="meta/channel" model="socket"/> <!-- Open client device in server mode. It was already pre-configured inside by the accepting server socket. --> <node name="server" channel="inline" format="logicvalue/boolean" model="true"/> <node name="port" channel="inline" format="number/integer" model="1971"/> <node name="identification" channel="inline" format="text/cybol-path" model=".client_socket_on_server"/> </node> <node name="open_client_socket_connecting_to_a_server" channel="inline" format="dispatch/open" model=""> <node name="channel" channel="inline" format="meta/channel" model="socket"/> <!-- Open client device in client mode. It still has to be configured inside. --> <node name="server" channel="inline" format="logicvalue/boolean" model="false"/> <node name="port" channel="inline" format="number/integer" model="1971"/> <node name="namespace" channel="inline" format="text/plain" model="ipv4"/> <node name="style" channel="inline" format="text/plain" model="stream"/> <node name="protocol" channel="inline" format="text/plain" model="tcp"/> <node name="device" channel="inline" format="text/plain" model="127.0.0.1"/> <node name="identification" channel="inline" format="text/cybol-path" model=".standalone_client_socket"/> </node> <!-- In win32, each window catches its own events and is managed independently. Therefore, the "server" property does not have to be given here. TODO: This is yet to be implemented and tested in cyboi! --> <node name="open_client" channel="inline" format="dispatch/open" model=""> <node name="channel" channel="inline" format="meta/channel" model="display"/> <node name="identification" channel="inline" format="text/cybol-path" model=".gui.window_id"/> </node> <!-- In the x window system (xcb api), a display server process manages the events of all windows centrally. Therefore, the "server" property has to be given here, in order for the window to get managed by the display server. --> <node name="open_window" channel="inline" format="dispatch/open" model=""> <node name="channel" channel="inline" format="meta/channel" model="display"/> <!-- Open client window in server mode, so that it gets stored in the display server. --> <node name="server" channel="inline" format="logicvalue/boolean" model="true"/> <node name="identification" channel="inline" format="text/cybol-path" model=".gui.window_id"/> </node>
Name | Required | Format | Description |
---|---|---|---|
channel | true | text/cybol-path | meta/channel | The communication channel. |
server | false | text/cybol-path | logicvalue/boolean | The flag indicating server mode. It is used for example for a window or client socket stub. If null, the default is false (standalone client mode). |
port | false | text/cybol-path | number/integer | The service identification. It is relevant only in server mode. If null, the default is zero. |
namespace | false | text/cybol-path | text/plain | The address family. It is relevant only with channel socket. Example values: ipv4 or ipv6. |
style | false | text/cybol-path | text/plain | The communication style. It is relevant only with channel socket. Example values: stream or datagram. |
protocol | false | text/cybol-path | text/plain | The protocol. It is relevant only with channel socket. Example values: tcp or udp. |
mode | false | text/cybol-path | text/plain | The file open mode. Either read or write. If null, the default is read. |
device | false | text/cybol-path | text/plain | The filename for channel file or serial or terminal or fifo. Example values: /path/to/file.txt or /dev/ttyS0 or standard-output or standard-input or standard-error-output. The filename for channel socket with namespace local (unix domain socket). Example values: localbuffer.socket. The host address for channel socket with namespace ipv4 or ipv6. Example values: localhost or 127.0.0.1. It is null (not given) for channel display, since a client window does not need it. |
identification | true | text/cybol-path | The file descriptor or client socket number or window id returned from cyboi when opening the resource. |
Starts sensing data input within a thread on the sender/client with the given identification. It fills the internal input buffer with those data that were received as input. Calling this operation is not necessary for channel "display" on a linux operating system with x window system, since "activate/enable" catches the events of all client windows. On a windows operating system, however, one separate event thread is run per window, so that calling "feel/sense" is necessary.
<!-- Open terminal and sense input on it. --> <node name="open_terminal_stdin" channel="inline" format="dispatch/open" model=""> <node name="channel" channel="inline" format="meta/channel" model="terminal"/> <!-- The text "standard-input" is a pre-defined constant and is used instead of a filename here. --> <node name="device" channel="inline" format="text/plain" model="standard-input"/> <node name="identification" channel="inline" format="text/cybol-path" model=".var.stdin"/> </node> <node name="sense_terminal_input" channel="inline" format="feel/sense" model=""> <node name="channel" channel="inline" format="meta/channel" model="terminal"/> <node name="sender" channel="inline" format="text/cybol-path" model=".var.stdin"/> <node name="language" channel="inline" format="meta/language" model="message/tui"/> <node name="handler" channel="inline" format="text/cybol-path" model=".logic.handle"/> </node> <node name="sense_data_on_serial_interface" channel="inline" format="feel/sense" model=""> <node name="channel" channel="inline" format="meta/channel" model="serial"/> <node name="sender" channel="inline" format="text/cybol-path" model=".serial_id"/> <node name="language" channel="inline" format="meta/language" model="message/binary-crlf"/> <node name="handler" channel="inline" format="text/cybol-path" model=".logic.handle"/> </node> <node name="sense_client_data_in_binary_format" channel="inline" format="feel/sense" model=""> <node name="channel" channel="inline" format="meta/channel" model="socket"/> <node name="server" channel="inline" format="logicvalue/boolean" model="true"/> <node name="port" channel="inline" format="number/integer" model="1971"/> <node name="sender" channel="inline" format="text/cybol-path" model=".client_socket"/> <node name="language" channel="inline" format="meta/language" model="message/binary-crlf"/> <node name="handler" channel="inline" format="text/cybol-path" model=".logic.handle_sense"/> <node name="closer" channel="inline" format="text/cybol-path" model=".logic.handle_close"/> </node> <node name="sense_client_data_as_http_request" channel="inline" format="feel/sense" model=""> <node name="channel" channel="inline" format="meta/channel" model="socket"/> <node name="server" channel="inline" format="logicvalue/boolean" model="true"/> <node name="port" channel="inline" format="number/integer" model="1971"/> <node name="sender" channel="inline" format="text/cybol-path" model=".var.client_socket"/> <node name="language" channel="inline" format="meta/language" model="message/http-request"/> <node name="handler" channel="inline" format="text/cybol-path" model=".logic.handle.sense"/> <node name="closer" channel="inline" format="text/cybol-path" model=".logic.handle.close"/> </node> <!-- This operation "feel/sense" for channel "display" does NOT run in a separate thread. It is just used to hand over a specific event handler for each window. --> <node name="assign_handler_for_client_window_events" channel="inline" format="feel/sense" model=""> <node name="channel" channel="inline" format="meta/channel" model="display"/> <node name="server" channel="inline" format="logicvalue/boolean" model="true"/> <node name="sender" channel="inline" format="text/cybol-path" model=".gui.window_id"/> <node name="handler" channel="inline" format="text/cybol-path" model=".logic.handle"/> </node>
Name | Required | Format | Description |
---|---|---|---|
channel | true | text/cybol-path | meta/channel | The communication channel. |
server | false | text/cybol-path | logicvalue/boolean | The flag indicating server mode. It means server-side client stub and not standalone client. If null, the default is false (client mode). |
port | false | text/cybol-path | number/integer | The service identification. It is relevant only in server mode. |
sender | true | text/cybol-path | The device identification, for example a file descriptor. Handing it over as hard-coded integer value does not make sense, since the operating system or server assigns it. Therefore, state a cybol-path. |
language | false | text/cybol-path | meta/language | The language used for deserialisation. It is also defining which prefix or suffix indicates the message length, for example binary-crlf, http-request, xdt. |
handler | true | text/cybol-path | The callback cybol model to be executed when data were detected on the sender, in order to read them from the internal input buffer. |
closer | false | text/cybol-path | The callback cybol model to be executed when the client does not respond and is to be closed. |
Pauses data input sensing thread for the sender/client with the given identification.
<node name="suspend_sensing_thread" channel="inline" format="feel/suspend" model=""> <node name="channel" channel="inline" format="meta/channel" model="display"/> <node name="server" channel="inline" format="logicvalue/boolean" model="true"/> <node name="sender" channel="inline" format="text/cybol-path" model=".gui.window_id"/> </node>
Name | Required | Format | Description |
---|---|---|---|
channel | true | text/cybol-path | meta/channel | The communication channel. |
server | false | text/cybol-path | logicvalue/boolean | The flag indicating server mode. It means server-side client stub and not standalone client. If null, the default is false (client mode). |
port | false | text/cybol-path | number/integer | The service identification. It is relevant only in server mode. |
sender | true | text/cybol-path | The device identification, for example a file descriptor. Handing it over as hard-coded integer value does not make sense, since the operating system or server assigns it. Therefore, state a cybol-path. |
Branches the programme flow, depending on the criterion flag.
<!-- Read models from file. --> <node name="branch_voltage" channel="inline" format="flow/branch" model=""> <node name="criterion" channel="inline" format="text/cybol-path" model=".settings.voltage_criterion"/> <node name="true" channel="file" format="element/part" model="indoor_climate/add_voltage.cybol"/> <node name="false" channel="file" format="element/part" model="indoor_climate/report_voltage_failure.cybol"/> </node> <!-- Branch with one model. --> <node name="if-then" channel="inline" format="flow/branch" model=""> <node name="criterion" channel="inline" format="text/cybol-path" model=".app.var.flag_loose"/> <node name="true" channel="inline" format="text/cybol-path" model=".app.print_win"/> </node> <!-- Branch with two models. --> <node name="if-then-else" channel="inline" format="flow/branch" model=""> <node name="criterion" channel="inline" format="text/cybol-path" model=".domain.flag"/> <node name="true" channel="inline" format="text/cybol-path" model=".domain.true_model"/> <node name="false" channel="inline" format="text/cybol-path" model=".domain.false_model"/> </node> <!-- Verify existence of given url path. --> <node name="test_query" channel="inline" format="access/indicate-exists" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".var.query_exists"/> <node name="part" channel="inline" format="text/cybol-path" model=".var.request:uri:query"/> </node> <node name="evaluate_query" channel="inline" format="flow/branch" model=""> <node name="criterion" channel="inline" format="text/cybol-path" model=".var.query_exists"/> <node name="true" channel="inline" format="text/cybol-path" model=".logic.evaluate_query"/> <!-- CAUTION! Sending a response is important, even if the query was empty or not understood, since some browsers request a "/favicon.ico" or other things and if no response was sent, the browser would wait forever and block requests from other clients. --> <node name="false" channel="inline" format="text/cybol-path" model=".logic.send.empty_message"/> </node> <!-- Fill cell with default value if database value is empty. --> <node name="translate_cell" channel="inline" format="flow/branch" model=""> <node name="criterion" channel="inline" format="text/cybol-path" model="#empty"/> <node name="true" channel="inline" format="text/cybol-path" model=".logic.translate.db_to_wui.cell_default"/> <node name="false" channel="inline" format="text/cybol-path" model=".logic.translate.db_to_wui.cell"/> </node> <!-- Call operation directly inline (not as cybol-path) and hand over properties as operation parametres. --> <node name="process_model_as_compound_or_primitive" channel="inline" format="flow/branch" model=""> <node name="criterion" channel="inline" format="text/cybol-path" model="#compound_flag"/> <node name="true" channel="inline" format="communicate/send" model=""> <node name="channel" channel="inline" format="meta/channel" model="terminal"/> <node name="receiver" channel="inline" format="text/cybol-path" model=".stdout"/> <node name="language" channel="inline" format="meta/language" model="message/tui"/> <node name="format" channel="inline" format="meta/format" model="text/plain"/> <node name="message" channel="inline" format="text/plain" model="Do nothing, since this is a compound model."/> </node> <node name="false" channel="inline" format="modify/overwrite" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".wui.index.body.content.(#wui_record_name).table.(#wui_field_name).model"/> <node name="source" channel="inline" format="text/cybol-path" model="#field_model_text"/> </node> </node>
Name | Required | Format | Description |
---|---|---|---|
criterion | true | text/cybol-path | logicvalue/boolean | The flag defining which of the two models to execute. |
true | false | text/cybol-path | element/part | The logic knowledge model to be executed if the criterion is true. |
false | false | text/cybol-path | element/part | The logic knowledge model to be executed if the criterion is false. |
Loops the programme flow endlessly, until the break flag is set.
<!-- Read model from heap (knowledge tree). --> <node name="print_numbers" channel="inline" format="flow/loop" model=""> <node name="break" channel="inline" format="text/cybol-path" model=".break"/> <node name="model" channel="inline" format="text/cybol-path" model=".model"/> </node> <!-- Read model from stack. --> <node name="loop_rows" channel="inline" format="flow/loop" model=""> <node name="break" channel="inline" format="text/cybol-path" model="#row_break"/> <node name="model" channel="inline" format="text/cybol-path" model="#row_model"/> </node> <!-- Read model from file. --> <node name="collect_voltages" channel="inline" format="flow/loop" model=""> <node name="break" channel="inline" format="text/cybol-path" model=".settings.adc_break"/> <node name="model" channel="file" format="element/part" model="adc/collect_voltages.cybol"/> </node> <!-- Translate data records of the german medical standard xdt. --> <node name="loop_records" channel="inline" format="flow/loop" model=""> <node name="break" channel="inline" format="path/knowledge" model=".temporary.xdt.record.break"/> <node name="model" channel="inline" format="path/knowledge" model=".logic.translate.record"/> </node> <!-- Generate several webpages. --> <node name="loop_page" channel="inline" format="flow/loop" model=""> <node name="break" channel="inline" format="text/cybol-path" model="#page_break"/> <node name="model" channel="inline" format="text/cybol-path" model=".logic.generate.page"/> </node> <!-- Call randomiser as model. --> <node name="generate_mines_in_game_minesweeper" channel="inline" format="flow/loop" model=""> <node name="break" channel="inline" format="text/cybol-path" model=".app.break"/> <node name="model" channel="inline" format="text/cybol-path" model=".app.logic.randomiser"/> </node>
Name | Required | Format | Description |
---|---|---|---|
break | true | text/cybol-path | logicvalue/boolean | The break flag that causes the loop to be left. |
model | true | text/cybol-path | element/part | The logic knowledge model to be executed repeatedly by the loop. |
Executes the given programme flow as sequence. This encapsulating operation "flow/sequence" is provided here to have all three constructs of structural programming implemented together, which are "sequence", "loop" and "branch". However, in principle, logic models may be executed standalone directly or with encapsulating operation "flow/sequence". Both kinds of execution are possible.
<node name="start_player_input" channel="inline" format="flow/sequence" model=""> <node name="model" channel="inline" format="text/cybol-path" model=".app.setrandom"/> </node> <node name="send_index" channel="inline" format="flow/sequence" model=""> <node name="model" channel="inline" format="text/cybol-path" model=".logic.send.index"/> </node> <node name="execute_action" channel="inline" format="flow/sequence" model=""> <node name="model" channel="inline" format="text/cybol-path" model="{.path}"/> </node> <node name="translate_uri_to_wui" channel="inline" format="flow/sequence" model=""> <node name="model" channel="inline" format="text/cybol-path" model=".logic.translate.uri_to_wui.column"/> </node> <!-- Direct execution of logic model without encapsulating operation "flow/sequence". --> <node name="navigate_to_week" channel="inline" format="text/cybol-path" model=".logic.navigate.week"/>
Name | Required | Format | Description |
---|---|---|---|
model | true | text/cybol-path | element/part | The logic knowledge model to be executed as sequence. |
Exits the cyboi system and closes the running application. Internally, an exit flag gets set so that the event loop gets left. Interrupt threads get exited, too. All objects in memory get deallocated. The cyboi interpreter finally exits.
<node name="exit_application" channel="inline" format="live/exit" model=""/>
Applies the boolean logic operation AND. y = x1 AND x2
<node name="operation" channel="inline" format="logify/and" model=""> <node name="output" channel="inline" format="text/cybol-path" model="#y"/> <node name="input" channel="inline" format="text/cybol-path" model="#x2"/> </node>
Name | Required | Format | Description |
---|---|---|---|
output | true | text/cybol-path | The output resulting from the boolean logic operation. It initially represents the first input operand. |
input | true | text/cybol-path | logicvalue/boolean | The second input operand. |
Applies the boolean logic operation NAND. y = x1 NAND x2
<node name="operation" channel="inline" format="logify/nand" model=""> <node name="output" channel="inline" format="text/cybol-path" model="#y"/> <node name="input" channel="inline" format="text/cybol-path" model="#x2"/> </node>
Name | Required | Format | Description |
---|---|---|---|
output | true | text/cybol-path | The output resulting from the boolean logic operation. It initially represents the first input operand. |
input | true | text/cybol-path | logicvalue/boolean | The second input operand. |
Applies the boolean logic operation NEG. y = x1 NEG x2 When used with Bit operands, then this is the two's complement (all bits negated and added one).
<node name="operation" channel="inline" format="logify/neg" model=""> <node name="output" channel="inline" format="text/cybol-path" model="#y"/> <node name="input" channel="inline" format="text/cybol-path" model="#x2"/> </node>
Name | Required | Format | Description |
---|---|---|---|
output | true | text/cybol-path | The output resulting from the boolean logic operation. It initially represents the first input operand. |
input | true | text/cybol-path | logicvalue/boolean | The second input operand. |
Applies the boolean logic operation NOR. y = x1 NOR x2
<node name="operation" channel="inline" format="logify/nor" model=""> <node name="output" channel="inline" format="text/cybol-path" model="#y"/> <node name="input" channel="inline" format="text/cybol-path" model="#x2"/> </node>
Name | Required | Format | Description |
---|---|---|---|
output | true | text/cybol-path | The output resulting from the boolean logic operation. It initially represents the first input operand. |
input | true | text/cybol-path | logicvalue/boolean | The second input operand. |
Applies the boolean logic operation NOT. y = x1 NOT x2 When used with Bit operands, then this is the one's complement (all bits negated).
<node name="operation" channel="inline" format="logify/not" model=""> <node name="output" channel="inline" format="text/cybol-path" model="#y"/> <node name="input" channel="inline" format="text/cybol-path" model="#x2"/> </node>
Name | Required | Format | Description |
---|---|---|---|
output | true | text/cybol-path | The output resulting from the boolean logic operation. It initially represents the first input operand. |
input | true | text/cybol-path | logicvalue/boolean | The second input operand. |
Applies the boolean logic operation OR. y = x1 OR x2
<node name="operation" channel="inline" format="logify/or" model=""> <node name="output" channel="inline" format="text/cybol-path" model="#y"/> <node name="input" channel="inline" format="text/cybol-path" model="#x2"/> </node>
Name | Required | Format | Description |
---|---|---|---|
output | true | text/cybol-path | The output resulting from the boolean logic operation. It initially represents the first input operand. |
input | true | text/cybol-path | logicvalue/boolean | The second input operand. |
Applies the boolean logic operation XNOR. y = x1 XNOR x2
<node name="operation" channel="inline" format="logify/xnor" model=""> <node name="output" channel="inline" format="text/cybol-path" model="#y"/> <node name="input" channel="inline" format="text/cybol-path" model="#x2"/> </node>
Name | Required | Format | Description |
---|---|---|---|
output | true | text/cybol-path | The output resulting from the boolean logic operation. It initially represents the first input operand. |
input | true | text/cybol-path | logicvalue/boolean | The second input operand. |
Applies the boolean logic operation XOR. y = x1 XOR x2
<node name="operation" channel="inline" format="logify/xor" model=""> <node name="output" channel="inline" format="text/cybol-path" model="#y"/> <node name="input" channel="inline" format="text/cybol-path" model="#x2"/> </node>
Name | Required | Format | Description |
---|---|---|---|
output | true | text/cybol-path | The output resulting from the boolean logic operation. It initially represents the first input operand. |
input | true | text/cybol-path | logicvalue/boolean | The second input operand. |
Shuts down the service running on the channel.
<node name="shutdown_connexion_to_x_window_system_server" channel="inline" format="maintain/shutdown" model=""> <node name="channel" channel="inline" format="meta/channel" model="display"/> </node>
Name | Required | Format | Description |
---|---|---|---|
channel | true | text/cybol-path | meta/channel | The communication channel. |
port | false | text/cybol-path | number/integer | The service identification. |
Starts up a service on the channel.
<node name="startup_local_unix_domain_socket_with_filename" channel="inline" format="maintain/startup" model=""> <node name="channel" channel="inline" format="meta/channel" model="socket"/> <node name="namespace" channel="inline" format="text/plain" model="local"/> <node name="style" channel="inline" format="text/plain" model="datagram"/> <node name="protocol" channel="inline" format="text/plain" model="udp"/> <node name="device" channel="inline" format="text/plain" model="cyboi.socket"/> <node name="connexions" channel="inline" format="number/integer" model="1"/> <node name="timeout" channel="inline" format="number/integer" model="5"/> </node> <node name="startup_ipv4_stream_socket" channel="inline" format="maintain/startup" model=""> <node name="channel" channel="inline" format="meta/channel" model="socket"/> <node name="port" channel="inline" format="number/integer" model="1971"/> <node name="namespace" channel="inline" format="text/plain" model="ipv4"/> <node name="style" channel="inline" format="text/plain" model="stream"/> <node name="protocol" channel="inline" format="text/plain" model="tcp"/> <node name="device" channel="inline" format="text/plain" model="127.0.0.1"/> <node name="connexions" channel="inline" format="number/integer" model="10"/> <node name="timeout" channel="inline" format="number/integer" model="5"/> </node> <!-- Startup display service and open a window afterwards. --> <node name="connect_to_x_window_system_server" channel="inline" format="maintain/startup" model=""> <node name="channel" channel="inline" format="meta/channel" model="display"/> </node> <node name="open_window" channel="inline" format="dispatch/open" model=""> <node name="channel" channel="inline" format="meta/channel" model="display"/> <!-- Open client window in SERVER mode, so that it gets stored in the display server. --> <node name="server" channel="inline" format="logicvalue/boolean" model="true"/> <node name="identification" channel="inline" format="text/cybol-path" model=".gui.window_id"/> </node>
Name | Required | Format | Description |
---|---|---|---|
channel | true | text/cybol-path | meta/channel | The communication channel. |
port | false | text/cybol-path | number/integer | The service identification. |
namespace | false | text/cybol-path | text/plain | The address family, for example local, ipv4, ipv6. |
style | false | text/cybol-path | text/plain | The communication style, for example stream, datagram, raw. |
protocol | false | text/cybol-path | text/plain | The protocol, for example tcp, udp, rdp. |
device | false | text/cybol-path | text/plain | The filename for channel socket with namespace local (unix domain socket). Example values: localbuffer.socket. The host address for channel socket with namespace ipv4 or ipv6. Example values: localhost or 127.0.0.1. It is null (not given) for channel display, since a client window does not need it. |
connexions | false | text/cybol-path | number/integer | The maximum number of possible pending client requests, for example 10. |
timeout | false | text/cybol-path | number/integer | The timeout in seconds set for each new client, for example 300. |
Gets the bit at the given position. This bit manipulation operation corresponds to the "BT" (bit) or "BTST" (bit test) assembler command. TODO: NOT IMPLEMENTED YET!
<node name="get_bit" channel="inline" format="manipulate/check" model=""> <node name="result" channel="inline" format="text/cybol-path" model="#bit"/> <node name="value" channel="inline" format="number/integer" model="71"/> <node name="position" channel="inline" format="number/integer" model="4"/> </node> <node name="use_stack_variable" channel="inline" format="manipulate/check" model=""> <node name="result" channel="inline" format="text/cybol-path" model="#bit"/> <node name="value" channel="inline" format="text/cybol-path" model=".number"/> <node name="position" channel="inline" format="text/cybol-path" model="#pos"/> </node>
Name | Required | Format | Description |
---|---|---|---|
result | true | text/cybol-path | The bit at the given position of the value. |
value | true | text/cybol-path | The value which is to be manipulated. |
position | true | text/cybol-path | number/integer | The bit position within the value. |
count | false | text/cybol-path | number/integer | The number of values to be manipulated. If null, the default is the value count. |
index | false | text/cybol-path | number/integer | The index from which to start manipulating values. If null, the default is zero. |
Resets the bit at the given position. This bit manipulation operation corresponds to the "BTR" (bit reset) assembler command. TODO: NOT IMPLEMENTED YET!
<node name="manipulate_bit" channel="inline" format="manipulate/clear" model=""> <node name="value" channel="inline" format="text/cybol-path" model=".number"/> <node name="position" channel="inline" format="number/integer" model="4"/> </node> <node name="use_stack_variable" channel="inline" format="manipulate/clear" model=""> <node name="value" channel="inline" format="text/cybol-path" model=".number"/> <node name="position" channel="inline" format="text/cybol-path" model="#pos"/> </node>
Name | Required | Format | Description |
---|---|---|---|
value | true | text/cybol-path | The value which is to be manipulated. |
position | true | text/cybol-path | number/integer | The bit position within the value. |
count | false | text/cybol-path | number/integer | The number of values to be manipulated. If null, the default is the value count. |
index | false | text/cybol-path | number/integer | The index from which to start manipulating values. If null, the default is zero. |
Rotates all bits of the value to the left by the given position. This bit manipulation operation corresponds to the "ROL" (rotate left) assembler command. TODO: NOT IMPLEMENTED YET!
<node name="manipulate_bit" channel="inline" format="manipulate/rotate-left" model=""> <node name="value" channel="inline" format="text/cybol-path" model=".number"/> <node name="position" channel="inline" format="number/integer" model="4"/> </node> <node name="use_stack_variable" channel="inline" format="manipulate/rotate-left" model=""> <node name="value" channel="inline" format="text/cybol-path" model=".number"/> <node name="position" channel="inline" format="text/cybol-path" model="#pos"/> </node>
Name | Required | Format | Description |
---|---|---|---|
value | true | text/cybol-path | The value which is to be manipulated. |
position | true | text/cybol-path | number/integer | The bit position within the value. |
count | false | text/cybol-path | number/integer | The number of values to be manipulated. If null, the default is the value count. |
index | false | text/cybol-path | number/integer | The index from which to start manipulating values. If null, the default is zero. |
Rotates all bits of the value to the right by the given position. This bit manipulation operation corresponds to the "ROR" (rotate right) assembler command. TODO: NOT IMPLEMENTED YET!
<node name="manipulate_bit" channel="inline" format="manipulate/rotate-right" model=""> <node name="value" channel="inline" format="text/cybol-path" model=".number"/> <node name="position" channel="inline" format="number/integer" model="4"/> </node> <node name="use_stack_variable" channel="inline" format="manipulate/rotate-right" model=""> <node name="value" channel="inline" format="text/cybol-path" model=".number"/> <node name="position" channel="inline" format="text/cybol-path" model="#pos"/> </node>
Name | Required | Format | Description |
---|---|---|---|
value | true | text/cybol-path | The value which is to be manipulated. |
position | true | text/cybol-path | number/integer | The bit position within the value. |
count | false | text/cybol-path | number/integer | The number of values to be manipulated. If null, the default is the value count. |
index | false | text/cybol-path | number/integer | The index from which to start manipulating values. If null, the default is zero. |
Sets the bit at the given position. This bit manipulation operation corresponds to the "BTS" (bit set) assembler command. TODO: NOT IMPLEMENTED YET!
<node name="manipulate_bit" channel="inline" format="manipulate/set" model=""> <node name="value" channel="inline" format="text/cybol-path" model=".number"/> <node name="position" channel="inline" format="number/integer" model="4"/> </node> <node name="use_stack_variable" channel="inline" format="manipulate/set" model=""> <node name="value" channel="inline" format="text/cybol-path" model=".number"/> <node name="position" channel="inline" format="text/cybol-path" model="#pos"/> </node>
Name | Required | Format | Description |
---|---|---|---|
value | true | text/cybol-path | The value which is to be manipulated. |
position | true | text/cybol-path | number/integer | The bit position within the value. |
count | false | text/cybol-path | number/integer | The number of values to be manipulated. If null, the default is the value count. |
index | false | text/cybol-path | number/integer | The index from which to start manipulating values. If null, the default is zero. |
Shifts all bits of the value to the left by the given position. This bit manipulation operation corresponds to the "SHL" (shift left) assembler command. TODO: NOT IMPLEMENTED YET!
<node name="manipulate_bit" channel="inline" format="manipulate/shift-left" model=""> <node name="value" channel="inline" format="text/cybol-path" model=".number"/> <node name="position" channel="inline" format="number/integer" model="4"/> </node> <node name="use_stack_variable" channel="inline" format="manipulate/shift-left" model=""> <node name="value" channel="inline" format="text/cybol-path" model=".number"/> <node name="position" channel="inline" format="text/cybol-path" model="#pos"/> </node>
Name | Required | Format | Description |
---|---|---|---|
value | true | text/cybol-path | The value which is to be manipulated. |
position | true | text/cybol-path | number/integer | The bit position within the value. |
count | false | text/cybol-path | number/integer | The number of values to be manipulated. If null, the default is the value count. |
index | false | text/cybol-path | number/integer | The index from which to start manipulating values. If null, the default is zero. |
Shifts all bits of the value to the right by the given position. This bit manipulation operation corresponds to the "SHR" (shift right) assembler command. TODO: NOT IMPLEMENTED YET!
<node name="manipulate_bit" channel="inline" format="manipulate/shift-right" model=""> <node name="value" channel="inline" format="text/cybol-path" model=".number"/> <node name="position" channel="inline" format="number/integer" model="4"/> </node> <node name="use_stack_variable" channel="inline" format="manipulate/shift-right" model=""> <node name="value" channel="inline" format="text/cybol-path" model=".number"/> <node name="position" channel="inline" format="text/cybol-path" model="#pos"/> </node>
Name | Required | Format | Description |
---|---|---|---|
value | true | text/cybol-path | The value which is to be manipulated. |
position | true | text/cybol-path | number/integer | The bit position within the value. |
count | false | text/cybol-path | number/integer | The number of values to be manipulated. If null, the default is the value count. |
index | false | text/cybol-path | number/integer | The index from which to start manipulating values. If null, the default is zero. |
Toggles the bit at the given position. This bit manipulation operation corresponds to the "CHG" (change) assembler command. TODO: NOT IMPLEMENTED YET!
<node name="manipulate_bit" channel="inline" format="manipulate/toggle" model=""> <node name="value" channel="inline" format="text/cybol-path" model=".number"/> <node name="position" channel="inline" format="number/integer" model="4"/> </node> <node name="use_stack_variable" channel="inline" format="manipulate/toggle" model=""> <node name="value" channel="inline" format="text/cybol-path" model=".number"/> <node name="position" channel="inline" format="text/cybol-path" model="#pos"/> </node>
Name | Required | Format | Description |
---|---|---|---|
value | true | text/cybol-path | The value which is to be manipulated. |
position | true | text/cybol-path | number/integer | The bit position within the value. |
count | false | text/cybol-path | number/integer | The number of values to be manipulated. If null, the default is the value count. |
index | false | text/cybol-path | number/integer | The index from which to start manipulating values. If null, the default is zero. |
Allocates an empty part in heap memory, consisting of name and type only. Each knowledge tree node has a double hierarchy with the main model branch representing the whole-part-structure and a second branch representing additional (mostly flat) properties. The "properties" property flag determines where to add the new part to. If the "whole" property is not given (null) and the "properties" flag set to true, then the new part gets added to the knowledge memory root node's properties branch.
<node name="create_fileid" channel="inline" format="memorise/create" model=""> <node name="name" channel="inline" format="text/plain" model="id"/> <node name="format" channel="inline" format="meta/format" model="number/integer"/> </node> <node name="create_summand" channel="inline" format="memorise/create" model=""> <node name="name" channel="inline" format="text/plain" model="summand"/> <node name="format" channel="inline" format="meta/format" model="number/integer"/> <node name="whole" channel="inline" format="text/cybol-path" model=".addition_application"/> </node> <node name="create_wui_song" channel="inline" format="memorise/create" model=""> <node name="name" channel="inline" format="text/cybol-path" model="#song_name"/> <node name="format" channel="inline" format="meta/format" model="element/part"/> <node name="whole" channel="inline" format="text/cybol-path" model=".wui.round.(#round_name).content"/> </node> <node name="create_sub_node_in_root_property_properties" channel="inline" format="memorise/create" model=""> <node name="name" channel="inline" format="text/plain" model="number"/> <node name="format" channel="inline" format="meta/format" model="number/integer"/> <node name="whole" channel="inline" format="text/cybol-path" model=":some_root_property"/> <node name="properties" channel="inline" format="logicvalue/boolean" model="true"/> </node>
Name | Required | Format | Description |
---|---|---|---|
name | true | text/cybol-path | text/plain | The name of the part to be created. |
format | true | text/cybol-path | meta/format | The format of the part to be created. The internal data type gets determined from it. |
whole | false | text/cybol-path | The destination parent node to which to add the new part to. If null, the default is the knowledge memory root node. |
properties | false | text/cybol-path | logicvalue/boolean | The flag indicating whether to use the model or properties branch as destination. If null, the default is false (model branch). |
Deallocates the given part in heap memory. Caution! Do not destroy the whole knowledge tree when shutting down a system since otherwise, the shutdown operation models of the corresponding cybol application being executed get destroyed as well, so that the exit operation cannot be executed anymore. The rubbish (garbage) collector cares about destruction evaluating references. The exit operation is the last one to be called. It cleans up all memory internally.
<node name="destroy_part" channel="inline" format="memorise/destroy" model=""> <node name="part" channel="inline" format="text/cybol-path" model=".some.part"/> </node>
Name | Required | Format | Description |
---|---|---|---|
part | true | text/cybol-path | The part to be destroyed. |
Appends the source data to the destination.
<node name="append_action" channel="inline" format="modify/append" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".path"/> <node name="source" channel="inline" format="text/cybol-path" model=".action"/> </node> <node name="append_page_file_suffix" channel="inline" format="modify/append" model=""> <node name="destination" channel="inline" format="text/cybol-path" model="#page_file"/> <node name="source" channel="inline" format="text/plain" model=".html"/> </node> <node name="overwrite_link_reference_with_project_name" channel="inline" format="modify/append" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".wui.(#category_name).body.toc.(#project_name):href"/> <node name="source" channel="inline" format="text/cybol-path" model="#project_name"/> </node> <node name="append_path" channel="inline" format="modify/append" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".var.path"/> <node name="source" channel="inline" format="text/cybol-path" model=".var.request:uri:path"/> </node> <node name="append_scheme_suffix" channel="inline" format="modify/append" model=""> <node name="destination" channel="inline" format="text/cybol-path" model="#href"/> <node name="source" channel="inline" format="text/cybol-path" model=".domain.uri.scheme_suffix"/> </node> <node name="assemble_next_element_name" channel="inline" format="modify/append" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".tui.main.menu:focus"/> <node name="source" channel="inline" format="text/cybol-path" model=".var.navigation"/> </node> <node name="assemble_current_element_background" channel="inline" format="modify/append" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".var.character"/> <node name="source" channel="inline" format="text/plain" model=":background"/> </node>
Name | Required | Format | Description |
---|---|---|---|
destination | true | text/cybol-path | The destination part. |
source | true | text/cybol-path | The source part. |
move | false | text/cybol-path | logicvalue/boolean | The flag indicating whether or not to remove source elements after having been copied. If null, the default is false (deep copying). When deep copying elements (false), their whole sub tree gets cloned. With shallow copying (true), the element content does not get duplicated and only the memory pointers to the elements get copied and afterwards removed from the source container. |
count | false | text/cybol-path | number/integer | The number of elements to be copied. If null, the default is the source part model count. |
source_index | false | text/cybol-path | number/integer | The source index from which to start copying elements from. If null, the default is zero. |
destination_properties | false | text/cybol-path | logicvalue/boolean | The flag indicating whether to use the model or properties container as destination. If null, the default is false (model). |
source_properties | false | text/cybol-path | logicvalue/boolean | The flag indicating whether to use the model or properties container as source. If null, the default is false (model). |
Removes all data (elements) from the destination (container).
<node name="reset_response_model" channel="inline" format="modify/empty" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".response"/> </node> <node name="empty_dbfile_model" channel="inline" format="modify/empty" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".var.dbfile"/> <node name="destination_properties" channel="inline" format="logicvalue/boolean" model="false"/> </node> <node name="reset_action_properties" channel="inline" format="modify/empty" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".gui.action"/> <node name="destination_properties" channel="inline" format="logicvalue/boolean" model="true"/> </node>
Name | Required | Format | Description |
---|---|---|---|
destination | true | text/cybol-path | The destination part. |
destination_properties | false | text/cybol-path | logicvalue/boolean | The flag indicating whether to use the model or properties container as destination. If null, the default is false (model). |
Fills the destination (container) with repeated source data (element). Caution! Even though the operations "modify/fill" and "modify/repeat" both copy a source element multiple times, there are differences between them. "modify/fill": - works with any element type - does not change the size of the destination container - overwrites existing elements until container is filled - can copy only one element (source count of one) "modify/repeat": - works only with text (character string) - adjusts the size of the destination container (grows or shrinks) - overwrites existing elements and may exceed the current destination container - can copy an element sequence (source count greater or equal to one)
<node name="reinitialise_integer_array" channel="inline" format="modify/fill" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".var.array"/> <node name="source" channel="inline" format="number/integer" model="-1"/> </node> <node name="overwrite_string_content" channel="inline" format="modify/fill" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".some_text"/> <node name="source" channel="inline" format="text/cybol-path" model="#init_sign"/> </node>
Name | Required | Format | Description |
---|---|---|---|
destination | true | text/cybol-path | The destination part. |
source | true | text/cybol-path | The source part. |
source_index | false | text/cybol-path | number/integer | The source index from which to start copying elements from. If null, the default is zero. |
destination_properties | false | text/cybol-path | logicvalue/boolean | The flag indicating whether to use the model or properties container as destination. If null, the default is false (model). |
source_properties | false | text/cybol-path | logicvalue/boolean | The flag indicating whether to use the model or properties container as source. If null, the default is false (model). |
Inserts the source data into the destination part at the destination index. Existing data behind the destination index (insertion position) get moved towards the end.
<node name="insert_word_into_string" channel="inline" format="modify/insert" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".some_text"/> <node name="source" channel="inline" format="text/cybol-path" model="#current_word"/> <node name="destination_index" channel="inline" format="text/cybol-path" model=".text_position"/> </node>
Name | Required | Format | Description |
---|---|---|---|
destination | true | text/cybol-path | The destination part. |
source | true | text/cybol-path | The source part. |
move | false | text/cybol-path | logicvalue/boolean | The flag indicating whether or not to remove source elements after having been copied. If null, the default is false (deep copying). When deep copying elements (false), their whole sub tree gets cloned. With shallow copying (true), the element content does not get duplicated and only the memory pointers to the elements get copied and afterwards removed from the source container. |
count | false | text/cybol-path | number/integer | The number of elements to be copied. If null, the default is the source part model count. |
destination_index | false | text/cybol-path | number/integer | The destination index from which to start copying elements to. If null, the default is zero. |
source_index | false | text/cybol-path | number/integer | The source index from which to start copying elements from. If null, the default is zero. |
destination_properties | false | text/cybol-path | logicvalue/boolean | The flag indicating whether to use the model or properties container as destination. If null, the default is false (model). |
source_properties | false | text/cybol-path | logicvalue/boolean | The flag indicating whether to use the model or properties container as source. If null, the default is false (model). |
Converts the source string into lower case letters stored in the destination. The source and destination are permitted to point to the same part since the source gets buffered internally during processing. Caution! This operation is applicable to text only (string of characters). Caution! The destination length may differ from the source length since not all characters can be converted 1:1. The German "small letter sharp s" for example gets converted into the two capital letters "SS". Further reading: https://www.unicode.org/reports/tr21/tr21-5.html
<node name="convert_plain_text" channel="inline" format="modify/lower" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".result"/> <node name="source" channel="inline" format="text/plain" model="Mein kleiner grüner Kaktus"/> </node> <node name="convert_text_variable" channel="inline" format="modify/upper" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".result"/> <node name="source" channel="inline" format="text/cybol-path" model=".text"/> </node>
Name | Required | Format | Description |
---|---|---|---|
destination | true | text/cybol-path | The destination part. |
source | true | text/cybol-path | The source part. |
destination_properties | false | text/cybol-path | logicvalue/boolean | The flag indicating whether to use the model or properties container as destination. If null, the default is false (model). |
source_properties | false | text/cybol-path | logicvalue/boolean | The flag indicating whether to use the model or properties container as source. If null, the default is false (model). |
Removes leading and trailing whitespaces and additionally replaces all internal sequences of whitespace with just one. This is useful when parsing xml or html of a webpage, for example. Other than "modify/strip" this operation does also replace internal sequences of whitespace. The source and destination are permitted to point to the same part since the source gets buffered internally during processing. Caution! This operation is applicable to text only (character string). The considered whitespace characters are taken from the JSON specification: https://www.json.org/ They are: - empty: "" - space: 0020 - line feed: 000A - carriage return: 000D - character tabulation: 0009 The first (empty) can obviously not be considered and is just ignored.
<node name="normalise_plain_text" channel="inline" format="modify/normalise" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".result"/> <node name="source" channel="inline" format="text/plain" model=" Some text with leading and trailing and intermediary spaces "/> </node> <node name="normalise_text_variable" channel="inline" format="modify/normalise" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".result"/> <node name="source" channel="inline" format="text/cybol-path" model=".text"/> </node>
Name | Required | Format | Description |
---|---|---|---|
destination | true | text/cybol-path | The destination part. |
source | true | text/cybol-path | The source part. |
destination_properties | false | text/cybol-path | logicvalue/boolean | The flag indicating whether to use the model or properties container as destination. If null, the default is false (model). |
source_properties | false | text/cybol-path | logicvalue/boolean | The flag indicating whether to use the model or properties container as source. If null, the default is false (model). |
Overwrites the destination data with the source.
<node name="reset_query_exists_flag" channel="inline" format="modify/overwrite" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".query_exists"/> <node name="source" channel="inline" format="logicvalue/boolean" model="false"/> </node> <node name="overwrite_content" channel="inline" format="modify/overwrite" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".wui.index.body.content"/> <node name="source" channel="inline" format="text/plain" model="Hello, World!"/> </node> <node name="assign_row" channel="inline" format="modify/overwrite" model=""> <node name="destination" channel="inline" format="text/cybol-path" model="#row"/> <node name="source" channel="inline" format="text/plain" model="#row_heading"/> </node> <node name="initialise_count" channel="inline" format="modify/overwrite" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".counter.count"/> <node name="source" channel="file" format="number/integer" model="counter/storage/count.txt"/> </node> <node name="overwrite_path" channel="inline" format="modify/overwrite" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".var.path"/> <node name="source" channel="inline" format="text/cybol-path" model=".tui.(.tui.active):actions"/> </node> <node name="assemble_current_element_background" channel="inline" format="modify/overwrite" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".var.character"/> <node name="source" channel="inline" format="text/cybol-path" model=".tui.main.menu:focus"/> </node> <node name="focus_background" channel="inline" format="modify/overwrite" model=""> <node name="destination" channel="inline" format="text/cybol-path" model="{.var.character}"/> <node name="source" channel="inline" format="text/cybol-path" model=".settings.selection.background"/> </node> <node name="overwrite_data" channel="inline" format="modify/overwrite" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".wui.index.body.choices.table.(#name).data"/> <node name="source" channel="inline" format="text/cybol-path" model=".domain.choices.(#name)"/> </node> <node name="overwrite_calendar_week" channel="inline" format="modify/overwrite" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".wui.index.body.navigation.table.row.week"/> <node name="source" channel="inline" format="text/cybol-path" model=".domain.calendar.(.var.year_string).(.var.week_string)"/> </node> <node name="overwrite_href" channel="inline" format="modify/overwrite" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".wui.index.body.lecturers.table.(#name).(#day).link:href"/> <node name="source" channel="inline" format="text/cybol-path" model="#href"/> </node>
Name | Required | Format | Description |
---|---|---|---|
destination | true | text/cybol-path | The destination part. |
source | true | text/cybol-path | The source part. |
move | false | text/cybol-path | logicvalue/boolean | The flag indicating whether or not to remove source elements after having been copied. If null, the default is false (deep copying). When deep copying elements (false), their whole sub tree gets cloned. With shallow copying (true), the element content does not get duplicated and only the memory pointers to the elements get copied and afterwards removed from the source container. |
count | false | text/cybol-path | number/integer | The number of elements to be copied. If null, the default is the source part model count. |
destination_index | false | text/cybol-path | number/integer | The destination index from which to start copying elements to. If null, the default is zero. |
source_index | false | text/cybol-path | number/integer | The source index from which to start copying elements from. If null, the default is zero. |
adjust | false | text/cybol-path | logicvalue/boolean | The flag indicating whether or not the destination count shall be adjusted (true) to destination_index plus count. If null, the default is true (destination count will be adjusted). If false, the destination count remains as is and only gets extended, if the number of elements exceeds the destination count, in order to avoid memory errors caused by crossing array boundaries. Not adjusting the destination count makes sense for instance when overwriting only a few words in the middle of some text, in order to leave the trailing text untouched and the text length altogether as is. |
destination_properties | false | text/cybol-path | logicvalue/boolean | The flag indicating whether to use the model or properties container as destination. If null, the default is false (model). |
source_properties | false | text/cybol-path | logicvalue/boolean | The flag indicating whether to use the model or properties container as source. If null, the default is false (model). |
Removes count elements from the destination part.
<node name="remove" channel="inline" format="modify/remove" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".summand"/> <node name="count" channel="inline" format="number/integer" model="1"/> <node name="destination_properties" channel="inline" format="logicvalue/boolean" model="false"/> </node> <node name="remove_node" channel="inline" format="modify/remove" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".db.remain"/> <node name="destination_index" channel="inline" format="text/cybol-path" model="#remain_index"/> <node name="count" channel="inline" format="number/integer" model="1"/> </node>
Name | Required | Format | Description |
---|---|---|---|
destination | true | text/cybol-path | The destination part. |
count | true | text/cybol-path | number/integer | The number of elements to be removed. If null, the default is zero. |
destination_index | false | text/cybol-path | number/integer | The destination index from which to start removing elements. If null, the default is zero. |
adjust | false | text/cybol-path | logicvalue/boolean | The flag indicating whether or not the destination count shall be adjusted (true) to destination_index plus count. If null, the default is true (destination count will be adjusted). If false, the destination count remains as is and only gets extended, if the number of elements exceeds the destination count, in order to avoid memory errors caused by crossing array boundaries. Not adjusting the destination count makes sense for instance when overwriting only a few words in the middle of some text, in order to leave the trailing text untouched and the text length altogether as is. |
destination_properties | false | text/cybol-path | logicvalue/boolean | The flag indicating whether to use the model or properties container as destination. If null, the default is false (model). |
Writes the source repeatedly into the destination. The "number" property determines the number of times the source gets repeated. Caution! The "number" property must not be named or mixed up with "count", since the latter is used as container count and gets initialised with the source count. Caution! This operation is applicable to text only (character string). Caution! Even though the operations "modify/fill" and "modify/repeat" both copy a source element multiple times, there are differences between them. "modify/fill": - works with any element type - does not change the size of the destination container - overwrites existing elements until container is filled - can copy only one element (source count of one) "modify/repeat": - works only with text (character string) - adjusts the size of the destination container (grows or shrinks) - overwrites existing elements and may exceed the current destination container - can copy an element sequence (source count greater or equal to one)
<node name="initialise_with_plain_text" channel="inline" format="modify/repeat" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".string"/> <node name="source" channel="inline" format="text/plain" model="-"/> <node name="repetition" channel="inline" format="number/integer" model="8"/> </node> <node name="initialise_with_text_variable" channel="inline" format="modify/repeat" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".string"/> <node name="source" channel="inline" format="text/cybol-path" model=".text"/> <node name="repetition" channel="inline" format="number/integer" model="2"/> </node>
Name | Required | Format | Description |
---|---|---|---|
destination | true | text/cybol-path | The destination part. |
source | true | text/cybol-path | The source part. |
repetition | true | text/cybol-path | number/integer | The number of times the source gets repeated. If null, the default is zero. |
destination_properties | false | text/cybol-path | logicvalue/boolean | The flag indicating whether to use the model or properties container as destination. If null, the default is false (model). |
source_properties | false | text/cybol-path | logicvalue/boolean | The flag indicating whether to use the model or properties container as source. If null, the default is false (model). |
Replaces the searchterm character sequence within the destination by the source sequence as replacement. Caution! This operation is applicable to text only (character string).
<node name="replace_letters" channel="inline" format="modify/replace" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".text"/> <node name="source" channel="inline" format="text/plain" model="alphabet"/> <node name="searchterm" channel="inline" format="text/plain" model="abc"/> </node>
Name | Required | Format | Description |
---|---|---|---|
destination | true | text/cybol-path | The destination part. |
source | true | text/cybol-path | text/plain | The source part. It is used as replacement sequence. |
searchterm | true | text/cybol-path | text/plain | The character sequence to be searched and replaced. |
destination_properties | false | text/cybol-path | logicvalue/boolean | The flag indicating whether to use the model or properties container as destination. If null, the default is false (model). |
source_properties | false | text/cybol-path | logicvalue/boolean | The flag indicating whether to use the model or properties container as source. If null, the default is false (model). |
Reverses the order of elements in the destination part. Caution! This operation is applicable to text only (character string).
<node name="reverse_text" channel="inline" format="modify/reverse" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".text"/> </node>
Name | Required | Format | Description |
---|---|---|---|
destination | true | text/cybol-path | The destination part. |
destination_properties | false | text/cybol-path | logicvalue/boolean | The flag indicating whether to use the model or properties container as destination. If null, the default is false (model). |
Removes leading and trailing whitespaces. Some programming languages and frameworks use the synonym name "trim" instead of "strip". Other than "modify/normalise" this operation does not replace internal sequences of whitespace. The source and destination are permitted to point to the same part since the source gets buffered internally during processing. Caution! This operation is applicable to text only (character string). The considered whitespace characters are taken from the JSON specification: https://www.json.org/ They are: - empty: "" - space: 0020 - line feed: 000A - carriage return: 000D - character tabulation: 0009 The first (empty) can obviously not be considered and is just ignored.
<node name="strip_plain_text" channel="inline" format="modify/strip" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".result"/> <node name="source" channel="inline" format="text/plain" model=" Some text with leading and trailing spaces "/> </node> <node name="strip_text_variable" channel="inline" format="modify/strip" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".result"/> <node name="source" channel="inline" format="text/cybol-path" model=".text"/> </node>
Name | Required | Format | Description |
---|---|---|---|
destination | true | text/cybol-path | The destination part. |
source | true | text/cybol-path | The source part. |
destination_properties | false | text/cybol-path | logicvalue/boolean | The flag indicating whether to use the model or properties container as destination. If null, the default is false (model). |
source_properties | false | text/cybol-path | logicvalue/boolean | The flag indicating whether to use the model or properties container as source. If null, the default is false (model). |
Removes leading whitespaces. Some programming languages and frameworks use the synonym name "trim" instead of "strip". Other than "modify/strip" this operation does not replace trailing whitespaces. The source and destination are permitted to point to the same part since the source gets buffered internally during processing. Caution! This operation is applicable to text only (character string). The considered whitespace characters are taken from the JSON specification: https://www.json.org/ They are: - empty: "" - space: 0020 - line feed: 000A - carriage return: 000D - character tabulation: 0009 The first (empty) can obviously not be considered and is just ignored.
<node name="strip_plain_text" channel="inline" format="modify/strip-leading" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".result"/> <node name="source" channel="inline" format="text/plain" model=" Some text with leading spaces"/> </node> <node name="strip_text_variable" channel="inline" format="modify/strip-leading" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".result"/> <node name="source" channel="inline" format="text/cybol-path" model=".text"/> </node>
Name | Required | Format | Description |
---|---|---|---|
destination | true | text/cybol-path | The destination part. |
source | true | text/cybol-path | The source part. |
destination_properties | false | text/cybol-path | logicvalue/boolean | The flag indicating whether to use the model or properties container as destination. If null, the default is false (model). |
source_properties | false | text/cybol-path | logicvalue/boolean | The flag indicating whether to use the model or properties container as source. If null, the default is false (model). |
Removes trailing whitespaces. Some programming languages and frameworks use the synonym name "trim" instead of "strip". Other than "modify/strip" this operation does not replace leading whitespaces. The source and destination are permitted to point to the same part since the source gets buffered internally during processing. Caution! This operation is applicable to text only (character string). The considered whitespace characters are taken from the JSON specification: https://www.json.org/ They are: - empty: "" - space: 0020 - line feed: 000A - carriage return: 000D - character tabulation: 0009 The first (empty) can obviously not be considered and is just ignored.
<node name="strip_plain_text" channel="inline" format="modify/strip-trailing" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".result"/> <node name="source" channel="inline" format="text/plain" model="Some text with leading and trailing spaces "/> </node> <node name="strip_text_variable" channel="inline" format="modify/strip-trailing" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".result"/> <node name="source" channel="inline" format="text/cybol-path" model=".text"/> </node>
Name | Required | Format | Description |
---|---|---|---|
destination | true | text/cybol-path | The destination part. |
source | true | text/cybol-path | The source part. |
destination_properties | false | text/cybol-path | logicvalue/boolean | The flag indicating whether to use the model or properties container as destination. If null, the default is false (model). |
source_properties | false | text/cybol-path | logicvalue/boolean | The flag indicating whether to use the model or properties container as source. If null, the default is false (model). |
Converts the source string into upper case letters stored in the destination. The source and destination are permitted to point to the same part since the source gets buffered internally during processing. Caution! This operation is applicable to text only (string of characters). Caution! The destination length may differ from the source length since not all characters can be converted 1:1. The German "small letter sharp s" for example gets converted into the two capital letters "SS". Further reading: https://www.unicode.org/reports/tr21/tr21-5.html
<node name="convert_plain_text" channel="inline" format="modify/upper" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".result"/> <node name="source" channel="inline" format="text/plain" model="Mein kleiner grüner Kaktus"/> </node> <node name="convert_text_variable" channel="inline" format="modify/upper" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".result"/> <node name="source" channel="inline" format="text/cybol-path" model=".text"/> </node>
Name | Required | Format | Description |
---|---|---|---|
destination | true | text/cybol-path | The destination part. |
source | true | text/cybol-path | The source part. |
destination_properties | false | text/cybol-path | logicvalue/boolean | The flag indicating whether to use the model or properties container as destination. If null, the default is false (model). |
source_properties | false | text/cybol-path | logicvalue/boolean | The flag indicating whether to use the model or properties container as source. If null, the default is false (model). |
Retrieves the next pseudo-random number in the series. Caution! If calling "randomise/retrieve" before a seed has been established with "randomise/sow", the value of 1 is used as default seed inside glibc.
<node name="get_next_random_number" channel="inline" format="randomise/retrieve" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".game.board.field_1"/> <node name="minimum" channel="inline" format="number/integer" model="2"/> <node name="maximum" channel="inline" format="number/integer" model="14"/> </node> <!-- Operation calls using the same seed deliver identical pseudo random numbers. Ideally, the seed should change with every call. Therefore, the current time is determined as seed here. --> <node name="get_time" channel="inline" format="time/current" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".seed"/> </node> <node name="set_seed" channel="inline" format="randomise/sow" model=""> <node name="seed" channel="inline" format="text/cybol-path" model=".seed"/> </node> <node name="get_random_number" channel="inline" format="randomise/retrieve" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".number"/> <node name="minimum" channel="inline" format="number/integer" model="1"/> <node name="maximum" channel="inline" format="number/integer" model="9"/> </node>
Name | Required | Format | Description |
---|---|---|---|
result | true | text/cybol-path | The pseudo-random value delivered by the system. |
minimum | false | text/cybol-path | number/integer | The lower bound (inclusive) of the value to be generated. If null, the default is zero. |
maximum | false | text/cybol-path | number/integer | The upper bound (exclusive) of the value to be generated. If null, the default is RAND_MAX. The GNU C Library's RAND_MAX value 2147483647 is the largest signed integer representable in 32 bits. |
Sows a seed for a new series of pseudo-random numbers.
<node name="set_seed" channel="inline" format="randomise/sow" model=""> <node name="seed" channel="inline" format="text/cybol-path" model=".app.var.seed"/> </node> <!-- Operation calls using the same seed deliver identical pseudo random numbers. Ideally, the seed should change with every call. Therefore, the current time is determined as seed here. --> <node name="get_time" channel="inline" format="time/current" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".seed"/> </node> <node name="set_seed" channel="inline" format="randomise/sow" model=""> <node name="seed" channel="inline" format="text/cybol-path" model=".seed"/> </node> <node name="get_random_number" channel="inline" format="randomise/retrieve" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".number"/> <node name="minimum" channel="inline" format="number/integer" model="1"/> <node name="maximum" channel="inline" format="number/integer" model="9"/> </node>
Name | Required | Format | Description |
---|---|---|---|
seed | true | text/cybol-path | number/integer | The source seed to be established for a new series of pseudo-random numbers. |
Deserialises the source into the destination, according to the given format. Caution! The deserialised data are appended to the destination. Already existing content is not overwritten. Therefore, the destination possibly has to get emptied before since otherwise, the new data will get appended to the already existing old data. This operation may be used to split a source string into parts which are stored as child nodes of the destination part.
<node name="deserialise_operand" channel="inline" format="represent/deserialise" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".summand"/> <node name="source" channel="inline" format="text/cybol-path" model=".text"/> <node name="language" channel="inline" format="meta/language" model="text/cybol"/> <node name="format" channel="inline" format="meta/format" model="number/integer"/> </node> <node name="deserialise_number" channel="inline" format="represent/deserialise" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".result"/> <node name="source" channel="inline" format="text/plain" model="2.4e-2"/> <node name="language" channel="inline" format="meta/language" model="text/cybol"/> <node name="format" channel="inline" format="meta/format" model="number/float"/> </node> <node name="deserialise_comma_separated_data" channel="inline" format="represent/deserialise" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".result"/> <node name="source" channel="inline" format="text/cybol-path" model=".string"/> <node name="language" channel="inline" format="meta/language" model="text/joined-string"> <node name="delimiter" channel="inline" format="text/plain" model=","/> </node> </node> <node name="deserialise_string_taken_from_file" channel="inline" format="represent/deserialise" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".result"/> <node name="source" channel="file" format="text/plain" model="path/string.txt"/> <node name="language" channel="inline" format="meta/language" model="text/joined-string"> <node name="delimiter" channel="inline" format="text/plain" model=","/> </node> </node> <node name="deserialise_inline_data" channel="inline" format="represent/deserialise" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".result"/> <node name="source" channel="inline" format="text/plain" model="1;2;3;word;01/07/2022;text"/> <node name="language" channel="inline" format="meta/language" model="text/joined-string"> <node name="delimiter" channel="inline" format="text/plain" model=";"/> </node> </node> <node name="deserialise_quoted_data_doubled_as_escape" channel="inline" format="represent/deserialise" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".result"/> <node name="source" channel="inline" format="text/plain" model=""begin",01/07/2022,"some ""quoted"" text""/> <node name="language" channel="inline" format="meta/language" model="text/joined-string"> <node name="delimiter" channel="inline" format="text/plain" model=","/> <node name="quotation" channel="inline" format="text/plain" model="""/> </node> </node>
Name | Required | Format | Description |
---|---|---|---|
destination | true | text/cybol-path | The node into which the deserialised data are written. Its format (type) depends on the given source data. |
source | true | text/cybol-path | text/plain | The data to be deserialised. |
language | true | meta/language | The language used for deserialisation. |
format | false | meta/format | The format (type) of the source node. |
Name | Required | Format | Description |
---|---|---|---|
decimal_separator | false | text/plain | The symbol (or character sequence) used to separate the integer part from the fractional part of a floating point (decimal) number. |
thousands_separator | false | text/plain | The symbol (or character sequence) used for digit grouping. |
delimiter | false | text/plain | The separator between the single fields (values). It may consist of many characters, but also be a simple comma, for example. Used with joined strings or character (comma) separated values (csv). |
quotation | false | text/plain | The marker sequence used at the beginning and end of string fields (values). It may consist of many characters. Quotation is necessary if the delimiter character is part of the value. If the quotation is to be part of the value, then it has to be escaped by writing it twice (doubled). Used with joined strings or character (comma) separated values (csv). |
header | false | logicvalue/boolean | The flag indicating whether or not the source data contain a header, so that the deserialiser can treat the first line differently. Used with character (comma) separated values (csv). Caution! It should not be mixed up with the headermodel property in represent/serialise. |
normalisation | false | logicvalue/boolean | The flag indicating whether or not whitespaces and line breaks are merged into just one space. Used with xml or html, for example. If null, then the default is true (normalisation enabled). |
maximum | false | number/integer | The maximum number of bytes to be transmitted. Used with serial (port) interface. |
minimum | false | number/integer | The minimum number of bytes to be transmitted. Used with serial (port) interface. |
medium | false | text/cybol-path | The window to which the mouse button or keyboard key refers. It is needed to search through the hierarchy of gui elements via mouse coordinates, for a suitable action. Used with graphical user interface (gui). |
Serialises the source into the destination, according to the given format. Caution! The serialised data are appended to the destination. Already existing content is not overwritten. Therefore, the destination possibly has to get emptied before since otherwise, the new data will get appended to the already existing old data. This operation may be used to concatenate the strings given as child nodes of the source part into the destination part and provide an optional cybol property "separator" to be used as such between the concatenated strings.
<node name="serialise_number" channel="inline" format="represent/serialise" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".result"/> <node name="source" channel="inline" format="number/integer" model="24"/> <node name="language" channel="inline" format="meta/language" model="text/cybol"/> <node name="format" channel="inline" format="meta/format" model="number/integer"/> </node> <node name="serialise_week_given_as_path" channel="inline" format="represent/serialise" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".week_as_string"/> <node name="source" channel="inline" format="text/cybol-path" model=".week"/> <node name="language" channel="inline" format="meta/language" model="text/cybol"/> <node name="format" channel="inline" format="meta/format" model="number/integer"/> </node> <node name="serialise_webpage" channel="inline" format="represent/serialise" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".webpage"/> <node name="source" channel="inline" format="text/cybol-path" model=".wui.index"/> <node name="language" channel="inline" format="meta/language" model="text/html"> <node name="indentation" channel="inline" format="logicvalue/boolean" model="true"/> </node> <node name="format" channel="inline" format="meta/format" model="element/part"/> </node> <node name="serialise_comma_separated_data" channel="inline" format="represent/serialise" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".result"/> <node name="source" channel="inline" format="text/cybol-path" model=".string_node_list"/> <node name="language" channel="inline" format="meta/language" model="text/joined-string"> <node name="delimiter" channel="inline" format="text/plain" model=","/> <node name="quotation" channel="inline" format="text/plain" model="""/> </node> </node>
Name | Required | Format | Description |
---|---|---|---|
destination | true | text/cybol-path | The node into which the serialised data are written. Its format (type) depends on the given source data. |
source | true | text/cybol-path | text/plain | number/any | The data to be serialised. |
language | true | meta/language | The language used for serialisation. |
format | false | meta/format | The format (type) of the source node. |
Name | Required | Format | Description |
---|---|---|---|
sign | false | logicvalue/boolean | The flag indicating whether or not a plus sign is to be displayed for positive numbers. Negative numbers have a minus sign in any case. If null, the default is false (no plus sign for positive numbers). |
base | false | number/integer | The number base for example 2 for binary (dual), 8 for octal, 10 for decimal, 16 for hexadecimal. If null, the default is 10 (decimal number base). |
classicoctal | false | logicvalue/boolean | The flag indicating whether or not the octal number base prefix is to be displayed as 0 as in classic c/c++ or using modern style 0o as in perl and python. If null, the default is false (modern style with prefix 0o). |
grouping | false | text/plain | The symbol or character sequence used for digit grouping in thousands. If null, the default is not to use any thousands separator at all. |
separator | false | text/plain | The symbol or character sequence used to separate the integer part from the fractional part of a floating point decimal number. If null, the default is to use the full stop (dot). |
decimals | false | number/integer | The number of post-point decimal places (decimals). If null, the default is 4. |
scientific | false | logicvalue/boolean | The flag indicating whether or not the decimal fraction gets displayed with mantissa and exponent. If null, the default is false (standard representation without exponent). |
polar | false | logicvalue/boolean | The flag indicating whether or not to write the complex number using polar coordinates. If null, the default is false (using the cartesian form). |
newline | false | logicvalue/boolean | The flag indicating whether or not a line break is added at the end of the printed characters. If null, the default is true (line gets broken). Used with text (pseudo) terminal. |
clear | false | logicvalue/boolean | The flag indicating whether or not the terminal screen is cleared before printing characters on it. If null, the default is false (no clearing). Used with text (pseudo) terminal. |
positioning | false | logicvalue/boolean | The flag indicating whether or not the cursor position may get changed. If null, the default is false (no repositioning). Used with text (pseudo) terminal. |
indentation | false | logicvalue/boolean | The flag indicating whether or not the serialised data get beautified (pretty-formatted) by indenting the single lines depending on the hierarchy level. Used with xml or html, for example. |
delimiter | false | text/plain | The separator between the single fields (values). It may consist of many characters, but also be a simple comma, for example. Used with joined strings or character (comma) separated values (csv). |
quotation | false | text/plain | The marker sequence used at the beginning and end of string fields (values). It may consist of many characters. Quotation is necessary if the delimiter character is part of the value. If the quotation is to be part of the value, then it has to be escaped by writing it twice (doubled). Used with joined strings or character (comma) separated values (csv). |
normalisation | false | logicvalue/boolean | The flag indicating whether or not whitespaces and line breaks are merged into just one space. Used with xml or html, for example. If null, then the default is true (normalisation enabled). |
width | false | number/integer | The number of characters (or digits) belonging to a value. Free places get filled up with the character given in the fill property. This was defined in the original specification of character (comma) separated values (csv), in order to have fields (values) with equal width. Used with joined strings or csv. |
fill | false | text/plain | The characters (or digit) to be used to fill free places in a value whose width is greater. |
headermodel | false | text/cybol-path | The header data to be written as first line, yet before the actual content. Used with character (comma) separated values (csv). Caution! It should not be mixed up with the header property flag in represent/deserialise or communicate/receive. |
Executes a local programme.
<node name="start_mc" channel="inline" format="run/run" model=""> <node name="programme" channel="inline" format="text/plain" model="mc"/> </node> <node name="start_dosemu" channel="inline" format="run/run" model=""> <node name="programme" channel="inline" format="text/plain" model="xdosemu"/> </node> <!-- Sleep for some time so that the output can be read by the user. --> <node name="run_shell_command" channel="inline" format="run/run" model=""> <node name="programme" channel="inline" format="text/plain" model="sleep 1.8"/> </node> <node name="execute_shell_script" channel="inline" format="run/run" model=""> <node name="programme" channel="file" format="text/plain" model="password_generator/sleep_timer.sh"/> </node>
Name | Required | Format | Description |
---|---|---|---|
programme | true | text/cybol-path | The programme to be executed. |
Puts the executing thread to sleep for at least x nanoseconds. Caution! The actual duration may differ depending on the system's load and timer accuracy.
<node name="sleep" channel="inline" format="run/sleep-nano" model=""> <node name="duration" channel="inline" format="text/cybol-path" model=".settings.voltage_sleep"/> </node>
Name | Required | Format | Description |
---|---|---|---|
duration | true | text/cybol-path | number/integer | The time as amount of nanoseconds to sleep. |
Puts the executing thread to sleep for at least x seconds. Caution! The actual duration may differ depending on the system's load and timer accuracy.
<node name="sleep" channel="inline" format="run/sleep-second" model=""> <node name="duration" channel="inline" format="text/cybol-path" model=".var.sleeptime"/> </node>
Name | Required | Format | Description |
---|---|---|---|
duration | true | text/cybol-path | number/integer | The time as amount of seconds to sleep. |
Finds the first occurrence of the specified searchword within the sorted list using binary (half-interval, logarithmic, binary chop) search. Returns the index of the searchword as result; leaves the index untouched otherwise. Caution! The list must be sorted first to be able to apply binary search. TODO: NOT IMPLEMENTED YET!
See section "search/interpolation"!
Finds the first occurrence of the specified searchword within the sorted list using interpolation binary search. Returns the index of the searchword as result; leaves the index untouched otherwise. Caution! The list must be sorted first to be able to apply interpolation binary search. TODO: NOT IMPLEMENTED YET!
See section "search/interpolation"!
Finds the first occurrence of the specified searchword within the list using linear (sequential) search. Returns the index of the searchword as result; leaves the index untouched otherwise. Meaning of the perfectmatch flag: When searching through the child nodes of a compound part, then the name (or model if model flag has been set) has to match perfectly and no more characters are allowed to remain. In such cases, the perfectmatch flag has to be set to true, so that the searchword count and the count of the compared list child node's name (or model if model flag has been set) are required to be identical. Example scenario for perfectmatch flag: +-logic | element/part | | +-create | element/part | | | +-choices | element/part | | | | +-rows | element/part | ... | | | +-row | element/part | ... Searched path: .logic.create.choices.row Using the standard search, the node "rows" would be returned falsely as result, since it contains the letters "row". Therefore, the length of both comparison operands has to match perfectly.
<node name="search_string" channel="inline" format="search/linear" model=""> <node name="index" channel="inline" format="text/cybol-path" model="#index"/> <node name="list" channel="inline" format="text/plain" model="Hello cybop world!"/> <node name="searchword" channel="inline" format="text/plain" model="cybop"/> </node> <node name="search_number" channel="inline" format="search/linear" model=""> <node name="index" channel="inline" format="text/cybol-path" model="#index"/> <node name="list" channel="inline" format="number/integer" model="5,7,1,2,3,4,6,1,2,3,0,2"/> <node name="searchword" channel="inline" format="number/integer" model="1,2,3"/> <node name="backward" channel="inline" format="logicvalue/boolean" model="true"/> </node> <node name="search_part" channel="inline" format="search/linear" model=""> <node name="index" channel="inline" format="text/cybol-path" model="#index"/> <node name="list" channel="inline" format="text/cybol-path" model=".db.songs"/> <node name="searchword" channel="inline" format="text/cybol-path" model="#title"/> <node name="model" channel="inline" format="logicvalue/boolean" model="false"/> </node> <node name="search_letter" channel="inline" format="text/cybol-path" model=".search"> <node name="index" channel="inline" format="number/integer" model="-1"/> <node name="list" channel="inline" format="text/cybol-path" model=".textstring"/> <node name="searchword" channel="inline" format="text/plain" model="q"/> </node> <node name="search_letters" channel="inline" format="text/cybol-path" model=".search"> <node name="index" channel="inline" format="number/integer" model="-1"/> <node name="list" channel="inline" format="text/cybol-path" model=".textstring"/> <node name="searchword" channel="inline" format="text/plain" model="jkl"/> </node> <node name="search_number" channel="inline" format="text/cybol-path" model=".search"> <node name="index" channel="inline" format="number/integer" model="-1"/> <node name="list" channel="inline" format="text/cybol-path" model=".numbers"/> <node name="searchword" channel="inline" format="number/integer" model="17"/> </node> <node name="search_numbers" channel="inline" format="text/cybol-path" model=".search"> <node name="index" channel="inline" format="number/integer" model="-1"/> <node name="list" channel="inline" format="text/cybol-path" model=".numbers"/> <node name="searchword" channel="inline" format="number/integer" model="11,12,13"/> </node> <node name="search_backward" channel="inline" format="text/cybol-path" model=".search"> <node name="index" channel="inline" format="number/integer" model="-1"/> <node name="list" channel="inline" format="text/cybol-path" model=".numbers"/> <node name="searchword" channel="inline" format="number/integer" model="11,12,13"/> <node name="backward" channel="inline" format="logicvalue/boolean" model="true"/> </node> <node name="search_part_in_homogeneous_list_by_name" channel="inline" format="text/cybol-path" model=".search"> <node name="index" channel="inline" format="number/integer" model="-1"/> <node name="list" channel="inline" format="text/cybol-path" model=".homogeneous"/> <node name="searchword" channel="inline" format="text/plain" model="part_2"/> </node> <node name="search_part_in_homogeneous_list_by_name_backward" channel="inline" format="text/cybol-path" model=".search"> <node name="index" channel="inline" format="number/integer" model="-1"/> <node name="list" channel="inline" format="text/cybol-path" model=".homogeneous"/> <node name="searchword" channel="inline" format="text/plain" model="part_2"/> <node name="backward" channel="inline" format="logicvalue/boolean" model="true"/> </node> <node name="search_part_in_homogeneous_list_by_model" channel="inline" format="text/cybol-path" model=".search"> <node name="index" channel="inline" format="number/integer" model="-1"/> <node name="list" channel="inline" format="text/cybol-path" model=".homogeneous"/> <node name="searchword" channel="inline" format="text/plain" model="part 4"/> <node name="model" channel="inline" format="logicvalue/boolean" model="true"/> </node> <node name="search_part_in_heterogeneous_list_by_name" channel="inline" format="text/cybol-path" model=".search"> <node name="index" channel="inline" format="number/integer" model="-1"/> <node name="list" channel="inline" format="text/cybol-path" model=".heterogeneous"/> <node name="searchword" channel="inline" format="text/plain" model="text_part_7"/> </node> <node name="search_part_in_heterogeneous_list_by_model" channel="inline" format="text/cybol-path" model=".search"> <node name="index" channel="inline" format="number/integer" model="-1"/> <node name="list" channel="inline" format="text/cybol-path" model=".heterogeneous"/> <node name="searchword" channel="inline" format="text/plain" model="part 5"/> <node name="model" channel="inline" format="logicvalue/boolean" model="true"/> </node>
Name | Required | Format | Description |
---|---|---|---|
index | true | text/cybol-path | The index of the found searchword. Left untouched if it could not be found within the list. |
list | true | text/cybol-path | text/plain | number/integer | number/double | logicvalue/boolean | element/part | The list to be searched through. |
searchword | true | text/cybol-path | text/plain | number/integer | number/double | logicvalue/boolean | element/part | The searchword to be searched for. |
perfectmatch | false | text/cybol-path | logicvalue/boolean | The flag indicating whether the searchword count and the count of the compared list child node's name (or model if model flag has been set) have to be equal. If null, the default is false (no perfect matching). |
model | false | text/cybol-path | logicvalue/boolean | The flag indicating whether to search through the parts' name or model value. It makes sense only if the list is of format (type) element/part which means pointers to parts. If null, the default is false (name is used). |
backward | false | text/cybol-path | logicvalue/boolean | The flag indicating whether to search forward or backward. If null, the default is false (forward search is used). |
Sorts numbers via bubble sort algorithm.
<node name="sort_visitors" channel="inline" format="sort/bubble" model=""> <node name="part" channel="inline" format="text/cybol-path" model=".domain.visitors"/> <node name="criterion" channel="inline" format="text/plain" model=".surname"/> <node name="descending" channel="inline" format="logicvalue/boolean" model="true"/> </node> <node name="sort_songs_by_title" channel="inline" format="sort/bubble" model=""> <node name="part" channel="inline" format="text/cybol-path" model=".db.(#list)"/> <!-- The stack variable #list contains one of ".artist" or ".title" as child nodes of a song. --> <node name="criterion" channel="inline" format="text/plain" model=".(#list)"/> </node>
Name | Required | Format | Description |
---|---|---|---|
part | true | text/cybol-path | The part whose child nodes are to be sorted. |
criterion | true | text/cybol-path | text/plain | The element (usually a string) to be used for comparison. It is given as plain text path to a sub element of each of the child parts that are to be sorted. Caution! One may use a path of format text/cybol-path to point to a part, but that one finally has to contain a path of format text/plain. |
descending | false | text/cybol-path | logicvalue/boolean | The descending sort direction flag. If null, the default is false (ascending). |
Sorts numbers via insertion sort algorithm. TODO: NOT IMPLEMENTED YET!
<node name="sort_visitors" channel="inline" format="sort/insertion" model=""> <node name="part" channel="inline" format="text/cybol-path" model=".domain.visitors"/> <node name="criterion" channel="inline" format="text/plain" model=".surname"/> <node name="descending" channel="inline" format="logicvalue/boolean" model="true"/> </node>
Name | Required | Format | Description |
---|---|---|---|
part | true | text/cybol-path | The part whose child nodes are to be sorted. |
criterion | true | text/cybol-path | text/plain | The element (usually a string) to be used for comparison. It is given as plain text path to a sub element of each of the child parts that are to be sorted. Caution! One may use a path of format text/cybol-path to point to a part, but that one finally has to contain a path of format text/plain. |
descending | false | text/cybol-path | logicvalue/boolean | The descending sort direction flag. If null, the default is false (ascending). |
Sorts numbers via quick sort algorithm. TODO: NOT IMPLEMENTED YET!
<node name="sort_visitors" channel="inline" format="sort/quick" model=""> <node name="part" channel="inline" format="text/cybol-path" model=".domain.visitors"/> <node name="criterion" channel="inline" format="text/plain" model=".surname"/> <node name="descending" channel="inline" format="logicvalue/boolean" model="true"/> </node>
Name | Required | Format | Description |
---|---|---|---|
part | true | text/cybol-path | The part whose child nodes are to be sorted. |
criterion | true | text/cybol-path | text/plain | The element (usually a string) to be used for comparison. It is given as plain text path to a sub element of each of the child parts that are to be sorted. Caution! One may use a path of format text/cybol-path to point to a part, but that one finally has to contain a path of format text/plain. |
descending | false | text/cybol-path | logicvalue/boolean | The descending sort direction flag. If null, the default is false (ascending). |
Sorts numbers via selection sort algorithm. TODO: NOT IMPLEMENTED YET!
<node name="sort_visitors" channel="inline" format="sort/selection" model=""> <node name="part" channel="inline" format="text/cybol-path" model=".domain.visitors"/> <node name="criterion" channel="inline" format="text/plain" model=".surname"/> <node name="descending" channel="inline" format="logicvalue/boolean" model="true"/> </node>
Name | Required | Format | Description |
---|---|---|---|
part | true | text/cybol-path | The part whose child nodes are to be sorted. |
criterion | true | text/cybol-path | text/plain | The element (usually a string) to be used for comparison. It is given as plain text path to a sub element of each of the child parts that are to be sorted. Caution! One may use a path of format text/cybol-path to point to a part, but that one finally has to contain a path of format text/plain. |
descending | false | text/cybol-path | logicvalue/boolean | The descending sort direction flag. If null, the default is false (ascending). |
Reads data from a device. Reading indirectly from device into the internal buffer does not make sense for channel "file". Therefore, do not set the "asynchronicity" flag in this case.
<node name="read_from_file" channel="inline" format="stream/read" model=""> <node name="channel" channel="inline" format="meta/channel" model="file"/> <node name="sender" channel="inline" format="text/cybol-path" model=".id"/> <node name="message" channel="inline" format="text/cybol-path" model=".data"/> </node>
Name | Required | Format | Description |
---|---|---|---|
channel | true | text/cybol-path | meta/channel | The communication channel. |
server | false | text/cybol-path | logicvalue/boolean | The flag indicating server mode. It means server-side client stub and not standalone client. If null, the default is false (client mode). |
port | false | text/cybol-path | number/integer | The service identification. It is relevant only in server mode. |
sender | true | text/cybol-path | The device identification, for example a file descriptor. Handing it over as hard-coded integer value does not make sense, since the operating system or server assigns it. Therefore, state a cybol-path. |
language | false | text/cybol-path | meta/language | The language defining which prefix or suffix indicates the message length, for example binary-crlf, http-request, xdt. It is not needed for file reading since that ends with EOF. |
message | true | text/cybol-path | The knowledge tree node storing the received data. |
asynchronicity | false | text/cybol-path | logicvalue/boolean | The flag indicating asynchronous reading from buffer in which data got stored by a sensing thread before. If null, the default is false (synchronous read). |
Writes data to a device.
<node name="write_to_file" channel="inline" format="stream/write" model=""> <node name="channel" channel="inline" format="meta/channel" model="file"/> <node name="receiver" channel="inline" format="text/cybol-path" model=".id"/> <node name="message" channel="inline" format="application/octet-stream" model="Hello World!"/> <node name="asynchronicity" channel="inline" format="logicvalue/boolean" model="true"/> </node> <node name="write_to_pipeline" channel="inline" format="stream/write" model=""> <node name="channel" channel="inline" format="meta/channel" model="fifo"/> <node name="receiver" channel="inline" format="text/cybol-path" model=".id"/> <node name="message" channel="inline" format="application/octet-stream" model="Hello World!"/> </node>
Name | Required | Format | Description |
---|---|---|---|
channel | true | text/cybol-path | meta/channel | The communication channel. |
server | false | text/cybol-path | logicvalue/boolean | The flag indicating server mode. It means server-side client stub and not standalone client. If null, the default is false (client mode). |
port | false | text/cybol-path | number/integer | The service identification. It is relevant only in server mode. |
receiver | true | text/cybol-path | The device identification, for example a file descriptor. Handing it over as hard-coded integer value does not make sense, since the operating system or server assigns it. Therefore, state a cybol-path. |
message | true | text/cybol-path | application/octet-stream | any | The data to be written. |
asynchronicity | false | text/cybol-path | logicvalue/boolean | The flag indicating asynchronous writing within a thread. If null, the default is false (synchronous write). |
handler | false | text/cybol-path | The callback cybol operation being executed when the thread finished writing data. |
Retrieves the current system time in nano seconds, divided by 1000.
<node name="determine_current_time" channel="inline" format="time/current" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".integer_variable"/> </node> <!-- Operation calls using the same seed deliver identical pseudo random numbers. Ideally, the seed should change with every call. Therefore, the current time is determined as seed here. --> <node name="get_time" channel="inline" format="time/current" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".seed"/> </node> <node name="set_seed" channel="inline" format="randomise/sow" model=""> <node name="seed" channel="inline" format="text/cybol-path" model=".seed"/> </node> <node name="get_random_number" channel="inline" format="randomise/retrieve" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".number"/> <node name="minimum" channel="inline" format="number/integer" model="1"/> <node name="maximum" channel="inline" format="number/integer" model="9"/> </node>
Name | Required | Format | Description |
---|---|---|---|
result | true | text/cybol-path | The node storing the result value. |
Text data given in JavaScript Object Notation (JSON). There are three MIME assignments for json data: - application/json (official) - text/json (unofficial) - text/javascript (unofficial) Preference should be given to the OFFICIAL mime type "application/json".
<node name="data" channel="file" format="application/json" model="path/to/file.json"/>
Arbitrary byte stream. This is thought of as the "default" media type used by several operating systems, often used to identify executable files, files of unknown type, or files that should be downloaded in protocols that do not provide a separate "content disposition" header. RFC 2046 specifies this as the fallback for unrecognized subtypes of other types. Common file suffixes: bin, exe, com, dll, class, dat Caution! Do not mix it up with "number/byte" representing numbers in the range 0..255. Numbers in an array are separated by comma; bytes of a octet stream are not.
<node name="image" channel="inline" format="application/octet-stream" model=""/> <node name="text" channel="file" format="application/octet-stream" model="path/to/file.dat"/>
Data given in XML format. The Extensible Markup Language (XML) version 1.0 was defined in 1998. Its structure and vocabulary can be defined freely, either as Document Type Definition (DTD) or as XML Schema Definition (XSD). If given in form of a file, then the suffix is xml in case no DTD or XSD is available. Otherwise, a suffix representing the DTD or XSD may be used. There are two MIME assignments for XML data: - application/xml (RFC 7303, previously RFC 3023) - text/xml (RFC 7303, previously RFC 3023) However, since the introduction of RFC 7303, these are to be regarded as the SAME in ALL aspects except name.
<node name="document" channel="file" format="application/xml" model="path/to/file.xml"/>
A colour whose values are given in the RGB colour model. The abbreviation RGB refers to the three colours: red, green, and blue.
<node name="value" channel="inline" format="colour/rgb" model="82,135,206"/>
A terminal colour value as written word representing the pre-defined colour name.
<node name="foreground" channel="inline" format="colour/terminal" model="blue"/> <node name="background" channel="inline" format="colour/terminal" model="white"/>
A part node of the cyboi-internal knowledge tree. Each tree node (also called part) has a double hierarchy representing: - model hierarchy: whole-part, container-element, macrocosm-microcosm, child parts - properties hierarchy: metadata, constraints, parametres of a function, position and size of a graphical component
<node name="empty_part_to_be_created" channel="inline" format="element/part" model=""/> <node name="part_read_from_file" channel="file" format="element/part" model="path/to/file.cybol"/> <node name="initialise_choice_part" channel="inline" format="communicate/receive" model=""> <node name="channel" channel="inline" format="meta/channel" model="file"/> <node name="sender" channel="inline" format="text/cybol-path" model=".id"/> <node name="encoding" channel="inline" format="meta/encoding" model="utf-8"/> <node name="language" channel="inline" format="meta/language" model="text/cybol"/> <node name="format" channel="inline" format="meta/format" model="element/part"/> <node name="message" channel="inline" format="text/cybol-path" model=".wui.index.body.choices.table.(#name)"/> </node> <node name="initialise_choice_properties" channel="inline" format="communicate/receive" model=""> <node name="channel" channel="inline" format="meta/channel" model="file"/> <node name="sender" channel="inline" format="text/cybol-path" model=".id"/> <node name="encoding" channel="inline" format="meta/encoding" model="utf-8"/> <node name="language" channel="inline" format="meta/language" model="text/cybol"/> <node name="format" channel="inline" format="meta/format" model="element/property"/> <node name="message" channel="inline" format="text/cybol-path" model=".wui.index.body.choices.table.(#name)"/> </node>
A property node of the cyboi-internal knowledge tree. Each tree node (also called part) has a double hierarchy representing: - model hierarchy: whole-part, container-element, macrocosm-microcosm, child parts - properties hierarchy: metadata, constraints, parametres of a function, position and size of a graphical component
<node name="empty_property_to_be_created" channel="inline" format="element/property" model=""/> <node name="property_read_from_file" channel="file" format="element/property" model="path/to/file.cybol"/> <node name="initialise_choice_part" channel="inline" format="communicate/receive" model=""> <node name="channel" channel="inline" format="meta/channel" model="file"/> <node name="sender" channel="inline" format="text/cybol-path" model=".id"/> <node name="encoding" channel="inline" format="meta/encoding" model="utf-8"/> <node name="language" channel="inline" format="meta/language" model="text/cybol"/> <node name="format" channel="inline" format="meta/format" model="element/part"/> <node name="message" channel="inline" format="text/cybol-path" model=".wui.index.body.choices.table.(#name)"/> </node> <node name="initialise_choice_properties" channel="inline" format="communicate/receive" model=""> <node name="channel" channel="inline" format="meta/channel" model="file"/> <node name="sender" channel="inline" format="text/cybol-path" model=".id"/> <node name="encoding" channel="inline" format="meta/encoding" model="utf-8"/> <node name="language" channel="inline" format="meta/language" model="text/cybol"/> <node name="format" channel="inline" format="meta/format" model="element/property"/> <node name="message" channel="inline" format="text/cybol-path" model=".wui.index.body.choices.table.(#name)"/> </node>
A reference node of the cyboi-internal knowledge tree. It represents a pointer to some knowledge tree node and was assigned as shallow copy.
<node name="print_text" channel="inline" format="text/cybol-path" model=".print"> <node name="extra_text" channel="inline" format="text/plain" model="This is EXTRA text handed over as runtime argument."/> </node> <node name="field_model" channel="inline" format="text/cybol-path" model=".logic.translate.field"> <node name="parent" channel="inline" format="element/reference" model="#parent.[#field_index]"/> </node>
An image in Graphics Interchange Format (GIF). The file suffix is gif.
<node name="data" channel="file" format="image/gif" model="path/to/file.gif"/>
An image format defined by the Joint Photographic Experts Group (JPEG). The format itself is called JPEG as well. Data are normally stored in JPEG File Interchange Format (JFIF). Possible file suffixes are: jpeg, jpg, jpe, jfif, jif.
<node name="data" channel="file" format="image/jpeg" model="path/to/file.jpeg"/>
An image in Portable Network Graphics (PNG) format. The file suffix is png.
<node name="data" channel="file" format="image/png" model="path/to/file.png"/>
A boolean logic variable represents one of two possible states, either true or false. Sometimes, a boolean value is called a flag.
<node name="value" channel="inline" format="logicvalue/boolean" model="true"/>
The channel over which the data is sent or received. It is normally used when reading or writing a file or transfering data. The available channels are: - clock: The system clock. - display: The graphical display. - fifo: A named pipeline represented as file in linux/unix. The abbreviation FIFO stands for first-in-first-out, following the principle of a data queue. - file: A file within the file system. - inline: A literal text within cybol. - pipe: An anonymous pipeline between two processes. - randomiser: The pseudo random number generator of the operating system. - serial: A serial device using communication protocols such as RS-232 or USB. - signal: A cyboi interpreter-internal signal sent to the event loop. - socket: The network socket. - terminal: The terminal or pseudo terminal (console).
<node name="channel" channel="inline" format="meta/channel" model="file"/> <node name="channel" channel="inline" format="meta/channel" model="socket"/> <node name="channel" channel="inline" format="meta/channel" model="inline"/>
The text encoding. It is normally used when reading or writing a file or transfering data.
<node name="encoding" channel="inline" format="meta/encoding" model="utf-8"/>
The format in which the data is available. It is normally used when reading or writing a file or transfering data.
<node name="format" channel="inline" format="meta/format" model="text/plain"/> <node name="format" channel="inline" format="meta/format" model="number/integer"/> <node name="initialise_choice_part" channel="inline" format="communicate/receive" model=""> <node name="channel" channel="inline" format="meta/channel" model="file"/> <node name="sender" channel="inline" format="text/cybol-path" model=".id"/> <node name="encoding" channel="inline" format="meta/encoding" model="utf-8"/> <node name="language" channel="inline" format="meta/language" model="text/cybol"/> <node name="format" channel="inline" format="meta/format" model="element/part"/> <node name="message" channel="inline" format="text/cybol-path" model=".wui.index.body.choices.table.(#name)"/> </node> <node name="initialise_choice_properties" channel="inline" format="communicate/receive" model=""> <node name="channel" channel="inline" format="meta/channel" model="file"/> <node name="sender" channel="inline" format="text/cybol-path" model=".id"/> <node name="encoding" channel="inline" format="meta/encoding" model="utf-8"/> <node name="language" channel="inline" format="meta/language" model="text/cybol"/> <node name="format" channel="inline" format="meta/format" model="element/property"/> <node name="message" channel="inline" format="text/cybol-path" model=".wui.index.body.choices.table.(#name)"/> </node>
The language also called data format in which the data are structured. It is normally used when reading or writing a file or transfering data.
<node name="language" channel="inline" format="meta/language" model="text/cybol"/> <node name="language" channel="inline" format="meta/language" model="text/html"/>
The cyboi-internal data model holding the actual data.
<node name="model" channel="inline" format="meta/model" model=""/>
The name of the part tree node.
<node name="name" channel="inline" format="meta/name" model=""/>
The cyboi-internal data type used to allocate memory.
<node name="type" channel="inline" format="meta/type" model=""/>
An integer with a size of just one byte. The standard type used internally is unsigned char with 8 Bits. It has a value range from 0 to 255. Caution! It is not to be mixed up with "application/octet-stream". Numbers in an array are separated by comma; bytes of a stream are not.
<node name="x" channel="inline" format="number/byte" model="0"/> <node name="y" channel="inline" format="number/byte" model="2"/> <node name="array" channel="inline" format="number/byte" model="0,1,2,3,4"/>
A complex number written in cartesian form as real and imaginary part, separated by a (plus or minus) sign. Each number can be an element of a vector (array), e.g.: - complex cartesian: 1.2e+3+0.4e-2,2-4 Caution! The i (or j in electrical engineering) in the imaginary part is neglected: 1+2i is 1+2 Caution! Using fractions for real and imaginary part of a complex number is not supported, e.g. -1/2+3/4 The complex number given in cartesian form: 2 + 3i which can also be written using a j instead of i: 2 + 3j would be written in CYBOL as: 2+3
<node name="standard" channel="inline" format="number/complex-cartesian" model="2+4"/> <node name="negative_imaginary_part" channel="inline" format="number/complex-cartesian" model="2-4"/> <node name="negative_real_part" channel="inline" format="number/complex-cartesian" model="-2+4"/> <node name="both_parts_negative" channel="inline" format="number/complex-cartesian" model="-2-4"/> <node name="decimal_fractions" channel="inline" format="number/complex-cartesian" model="-1.2+5.0"/> <node name="scientific_notation" channel="inline" format="number/complex-cartesian" model="-1.2e6+.11e2"/>
A complex number written in polar form with absolute value and argument, whereby the argument representing an exponent is encapsulated by the sequence "exp()". Caution! The i (or j in electrical engineering) in the exponent is neglected, so that -2*exp(i45) is written without i or j as -2*exp(45) in cybol. The complex number given in trigonometric form: 2 (cos 30° + i sin 30°) which can also be written in exponential form, using Euler's formula: 2 e ^(i 30) would be written in CYBOL as: 2*exp(30) -2*exp(-45)
<node name="standard" channel="inline" format="number/complex-polar" model="2*exp(45)"/> <node name="plus_sign" channel="inline" format="number/complex-polar" model="+2*exp(+45)"/> <node name="minus_sign" channel="inline" format="number/complex-polar" model="-2*exp(-45)"/> <node name="decimal_fraction_value" channel="inline" format="number/complex-polar" model="-1.5*exp(45)"/> <node name="decimal_fraction_argument" channel="inline" format="number/complex-polar" model="2*exp(-45.2)"/> <node name="scientific_notation" channel="inline" format="number/complex-polar" model="-1.5e4*exp(-45)"/>
A decimal fraction number written as floating-point number. The standard type used internally is double with 64 Bits. It has a value range from 2^−1022 to approximately 2^1024, which is from 2 × 10^−308 to 2 × 10^308. Each number can be an element of a vector (array), e.g.: - fraction decimal: 1.2,3.4,5.6 Caution! The cybol parser is able to recognise many variants, with small or capital letter E, with or without plus sign, as shown in the examples below. However, the recommended form is as follows: 1.23E+4 The plus sign of the number is optional. The plus sign of the scientific notation exponent is optional.
<node name="simple" channel="inline" format="number/fraction-decimal" model="24.0"/> <node name="negative_sign" channel="inline" format="number/fraction-decimal" model="-24.0"/> <node name="standard" channel="inline" format="number/fraction-decimal" model="7.0"/> <node name="extra" channel="inline" format="number/fraction-decimal" model="123.45697"/> <node name="lacking_decimal_places" channel="inline" format="number/fraction-decimal" model="7."/> <node name="lacking_pre-decimal_point_position" channel="inline" format="number/fraction-decimal" model=".7"/> <node name="array" channel="inline" format="number/fraction-decimal" model="1.5,2.5,3.5"/> <node name="scientific" channel="inline" format="number/fraction-decimal" model="7e3"/> <node name="optional_plus_sign" channel="inline" format="number/fraction-decimal" model="7e+3"/> <node name="minus_sign" channel="inline" format="number/fraction-decimal" model="7e-3"/> <node name="capital_letter_possible" channel="inline" format="number/fraction-decimal" model="7E-3"/> <node name="scientific_notation_1" channel="inline" format="number/fraction-decimal" model="11e0"/> <node name="scientific_notation_2" channel="inline" format="number/fraction-decimal" model=".11e2"/> <node name="scientific_notation_3" channel="inline" format="number/fraction-decimal" model="0.007e-2"/> <node name="scientific_notation_4" channel="inline" format="number/fraction-decimal" model="0.7e-2"/> <node name="scientific_notation_5" channel="inline" format="number/fraction-decimal" model="7.0e-3"/> <node name="longer_number" channel="inline" format="number/fraction-decimal" model="-12.34567e-2"/>
A fraction number written as numerator and denominator, separated by a bar (solidus, slash). Each number can be an element of a vector (array), e.g.: - fraction vulgar: 1/2,3/4
<node name="positive" channel="inline" format="number/fraction-vulgar" model="1/2"/> <node name="negative" channel="inline" format="number/fraction-vulgar" model="-2/3"/>
An integer is a datum of integral data type, a data type that represents some range of mathematical integers. It is allowed to contain negative values. The standard type used internally is int with 32 Bits. It has a value range from −2,147,483,648 to 2,147,483,647, which is from −(2^31) to 2^31 - 1. Each number can be an element of a vector (array), e.g.: - integer: 1,2,3,4
<node name="decimal_base" channel="inline" format="number/integer" model="24"/> <node name="negative" channel="inline" format="number/integer" model="-24"/> <node name="array" channel="inline" format="number/integer" model="0,1,2,3,4"/> <!-- These numbers will get recognised only if the consider number base prefix flag is set. --> <node name="octal" channel="inline" format="number/integer" model="030"/> <node name="many_zeros" channel="inline" format="number/integer" model="00030"/> <node name="negative_octal" channel="inline" format="number/integer" model="-030"/> <node name="hexadecimal" channel="inline" format="number/integer" model="0x18"/> <node name="negative_hexadecimal" channel="inline" format="number/integer" model="-0x18"/> <node name="hexadecimal_small_letter" channel="inline" format="number/integer" model="0xb"/> <node name="hexadecimal_capital_letter" channel="inline" format="number/integer" model="0x1C"/>
A path to a node within the knowledge tree (heap memory). It may point to: - heap memory (knowledge memory tree) root . - stack memory root # - signal memory root | - model part using separator . - property part using separator : - part via index using brackets [] - part via name using parentheses () - part via referenced path using curly braces {} - stack memory variable #
<node name="stack_root" channel="inline" format="text/cybol-path" model="#"/> <node name="stack_variable" channel="inline" format="text/cybol-path" model="#x"/> <node name="part" channel="inline" format="text/cybol-path" model=".a"/> <node name="sub_part" channel="inline" format="text/cybol-path" model=".b.a"/> <node name="property" channel="inline" format="text/cybol-path" model=".b:a"/> <node name="part_by_index" channel="inline" format="text/cybol-path" model=".b.[#x]"/> <node name="part_and_property_by_index" channel="inline" format="text/cybol-path" model=".b.[.b:[.d]]"/> <node name="part_by_name" channel="inline" format="text/cybol-path" model=".(.e)"/> <node name="part_by_nested_name" channel="inline" format="text/cybol-path" model=".(.(.e)).d:p"/> <node name="node_contains_path_called_reference" channel="inline" format="text/cybol-path" model="{#path}"/> <node name="part_by_reference_and_its_child_node" channel="inline" format="text/cybol-path" model="{#path}.child"/> <node name="double_reference_path_to_path_to_part" channel="inline" format="text/cybol-path" model="{{#path}}"/> <node name="part_via_reference_and_name" channel="inline" format="text/cybol-path" model=".b.d:({#path})"/> <node name="nested_path" channel="inline" format="text/cybol-path" model=".test.node2:c.node1:b"/> <node name="assign_row" channel="inline" format="modify/overwrite" model=""> <node name="destination" channel="inline" format="text/cybol-path" model="#row"/> <node name="source" channel="inline" format="text/plain" model="#row_heading"/> </node> <node name="overwrite_path" channel="inline" format="modify/overwrite" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".var.path"/> <node name="source" channel="inline" format="text/cybol-path" model=".tui.(.tui.active):actions"/> </node> <node name="focus_background" channel="inline" format="modify/overwrite" model=""> <node name="destination" channel="inline" format="text/cybol-path" model="{.var.character}"/> <node name="source" channel="inline" format="text/cybol-path" model=".settings.selection.background"/> </node> <node name="overwrite_calendar_week" channel="inline" format="modify/overwrite" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".wui.index.body.navigation.table.row.week"/> <node name="source" channel="inline" format="text/cybol-path" model=".domain.calendar.(.var.year_string).(.var.week_string)"/> </node> <node name="assign_title" channel="inline" format="modify/append" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".wui.(#destination).(.db.(#source).[#index].genre).content.(#name)"/> <node name="source" channel="inline" format="text/cybol-path" model=".db.(#source).[#index].title"/> </node> <node name="overwrite_link_reference_with_project_name" channel="inline" format="modify/append" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".wui.(#category_name).body.toc.(#project_name):href"/> <node name="source" channel="inline" format="text/cybol-path" model="#project_name"/> </node> <node name="print_action" channel="inline" format="communicate/send" model=""> <node name="channel" channel="inline" format="meta/channel" model="terminal"/> <node name="receiver" channel="inline" format="text/cybol-path" model=".stdout"/> <node name="language" channel="inline" format="meta/language" model="message/tui"/> <node name="format" channel="inline" format="meta/format" model="text/plain"/> <node name="message" channel="inline" format="text/cybol-path" model="{.var.action_path}"/> </node>
A text marked up using the Hypertext Markup Language (HTML). Common file suffixes are: html, htm, shtml, inc
<node name="webpage" channel="file" format="text/html" model="path/to/webpage.html"/>
Text data given in JavaScript Object Notation (JSON). There are three MIME assignments for json data: - application/json (official) - text/json (unofficial) - text/javascript (unofficial) Preference should be given to the official mime type "application/json".
<node name="data" channel="file" format="text/json" model="path/to/file.json"/>
This is pure text data, sometimes called "string" or "character array". Common file suffixes are: txt The text may be encoded in various ways, which is specified in a different property called "encoding". It is usually given when using the cybol operations send or receive.
<node name="string" channel="inline" format="text/plain" model="Hello World!"/> <node name="text" channel="file" format="text/plain" model="path/to/file.txt"/>
Data given in XML format. The Extensible Markup Language (XML) version 1.0 was defined in 1998. Its structure and vocabulary can be defined freely, either as Document Type Definition (DTD) or as XML Schema Definition (XSD). Common file suffixes are: xml If given in form of a file, then the suffix is "xml" in case no DTD or XSD is available. Otherwise, another suffix representing the DTD or XSD may be used. There are two MIME assignments for XML data: - application/xml (RFC 7303, previously RFC 3023) - text/xml (RFC 7303, previously RFC 3023) However, since the introduction of RFC 7303, these are to be regarded as the same in all aspects except name.
<node name="data" channel="file" format="text/xml" model="path/to/file.xml"/>
A video in MP4 format, which is defined in RFC 4337. The file suffix is mp4.
<node name="data" channel="file" format="video/mp4" model="path/to/file.mp4"/>