Serj Kalichev 1 year ago
parent
commit
9ced6867e8
1 changed files with 90 additions and 0 deletions
  1. 90 0
      docs/klish3.ru.md

+ 90 - 0
docs/klish3.ru.md

@@ -1545,9 +1545,99 @@ SEQ сам может быть элементом контейнера SWITCH.
 
 ### SWITCH
 
+Элемент `SWITCH` является [контейнером](#атрибут-container). Его единственная
+задача - это задать режим обработки вложенных элементов. `SWITCH` задает
+такой режим обработки вложенных элементов, когда из многих должен быть выбран
+только один элемент.
+
+В элементе `SWITCH` атрибут [`mode`](#атрибут-mode) принудительно выставлен в
+значение `switch`.
+
+Дополнительно о режимах обработки вложенных элементов можно прочитать в разделе
+["Атрибут `mode`"](#атрибут-mode).
+
+
+#### Атрибуты элемента `SWITCH`
+
+* [`name`](#атрибут-name) - идентификатор элемента.
+* [`help`](#атрибут-help) - описание элемента.
+
+Обычно элемент `SWITCH` используется без атрибутов.
+
+
+#### Примеры
+
+```
+<COMMAND name="cmd1" help="First command">
+	<SWITCH>
+		<COMMAND name="sub1"/>
+		<COMMAND name="sub2"/>
+		<COMMAND name="sub3"/>
+	</SWITCH>
+</COMMAND>
+```
+
+По умолчанию элемент `COMMAND` имеет атрибут `mode="sequence"`. Если бы в
+примере не было элемента `SWITCH`, то оператор должен был последовательно,
+одну за другой задать все подкоманды: `cmd1 sub1 sub2 sub3`. Элемент `SWITCH`
+изменил режим обработки вложенных элементов и в итоге оператор должен выбрать
+только одну подкоманду из трех. Например `cmd1 sub2`.
+
 
 ### SEQ
 
+Элемент `SEQ` является [контейнером](#атрибут-container). Его единственная
+задача - это задать режим обработки вложенных элементов. `SEQ` задает
+такой режим обработки вложенных элементов, когда все вложенные элементы должны
+быть заданы один за другим.
+
+В элементе `SEQ` атрибут [`mode`](#атрибут-mode) принудительно выставлен в
+значение `sequence`.
+
+Дополнительно о режимах обработки вложенных элементов можно прочитать в разделе
+["Атрибут `mode`"](#атрибут-mode).
+
+
+#### Атрибуты элемента `SWITCH`
+
+* [`name`](#атрибут-name) - идентификатор элемента.
+* [`help`](#атрибут-help) - описание элемента.
+
+Обычно элемент `SEQ` используется без атрибутов.
+
+
+#### Примеры
+
+```
+<VIEW name="view1">
+	<SEQ>
+		<PARAM name="param1" ptype="/ptype1"/>
+		<PARAM name="param2" ptype="/ptype1"/>
+		<PARAM name="param3" ptype="/ptype1"/>
+	</SEQ>
+</VIEW>
+
+<VIEW name="view2">
+	<COMMAND name="cmd1" help="First command">
+		<VIEW ref="/view1">
+	</COMMAND>
+</VIEW>
+```
+
+Предположим, что мы создали вспомогательный `VIEW`, содержащий список часто
+используемых параметров и назвали его "view1". Все параметры должны
+использоваться последовательно, один за другим. А затем в другом `VIEW` объявили
+команду, которая должна содержать все эти параметры. Для этого внутри команды
+создается ссылка на "view1" и все параметры "попадают" внутрь команды. Однако
+элемент `VIEW` по-умолчанию имеет атрибут `mode="switch"` и получается, что
+оператор будет вводить не все объявленные параметры, а должен выбрать только
+один из них. Чтобы изменить порядок разбора вложенных параметров, используется
+элемент `SEQ`. Он меняет порядок разбора параметров на последовательный.
+
+Того же результата можно было добиться добавлением атрибута `mode="sequence"` в
+объявление "view1". Использование атрибута - короче, использование элемента
+`SEQ` - более наглядно.
+
 
 ### PTYPE