Exemple #1
0
        static private void HandleError(int eOffset, string eValue, ErrorKind ekind)
        {
            Error e = new Error();

            e.line       = SourceViewModel.GetLine(eOffset);
            e.lineOffset = SourceViewModel.GetLineOffset(eOffset);
            e.length     = eValue.Length;
            e.kind       = ekind;
            switch (ekind)
            {
            case ErrorKind.ANNONOTCLOSED:
                e.infomation = "注释未闭合";
                break;

            case ErrorKind.NUMBERERROR:
                e.infomation = string.Format("数字 {0} 格式错误", eValue);
                break;

            case ErrorKind.INVALIDCHAR:
                e.infomation = string.Format("无法识别的字符: {0}", eValue);
                break;

            case ErrorKind.NESTBRA:
                e.infomation = "出现嵌套的注释";
                break;

            default:
                e.infomation = string.Format("未知类型错误: {0}", eValue);
                break;
            }
        }
Exemple #2
0
        private string GetError(ErrorKind kind)
        {
            switch (kind)
            {
            case ErrorKind.BeforeOpeningBrace:
                return(string.Format(CultureInfo.CurrentCulture, Strings.UseConsistentWhitespaceErrorBeforeOpeningBrace));

            case ErrorKind.AfterOpeningBrace:
                return(string.Format(CultureInfo.CurrentCulture, Strings.UseConsistentWhitespaceErrorAfterOpeningBrace));

            case ErrorKind.BeforeClosingBrace:
                return(string.Format(CultureInfo.CurrentCulture, Strings.UseConsistentWhitespaceErrorBeforeClosingInnerBrace));

            case ErrorKind.Operator:
                return(string.Format(CultureInfo.CurrentCulture, Strings.UseConsistentWhitespaceErrorOperator));

            case ErrorKind.BeforePipe:
                return(string.Format(CultureInfo.CurrentCulture, Strings.UseConsistentWhitespaceErrorSpaceBeforePipe));

            case ErrorKind.AfterPipe:
                return(string.Format(CultureInfo.CurrentCulture, Strings.UseConsistentWhitespaceErrorSpaceAfterPipe));

            case ErrorKind.SeparatorComma:
                return(string.Format(CultureInfo.CurrentCulture, Strings.UseConsistentWhitespaceErrorSeparatorComma));

            case ErrorKind.SeparatorSemi:
                return(string.Format(CultureInfo.CurrentCulture, Strings.UseConsistentWhitespaceErrorSeparatorSemi));

            default:
                return(string.Format(CultureInfo.CurrentCulture, Strings.UseConsistentWhitespaceErrorBeforeParen));
            }
        }
Exemple #3
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ErrorDialog"/> class.
 /// </summary>
 /// <param name="message">The error message to display.</param>
 /// <param name="kind">The <see cref="ErrorKind"/> of the error.</param>
 public ErrorDialog(string message, ErrorKind kind = ErrorKind.Nonfatal)
 {
     InitializeComponent();
     Kind    = kind;
     Message = message;
     ProceedButton.Content = kind == ErrorKind.Fatal ? "Quit LASI" : "Continue";
 }
Exemple #4
0
 public Error(string message, int line, int column, ErrorKind errorKind)
 {
     _message   = message;
     _line      = line;
     _column    = column;
     _errorKind = errorKind;
 }
Exemple #5
0
        private async Task SetErrorViewAsync()
        {
            Debug.WriteLine("NewsViewModel - SetServiceError()");

            if (ErrorKind == ServiceErrorKind.None)
            {
                return;
            }

            if (IsRefreshing)
            {
                IsRefreshing = false;
            }

            var eventPage = ErrorKind.ToNewsServiceErrorPage();

            _eventTracker.Display(eventPage);

            ErrorTitle       = ErrorKind.ToTitle();
            ErrorDescription = ErrorKind.ToMessage();

            if (HasEmptyData)
            {
                ShowErrorView = true;
            }
            else
            {
                await UserDialogs.Instance.AlertAsync(ErrorDescription, ErrorTitle, "OK");
            }
        }
Exemple #6
0
 //------------------------------------------------------------
 //  型が2つあるコンストラクタ。
 public ErrorInfo(ErrorKind aErrorKind, ModuleContext aModuleContext, Token aErrorToken, TypeInfo aTypeInfoA, TypeInfo aTypeInfoB)
 {
     Kind          = aErrorKind;
     ModuleContext = aModuleContext;
     Token         = aErrorToken;
     TypeInfoA     = aTypeInfoA;
     TypeInfoB     = aTypeInfoB;
 }
Exemple #7
0
        public Error(Token token, ErrorKind kind, string message)
        {
            Token = token;

            Kind = kind;

            ErrorMessage = message;
        }
 static ProgramException Throwable(ErrorKind kind, string source, string message)
 {
     return(new ProgramException(message)
     {
         Kind = kind,
         Source = source,
     });
 }
