Esempio n. 1
0
        /// <nodoc/>
        public ResolvedEntry(FullSymbol symbolName, IConstantExpression constantExpression)
            : this()
        {
            Contract.Requires(constantExpression != null);

            ConstantExpression             = constantExpression;
            Location                       = constantExpression.Location;
            m_thunkContextNameOrSymbolName = symbolName;
        }
Esempio n. 2
0
 /// <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),
Esempio n. 4
0
 public virtual void VisitConstantExpression(IConstantExpression e)
 {
 }
Esempio n. 5
0
        private object Act(IConstantExpression expression)
        {
            var executor = new ConstantExpressionExecutor();

            return(executor.Execute(expression));
        }
Esempio n. 6
0
 public object Execute(IConstantExpression expression)
 {
     return(expression.Value);
 }