Пример #1
0
        public override void VisitNewPropertyListInstruction(NewPropListIns newPropList, Stack <Expression> expressionStack)
        {
            if (!(expressionStack.Pop() is ListExpression listExpression))
            {
                throw new Exception(nameof(VisitNewPropertyListInstruction));
            }

            if (listExpression.Items.Count % 2 != 0)
            {
                throw new InvalidOperationException("Preceding listExpression must be in property-value pairs");
            }

            var properties = new Dictionary <Expression, Expression>(listExpression.Items.Count / 2);

            for (int i = 0; i < listExpression.Items.Count; i += 2)
            {
                properties.Add(listExpression.Items[i], listExpression.Items[i + 1]);
            }
            expressionStack.Push(new PropertyListExpression(properties));
        }
Пример #2
0
 public virtual void VisitNewPropertyListInstruction(NewPropListIns newPropList) => Default(newPropList);