Exemple #9
0
 //------------------------------------------------------------
 // 指定できない属性のチェック。trueが返ってきたらエラー扱い。
 bool checkErrorSymbolDefIllegalAttr(Token aToken, ErrorKind aErrorKind)
 {
     if (aToken != null)
     {
         setErrorKind(aErrorKind, aToken);
         return(true);
     }
     return(false);
 }
Exemple #10
0
 //------------------------------------------------------------
 /// <summary>
 /// 指定のトークンの種類であることを期待する。
 /// 期待通りであればトークンを次に進めtrueを返す。
 /// 期待通りでなければ指定のエラーを設定しfalseを返す。
 /// </summary>
 /// <param name="kind"></param>
 /// <param name="errorKind"></param>
 /// <returns></returns>
 bool expectToken(Token.Kind aKind, ErrorKind aErrorKind)
 {
     if (currentToken().Value != aKind)
     {
         setErrorKind(aErrorKind);
         return(false);
     }
     nextToken();
     return(true);
 }
 public AzPSResourceNotFoundCloudException(
     string message,
     ErrorKind errorKind,
     string desensitizedMessage        = null,
     Exception innerException          = null,
     [CallerLineNumber] int lineNumber = 0,
     [CallerFilePath] string filePath  = null)
     : base(message, errorKind, desensitizedMessage, innerException, lineNumber, filePath)
 {
 }
Exemple #12
0
 /// <summary>
 /// Shortcut for creating unknown error
 /// </summary>
 /// <param name="kind">The kind of error</param>
 /// <param name="code">The code of error</param>
 /// <param name="message">The error message</param>
 /// <param name="payload">The payload</param>
 /// <returns></returns>
 public static ErrorDefinition From(ErrorKind kind, string code, string message, Dictionary <string, object> payload = null)
 {
     return(new ErrorDefinition
     {
         Kind = kind,
         Code = code ?? Errors.UNKNOWN_ERROR,
         Message = message ?? string.Empty,
         Payload = payload
     });
 }
Exemple #13
0
 private void defaultErrorDelegate(ErrorKind error, ErrorLevel level, string errormessage)
 {
     if (level == ErrorLevel.K_LWARN) {
         // TODO: use a user supplied callback here or provide some other mechanism to override this
         // NOTE: if using a callback here, the user _must not_ throw exceptions in that callback
         /* Console.WriteLine("nlibk warning: {0}", errormessage); */
         return;
     }
     LastError = error;
     LastErrorMessage = errormessage;
 }
Exemple #14
0
        public void RaiseError(ErrorKind kind)
        {
            switch (kind)
            {
            case ErrorKind.PortError:
                this.PortError();
                break;

            default:
                break;
            }
        }
Exemple #15
0
 public ErrorLogEntry(OperationContext context, string message, string details, ErrorKind kind = ErrorKind.Internal,
                      string appName = null, string userName = null, DateTime?remoteTime = null)
     : base(context, LogEntryType.Error)
 {
     Message             = message;
     Details             = details;
     Kind                = kind;
     LogContents         = context?.GetLogContents();
     AppName             = appName ?? context?.App?.AppName;
     this.RemoteUserName = userName;
     RemoteTime          = remoteTime;
 }
Exemple #16
0
        private void CheckUndefinedState(string name, ErrorKind errorKind)
        {
            if (name == null)
            {
                return;
            }

            if (!ast.States.ContainsKey(name))
            {
                ast.Errors.Add(new AnalysisError(errorKind, name));
            }
        }
Exemple #17
0
 protected override void Decode(byte[] Data)
 {
     if ((Data[0] >> 7) == 0)
     {
         Error = ErrorKind.NoError;
         base.Decode(Data);
     }
     else
     {
         Index = Data[0] & 0x7F;
         Error = (ErrorKind)(Data[1]);
     }
 }
Exemple #18
0
 // Remote/client error, or error without explicit exception
 public ErrorLogEntry(LogContext context, string message, string details, ErrorKind kind = ErrorKind.Internal,
                      DateTime?remoteTime = null)
     : base(context)
 {
     Message = message;
     Details = details;
     Kind    = kind;
     if (remoteTime != null)
     {
         this.CreatedOn = remoteTime.Value;
     }
     Exception     = new Exception(message);
     ExceptionType = kind.ToString();
 }
 private DiagnosticRecord getDiagnosticRecord(
     Token token,
     ErrorKind errKind,
     List <CorrectionExtent> corrections)
 {
     return(new DiagnosticRecord(
                GetError(errKind),
                token.Extent,
                GetName(),
                GetDiagnosticSeverity(),
                token.Extent.File,
                null,
                corrections));
 }
