コード例 #1
0
        public override object VisitEnsure(CryslGrammarParser.EnsureContext context)
        {
            EnsuresObject ensuresObject   = new EnsuresObject();
            List <string> ensuresList     = new List <string>();
            List <string> afterEventsList = new List <string>();
            bool          containsAfter   = false;

            if (context.AFTER() != null)
            {
                containsAfter = true;
            }
            foreach (var varName in context.VARNAME())
            {
                //Initialize the Function Name
                if (varName.Symbol.TokenIndex < context.OSB().Symbol.TokenIndex)
                {
                    ensuresObject.FuncName = varName.GetText();
                }

                //Compute the Ensures List
                else if (varName.Symbol.TokenIndex > context.OSB().Symbol.TokenIndex&& varName.Symbol.TokenIndex < context.CSB().Symbol.TokenIndex)
                {
                    ensuresList.Add(varName.GetText());
                }

                //Check for After Events
                else if (containsAfter)
                {
                    if (varName.Symbol.TokenIndex > context.AFTER().Symbol.TokenIndex)
                    {
                        afterEventsList.Add(varName.GetText());
                    }
                }
            }

            ensuresObject.EnsuresList     = ensuresList;
            ensuresObject.AfterEventsList = afterEventsList;

            return(ensuresObject);
        }
コード例 #2
0
 /// <summary>
 /// Visit a parse tree produced by <see cref="CryslGrammarParser.ensure"/>.
 /// <para>
 /// The default implementation returns the result of calling <see cref="AbstractParseTreeVisitor{Result}.VisitChildren(IRuleNode)"/>
 /// on <paramref name="context"/>.
 /// </para>
 /// </summary>
 /// <param name="context">The parse tree.</param>
 /// <return>The visitor result.</return>
 public virtual Result VisitEnsure([NotNull] CryslGrammarParser.EnsureContext context)
 {
     return(VisitChildren(context));
 }