macr2tree Обеспечивает внутренний код скомпилированного функции Scilab

## Синтаксис

    p = macr2tree(function)

## Аргументы

function

  дескриптор сценария Scilab (НЕ его имя в виде строки)

p

  Список типа `program` с полями `p.name`, `p.nblines`, `p.inputs`, `p.outputs` и `p.statements`. Последние три являются вложенными списками, описывающими внутренний код `function`.

## Описание

Этот примитив преобразует компилированную функцию Scilab с именем `function_name` в дерево (перекрываемые типизированные списки), которое кодирует внутреннее представление функции. Для использования совместно с `tree2code()`.

## Примеры

    prog = macr2tree(log2);   // Заметьте, что на входе указано log2, а не "log2"
    typeof(prog)
    fieldnames(prog)'
    prog.name
    deftxt = tree2code(prog, %T);
    printf("%s\n", deftxt);

    --> typeof(prog)
     ans  =
     program

    --> fieldnames(prog)'
     ans  =
    !name  outputs  inputs  statements  nblines  !

    --> prog.name
     ans  =
     log2

    --> deftxt = tree2code(prog, %T);

    --> printf("%s\n", deftxt);
    function [f,e] = log2(x)
      [lhs,rhs] = argn(0)
      if rhs&lt;>1 then
        msg = gettext("%s: Wrong number of input argument(s): %d expected.\n")
        error(msprintf(msg, "log2", 1))
      end
      if argn(1)==1 then
        f = log(x)/log(2)
      else
        [f,e] = frexp(x)
      end
    endfunction

## Смотрите также

- tree2code
- macrovar
- functions