public override void Synchronize(SynchronizationContext 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(SynchronizationContext 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);
                    }
                }
            }