Пример #1
0
        private RdlSyntaxNode ComposeRepeat()
        {
            RepeatEveryNode node   = null;
            var             repeat = Last;

            switch (Current.TokenType)
            {
            case StatementType.Every:
                var every = Current;
                Consume(StatementType.Every);
                if (Current.TokenType == StatementType.Numeric)
                {
                    var numeric = Current;
                    Consume(StatementType.Numeric);
                    node = new NumericConsequentRepeatEveryNode(
                        new Token("repeat every", StatementType.Repeat,
                                  new TQL.Core.Tokens.TextSpan(repeat.Span.Start, Current.Span.End - repeat.Span.Start)),
                        numeric as NumericToken,
                        Current as WordToken);
                }
                else
                {
                    node = new RepeatEveryNode(Last, Current);
                }
                Consume(Current.TokenType);
                break;

            default:
                node = new RepeatEveryNode(repeat, Current);
                break;
            }
            return(node);
        }
Пример #2
0
 /// <summary>
 ///     Visit NumericConsequentRepeatEvery node in DFS manner.
 /// </summary>
 /// <param name="node">NumericConsequentRepeatEvery node that will be visited.</param>
 public void Visit(NumericConsequentRepeatEveryNode node)
 {
     foreach (var item in node.Descendants)
     {
         item.Accept(this);
     }
     node.Accept(_visitor);
 }
Пример #3
0
 public override void Visit(NumericConsequentRepeatEveryNode node)
 {
 }
Пример #4
0
 public override void Visit(NumericConsequentRepeatEveryNode node)
 => ProduceDebuggerInstructions(node, n => base.Visit(n));
Пример #5
0
 /// <summary>
 ///     Visit NumericConsequentRepeatEvery node.
 /// </summary>
 /// <param name="node">NumericConsequentRepeatEvery node of AST</param>
 public abstract void Visit(NumericConsequentRepeatEveryNode node);
Пример #6
0
 /// <summary>
 ///     Performs "NumericConsequentRepeatEvery" specific operations.
 /// </summary>
 /// <param name="node">The NumericConsequentRepeatEvery node.</param>
 public virtual void Visit(NumericConsequentRepeatEveryNode node)
 {
     Visit(node as RepeatEveryNode);
 }