コード例 #1
0
ファイル: Program.cs プロジェクト: rix0rrr/jsii-test-drive
 public void Visit(IConstruct construct)
 {
     if (construct.GetType().Name.CompareTo("CfnFunction") == 0)
     {
         ((CfnResource)construct).AddPropertyOverride("Runtime", "nodejs12.x");
     }
 }
コード例 #2
0
        public static JTokenType ConvertInterpreterArrayTypeIntoJTokenType(IConstruct l)
        {
            string expectedValueType = l.GetType().Name;

            if (expectedValueType == "Variable")
            {
                Variable v = l as Variable;
                return(ConvertInterpreterArrayTypeIntoJTokenType(v.Value));
            }
            else if (expectedValueType == "Array")
            {
                var a = (l as HiSystems.Interpreter.Array).ToList();
                if (a.Count > 0)
                {
                    return(ConvertInterpreterTypeIntoJTokenType(a[0]));
                }
                else
                {
                    throw new System.ArgumentException($"ConvertInterpreterArrayTypeIntoJTokenType() cannot infer the type of the array because the array is empty, l:{l.ToString()} ");
                }
            }
            else
            {
                throw new System.ArgumentException($"ConvertInterpreterArrayTypeIntoJTokenType() requires an array as first parameter, received:${l.ToString()}");
            }
        }
コード例 #3
0
        internal override Literal Execute(IConstruct argument1, IConstruct argument2)
        {
            var argument1Transformed = base.GetTransformedConstruct <Literal>(argument1);
            var argument2Transformed = base.GetTransformedConstruct <Literal>(argument2);

            if (argument1Transformed is Number && argument2Transformed is Number)
            {
                return(((Number)argument1Transformed) == ((Number)argument2Transformed));
            }
            else if (argument1Transformed is Boolean && argument2Transformed is Boolean)
            {
                return(((Boolean)argument1Transformed) == ((Boolean)argument2Transformed));
            }
            else if (argument1Transformed is DateTime && argument2Transformed is DateTime)
            {
                return(((DateTime)argument1Transformed) == ((DateTime)argument2Transformed));
            }
            else if (argument1Transformed is Text && argument2Transformed is Text)
            {
                return(((Text)argument1Transformed) == ((Text)argument2Transformed));
            }
            else if (argument1Transformed is Text && argument2Transformed is Number)
            {
                return(((Text)argument1Transformed) == ((Number)argument2Transformed).ToString());
            }
            else if (argument1Transformed is Number && argument2Transformed is Text)
            {
                return(((Number)argument1Transformed).ToString() == ((Text)argument2Transformed));
            }
            else
            {
                return(new Error(String.Format("Equality operator requires arguments of type Number, DateTime or Boolean. Argument types are {0} {1}.", argument1Transformed.GetType().Name, argument2Transformed.GetType().Name)));
            }
        }
コード例 #4
0
ファイル: Format.cs プロジェクト: brianhassel/Interpreter
        public override Literal Execute(IConstruct[] arguments)
        {
            base.EnsureArgumentCountIsBetween(arguments, 1, 2);

            var value = base.GetTransformedArgument<Literal>(arguments, argumentIndex: 0);

            string format;

            if (arguments.Length > 1)
                format = base.GetTransformedArgument<Text>(arguments, argumentIndex: 1);
            else
                format = null;

            if (value is Number)
            {
                if (format == null)
                    return (Text)((Number)value).ToString();
                else
                    return (Text)((Number)value).ToString(format);
            }
            else if (value is HiSystems.Interpreter.DateTime)
            {
                if (format == null)
                    return (Text)((HiSystems.Interpreter.DateTime)value).ToString();
                else
                    return (Text)((HiSystems.Interpreter.DateTime)value).ToString(format);
            }
            else
                throw new NotImplementedException(value.GetType().Name);
        }
