/// <nodoc/> public ResolvedEntry(FullSymbol symbolName, IConstantExpression constantExpression) : this() { Contract.Requires(constantExpression != null); ConstantExpression = constantExpression; Location = constantExpression.Location; m_thunkContextNameOrSymbolName = symbolName; }
/// <nodoc /> public static void Write(BuildXLWriter writer, IConstantExpression constExpression) { if (constExpression is Node node) { writer.Write(true); node.Serialize(writer); } else { writer.Write(false); WriteConstValue(writer, constExpression.Value); } }
/// <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 virtual void VisitConstantExpression(IConstantExpression e) { }
private object Act(IConstantExpression expression) { var executor = new ConstantExpressionExecutor(); return(executor.Execute(expression)); }
public object Execute(IConstantExpression expression) { return(expression.Value); }