/// <summary> /// Determines if two IAdverbial instances are similar. /// </summary> /// <param name="first">The first IAdverbial</param> /// <param name="second">The second IAdverbial</param> /// <returns><c>true</c> if the given IAdverbial instances are similar; otherwise, <c>false</c>.</returns> public static Similarity IsSimilarTo(this IAdverbial first, IAdverbial second) => Similarity.FromBoolean( Equals(first, second) || first.Text.EqualsIgnoreCase(second.Text) || first.Match() .Case((Adverb a1) => second.Match() .Case((Adverb a2) => a1.IsSimilarTo(a2)) .Case((AdverbPhrase ap2) => ap2.IsSimilarTo(a1)) .Result()) .Case((AdverbPhrase ap1) => second.Match() .Case((AdverbPhrase ap2) => ap1.IsSimilarTo(ap2)) .Case((Adverb a2) => ap1.IsSimilarTo(a2)) .Result()) .Result());
/// <summary> /// Attaches an Adverbial construct, such as an Adverb or AdverbPhrase, as a modifier of the Verb. /// </summary> /// <param name="modifier">The Adverbial construct by which to modify the AdjectivePhrase.</param> public void ModifyWith(IAdverbial modifier) { modifiers = modifiers.Add(modifier); modifier.Modifies = this; }
public void ModifyWith(IAdverbial modifier) => adverbialModifiers = adverbialModifiers.Add(modifier);
/// <summary> /// Attaches an Adverbial construct, such as an Adverb or AdverbPhrase, as a modifier of the AdjectivePhrase. /// </summary> /// <param name="modifier">The Adverbial construct by which to modify the AdjectivePhrase.</param> public virtual void ModifyWith(IAdverbial modifier) { adverbialModifiers.Add(modifier); modifier.Modifies = this; }
/// <summary> /// Creates a Newtonsoft.Linq.JObject representation of the Adverbial. /// </summary> /// <param name="adverbial">The source Adverbial.</param> /// <returns>A Newtonsoft.Linq.JObject representation of the Adverbial.</returns> public static JObject ToJObject(this IAdverbial adverbial) => new JObject(GetRoleIndependentProperties(adverbial)) { new JProperty("modifies", adverbial.Modifies) };