Hello, I am trying to generate new variables with the use of macros and having issues with the syntax. Would anyone be able to help me with this please? Thank you!

Issue 1: I have 500 variables named bsw1-bsw500. Now I want to generate new variables based from these 500 variables by multiplying each of the variables with a variable called "product1" .
My desired output would be 500 new variables named p1bsw1 p1bsw2 p1bsw3...p1bsw500. This is the code that I am using but it returns an "invalid syntax" error.

Code:
gen product1=123456*54321
local bswtemp “bsw1-bsw500”
foreach x of local bswtemp{
gen p1`x'=`x'*product1
}

issue 2 : Again using the 500 bsw1-bsw500 variables, I want to create new variables where each of the bsw variables would have a suffix attached to it. The suffix will come from the categories of the variable wave. Wave is composed of years 2003 2004 2005....So my desired output is that if bsw1 is found in wave==2003, the generated output should be bsw1_2003. If bsw2 is found in both 2003 and 2004, there should be two variables generated named bsw2_2003 and bsw_2004

Code:
local bswtemp “bsw1-bsw500”
levelsof wave, local(levels)
foreach x of local bswtemp{
gen`x’`levels’=`x’ if `levels’==`levels’
}
This code returns an error that says "bsw1 is already defined"