/// <summary> /// Append expression /// </summary> /// <param name="exp"></param> /// <param name="postSeparator"></param> /// <returns></returns> public override PluralRuleExpressionPrinter Append(IExpression exp, string postSeparator = null) { if (exp == null) { return(this); } var x = exp switch { IPluralRuleExpression pre => Append(pre.Infos, " ").Append(pre.Rule, " ").Append(pre.Samples, " "), IPluralRuleInfosExpression infos => Append('[').Append(infos.Infos, ",").Append(']'), IPluralRuleInfoExpression info => Append(info.Name).Append('=').Append(info.Value), ISamplesExpression samples => (Append("@" + samples.Name + " ") as PluralRuleExpressionStringPrinter).AppendSamples(samples.Samples, ", "), IRangeExpression range => Append(range.MinValue).Append("..").Append(range.MaxValue), IGroupExpression group => Append(group.Values, ","), IInfiniteExpression inf => Append('…'), IConstantExpression c => Append(c.Value?.ToString()), IArgumentNameExpression arg => Append(arg.Name), IParenthesisExpression par => Append('(').Append(par.Element).Append(')'), IUnaryOpExpression uop => Append(uop.Op switch { UnaryOp.Plus => "+", UnaryOp.Not => "not ", UnaryOp.OnesComplement => "~", UnaryOp.Negate => "-", _ => "¤" }).Append(uop.Element),
public bool Remove(IGroupExpression item) { return(Items.Remove(item)); }
public bool Contains(IGroupExpression item) { return(Items.Contains(item)); }
public void Insert(int index, IGroupExpression item) { Items.Insert(index, item); }
public int IndexOf(IGroupExpression item) { return(Items.IndexOf(item)); }
public void Add(IGroupExpression item) { Items.Add(item); }