/// <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),
示例#2
0
 public bool Remove(IGroupExpression item)
 {
     return(Items.Remove(item));
 }
示例#3
0
 public bool Contains(IGroupExpression item)
 {
     return(Items.Contains(item));
 }
示例#4
0
 public void Insert(int index, IGroupExpression item)
 {
     Items.Insert(index, item);
 }
示例#5
0
 public int IndexOf(IGroupExpression item)
 {
     return(Items.IndexOf(item));
 }
示例#6
0
 public void Add(IGroupExpression item)
 {
     Items.Add(item);
 }