using Jace;
using System;
using System.Collections.Generic;
public static class JaceCalculator
{
private static readonly CalculationEngine Engine = new CalculationEngine();
///
/// 解析并计算数学表达式
///
/// 数学表达式字符串
/// 变量字典
/// 计算结果
public static double Calculate(string formula, Dictionary variables)
{
if (string.IsNullOrEmpty(formula))
{
throw new ArgumentException("Formula cannot be null or empty.");
}
if (variables == null || variables.Count == 0)
{
throw new ArgumentException("Variables dictionary cannot be null or empty.");
}
try
{
return Engine.Calculate(formula, variables);
}
catch (Exception ex)
{
throw new InvalidOperationException($"Failed to calculate formula: {ex.Message}", ex);
}
}
public static void Init()
{
Engine.AddFunction("int", (Func)(x => (int)x));
}
}