Партнерка на США и Канаду по недвижимости, выплаты в крипто

  • 30% recurring commission
  • Выплаты в USDT
  • Вывод каждую неделю
  • Комиссия до 5 лет за каждого referral

Документ

подсистема “ CF_interpreter ”. Версии

Статус

Дата последнего изменения

Alex Ponomarenko

Alex Ponomarenko

Использованные обозначения

Содержание

1. Команды интерпретатора. 2

1.1. IF. 2

1.2. IF1. 2

1.3. insertVar. 3

1.4. loop. 3

1.5. setVar. 4

1.6. math. 4

1.7. if2. 4

1.8. loopMainArray. 6

1.9. for. 6

1.10. setAr. 6

1.11. exec. 7

1.12. loopAssoc. 7

1.13. if3. 8

1.14. findInMA. 8

1.15. echoMA. 8

1.16. #.. 8

1.17. getValMA. 9

1.18. getRecordsNumberMA. 9

1.19. getStrLen. 9

2.  Команды интерпретатора

packed value – это константа, если она указана в одинарных кавычках, либо имя переменной интерпретатора, если она указана без одинарных кавычек

Обозначения: красным цветом указаны изменения по сравнению с предыдущей версией

2.1.  IF

команда

Описание

IF

Алгоритм IF позволяет вывести содержимое блока <cmd> </cmd> при выполнении условия. Поддеррживается ветка @else@

Интерфейс:

if(txtVarName, txtOp, txtValue)

txtVarName: packed value

txtOp: {==,!=,<=,<,gt, gte}

txtValue – имя переменной интрепретатора

Пример:

<cmd process="if" params="'txtVal',==,txtVal"></cmd>

<cmd process="if" params="'txtVal',==,txtVal"> … @else@ … </cmd>

2.2.  IF1

IF1

Алгоритм IF1 позволяет вывести содержимое блока <cmd> </cmd> при выполнении условия равенства одному из значений

Интерфейс:

if(txtVarName, txtOp, valuesList)

txtVarName: packed value

txtOp: {==or}

valuesList := <значение> | <значение>\|<Список значений>

(\| означает, что символ | используется для разделения элементов списка значений)

Пример:

<cmd process="if1" params="'txtVal',==or, txtVal|txtVal1|txtVal2"></cmd>

<cmd process="if1" params="'txtVal',==or, txtVal|txtVal1|txtVal2">… @else@ …</cmd>

2.3.  insertVar

insertVar

Алгоритм “insertVar” позволяет вставить в указанное место текста значение переменной (name), которая была передана в интерпретатор

Пример:

<cmd process="insertVar" varName="workDir"></cmd>

(эта инструкция обрабатывается в порядке обработки других инструкций cmd)

Пример2:

<insertVar varName="workDir">

(эта инструкция обрабатывается при первой возможности, т. е. до обработки стандартных инструкций вроде cmd)

2.4.  loop

loop

Алгоритм “loop” позволяет повторить указанный кусок текста указанное число раз

Пример1:

<cmd process="loop" varName="workDir"></cmd>

<cmd process="loop" varName="text">

<td id="chapterInfo">

@loopIndex; @text; @count;

</td>

</cmd>

(вставить на место последовательности @text; - значение текущей ячейки одномерного array-массива, который передан в интерпретатор под именем “text”)

