internal override OperatorBuilder InternalBuild()
 {
     var hour = new Hour { OffsetInSeconds = _offset };
     return new OperatorBuilder(constraints =>
         {
             hour.AddConstraints(constraints);
             return hour;
         });
 }
        public override void ExitEveryhour(GoldenFoxLanguageParser.EveryhourContext context)
        {
            if (!Current.SecondsOffset.Any())
            {
                Current.SecondsOffset.Push(0);
            }

            var constraints = new List<IConstraint>();
            while (Current.Constraints.Any())
            {
                constraints.Add(Current.Constraints.Pop());
            }

            while (Current.SecondsOffset.Any())
            {

                var hour = new Hour { OffsetInSeconds = Current.SecondsOffset.Pop() };
                if (constraints.Any())
                {
                    hour.AddConstraints(constraints);
                }

                _stack.Push(hour);
            }
        }