Exemple #20
0
        private static string GetErrorMessage(ErrorKind type)
        {
            var reason = type switch
            {
                ErrorKind.NoIdClaim => Resource.ExceptionJwtUserTokenBadFormatReasonIdMissing,
                ErrorKind.IdClaimBadFormat => Resource.ExceptionJwtUserTokenBadFormatReasonIdBadFormat,
                ErrorKind.NoVersionClaim => Resource.ExceptionJwtUserTokenBadFormatReasonVersionMissing,
                ErrorKind.VersionClaimBadFormat => Resource.ExceptionJwtUserTokenBadFormatReasonVersionBadFormat,
                ErrorKind.Other => Resource.ExceptionJwtUserTokenBadFormatReasonOthers,
                _ => Resource.ExceptionJwtUserTokenBadFormatReasonUnknown
            };

            return(string.Format(CultureInfo.CurrentCulture, Resource.ExceptionJwtUserTokenBadFormat, reason));
        }
    }
Exemple #21
0
        private async Task RetryAsync()
        {
            Debug.WriteLine("NewsViewModel - RetryAsync()");
            var eventName = ErrorKind.ToEventName();

            _eventTracker?.Click(eventName, EventPage.NewsPage, EventPage.NewsPage);
            try
            {
                await GetNewsAsync(false);
            }
            catch (Exception ex)
            {
                _eventTracker.Error(ex);
            }
        }
        private void Retry(object sender)
        {
            Debug.WriteLine($"BookingViewModel - Retry()");
            var eventName = ErrorKind.ToEventName();

            _eventTracker?.Click(eventName, EventPage.BookingPage, EventPage.BookingPage);

            try
            {
                var webView = sender as CustomWebView;
                ReloadWebview(webView, true);
            }
            catch (Exception ex)
            {
                _eventTracker.Error(ex);
            }
        }
        // common code for errors that can be handled
        static void Raise(ErrorKind kind, string source, string message)
        {
            bool handled = (kind != ErrorKind.Panic && ErrorEvent != null && ErrorEvent(source, message)) ||
                           kind == ErrorKind.Warn;

            if (!handled)
            {
                //string msg = "Fatal error " + source + ": " + message;
                if (kind == ErrorKind.Warn)
                {
                    Logger.WriteLine("Program error ({0}): {1}", source, message);
                }
                else
                {
                    throw Throwable(kind, source, message);
                }
            }
        }
        private void SetErrorView()
        {
            Debug.WriteLine($"BookingViewModel - SetErrorView()");

            if (ErrorKind == ServiceErrorKind.None)
            {
                return;
            }

            var eventPage = ErrorKind.ToBookingWebviewErrorPage();

            _eventTracker.Display(eventPage);

            ErrorTitle       = ErrorKind.ToTitle();
            ErrorDescription = ErrorKind.ToMessage();

            ShowErrorView = true;
        }
 private void OnSocketConnectedOrSent(object sender, SocketAsyncEventArgs e)
 {
     try
     {
         if (e.SocketError != SocketError.Success)
         {
             Debug.LogWarning(LogPrefix + "Could not get NTP time from " + timeServer + " =/\n" + e.SocketError);
             asyncError = ErrorKind.Unknown;
         }
     }
     catch (Exception exception)
     {
         Debug.LogWarning(LogPrefix + "Could not get NTP time from " + timeServer + " =/\n" + exception);
         asyncError = ErrorKind.Unknown;
     }
     finally
     {
         gettingOnlineTimeAsync = false;
     }
 }
Exemple #26
0
 public void Report(ErrorKind level, Cursor cursor, string text)
 {
     Report(level, cursor, 0, text);
 }
 public PacketHeader(MessageKind kind, ErrorKind error, uint responseTo)
 {
     Kind = kind;
     Error = error;
     SequenceNumberResponseTo = responseTo;
 }
 public void RaiseError(ErrorKind kind)
 {
     switch (kind)
     {
         case ErrorKind.PortError:
             this.PortError();
             break;
         default:
             break;
     }
 }
