expected constructor, destructor, or type conversion before '(' token

i am trying to prepare a code for irrigation system using gsm and arduino mega.
i just face a problem relating to serial communication which is
exit status 1
{expected constructor, destructor, or type conversion before '(' token}

#include<SoftwareSerial.h>
Serial1(3,2);
#include<LiquidCrystal.h>
LiquidCrystal lcd(14,15,16,17,18,19);
int led1=31;
int led2=32;
int led3=33;
int led4=34;
int flag=0;
String str="";
#define motor1 40
#define motor2 41
#define motor3 42
#define motor4 43
#define sensor1 45
#define sensor2 46
#define sensor3 47
#define sensor4 48
void setup()
{
lcd.begin(16,2);
Serial1.begin(9600);
Serial.begin(9600);
pinMode(led1, OUTPUT);
pinMode(motor1, OUTPUT);
pinMode(sensor1, INPUT_PULLUP);
pinMode(led2, OUTPUT);
pinMode(motor2, OUTPUT);
pinMode(sensor2, INPUT_PULLUP);
pinMode(led3, OUTPUT);
pinMode(motor3, OUTPUT);
pinMode(sensor3, INPUT_PULLUP);
pinMode(led4, OUTPUT);
pinMode(motor4, OUTPUT);
pinMode(sensor4, INPUT_PULLUP);
lcd.print("Water Irrigaton");
lcd.setCursor(4,1);
delay(2000);
lcd.clear();
lcd.print("ITX OPPS");
lcd.setCursor(0,1);
lcd.print("Welcomes You");
delay(2000);
gsmInit();
lcd.clear();
lcd.print("System Ready");
}
void loop()
{
lcd.setCursor(0,0);
lcd.print("Automatic Mode");
if(digitalRead(sensor1)==1 && flag==0)
{
delay(1000);
if(digitalRead(sensor1)==1)
{
digitalWrite(led1, HIGH);
sendSMS("Low Soil Moisture detected in field 1. Motor1 turned ON");
lcd.begin(16,2);
lcd.setCursor(0,1);
lcd.print("Motor1 ON");
digitalWrite(motor1, HIGH);
delay(2000);
flag=1;}
}
else if(digitalRead(sensor1)==0 && flag==1)
{
delay(1000);
if(digitalRead(sensor1)==0)
{
digitalWrite(led1, LOW);
sendSMS("Soil Moisture is Normalin field 1. Motor1 turned OFF");
digitalWrite(motor1, LOW);
lcd.begin(16,2);
lcd.print("Motor1 OFF");
lcd.setCursor(0,1);
lcd.print("Motor1 OFF");
delay(2000);
flag=0; }
}
if(digitalRead(sensor2)==1 && flag==0)
{
delay(1000);
if(digitalRead(sensor2)==1)
{
digitalWrite(led2, HIGH);
sendSMS("Low Soil Moisture detected in field 2. Motor2 turned ON");
lcd.begin(16,2);
lcd.setCursor(0,1);
lcd.print("Motor2 ON");
digitalWrite(motor2, HIGH);
delay(2000);
flag=1;
}
}
else if(digitalRead(sensor2)==0 && flag==1)
{
delay(1000);
if(digitalRead(sensor2)==0)
{
digitalWrite(led2, LOW);
sendSMS("Soil Moisture is Normal in field 2. Motor2 turned OFF");
digitalWrite(motor2, LOW);
lcd.begin(16,2);
lcd.print("Motor2 OFF");
lcd.setCursor(0,1);
lcd.print("Motor2 OFF");
delay(2000);
flag=0;}
}
if(digitalRead(sensor3)==1 && flag==0)
{
delay(1000);
if(digitalRead(sensor3)==1)
{
digitalWrite(led3, HIGH);
sendSMS("Low Soil Moisture detected in field 3. Motor3 turned ON");
lcd.begin(16,2);
lcd.setCursor(0,1);
lcd.print("Motor3 ON");
digitalWrite(motor3, HIGH);
delay(2000);
flag=1;}
}
else if(digitalRead(sensor3)==0 && flag==1)
{
delay(1000);
if(digitalRead(sensor3)==0)
{
digitalWrite(led3, LOW);
sendSMS("Soil Moisture is Normal in field 3. Motor3 turned OFF");
digitalWrite(motor3, LOW);
lcd.begin(16,2);
lcd.print("Motor3 OFF");
lcd.setCursor(0,1);
lcd.print("Motor3 OFF");
delay(2000);
flag=0;}
}
if(digitalRead(sensor4)==1 && flag==0)
{
delay(1000);
if(digitalRead(sensor4)==1)
{
digitalWrite(led4, HIGH);
sendSMS("Low Soil Moisture detected in field 4. Motor4 turned ON");
lcd.begin(16,2);
lcd.setCursor(0,1);
lcd.print("Motor4 ON");
digitalWrite(motor4, HIGH);
delay(2000);
flag=1;}
}
else if(digitalRead(sensor4)==0 && flag==1)
{
delay(1000);
if(digitalRead(sensor4)==0)
{
digitalWrite(led4, LOW);
sendSMS("Soil Moisture is Normal in field 4. Motor4 turned OFF");
digitalWrite(motor4, LOW);
lcd.begin(16,2);
lcd.print("Motor4 OFF");
lcd.setCursor(0,1);
lcd.print("Motor4 OFF");
delay(2000);
flag=0;}
}
}
void sendSMS(String msg)
{
lcd.clear();
lcd.print("Sending SMS");
Serial1.println("AT+CMGF=1");
delay(500);
Serial1.print("AT+CMGS=");
Serial1.print('"');
Serial1.print("+923411046117");// number
Serial1.print('"');
Serial1.println();
delay(500);
Serial1.println(msg);
delay(500);
Serial1.write(26);
delay(1000);
lcd.clear();
lcd.print("SMS Sent");
delay(1000);
lcd.begin(16,2);
}
void gsmInit()
{
lcd.clear();
lcd.print("Finding Module..");
boolean at_flag=1;
while(at_flag)
{
Serial1.println("AT");
while(Serial1.available()>0)
{
if(Serial1.find("OK"))
at_flag=0;
}
delay(1000);
}
Serial1.println("ATE0");
lcd.clear();
lcd.print("Finding Network..");
boolean net_flag=1;
while(net_flag)
{
Serial1.println("AT+CPIN?");
while(Serial1.available()>0)
{
if(Serial1.find("READY"))
net_flag=0;
break;
}
delay(1000);
}
Serial1.println("AT+CNMI=2,2,0,0,0");
delay(1000);
Serial1.println("AT+CMGF=1");
delay(1000);
Serial1.println("AT+CSMP=17,167,0,0");
lcd.clear();
Serial1.flush();
}

