public IEnumerable <Token> GetTokensBetween(int start, int end)
        {
            ReadWhile((initial, current) => current.Index <= end);

            // Dummy token used to perform the binary search
            var markerToken = new StreamStart(default(Mark), new Mark(start, 1, 1));

            var startIndex = _bufferedTokens.BinarySearch(markerToken, TokenEndPositionComparer.Instance);

            if (startIndex < 0)
            {
                startIndex = ~startIndex;
            }

            for (var i = startIndex; i < _bufferedTokens.Count; ++i)
            {
                var token = _bufferedTokens[i];
                if (token.Start.Index > end)
                {
                    yield break;
                }

                yield return(token);
            }
        }
Exemplo n.º 2
0
 public YamlStream(YamlNodeTracker tracker = null)
 {
     _streamStart = new StreamStart();
     _streamEnd   = new StreamEnd();
     _documents   = new List <YamlDocument>();
     Tracker      = tracker;
 }
Exemplo n.º 3
0
        private ParsingEvent ParseStreamStart()
        {
            StreamStart currentToken = this.GetCurrentToken() as StreamStart;

            if (currentToken == null)
            {
                Token token = this.GetCurrentToken();
                throw new SemanticErrorException(token.Start, token.End, "Did not find expected <stream-start>.");
            }
            this.Skip();
            this.state = ParserState.ImplicitDocumentStart;
            return(new StreamStart(currentToken.Start, currentToken.End));
        }
Exemplo n.º 4
0
        /// <summary>
        /// Parse the production:
        /// stream   ::= STREAM-START implicit_document? explicit_document* STREAM-END
        ///              ************
        /// </summary>
        private Event ParseStreamStart()
        {
            StreamStart streamStart = GetCurrentToken() as StreamStart;

            if (streamStart == null)
            {
                var current = GetCurrentToken();
                throw new SemanticErrorException(current.Start, current.End, "Did not find expected <stream-start>.");
            }
            Skip();

            state = ParserState.YAML_PARSE_IMPLICIT_DOCUMENT_START_STATE;
            return(new Events.StreamStart(streamStart.Start, streamStart.End));
        }
Exemplo n.º 5
0
        /// <summary>
        /// Parse the production:
        /// stream   ::= STREAM-START implicit_document? explicit_document* STREAM-END
        ///              ************
        /// </summary>
        private ParsingEvent ParseStreamStart()
        {
            StreamStart streamStart = GetCurrentToken() as StreamStart;

            if (streamStart == null)
            {
                var current = GetCurrentToken();
                throw new SemanticErrorException(current.Start, current.End, "Did not find expected <stream-start>.");
            }
            Skip();

            state = ParserState.ImplicitDocumentStart;
            return(new Events.StreamStart(streamStart.Start, streamStart.End));
        }
Exemplo n.º 6
0
        YamlStream(StreamStart streamStart, StreamEnd streamEnd, List <YamlDocument> documents, YamlNodeTracker tracker = null)
        {
            Tracker = tracker;

            this._streamStart = streamStart;
            this._streamEnd   = streamEnd;

            if (Tracker == null)
            {
                _documents = documents;
            }
            else
            {
                _documents = new List <YamlDocument>();
                foreach (var document in documents)
                {
                    Add(document);
                }
            }
        }
Exemplo n.º 7
0
 void IParsingEventVisitor.Visit(StreamStart e)
 {
     throw new NotSupportedException();
 }
Exemplo n.º 8
0
 public void Visit(StreamStart e)
 {
 }
 public void Visit(StreamStart e)
 {
     _emitter.Emit(e);
 }
Exemplo n.º 10
0
 public void StartInformStream(string IP)
 {
     if (!Streaming)
     {
         Streaming = true;
         Task.Run(() =>
         {
             try
             {
                 Client = new TcpClient(IP, 2111);
                 if (Client.Connected)
                 {
                     StreamStart?.Invoke();
                 }
                 using NetworkStream stream = Client.GetStream();
                 RigInform RO;
                 Task.Run(() =>
                 {
                     while (App.Live && Client.Connected && Streaming)
                     {
                         Thread.Sleep(2000);
                         Task.Run(() =>
                         {
                             try
                             {
                                 Client2114?.Close();
                                 Client2114?.Dispose();
                                 Client2114 = new TcpClient(IP, 2114);
                                 using NetworkStream stream = Client2114.GetStream();
                                 byte[] data = new byte[1];
                                 int bytes   = stream.Read(data, 0, data.Length);
                                 OMGAlive    = true;
                             }
                             catch
                             {
                                 Client2114?.Close();
                                 Client2114?.Dispose();
                             }
                         });
                     }
                     Exit();
                 });
                 Task.Run(() =>
                 {
                     Thread.Sleep(5000);
                     asdf:
                     while (App.Live && Client.Connected && Streaming)
                     {
                         if (OMGAlive)
                         {
                             OMGAlive = false;
                             for (int i = 0; i < 6; i++)
                             {
                                 Thread.Sleep(1000);
                                 if (OMGAlive)
                                 {
                                     goto asdf;
                                 }
                             }
                             Exit();
                         }
                     }
                     Exit();
                 });
                 while (App.Live && Client.Connected && Streaming)
                 {
                     RO = ReadRootObject(stream);
                     Task.Run(() => SentInform?.Invoke(RO));
                     Thread.Sleep(50);
                 }
                 Exit();
             }
             catch { Exit(); }
         });
     }
 }
Exemplo n.º 11
0
        private void SocketOnMessageReceived(object sender, MessageReceivedEventArgs messageReceivedEventArgs)
        {
            PubSubMessageEventArgs msg;
            var type = parser.Parse(messageReceivedEventArgs.Message, out msg);

            // ReSharper disable once BitwiseOperatorOnEnumWithoutFlags (enum is not really using flags)
            if ((type & PubSubMessageType.Unknown) > 0)
            {
                Unknown?.Invoke(this, (UnknownMessageEventArgs)msg);
                return;
            }

            // ReSharper disable once SwitchStatementMissingSomeCases (handled by the if above)
            switch (type)
            {
            case PubSubMessageType.Response:
                Response?.Invoke(this, (ResponseMessageEventArgs)msg);
                break;

            case PubSubMessageType.Pong:
                pongTimeoutTimer.Stop();
                Pong?.Invoke(this, System.EventArgs.Empty);
                break;

            case PubSubMessageType.Reconnect:
                HandleReconnect();
                break;

            case PubSubMessageType.Timeout:
                Timeout?.Invoke(this, (TimeoutMessageEventArgs)msg);
                break;

            case PubSubMessageType.Ban:
                Ban?.Invoke(this, (BanMessageEventArgs)msg);
                break;

            case PubSubMessageType.Unban:
                Unban?.Invoke(this, (UnbanMessageEventArgs)msg);
                break;

            case PubSubMessageType.Host:
                Host?.Invoke(this, (HostMessageEventArgs)msg);
                break;

            case PubSubMessageType.Bits:
                Bits?.Invoke(this, (BitsMessageEventArgs)msg);
                break;

            case PubSubMessageType.StreamStart:
                StreamStart?.Invoke(this, (StreamStartMessageEventArgs)msg);
                break;

            case PubSubMessageType.StreamStop:
                StreamStop?.Invoke(this, (StreamStopMessageEventArgs)msg);
                break;

            case PubSubMessageType.ViewerCount:
                ViewerCount?.Invoke(this, (ViewerCountMessageEventArgs)msg);
                break;

            default:
                Error?.Invoke(this, new ExceptionEventArgs(new ArgumentOutOfRangeException()));
                break;
            }
        }