Exemplo n.º 1
0
 public FuncDefStmtNode(string Name, ParamsNode Parameters, string Type, SuiteNode Body)
 {
     this.Name       = Name;
     this.Parameters = Parameters;
     this.Type       = Type;
     this.Body       = Body;
 }
 /// <summary>
 /// Visits the test parameters block
 /// </summary>
 /// <param name="line">Line to add the tag for</param>
 /// <param name="context">ParamsNode to visit</param>
 /// <param name="lineNo">Current line numer</param>
 /// <param name="collectedSpans">Collection of spans found</param>
 private void Visit(ITextSnapshotLine line, ParamsNode context, int lineNo, List <TagSpan <Z80TestTokenTag> > collectedSpans)
 {
     if (context == null ||
         lineNo < context.Span.StartLine ||
         lineNo > context.Span.EndLine)
     {
         return;
     }
     Visit(line, context.ParamsKeywordSpan, lineNo, collectedSpans, Z80TestTokenType.Keyword);
     foreach (var id in context.Ids)
     {
         Visit(line, id.Span, lineNo, collectedSpans, Z80TestTokenType.Identifier);
     }
 }
Exemplo n.º 3
0
        public void Visit(ParamsNode node)
        {
            var notFirst = false;

            foreach (var param in node.Children)
            {
                if (notFirst)
                {
                    source.Append(", ");
                }
                notFirst = true;
                param.Visit(this);
            }
        }
Exemplo n.º 4
0
        /// <summary>
        /// Visit a parse tree produced by <see cref="Z80TestParser.testParams"/>.
        /// <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 VisitTestParams(Z80TestParser.TestParamsContext context)
        {
            if (IsInvalidContext(context))
            {
                return(null);
            }
            var node = new ParamsNode(context);

            foreach (var id in context.IDENTIFIER())
            {
                node.Ids.Add(new IdentifierNameNode(id));
            }
            return(node);
        }
Exemplo n.º 5
0
 /// <summary>
 /// Visits the test parameters block
 /// </summary>
 /// <param name="line">Line to add the tag for</param>
 /// <param name="context">ParamsNode to visit</param>
 /// <param name="lineNo">Current line number</param>
 /// <param name="collectedSpans">Collection of spans found</param>
 private void Visit(ITextSnapshotLine line, ParamsNode context, int lineNo,
                    List <ClassificationSpan> collectedSpans)
 {
     if (context == null ||
         lineNo < context.Span.StartLine ||
         lineNo > context.Span.EndLine)
     {
         return;
     }
     Visit(line, context.ParamsKeywordSpan, lineNo, collectedSpans, _keyword);
     foreach (var id in context.Ids)
     {
         Visit(line, id.Span, lineNo, collectedSpans, _keyword);
     }
 }
Exemplo n.º 6
0
        /// <summary>
        /// Visits the parameters of a test block
        /// </summary>
        /// <param name="plan">Test file plan</param>
        /// <param name="testBlock">TestBlockPlan to visit</param>
        /// <param name="paramsNode">Parameters syntax node</param>
        private void VisitTestParameters(TestFilePlan plan, TestBlockPlan testBlock, ParamsNode paramsNode)
        {
            if (paramsNode == null)
            {
                return;
            }
            foreach (var param in paramsNode.Ids)
            {
                if (testBlock.ContainsParameter(param.Id))
                {
                    ReportError(Errors.T0008, plan, param.Span, param.Id);
                    continue;
                }

                testBlock.AddParameter(param.Id);
            }
        }
Exemplo n.º 7
0
 public void Visit(ParamsNode node)
 {
     visitor.OnVisit((n, v) => Result = IsSameChildren(n, node));
     reference.Visit(visitor);
 }
Exemplo n.º 8
0
 public CtorDefStmtNode(ParamsNode Parameters, SuiteNode Body)
 {
     this.Parameters = Parameters;
     this.Body       = Body;
 }