/// <summary>Gets a setter action, constructed on-demand.</summary>
 /// <param name="variable">The variable ID.</param>
 /// <returns>The setter.</returns>
 public Action <CompiledCommandRunnable, TemplateObject> GetSetter(int variable)
 {
     if (VariableSetters[variable] == null)
     {
         VariableSetters[variable] = ScriptCompiler.CreateVariableSetter(Variables[variable]);
     }
     return(VariableSetters[variable]);
 }