/// <summary> /// Visit a parse tree produced by <see cref="Z80TestParser.testCase"/>. /// <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 override object VisitTestCase(Z80TestParser.TestCaseContext context) { if (IsInvalidContext(context)) { return(null); } var node = new TestCaseNode(context); foreach (var expr in context.expr()) { node.Expressions.Add((ExpressionNode)VisitExpr(expr)); } foreach (var id in context.IDENTIFIER()) { node.PortMocks.Add(new IdentifierNameNode(id)); } return(node); }
/// <summary> /// Creates a clause with the span defined by the passed context /// </summary> /// <param name="context">Parser rule context</param> public TestCaseNode(Z80TestParser.TestCaseContext context) : base(context) { CaseKeywordSpan = new TextSpan(context.CASE()); var sb = new StringBuilder(400); for (var i = 0; i < context.ChildCount; i++) { var token = context.GetChild(i).GetText(); if (i > 0 && token != "," && token != ";") { sb.Append(" "); } sb.Append(token); } TestCaseText = sb.ToString(); if (context.PORTMOCK() != null) { PortMockKeywordSpan = new TextSpan(context.PORTMOCK()); } Expressions = new List <ExpressionNode>(); PortMocks = new List <IdentifierNameNode>(); }
/// <summary> /// Exit a parse tree produced by <see cref="Z80TestParser.testCase"/>. /// <para>The default implementation does nothing.</para> /// </summary> /// <param name="context">The parse tree.</param> public virtual void ExitTestCase([NotNull] Z80TestParser.TestCaseContext context) { }
/// <summary> /// Visit a parse tree produced by <see cref="Z80TestParser.testCase"/>. /// <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 VisitTestCase([NotNull] Z80TestParser.TestCaseContext context) { return(VisitChildren(context)); }