Semantic error

while checking Stan code I got this type of error, and running the same code multiple times it shows different errors each time, please help me how to fix this type of error, my code is like this


functions{real poissonISG_lpdf(real y, real alpha, real beta, real lambda){
return log(beta)+log(lambda)- log(1 - exp(-lambda))- 2log(x) + log(1+alpha(1 - exp(-(beta1/x))))- (beta1/x) - alphaexp(-(beta1/x)) -lambda*(1-exp(-(beta1/x)))exp(-alphaexp(-(beta1/x)));
}
}

data{
int N;
real y[N];
}

parameters{
real <lower=0> alpha;
real <lower=0> beta;
real <lower=0> lambda;
}

model{
for(i in 1 : N){
y[i]~ poissonISG(alpha, beta, lambda);
}
alpha~ gamma(0.5, 0.5);
beta~ gamma(0.1, 0.1);
lambda~ gamma(0.1, 0.1);
}


I got this type of error;
rstan:::rstudio_stanc(“D:/Research_World/PhD Thesis/Poisson_ISG/PISG_Bayesian/PSIG.stan”)
Error in stanc(filename, allow_undefined = TRUE) : 0
Semantic error in ‘string’, line 2, column 61 to column 62:
Identifier ‘x’ not in scope.

First glimpse shows that a couple of variables in the function are not defined, like x, beta1(or beta/x maybe?), etc. Also 2log(x) should be 2*log(x). It depends on Stan version but in general Stan’s error msgs are rather clear, following them can lead to resolution in most cases.

Thank you so much

I have corrected them as you suggest again get errors

functions{real poissonISG_lpdf(real y, real alpha, real beta, real lambda){
  return log(beta)+log(lambda)- log(1 - exp(-lambda))- 2*log(y) + log(1+alpha*(1 - exp(-(beta*1/y))))- 
  (beta*1/y) - alpha*exp(-(beta*1/y)) -lambda*(1-exp(-(beta*1/y)))*exp(-alpha*exp(-(beta*1/y)));
 }
}

data{
  int N;
  real y[N];
}

parameters{
  real <lower=0> alpha;
  real <lower=0> beta;
  real <lower=0> lambda;
}

model{
  for(i in 1 : N){
    y[i]~ poissonISG(alpha, beta, lambda);
  }
  alpha~ gamma(0.5, 0.5);
  beta~ gamma(0.1, 0.1);
  lambda~ gamma(0.1, 0.1);
}

Error in first run
Error in stanc(filename, allow_undefined = TRUE) : 0

Syntax error in ‘string’, line 8, column 9 to column 10, parsing error:

Expected “generated quantities {” or end of file after end of model block.

Error in second run with same code got different errors, please help me to fix this type of errors

rstan:::rstudio_stanc(“D:/Research_World/PhD Thesis/Poisson_ISG/PISG_Bayesian/PSIG.stan”)
Error in stanc(filename, allow_undefined = TRUE) : 0

Syntax error in ‘string’, line 11, column 15 to column 16, parsing error:

Expected “generated quantities {” or end of file after end of model block.

This is a known bug with the 2.26 preview, where a single failed model will cause all future models to fail parsing. You just need to restart your R session and try your model again

Thanks now it working after re-start

@andrjohns I have an open PR to fix this Fix issue with recompiling stan code by WardBrian · Pull Request #988 · stan-dev/rstan · GitHub