arduino segnala errori senza senso, forse

il debug è apposto.
dato che non funzionava ho inserito il contenuto dei vari "case" dentro loop

#define pulsante1 7
#define pulsante2 6
#define pulsante3 5
#define LED 13
int pausa = 1000;
int pausa2 = 3000;
int stato;

void setup()
{
  pinMode(pulsante1, INPUT);
  pinMode(pulsante2, INPUT);
  pinMode(pulsante3, INPUT);
  pinMode(LED, OUTPUT);
}

void loop()
{
  stato = 0;
  
  if(pulsante1 == HIGH)
  {
    stato = 1;
  }
  else
  {
    if(pulsante2 == HIGH)
    {
      stato = 2;
    }
    else
    {
      if(pulsante3 == HIGH)
      {
        stato = 3;
      }
      else
      {
        stato = 0;
      }
    }
  }
  
  switch (stato)
  {
    case 1:
      loop()
      ;{
        digitalWrite(LED, HIGH);
        delay(pausa);
        digitalWrite(LED, LOW);
        delay(pausa2);
        break;
      }
      
    case 2:
      loop()
      ;{
        digitalWrite(LED, HIGH);
        delay(pausa);
        digitalWrite(LED, LOW);
        delay(pausa);
        digitalWrite(LED, HIGH);
        delay(pausa);
        digitalWrite(LED, LOW);
        delay(pausa2);
        break;
      }
      
    case 3:
      loop()
      ;{
        digitalWrite(LED, HIGH);
        delay(pausa);
        digitalWrite(LED, LOW);
        delay(pausa);
        digitalWrite(LED, HIGH);
        delay(pausa);
        digitalWrite(LED, LOW);
        delay(pausa);
        digitalWrite(LED, HIGH);
        delay(pausa);
        digitalWrite(LED, LOW);
        delay(pausa2);
        break;
      }
      
    case 0:
      digitalWrite(LED, LOW);
      break;
  }
}

solo che se non inserisco il ; prima di loop mi da errore

comunque quello che devo fare è in sostanza un buzzer (come quello per ps3) in cui appare con una sequenza di "accendi spegni" del led quale pulsante è stato premuto prima

ad arduino sono collegati tre pulsanti (7, 6, 5) e un led(13)

ps grazie per aver spostato, mi sono accorto dopo delle sottosezioni