コード例 #5
0
ファイル: Variable.cs プロジェクト: brianhassel/Interpreter
        /// <summary>
        /// </summary>
        public Variable(string name, IConstruct value)
        {
            if (String.IsNullOrEmpty(name))
                throw new ArgumentNullException("Name");

            this.name = name;
            this.construct = value;
        }
コード例 #6
0
        public FunctionOperation(Function function, IConstruct[] arguments)
        {
            if (function == null)
                throw new ArgumentNullException();

            this.function = function;
            this.arguments = arguments;
        }
コード例 #7
0
            public override Literal Execute(IConstruct[] arguments)
            {
                base.EnsureArgumentCountIs(arguments, 1);

                decimal inputValue = base.GetTransformedArgument<Number>(arguments, argumentIndex: 0);

                return new Number(-inputValue);
            }
コード例 #8
0
 //static protected internal bool IsNull(IConstructable am)
 //{
 //    if (am == null) return true;
 //    return false;
 //}
 public override bool IsNull(IConstruct am)
 {
     if (am == null)
     {
         return(true);
     }
     return(false);
 }
コード例 #9
0
 private static void ApplyDefaultTags(IConstruct construct, string environment, string project)
 {
     Tags.Of(construct).Add("Stack-Author", "Eric Wilson");
     Tags.Of(construct).Add("Stack-Version", "0.0.1-beta");
     Tags.Of(construct).Add("Stack-Tool", "GeekCafe-AWS-CDK");
     Tags.Of(construct).Add("Stack-Environment", environment);
     Tags.Of(construct).Add("Stack-Project", project);
 }
コード例 #10
0
 public static void Tag(IConstruct construct, IConfigSettings config, List <Configuration.Tag> tags)
 {
     foreach (var tag in tags)
     {
         var value = (config != null) ? config.Parse(tag.Value) : tag.Value;
         Amazon.CDK.Tags.Of(construct).Add($"{tag.Name}", $"{value}");
     }
 }
コード例 #11
0
            public ConstructToken(IConstruct value)
            {
                if (value == null)
                {
                    throw new ArgumentNullException();
                }

                this.value = value;
            }
コード例 #12
0
        /// <summary>
        /// Throws an exception if the argument passed is not the expected type.
        /// </summary>
        private T CastConstructToType <T>(IConstruct construct)
        {
            if (!(construct is T))
            {
                throw new InvalidOperationException(String.Format("{0} construct is not of type {1} and cannot be used with the {2} operator", construct.ToString(), typeof(T).Name, this.Token));
            }

            return((T)construct);
        }
コード例 #13
0
        private T CastConstructToType <T>(IConstruct construct)
        {
            if (!(construct is T))
            {
                return(default(T));
            }

            return((T)construct);
        }
コード例 #14
0
 /// <summary>
 /// Parses the expression if it has not yet been parsed.
 /// </summary>
 private void EnsureExpressionParsed()
 {
     if (this.construct == null)
     {
         var variablesList = new List <Variable>();
         this.construct = this.parseToConstruct(base.Source, variablesList);
         this.variables = TranslateVariablesToDictionary(variablesList);
     }
 }
コード例 #15
0
ファイル: Function.cs プロジェクト: zmidl/Interpreter
        /// <summary>
        /// Throws an exception if the argument passed, via the argument index is not the expected type.
        /// ArgumentIndex is only used for the error message and should match the index of the argument that is passed.
        /// </summary>
        private T CastArgumentToType <T>(IConstruct argument, int argumentIndex)
        {
            if (!(argument is T))
            {
                throw new InvalidOperationException(String.Format("Argument {1}: {0} is not of type {2} and cannot be used with the {3} function", argument.ToString(), argumentIndex + 1, typeof(T).Name, this.Name));
            }

            return((T)argument);
        }
