Can someone tell me what is wrong with my code

#include <AFMotor.h>
#include <Servo.h>
char data = 0;
char speed1 = 0;
char state = LOW;
Servo servo1;
AF_DCMotor motor1(1);
AF_DCMotor motor2(2);
AF_DCMotor motor3(3);
AF_DCMotor motor4(4);
int led1 = 14;
int led2 = 15;
int led3 = 16;
int ledstate;
int starttime = 0;
void setup() {
 Serial.begin(9600);
 speed1 = 55;
 motor1.setSpeed(speed1);
 motor2.setSpeed(speed1);
 motor3.setSpeed(speed1);
 motor4.setSpeed(speed1);
 motor1.run(RELEASE);
 motor2.run(RELEASE);
 motor3.run(RELEASE);
 motor4.run(RELEASE);
 servo1.attach(9);
 pinMode(14,OUTPUT);
 pinMode(15,OUTPUT);
 pinMode(16,OUTPUT);
}

void loop() {
 data = Serial.read();
 Serial.print(data);
 if(data == 7 ){
  speed1 = 75;
 }
 if(data == 8 ){
  speed1 = 125;
 } 
 if(data == 9 ){
  speed1 = 175;
 }
 motor1.setSpeed(speed1);
 motor2.setSpeed(speed1);
 motor3.setSpeed(speed1);
 motor4.setSpeed(speed1);
 
 if(data == 0 ){
  motor1.run(RELEASE);
  motor2.run(RELEASE);
  motor3.run(RELEASE);
  motor4.run(RELEASE); 
  digitalWrite(led2, LOW);
  digitalWrite(led3, LOW);
 }
 while(data == 1 ){
  motor1.run(FORWARD);
  motor2.run(FORWARD);
  motor3.run(FORWARD);
  motor4.run(FORWARD);
 }
 while(data == 2 ){
  motor1.run(BACKWARD);
  motor2.run(BACKWARD);
  motor3.run(BACKWARD);
  motor4.run(BACKWARD);
  digitalWrite(led3, HIGH);
  if (500 < millis()){
  digitalWrite(led3, LOW);
  digitalWrite(led2, HIGH);
  starttime = millis() ; 
  }  
 }
 while(data == 3 ){
  motor1.run(BRAKE);
  motor2.run(BRAKE);
  motor3.run(BRAKE);
  motor4.run(BRAKE);
  digitalWrite(led3, HIGH);
 }
 while(data == 4 ){
  for(int y = 85;y > 45 ;y - 5 ){
    servo1.write(y);
    delay(100);
  }
 }
 while(data == 5 ){
  for(int y = 85;y > 45 ;y - 5 ){
    servo1.write(y);
    delay(100);
  }
 }
 if(data == 6 ){
  servo1.write(90);
 }
 if(data == 10 ){
  if(ledstate == HIGH) ledstate = LOW;
  else ledstate = HIGH; 
  digitalWrite(led1, ledstate);
 }

I am getting an error saying " expected } at end of input". Can someone explain to me whats wrong . thanks

Where is the closing curly bracket ('}') that pairs with this one:

void loop() {

If you Auto Formatted the code in the IDE the fact that the last line was not a closing brace on the left margin would have been immediately obvious. Putting each { and } on its own line helps immensely too.

 while(data == 1 ){
  motor1.run(FORWARD);
  motor2.run(FORWARD);
  motor3.run(FORWARD);
  motor4.run(FORWARD);
 }

If data IS 1, this while loop will never end, since data never changes while the loop is running.

  for(int y = 85;y > 45 ;y - 5 ){

y-5 does not change the value of y, so y will always be 8. Not that that matters, because 8 is not greater than 45, so the for loop will never do anything.

Poorly placed curly braces are the least of your problems.

your code--

}
motor1.setSpeed(speed1);
motor2.setSpeed(speed1);
motor3.setSpeed(speed1);
motor4.setSpeed(speed1);

if(data == 0 ){

does not include an opening bracket before -

motor1.setSpeed(speed1)

and does not close-

the program is expecting input from motor1....

thanks for all your help.