Пример #1
0
 public override Token ProcessOperator(Token leftToken, Token rightToken)
 {
     return new Token(DateTime.Parse(leftToken.Content, CultureInfo.InvariantCulture).AddDays(
         Int32.Parse(rightToken.Content, CultureInfo.InvariantCulture)).ToString(
         CultureInfo.InvariantCulture),
         TokenType.Date);
 }
Пример #2
0
 public override Token ProcessOperator(Token leftToken, Token rightToken)
 {
     if (leftToken.TokenType == TokenType.Date && rightToken.TokenType == TokenType.Number)
     {
         return new Token(DateTime.Parse(leftToken.Content, CultureInfo.InvariantCulture).AddDays(
             -Int32.Parse(rightToken.Content, CultureInfo.InvariantCulture)).ToString(
             CultureInfo.InvariantCulture),
             TokenType.Date);
     }
     else if (leftToken.TokenType == TokenType.Date && rightToken.TokenType == TokenType.Date)
     {
         return new Token(
         DateTime.Parse(leftToken.Content, CultureInfo.InvariantCulture).Subtract(
             DateTime.Parse(rightToken.Content, CultureInfo.InvariantCulture)).Days.ToString(CultureInfo.InvariantCulture),
             TokenType.Number
             );
     }
     else
     {
         throw new ArgumentException(String.Format("Operator doesn't support this data types. Lvalue:{0} Rvalue:{1}", leftToken.TokenType, rightToken.TokenType));
     }
 }
Пример #3
0
 public abstract Token ProcessOperator(Token leftToken, Token rightToken);
Пример #4
0
 public override Token ProcessOperator(Token leftToken, Token rightToken)
 {
     return new Token(leftToken.Content + rightToken.Content, TokenType.String);
 }
Пример #5
0
 public static TokenOpeartor Make(Token leftToken, Token rightToken, Token operatorToken)
 {
     if (Mapping.ContainsKey(leftToken.TokenType) && Mapping[leftToken.TokenType].ContainsKey(rightToken.TokenType))
         return Mapping[leftToken.TokenType][rightToken.TokenType][operatorToken.Content];
     else
         throw new ArgumentException("Operator not found for given types");
 }
Пример #6
0
 public static Token ProcessOperator(Token leftToken, Token rightToken, Token operatorToken)
 {
     TokenOpeartor to = TokenOperatorFactory.Make(leftToken, rightToken, operatorToken);
     return to.ProcessOperator(leftToken, rightToken);
 }
Пример #7
0
 public override Token ProcessOperator(Token leftToken, Token rightToken)
 {
     return new Token((Decimal.Parse(leftToken.Content, System.Globalization.CultureInfo.InvariantCulture)
         - Decimal.Parse(rightToken.Content, System.Globalization.CultureInfo.InvariantCulture)).ToString(System.Globalization.CultureInfo.InvariantCulture),
         TokenType.Number);
 }