コード例 #16
0
        internal ExpressionParsed(string expression, IConstruct value, List<Variable> variables)
            : base(expression)
        {
            if (value == null)
                throw new ArgumentNullException();

            this.construct = value;
            this.variables = TranslateVariablesToDictionary(variables);
        }
コード例 #17
0
        internal override Literal Execute(IConstruct argument1, IConstruct argument2)
        {
            var argument2Value = base.GetTransformedConstruct<Number>(argument2);

            if (argument2Value == 0)
                throw new DivideByZeroException(argument2.ToString());

            return base.GetTransformedConstruct<Number>(argument1) / argument2Value;
        }
コード例 #18
0
        /// <summary>
        /// </summary>
        public Variable(string name, IConstruct value)
        {
            if (String.IsNullOrEmpty(name))
            {
                throw new ArgumentNullException("Name");
            }

            this.name      = name;
            this.construct = value;
        }
コード例 #19
0
        internal ExpressionParsed(string expression, IConstruct value, List <Variable> variables)
            : base(expression)
        {
            if (value == null)
            {
                throw new ArgumentNullException();
            }

            this.construct = value;
            this.variables = TranslateVariablesToDictionary(variables);
        }
コード例 #20
0
ファイル: If.cs プロジェクト: brianhassel/Interpreter
        public override Literal Execute(IConstruct[] arguments)
        {
            base.EnsureArgumentCountIs(arguments, 3);

            var condition = base.GetTransformedArgument<Boolean>(arguments, argumentIndex: 0);

            if (condition)
                return base.GetTransformedArgument<Literal>(arguments, argumentIndex: 1);
            else
                return base.GetTransformedArgument<Literal>(arguments, argumentIndex: 2);
        }
コード例 #21
0
        internal override Literal Execute(IConstruct argument1, IConstruct argument2)
        {
            var argument2Value = base.GetTransformedConstruct <Number>(argument2);

            if (argument2Value == 0)
            {
                throw new DivideByZeroException(argument2.ToString());
            }

            return(base.GetTransformedConstruct <Number>(argument1) / argument2Value);
        }
コード例 #22
0
ファイル: Operation.cs プロジェクト: marc365/Interpreter
        /// <summary>
        /// Indicates the left hand side value, and right hand side values
        /// and the operation to be applied to the left hand side and right
        /// hand side values.
        /// </summary>
        public Operation(IConstruct leftValue, Operator operation, IConstruct rightValue)
        {
            if (leftValue == null || rightValue == null || operation == null)
            {
                throw new ArgumentNullException();
            }

            this.leftValue  = leftValue;
            this.@operator  = operation;
            this.rightValue = rightValue;
        }
コード例 #23
0
        internal override Literal Execute(IConstruct argument1, IConstruct argument2)
        {
            var argument2Value = base.GetTransformedConstruct <Number>(argument2);

            if (argument2Value == 0)
            {
                return(new Error("Divide by zero"));
            }

            return(base.GetTransformedConstruct <Number>(argument1) / argument2Value);
        }
コード例 #24
0
        public void AddTag(IConstruct scope, string name, string value)
        {
            var tags = new List <Configuration.Tag>
            {
                new Configuration.Tag()
                {
                    Name = name, Value = value
                }
            };

            Utilities.Tagging.Tag(scope, _config, tags);
        }
コード例 #25
0
        internal override Literal Execute(IConstruct argument1, IConstruct argument2)
        {
            var argument1Transformed = base.GetTransformedConstruct<Literal>(argument1);
            var argument2Transformed = base.GetTransformedConstruct<Literal>(argument2);

            if (argument1Transformed is Number && argument2Transformed is Number)
                return ((Number)argument1Transformed) <= ((Number)argument2Transformed);
            else if (argument1Transformed is DateTime && argument2Transformed is DateTime)
                return ((DateTime)argument1Transformed) <= ((DateTime)argument2Transformed);
            else
                throw new InvalidOperationException(String.Format("Less than or equal to operator requires arguments of type Number or DateTime. Argument types are {0} {1}.", argument1Transformed.GetType().Name, argument2Transformed.GetType().Name));
        }
