/// <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); }
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; }
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; }
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; }