/// <summary>
 /// Initiate a graceful shutdown with the state provided
 /// </summary>
 /// <param name="state">ExitState to use</param>
 /// <returns>Returns the ExitState supplied in the first parameter</returns>
 public static ExitStates ExitWithState(ExitStates state)
 {
     LastState = state;
     Debug.WriteLine("");
     Debug.WriteLine(string.Format("########## Exiting with code: {0} ##########", state));
     Debug.WriteLine("");
     return LastState;
 }
 /// <summary>
 /// Initiate a graceful shutdown with the state provided
 /// </summary>
 /// <param name="state">ExitState to use</param>
 /// <returns>Returns the ExitState supplied in the first parameter</returns>
 public static ExitStates ExitWithState(ExitStates state)
 {
     LastState = state;
     Debug.WriteLine("");
     Debug.WriteLine(string.Format("########## Exiting with code: {0} ##########", state));
     Debug.WriteLine("");
     return(LastState);
 }
Exemple #3
0
        public bool Next(char @char)
        {
            switch (this.state)
            {
            case 0:
            {
                switch (@char)
                {
                case '.':
                    // .
                    if ((this.AllowedCommonSymbols & CommonSymbolCases.Period) != CommonSymbolCases.None)
                    {
                        this.exitState = ExitStates.Period;
                        this.state     = -1;
                    }
                    break;

                case ',':
                    // ,
                    if ((this.AllowedCommonSymbols & CommonSymbolCases.Comma) != CommonSymbolCases.None)
                    {
                        this.exitState = ExitStates.Comma;
                        this.state     = -1;
                    }
                    break;

                case '[':
                    // [
                    if ((this.AllowedCommonSymbols & CommonSymbolCases.LeftSquareBracket) != CommonSymbolCases.None)
                    {
                        this.exitState = ExitStates.LeftSquareBracket;
                        this.state     = -1;
                    }
                    break;

                case ']':
                    // ]
                    if ((this.AllowedCommonSymbols & CommonSymbolCases.RightSquareBracket) != CommonSymbolCases.None)
                    {
                        this.exitState = ExitStates.RightSquareBracket;
                        this.state     = -1;
                    }
                    break;

                case '=':
                    // =
                    if ((this.AllowedCommonSymbols & CommonSymbolCases.Equals) != CommonSymbolCases.None)
                    {
                        this.exitState = ExitStates.Equals;
                        this.state     = -1;
                    }
                    break;

                case '+':
                    // +
                    if ((this.AllowedCommonSymbols & CommonSymbolCases.NestingQualifier) != CommonSymbolCases.None)
                    {
                        this.exitState = ExitStates.NestingQualifier;
                        this.state     = -1;
                    }
                    break;

                case '`':
                    // `
                    if ((this.AllowedCommonSymbols & CommonSymbolCases.GenericParameterSignal) != CommonSymbolCases.None)
                    {
                        this.exitState = ExitStates.GenericParameterSignal;
                        this.state     = -1;
                    }
                    break;

                case '*':
                    // *
                    if ((this.AllowedCommonSymbols & CommonSymbolCases.PointerCallout) != CommonSymbolCases.None)
                    {
                        this.exitState = ExitStates.PointerCallout;
                        this.state     = -1;
                    }
                    break;

                case '&':
                    // &
                    if ((this.AllowedCommonSymbols & CommonSymbolCases.ByRefCallout) != CommonSymbolCases.None)
                    {
                        this.exitState = ExitStates.ByRefCallout;
                        this.state     = -1;
                    }
                    break;

                case '"':
                    // "
                    if ((this.AllowedCommonSymbols & CommonSymbolCases.QuoteChar) != CommonSymbolCases.None)
                    {
                        this.exitState = ExitStates.QuoteChar;
                        this.state     = -1;
                    }
                    break;
                }
            }
            break;
            }
            return(false);
        }
Exemple #4
0
 /// <summary>
 /// Resets the state machine to its default state.
 /// </summary>
 public void Reset(CommonSymbolCases allowedCommonSymbols)
 {
     this.AllowedCommonSymbols = allowedCommonSymbols;
     this.exitState            = ExitStates.None;
     this.state = 0;
 }
