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); }
/// <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)); }