public override object VisitStringArguments(CryslGrammarParser.StringArgumentsContext context) { Constraints finalConstraints = new Constraints(); if (context.IMPLIES() == null) { Constraints Constraints = BuildStringConstraintsObject(context); finalConstraints = Constraints; } if (context.IMPLIES() != null) { Constraints primaryConstraints = BuildStringConstraintsObject(context); Constraints additionalConstraints = (Constraints)Visit(context.constraint()); AdditionalConstraints addConstraints = new AdditionalConstraints(); addConstraints.Object_Varname_Additional_Constraint = additionalConstraints.Object_Varname; addConstraints.Additional_Constraints_List = additionalConstraints.Constraints_List; primaryConstraints.Additional_constraints = addConstraints; finalConstraints = primaryConstraints; } return(finalConstraints); }
private Constraints BuildStringConstraintsObject(CryslGrammarParser.StringArgumentsContext context) { Constraints constraints = new Constraints(); List <string> constraintsList = new List <string>(); foreach (var varName in context.VARNAME()) { //If Primary Constraint if (varName.Symbol.TokenIndex < context.IN().Symbol.TokenIndex) { constraints.Object_Varname = varName.GetText(); } //Primary Constraint List else if (varName.Symbol.TokenIndex > context.OFB().Symbol.TokenIndex&& varName.Symbol.TokenIndex < context.CFB().Symbol.TokenIndex) { constraintsList.Add(varName.GetText()); } } constraints.Constraints_List = constraintsList; return(constraints); }
/// <summary> /// Visit a parse tree produced by the <c>StringArguments</c> /// labeled alternative in <see cref="CryslGrammarParser.constraint"/>. /// <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 VisitStringArguments([NotNull] CryslGrammarParser.StringArgumentsContext context) { return(VisitChildren(context)); }