Exemple #1
0
        private SwitchAst(AstExpression switchValue, Type returnType) : base(returnType)
        {
            if (switchValue is null)
            {
                throw new ArgumentNullException(nameof(switchValue));
            }

            switchValueType = switchValue.RuntimeType;

            if (switchValueType == typeof(object))
            {
                switchValueType = typeof(Type);

                switchValueKind = MySwitchValueKind.RuntimeType;
            }
            else if (IsArithmetic(switchValueType))
            {
                switchValueKind = MySwitchValueKind.Arithmetic;
            }
            else
            {
                switchValueKind = MySwitchValueKind.Equality;
            }

            switchCases = new List <IPrivateCaseHandler>();

            this.switchValue = switchValue;
        }
Exemple #2
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="switchAst"></param>
 protected SwitchAst(SwitchAst switchAst) : base(switchAst.RuntimeType)
 {
     defaultAst      = switchAst.defaultAst;
     switchValue     = switchAst.switchValue;
     switchCases     = switchAst.switchCases;
     switchValueType = switchAst.switchValueType;
     switchValueKind = switchAst.switchValueKind;
 }