示例#1
0
        /// <summary>
        ///     Create an <see cref="LSLFunctionCallNode" /> by cloning from another.
        /// </summary>
        /// <param name="other">The other node to clone from.</param>
        /// <exception cref="ArgumentNullException"><paramref name="other" /> is <c>null</c>.</exception>
        private LSLFunctionCallNode(LSLFunctionCallNode other)
        {
            if (other == null)
            {
                throw new ArgumentNullException("other");
            }


            SourceRangesAvailable = other.SourceRangesAvailable;

            if (SourceRangesAvailable)
            {
                SourceRange             = other.SourceRange;
                SourceRangeOpenParenth  = other.SourceRangeOpenParenth;
                SourceRangeCloseParenth = other.SourceRangeCloseParenth;
                SourceRangeName         = other.SourceRangeName;
            }

            Name = other.Name;

            Definition = other.Definition;
            Signature  = new LSLFunctionSignature(other.Signature);

            _libraryFunction = other._libraryFunction;


            ArgumentExpressionList        = other.ArgumentExpressionList.Clone();
            ArgumentExpressionList.Parent = this;

            HasErrors = other.HasErrors;
        }
 internal void AddReference(LSLFunctionCallNode reference)
 {
     _references.Add(reference);
 }