public override TestFramework VisitEdge_stmt([NotNull] DOTParser.Edge_stmtContext context) { TestUnitInfo info = this.Context.TestUnits.Peek(); if (info != null) { var lhs = context.node_id(); var rhs = lhs; var edgeRhs = context.edgeRHS(); // NOTE Boost Test DOT output only define one edge per edge statement if (edgeRhs.edgeop().Length == 1) { var edgeop = edgeRhs.edgeop()[0]; // Ensure that a directed edge '->' token is used if (edgeop.GetToken(DOTLexer.T__7, 0) != null) { rhs = edgeRhs.node_id()[0]; } } if ((lhs != rhs) && (rhs != null)) { // Identify whether this edge is a constraining edge (i.e. an actual graph edge) or a non-constraining edge bool constraint = !GetKeyValuePairs(context.attr_list()).Any((attribute) => (attribute.Key == "constraint") && (attribute.Value == "false")); // This implies a test dependency if ((lhs.GetText() == info.id) && !constraint) { info.Dependencies.Add(rhs.GetText()); } // This implies a test unit relationship else if (rhs.GetText() == info.id) { info.Parents.Add(lhs.GetText()); } } } return(base.VisitEdge_stmt(context)); }
public override void ExitEdge_stmt(DOTParser.Edge_stmtContext context) { OnRuleLeave(Rule.EdgeStmt, context.GetText()); base.ExitEdge_stmt(context); }
/// <summary> /// Exit a parse tree produced by <see cref="DOTParser.edge_stmt"/>. /// <para>The default implementation does nothing.</para> /// </summary> /// <param name="context">The parse tree.</param> public virtual void ExitEdge_stmt([NotNull] DOTParser.Edge_stmtContext context) { }
public override void EnterEdge_stmt(DOTParser.Edge_stmtContext context) { OnRuleEnter(Rule.EdgeStmt, context.GetText()); base.EnterEdge_stmt(context); }
/// <summary> /// Visit a parse tree produced by <see cref="DOTParser.edge_stmt"/>. /// <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 VisitEdge_stmt([NotNull] DOTParser.Edge_stmtContext context) { return(VisitChildren(context)); }