Esempio n. 1
0
        private void State_InName()
        {
            if (IsAtEndOfInput || IsWhitespaceChar(CurrentChar) || CurrentChar == OpenBracket)
            {
                _token = GenericTypeNameScannerToken.NAME;
                _state = State.START;
                return;
            }

            switch (CurrentChar)
            {
            case OpenParen:
                _pushedBackSymbol = GenericTypeNameScannerToken.OPEN;
                _token            = GenericTypeNameScannerToken.NAME;
                _state            = State.START;
                break;

            case CloseParen:
                _pushedBackSymbol = GenericTypeNameScannerToken.CLOSE;
                _token            = GenericTypeNameScannerToken.NAME;
                _state            = State.START;
                break;

            case Comma:
                _pushedBackSymbol = GenericTypeNameScannerToken.COMMA;
                _token            = GenericTypeNameScannerToken.NAME;
                _state            = State.START;
                break;

            case Colon:
                _pushedBackSymbol = GenericTypeNameScannerToken.COLON;
                _token            = GenericTypeNameScannerToken.NAME;
                _state            = State.START;
                break;

            default:
                if (XamlName.IsValidQualifiedNameChar(CurrentChar))
                {
                    AddToMultiCharToken();
                    // No _token set so continue to scan.
                }
                else
                {
                    _token = GenericTypeNameScannerToken.ERROR;
                }
                break;
            }
            _lastChar = CurrentChar;
            Advance();
        }
        private void State_InName()
        {
            if ((base.IsAtEndOfInput || Sample_StringParserBase.IsWhitespaceChar(base.CurrentChar)) || (base.CurrentChar == '['))
            {
                this._token = GenericTypeNameScannerToken.NAME;
                this._state = State.START;
            }
            else
            {
                switch (base.CurrentChar)
                {
                case '(':
                    this._pushedBackSymbol = GenericTypeNameScannerToken.OPEN;
                    this._token            = GenericTypeNameScannerToken.NAME;
                    this._state            = State.START;
                    break;

                case ')':
                    this._pushedBackSymbol = GenericTypeNameScannerToken.CLOSE;
                    this._token            = GenericTypeNameScannerToken.NAME;
                    this._state            = State.START;
                    break;

                case ',':
                    this._pushedBackSymbol = GenericTypeNameScannerToken.COMMA;
                    this._token            = GenericTypeNameScannerToken.NAME;
                    this._state            = State.START;
                    break;

                case ':':
                    this._pushedBackSymbol = GenericTypeNameScannerToken.COLON;
                    this._token            = GenericTypeNameScannerToken.NAME;
                    this._state            = State.START;
                    break;

                default:
                    if (XamlName.IsValidQualifiedNameChar(base.CurrentChar))
                    {
                        this.AddToMultiCharToken();
                    }
                    else
                    {
                        this._token = GenericTypeNameScannerToken.ERROR;
                    }
                    break;
                }
                this._lastChar = base.CurrentChar;
                base.Advance();
            }
        }
Esempio n. 3
0
 internal static bool IsNameValid(string name)
 {
     if (name.Length == 0)
     {
         return(false);
     }
     if (!XamlName.IsValidNameStartChar(name[0]))
     {
         return(false);
     }
     for (int i = 1; i < name.Length; i++)
     {
         if (!XamlName.IsValidQualifiedNameChar(name[i]))
         {
             return(false);
         }
     }
     return(true);
 }