/// <summary> /// Performs "RepeatEvery" specific operations. /// </summary> /// <param name="node">The RepeatEvery node.</param> public virtual void Visit(RepeatEveryNode node) { switch (node.DatePart) { case PartOfDate.Seconds: _generateNext = datetime => datetime.AddSeconds(node.Value); break; case PartOfDate.Minutes: _generateNext = datetime => datetime.AddMinutes(node.Value); break; case PartOfDate.Hours: _generateNext = datetime => datetime.AddHours(node.Value); break; case PartOfDate.DaysOfMonth: _generateNext = datetime => datetime.AddDays(node.Value); break; case PartOfDate.Months: _generateNext = datetime => datetime.AddMonths(node.Value); break; case PartOfDate.Years: _generateNext = datetime => datetime.AddYears(node.Value); break; } _partOfDate = node.DatePart; }
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); }
public override void Visit(RepeatEveryNode node) { try { if (node.DatePart == PartOfDate.Unknown) { ReportUnknownRepeatEveryDatePartFraction(node); } } catch (Exception e) { _criticalErrors.Add(e); } }
/// <summary> /// Visit RepeatEvery node. /// </summary> /// <param name="node">RepeatEvery node that will be visited.</param> public void Visit(RepeatEveryNode node) { node.Accept(_visitor); }
private void ReportUnknownRepeatEveryDatePartFraction(RepeatEveryNode node) { AddSyntaxError(node.FullSpan, string.Format(AnalysisMessage.RepeateEveryContainsUnknownDatePartFraction, node.Token.Value), SyntaxErrorKind.WrongKeyword); }
public override void Visit(RepeatEveryNode node) => ProduceDebuggerInstructions(node, n => base.Visit(n));
/// <summary> /// Visit RepeatEvery node. /// </summary> /// <param name="node">Where node of AST</param> public abstract void Visit(RepeatEveryNode node);
public void Visit(RepeatEveryNode node) { }