コード例 #26
0
        public VirtualWindowShare(String id, String windowName, String applicationName, IConstruct _iIConstruct)
        {
            _mIConstruct = _iIConstruct;

            IntPtr nId              = MarshalPtrToUtf8.GetInstance().MarshalManagedToNative(id ?? string.Empty);
            IntPtr nWindowName      = MarshalPtrToUtf8.GetInstance().MarshalManagedToNative(windowName ?? string.Empty);
            IntPtr nApplicationName = MarshalPtrToUtf8.GetInstance().MarshalManagedToNative(applicationName ?? string.Empty);

            objPtr = VidyoVirtualWindowShareConstructNative(nId, nWindowName, nApplicationName, _mStartCallback, _mReconfigureCallback, _mStopCallback);
            Marshal.FreeHGlobal(nApplicationName);
            Marshal.FreeHGlobal(nWindowName);
            Marshal.FreeHGlobal(nId);
            VidyoVirtualWindowShareSetUserDataNative(objPtr, GCHandle.ToIntPtr(GCHandle.Alloc(this, GCHandleType.Weak)));
        }
コード例 #27
0
        public static JTokenType ConvertInterpreterTypeIntoJTokenType(IConstruct l)
        {
            string expectedValueType = l.GetType().Name;

            if (expectedValueType == "Variable")
            {
                Variable v = l as Variable;
                return(ConvertInterpreterTypeIntoJTokenType(v.Value));
            }
            if (expectedValueType == "Operation")
            {
                var r = l.Transform();
                return(ConvertInterpreterTypeIntoJTokenType(r));
            }
            if (expectedValueType == "FunctionOperation")
            {
                return(ConvertInterpreterTypeIntoJTokenType(l.Transform()));
            }
            if (expectedValueType == "Array")
            {
                return(JTokenType.Array);
            }
            if (expectedValueType == "Number")
            {
                return(JTokenType.Float);
            }
            if (expectedValueType == "Text")
            {
                return(JTokenType.String);
            }
            if (expectedValueType == "DateTime")
            {
                return(JTokenType.Date);
            }
            if (expectedValueType == "Boolean")
            {
                return(JTokenType.Boolean);
            }
            if (expectedValueType == "Null")
            {
                return(JTokenType.Null);
            }
            if (expectedValueType == "Array")
            {
                return(JTokenType.Array);
            }
            return(JTokenType.Undefined);
        }
コード例 #28
0
        internal override Literal Execute(IConstruct argument1, IConstruct argument2)
        {
            var argument2Transformed = base.GetTransformedConstruct <Literal>(argument2);

            var existingVariable = Program.Variables.SingleOrDefault(x => x.Name == argument1.ToString().Split(':')[0]);

            if (existingVariable == null)
            {
                Program.Variables.Add(new Variable(argument1.ToString().Split(':')[0], argument2Transformed));
            }
            else
            {
                existingVariable.Construct = argument2Transformed;
            }

            return(base.Empty());
        }
コード例 #29
0
        internal override Literal Execute(IConstruct argument1, IConstruct argument2)
        {
            var argument1Transformed = base.GetTransformedConstruct <Literal>(argument1);
            var argument2Transformed = base.GetTransformedConstruct <Literal>(argument2);

            if (argument1Transformed is Number && argument2Transformed is Number)
            {
                return(((Number)argument1Transformed) >= ((Number)argument2Transformed));
            }
            else if (argument1Transformed is DateTime && argument2Transformed is DateTime)
            {
                return(((DateTime)argument1Transformed) >= ((DateTime)argument2Transformed));
            }
            else
            {
                return(new Error(String.Format("Greater than or equal to operator requires arguments of type Number or DateTime. Argument types are {0} {1}.", argument1Transformed.GetType().Name, argument2Transformed.GetType().Name)));
            }
        }
