示例#1
0
        public Parser Create(IFieldPath path, ParameterBuilder builder)
        {
            Parser parser = null;

            if (ParserLookup != null && ParserLookup.ContainsKey(path.Last))
            {
                parser = ParserLookup[path.Last];
            }
            else
            {
                if (path.Last.DataType == typeof(DateTime))
                {
                    parser = new ExtendedDateParser();
                }
                else if (IsWholeNumber(path.Last.DataType))
                {
                    parser = new ConvertParser <object, long>();
                }
                else if (IsDecimal(path.Last.DataType))
                {
                    parser = new ConvertParser <object, double>();
                }
            }

            return(parser);
        }
        public void Convert_parse_double_from_double()
        {
            var result = new ConvertParser<double, double>().Parse(123.4);

            Assert.IsNotNull(result);
            Assert.AreEqual(1, result.Length);
            Assert.AreEqual(123.4, result[0]);
        }
示例#3
0
        public void Convert_parse_string()
        {
            var result = new ConvertParser <string, string>().Parse("abc");

            Assert.IsNotNull(result);
            Assert.AreEqual(1, result.Length);
            Assert.AreEqual("abc", result[0]);
        }
        public void Convert_parse_double()
        {
            var result = new ConvertParser<string, double>().Parse("123.4");

            Assert.IsNotNull(result);
            Assert.AreEqual(1, result.Length);
            Assert.AreEqual(123.4, result[0]);
        }
示例#5
0
        public void Convert_parse_bool()
        {
            var result = new ConvertParser <string, bool>().Parse("false");

            Assert.IsNotNull(result);
            Assert.AreEqual(1, result.Length);
            Assert.AreEqual(false, result[0]);
        }
        public void Convert_parse_bool()
        {
            var result = new ConvertParser<string, bool>().Parse("false");

            Assert.IsNotNull(result);
            Assert.AreEqual(1, result.Length);
            Assert.AreEqual(false, result[0]);
        }
        public void Convert_parse_bool_from_bool()
        {
            var result = new ConvertParser<bool, bool>().Parse(true);

            Assert.IsNotNull(result);
            Assert.AreEqual(1, result.Length);
            Assert.AreEqual(true, result[0]);
        }
示例#8
0
        public void Convert_parse_double()
        {
            var result = new ConvertParser <string, double>().Parse("123.4");

            Assert.IsNotNull(result);
            Assert.AreEqual(1, result.Length);
            Assert.AreEqual(123.4, result[0]);
        }
示例#9
0
        public void Convert_parse_int()
        {
            var result = new ConvertParser <string, int>().Parse("123");

            Assert.IsNotNull(result);
            Assert.AreEqual(1, result.Length);
            Assert.AreEqual(123, result[0]);
        }
示例#10
0
        public void Convert_parse_string_from_int()
        {
            var result = new ConvertParser <int, string>().Parse(123);

            Assert.IsNotNull(result);
            Assert.AreEqual(1, result.Length);
            Assert.AreEqual("123", result[0]);
        }
示例#11
0
        public void Convert_parse_bool_from_bool()
        {
            var result = new ConvertParser <bool, bool>().Parse(true);

            Assert.IsNotNull(result);
            Assert.AreEqual(1, result.Length);
            Assert.AreEqual(true, result[0]);
        }
示例#12
0
        public void Convert_parse_double_from_int()
        {
            var result = new ConvertParser <double, int>().Parse(123.4);

            Assert.IsNotNull(result);
            Assert.AreEqual(1, result.Length);
            Assert.AreEqual(123, result[0]);
        }
示例#13
0
        public void Convert_parse_int_from_int()
        {
            var result = new ConvertParser<int, int>().Parse(123);

            Assert.IsNotNull(result);
            Assert.AreEqual(1, result.Length);
            Assert.AreEqual(123, result[0]);
        }
