57 lines
1.9 KiB
C#
57 lines
1.9 KiB
C#
using Upsilon.Evaluator;
|
|
|
|
namespace Upsilon
|
|
{
|
|
public static class Executor
|
|
{
|
|
private static readonly ScriptOptions DefaultOptions = new ScriptOptions();
|
|
|
|
public static Script ParseInput(string input, ScriptOptions options = null)
|
|
{
|
|
if (options == null) options = DefaultOptions;
|
|
var script = new Script(input, options);
|
|
script.Parse();
|
|
return script;
|
|
}
|
|
|
|
public static Script ParseInputAndEvaluate(string input, ScriptOptions options = null)
|
|
{
|
|
if (options == null) options = DefaultOptions;
|
|
var script = new Script(input, options);
|
|
script.Parse();
|
|
script.Evaluate();
|
|
return script;
|
|
}
|
|
|
|
public static Script ContinueWith(Script script, string input)
|
|
{
|
|
var s = Script.ContinueWith(script, input);
|
|
s.Parse();
|
|
return s;
|
|
}
|
|
|
|
public static T EvaluateScript<T>(string input, ScriptOptions options = null)
|
|
{
|
|
var script = ParseInput(input, options);
|
|
return script.Evaluate<T>();
|
|
}
|
|
|
|
public static object EvaluateScript(string input, ScriptOptions options = null)
|
|
{
|
|
var script = ParseInput(input, options);
|
|
return script.Evaluate();
|
|
}
|
|
|
|
public static T EvaluateFunction<T>(string input, string function, object[] parameters = null, ScriptOptions options = null)
|
|
{
|
|
var script = ParseInputAndEvaluate(input, options);
|
|
return script.EvaluateFunction<T>(function, parameters);
|
|
}
|
|
|
|
public static object EvaluateFunction(string input, string function, object[] parameters = null, ScriptOptions options = null)
|
|
{
|
|
var script = ParseInputAndEvaluate(input, options);
|
|
return script.EvaluateFunction(function, parameters);
|
|
}
|
|
}
|
|
} |