(вставить на место @loopIndex; - текущее значение переменной цикла (цикл начинается с 0)

(вставить на место @count; - количество элементов в массиве)

$interpreterFilter->setVar("text ", array(“text1”, “text2”));

означает: поторить цикл 2 раза, вставить на место “@text;” сначала “text1”, потом - “text2”; вставить на место “@loopIndex;” сначала “0”, потом “1”

Пример2:

<cmd process="loop" varName="text">

<td id="chapterInfo">

@loopIndex; @text-0; @text-1;

</td>

</cmd>

(если значение переменной text на очередной итерации – массив array(), то выполняется замена @text-0; на первый элемент массива, @text-1; на второй, и т. д. Т. е. внутрь интерпретатора можно передать одномерный array-массив одномерных array-массивов, и на очередной итерации можно адресоваться к элементу одного из n array-массивов (при адресации нумерация начинается с 0)

(вставить на место @count; - количество элементов в массиве)

2.5.  setVar

setVar

Алгоритм “setVar” позволяет запомнить в переменной интерпретатора значение между парными тэгами <cmd></cmd>

2.6.  math

math

Алгоритм “math” позволяет вычислить значение выражения.

Интерфейс:

math (txtVarName, txtOp, valuesList)

param1: const без кавычек

txtOp: {+ | -}

param2: const без кавычек

Пример:

<cmd process="math" params="2,+,10"></cmd>

2.7.  if2

if2

Алгоритм IF2 позволяет вывести содержимое блока <cmd> </cmd> при выполнении условия. Пддерживается ветка else @if2_else_cmd@

Интерфейс:

if(leftPart, txtOp, valuesList)

leftPart: packed value

txtOp: {==, != , gt, lte }

valuesList: {packed value, packed value \| valuesList }

если команда == и справа – список значений, то предполагается ИЛИ: (==) || (==)

если команда =! и справа – список значений, то предполагается И: (!=) && (!=)

если команда gt и справа – список значений, то предполагается И: (>) && (>)

Пример1:

<cmd process="if2" params="var1,==,’2’"> …

</cmd>

Пример2:

<cmd process="if2" params="var1,==,’2’|var2"> …

</cmd>

Пример3:

<cmd process="if2" params="’2’,==,’2’"> …

</cmd>

Пример4:

<cmdX process="if2" params="’2’,==,’2’"> …

@if2_else_cmdX@

</cmdX>

2.8.  loopMainArray

loopMainArray

Алгоритм loopMainArray позволяет повторить указанный кусок текста указанное число раз. В качестве основы цикла используется основной массив, который хранится в указанной переменной интерпретатора

Интерфейс:

loopMainArray (varName : string, [startIndex : int ], [endIndex : int])

Вероятный пример1:

<cmd1 process=”loopMainArray” varName=”arrayName”>

<loopMainArray-cmd1 cmd=”myGet,1,@cmd1-curRecNumber@”></loopMainArray-cmd1>

<loopMainArray-cmd1 cmd=”myGet, NODE_ID,@cmd1-curRecNumber@”> </loopMainArray-cmd1>

<loopMainArray-cmd1 cmd=”myGetData,’NODE_DATA’,’@cmd1-curRecNumber@’,’w’”></loopMainArray-cmd1>

</cmd1>

здесь в параметрах после myGet можно указывать PHP-константы

2.9.  for

for

for(loopVarName, startVal, compareCmd, stopVal, changeCounter)

compareCmd: {lt, elt}

Вероятный пример1:

<cmd1 process=”for” params=”i,1,lt,5,1”>

@i;<br>

</cmd1>

2.10.  setAr

setAr

Алгоритм setAr присваивает внутренней переменной array-массив

setAr(varName, val1,val2,…)

Вероятный пример1:

<cmd1 process=”setAr” params=”varName,1,2,3,4,5”></cmd1>

2.11.  exec

exec

Алгоритм exec вызывает внутреннюю инструкцию интерпретатора

Вероятный пример1:

<cmd1 process=”exec” code=”get, eval, APP_WINDOW_NAME”></cmd1>

Вероятный пример2:

<cmd1 process=”exec” code=”eval, APP_WINDOW_NAME”></cmd1>

Вероятный пример3:

<cmd1 process=”exec” code=”get, mainAr, internalVarName,1D, eval, SYS_FW_FP__NAME”></cmd1>

Вероятный пример4:

<cmd1 process=”exec” code=”get, mainAr, internalVarName,1D, int,2”></cmd1>

Вероятный пример5:

<cmd1 process=”exec” code=”get, mainAr, internalVarName,2D, eval, SYS_FW_FP__NAME, eval,1”></cmd1>

Вероятный пример6:

<cmd1 process=”exec” code=”get, mainAr, internalVarName,2D, eval, SYS_FW_FP__NAME, int,1”></cmd1>

2.12.  loopAssoc

loopAssoc

Алгоритм loopAssoc (модификация loop) - цикл по масиву ассоциативных массивов

Пример1:

<cmd process="loopAssoc" varName="doc">

@doc-key;

</cmd>

Пример2:

<cmd process="loopAssoc" varName="doc">

@doc; @loopIndex; @count;

</cmd>

2.13.  if3

if3

Алгоритм IF3 позволяет вывести содержимое блока <cmd> </cmd> при выполнении всех условий

<cmd process="if3" params="’2’,==,’2’"> …

@if3_else_cmd@

</cmd>

2.14.  findInMA

findInMA

Алгоритм findInMA(X, Y,Z, Q) ищет в основном массиве X запись, у которой в поле Y находится значение Z". номер записи записывается в переменную интерпретатора Q

Пример:

<cmd0 process="findInMA" params="'partitionNode','NODE_ID',nodeID,'recNum'"></cmd0>

2.15.  echoMA

echoMA

Алгоритм echoMA(X) распечатываем содержимое основного массива X

(массив должен храниться в переменной интерпретатора под именем X)

Пример:

<cmd0 process="echoMA" params="'partitionNode'"></cmd0>

nodeID=<insertVar varName="nodeID">

2.16.  #

#

можно закомментировать команду. Тогда она не выполняется и возвращает пустую строку

Пример:

<cmd0 process="#echoMA" params="'partitionNode'"></cmd0>

Распечатываем:

recNum=<cmd0 process="insertVar" varName="recNum"></cmd0>

ВНИМАНИЕ! для использования полученного значения нужно использовать не

<insertVar varName=” recNum”>,

а <cmd0 process="insertVar" varName="recNum"></cmd0>

2.17.  getValMA

getValMA

Алгоритм getValMA(X, Y,Z, Q) извлекает из поля (Z) записи (Y) основного массива (X) значение, и помещает полученное значение в переменную интерпретатора (Q) (массив должен храниться в переменной интерпретатора под именем X)

<cmd0 process="getValMA" params="'partitionNode','NODE_CAPTION',recNum,'curPartitionCaption'"></cmd0>

Распечатываем:

curPartitionCaption=<cmd0 process="insertVar" varName="curPartitionCaption"></cmd0>

2.18.  getRecordsNumberMA

getRecordsNumberMA

Алгоритм getRecordsNumberMA(X, Q) вычисляет количество записей в основном массиве (X), и помещает полученное значение в переменную интерпретатора (Q) (массив должен храниться в переменной интерпретатора под именем X)

Интерфейс:

getRecordsNumberMA(X, Q)

X: packed value

Q: packed value

Пример1:

<cmd0 process="getRecordsNumberMA" params="'partitionNode', 'recsNumber'"></cmd0>

Распечатываем:

recsNumber=<cmd0 process="insertVar" varName="recsNumber"></cmd0>

2.19.  getStrLen

getStrLen

Алгоритм getStrLen(X, Y) вычисляет длину строки (X), и помещает полученное значение в переменную интерпретатора (Y)

Интерфейс:

getStrLen(X, Y)

X: packed value

Q: packed value

Пример:

<cmd0 process="getStrLen" params="shortInfo2,'shortInfo2Len'"></cmd0>

Распечатываем:

len=<cmd0 process="insertVar" varName="shortInfo2Len"></cmd0>