/// <summary>
        /// Compares two expressions.
        /// </summary>
        /// <param name="other">The other expression.</param>
        protected bool IsExpressionEqual(IAssertionTagExpression other)
        {
            Debug.Assert(other != null);

            bool Result = true;

            Result &= TagIdentifier.Text == other.TagIdentifier.Text;

            return(Result);
        }
        /// <summary>
        /// Finds the matching nodes of a <see cref="IAssertionTagExpression"/>.
        /// </summary>
        /// <param name="node">The agent expression to check.</param>
        /// <param name="errorList">The list of errors found.</param>
        /// <param name="resolvedResult">The expression result types upon return.</param>
        /// <param name="resolvedException">Exceptions the expression can throw upon return.</param>
        /// <param name="constantSourceList">Sources of the constant expression upon return, if any.</param>
        /// <param name="expressionConstant">The constant value upon return, if any.</param>
        public static bool ResolveCompilerReferences(IAssertionTagExpression node, IErrorList errorList, out IResultType resolvedResult, out IResultException resolvedException, out ISealableList <IExpression> constantSourceList, out ILanguageConstant expressionConstant)
        {
            IExpression ResolvedBooleanExpression = node.ResolvedBooleanExpression.Item;

            resolvedResult = ResolvedBooleanExpression.ResolvedResult.Item;
            ResultException.Propagate(ResolvedBooleanExpression.ResolvedException, out resolvedException);
            expressionConstant = NeutralLanguageConstant.NotConstant;

            constantSourceList = new SealableList <IExpression>()
            {
                ResolvedBooleanExpression
            };

#if COVERAGE
            Debug.Assert(!node.IsComplex);
#endif

            return(true);
        }
Esempio n. 3
0
 /// <summary>
 /// Initializes a new instance of the <see cref="CSharpAssertionTagExpression"/> class.
 /// </summary>
 /// <param name="context">The creation context.</param>
 /// <param name="source">The Easly expression from which the C# expression is created.</param>
 protected CSharpAssertionTagExpression(ICSharpContext context, IAssertionTagExpression source)
     : base(context, source)
 {
     BooleanExpression = Create(context, source.ResolvedBooleanExpression.Item);
 }
Esempio n. 4
0
 /// <summary>
 /// Creates a new C# expression.
 /// </summary>
 /// <param name="context">The creation context.</param>
 /// <param name="source">The Easly expression from which the C# expression is created.</param>
 public static ICSharpAssertionTagExpression Create(ICSharpContext context, IAssertionTagExpression source)
 {
     return(new CSharpAssertionTagExpression(context, source));
 }