コード例 #30
0
        internal override Literal Execute(IConstruct argument1, IConstruct argument2)
        {
            var argument1Transformed = base.GetTransformedConstruct <Literal>(argument1);
            var argument2Transformed = base.GetTransformedConstruct <Literal>(argument2);

            if (argument1Transformed is Number && argument2Transformed is Number)
            {
                return(((Number)argument1Transformed) < ((Number)argument2Transformed));
            }
            else if (argument1Transformed is DateTime && argument2Transformed is DateTime)
            {
                return(((DateTime)argument1Transformed) < ((DateTime)argument2Transformed));
            }
            else
            {
                throw new InvalidOperationException(String.Format("Less than operator requires arguments of type Number or DateTime. Argument types are {0} {1}.", argument1Transformed.GetType().Name, argument2Transformed.GetType().Name));
            }
        }
コード例 #31
0
        internal override Literal Execute(IConstruct argument1, IConstruct argument2)
        {
            var argument1Transformed = base.GetTransformedConstruct <Literal>(argument1);
            var argument2Transformed = base.GetTransformedConstruct <Literal>(argument2);

            /* fred null support */
            if (argument1Transformed is Null && argument2Transformed is Null)
            {
                return(new Boolean(true));
            }

            if (argument1Transformed is Null && (!(argument2Transformed is Null)))
            {
                return(new Boolean(false));
            }

            if ((!(argument1Transformed is Null)) && argument2Transformed is Null)
            {
                return(new Boolean(false));
            }

            if (argument1Transformed is Number && argument2Transformed is Number)
            {
                return(((Number)argument1Transformed) == ((Number)argument2Transformed));
            }
            else if (argument1Transformed is Boolean && argument2Transformed is Boolean)
            {
                return(((Boolean)argument1Transformed) == ((Boolean)argument2Transformed));
            }
            else if (argument1Transformed is DateTime && argument2Transformed is DateTime)
            {
                return(((DateTime)argument1Transformed) == ((DateTime)argument2Transformed));
            }
            else if (argument1Transformed is Text && argument2Transformed is Text)
            {
                return(((Text)argument1Transformed) == ((Text)argument2Transformed));
            }
            else
            {
                throw new InvalidOperationException(String.Format("Equality operator requires arguments of type Number, DateTime or Boolean. Argument types are {0} {1}.", argument1Transformed.GetType().Name, argument2Transformed.GetType().Name));
            }
        }
コード例 #32
0
ファイル: Today.cs プロジェクト: brianhassel/Interpreter
        public override Literal Execute(IConstruct[] arguments)
        {
            base.EnsureArgumentCountIs(arguments, 0);

            return new DateTime(System.DateTime.Today);
        }
コード例 #33
0
ファイル: MibModule.cs プロジェクト: stubarr/sharpsnmplib-1
 public void Add(IConstruct construct)
 {
     _constructs.Add(construct);
 }
コード例 #34
0
            public override Literal Execute(IConstruct[] arguments)
            {
                base.EnsureArgumentCountIs(arguments, 2);

                var fieldIndex = (decimal)base.GetTransformedArgument<Number>(arguments, 0);
                var dataSet = base.GetTransformedArgument<DataSet>(arguments, 1);

                return new Array(dataSet.Select((int)fieldIndex));
            }
コード例 #35
0
ファイル: Engine.cs プロジェクト: brianhassel/Interpreter
            public ConstructToken(IConstruct value)
            {
                if (value == null)
                    throw new ArgumentNullException();

                this.value = value;
            }
コード例 #36
0
 internal override Literal Execute(IConstruct argument1, IConstruct argument2)
 {
     return(!(Boolean)equalToOperator.Execute(argument1, argument2));
 }
