Ejemplo n.º 1
0
 public override ScriptVariable Invoke(ScriptExecutionEnvironment env, IList <ScriptVariable> args)
 {
     env.Variables.EnterScope();
     try {
         int index = 0;
         foreach (var p in this.Parameters)
         {
             if (this.IsParams && index == this.Parameters.Count - 1)
             {
                 List <ScriptVariable> @params = new List <ScriptVariable>();
                 for (; index < args.Count; index++)
                 {
                     @params.Add(args[index]);
                 }
                 env.Variables.Declare(p.Identifier, new ListVariable(@params), VariableStorage.FieldProperty.Default);
                 break;
             }
             else if (index < args.Count)
             {
                 env.Variables.Declare(p.Identifier, args[index], VariableStorage.FieldProperty.Default);
             }
             else
             {
                 env.Variables.Declare(p.Identifier, null, VariableStorage.FieldProperty.Default);
             }
             index++;
         }
         ScriptVariable ret;
         this.Body.Execute(env, out ret);
         return(ret);
     } finally {
         env.Variables.ExitScope();
     }
 }
Ejemplo n.º 2
0
 public override ScriptVariable Invoke(ScriptExecutionEnvironment env, IList <ScriptVariable> args)
 {
     env.Console.Warn("Meaningless Function Call for " + this.GetType().Name);
     return(this);
 }
Ejemplo n.º 3
0
 public override ScriptVariable Invoke(ScriptExecutionEnvironment env, IList <ScriptVariable> args)
 {
     return(env.Console.CallFunction(_name, args));
 }
Ejemplo n.º 4
0
 public abstract ScriptVariable Invoke(ScriptExecutionEnvironment env, IList <ScriptVariable> args);