/// <summary>
 /// Пытется найти подходящий resolver для указанного примитивного типа
 /// </summary>
 /// <returns><c>true</c>, if create primitive resolver was tryed, <c>false</c> otherwise.</returns>
 /// <param name="type">Type.</param>
 /// <param name="resolver">Resolver.</param>
 private bool TryCreatePrimitiveResolver(Type type, out IResolver resolver)
 {
     if (TypeOf <Boolean> .Equals(type))
     {
         resolver = new BooleanResolver(); return(true);
     }
     if (TypeOf <Byte> .Equals(type))
     {
         resolver = new ByteResolver(); return(true);
     }
     if (TypeOf <Char> .Equals(type))
     {
         resolver = new CharResolver(); return(true);
     }
     if (TypeOf <Double> .Equals(type))
     {
         resolver = new DoubleResolver(); return(true);
     }
     if (TypeOf <Int16> .Equals(type))
     {
         resolver = new Int16Resolver(); return(true);
     }
     if (TypeOf <Int32> .Equals(type))
     {
         resolver = new Int32Resolver(); return(true);
     }
     if (TypeOf <Int64> .Equals(type))
     {
         resolver = new Int64Resolver(); return(true);
     }
     if (TypeOf <SByte> .Equals(type))
     {
         resolver = new SByteResolver(); return(true);
     }
     if (TypeOf <Single> .Equals(type))
     {
         resolver = new SingleResolver(); return(true);
     }
     if (TypeOf <UInt16> .Equals(type))
     {
         resolver = new UInt16Resolver(); return(true);
     }
     if (TypeOf <UInt32> .Equals(type))
     {
         resolver = new UInt32Resolver(); return(true);
     }
     if (TypeOf <UInt64> .Equals(type))
     {
         resolver = new UInt64Resolver(); return(true);
     }
     resolver = null;
     return(false);
 }
Exemplo n.º 2
0
        public void Resolve_ScriptWithStartOfCharButNoEndOfChar_ShouldNotFindAChar()
        {
            // Setup test
            var stream   = new CharStream("{'str}".ToCharArray());
            var resolver = new CharResolver();
            var tokens   = new HashSet <Token>();

            // Perform test
            var result = resolver.TryResolve(stream, tokens);

            // Validate result
            Assert.False(result);
            Assert.Empty(tokens);
            Assert.Equal(0, stream.CurrentIndex);
        }
Exemplo n.º 3
0
        public void Resolve_TrippleQuotes_ShouldBeInterpretedAsSingleQuotationMarkOfTypeChar()
        {
            // Setup test
            var stream   = new CharStream("''' ".ToCharArray());
            var resolver = new CharResolver();
            var tokens   = new HashSet <Token>();

            // Perform test
            var result = resolver.TryResolve(stream, tokens);

            // Validate result
            Assert.True(result);
            AssertHelper.Equal(tokens, new Token(TokenTypes.Char, '\''));
            Assert.Equal(' ', stream.Current);
        }
Exemplo n.º 4
0
        public void Resolve_CharAndSpace_ShouldMoveToSpace()
        {
            // Setup test
            var stream   = new CharStream("'a' ".ToCharArray());
            var resolver = new CharResolver();
            var tokens   = new HashSet <Token>();

            // Perform test
            var result = resolver.TryResolve(stream, tokens);

            // Validate result
            Assert.True(result);
            AssertHelper.Equal(tokens, new Token(TokenTypes.Char, 'a'));
            Assert.Equal(' ', stream.Current);
        }