Exemple #5
0
        public bool Next(char @char)
        {
            switch (this.state)
            {
            case 0:
            {
                switch (@char)
                {
                case 'V':
                case 'v':
                    // [Vv]
                    if ((this.AllowedAssemblyTerminals & AssemblyTerminalCases.Version) != AssemblyTerminalCases.None)
                    {
                        this.state = 1;
                        return(true);
                    }
                    break;

                case 'C':
                case 'c':
                    // [Cc]
                    if ((this.AllowedAssemblyTerminals & AssemblyTerminalCases.Culture) != AssemblyTerminalCases.None)
                    {
                        this.state = 2;
                        return(true);
                    }
                    break;

                case 'P':
                case 'p':
                    // [Pp]
                    if ((this.AllowedAssemblyTerminals & AssemblyTerminalCases.KeyToken) != AssemblyTerminalCases.None)
                    {
                        this.state = 3;
                        return(true);
                    }
                    break;

                case 'N':
                case 'n':
                    // [Nn]
                    if ((this.AllowedAssemblyTerminals & AssemblyTerminalCases.NullPublicKeyToken) != AssemblyTerminalCases.None)
                    {
                        this.state = 4;
                        return(true);
                    }
                    break;
                }
            }
            break;

            case 1:
            {
                switch (@char)
                {
                case 'E':
                case 'e':
                    // [Vv][Ee]
                    this.state = 5;
                    return(true);

                    break;
                }
            }
            break;

            case 2:
            {
                switch (@char)
                {
                case 'U':
                case 'u':
                    // [Cc][Uu]
                    this.state = 10;
                    return(true);

                    break;
                }
            }
            break;

            case 3:
            {
                switch (@char)
                {
                case 'U':
                case 'u':
                    // [Pp][Uu]
                    this.state = 15;
                    return(true);

                    break;
                }
            }
            break;

            case 4:
            {
                switch (@char)
                {
                case 'U':
                case 'u':
                    // [Nn][Uu]
                    this.state = 27;
                    return(true);

                    break;
                }
            }
            break;

            case 5:
            {
                switch (@char)
                {
                case 'R':
                case 'r':
                    // [Vv][Ee][Rr]
                    this.state = 6;
                    return(true);

                    break;
                }
            }
            break;

            case 6:
            {
                switch (@char)
                {
                case 'S':
                case 's':
                    // [Vv][Ee][Rr][Ss]
                    this.state = 7;
                    return(true);

                    break;
                }
            }
            break;

            case 7:
            {
                switch (@char)
                {
                case 'I':
                case 'i':
                    // [Vv][Ee][Rr][Ss][Ii]
                    this.state = 8;
                    return(true);

                    break;
                }
            }
            break;

            case 8:
            {
                switch (@char)
                {
                case 'O':
                case 'o':
                    // [Vv][Ee][Rr][Ss][Ii][Oo]
                    this.state = 9;
                    return(true);

                    break;
                }
            }
            break;

            case 9:
            {
                switch (@char)
                {
                case 'N':
                case 'n':
                    // [Vv][Ee][Rr][Ss][Ii][Oo][Nn]
                    this.exitState = ExitStates.Version;
                    this.state     = -1;
                    break;
                }
            }
            break;

            case 10:
            {
                switch (@char)
                {
                case 'L':
                case 'l':
                    // [Cc][Uu][Ll]
                    this.state = 11;
                    return(true);

                    break;
                }
            }
            break;

            case 11:
            {
                switch (@char)
                {
                case 'T':
                case 't':
                    // [Cc][Uu][Ll][Tt]
                    this.state = 12;
                    return(true);

                    break;
                }
            }
            break;

            case 12:
            {
                switch (@char)
                {
                case 'U':
                case 'u':
                    // [Cc][Uu][Ll][Tt][Uu]
                    this.state = 13;
                    return(true);

                    break;
                }
            }
            break;

            case 13:
            {
                switch (@char)
                {
                case 'R':
                case 'r':
                    // [Cc][Uu][Ll][Tt][Uu][Rr]
                    this.state = 14;
                    return(true);

                    break;
                }
            }
            break;

            case 14:
            {
                switch (@char)
                {
                case 'E':
                case 'e':
                    // [Cc][Uu][Ll][Tt][Uu][Rr][Ee]
                    this.exitState = ExitStates.Culture;
                    this.state     = -1;
                    break;
                }
            }
            break;

            case 15:
            {
                switch (@char)
                {
                case 'B':
                case 'b':
                    // [Pp][Uu][Bb]
                    this.state = 16;
                    return(true);

                    break;
                }
            }
            break;

            case 16:
            {
                switch (@char)
                {
                case 'L':
                case 'l':
                    // [Pp][Uu][Bb][Ll]
                    this.state = 17;
                    return(true);

                    break;
                }
            }
            break;

            case 17:
            {
                switch (@char)
                {
                case 'I':
                case 'i':
                    // [Pp][Uu][Bb][Ll][Ii]
                    this.state = 18;
                    return(true);

                    break;
                }
            }
            break;

            case 18:
            {
                switch (@char)
                {
                case 'C':
                case 'c':
                    // [Pp][Uu][Bb][Ll][Ii][Cc]
                    this.state = 19;
                    return(true);

                    break;
                }
            }
            break;

            case 19:
            {
                switch (@char)
                {
                case 'K':
                case 'k':
                    // [Pp][Uu][Bb][Ll][Ii][Cc][Kk]
                    this.state = 20;
                    return(true);

                    break;
                }
            }
            break;

            case 20:
            {
                switch (@char)
                {
                case 'E':
                case 'e':
                    // [Pp][Uu][Bb][Ll][Ii][Cc][Kk][Ee]
                    this.state = 21;
                    return(true);

                    break;
                }
            }
            break;

            case 21:
            {
                switch (@char)
                {
                case 'Y':
                case 'y':
                    // [Pp][Uu][Bb][Ll][Ii][Cc][Kk][Ee][Yy]
                    this.state = 22;
                    return(true);

                    break;
                }
            }
            break;

            case 22:
            {
                switch (@char)
                {
                case 'T':
                case 't':
                    // [Pp][Uu][Bb][Ll][Ii][Cc][Kk][Ee][Yy][Tt]
                    this.state = 23;
                    return(true);

                    break;
                }
            }
            break;

            case 23:
            {
                switch (@char)
                {
                case 'O':
                case 'o':
                    // [Pp][Uu][Bb][Ll][Ii][Cc][Kk][Ee][Yy][Tt][Oo]
                    this.state = 24;
                    return(true);

                    break;
                }
            }
            break;

            case 24:
            {
                switch (@char)
                {
                case 'K':
                case 'k':
                    // [Pp][Uu][Bb][Ll][Ii][Cc][Kk][Ee][Yy][Tt][Oo][Kk]
                    this.state = 25;
                    return(true);

                    break;
                }
            }
            break;

            case 25:
            {
                switch (@char)
                {
                case 'E':
                case 'e':
                    // [Pp][Uu][Bb][Ll][Ii][Cc][Kk][Ee][Yy][Tt][Oo][Kk][Ee]
                    this.state = 26;
                    return(true);

                    break;
                }
            }
            break;

            case 26:
            {
                switch (@char)
                {
                case 'N':
                case 'n':
                    // [Pp][Uu][Bb][Ll][Ii][Cc][Kk][Ee][Yy][Tt][Oo][Kk][Ee][Nn]
                    this.exitState = ExitStates.KeyToken;
                    this.state     = -1;
                    break;
                }
            }
            break;

            case 27:
            {
                switch (@char)
                {
                case 'L':
                case 'l':
                    // [Nn][Uu][Ll]
                    this.state = 28;
                    return(true);

                    break;
                }
            }
            break;

            case 28:
            {
                switch (@char)
                {
                case 'L':
                case 'l':
                    // [Nn][Uu][Ll][Ll]
                    this.exitState = ExitStates.NullPublicKeyToken;
                    this.state     = -1;
                    break;
                }
            }
            break;
            }
            return(false);
        }
Exemple #6
0
 /// <summary>
 /// Resets the state machine to its default state.
 /// </summary>
 public void Reset(AssemblyTerminalCases allowedAssemblyTerminals)
 {
     this.AllowedAssemblyTerminals = allowedAssemblyTerminals;
     this.exitState = ExitStates.None;
     this.state     = 0;
 }