Help needed please, unable to work out which error for which line

// 2 gondola model mountain cable car with 2 end travel sensors
// By Ken Nippard 3/10/19 try 2

// Allocate pin usage
int pwm = 3; // motor speed output signal
int Pd1 = 4; // cw limit of travel sensor
int Pd2 = 7; // ccw limit of travel sensor
int cw = 8; // cw motor direction signal
int ccw = 12; // ccw motor direction signal

// variable to save last sensor position
int lastPd1State;
int lastPd2State;

void setup()
{

pinMode (pwm, OUTPUT); // motor speed 0 - 255
pinMode (Pd1, INPUT_PULLUP);
pinMode (Pd2, INPUT_PULLUP);
pinMode (cw, OUTPUT); // motor direction
pinMode (ccw, OUTPUT);  // motor direction
//digitalWrite(Pd1, HIGH); // sensors go low on detect
//digitalWrite(Pd2, HIGH);
 
} // end of setup

void loop() 
{
  lastPd1State == digitalRead (Pd1); // Check current sensor reading
  lastPd2State == digitalRead (Pd2);
  delay (2000);
  if (lastPd1State == LOW) { // need to move in anticlockwise direction
    do {
    digitalWrite (cw, LOW);
    digitalWrite (ccw, HIGH);
    analogWrite (pwm, 160);
    while (digitalRead (lastPd2State) == HIGH); // not yet at end of travel
    digitalWrite (ccw, LOW); //stop motor
    delay (120000);
    }
  }
  
  else if (lastPd2State == LOW) { // need to move in clockwise direction
   do {
   digitalWrite (cw, HIGH);
   digitalWrite (ccw, LOW);
   analogWrite (pwm, 160);
   while (digitalRead (lastPd1State) == HIGH);
   digitalWrite (cw, LOW); //stop motor
   delay (120000);
      }
  }
  
  else { // starting with gondolas in mid position
    do {
   digitalWrite (cw, HIGH);
   digitalWrite (ccw, LOW);
   analogWrite (pwm,160);
   while (digitalRead (lastPd2State) == HIGH); // not yet at end of travel
   digitalWrite (cw, LOW); // stop motor
   delay (120000);
        }
  }
  }

Error messages
[code]E:\Documents\ken\N scale\Arduino projects\mountain_lift\mountain_lift.ino: In function 'void loop()':

mountain_lift:42:3: error: expected 'while' before '}' token

   }

   ^

mountain_lift:42:3: error: expected '(' before '}' token

mountain_lift:42:3: error: expected primary-expression before '}' token

mountain_lift:42:3: error: expected ')' before '}' token

mountain_lift:42:3: error: expected ';' before '}' token

mountain_lift:53:3: error: expected 'while' before '}' token

   }

   ^

mountain_lift:53:3: error: expected '(' before '}' token

mountain_lift:53:3: error: expected primary-expression before '}' token

mountain_lift:53:3: error: expected ')' before '}' token

mountain_lift:53:3: error: expected ';' before '}' token

mountain_lift:64:3: error: expected 'while' before '}' token

   }

   ^

mountain_lift:64:3: error: expected '(' before '}' token

mountain_lift:64:3: error: expected primary-expression before '}' token

mountain_lift:64:3: error: expected ')' before '}' token

mountain_lift:64:3: error: expected ';' before '}' token

exit status 1
expected 'while' before '}' token

[/code]

Thank you for your prompt help.

Trying to get the motor to continue in the same direction even when the gondola has left the proximity detector until the other gondola on opposite side reaches the second proximity detector.
Then a delay before reversing direction.

Problem solved thanks to Delta_G.