error: expected unqualified-id before numeric constant

so ive been working on this bit of code for a few days now and my goal is to build an electronic door lock using a 12 key keypad and a stepper motor. line 80 - 86 give me this error and i can t figure out whats wrong exactly. can some one please read through and make suggestions for change or efficency or just general problems in the design of my coding as i am self teaching myself.

the main i dea is that using a 12 key keypad and a single push button that lights up u can operate a door lock by pressing the push button 2x then entering a passcode and the motor will either lock or unlock depending on the position of the motor.

thanks.

#include <Keypad.h>
const byte ROWS = 4; //Four Rows
const byte COLS = 3; //Four Columns
char keys[ROWS][COLS] = {
  {'1','2','3'},
  {'4','5','6'},
  {'7','8','8'},
  {'#','0','*'}
};
//Connect keypad ROW0, ROW1, ROW2 and ROW3 to these Arduino pins.
byte rowPins[ROWS] = {7, 6, 5, 3};
//Connect keypad COL0, COL1 and COL2 to these Arduino pins.
byte colPins[COLS] = {4, 3, 2}; 

// Create the Keypad
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

//this wont change
const int TLB = 11;
const int TLBLight = 12;
String SAMCODE =('8' + '4' +'6' + '*');
String WILLCODE = ('3' + '7' + '2' + '*');

//Variables
int TLBCount = 0;
int Buttonstate = 0;
int LastButtonstate =0;



void setup(){
  //Set Pins 2-8 To INPUT from Keypad 
  pinMode(2, INPUT); //Keypad Pin 1
  pinMode(3, INPUT); //Keypad Pin 2
  pinMode(4, INPUT); //Keypad Pin 4
  pinMode(5, INPUT); //Keypad Pin 3
  pinMode(6, INPUT); //Keypad Pin 5
  pinMode(7, INPUT); //Keypad Pin 6
  pinMode(8, INPUT); //Keypad Pin 7
  //Set Pins 9 and 10 To StepperDriver
  pinMode(9, OUTPUT); //Stepper DIR
  pinMode(10, OUTPUT);//Stepper STEP
  //Set Pins 11 and 12 to Tactile Light Button
  pinMode(TLB, INPUT); //TLB Button Press Watch
  pinMode(TLBLight, OUTPUT);//TLB Light Trigger 
}
void loop(){
  start:
  //reads pin 11 for double button press
  Buttonstate = digitalRead(TLB);
  //if TLB presses is less than 1 do nothing
  if (Buttonstate != LastButtonstate) {
  //STart counting TLB Presses
  if (Buttonstate == HIGH){
      TLBCount++;
      //Light TLB when HIGH
      digitalWrite(TLBLight, HIGH);
   }
    else{
      digitalWrite(TLBLight, LOW);//Dont lght when not pressed
      goto start;
    }
  }
  LastButtonstate = Buttonstate;
  
  //If doubltap on TLB start Looking for pincode form keypad
  if (TLBCount % 2 == 0){
    //Blink TLB light x3
      digitalWrite(TLBLight, HIGH);
      delay(50);
      digitalWrite(TLBLight, LOW);
      delay(50);
      digitalWrite(TLBLight, HIGH);
      delay(50);
      digitalWrite(TLBLight, LOW);
      delay(50);
      digitalWrite(TLBLight, HIGH);
      delay(50);
      digitalWrite(TLBLight, LOW);
      //Start looking for input on keypad. 
      char PIN1 = keypad.getKey();
    
      char PIN2 = keypad.getKey();

      char PIN3 = keypad.getKey();

      char PIN4 = keypad.getKey();
    
      String PIN  = ('PIN1' + 'PIN2' + 'PIN3' + 'PIN4');
    if (PIN == SAMCODE){
    //Blink TLB light x3
      digitalWrite(TLBLight, HIGH);
      delay(50);
      digitalWrite(TLBLight, LOW);
      delay(50);
      digitalWrite(TLBLight, HIGH);
      delay(50);
      digitalWrite(TLBLight, LOW);
      delay(50);
      digitalWrite(TLBLight, HIGH);
      delay(50);
      digitalWrite(TLBLight, LOW);
    //Replace with stepper code
    }else{
      goto start;
    }
    if (PIN == WILLCODE){
    //Blink TLB light x3
      digitalWrite(TLBLight, HIGH);
      delay(50);
      digitalWrite(TLBLight, LOW);
      delay(50);
      digitalWrite(TLBLight, HIGH);
      delay(50);
      digitalWrite(TLBLight, LOW);
      delay(50);
      digitalWrite(TLBLight, HIGH);
      delay(50);
      digitalWrite(TLBLight, LOW);
    //replace with stepper code
    }else{
      goto start;
    }
  }
}  

    //move stepper __degrees one direction if stepper at this POINT A,
    //move the motor  __ degrees opposite direction if at POINT B.

i manged to fix the unqualified id error by changing this:

char PIN1 = keypad.getKey();
char PIN2 = keypad.getKey();
char PIN3 = keypad.getKey();
char PIN4 = keypad.getKey();

into this

//Start looking for input on keypad. 
       PIN1 == keypad.getKey();
    
       PIN2 == keypad.getKey();

       PIN3 == keypad.getKey();

       PIN4 == keypad.getKey();

the last problems untill i add the stepper portion of the code are :

KEYPAD_LOCK.cpp: In function 'void loop()': KEYPAD_LOCK:89: error: expected primary-expression before 'PIN' KEYPAD_LOCK:89: error: expected )' before 'PIN' KEYPAD_LOCK:106: error: expected primary-expression before 'PIN' KEYPAD_LOCK:106: error: expected)' before 'PIN' which is this part of the code:

   PIN4 == keypad.getKey();
    
      String PIN  = ('PIN1' + 'PIN2' + 'PIN3' + 'PIN4');
    if (String PIN == String SAMCODE){
    //Blink TLB light x3
      digitalWrite(TLBLight, HIGH);
String PIN  = ('PIN1' + 'PIN2' + 'PIN3' + 'PIN4');

Not what you want.

"PIN1" is the name of a variable, not what it contains. (it is also pre-defined in one of the headers, so try naming it "pin1" instead)

(please, get rid of the "goto" before someone else notices it)

PIN1 == keypad.getKey();

Just getting rid of an error message doesn't mean you've fixed something. Here, you call "getKey", and compare the return value to the value "PIN1", then you throw away the result of the comparison. I don't believe that is what you intended.

so your saying i need to save the get key char as pin1 instead of just comparing it to another name? if i added something like if (PIN1 != NO_KEY){ Pin1 = PIN1 } after each one would i be fixing some of the problem?

No, PIN1 is defined as 1, so calling anything PIN1 is a bad idea.

Here's your code:

char PIN1 = keypad.getKey();

This is what the compiler sees:

char 1 = keypad.getKey();

See the problem?

Ok i get it so i need to name it something completely different from PIN1. Something Like CODEa, CODEb, CODEc, and CODEd.

Well, it is kind of a convention that things that are "#define"d use uppercase characters, which is why you got this problem in the first place, so try not to use things like that