Example #1
0
        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);
                    }
                }
            }
        }
Example #2
0
 public Parser(string exp, ICalcFunction calcFunc)
 {
     this.exp = exp;
     tree = null;
     scanner = new Scanner(exp);
     this.icalcfunc = calcFunc;
 }
Example #3
0
 public SumSyntaxTreeNode(Token t, ICalcFunction icalc)
     : base(t)
 {
     this.icalc = icalc;
 }