Función: ScriptVolver

Descripción

Ejecuta un script JMEScript y devuelve el resultado o, si no devuelve valor, permite retornar un valor por defecto. Además permite el paso de parámetros al script para usarlo como un módulo o función.

Cadena de entrada

script

Cadena de salida

SCRIPT

Uso

script(<cod_fuente>[,<varmap>[,<valor_defecto>[,<tiempo_max>]]])

Parámetros
# Parámetro Descripción Valor por defecto
1 cod_fuente Código JMEScript a ejecutar. Se puede introducir como un vector de cadenas de texto en el que cada cadena es una línea del script o como un único texto (con saltos de línea obligatorios)
2 varmap Mapa de variables externas; cada clave es un texto con un nombre válido de variable y el valor el terminal asignado a la variable dic([])
3 valor_defecto En caso de que el script no devuelva un valor, se asignará este valor (o se devolverá error si no se especifica este valor)
4 tiempo_max Máximo tiempo de ejecución del script en milisegundos antes de lanzar una excepción. Un valor infinito o negativo no activará el temporizador.
Nota: este máximo solo detiene el script si no está evaluando una expresión JME. Si la expresión JME es muy lenta, el tiempo será mayor hasta que termine la evaluación (incluso infinito)

Ejemplos



script(archivotxt('test.jmes',verdadero))

Texto: 'Ok'



script(archivotxt('lib.jmes'),dic([]),'Biblioteca cargada')

Texto: 'Biblioteca cargada'

Si se introducen las líneas de código como vector, es necesario pasar el mapa de variables (aunque sea vacío):

script(['lista:=[randint(1,6)]','mientras cola(lista)!=6 inicio:','lista;=randint(1,6)','fin','devolver lista'],dic([]))

VectorEvaluado: [3,3,2,5,1,5,5,1,1,2,1,4,3,3,2,2,5,1,6]

Script que recibe una variable externa, en caso contrario inicializa por defecto mediante indefinido :


script(archivotxt('palindromo.jmes'),dic([]))

Texto: 'ALOH ODNUM'

script(archivotxt('palindromo.jmes'),dic('text','Euler Galois Russell'))

Texto: 'RELUE SIOLAG LLESSUR'

Bucle infinito:

script(['mientras verdadero inicio:','fin'],dic([]),0,1000)

FuncionException: <<<FuncionException>>> en funcion "script": Tiempo excedido en script: 1000ms --> script(Vector:[['mientras verdadero inicio:','fin'],dic([]),0,1000])

Desde / Última modificación

v0.5.0