Post the COMPLETE error message by coping from the bottom window in the IDE.

Your indenting is atrocious (non-existent). Type ctrl-t in the IDE to auto-format your code. Then re-post it.

Serial1(3,2);

What is THAT supposed to do?

Arduino: 1.6.7 (Windows 10), Board: "Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)"

irrigation:2: error: expected constructor, destructor, or type conversion before '(' token

Serial1(3, 2);

^

C:\Users\M.FAISAL\Documents\Arduino\irrigation\irrigation.ino: In function 'void gsmInit()':

C:\Users\M.FAISAL\Documents\Arduino\irrigation\irrigation.ino:208:28: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

if (Serial1.find("OK"))

^

C:\Users\M.FAISAL\Documents\Arduino\irrigation\irrigation.ino:222:31: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

if (Serial1.find("READY"))

^

exit status 1
expected constructor, destructor, or type conversion before '(' token

This report would have more information with
"Show verbose output during compilation"
enabled in File > Preferences.

irrigation:2: error: expected constructor, destructor, or type conversion before '(' token

Serial1(3, 2);

So, why don't you have something useful before the open paren?

C:\Users\M.FAISAL\Documents\Arduino\irrigation\irrigation.ino:208:28: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
Plenty written on how to avoid this that's-NOT-an-error. I'm not going to repeat it.

@Paul please help me to solve this i am new to programing.

itx-opps:
@Paul please help me to solve this i am new to programing.

Without knowing what you were trying to do with that statement? How can I?

i am trying to use pin 3 and pin 2 as my custom serial for gsm module for serial communication.
in this case i am using arduino mega. i am not elligible to under stand what to do with other serial ports

If you really did need software serial that line should be something like

SoftwareSerial SerialX(2, 3);

HOWEVER

It looks like you're using a Mega, in which case you probably shouldn't be trying to use software serial at all. It's got a bunch of hardware serial interfaces that are easier to use and more reliable and better overall.

Have a read of the documentation here. You'll see the Mega has three auxiliary serial interfaces on pins 14-15, 16-17 and 18-19.

