private AsmToken ParseInstructionOrIdentifierOrRegister(int startPosition)
            {
                var endPosition = _position;

                while (_c >= 'a' && _c <= 'z' || _c >= 'A' && _c <= 'Z' || _c >= '0' && _c <= '9' || _c == '_' || _c == '@')
                {
                    endPosition = _position;
                    NextChar();
                }

                // Resolve token kind for identifier
                int length    = endPosition - startPosition + 1;
                var tokenKind = _tokenKindProvider.FindTokenKind(new StringSlice(_text, startPosition, length));

                return(new AsmToken(tokenKind, startPosition, endPosition - startPosition + 1));
            }