Beispiel #1
0
        private void SliderEvents()
        {
            PProg.BeginInit();
            PProg.IsMoveToPointEnabled = true;
            PProg.ValueChanged        += (s, e) => // 진행 바 값 변경 시 이벤트
            {
                try
                {
                    var v = Pmed.Position.TotalSeconds / Pmed.NaturalDuration.TimeSpan.TotalSeconds;
                    if (Math.Abs(e.NewValue - v) > 1.0 / Pmed.NaturalDuration.TimeSpan.TotalSeconds)
                    {
                        Pmed.Position = TimeSpan.FromSeconds(Pmed.NaturalDuration.TimeSpan.TotalSeconds * e.NewValue);
                    }
                }
                catch (Exception)
                {
                }
            };
            PProg.EndInit();

            //PVol.BeginInit();
            PVol.ValueChanged += (s, e) => // 볼륨 바 값 변경 시 이벤트
            {
                PVol.ToolTip = "볼륨 : " + Convert.ToString((int)(PVol.Value * 200));
            };
            //PVol.EndInit();
        }
Beispiel #2
0
 public Start(
     PProg _base_,
     EOF _eof_)
 {
     SetPProg(_base_);
     SetEOF(_eof_);
 }
Beispiel #3
0
        internal override void RemoveChild(Node child)
        {
            if (_base_ == child)
            {
                _base_ = null;
                return;
            }

            if (_eof_ == child)
            {
                _eof_ = null;
                return;
            }
        }
Beispiel #4
0
        public void SetPProg(PProg node)
        {
            if (_base_ != null)
            {
                _base_.Parent(null);
            }

            if (node != null)
            {
                if (node.Parent() != null)
                {
                    node.Parent().RemoveChild(node);
                }

                node.Parent(this);
            }

            _base_ = node;
        }
Beispiel #5
0
        public Start Parse()
        {
            Push(0, null);

            IList ign = null;

            while (true)
            {
                while (Index(lexer.Peek()) == -1)
                {
                    if (ign == null)
                    {
                        ign = new TypedList(NodeCast.Instance);
                    }

                    ign.Add(lexer.Next());
                }

                if (ign != null)
                {
                    ignoredTokens.SetIn(lexer.Peek(), ign);
                    ign = null;
                }

                last_pos   = lexer.Peek().Pos;
                last_line  = lexer.Peek().Line;
                last_token = lexer.Peek();

                int index = Index(lexer.Peek());
                action[0] = actionTable[State()][0][1];
                action[1] = actionTable[State()][0][2];

                int low  = 1;
                int high = actionTable[State()].Length - 1;

                while (low <= high)
                {
                    int middle = (low + high) / 2;

                    if (index < actionTable[State()][middle][0])
                    {
                        high = middle - 1;
                    }
                    else if (index > actionTable[State()][middle][0])
                    {
                        low = middle + 1;
                    }
                    else
                    {
                        action[0] = actionTable[State()][middle][1];
                        action[1] = actionTable[State()][middle][2];
                        break;
                    }
                }

                switch (action[0])
                {
                case SHIFT:
                {
                    ArrayList list = new ArrayList();
                    list.Add(lexer.Next());
                    Push(action[1], list);
                    last_shift = action[1];
                }
                break;

                case REDUCE:
                    switch (action[1])
                    {
                    case 0:
                    {
                        ArrayList list = New0();
                        Push(GoTo(0), list);
                    }
                    break;

                    case 1:
                    {
                        ArrayList list = New1();
                        Push(GoTo(1), list);
                    }
                    break;

                    case 2:
                    {
                        ArrayList list = New2();
                        Push(GoTo(1), list);
                    }
                    break;

                    case 3:
                    {
                        ArrayList list = New3();
                        Push(GoTo(2), list);
                    }
                    break;

                    case 4:
                    {
                        ArrayList list = New4();
                        Push(GoTo(2), list);
                    }
                    break;

                    case 5:
                    {
                        ArrayList list = New5();
                        Push(GoTo(2), list);
                    }
                    break;

                    case 6:
                    {
                        ArrayList list = New6();
                        Push(GoTo(3), list);
                    }
                    break;

                    case 7:
                    {
                        ArrayList list = New7();
                        Push(GoTo(4), list);
                    }
                    break;

                    case 8:
                    {
                        ArrayList list = New8();
                        Push(GoTo(5), list);
                    }
                    break;

                    case 9:
                    {
                        ArrayList list = New9();
                        Push(GoTo(6), list);
                    }
                    break;

                    case 10:
                    {
                        ArrayList list = New10();
                        Push(GoTo(6), list);
                    }
                    break;

                    case 11:
                    {
                        ArrayList list = New11();
                        Push(GoTo(7), list);
                    }
                    break;

                    case 12:
                    {
                        ArrayList list = New12();
                        Push(GoTo(8), list);
                    }
                    break;

                    case 13:
                    {
                        ArrayList list = New13();
                        Push(GoTo(8), list);
                    }
                    break;

                    case 14:
                    {
                        ArrayList list = New14();
                        Push(GoTo(9), list);
                    }
                    break;

                    case 15:
                    {
                        ArrayList list = New15();
                        Push(GoTo(9), list);
                    }
                    break;

                    case 16:
                    {
                        ArrayList list = New16();
                        Push(GoTo(10), list);
                    }
                    break;

                    case 17:
                    {
                        ArrayList list = New17();
                        Push(GoTo(10), list);
                    }
                    break;

                    case 18:
                    {
                        ArrayList list = New18();
                        Push(GoTo(10), list);
                    }
                    break;
                    }
                    break;

                case ACCEPT:
                {
                    EOF   node2 = (EOF)lexer.Next();
                    PProg node1 = (PProg)((ArrayList)Pop())[0];
                    Start node  = new Start(node1, node2);
                    return(node);
                }

                case ERROR:
                    throw new ParserException(last_token,
                                              "[" + last_line + "," + last_pos + "] " +
                                              errorMessages[errors[action[1]]]);
                }
            }
        }