stan function

Mode stan(
  1. Highlight hljs
)

Highlight.js language definition for stan.

Implementation

Mode stan(Highlight hljs) {
  final Mode mode0 = Mode();
  final Mode mode1 = Mode();
  final Mode mode2 = Mode();
  mode0.scope = r'comment';
  mode0.begin = r'//';
  mode0.end = r'$';
  mode0.contains = [mode1, mode2];
  mode1.scope = r'doctag';
  mode1.begin = r'[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)';
  mode1.end = r'(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):';
  mode1.excludeBegin = true;
  mode1.relevance = 0;
  mode2.begin =
      r"[ ]+((?:I|a|is|so|us|to|at|if|in|it|on|[A-Za-z]+['](d|ve|re|ll|t|s|n)|[A-Za-z]+[-][a-z]+|[A-Za-z][a-z]{2,})[.]?[:]?([.][ ]|[ ])){3}";
  return Mode(
    name: r'Stan',
    aliases: [r'stanfuncs'],
    keywords: {
      r'$pattern': r'[a-zA-Z]\w*',
      r'title': [
        r'functions',
        r'model',
        r'data',
        r'parameters',
        r'quantities',
        r'transformed',
        r'generated',
      ],
      r'type': [
        r'array',
        r'tuple',
        r'complex',
        r'int',
        r'real',
        r'vector',
        r'complex_vector',
        r'ordered',
        r'positive_ordered',
        r'simplex',
        r'unit_vector',
        r'row_vector',
        r'complex_row_vector',
        r'matrix',
        r'complex_matrix',
        r'cholesky_factor_corr|10',
        r'cholesky_factor_cov|10',
        r'corr_matrix|10',
        r'cov_matrix|10',
        r'void',
      ],
      r'keyword': [
        r'for',
        r'in',
        r'if',
        r'else',
        r'while',
        r'break',
        r'continue',
        r'return',
      ],
      r'built_in': [
        r'abs',
        r'acos',
        r'acosh',
        r'add_diag',
        r'algebra_solver',
        r'algebra_solver_newton',
        r'append_array',
        r'append_col',
        r'append_row',
        r'asin',
        r'asinh',
        r'atan',
        r'atan2',
        r'atanh',
        r'bessel_first_kind',
        r'bessel_second_kind',
        r'binary_log_loss',
        r'block',
        r'cbrt',
        r'ceil',
        r'chol2inv',
        r'cholesky_decompose',
        r'choose',
        r'col',
        r'cols',
        r'columns_dot_product',
        r'columns_dot_self',
        r'complex_schur_decompose',
        r'complex_schur_decompose_t',
        r'complex_schur_decompose_u',
        r'conj',
        r'cos',
        r'cosh',
        r'cov_exp_quad',
        r'crossprod',
        r'csr_extract',
        r'csr_extract_u',
        r'csr_extract_v',
        r'csr_extract_w',
        r'csr_matrix_times_vector',
        r'csr_to_dense_matrix',
        r'cumulative_sum',
        r'dae',
        r'dae_tol',
        r'determinant',
        r'diag_matrix',
        r'diagonal',
        r'diag_post_multiply',
        r'diag_pre_multiply',
        r'digamma',
        r'dims',
        r'distance',
        r'dot_product',
        r'dot_self',
        r'eigendecompose',
        r'eigendecompose_sym',
        r'eigenvalues',
        r'eigenvalues_sym',
        r'eigenvectors',
        r'eigenvectors_sym',
        r'erf',
        r'erfc',
        r'exp',
        r'exp2',
        r'expm1',
        r'falling_factorial',
        r'fdim',
        r'fft',
        r'fft2',
        r'floor',
        r'fma',
        r'fmax',
        r'fmin',
        r'fmod',
        r'gamma_p',
        r'gamma_q',
        r'generalized_inverse',
        r'get_imag',
        r'get_real',
        r'head',
        r'hmm_hidden_state_prob',
        r'hmm_marginal',
        r'hypot',
        r'identity_matrix',
        r'inc_beta',
        r'integrate_1d',
        r'integrate_ode',
        r'integrate_ode_adams',
        r'integrate_ode_bdf',
        r'integrate_ode_rk45',
        r'int_step',
        r'inv',
        r'inv_cloglog',
        r'inv_erfc',
        r'inverse',
        r'inverse_spd',
        r'inv_fft',
        r'inv_fft2',
        r'inv_inc_beta',
        r'inv_logit',
        r'inv_Phi',
        r'inv_sqrt',
        r'inv_square',
        r'is_inf',
        r'is_nan',
        r'lambert_w0',
        r'lambert_wm1',
        r'lbeta',
        r'lchoose',
        r'ldexp',
        r'lgamma',
        r'linspaced_array',
        r'linspaced_int_array',
        r'linspaced_row_vector',
        r'linspaced_vector',
        r'lmgamma',
        r'lmultiply',
        r'log',
        r'log1m',
        r'log1m_exp',
        r'log1m_inv_logit',
        r'log1p',
        r'log1p_exp',
        r'log_determinant',
        r'log_diff_exp',
        r'log_falling_factorial',
        r'log_inv_logit',
        r'log_inv_logit_diff',
        r'logit',
        r'log_mix',
        r'log_modified_bessel_first_kind',
        r'log_rising_factorial',
        r'log_softmax',
        r'log_sum_exp',
        r'machine_precision',
        r'map_rect',
        r'matrix_exp',
        r'matrix_exp_multiply',
        r'matrix_power',
        r'max',
        r'mdivide_left_spd',
        r'mdivide_left_tri_low',
        r'mdivide_right_spd',
        r'mdivide_right_tri_low',
        r'mean',
        r'min',
        r'modified_bessel_first_kind',
        r'modified_bessel_second_kind',
        r'multiply_lower_tri_self_transpose',
        r'negative_infinity',
        r'norm',
        r'norm1',
        r'norm2',
        r'not_a_number',
        r'num_elements',
        r'ode_adams',
        r'ode_adams_tol',
        r'ode_adjoint_tol_ctl',
        r'ode_bdf',
        r'ode_bdf_tol',
        r'ode_ckrk',
        r'ode_ckrk_tol',
        r'ode_rk45',
        r'ode_rk45_tol',
        r'one_hot_array',
        r'one_hot_int_array',
        r'one_hot_row_vector',
        r'one_hot_vector',
        r'ones_array',
        r'ones_int_array',
        r'ones_row_vector',
        r'ones_vector',
        r'owens_t',
        r'Phi',
        r'Phi_approx',
        r'polar',
        r'positive_infinity',
        r'pow',
        r'print',
        r'prod',
        r'proj',
        r'qr',
        r'qr_Q',
        r'qr_R',
        r'qr_thin',
        r'qr_thin_Q',
        r'qr_thin_R',
        r'quad_form',
        r'quad_form_diag',
        r'quad_form_sym',
        r'quantile',
        r'rank',
        r'reduce_sum',
        r'reject',
        r'rep_array',
        r'rep_matrix',
        r'rep_row_vector',
        r'rep_vector',
        r'reverse',
        r'rising_factorial',
        r'round',
        r'row',
        r'rows',
        r'rows_dot_product',
        r'rows_dot_self',
        r'scale_matrix_exp_multiply',
        r'sd',
        r'segment',
        r'sin',
        r'singular_values',
        r'sinh',
        r'size',
        r'softmax',
        r'sort_asc',
        r'sort_desc',
        r'sort_indices_asc',
        r'sort_indices_desc',
        r'sqrt',
        r'square',
        r'squared_distance',
        r'step',
        r'sub_col',
        r'sub_row',
        r'sum',
        r'svd',
        r'svd_U',
        r'svd_V',
        r'symmetrize_from_lower_tri',
        r'tail',
        r'tan',
        r'tanh',
        r'target',
        r'tcrossprod',
        r'tgamma',
        r'to_array_1d',
        r'to_array_2d',
        r'to_complex',
        r'to_int',
        r'to_matrix',
        r'to_row_vector',
        r'to_vector',
        r'trace',
        r'trace_gen_quad_form',
        r'trace_quad_form',
        r'trigamma',
        r'trunc',
        r'uniform_simplex',
        r'variance',
        r'zeros_array',
        r'zeros_int_array',
        r'zeros_row_vector',
      ],
    },
    contains: [
      mode0,
      Mode(
        scope: r'meta',
        begin: r'#include\b',
        end: r'$',
        contains: [
          Mode(match: r'[a-z][a-z-._]+', scope: r'string'),
          mode0,
        ],
      ),
      Mode(
        scope: r'comment',
        begin: r'#',
        end: r'$',
        contains: [
          Mode(
            scope: r'doctag',
            begin: r'[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)',
            end: r'(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):',
            excludeBegin: true,
            relevance: 0,
          ),
          Mode(
            begin:
                r"[ ]+((?:I|a|is|so|us|to|at|if|in|it|on|[A-Za-z]+['](d|ve|re|ll|t|s|n)|[A-Za-z]+[-][a-z]+|[A-Za-z][a-z]{2,})[.]?[:]?([.][ ]|[ ])){3}",
          ),
        ],
      ),
      Mode(
        scope: r'comment',
        begin: r'\/\*',
        end: r'\*\/',
        contains: [
          Mode(scope: r'doctag', match: r'@(return|param)'),
          Mode(
            scope: r'doctag',
            begin: r'[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)',
            end: r'(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):',
            excludeBegin: true,
            relevance: 0,
          ),
          Mode(
            begin:
                r"[ ]+((?:I|a|is|so|us|to|at|if|in|it|on|[A-Za-z]+['](d|ve|re|ll|t|s|n)|[A-Za-z]+[-][a-z]+|[A-Za-z][a-z]{2,})[.]?[:]?([.][ ]|[ ])){3}",
          ),
        ],
        relevance: 0,
      ),
      Mode(
        scope: r'built_in',
        match: r'\s(pi|e|sqrt2|log2|log10)(?=\()',
        relevance: 0,
      ),
      Mode(
        match: r'[<,]\s*(?:lower|upper|offset|multiplier)\s*=',
        keywords: [r'lower', r'upper', r'offset', r'multiplier'],
      ),
      Mode(scope: r'keyword', match: r'\btarget(?=\s*\+=)'),
      Mode(
        match: [
          r'~\s*',
          r'(?:bernoulli|bernoulli_logit|bernoulli_logit_glm|beta|beta_binomial|beta_proportion|binomial|binomial_logit|categorical|categorical_logit|categorical_logit_glm|cauchy|chi_square|dirichlet|discrete_range|double_exponential|exp_mod_normal|exponential|frechet|gamma|gaussian_dlm_obs|gumbel|hmm_latent|hypergeometric|inv_chi_square|inv_gamma|inv_wishart|inv_wishart_cholesky|lkj_corr|lkj_corr_cholesky|logistic|loglogistic|lognormal|multi_gp|multi_gp_cholesky|multinomial|multinomial_logit|multi_normal|multi_normal_cholesky|multi_normal_prec|multi_student_cholesky_t|multi_student_t|multi_student_t_cholesky|neg_binomial|neg_binomial_2|neg_binomial_2_log|neg_binomial_2_log_glm|normal|normal_id_glm|ordered_logistic|ordered_logistic_glm|ordered_probit|pareto|pareto_type_2|poisson|poisson_log|poisson_log_glm|rayleigh|scaled_inv_chi_square|skew_double_exponential|skew_normal|std_normal|std_normal_log|student_t|uniform|von_mises|weibull|wiener|wishart|wishart_cholesky)',
          r'(?:\(\))',
          r'\s*T(?=\s*\[)',
        ],
        scope: {2: r'built_in', 4: r'keyword'},
      ),
      Mode(
        scope: r'built_in',
        keywords: [
          r'bernoulli',
          r'bernoulli_logit',
          r'bernoulli_logit_glm',
          r'beta',
          r'beta_binomial',
          r'beta_proportion',
          r'binomial',
          r'binomial_logit',
          r'categorical',
          r'categorical_logit',
          r'categorical_logit_glm',
          r'cauchy',
          r'chi_square',
          r'dirichlet',
          r'discrete_range',
          r'double_exponential',
          r'exp_mod_normal',
          r'exponential',
          r'frechet',
          r'gamma',
          r'gaussian_dlm_obs',
          r'gumbel',
          r'hmm_latent',
          r'hypergeometric',
          r'inv_chi_square',
          r'inv_gamma',
          r'inv_wishart',
          r'inv_wishart_cholesky',
          r'lkj_corr',
          r'lkj_corr_cholesky',
          r'logistic',
          r'loglogistic',
          r'lognormal',
          r'multi_gp',
          r'multi_gp_cholesky',
          r'multinomial',
          r'multinomial_logit',
          r'multi_normal',
          r'multi_normal_cholesky',
          r'multi_normal_prec',
          r'multi_student_cholesky_t',
          r'multi_student_t',
          r'multi_student_t_cholesky',
          r'neg_binomial',
          r'neg_binomial_2',
          r'neg_binomial_2_log',
          r'neg_binomial_2_log_glm',
          r'normal',
          r'normal_id_glm',
          r'ordered_logistic',
          r'ordered_logistic_glm',
          r'ordered_probit',
          r'pareto',
          r'pareto_type_2',
          r'poisson',
          r'poisson_log',
          r'poisson_log_glm',
          r'rayleigh',
          r'scaled_inv_chi_square',
          r'skew_double_exponential',
          r'skew_normal',
          r'std_normal',
          r'std_normal_log',
          r'student_t',
          r'uniform',
          r'von_mises',
          r'weibull',
          r'wiener',
          r'wishart',
          r'wishart_cholesky',
        ],
        begin:
            r'\w*(?:bernoulli|bernoulli_logit|bernoulli_logit_glm|beta|beta_binomial|beta_proportion|binomial|binomial_logit|categorical|categorical_logit|categorical_logit_glm|cauchy|chi_square|dirichlet|discrete_range|double_exponential|exp_mod_normal|exponential|frechet|gamma|gaussian_dlm_obs|gumbel|hmm_latent|hypergeometric|inv_chi_square|inv_gamma|inv_wishart|inv_wishart_cholesky|lkj_corr|lkj_corr_cholesky|logistic|loglogistic|lognormal|multi_gp|multi_gp_cholesky|multinomial|multinomial_logit|multi_normal|multi_normal_cholesky|multi_normal_prec|multi_student_cholesky_t|multi_student_t|multi_student_t_cholesky|neg_binomial|neg_binomial_2|neg_binomial_2_log|neg_binomial_2_log_glm|normal|normal_id_glm|ordered_logistic|ordered_logistic_glm|ordered_probit|pareto|pareto_type_2|poisson|poisson_log|poisson_log_glm|rayleigh|scaled_inv_chi_square|skew_double_exponential|skew_normal|std_normal|std_normal_log|student_t|uniform|von_mises|weibull|wiener|wishart|wishart_cholesky)(_lpdf|_lupdf|_lpmf|_cdf|_lcdf|_lccdf|_qf)(?=\s*[\(.*\)])',
      ),
      Mode(
        begin: [
          r'~',
          r'\s*',
          r'(?:bernoulli|bernoulli_logit|bernoulli_logit_glm|beta|beta_binomial|beta_proportion|binomial|binomial_logit|categorical|categorical_logit|categorical_logit_glm|cauchy|chi_square|dirichlet|discrete_range|double_exponential|exp_mod_normal|exponential|frechet|gamma|gaussian_dlm_obs|gumbel|hmm_latent|hypergeometric|inv_chi_square|inv_gamma|inv_wishart|inv_wishart_cholesky|lkj_corr|lkj_corr_cholesky|logistic|loglogistic|lognormal|multi_gp|multi_gp_cholesky|multinomial|multinomial_logit|multi_normal|multi_normal_cholesky|multi_normal_prec|multi_student_cholesky_t|multi_student_t|multi_student_t_cholesky|neg_binomial|neg_binomial_2|neg_binomial_2_log|neg_binomial_2_log_glm|normal|normal_id_glm|ordered_logistic|ordered_logistic_glm|ordered_probit|pareto|pareto_type_2|poisson|poisson_log|poisson_log_glm|rayleigh|scaled_inv_chi_square|skew_double_exponential|skew_normal|std_normal|std_normal_log|student_t|uniform|von_mises|weibull|wiener|wishart|wishart_cholesky)(?=\s*[\(.*\)])',
        ],
        scope: {3: r'built_in'},
      ),
      Mode(
        begin: [
          r'~',
          r'\s*\w+(?=\s*[\(.*\)])',
          r'(?!.*/((?:bernoulli|bernoulli_logit|bernoulli_logit_glm|beta|beta_binomial|beta_proportion|binomial|binomial_logit|categorical|categorical_logit|categorical_logit_glm|cauchy|chi_square|dirichlet|discrete_range|double_exponential|exp_mod_normal|exponential|frechet|gamma|gaussian_dlm_obs|gumbel|hmm_latent|hypergeometric|inv_chi_square|inv_gamma|inv_wishart|inv_wishart_cholesky|lkj_corr|lkj_corr_cholesky|logistic|loglogistic|lognormal|multi_gp|multi_gp_cholesky|multinomial|multinomial_logit|multi_normal|multi_normal_cholesky|multi_normal_prec|multi_student_cholesky_t|multi_student_t|multi_student_t_cholesky|neg_binomial|neg_binomial_2|neg_binomial_2_log|neg_binomial_2_log_glm|normal|normal_id_glm|ordered_logistic|ordered_logistic_glm|ordered_probit|pareto|pareto_type_2|poisson|poisson_log|poisson_log_glm|rayleigh|scaled_inv_chi_square|skew_double_exponential|skew_normal|std_normal|std_normal_log|student_t|uniform|von_mises|weibull|wiener|wishart|wishart_cholesky)))',
        ],
        scope: {2: r'title.function'},
      ),
      Mode(
        scope: r'title.function',
        begin: r'\w*(_lpdf|_lupdf|_lpmf|_cdf|_lcdf|_lccdf|_qf)(?=\s*[\(.*\)])',
      ),
      Mode(
        scope: r'number',
        match:
            r'(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:[eE][+-]?\d+(?:_\d+)*)?i?(?!\w)',
        relevance: 0,
      ),
      Mode(scope: r'string', begin: r'"', end: r'"'),
    ],
  );
}