public override void Synchronize(TemplateSynchronizationContext sc)
        {
            ValueProvider !.Synchronize(sc, "@foreach[]");

            using (sc.NewScope())
            {
                ValueProvider.Declare(sc.Variables);

                Block.Synchronize(sc);
            }
        }
        public override void Synchronize(TemplateSynchronizationContext sc)
        {
            Condition.Synchronize(sc, "if[]");

            using (sc.NewScope())
            {
                Condition.Declare(sc.Variables);

                IfBlock.Synchronize(sc);
            }

            if (ElseBlock != null)
            {
                using (sc.NewScope())
                {
                    Condition.Declare(sc.Variables);

                    ElseBlock.Synchronize(sc);
                }
            }
        }
        public override void Synchronize(TemplateSynchronizationContext sc)
        {
            Condition.Synchronize(sc, "@any[]");

            using (sc.NewScope())
            {
                Condition.Declare(sc.Variables);

                AnyBlock.Synchronize(sc);
            }

            if (NotAnyBlock != null)
            {
                using (sc.NewScope())
                {
                    Condition.Declare(sc.Variables);

                    NotAnyBlock.Synchronize(sc);
                }
            }
        }