/// <summary>
 /// Initializes a new instance of the <see cref="UnaryExpressionTranslationUnit"/> class.
 /// </summary>
 /// <param name="nestingLevel"></param>
 protected UnaryExpressionTranslationUnit(int nestingLevel)
     : base(nestingLevel)
 {
     this.operand = null;
     this.operatorToken = OperatorToken.Undefined;
     this.unaryPosition = UnaryPosition.Postfix;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="UnaryExpressionTranslationUnit"/> class.
 /// </summary>
 /// <param name="nestingLevel"></param>
 protected UnaryExpressionTranslationUnit(int nestingLevel)
     : base(nestingLevel)
 {
     this.operand       = null;
     this.operatorToken = OperatorToken.Undefined;
     this.unaryPosition = UnaryPosition.Postfix;
 }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="body"></param>
        /// <param name="operatorToken"></param>
        /// <param name="unaryPosition"></param>
        /// <returns></returns>
        public static UnaryExpressionTranslationUnit Create(ITranslationUnit body, OperatorToken operatorToken, UnaryPosition unaryPosition)
        {
            if (body == null)
            {
                throw new ArgumentNullException(nameof(body));
            }

            return new UnaryExpressionTranslationUnit(AutomaticNestingLevel)
            {
                Operand = body,
                operatorToken = operatorToken,
                unaryPosition = unaryPosition
            };
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="body"></param>
        /// <param name="operatorToken"></param>
        /// <param name="unaryPosition"></param>
        /// <returns></returns>
        public static UnaryExpressionTranslationUnit Create(ITranslationUnit body, OperatorToken operatorToken, UnaryPosition unaryPosition)
        {
            if (body == null)
            {
                throw new ArgumentNullException(nameof(body));
            }

            return(new UnaryExpressionTranslationUnit(AutomaticNestingLevel)
            {
                Operand = body,
                operatorToken = operatorToken,
                unaryPosition = unaryPosition
            });
        }