Sintax error; parser expected: "]"

Hi. I’m new with stan and I’m trying to get used to the language by writing models and checking if they’re syntactically correct. I have a problem with the script below, and I couldn’t figure out what is going on. I’m really stuck with this, so I really appreciate your help!

// stan test 3.5

functions {
  real[] sho(real t,
            real[] y,
            real[] theta,
            real[] x_r,
            int[] x_i) {
  real dydt_1 = y[2];
  real dydt_2 = -y[1] - theta[1] * y[2];
  return {dydt_1, dydt_2};
  }
}

data {
  int T;
  int N;
  real y0[2];
  real t0;
  real ts[T];
  real y[N, T, 2];
}

transformed data {
  real x_r[0];
  int x_i[0];
}

parameters {
  real <lower=0> sigma;
  real theta[1];
}

transformed parameters {
  real y_hat[N, T, 2];
  
  for (n in 1:N){
      real y_hat[n, , ] = integrate_ode_rk45(sho, y0, t0, ts, theta, x_r, x_i);
  }
}

model {
  // priors
  sigma ~ normal(0.2, 0.1);
  //for (n in 1:N){
  theta[1] ~ normal(1.2, 0.4);
  //}

  // noise
  for(n in 1:N){
    y[n , ,1] ~ normal(y_hat[n, ,1], sigma);
    y[n , ,2] ~ normal(y_hat[n, ,2], sigma);
  }
}

the error message I got was the following:

SYNTAX ERROR, MESSAGE(S) FROM PARSER:
error in ‘model37c66c4978_stan_test_3’ at line 38, column 18

36:   
37:   for (n in 1:N){
38:       real y_hat[n, , ] = integrate_ode_rk45(sho, y0, t0, ts, theta, x_r, x_i);
                     ^
39:   }

PARSER EXPECTED: “]”
Error in stanc(filename, allow_undefined = TRUE) :
failed to parse Stan model ‘stan test 3’ due to the above error.

I tried to fix it by changing the line to :

real y_hat[n] = integrate_ode_rk45(sho, y0, t0, ts, theta, x_r, x_i);

but it didn’t work. I’m using rstan 2.21.2 on Rstudio (r version 4.1.0)

Thanks !

Its because you still have the real statement like it’s a parameter declaration:

real y_hat[n, , ] =

Try removing the leading real

Thank you ! that solved the syntax problem.