Exemple #29
0
        static public Token LexNext()
        {
            int       state       = 0;
            string    value       = string.Empty;
            int       startOffset = 0;
            ErrorKind errorKind   = ErrorKind.DEFAULT;
            char?     cQuestion;
            char      c;

            while (true)
            {
                cQuestion = SourceViewModel.NextChar();
                if (cQuestion.HasValue)
                {
                    c = cQuestion.Value;
                    switch (state)
                    {
                    case 0:
                        startOffset = SourceViewModel.GetOffset();
                        if (char.IsLetter(c) || c == '_')
                        {
                            state  = 1;
                            value += c;
                            break;
                        }

                        if (char.IsDigit(c))
                        {
                            state  = 2;
                            value += c;
                            break;
                        }

                        if (char.IsWhiteSpace(c))
                        {
                            break;
                        }

                        if (c == '>')
                        {
                            value = c.ToString();
                            return(new Token(startOffset, value, TokenKind.GT));
                        }

                        if (c == '+')
                        {
                            value = c.ToString();
                            return(new Token(startOffset, value, TokenKind.ADD));;
                        }

                        if (c == '-')
                        {
                            value = c.ToString();
                            return(new Token(startOffset, value, TokenKind.SUB));
                        }

                        if (c == '*')
                        {
                            value = c.ToString();
                            return(new Token(startOffset, value, TokenKind.MULT));
                        }

                        if (c == '/')
                        {
                            state  = 7;
                            value += c;
                            break;
                        }

                        if (c == '=')
                        {
                            value = c.ToString();
                            return(new Token(startOffset, value, TokenKind.EQU));
                        }

                        if (c == '<')
                        {
                            value = c.ToString();
                            return(new Token(startOffset, value, TokenKind.LT));
                        }

                        if (c == '{')
                        {
                            value = c.ToString();
                            return(new Token(startOffset, value, TokenKind.LBRA));
                        }

                        if (c == '}')
                        {
                            value = c.ToString();
                            return(new Token(startOffset, value, TokenKind.RBRA));
                        }

                        if (c == '(')
                        {
                            value = c.ToString();
                            return(new Token(startOffset, value, TokenKind.LPAR));
                        }

                        if (c == ')')
                        {
                            value = c.ToString();
                            return(new Token(startOffset, value, TokenKind.RPAR));
                        }

                        if (c == ';')
                        {
                            value = c.ToString();
                            return(new Token(startOffset, value, TokenKind.SEMI));
                        }

                        if (c == '.')
                        {
                            state     = 4;
                            value    += c;
                            errorKind = ErrorKind.NUMBERERROR;
                            break;
                        }

                        //ERROR
                        state     = 4;
                        value    += c;
                        errorKind = ErrorKind.INVALIDCHAR;
                        break;

                    case 1:
                        if (char.IsLetterOrDigit(c))
                        {
                            value += c;
                            break;
                        }

                        SourceViewModel.putBack();

                        if (KeyWords.ContainsKey(value))
                        {
                            return(new Token(startOffset, value, KeyWords[value]));
                        }
                        else
                        {
                            return(new Token(startOffset, value, TokenKind.ID));
                        }

                    case 2:
                        if (char.IsDigit(c))
                        {
                            value += c;
                            break;
                        }

                        if (c == '.')
                        {
                            state  = 5;
                            value += c;
                            break;
                        }

                        SourceViewModel.putBack();
                        return(new Token(startOffset, value, TokenKind.NUM));

                    case 3:
                        if (c == '*')
                        {
                            state = 9;
                        }
                        value += c;
                        break;

                    case 4:
                        switch (errorKind)
                        {
                        case ErrorKind.NUMBERERROR:
                            if (char.IsDigit(c) || c == '.')
                            {
                                value += c;
                            }
                            else
                            {
                                SourceViewModel.putBack();
                                HandleError(startOffset, value, errorKind);
                                return(new Token(startOffset, value, TokenKind.ERROR));
                            }
                            break;

                        case ErrorKind.INVALIDCHAR:
                            if (char.IsLetterOrDigit(c) || symbols.Contains(c) || char.IsWhiteSpace(c))
                            {
                                SourceViewModel.putBack();
                                HandleError(startOffset, value, errorKind);
                                return(new Token(startOffset, value, TokenKind.ERROR));
                            }
                            else
                            {
                                value += c;
                            }
                            break;

                        default:
                            if (char.IsWhiteSpace(c))
                            {
                                HandleError(startOffset, value, errorKind);
                                return(new Token(startOffset, value, TokenKind.ERROR));
                            }
                            else
                            {
                                value += c;
                            }
                            break;
                        }
                        break;

                    case 5:
                        if (char.IsDigit(c))
                        {
                            state  = 6;
                            value += c;
                            break;
                        }

                        if (c == '.')
                        {
                            state     = 4;
                            value    += c;
                            errorKind = ErrorKind.NUMBERERROR;
                            break;
                        }

                        SourceViewModel.putBack();

                        HandleError(startOffset, value, ErrorKind.NUMBERERROR);
                        return(new Token(startOffset, value, TokenKind.ERROR));

                    case 6:
                        if (char.IsDigit(c))
                        {
                            state  = 6;
                            value += c;
                            break;
                        }

                        if (c == '.')
                        {
                            state     = 4;
                            value    += c;
                            errorKind = ErrorKind.NUMBERERROR;
                            break;
                        }

                        SourceViewModel.putBack();
                        return(new Token(startOffset, value, TokenKind.NUM));

                    case 7:
                        if (c == '*')
                        {
                            value += c;
                            state  = 3;
                            break;
                        }

                        if (c == '/')
                        {
                            value += c;
                            state  = 8;
                            break;
                        }

                        SourceViewModel.putBack();
                        return(new Token(startOffset, value, TokenKind.DIV));

                    case 8:
                        if (c == '\r' || c == '\n')                               //for the case "\r\n" and "\n";
                        {
                            return(new Token(startOffset, value, TokenKind.ANNO));
                        }

                        value += c;
                        break;

                    case 9:
                        if (c == '/')
                        {
                            value += c;
                            return(new Token(startOffset, value, TokenKind.ANNO));
                        }

                        value += c;
                        state  = 3;
                        break;
                    }
                }
                else
                {
                    switch (state)
                    {
                    case 0:
                        return(new Token(SourceViewModel.GetEndOffset(), value, TokenKind.END));

                    case 1:
                        if (KeyWords.ContainsKey(value))
                        {
                            return(new Token(startOffset, value, KeyWords[value]));
                        }
                        else
                        {
                            return(new Token(startOffset, value, TokenKind.ID));
                        }

                    case 2:
                    case 6:
                        return(new Token(startOffset, value, TokenKind.NUM));

                    case 3:
                    case 9:
                        HandleError(startOffset, value, ErrorKind.ANNONOTCLOSED);
                        return(new Token(startOffset, value, TokenKind.ERROR));

                    case 4:
                        HandleError(startOffset, value, errorKind);
                        return(new Token(startOffset, value, TokenKind.ERROR));

                    case 5:
                        HandleError(startOffset, value, ErrorKind.NUMBERERROR);
                        return(new Token(startOffset, value, TokenKind.ERROR));

                    case 7:
                        return(new Token(startOffset, value, TokenKind.DIV));

                    case 8:
                        return(new Token(startOffset, value, TokenKind.ANNO));
                    }
                }
            }
        }
