conversão de função para lista
lst = macr2lst(function_name)
a function to be converted.
a list.
Esta primitiva converte uma versão compilada do Scilab
function_name
em uma lista que codifica a representação
interna da função (notação polonesa inversa).
A primeira entrada da lista é o nome da função, as segunda e
terceira são, respectivamente, os vetores das variáveis de lado esquerdo e
direito (lhs e rhs). As entradas seguintes são registros de operação
básica ou listas que contém as estruturas de controle hierárquicas como if
, for
, ...
Registros de operação básica são descritos por um vetor de strings cujo primeiro elemento representa código do operador (op code).
op codes | significado | parâmetros |
"0" | opcode ignorado | nenhum |
"1" | não mais usado | |
"2" | referência à função ou variável | nome da variável, #rhs, #lhs |
"3" | coloca um string na pilha | um string |
"4" | coloca uma matriz vazia na pilha | nenhum |
"5" | aplica uma operação | código de operação, #rhs,#lhs |
"6" | coloca um número na pilha | o número |
"12" | comando pause | nenhum |
"13" | comando break | nenhum |
"14" | comando abort | nenhum |
"15" | marca de fim da linha | nenhum |
"17" | comando quit | nenhum |
"18" | variável nomeada | nome da variável |
"19" | cria estrutura de índice recursiva | comprimento do endereço, número de índices finais |
"20" | chamada a função | nome da função, #rhs, #lhs |
"23" | cria variável a partir do nome | nome da variável |
"24" | coloca uma variável de tipo 0 na pilha | nenhum |
"25" | registro de perfil | número da chamada, gasto de tempo |
"26" | coloca um vetor de strings na pilha | #linhas, #colunas, seqüência de elementos |
"27" | coloca uma referência a um builtin na pilha | número da interface, posição da interface, nome da função |
"28" | comando continue | nenhum |
"29" | atribuição | #lhs, modo de exibição, (nome da variável, #rhs)* |
"30" | curto circuito de expressão lógica | tipo, tamanho do salto (jump) |
"31" | comentário | o comentário |
"99" | comando return | nenhum |
> "100" | chamada a um builtin (obsoleto) | 100*fun, #rhs, #lhs, fin |
A função fun2string pode ser usada para se gerar o código inicial