コード例 #37
0
ファイル: Len.cs プロジェクト: brianhassel/Interpreter
        public override Literal Execute(IConstruct[] arguments)
        {
            base.EnsureArgumentCountIs(arguments, 1);

            return new Number(base.GetTransformedArgument<Text>(arguments, argumentIndex:0).Length);
        }
コード例 #38
0
ファイル: Average.cs プロジェクト: brianhassel/Interpreter
        public override Literal Execute(IConstruct[] arguments)
        {
            base.EnsureArgumentCountIs(arguments, 1);

            return new Number(base.GetTransformedArgumentDecimalArray(arguments, argumentIndex:0).Average());
        }
コード例 #39
0
 /// <summary>
 /// Add custom Tags to the CFN resource
 /// </summary>
 /// <param name="key"></param>
 /// <param name="value"></param>
 /// <param name="result"></param>
 public void AddCustomTag(string key, string value, IConstruct result)
 {
     Tags.Of(result).Add(key, value);
 }
コード例 #40
0
 public void LogTag(string name, IConstruct result)
 {
     Tags.Of(result).Add("Name", name.ToLowerInvariant());
     Console.WriteLine($"Entity name: {name}");
 }
コード例 #41
0
        public override Literal Execute(IConstruct[] arguments)
        {
            base.EnsureArgumentCountIsAtLeast(arguments, 1);

            return new Array(arguments.Select(argument => argument.Transform()).ToArray());
        }
コード例 #42
0
 internal override Literal Execute(IConstruct argument1, IConstruct argument2)
 {
     return !(Boolean)equalToOperator.Execute(argument1, argument2);
 }
コード例 #43
0
            public override Literal Execute(IConstruct[] arguments)
            {
                base.EnsureArgumentCountIs(arguments, 1);

                var tableName = base.GetTransformedArgument<Text>(arguments, 0);

                return new DataSet(tableName);
            }
コード例 #44
0
ファイル: OrOperator.cs プロジェクト: zmidl/Interpreter
 /// <summary>
 /// Non-zero arguments are considered true.
 /// </summary>
 internal override Literal Execute(IConstruct argument1, IConstruct argument2)
 {
     return(base.GetTransformedConstruct <Boolean>(argument1) || base.GetTransformedConstruct <Boolean>(argument2));
 }
コード例 #45
0
 public override bool IsNull(IConstruct am)
 {
     throw new NotImplementedException();
 }
コード例 #46
0
 internal override Literal Execute(IConstruct argument1, IConstruct argument2)
 {
     return base.GetTransformedConstruct<Number>(argument1) * base.GetTransformedConstruct<Number>(argument2);
 }
コード例 #47
0
 internal override Literal Execute(IConstruct argument1, IConstruct argument2)
 {
     return(base.GetTransformedConstruct <Number>(argument1) * base.GetTransformedConstruct <Number>(argument2));
 }
コード例 #48
0
ファイル: ConstructVM.cs プロジェクト: Easy-DDI-Organizer/EDO
 public ConstructVM(IConstruct construct)
 {
     this.construct = construct;
 }
コード例 #49
0
 /// <summary>
 /// Parses the expression if it has not yet been parsed.
 /// </summary>
 private void EnsureExpressionParsed()
 {
     if (this.construct == null)
     {
         var variablesList = new List<Variable>();
         this.construct = this.parseToConstruct(base.Source, variablesList);
         this.variables = TranslateVariablesToDictionary(variablesList);
     }
 }
コード例 #50
0
ファイル: OrOperator.cs プロジェクト: brianhassel/Interpreter
 /// <summary>
 /// Non-zero arguments are considered true.
 /// </summary>
 internal override Literal Execute(IConstruct argument1, IConstruct argument2)
 {
     return base.GetTransformedConstruct<Boolean>(argument1) || base.GetTransformedConstruct<Boolean>(argument2);
 }
コード例 #51
0
 public void Add(IConstruct construct)
 {
     _constructs.Add(construct);
 }