Exemple #30
0
 public void PrintError(Cursor cursor, ErrorKind kind, int code, string text)
 {
     throw new ScannerError(cursor, string.Format("{0} {1}: {2}", kind.ToString(), code, text));
 }
Exemple #31
0
 public Error(ErrorKind kind, string additionalData = null)
 {
     ErrorKind      = kind;
     AdditionalData = additionalData;
 }
Exemple #32
0
 public Error(ErrorKind kind, string message = "")
 {
     this.Kind = kind;
       this.Message = message;
 }
Exemple #33
0
 public void Report(ErrorKind level, string text)
 {
     Report(level, null, 0, text);
 }
 public LogOnRequestResult(ErrorKind kind, UserInfo info, IEnumerable<int> onlineUsers)
 {
     Error = kind;
     Info = info;
     OnlineUsers = onlineUsers == null ? null : new List<int>(onlineUsers);
 }
 public LogOnRequestResult(ErrorKind kind, UserInfo info, IEnumerable <int> onlineUsers)
 {
     Error       = kind;
     Info        = info;
     OnlineUsers = onlineUsers == null ? null : new List <int>(onlineUsers);
 }
Exemple #36
0
 /** Constructor for the \c Error class. */
 public Error(ErrorKind level, Cursor cursor, int code, string text)
     : base(cursor, text)
 {
     _level = level;
     _code = code;
 }
Exemple #37
0
 public void Report(ErrorKind level, int code, string text)
 {
     Report(level, null, code, text);
 }
