Ejemplo n.º 1
0
        /// <summary>
        ///		Ejecuta una sentencia de impresión
        /// </summary>
        private VariableModel ExecutePrint(ImplicitFunctionModel function)
        {
            VariableModel result = Context.Actual.VariablesTable[function.Arguments[0].Name];

            // Imprime el resultado
            if (result == null)
            {
                AddError($"Method Print: Cant find value for argument {function.Arguments[0].Name}");
            }
            else
            {
                Interpreter.DbScriptExecutor.ConsoleWriteLine(result.GetStringValue());
            }
            // Devuelve el resultado
            return(result);
        }
Ejemplo n.º 2
0
        /// <summary>
        ///		Ejecuta las funciones implícitas
        /// </summary>
        protected override async Task <VariableModel> ExecuteAsync(ImplicitFunctionModel function, CancellationToken cancellationToken)
        {
            VariableModel result = null;

            // Evita el warning de async / await
            await Task.Delay(1);

            // Ejecuta la función adecuada
            if (string.IsNullOrWhiteSpace(function.Definition.Name))
            {
                AddError("Function unreconized");
            }
            else if (function.Definition.Name.Equals("print", StringComparison.CurrentCultureIgnoreCase))
            {
                result = ExecutePrint(function);
            }
            else
            {
                AddError($"Function undefined: {function.Definition.Name}");
            }
            // Devuelve el resultado
            return(result);
        }
Ejemplo n.º 3
0
 /// <summary>
 ///		Ejecuta una función implícita
 /// </summary>
 protected abstract Task <VariableModel> ExecuteAsync(ImplicitFunctionModel function, CancellationToken cancellationToken);