Unfortunately you've used these pins for your LCD so probably you need to rearrange that too. Just move your LCD to some other pins and update the LiquidCrystal lcd(....) line accordingly.

@GypsumFantastic
i have changed the pins of lcd from 14,15---19 to 2,3----7
but still i face the problem

error msg

Arduino: 1.6.7 (Windows 10), Board: "Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)"

irrigation:2: error: expected constructor, destructor, or type conversion before '(' token

Serial1(19, 18);

^

C:\Users\M.FAISAL\Documents\Arduino\irrigation\irrigation.ino: In function 'void gsmInit()':

C:\Users\M.FAISAL\Documents\Arduino\irrigation\irrigation.ino:208:28: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

if (Serial1.find("OK"))

^

C:\Users\M.FAISAL\Documents\Arduino\irrigation\irrigation.ino:222:31: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

if (Serial1.find("READY"))

^

exit status 1
expected constructor, destructor, or type conversion before '(' token

This report would have more information with
"Show verbose output during compilation"
enabled in File > Preferences.

but still i face the problem

You were given the answer, and told that that statement was unnecessary, since you should NOT be incorrectly attempting to create an instance of the SoftwareSerial class.

I won't beat around the bush. DELETE THAT STATEMENT.

PaulS:
I won't beat around the bush. DELETE THAT STATEMENT.

thanks a lot for this all and thanks for helping me

@Paul
i want to know that i have deleted that statement so which pins can i use to connect gsm module
the complete code now is

