예제 #1
0
        /// <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);
        }
예제 #2
0
        /// <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)
 {
 }
예제 #4
0
 /// <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));
 }