Exemple #38
0
 /// <summary>
 /// Initializes a new instance.
 /// </summary>
 /// <param name="kind">The error kind.</param>
 /// <param name="additional">Additional info.</param>
 public ImageConversionException(ErrorKind kind, object additional)
     : base($"Image Conversion Error kind={kind} {additional}")
 {
 }
 public static BabelException FromServiceError(ServiceError error, ErrorKind kind)
 {
     BabelException res;
     switch(kind)
     {
         //case ErrorKind.InvalidArgument: res = new BabelIllegalArgException(error.Details, error.Inner == null ? null : FromServiceError(error.Inner)); break;
         case ErrorKind.InvalidRequest: res = new BabelApplicationException(error.Details, error.Inner == null ? null : FromServiceError(error.Inner, ErrorKind.Unknown)); break; //Inner errors are unknown kind
         default: res = new BabelException(error.Details, error.Inner == null ? null : FromServiceError(error.Inner, ErrorKind.Unknown)); break; //Inner errors are unknown kind
     }
     if(error.Context != null)
     {
         foreach(var kv in error.Context)
         {
             res.Context.Add(kv.Key, kv.Value);
         }
     }
     if(error.Errors != null)
     {
         res.m_errors.AddRange(error.Errors);
     }
     return res;
 }
        private IEnumerator GetOnlineTimeInternal()
        {
            gettingOnlineTimeAsync = false;
            lastOnlineTime         = 0;
            asyncError             = ErrorKind.NoError;

            IPAddress[] addresses = null;
            try
            {
                addresses = Dns.GetHostEntry(timeServer).AddressList;
            }
            catch (Exception exception)
            {
                Debug.LogWarning(LogPrefix + "Could not resolve host " + timeServer + " =/\n" + exception);
                LastError = ErrorKind.CantResolveHost;
            }

            if (addresses == null || addresses.Length == 0)
            {
                Debug.LogWarning(LogPrefix + "Could not resolve IP from the host " + timeServer + " =/");
                LastError = ErrorKind.CantResolveHost;
            }

            if (LastError != ErrorKind.NoError)
            {
                yield break;
            }

            #region socket create and connect

            var timeBeforeAsyncCall = Time.unscaledTime;

            try
            {
                if (asyncSocket == null)
                {
                    asyncSocket                = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
                    asyncSocket.SendTimeout    = 3000;
                    asyncSocket.ReceiveTimeout = 3000;
                }

                var ip      = addresses[0];
                var ipBytes = ip.GetAddressBytes();

                if (ipBytes != targetIP)
                {
                    targetEndpoint = new IPEndPoint(ip, 123);
                    targetIP       = ipBytes;
                }

                if (connectArgs == null)
                {
                    connectArgs            = new SocketAsyncEventArgs();
                    connectArgs.Completed += OnSocketConnectedOrSent;
                }

                connectArgs.RemoteEndPoint = targetEndpoint;

                gettingOnlineTimeAsync = true;
                if (!asyncSocket.ConnectAsync(connectArgs))
                {
                    OnSocketConnectedOrSent(asyncSocket, connectArgs);
                }
            }
            catch (Exception exception)
            {
                HandleSocketException(exception);
            }

            while (gettingOnlineTimeAsync)
            {
                if (Time.unscaledTime - timeBeforeAsyncCall > 4)
                {
                    Debug.LogWarning(LogPrefix + "Socket didn't respond in time.");
                    LastError = ErrorKind.Unknown;
                    CloseSocket();
                    yield break;
                }

                yield return(cachedEndOfFrame);
            }

            if (asyncError != ErrorKind.NoError)
            {
                LastError = asyncError;
            }

            if (LastError != ErrorKind.NoError)
            {
                CloseSocket();
                yield break;
            }

            #endregion

            #region socket send

            ntpData[0] = 0x1B;

            if (sendArgs == null)
            {
                sendArgs            = new SocketAsyncEventArgs();
                sendArgs.Completed += OnSocketConnectedOrSent;
                sendArgs.UserToken  = asyncSocket;
                sendArgs.SetBuffer(ntpData, 0, NtpDataBufferLength);
            }

            sendArgs.RemoteEndPoint = targetEndpoint;

            timeBeforeAsyncCall = Time.unscaledTime;

            try
            {
                gettingOnlineTimeAsync = true;
                if (!asyncSocket.SendAsync(sendArgs))
                {
                    OnSocketConnectedOrSent(asyncSocket, sendArgs);
                }
            }
            catch (Exception exception)
            {
                HandleSocketException(exception);
            }

            while (gettingOnlineTimeAsync)
            {
                if (Time.unscaledTime - timeBeforeAsyncCall > 4)
                {
                    Debug.LogWarning(LogPrefix + "Socket didn't respond in time.");
                    LastError = ErrorKind.Unknown;
                    CloseSocket();
                    yield break;
                }

                yield return(cachedEndOfFrame);
            }

            if (asyncError != ErrorKind.NoError)
            {
                LastError = asyncError;
            }

            if (LastError != ErrorKind.NoError)
            {
                CloseSocket();
                yield break;
            }

            #endregion

            #region socket receive

            if (receiveArgs == null)
            {
                receiveArgs            = new SocketAsyncEventArgs();
                receiveArgs.Completed += OnSocketReceive;
                receiveArgs.UserToken  = asyncSocket;
                receiveArgs.SetBuffer(ntpData, 0, NtpDataBufferLength);
            }

            receiveArgs.RemoteEndPoint = targetEndpoint;

            timeBeforeAsyncCall = Time.unscaledTime;

            try
            {
                gettingOnlineTimeAsync = true;
                if (!asyncSocket.ReceiveAsync(receiveArgs))
                {
                    OnSocketReceive(asyncSocket, receiveArgs);
                }
            }
            catch (Exception exception)
            {
                HandleSocketException(exception);
            }

            while (gettingOnlineTimeAsync)
            {
                if (Time.unscaledTime - timeBeforeAsyncCall > 4)
                {
                    Debug.LogWarning(LogPrefix + "Socket didn't respond in time.");
                    LastError = ErrorKind.Unknown;
                    CloseSocket();
                    yield break;
                }

                yield return(cachedEndOfFrame);
            }

            if (asyncError != ErrorKind.NoError)
            {
                LastError = asyncError;
            }

            if (LastError != ErrorKind.NoError)
            {
                CloseSocket();
                yield break;
            }

            #endregion

            var intc = (ulong)ntpData[40] << 24 | (ulong)ntpData[41] << 16 | (ulong)ntpData[42] << 8 | ntpData[43];
            var frac = (ulong)ntpData[44] << 24 | (ulong)ntpData[45] << 16 | (ulong)ntpData[46] << 8 | ntpData[47];

            lastOnlineTime = intc * 1000d + frac * 1000d / 0x100000000L;
        }
