Ejemplo n.º 1
0
        /// <summary>
        /// Create a new <see cref="Expression"/> tree based upon the
        /// <paramref name="expression"/> with translatable properties decomposed back
        /// into their expression trees ready for translation to a remote provider using
        /// the default <see cref="TranslationMap"/>.
        /// </summary>
        /// <param name="expression">Expression tree to translate.</param>
        /// <param name="map"><see cref="TranslationMap"/> used to translate property accesses.</param>
        /// <returns><see cref="Expression"/> tree with translatable expressions translated.</returns>
        public static Expression WithTranslations(Expression expression, TranslationMap map)
        {
            if (expression == null)
            {
                throw new ArgumentNullException(nameof(expression));
            }
            if (map == null)
            {
                throw new ArgumentNullException(nameof(map));
            }

            var result = new TranslatingVisitor(map).Visit(expression);

            return(result);
        }
Ejemplo n.º 2
0
        public static bool TryParse(string input, IVisitor visitor)
        {
            if (visitor == null)
            {
                return false;
            }

            var translatingVisitor = new TranslatingVisitor(visitor);
            HRONSerializer.Parse(
                int.MaxValue,
                input.ReadLines(),
                translatingVisitor
                );
            return translatingVisitor.ErrorCount == 0;
        }
Ejemplo n.º 3
0
        public static bool TryParse(IEnumerable<string> input, IVisitor visitor)
        {
            if (visitor == null)
            {
                return false;
            }

            var translatingVisitor = new TranslatingVisitor(visitor);
            HRONSerializer.Parse(
                int.MaxValue,
                (input ?? Array<string>.Empty).Select(s => s.ToSubString()),
                translatingVisitor
                );
            return translatingVisitor.ErrorCount == 0;
        }
Ejemplo n.º 4
0
        public static bool TryParse(TextReader textReader, IVisitor visitor)
        {
            if (visitor == null)
            {
                return false;
            }

            var translatingVisitor = new TranslatingVisitor(visitor);
            HRONSerializer.Parse(
                int.MaxValue,
                textReader.ReadLines().Select(s => s.ToSubString()),
                translatingVisitor
                );
            return translatingVisitor.ErrorCount == 0;
        }