public CalcEntry() { try { string[] pathArr = Directory.GetFiles(Directory.GetCurrentDirectory() + "/Dlls", "*.dll"); Funcs = new Dictionary <string, AriphmeticOperFunc>(); foreach (var plug in pathArr) { Assembly.LoadFrom(plug); } Console.WriteLine("Loaded set of operations"); } catch (Exception ex) { Console.WriteLine("Error when loading operations, {0}", ex.Message); } foreach (Assembly item in AppDomain.CurrentDomain.GetAssemblies()) { foreach (Type elem in item.GetTypes()) { if (elem.GetInterface(typeof(ICalcFunction).FullName) != null) { ICalcFunction p = Activator.CreateInstance(elem) as ICalcFunction; Funcs.Add(p.FuncName, p.Calculation); } } } }
public Parser(string exp, ICalcFunction calcFunc) { this.exp = exp; tree = null; scanner = new Scanner(exp); this.icalcfunc = calcFunc; }
public SumSyntaxTreeNode(Token t, ICalcFunction icalc) : base(t) { this.icalc = icalc; }