public override void Synchronize(SyncronizationContext sc)
            {
                ValueProvider.Synchronize(sc, "if[]");

                if (Operation != null)
                {
                    sc.SynchronizeValue(ValueProvider.Type, ref Value, Operation.Value.IsList());
                }

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

                    IfBlock.Synchronize(sc);
                }

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

                        ElseBlock.Synchronize(sc);
                    }
                }
            }
        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);
                }
            }
        }