Exemple #41
0
 public ErrorIn(ErrorKind ek) : base(String.Format("error in parsing: {0}", ek.ToString()))
 {
 }
Exemple #42
0
        public void Report(ErrorKind level, Cursor cursor, int code, string text)
        {
            Error error = new Error(level, cursor, code, text);

            _lock.Acquire();
            _errors.Add(error);
            _lock.Release();

            // update Failed property that indicates whether one or more errors have occured
            switch (level)
            {
                case ErrorKind.Debug    : break;
                case ErrorKind.Error    : _failed = true; break;
                case ErrorKind.Fatal    : _failed = true; break;
                case ErrorKind.Internal : _failed = true; break;
                case ErrorKind.Notice   : break;
                case ErrorKind.Unhandled: _failed = true; break;
                case ErrorKind.Warning  : break;
                default:
                    throw new InternalError("Unknown ErrorKind value encountered: " + level.ToString());
            }

            // don't report the event if the trace level does not allow it
            if (level > _level)
                return;

            System.Text.StringBuilder result = new System.Text.StringBuilder();
            if (cursor != null)
                result.Append(cursor.ToString());
            if (result.Length > 0)
                result.Append(' ');

            string name = null;
            switch (level)
            {
                case ErrorKind.Debug    : name = "DEBUG";           break;
                case ErrorKind.Error    : name = "Error";           break;
                case ErrorKind.Fatal    : name = "Fatal error";     break;
                case ErrorKind.Internal : name = "Internal error";  break;
                case ErrorKind.Notice   : name = null;              break;
                case ErrorKind.Unhandled: name = "Unhandled error"; break;
                case ErrorKind.Warning  : name = "Warning";         break;
                default:
                    throw new InternalError("Unknown ErrorKind value encountered: " + level.ToString());
            }
            if (name != null)
                result.Append(name);
            if (code != 0)
                result.Append(" " + code.ToString());
            if (name != null)
                result.Append(": ");

            result.Append(text);

            _writer.WriteLine(result.ToString());
        }
