anchor.diff:    static final TokenType SQRT = const TokenType("SQRT",3);
     static final TokenType LOG = const TokenType("LOG",3);
     static final TokenType LN = const TokenType("LN",3);
  +  static final TokenType COS = const TokenType("COS",3);
  +  static final TokenType SIN = const TokenType("SIN",3);
     static final TokenType EFUNC = const TokenType("EFUNC",3);
   
     final String value;
  
positive.code:     keywords["^"] = TokenType.POW;
      keywords["sqrt"] = TokenType.SQRT;
      keywords["log"] = TokenType.LOG;
      keywords["ln"] = TokenType.LN;
      keywords["e"] = TokenType.EFUNC;
      keywords["("] = TokenType.LBRACE;
  
negative.code:         Expression operand = expressionStack.last;
          expressionStack.removeLast();
          Expression currentExpression = new Sqrt(operand);
          expressionStack.add(currentExpression);
          continue;
        }
        
        if(currentToken.type == TokenType.COS) {
          Expression operand = expressionStack.last;
          expressionStack.removeLast();
          Expression currentExpression = new Cos(operand);
          expressionStack.add(currentExpression);
          continue;
        }
        
        if(currentToken.type == TokenType.SIN) {
          Expression operand = expressionStack.last;
          expressionStack.removeLast();
          Expression currentExpression = new Sin(operand);
          expressionStack.add(currentExpression);
          continue;
        }
  