Ejemplo n.º 1
0
        private void State_Start()
        {
            AdvanceOverWhitespace();
            if (IsAtEndOfInput)
            {
                _token = GenericTypeNameScannerToken.NONE;
                return;
            }

            switch (CurrentChar)
            {
            case OpenParen:
                _token = GenericTypeNameScannerToken.OPEN;
                break;

            case CloseParen:
                _token = GenericTypeNameScannerToken.CLOSE;
                break;

            case Comma:
                _token = GenericTypeNameScannerToken.COMMA;
                break;

            case Colon:
                _token = GenericTypeNameScannerToken.COLON;
                break;

            case OpenBracket:
                StartMultiCharToken();
                _state = State.INSUBSCRIPT;
                // No _token set so continue to scan.
                break;

            default:
                if (XamlName.IsValidNameStartChar(CurrentChar))
                {
                    StartMultiCharToken();
                    _state = State.INNAME;
                    // No _token set so continue to scan.
                }
                else
                {
                    _token = GenericTypeNameScannerToken.ERROR;
                }
                break;
            }
            _lastChar = CurrentChar;
            Advance();
        }
        private void State_Start()
        {
            base.AdvanceOverWhitespace();
            if (base.IsAtEndOfInput)
            {
                this._token = GenericTypeNameScannerToken.NONE;
            }
            else
            {
                switch (base.CurrentChar)
                {
                case '(':
                    this._token = GenericTypeNameScannerToken.OPEN;
                    break;

                case ')':
                    this._token = GenericTypeNameScannerToken.CLOSE;
                    break;

                case ',':
                    this._token = GenericTypeNameScannerToken.COMMA;
                    break;

                case ':':
                    this._token = GenericTypeNameScannerToken.COLON;
                    break;

                case '[':
                    this.StartMultiCharToken();
                    this._state = State.INSUBSCRIPT;
                    break;

                default:
                    if (XamlName.IsValidNameStartChar(base.CurrentChar))
                    {
                        this.StartMultiCharToken();
                        this._state = State.INNAME;
                    }
                    else
                    {
                        this._token = GenericTypeNameScannerToken.ERROR;
                    }
                    break;
                }
                this._lastChar = base.CurrentChar;
                base.Advance();
            }
        }
Ejemplo n.º 3
0
 internal static bool IsNameValid_WithPlus(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.IsValidQualifiedNameCharPlus(name[i]))
         {
             return(false);
         }
     }
     return(true);
 }