public void Intercept(IInvocation invocation)
 {
     using (OperationStack.Push(GetMethodInformation(invocation)))
     {
         invocation.Proceed();
     }
 }
Beispiel #2
0
 private void Work(string token)
 {
     if (FuncsSignatures.ContainsKey(token))
     {
         OperationStack.Push(token);
     }
     else if (token == "(" || token == "[")
     {
         OperationStack.Push(token);
     }
     else if (token == ",")
     {
     }
     else if (token == ")" || token == "]")
     {
         while (OperationStack.Peek() != "[" && OperationStack.Peek() != "(")
         {
             Eval();
         }
         Eval();
     }
     else if (Priorities.ContainsKey(token))
     {
         while (OperationStack.Count > 0 && GetPriority(OperationStack.Peek()) >= GetPriority(token))
         {
             Eval();
         }
         OperationStack.Push(token);
     }
     else if (owner.Variables.ContainsKey(token))
     {
         OperandStack.Push(owner.Variables[token].Value);
     }
     else
     {
         OperandStack.Push(Parser.ParseTypes(token));
     }
 }