示例#14
0
        public void Convert_parse_int()
        {
            var result = new ConvertParser<string, int>().Parse("123");

            Assert.IsNotNull(result);
            Assert.AreEqual(1, result.Length);
            Assert.AreEqual(123, result[0]);
        }
        private ProfilePathPoint GetProfilePath(Range range, int rowIndex)
        {
            ProfilePathPoint profilePathPoint = new ProfilePathPoint();

            profilePathPoint.VerticalDepth    = ConvertParser.GetConvertValue <double>(range.Worksheet.Cells[rowIndex, range.FirstColumn].StringValue);
            profilePathPoint.InclinationAngle = ConvertParser.GetConvertValue <double>(range.Worksheet.Cells[rowIndex, range.FirstColumn + 1].StringValue);
            profilePathPoint.AzimuthAngle     = ConvertParser.GetConvertValue <double>(range.Worksheet.Cells[rowIndex, range.FirstColumn + 2].StringValue);
            profilePathPoint.Extension        = ConvertParser.GetConvertValue <double>(range.Worksheet.Cells[rowIndex, range.FirstColumn + 3].StringValue);
            return(profilePathPoint);
        }
示例#16
0
        private T?GetValue <T>(RegistryKey registryKey, string name) where T : struct
        {
            object value = registryKey.GetValue(name);

            if (value == null)
            {
                return(null);
            }

            return(ConvertParser.GetConvertValue <T>(value));
        }
示例#17
0
        private string GetStringValue(RegistryKey registryKey, string name)
        {
            object value = registryKey.GetValue(name);

            if (value == null)
            {
                return(String.Empty);
            }

            return(ConvertParser.GetConvertValue <string>(value));
        }
示例#18
0
 public override Parser <TInput> VisitConvert <TOutput>(ConvertParser <TInput, TOutput> parser)
 {
     if (state.State == 0)
     {
         state.State = 1;
         return(parser.Pattern);
     }
     else
     {
         state.InputLength = state.LastResult;
         return(null);
     }
 }
 public override Parser <TInput> VisitConvert <TOutput>(ConvertParser <TInput, TOutput> parser)
 {
     if (state.State == 0)
     {
         state.State++;
         return(parser.Pattern);
     }
     else
     {
         state.InputLength   = state.LastResult;
         this.prevWasMissing = state.PrevWasMissing;
         return(null);
     }
 }
示例#20
0
        public void Start()
        {
            if (IsRunning)
            {
                Stop();
            }
            if (!string.IsNullOrWhiteSpace(Ip))
            {
                var receiver             = new TcpClientReceiver(Ip, Port);
                var binToStringConverter = new SpecificEndingsBinaryToStringConverter(new string[] { Environment.NewLine }, Encoding.Default);
                var convertParser        = new ConvertParser <IData, string>(this, binToStringConverter);
                var recvRunner           = new ReceiverSourceRunner <IData>(receiver, convertParser);
                _autoRepeatRunner = new AutoRepeatRunner(recvRunner);

                _autoRepeatRunner.Start();
                Runner.ThreadRun(_autoRepeatRunner);
            }
        }
 public override void VisitConvert <TOutput>(ConvertParser <TInput, TOutput> parser)
 {
     this.Visit(parser.Pattern);
 }
示例#22
0
 public override Parser <TInput> VisitConvert <TOutput>(ConvertParser <TInput, TOutput> parser)
 {
     state.InputLength = parser.Parse(source, state.InputStart, output, output.Count);
     return(null);
 }
示例#23
0
 public override int VisitConvert <TOutput>(ConvertParser <TInput, TOutput> parser, int start)
 {
     return(Search(parser.Pattern, start));
 }
示例#24
0
        public void Convert_parse_string()
        {
            var result = new ConvertParser<string, string>().Parse("abc");

            Assert.IsNotNull(result);
            Assert.AreEqual(1, result.Length);
            Assert.AreEqual("abc", result[0]);
        }