Error:expected unqualified-id before numeric constant

Hi everybody, I use the the search button, but I didn't found anything that help me... This is my code

int B1 = 1;
int B2 = 2;
int B3 = 3;
int B4 = 4;
int BUZZER = 8;
int val1 = 0;
int val2 = 0;
int val3 = 0;
int val4 = 0; 

void setup () {
  pinMode(BUZZER, OUTPUT);
  pinMode(B1, INPUT);
  pinMode(B2, INPUT);
  pinMode(B3, INPUT);
  pinMode(B4, INPUT);
}

void loop(){
  val1 = digitalRead(B1);   // lettura dell'ingresso
  if (val1 == HIGH) {               // controlla se il pulsante è premuto
    digitalWrite(BUZZER, HIGH);   // suona il cicalino
  }
  else if (val1 == LOW) {              // controlla se il pulsante viene rilasciato
    digitalWrite(BUZZER, LOW);    // suona il cicalino
  }

  val2 = digitalRead(B2);   // lettura dell'ingresso
  if (val2 == HIGH) {               // controlla se il pulsante è premuto
    digitalWrite(BUZZER, HIGH);   // suona il cicalino
  }
  else if (val2 == LOW) {              // controlla se il pulsante viene rilasciato
    digitalWrite(BUZZER, LOW);    // suona il cicalino
  }

  val3 = digitalRead(B3);   // lettura dell'ingresso
  if (val3 == HIGH) {               // controlla se il pulsante è premuto
    digitalWrite(BUZZER, HIGH);   // suona il cicalino
  }
  else if (val3 == LOW) {              // controlla se il pulsante viene rilasciato
    digitalWrite(BUZZER, LOW);    // suona il cicalino
  }

  val4 = digitalRead(B4);   // lettura dell'ingresso
  if (val4 == HIGH) {               // controlla se il pulsante è premuto
    digitalWrite(BUZZER, HIGH);   // suona il cicalino
  }
  else if (val4 == LOW) {              // controlla se il pulsante viene rilasciato
    digitalWrite(BUZZER, LOW);    // suona il cicalino
  }
}

And this is the result of the compiling: :4:5: error: expected unqualified-id before numeric constant

  if (val1 == HIGH) {               // controlla se il pulsante è premuto
    digitalWrite(BUZZER, HIGH);   // suona il cicalino
  }
  else if (val1 == LOW) {              // controlla se il pulsante viene rilasciato

The digitalRead() function returns either HIGH or LOW. There is no other possible return code. If the value is not HIGH, it MUST be LOW. There is no reason to test for LOW in the else case.

B1 is typedef'ed as a constant, somewhere. You can't use that name as the name of a variable.

In the Arduino core there is a file called 'binary.h' that defines names for a bunch of binary constants for people too lazy to learn how to write binary constants:

#define B0 0
#define B00 0
#define B000 0
#define B0000 0
#define B00000 0
#define B000000 0
#define B0000000 0
#define B00000000 0
#define B1 1
#define B01 1
#define B001 1
#define B0001 1
#define B00001 1
#define B000001 1
#define B0000001 1
#define B00000001 1
#define B10 2
#define B010 2
#define B0010 2
#define B00010 2
#define B000010 2
#define B0000010 2
#define B00000010 2
.
.
.

This prevents you from having a variable named B0, B1, B10, B11... Basically, any name with B followed by up to 8 ones and/or zeroes is already defined and can't be used in an Arduino sketch. :(

Of course they should have just told people how to use the existing binary constant syntax:

0b0, 0b1, 0b10, 0b11

Thanks now compile. And you are right, I don't know why I insert the control on the low value...Perfect :)