Exemple #43
0
 public Logger(ErrorKind level, System.IO.TextWriter writer)
 {
     _level = level;
     _writer = writer;
 }
        public override bool Extract()
        {
            using (var parser = ParserFactory.CreateParser(SupportedLanguage.CSharp, new StringReader("class Tmp { void Test() {\n " + this.textEditor.SelectedText + "\n}}"))) {
                parser.Parse();

                if (parser.Errors.Count > 0)
                {
                    MessageService.ShowError("${res:AddIns.SharpRefactoring.ExtractMethod.ParseErrors}");

                    return(false);
                }

                this.specialsList = parser.Lexer.SpecialTracker.RetrieveSpecials();
            }

            this.currentProjectContent = ParserService.GetProjectContent(ProjectService.CurrentProject);

            MethodDeclaration          newMethod            = new MethodDeclaration();
            List <VariableDeclaration> possibleReturnValues = new List <VariableDeclaration>();
            List <VariableDeclaration> otherReturnValues    = new List <VariableDeclaration>();

            // Initialise new method
            newMethod.Body = GetBlock(this.textEditor.SelectedText);
            newMethod.Body.StartLocation = new Location(0, 0);

            this.parentNode = GetParentMember(start, end);

            Dom.IMember member = GetParentMember(textEditor, textEditor.Caret.Line, textEditor.Caret.Column);

            if (parentNode == null || member == null)
            {
                MessageService.ShowError("${res:AddIns.SharpRefactoring.ExtractMethod.InvalidSelection}");
                return(false);
            }

            this.currentClass = member.DeclaringType;

            ErrorKind kind = CheckForJumpInstructions(newMethod);

            if (kind != ErrorKind.None)
            {
                switch (kind)
                {
                case ErrorKind.ContainsBreak:
                    MessageService.ShowError("${res:AddIns.SharpRefactoring.ExtractMethod.ContainsBreakError}");
                    break;

                case ErrorKind.ContainsContinue:
                    MessageService.ShowError("${res:AddIns.SharpRefactoring.ExtractMethod.ContainsContinueError}");
                    break;

                case ErrorKind.ContainsGoto:
                    MessageService.ShowError("${res:AddIns.SharpRefactoring.ExtractMethod.ContainsGotoError}");
                    break;
                }
                return(false);
            }

            newMethod.Modifier = parentNode.Modifier;

            newMethod.Modifier &= ~(Modifiers.Internal | Modifiers.Protected | Modifiers.Private | Modifiers.Public | Modifiers.Override);

            LookupTableVisitor ltv = new LookupTableVisitor(SupportedLanguage.CSharp);

            parentNode.AcceptVisitor(ltv, null);

            var variablesList = (from list in ltv.Variables.Values from item in list select new Variable(item))
                                .Where(v => !(v.StartPos > end || v.EndPos < start) &&
                                       (HasReferencesInSelection(newMethod, v) ||
                                        HasOccurrencesAfter(CSharpNameComparer, this.parentNode, end, v.Name, v.StartPos, v.EndPos)))
                                .Union(FromParameters(newMethod))
                                .Select(va => ResolveVariable(va));

            foreach (var variable in variablesList)
            {
                LoggingService.Debug(variable);

                bool hasOccurrencesAfter = HasOccurrencesAfter(CSharpNameComparer, this.parentNode, end, variable.Name, variable.StartPos, variable.EndPos);
                bool isInitialized       = (variable.Initializer != null) ? !variable.Initializer.IsNull : false;
                bool hasAssignment       = HasAssignment(newMethod, variable);

                if (IsInCurrentSelection(variable.StartPos) && hasOccurrencesAfter)
                {
                    possibleReturnValues.Add(new VariableDeclaration(variable.Name, variable.Initializer, variable.Type));
                    otherReturnValues.Add(new VariableDeclaration(variable.Name, variable.Initializer, variable.Type));
                }

                if (!(IsInCurrentSelection(variable.StartPos) || IsInCurrentSelection(variable.EndPos)))
                {
                    ParameterDeclarationExpression newParam = null;

                    if ((hasOccurrencesAfter && isInitialized) || variable.WasRefParam)
                    {
                        newParam = new ParameterDeclarationExpression(variable.Type, variable.Name, ParameterModifiers.Ref);
                    }
                    else
                    {
                        if ((hasOccurrencesAfter && hasAssignment) || variable.WasOutParam)
                        {
                            newParam = new ParameterDeclarationExpression(variable.Type, variable.Name, ParameterModifiers.Out);
                        }
                        else
                        {
                            if (!hasOccurrencesAfter)
                            {
                                newParam = new ParameterDeclarationExpression(variable.Type, variable.Name, ParameterModifiers.None);
                            }
                            else
                            {
                                if (!hasOccurrencesAfter && !isInitialized)
                                {
                                    newMethod.Body.Children.Insert(0, new LocalVariableDeclaration(new VariableDeclaration(variable.Name, variable.Initializer, variable.Type)));
                                }
                                else
                                {
                                    newParam = new ParameterDeclarationExpression(variable.Type, variable.Name, ParameterModifiers.In);
                                }
                            }
                        }
                    }
                    if (newParam != null)
                    {
                        newMethod.Parameters.Add(newParam);
                    }
                }
            }

            List <VariableDeclaration> paramsAsVarDecls = new List <VariableDeclaration>();

            this.beforeCallDeclarations = new List <LocalVariableDeclaration>();

            for (int i = 0; i < otherReturnValues.Count - 1; i++)
            {
                VariableDeclaration varDecl = otherReturnValues[i];
                paramsAsVarDecls.Add(varDecl);
                ParameterDeclarationExpression p = new ParameterDeclarationExpression(varDecl.TypeReference, varDecl.Name);
                p.ParamModifier = ParameterModifiers.Out;
                if (!newMethod.Parameters.Contains(p))
                {
                    newMethod.Parameters.Add(p);
                }
                else
                {
                    this.beforeCallDeclarations.Add(new LocalVariableDeclaration(varDecl));
                }
            }

            CreateReturnStatement(newMethod, possibleReturnValues);

            newMethod.Name = "NewMethod";

            this.extractedMethod = newMethod;

            return(true);
        }
        /// <summary>
        /// Converts exception to the ServiceError
        /// </summary>
        /// <param name="error"></param>
        /// <param name="errorKind"></param>
        /// <returns></returns>
        public static ServiceError FromException(Exception error, out ErrorKind errorKind)
        {
            ErrorKind temp;
            errorKind = ErrorKind.Unknown;
            var res = new ServiceError
            {
                Inner = error.InnerException == null ? null : FromException(error.InnerException, out temp),
                Time = DateTime.UtcNow,
                Details = error.Message
            };
            var be = error as IBabelException;
            if(be != null)
            {

                res.Context = be.Context;
                res.Errors = be.Errors.ToList();
                errorKind = be.Kind;
                return res;
            }

            string code = "INTERNAL_ERROR";
            /*if(error is ArgumentException)
            {
                code = BAD_ARGUMENT;
                errorKind = ErrorKind.InvalidArgument;
            }
            else*/
            if(error is ArgumentException ||error is ApplicationException || error is NotImplementedException)
            {
                code = INVALID_REQUEST;
                errorKind = ErrorKind.InvalidRequest;
            }

            res.Errors.Add(new Error { Code = code, Message = error.Message });
            return res;
        }