getSerial not declared in this scope - discrepancies, or overlook?

Hello all,

In the code below I am getting an error, when compiling, telling me that getSerial was not declared in this scope void loop().

#include <Servo.h>

unsigned long serialdata;
int inbyte;
int digitalState;
int pinNumber;
int analogRate;
int servoPin;
int pos = 70;
int time = 0;
Servo megaservos;


void setup()
{
  Serial.begin(9600);
}

void loop()
{
  getSerial();
  switch(serialdata)
  {
  case 1:
    {
      //Decide to use Vacuum or Positive Pressure
      getSerial();
      switch(serialdata)
      {
      case 1:
        {
          //Turn on Vacuum
          getSerial();
          pinNumber = serialdata;
          getSerial();
          digitalState = serialdata;
          pinMode(pinNumber, OUTPUT);
          if (digitalState == 0)
          {
            digitalWrite(pinNumber, LOW);
          }
          if (digitalState == 1)
          {
            digitalWrite(pinNumber, HIGH);
          }
          pinNumber = 0;
          break;
        }
      case 2:
        {
          //Turn on Positive Pressure
          getSerial();
          pinNumber = serialdata;
          getSerial();
          digitalState = serialdata;
          pinMode(pinNumber, OUTPUT);
          if (digitalState == 0)
          {
            digitalWrite(pinNumber, LOW);
          }
          if (digitalState == 1)
          {
            digitalWrite(pinNumber, HIGH);
          }
          pinNumber = 0;
          break;
        }
     }
     break; 
   }
   case 2:
   //Raise or drop arm
   getSerial();
   switch(serialdata)
   {
     case 1:
     {
       //Raise arm
       getSerial();
       servoPin = serialdata;
       megaservos.attach(servoPin);
       if(pos >= 1)
       {
         pos -= 1;
         megaservos.write(pos);
         delay(15);
       }
       break;
     }
     case 2:
     {
       //Drop arm
       getSerial();
       servoPin = serialdata;
       megaservos.attach(servoPin);
       if(pos <= 70)
       {
         pos += 1;
         megaservos.write(pos);
         delay(15);
       break;
        }
     }
     break; 
   }
  }

long getSerial()
{
  serialdata = 0;
  while (inbyte != '/')
  {
    inbyte = Serial.read(); 
    if (inbyte > 0 && inbyte != '/')
    {
     
      serialdata = serialdata * 10 + inbyte - '0';
    }
  }
  inbyte = 0;
  return serialdata;
}
}

However, when I run this code, which is structured similarly, I do not get the error message.

#include <Servo.h>

unsigned long serialdata;
int inbyte;
int servoPose;
int servoPoses[80] = {};
int attachedServos[80] = {};
int servoPin;
int pinNumber;
int sensorVal;
int analogRate;
int digitalState;
Servo myservo[] = {};

void setup()
{
  Serial.begin(9600);
}

void loop()
{
  getSerial();
  switch(serialdata)
  {
  case 1:
    {
      //analog digital write
      getSerial();
      switch (serialdata)
      {
      case 1:
        {
          //analog write
          getSerial();
          pinNumber = serialdata;
          getSerial();
          analogRate = serialdata;
          pinMode(pinNumber, OUTPUT);
          analogWrite(pinNumber, analogRate);
          pinNumber = 0;
          break;
        }
      case 2:
        {
          //digital write
          getSerial();
          pinNumber = serialdata;
          getSerial();
          digitalState = serialdata;
          pinMode(pinNumber, OUTPUT);
          if (digitalState == 1)
          {
            digitalWrite(pinNumber, LOW);
          }
          if (digitalState == 2)
          {
            digitalWrite(pinNumber, HIGH);
          }
          pinNumber = 0;
          break;
         
        }
     }
     break; 
    }
    case 2:
    {
      getSerial();
      switch (serialdata)
      {
      case 1:
        {
          //analog read
          getSerial();
          pinNumber = serialdata;
          pinMode(pinNumber, INPUT);
          sensorVal = analogRead(pinNumber);
          Serial.println(sensorVal);
          sensorVal = 0;
          pinNumber = 0;
          break;
        } 
      case 2:
        {
          //digital read
          getSerial();
          pinNumber = serialdata;
          pinMode(pinNumber, INPUT);
          sensorVal = digitalRead(pinNumber);
          Serial.println(sensorVal);
          sensorVal = 0;
          pinNumber = 0;
          break;
        }
      }
      break;
    }
    case 3:
    {
      getSerial();
      switch (serialdata)
      {
        case 1:
        {
           //servo read
           getSerial();
           servoPin = serialdata;
           Serial.println(servoPoses[servoPin]);
           break;
        }
        case 2:
        {
           //servo write
           getSerial();
           servoPin = serialdata;
           getSerial();
           servoPose = serialdata;
           if (attachedServos[servoPin] == 1)
           {
             myservo[servoPin].write(servoPose);
           }
           if (attachedServos[servoPin] == 0)
           {
             Servo s1;
             myservo[servoPin] = s1;
             myservo[servoPin].attach(servoPin);
             myservo[servoPin].write(servoPose);
             attachedServos[servoPin] = 1;
           }
           servoPoses[servoPin] = servoPose;
           break;
        }
        case 3:
        {
          //detach
          getSerial();
          servoPin = serialdata;
          if (attachedServos[servoPin] == 1)
          {
            myservo[servoPin].detach();
            attachedServos[servoPin] = 0;  
          }
        }
      }
    break;
    }
  }
}

long getSerial()
{
  serialdata = 0;
  while (inbyte != '/')
  {
    inbyte = Serial.read(); 
    if (inbyte > 0 && inbyte != '/')
    {
     
      serialdata = serialdata * 10 + inbyte - '0';
    }
  }
  inbyte = 0;
  return serialdata;
}

Could anyone provide some insight as to why this is happening and a potential fix? Is this an anomaly or have I overlooked something in the top code? I've looked through and compared them several times and can't seem to find a problem...may just need a new set of eyes to look at it.

Thanks

Look at the last two lines of each case.
Not structured similarly!

You declare getSerial inside the loop.

Yes I just found that on my own! Was about to update the thread.

Overlooking the placement of a } happens sometimes...Oh the intricacies of programming

Thanks for looking through it!