Beispiel #1
0
        /// <summary>
        /// Define a single constant low-level input item based on the given primitive input macro parameter value access
        /// </summary>
        /// <param name="hlValueAccess"></param>
        /// <param name="assignedValue"></param>
        /// <returns></returns>
        public LlDataItem DefineConstantInputParameter(LanguageValueAccess hlValueAccess, ILanguageValuePrimitive assignedValue)
        {
            if (!(hlValueAccess.ExpressionType is TypePrimitive))
            {
                throw new InvalidOperationException("The given parameter is not of primitive type");
            }

            if (!(hlValueAccess.ExpressionType.IsSameType(assignedValue.ExpressionType)))
            {
                throw new InvalidOperationException("The given constant value must be of type " + hlValueAccess.ExpressionType.TypeSignature);
            }

            var llAssignedValue = assignedValue.ToScalarValue();

            var llDataItem = LlDataItem.CreateConstantInputParameter(GetNewDataItemName(), hlValueAccess, llAssignedValue);

            return(AttachDataItem(llDataItem));
        }