#include<SoftwareSerial.h>
#include<LiquidCrystal.h>
LiquidCrystal lcd(2,3,4,5,6,7);
int led1 = 31;
int led2 = 32;
int led3 = 33;
int led4 = 34;
int flag = 0;
String str = "";
#define motor1 40
#define motor2 41
#define motor3 42
#define motor4 43
#define sensor1 45
#define sensor2 46
#define sensor3 47
#define sensor4 48
void setup()
{
  lcd.begin(16, 2);
  Serial1.begin(9600);
  Serial.begin(9600);
  pinMode(led1, OUTPUT);
  pinMode(motor1, OUTPUT);
  pinMode(sensor1, INPUT_PULLUP);
  pinMode(led2, OUTPUT);
  pinMode(motor2, OUTPUT);
  pinMode(sensor2, INPUT_PULLUP);
  pinMode(led3, OUTPUT);
  pinMode(motor3, OUTPUT);
  pinMode(sensor3, INPUT_PULLUP);
  pinMode(led4, OUTPUT);
  pinMode(motor4, OUTPUT);
  pinMode(sensor4, INPUT_PULLUP);
  lcd.print("Water Irrigaton");
  lcd.setCursor(4, 1);
  delay(2000);
  lcd.clear();
  lcd.print("ITX OPPS");
  lcd.setCursor(0, 1);
  lcd.print("Welcomes You");
  delay(2000);
  gsmInit();
  lcd.clear();
  lcd.print("System Ready");
}
void loop()
{
  lcd.setCursor(0, 0);
  lcd.print("Automatic Mode");
  if (digitalRead(sensor1) == 1 && flag == 0)
  {
    delay(1000);
    if (digitalRead(sensor1) == 1)
    {
      digitalWrite(led1, HIGH);
      sendSMS("Low Soil Moisture detected in field 1. Motor1 turned ON");
      lcd.begin(16, 2);
      lcd.setCursor(0, 1);
      lcd.print("Motor1 ON");
      digitalWrite(motor1, HIGH);
      delay(2000);
      flag = 1;
    }
  }
  else if (digitalRead(sensor1) == 0 && flag == 1)
  {
    delay(1000);
    if (digitalRead(sensor1) == 0)
    {
      digitalWrite(led1, LOW);
      sendSMS("Soil Moisture is Normalin field 1. Motor1 turned OFF");
      digitalWrite(motor1, LOW);
      lcd.begin(16, 2);
      lcd.print("Motor1 OFF");
      lcd.setCursor(0, 1);
      lcd.print("Motor1 OFF");
      delay(2000);
      flag = 0;
    }
  }
  if (digitalRead(sensor2) == 1 && flag == 0)
  {
    delay(1000);
    if (digitalRead(sensor2) == 1)
    {
      digitalWrite(led2, HIGH);
      sendSMS("Low Soil Moisture detected in field 2. Motor2 turned ON");
      lcd.begin(16, 2);
      lcd.setCursor(0, 1);
      lcd.print("Motor2 ON");
      digitalWrite(motor2, HIGH);
      delay(2000);
      flag = 1;
    }
  }
  else if (digitalRead(sensor2) == 0 && flag == 1)
  {
    delay(1000);
    if (digitalRead(sensor2) == 0)
    {
      digitalWrite(led2, LOW);
      sendSMS("Soil Moisture is Normal in field 2. Motor2 turned OFF");
      digitalWrite(motor2, LOW);
      lcd.begin(16, 2);
      lcd.print("Motor2 OFF");
      lcd.setCursor(0, 1);
      lcd.print("Motor2 OFF");
      delay(2000);
      flag = 0;
    }
  }
  if (digitalRead(sensor3) == 1 && flag == 0)
  {
    delay(1000);
    if (digitalRead(sensor3) == 1)
    {
      digitalWrite(led3, HIGH);
      sendSMS("Low Soil Moisture detected in field 3. Motor3 turned ON");
      lcd.begin(16, 2);
      lcd.setCursor(0, 1);
      lcd.print("Motor3 ON");
      digitalWrite(motor3, HIGH);
      delay(2000);
      flag = 1;
    }
  }
  else if (digitalRead(sensor3) == 0 && flag == 1)
  {
    delay(1000);
    if (digitalRead(sensor3) == 0)
    {
      digitalWrite(led3, LOW);
      sendSMS("Soil Moisture is Normal in field 3. Motor3 turned OFF");
      digitalWrite(motor3, LOW);
      lcd.begin(16, 2);
      lcd.print("Motor3 OFF");
      lcd.setCursor(0, 1);
      lcd.print("Motor3 OFF");
      delay(2000);
      flag = 0;
    }
  }
  if (digitalRead(sensor4) == 1 && flag == 0)
  {
    delay(1000);
    if (digitalRead(sensor4) == 1)
    {
      digitalWrite(led4, HIGH);
      sendSMS("Low Soil Moisture detected in field 4. Motor4 turned ON");
      lcd.begin(16, 2);
      lcd.setCursor(0, 1);
      lcd.print("Motor4 ON");
      digitalWrite(motor4, HIGH);
      delay(2000);
      flag = 1;
    }
  }
  else if (digitalRead(sensor4) == 0 && flag == 1)
  {
    delay(1000);
    if (digitalRead(sensor4) == 0)
    {
      digitalWrite(led4, LOW);
      sendSMS("Soil Moisture is Normal in field 4. Motor4 turned OFF");
      digitalWrite(motor4, LOW);
      lcd.begin(16, 2);
      lcd.print("Motor4 OFF");
      lcd.setCursor(0, 1);
      lcd.print("Motor4 OFF");
      delay(2000);
      flag = 0;
    }
  }
}
void sendSMS(String msg)
{
  lcd.clear();
  lcd.print("Sending SMS");
  Serial1.println("AT+CMGF=1");
  delay(500);
  Serial1.print("AT+CMGS=");
  Serial1.print('"');
  Serial1.print("+923411046117");// number
  Serial1.print('"');
  Serial1.println();
  delay(500);
  Serial1.println(msg);
  delay(500);
  Serial1.write(26);
  delay(1000);
  lcd.clear();
  lcd.print("SMS Sent");
  delay(1000);
  lcd.begin(16, 2);
}
void gsmInit()
{
  lcd.clear();
  lcd.print("Finding Module..");
  boolean at_flag = 1;
  while (at_flag)
  {
    Serial1.println("AT");
    while (Serial1.available() > 0)
    {
      if (Serial1.find("OK"))
        at_flag = 0;
    }
    delay(1000);
  }
  Serial1.println("ATE0");
  lcd.clear();
  lcd.print("Finding Network..");
  boolean net_flag = 1;
  while (net_flag)
  {
    Serial1.println("AT+CPIN?");
    while (Serial1.available() > 0)
    {
      if (Serial1.find("READY"))
        net_flag = 0;
      break;
    }
    delay(1000);
  }
  Serial1.println("AT+CNMI=2,2,0,0,0");
  delay(1000);
  Serial1.println("AT+CMGF=1");
  delay(1000);
  Serial1.println("AT+CSMP=17,167,0,0");
  lcd.clear();
  Serial1.flush();
}

so which pins can i use to connect gsm module

The TX1/RX1, TX2/RX2, or TX3/RX3 pins. Then, use Serial1, Serial2, or Serial3 instance of the HardwareSerial class, to talk to/read from the device.