public override object VisitEnsureslist(CryslGrammarParser.EnsureslistContext context) { List <EnsuresObject> ensuresList = new List <EnsuresObject>(); foreach (var ensure in context.ensure()) { EnsuresObject ensuresObject = (EnsuresObject)Visit(ensure); ensuresList.Add(ensuresObject); } return(ensuresList); }
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); }