From 31c75286dd7a67c73569b18c286730a1ae056d15 Mon Sep 17 00:00:00 2001 From: Steve Bronder Date: Wed, 10 Jul 2024 13:27:17 -0400 Subject: [PATCH 01/10] dune format --- src/analysis_and_optimization/Mir_utils.ml | 2 +- src/frontend/Ast_to_Mir.ml | 16 +- src/frontend/Pretty_printing.ml | 6 +- src/frontend/Typechecker.ml | 2 + src/frontend/lexer.mll | 2 + src/frontend/parser.messages | 487 +++++++++++++----- src/frontend/parser.mly | 5 + src/middle/Transformation.ml | 6 +- src/stan_math_backend/Lower_expr.ml | 2 + .../integration/good/stochastic_matrices.stan | 23 + test/unit/Debug_data_generation_tests.ml | 20 +- 11 files changed, 439 insertions(+), 132 deletions(-) create mode 100644 test/integration/good/stochastic_matrices.stan diff --git a/src/analysis_and_optimization/Mir_utils.ml b/src/analysis_and_optimization/Mir_utils.ml index cddaaf328..505aba198 100644 --- a/src/analysis_and_optimization/Mir_utils.ml +++ b/src/analysis_and_optimization/Mir_utils.ml @@ -61,7 +61,7 @@ let trans_bounds_values (trans : Expr.Typed.t Transformation.t) : bound_values = until we define a distribution which accepts a tuple, this doesn't matter. *) - |TupleTransformation _ -> + |TupleTransformation _ | StochasticColumn | StochasticRow -> {lower= `None; upper= `None} let chop_dist_name (fname : string) : string Option.t = diff --git a/src/frontend/Ast_to_Mir.ml b/src/frontend/Ast_to_Mir.ml index e62edb9d0..7494ce64a 100644 --- a/src/frontend/Ast_to_Mir.ml +++ b/src/frontend/Ast_to_Mir.ml @@ -271,7 +271,8 @@ let check_transform_shape decl_id decl_var meta = function same_shape decl_id decl_var "lower" e1 meta @ same_shape decl_id decl_var "upper" e2 meta | Covariance | Correlation | CholeskyCov | CholeskyCorr | Ordered - |PositiveOrdered | Simplex | UnitVector | Identity | TupleTransformation _ -> + |PositiveOrdered | Simplex | UnitVector | Identity | TupleTransformation _ + |StochasticRow | StochasticColumn -> [] let copy_indices indexed (var : Expr.Typed.t) = @@ -294,7 +295,8 @@ let extract_transform_args var = function | LowerUpper (a1, a2) | OffsetMultiplier (a1, a2) -> [copy_indices var a1; copy_indices var a2] | Covariance | Correlation | CholeskyCov | CholeskyCorr | Ordered - |PositiveOrdered | Simplex | UnitVector | Identity | TupleTransformation _ -> + |PositiveOrdered | Simplex | UnitVector | Identity | TupleTransformation _ + |StochasticRow | StochasticColumn -> [] let rec param_size transform sizedtype = @@ -339,6 +341,16 @@ let rec param_size transform sizedtype = | Simplex -> shrink_eigen (fun d -> Expr.Helpers.(binop d Minus (int 1))) sizedtype | CholeskyCorr | Correlation -> shrink_eigen k_choose_2 sizedtype + | StochasticRow -> ( + match sizedtype with + | SMatrix (mem_pattern, d1, d2) -> + SMatrix (mem_pattern, d1, Expr.Helpers.(binop d2 Minus (int 1))) + | _ -> sizedtype) + | StochasticColumn -> ( + match sizedtype with + | SMatrix (mem_pattern, d1, d2) -> + SMatrix (mem_pattern, Expr.Helpers.(binop d1 Minus (int 1)), d2) + | _ -> sizedtype) | CholeskyCov -> (* (N * (N + 1)) / 2 + (M - N) * N *) shrink_eigen_mat diff --git a/src/frontend/Pretty_printing.ml b/src/frontend/Pretty_printing.ml index cc3bb5fd8..f0c53cd36 100644 --- a/src/frontend/Pretty_printing.ml +++ b/src/frontend/Pretty_printing.ml @@ -322,7 +322,9 @@ let pp_bracketed_transform ppf = function pf ppf "<@[offset=%a,@ multiplier=%a@]>" pp_expression e1 pp_expression e2 | Identity | Ordered | PositiveOrdered | Simplex | UnitVector | CholeskyCorr |CholeskyCov | Correlation | Covariance | TupleTransformation _ - (* tuple transformations are handled in pp_transformed_type *) -> + |StochasticColumn + |StochasticRow (* tuple transformations are handled in pp_transformed_type *) + -> () let rec pp_transformed_type ppf (st, trans) = @@ -362,6 +364,8 @@ let rec pp_transformed_type ppf (st, trans) = | CholeskyCov -> pf ppf "cholesky_factor_cov%a" cov_sizes_fmt () | Correlation -> pf ppf "corr_matrix%a" cov_sizes_fmt () | Covariance -> pf ppf "cov_matrix%a" cov_sizes_fmt () + | StochasticColumn -> pf ppf "stochastic_column%a" sizes_fmt () + | StochasticRow -> pf ppf "stochastic_row%a" sizes_fmt () | TupleTransformation transforms -> (* NB this calls the top-level function to handle internal arrays etc *) let transTypes = Middle.Utils.zip_stuple_trans_exn st transforms in diff --git a/src/frontend/Typechecker.ml b/src/frontend/Typechecker.ml index d2786e0f6..b5396db32 100644 --- a/src/frontend/Typechecker.ml +++ b/src/frontend/Typechecker.ml @@ -1615,6 +1615,8 @@ and check_transformation cf tenv ut trans = | CholeskyCov -> CholeskyCov | Correlation -> Correlation | Covariance -> Covariance + | StochasticColumn -> StochasticColumn + | StochasticRow -> StochasticRow | TupleTransformation tms -> let typesTrans = Utils.zip_utuple_trans_exn ut tms in let tes = diff --git a/src/frontend/lexer.mll b/src/frontend/lexer.mll index 6350ff2f5..c492caa07 100644 --- a/src/frontend/lexer.mll +++ b/src/frontend/lexer.mll @@ -139,6 +139,8 @@ rule token = parse Parser.CHOLESKYFACTORCOV } | "corr_matrix" { lexer_logger "corr_matrix" ; Parser.CORRMATRIX } | "cov_matrix" { lexer_logger "cov_matrix" ; Parser.COVMATRIX } + | "stochastic_column_matrix" { lexer_logger "stochastic_column_matrix" ; Parser.STOCHASTICCOLUMNMATRIX } + | "stochastic_row_matrix" { lexer_logger "stochastic_row_matrix" ; Parser.STOCHASTICROWMATRIX } (* Transformation keywords *) | "lower" { lexer_logger "lower" ; Parser.LOWER } | "upper" { lexer_logger "upper" ; Parser.UPPER } diff --git a/src/frontend/parser.messages b/src/frontend/parser.messages index cdea2c003..fe081d39a 100644 --- a/src/frontend/parser.messages +++ b/src/frontend/parser.messages @@ -20,7 +20,7 @@ program: DATABLOCK LBRACE CHOLESKYFACTORCORR WHILE ## ## Concrete syntax: data { cholesky_factor_corr while ## -## Ends in an error in state: 546. +## Ends in an error in state: 558. ## ## top_var_type -> CHOLESKYFACTORCORR . LBRACK expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## @@ -42,7 +42,7 @@ program: DATABLOCK LBRACE CHOLESKYFACTORCOV LBRACK WHILE ## ## Concrete syntax: data { cholesky_factor_cov [ while ## -## Ends in an error in state: 540. +## Ends in an error in state: 552. ## ## top_var_type -> CHOLESKYFACTORCOV LBRACK . expression option(pair(COMMA,expression)) RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## @@ -60,7 +60,7 @@ program: DATABLOCK LBRACE CORRMATRIX WHILE ## ## Concrete syntax: data { corr_matrix while ## -## Ends in an error in state: 516. +## Ends in an error in state: 528. ## ## top_var_type -> CORRMATRIX . LBRACK expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## @@ -78,7 +78,7 @@ program: DATABLOCK LBRACE COVMATRIX WHILE ## ## Concrete syntax: data { cov_matrix while ## -## Ends in an error in state: 512. +## Ends in an error in state: 524. ## ## top_var_type -> COVMATRIX . LBRACK expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## @@ -92,7 +92,7 @@ program: DATABLOCK LBRACE INT LABRACK WHILE ## ## Concrete syntax: data { int < while ## -## Ends in an error in state: 510. +## Ends in an error in state: 522. ## ## range_constraint -> LABRACK . range RABRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## @@ -106,7 +106,7 @@ program: DATABLOCK LBRACE INT LBRACE ## ## Concrete syntax: data { int { ## -## Ends in an error in state: 509. +## Ends in an error in state: 521. ## ## top_var_type -> INT . range_constraint [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## @@ -124,7 +124,7 @@ program: DATABLOCK LBRACE ORDERED WHILE ## ## Concrete syntax: data { ordered while ## -## Ends in an error in state: 498. +## Ends in an error in state: 510. ## ## top_var_type -> ORDERED . LBRACK expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## @@ -142,7 +142,7 @@ program: DATABLOCK LBRACE POSITIVEORDERED WHILE ## ## Concrete syntax: data { positive_ordered while ## -## Ends in an error in state: 494. +## Ends in an error in state: 506. ## ## top_var_type -> POSITIVEORDERED . LBRACK expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## @@ -156,7 +156,7 @@ program: DATABLOCK LBRACE RBRACE WHILE ## ## Concrete syntax: data { } while ## -## Ends in an error in state: 606. +## Ends in an error in state: 618. ## ## program -> option(function_block) option(data_block) . option(transformed_data_block) option(parameters_block) option(transformed_parameters_block) option(model_block) option(generated_quantities_block) EOF [ # ] ## @@ -170,7 +170,7 @@ program: DATABLOCK LBRACE REAL IDENTIFIER SEMICOLON WHILE ## ## Concrete syntax: data { real foo ; while ## -## Ends in an error in state: 597. +## Ends in an error in state: 609. ## ## list(top_var_decl_no_assign) -> top_var_decl_no_assign . list(top_var_decl_no_assign) [ RBRACE ] ## @@ -184,7 +184,7 @@ program: DATABLOCK LBRACE REAL LBRACE ## ## Concrete syntax: data { real { ## -## Ends in an error in state: 492. +## Ends in an error in state: 504. ## ## top_var_type -> REAL . type_constraint [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## @@ -198,7 +198,7 @@ program: DATABLOCK LBRACE ROWVECTOR LABRACK MULTIPLIER ASSIGN IDENTIFIER RABRACK ## ## Concrete syntax: data { row_vector < multiplier = foo > while ## -## Ends in an error in state: 488. +## Ends in an error in state: 500. ## ## top_var_type -> ROWVECTOR type_constraint . LBRACK expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## @@ -216,7 +216,7 @@ program: DATABLOCK LBRACE SIMPLEX WHILE ## ## Concrete syntax: data { simplex while ## -## Ends in an error in state: 483. +## Ends in an error in state: 495. ## ## top_var_type -> SIMPLEX . LBRACK expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## @@ -735,9 +735,9 @@ program: DATABLOCK LBRACE VECTOR LBRACK INTNUMERAL RBRACK HAT ## ## Concrete syntax: data { vector [ 24 ] ^ ## -## Ends in an error in state: 593. +## Ends in an error in state: 605. ## -## decl(top_var_type,no_assign) -> top_var_type . id_and_optional_assignment(no_assign,decl_identifier) option(remaining_declarations(no_assign)) SEMICOLON [ VECTOR UNITVECTOR TUPLE SIMPLEX SEMICOLON ROWVECTOR REAL RBRACE POSITIVEORDERED ORDERED MATRIX INT COVMATRIX CORRMATRIX COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR ARRAY ] +## decl(top_var_type,no_assign) -> top_var_type . id_and_optional_assignment(no_assign,decl_identifier) option(remaining_declarations(no_assign)) SEMICOLON [ VECTOR UNITVECTOR TUPLE STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR REAL RBRACE POSITIVEORDERED ORDERED MATRIX INT COVMATRIX CORRMATRIX COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR ARRAY ] ## ## The known suffix of the stack is as follows: ## top_var_type @@ -929,7 +929,7 @@ program: GENERATEDQUANTITIESBLOCK LBRACE RBRACE ELTTIMESASSIGN ## ## Concrete syntax: generated quantities { } .*= ## -## Ends in an error in state: 651. +## Ends in an error in state: 663. ## ## program -> option(function_block) option(data_block) option(transformed_data_block) option(parameters_block) option(transformed_parameters_block) option(model_block) option(generated_quantities_block) . EOF [ # ] ## @@ -943,7 +943,7 @@ program: GENERATEDQUANTITIESBLOCK LBRACE VOID ## ## Concrete syntax: generated quantities { void ## -## Ends in an error in state: 648. +## Ends in an error in state: 660. ## ## generated_quantities_block -> GENERATEDQUANTITIESBLOCK LBRACE . list(top_vardecl_or_statement) RBRACE [ EOF ] ## @@ -957,7 +957,7 @@ program: GENERATEDQUANTITIESBLOCK WHILE ## ## Concrete syntax: generated quantities while ## -## Ends in an error in state: 647. +## Ends in an error in state: 659. ## ## generated_quantities_block -> GENERATEDQUANTITIESBLOCK . LBRACE list(top_vardecl_or_statement) RBRACE [ EOF ] ## @@ -1027,7 +1027,7 @@ program: MODELBLOCK LBRACE RBRACE ELTTIMESASSIGN ## ## Concrete syntax: model { } .*= ## -## Ends in an error in state: 646. +## Ends in an error in state: 658. ## ## program -> option(function_block) option(data_block) option(transformed_data_block) option(parameters_block) option(transformed_parameters_block) option(model_block) . option(generated_quantities_block) EOF [ # ] ## @@ -1059,7 +1059,7 @@ program: MODELBLOCK LBRACE REAL LBRACK ## ## Ends in an error in state: 321. ## -## decl(sized_basic_type,expression) -> sized_basic_type . id_and_optional_assignment(expression,decl_identifier) option(remaining_declarations(expression)) SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## decl(sized_basic_type,expression) -> sized_basic_type . id_and_optional_assignment(expression,decl_identifier) option(remaining_declarations(expression)) SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## sized_basic_type @@ -1163,7 +1163,7 @@ program: MODELBLOCK LBRACE VOID ## ## Concrete syntax: model { void ## -## Ends in an error in state: 643. +## Ends in an error in state: 655. ## ## model_block -> MODELBLOCK LBRACE . list(vardecl_or_statement) RBRACE [ GENERATEDQUANTITIESBLOCK EOF ] ## @@ -1177,7 +1177,7 @@ program: MODELBLOCK WHILE ## ## Concrete syntax: model while ## -## Ends in an error in state: 642. +## Ends in an error in state: 654. ## ## model_block -> MODELBLOCK . LBRACE list(vardecl_or_statement) RBRACE [ GENERATEDQUANTITIESBLOCK EOF ] ## @@ -1191,7 +1191,7 @@ program: PARAMETERSBLOCK LBRACE RBRACE ELTTIMESASSIGN ## ## Concrete syntax: parameters { } .*= ## -## Ends in an error in state: 635. +## Ends in an error in state: 647. ## ## program -> option(function_block) option(data_block) option(transformed_data_block) option(parameters_block) . option(transformed_parameters_block) option(model_block) option(generated_quantities_block) EOF [ # ] ## @@ -1205,7 +1205,7 @@ program: PARAMETERSBLOCK LBRACE WHILE ## ## Concrete syntax: parameters { while ## -## Ends in an error in state: 631. +## Ends in an error in state: 643. ## ## parameters_block -> PARAMETERSBLOCK LBRACE . list(top_var_decl_no_assign) RBRACE [ TRANSFORMEDPARAMETERSBLOCK MODELBLOCK GENERATEDQUANTITIESBLOCK EOF ] ## @@ -1219,7 +1219,7 @@ program: PARAMETERSBLOCK WHILE ## ## Concrete syntax: parameters while ## -## Ends in an error in state: 630. +## Ends in an error in state: 642. ## ## parameters_block -> PARAMETERSBLOCK . LBRACE list(top_var_decl_no_assign) RBRACE [ TRANSFORMEDPARAMETERSBLOCK MODELBLOCK GENERATEDQUANTITIESBLOCK EOF ] ## @@ -1251,7 +1251,7 @@ program: TRANSFORMEDDATABLOCK LBRACE BREAK WHILE ## ## Ends in an error in state: 297. ## -## atomic_statement -> BREAK . SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> BREAK . SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## BREAK @@ -1265,7 +1265,7 @@ program: TRANSFORMEDDATABLOCK LBRACE CONTINUE WHILE ## ## Ends in an error in state: 295. ## -## atomic_statement -> CONTINUE . SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> CONTINUE . SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## CONTINUE @@ -1279,7 +1279,7 @@ program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN IDENTIFIER IN REALNUMERAL COLON ## ## Ends in an error in state: 377. ## -## nested_statement -> FOR LPAREN identifier IN expression COLON expression RPAREN . vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier IN expression COLON expression RPAREN . vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## FOR LPAREN identifier IN expression COLON expression RPAREN @@ -1295,7 +1295,7 @@ program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN IDENTIFIER IN REALNUMERAL COLON ## ## Ends in an error in state: 375. ## -## nested_statement -> FOR LPAREN identifier IN expression COLON . expression RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier IN expression COLON . expression RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## FOR LPAREN identifier IN expression COLON @@ -1309,7 +1309,7 @@ program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN IDENTIFIER IN REALNUMERAL RPAREN ## ## Ends in an error in state: 289. ## -## nested_statement -> FOR LPAREN identifier IN expression RPAREN . vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier IN expression RPAREN . vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## FOR LPAREN identifier IN expression RPAREN @@ -1346,8 +1346,8 @@ program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN IDENTIFIER IN DOTNUMERAL TILDE ## expression -> expression . RABRACK expression [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] ## expression -> expression . GEQ expression [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] ## expression -> expression . TRANSPOSE [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] -## nested_statement -> FOR LPAREN identifier IN expression . COLON expression RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN identifier IN expression . RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier IN expression . COLON expression RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier IN expression . RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## FOR LPAREN identifier IN expression @@ -1367,8 +1367,8 @@ program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN IDENTIFIER WHILE ## ## Ends in an error in state: 286. ## -## nested_statement -> FOR LPAREN identifier . IN expression COLON expression RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN identifier . IN expression RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier . IN expression COLON expression RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier . IN expression RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## FOR LPAREN identifier @@ -1382,8 +1382,8 @@ program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN WHILE ## ## Ends in an error in state: 285. ## -## nested_statement -> FOR LPAREN . identifier IN expression COLON expression RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN . identifier IN expression RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN . identifier IN expression COLON expression RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN . identifier IN expression RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## FOR LPAREN @@ -1397,8 +1397,8 @@ program: TRANSFORMEDDATABLOCK LBRACE FOR WHILE ## ## Ends in an error in state: 284. ## -## nested_statement -> FOR . LPAREN identifier IN expression COLON expression RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR . LPAREN identifier IN expression RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR . LPAREN identifier IN expression COLON expression RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR . LPAREN identifier IN expression RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## FOR @@ -1414,8 +1414,8 @@ program: TRANSFORMEDDATABLOCK LBRACE IF LPAREN IDENTIFIER RPAREN SEMICOLON UNREA ## ## Ends in an error in state: 379. ## -## nested_statement -> IF LPAREN expression RPAREN vardecl_or_statement . ELSE vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> IF LPAREN expression RPAREN vardecl_or_statement . [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF LPAREN expression RPAREN vardecl_or_statement . ELSE vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF LPAREN expression RPAREN vardecl_or_statement . [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## IF LPAREN expression RPAREN vardecl_or_statement @@ -1429,8 +1429,8 @@ program: TRANSFORMEDDATABLOCK LBRACE IF LPAREN REALNUMERAL RPAREN VOID ## ## Ends in an error in state: 283. ## -## nested_statement -> IF LPAREN expression RPAREN . vardecl_or_statement ELSE vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> IF LPAREN expression RPAREN . vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF LPAREN expression RPAREN . vardecl_or_statement ELSE vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF LPAREN expression RPAREN . vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## IF LPAREN expression RPAREN @@ -1444,7 +1444,7 @@ program: TRANSFORMEDDATABLOCK LBRACE IF LPAREN IDENTIFIER RPAREN SEMICOLON ELSE ## ## Ends in an error in state: 380. ## -## nested_statement -> IF LPAREN expression RPAREN vardecl_or_statement ELSE . vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF LPAREN expression RPAREN vardecl_or_statement ELSE . vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## IF LPAREN expression RPAREN vardecl_or_statement ELSE @@ -1479,8 +1479,8 @@ program: TRANSFORMEDDATABLOCK LBRACE IF LPAREN IDENTIFIER TILDE ## expression -> expression . RABRACK expression [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## expression -> expression . GEQ expression [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## expression -> expression . TRANSPOSE [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## nested_statement -> IF LPAREN expression . RPAREN vardecl_or_statement ELSE vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> IF LPAREN expression . RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF LPAREN expression . RPAREN vardecl_or_statement ELSE vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF LPAREN expression . RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## IF LPAREN expression @@ -1501,8 +1501,8 @@ program: TRANSFORMEDDATABLOCK LBRACE IF LPAREN WHILE ## ## Ends in an error in state: 281. ## -## nested_statement -> IF LPAREN . expression RPAREN vardecl_or_statement ELSE vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> IF LPAREN . expression RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF LPAREN . expression RPAREN vardecl_or_statement ELSE vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF LPAREN . expression RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## IF LPAREN @@ -1516,8 +1516,8 @@ program: TRANSFORMEDDATABLOCK LBRACE IF WHILE ## ## Ends in an error in state: 280. ## -## nested_statement -> IF . LPAREN expression RPAREN vardecl_or_statement ELSE vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> IF . LPAREN expression RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF . LPAREN expression RPAREN vardecl_or_statement ELSE vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF . LPAREN expression RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## IF @@ -1532,7 +1532,7 @@ program: TRANSFORMEDDATABLOCK LBRACE LBRACE VOID ## Ends in an error in state: 279. ## ## common_expression -> LBRACE . separated_nonempty_list(COMMA,expression) RBRACE [ TRANSPOSE TIMESASSIGN TIMES TILDE RBRACE RABRACK QMARK PLUSASSIGN PLUS OR NEQUALS MODULO MINUSASSIGN MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMESASSIGN ELTTIMES ELTPOW ELTDIVIDEASSIGN ELTDIVIDE DOTNUMERAL DIVIDEASSIGN DIVIDE COMMA ASSIGN AND ] -## nested_statement -> LBRACE . list(vardecl_or_statement) RBRACE [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> LBRACE . list(vardecl_or_statement) RBRACE [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## LBRACE @@ -1675,7 +1675,7 @@ program: TRANSFORMEDDATABLOCK LBRACE PRINT LPAREN STRINGLITERAL WHILE ## ## Ends in an error in state: 276. ## -## atomic_statement -> PRINT LPAREN printables . RPAREN SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> PRINT LPAREN printables . RPAREN SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## printables -> printables . COMMA printables [ RPAREN COMMA ] ## ## The known suffix of the stack is as follows: @@ -1690,7 +1690,7 @@ program: TRANSFORMEDDATABLOCK LBRACE PRINT LPAREN IDENTIFIER RPAREN WHILE ## ## Ends in an error in state: 277. ## -## atomic_statement -> PRINT LPAREN printables RPAREN . SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> PRINT LPAREN printables RPAREN . SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## PRINT LPAREN printables RPAREN @@ -1704,7 +1704,7 @@ program: TRANSFORMEDDATABLOCK LBRACE PRINT LPAREN WHILE ## ## Ends in an error in state: 275. ## -## atomic_statement -> PRINT LPAREN . printables RPAREN SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> PRINT LPAREN . printables RPAREN SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## PRINT LPAREN @@ -1718,7 +1718,7 @@ program: TRANSFORMEDDATABLOCK LBRACE PRINT WHILE ## ## Ends in an error in state: 274. ## -## atomic_statement -> PRINT . LPAREN printables RPAREN SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> PRINT . LPAREN printables RPAREN SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## PRINT @@ -1730,7 +1730,7 @@ program: TRANSFORMEDDATABLOCK LBRACE RBRACE ELTTIMESASSIGN ## ## Concrete syntax: transformed data { } .*= ## -## Ends in an error in state: 629. +## Ends in an error in state: 641. ## ## program -> option(function_block) option(data_block) option(transformed_data_block) . option(parameters_block) option(transformed_parameters_block) option(model_block) option(generated_quantities_block) EOF [ # ] ## @@ -1796,7 +1796,7 @@ program: TRANSFORMEDDATABLOCK LBRACE IDENTIFIER WHILE ## ## Ends in an error in state: 326. ## -## atomic_statement -> identifier . LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> identifier . LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## common_expression -> identifier . [ TRANSPOSE TIMESASSIGN TIMES TILDE RBRACE RABRACK QMARK PLUSASSIGN PLUS OR NEQUALS MODULO MINUSASSIGN MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMESASSIGN ELTTIMES ELTPOW ELTDIVIDEASSIGN ELTDIVIDE DOTNUMERAL DIVIDEASSIGN DIVIDE COMMA ASSIGN AND ] ## common_expression -> identifier . LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN [ TRANSPOSE TIMESASSIGN TIMES TILDE RBRACE RABRACK QMARK PLUSASSIGN PLUS OR NEQUALS MODULO MINUSASSIGN MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMESASSIGN ELTTIMES ELTPOW ELTDIVIDEASSIGN ELTDIVIDE DOTNUMERAL DIVIDEASSIGN DIVIDE COMMA ASSIGN AND ] ## common_expression -> identifier . LPAREN expression BAR loption(separated_nonempty_list(COMMA,expression)) RPAREN [ TRANSPOSE TIMESASSIGN TIMES TILDE RBRACE RABRACK QMARK PLUSASSIGN PLUS OR NEQUALS MODULO MINUSASSIGN MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMESASSIGN ELTTIMES ELTPOW ELTDIVIDEASSIGN ELTDIVIDE DOTNUMERAL DIVIDEASSIGN DIVIDE COMMA ASSIGN AND ] @@ -2016,7 +2016,7 @@ program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TILDE IDENTIFIER LPAREN RPAREN ## ## Ends in an error in state: 345. ## -## atomic_statement -> expression TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) . SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> expression TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) . SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## expression TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) @@ -2054,7 +2054,7 @@ program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TILDE IDENTIFIER LPAREN RPAREN ## ## Ends in an error in state: 336. ## -## atomic_statement -> expression TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN . option(truncation) SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> expression TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN . option(truncation) SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## expression TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN @@ -2068,7 +2068,7 @@ program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TILDE IDENTIFIER LPAREN IDENTIF ## ## Ends in an error in state: 335. ## -## atomic_statement -> expression TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) . RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> expression TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) . RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## expression TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) @@ -2091,7 +2091,7 @@ program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TILDE IDENTIFIER LPAREN WHILE ## ## Ends in an error in state: 334. ## -## atomic_statement -> expression TILDE identifier LPAREN . loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> expression TILDE identifier LPAREN . loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## expression TILDE identifier LPAREN @@ -2105,7 +2105,7 @@ program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TILDE IDENTIFIER WHILE ## ## Ends in an error in state: 333. ## -## atomic_statement -> expression TILDE identifier . LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> expression TILDE identifier . LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## expression TILDE identifier @@ -2119,7 +2119,7 @@ program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TILDE WHILE ## ## Ends in an error in state: 332. ## -## atomic_statement -> expression TILDE . identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> expression TILDE . identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## expression TILDE @@ -2170,7 +2170,7 @@ program: TRANSFORMEDDATABLOCK LBRACE REJECT LPAREN WHILE ## ## Ends in an error in state: 260. ## -## atomic_statement -> REJECT LPAREN . printables RPAREN SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> REJECT LPAREN . printables RPAREN SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## REJECT LPAREN @@ -2253,7 +2253,7 @@ program: TRANSFORMEDDATABLOCK LBRACE RETURN IDENTIFIER TILDE ## ## Ends in an error in state: 257. ## -## atomic_statement -> RETURN expression . SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> RETURN expression . SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## expression -> expression . QMARK expression COLON expression [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## expression -> expression . PLUS expression [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## expression -> expression . MINUS expression [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -2311,7 +2311,7 @@ program: TRANSFORMEDDATABLOCK LBRACE TARGET PLUSASSIGN IDENTIFIER TILDE ## ## Ends in an error in state: 252. ## -## atomic_statement -> TARGET PLUSASSIGN expression . SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> TARGET PLUSASSIGN expression . SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## expression -> expression . QMARK expression COLON expression [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## expression -> expression . PLUS expression [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## expression -> expression . MINUS expression [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -2353,7 +2353,7 @@ program: TRANSFORMEDDATABLOCK LBRACE TARGET WHILE ## ## Ends in an error in state: 250. ## -## atomic_statement -> TARGET . PLUSASSIGN expression SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> TARGET . PLUSASSIGN expression SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## common_expression -> TARGET . LPAREN RPAREN [ TRANSPOSE TIMESASSIGN TIMES TILDE RBRACE RABRACK QMARK PLUSASSIGN PLUS OR NEQUALS MODULO MINUSASSIGN MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMESASSIGN ELTTIMES ELTPOW ELTDIVIDEASSIGN ELTDIVIDE DOTNUMERAL DIVIDEASSIGN DIVIDE COMMA ASSIGN AND ] ## ## The known suffix of the stack is as follows: @@ -2368,7 +2368,7 @@ program: TRANSFORMEDDATABLOCK LBRACE IDENTIFIER ASSIGN IDENTIFIER TILDE ## ## Ends in an error in state: 368. ## -## atomic_statement -> common_expression ASSIGN expression . SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> common_expression ASSIGN expression . SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## expression -> expression . QMARK expression COLON expression [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## expression -> expression . PLUS expression [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## expression -> expression . MINUS expression [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -2410,7 +2410,7 @@ program: TRANSFORMEDDATABLOCK LBRACE IDENTIFIER ASSIGN WHILE ## ## Ends in an error in state: 367. ## -## atomic_statement -> common_expression ASSIGN . expression SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> common_expression ASSIGN . expression SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## common_expression ASSIGN @@ -2424,7 +2424,7 @@ program: TRANSFORMEDDATABLOCK LBRACE IDENTIFIER DIVIDEASSIGN IDENTIFIER TILDE ## ## Ends in an error in state: 365. ## -## atomic_statement -> common_expression DIVIDEASSIGN expression . SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> common_expression DIVIDEASSIGN expression . SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## expression -> expression . QMARK expression COLON expression [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## expression -> expression . PLUS expression [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## expression -> expression . MINUS expression [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -2466,7 +2466,7 @@ program: TRANSFORMEDDATABLOCK LBRACE IDENTIFIER DIVIDEASSIGN WHILE ## ## Ends in an error in state: 364. ## -## atomic_statement -> common_expression DIVIDEASSIGN . expression SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> common_expression DIVIDEASSIGN . expression SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## common_expression DIVIDEASSIGN @@ -2480,7 +2480,7 @@ program: TRANSFORMEDDATABLOCK LBRACE IDENTIFIER ELTDIVIDEASSIGN IDENTIFIER TILDE ## ## Ends in an error in state: 362. ## -## atomic_statement -> common_expression ELTDIVIDEASSIGN expression . SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> common_expression ELTDIVIDEASSIGN expression . SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## expression -> expression . QMARK expression COLON expression [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## expression -> expression . PLUS expression [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## expression -> expression . MINUS expression [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -2522,7 +2522,7 @@ program: TRANSFORMEDDATABLOCK LBRACE IDENTIFIER ELTDIVIDEASSIGN WHILE ## ## Ends in an error in state: 361. ## -## atomic_statement -> common_expression ELTDIVIDEASSIGN . expression SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> common_expression ELTDIVIDEASSIGN . expression SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## common_expression ELTDIVIDEASSIGN @@ -2536,7 +2536,7 @@ program: TRANSFORMEDDATABLOCK LBRACE IDENTIFIER ELTTIMESASSIGN IDENTIFIER TILDE ## ## Ends in an error in state: 359. ## -## atomic_statement -> common_expression ELTTIMESASSIGN expression . SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> common_expression ELTTIMESASSIGN expression . SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## expression -> expression . QMARK expression COLON expression [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## expression -> expression . PLUS expression [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## expression -> expression . MINUS expression [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -2615,7 +2615,7 @@ program: TRANSFORMEDDATABLOCK LBRACE IDENTIFIER LPAREN RPAREN WHILE ## ## Ends in an error in state: 329. ## -## atomic_statement -> identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN . SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN . SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## common_expression -> identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN . [ TRANSPOSE TIMESASSIGN TIMES TILDE RBRACE RABRACK QMARK PLUSASSIGN PLUS OR NEQUALS MODULO MINUSASSIGN MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMESASSIGN ELTTIMES ELTPOW ELTDIVIDEASSIGN ELTDIVIDE DOTNUMERAL DIVIDEASSIGN DIVIDE COMMA ASSIGN AND ] ## ## The known suffix of the stack is as follows: @@ -2634,7 +2634,7 @@ program: TRANSFORMEDDATABLOCK LBRACE IDENTIFIER LPAREN IDENTIFIER COMMA IDENTIFI ## ## Ends in an error in state: 328. ## -## atomic_statement -> identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) . RPAREN SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) . RPAREN SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## common_expression -> identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) . RPAREN [ TRANSPOSE TIMESASSIGN TIMES TILDE RBRACE RABRACK QMARK PLUSASSIGN PLUS OR NEQUALS MODULO MINUSASSIGN MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMESASSIGN ELTTIMES ELTPOW ELTDIVIDEASSIGN ELTDIVIDE DOTNUMERAL DIVIDEASSIGN DIVIDE COMMA ASSIGN AND ] ## ## The known suffix of the stack is as follows: @@ -2659,7 +2659,7 @@ program: TRANSFORMEDDATABLOCK LBRACE IDENTIFIER MINUSASSIGN IDENTIFIER TILDE ## ## Ends in an error in state: 356. ## -## atomic_statement -> common_expression MINUSASSIGN expression . SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> common_expression MINUSASSIGN expression . SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## expression -> expression . QMARK expression COLON expression [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## expression -> expression . PLUS expression [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## expression -> expression . MINUS expression [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -2701,7 +2701,7 @@ program: TRANSFORMEDDATABLOCK LBRACE IDENTIFIER MINUSASSIGN WHILE ## ## Ends in an error in state: 355. ## -## atomic_statement -> common_expression MINUSASSIGN . expression SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> common_expression MINUSASSIGN . expression SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## common_expression MINUSASSIGN @@ -2715,7 +2715,7 @@ program: TRANSFORMEDDATABLOCK LBRACE IDENTIFIER PLUSASSIGN IDENTIFIER TILDE ## ## Ends in an error in state: 353. ## -## atomic_statement -> common_expression PLUSASSIGN expression . SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> common_expression PLUSASSIGN expression . SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## expression -> expression . QMARK expression COLON expression [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## expression -> expression . PLUS expression [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## expression -> expression . MINUS expression [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -2757,7 +2757,7 @@ program: TRANSFORMEDDATABLOCK LBRACE IDENTIFIER PLUSASSIGN WHILE ## ## Ends in an error in state: 352. ## -## atomic_statement -> common_expression PLUSASSIGN . expression SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> common_expression PLUSASSIGN . expression SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## common_expression PLUSASSIGN @@ -2773,7 +2773,7 @@ program: TRANSFORMEDDATABLOCK LBRACE IDENTIFIER RBRACE ## ## Ends in an error in state: 331. ## -## atomic_statement -> expression . TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> expression . TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## expression -> expression . QMARK expression COLON expression [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## expression -> expression . PLUS expression [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## expression -> expression . MINUS expression [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -2815,7 +2815,7 @@ program: TRANSFORMEDDATABLOCK LBRACE IDENTIFIER TIMESASSIGN IDENTIFIER TILDE ## ## Ends in an error in state: 350. ## -## atomic_statement -> common_expression TIMESASSIGN expression . SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> common_expression TIMESASSIGN expression . SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## expression -> expression . QMARK expression COLON expression [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## expression -> expression . PLUS expression [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## expression -> expression . MINUS expression [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -2857,7 +2857,7 @@ program: TRANSFORMEDDATABLOCK LBRACE IDENTIFIER TIMESASSIGN WHILE ## ## Ends in an error in state: 349. ## -## atomic_statement -> common_expression TIMESASSIGN . expression SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> common_expression TIMESASSIGN . expression SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## common_expression TIMESASSIGN @@ -2869,9 +2869,9 @@ program: TRANSFORMEDDATABLOCK LBRACE VECTOR LBRACK INTNUMERAL RBRACK HAT ## ## Concrete syntax: transformed data { vector [ 24 ] ^ ## -## Ends in an error in state: 614. +## Ends in an error in state: 626. ## -## decl(top_var_type,expression) -> top_var_type . id_and_optional_assignment(expression,decl_identifier) option(remaining_declarations(expression)) SEMICOLON [ WHILE VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## decl(top_var_type,expression) -> top_var_type . id_and_optional_assignment(expression,decl_identifier) option(remaining_declarations(expression)) SEMICOLON [ WHILE VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## top_var_type @@ -2883,7 +2883,7 @@ program: TRANSFORMEDDATABLOCK LBRACE VOID ## ## Concrete syntax: transformed data { void ## -## Ends in an error in state: 608. +## Ends in an error in state: 620. ## ## transformed_data_block -> TRANSFORMEDDATABLOCK LBRACE . list(top_vardecl_or_statement) RBRACE [ TRANSFORMEDPARAMETERSBLOCK PARAMETERSBLOCK MODELBLOCK GENERATEDQUANTITIESBLOCK EOF ] ## @@ -2899,7 +2899,7 @@ program: TRANSFORMEDDATABLOCK LBRACE WHILE LPAREN IDENTIFIER RPAREN VOID ## ## Ends in an error in state: 188. ## -## nested_statement -> WHILE LPAREN expression RPAREN . vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> WHILE LPAREN expression RPAREN . vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## WHILE LPAREN expression RPAREN @@ -2915,7 +2915,7 @@ program: TRANSFORMEDDATABLOCK LBRACE WHILE LPAREN WHILE ## ## Ends in an error in state: 94. ## -## nested_statement -> WHILE LPAREN . expression RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> WHILE LPAREN . expression RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## WHILE LPAREN @@ -2929,7 +2929,7 @@ program: TRANSFORMEDDATABLOCK LBRACE WHILE WHILE ## ## Ends in an error in state: 93. ## -## nested_statement -> WHILE . LPAREN expression RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> WHILE . LPAREN expression RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## WHILE @@ -2941,7 +2941,7 @@ program: TRANSFORMEDDATABLOCK WHILE ## ## Concrete syntax: transformed data while ## -## Ends in an error in state: 607. +## Ends in an error in state: 619. ## ## transformed_data_block -> TRANSFORMEDDATABLOCK . LBRACE list(top_vardecl_or_statement) RBRACE [ TRANSFORMEDPARAMETERSBLOCK PARAMETERSBLOCK MODELBLOCK GENERATEDQUANTITIESBLOCK EOF ] ## @@ -2955,7 +2955,7 @@ program: TRANSFORMEDPARAMETERSBLOCK LBRACE RBRACE ELTTIMESASSIGN ## ## Concrete syntax: transformed parameters { } .*= ## -## Ends in an error in state: 641. +## Ends in an error in state: 653. ## ## program -> option(function_block) option(data_block) option(transformed_data_block) option(parameters_block) option(transformed_parameters_block) . option(model_block) option(generated_quantities_block) EOF [ # ] ## @@ -2969,7 +2969,7 @@ program: TRANSFORMEDPARAMETERSBLOCK LBRACE VOID ## ## Concrete syntax: transformed parameters { void ## -## Ends in an error in state: 637. +## Ends in an error in state: 649. ## ## transformed_parameters_block -> TRANSFORMEDPARAMETERSBLOCK LBRACE . list(top_vardecl_or_statement) RBRACE [ MODELBLOCK GENERATEDQUANTITIESBLOCK EOF ] ## @@ -2983,7 +2983,7 @@ program: TRANSFORMEDPARAMETERSBLOCK WHILE ## ## Concrete syntax: transformed parameters while ## -## Ends in an error in state: 636. +## Ends in an error in state: 648. ## ## transformed_parameters_block -> TRANSFORMEDPARAMETERSBLOCK . LBRACE list(top_vardecl_or_statement) RBRACE [ MODELBLOCK GENERATEDQUANTITIESBLOCK EOF ] ## @@ -3157,9 +3157,9 @@ program: DATABLOCK LBRACE REAL IDENTIFIER ASSIGN UNREACHABLE WHILE ## ## Concrete syntax: data { real foo = <<<>> while ## -## Ends in an error in state: 594. +## Ends in an error in state: 606. ## -## decl(top_var_type,no_assign) -> top_var_type id_and_optional_assignment(no_assign,decl_identifier) . option(remaining_declarations(no_assign)) SEMICOLON [ VECTOR UNITVECTOR TUPLE SIMPLEX SEMICOLON ROWVECTOR REAL RBRACE POSITIVEORDERED ORDERED MATRIX INT COVMATRIX CORRMATRIX COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR ARRAY ] +## decl(top_var_type,no_assign) -> top_var_type id_and_optional_assignment(no_assign,decl_identifier) . option(remaining_declarations(no_assign)) SEMICOLON [ VECTOR UNITVECTOR TUPLE STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR REAL RBRACE POSITIVEORDERED ORDERED MATRIX INT COVMATRIX CORRMATRIX COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR ARRAY ] ## ## The known suffix of the stack is as follows: ## top_var_type id_and_optional_assignment(no_assign,decl_identifier) @@ -3195,7 +3195,7 @@ program: TRANSFORMEDDATABLOCK LBRACE PROFILE WHILE ## ## Ends in an error in state: 269. ## -## nested_statement -> PROFILE . LPAREN string_literal RPAREN LBRACE list(vardecl_or_statement) RBRACE [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> PROFILE . LPAREN string_literal RPAREN LBRACE list(vardecl_or_statement) RBRACE [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## PROFILE @@ -3209,7 +3209,7 @@ program: TRANSFORMEDDATABLOCK LBRACE PROFILE LPAREN WHILE ## ## Ends in an error in state: 270. ## -## nested_statement -> PROFILE LPAREN . string_literal RPAREN LBRACE list(vardecl_or_statement) RBRACE [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> PROFILE LPAREN . string_literal RPAREN LBRACE list(vardecl_or_statement) RBRACE [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## PROFILE LPAREN @@ -3223,7 +3223,7 @@ program: TRANSFORMEDDATABLOCK LBRACE PROFILE LPAREN STRINGLITERAL WHILE ## ## Ends in an error in state: 271. ## -## nested_statement -> PROFILE LPAREN string_literal . RPAREN LBRACE list(vardecl_or_statement) RBRACE [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> PROFILE LPAREN string_literal . RPAREN LBRACE list(vardecl_or_statement) RBRACE [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## PROFILE LPAREN string_literal @@ -3237,7 +3237,7 @@ program: TRANSFORMEDDATABLOCK LBRACE PROFILE LPAREN STRINGLITERAL RPAREN WHILE ## ## Ends in an error in state: 272. ## -## nested_statement -> PROFILE LPAREN string_literal RPAREN . LBRACE list(vardecl_or_statement) RBRACE [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> PROFILE LPAREN string_literal RPAREN . LBRACE list(vardecl_or_statement) RBRACE [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## PROFILE LPAREN string_literal RPAREN @@ -3251,7 +3251,7 @@ program: TRANSFORMEDDATABLOCK LBRACE PROFILE LPAREN STRINGLITERAL RPAREN LBRACE ## ## Ends in an error in state: 273. ## -## nested_statement -> PROFILE LPAREN string_literal RPAREN LBRACE . list(vardecl_or_statement) RBRACE [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> PROFILE LPAREN string_literal RPAREN LBRACE . list(vardecl_or_statement) RBRACE [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## PROFILE LPAREN string_literal RPAREN LBRACE @@ -3263,7 +3263,7 @@ program: DATABLOCK LBRACE COMPLEX UNREACHABLE ## ## Concrete syntax: data { complex <<<>> ## -## Ends in an error in state: 537. +## Ends in an error in state: 549. ## ## top_var_type -> COMPLEX . type_constraint [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## @@ -3318,7 +3318,7 @@ program: TRANSFORMEDDATABLOCK LBRACE ARRAY IDENTIFIER ## ## Ends in an error in state: 222. ## -## arr_dims -> ARRAY . LBRACK separated_nonempty_list(COMMA,expression) RBRACK [ VECTOR UNITVECTOR TUPLE SIMPLEX ROWVECTOR REAL POSITIVEORDERED ORDERED MATRIX INT COVMATRIX CORRMATRIX COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR ] +## arr_dims -> ARRAY . LBRACK separated_nonempty_list(COMMA,expression) RBRACK [ VECTOR UNITVECTOR TUPLE STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX ROWVECTOR REAL POSITIVEORDERED ORDERED MATRIX INT COVMATRIX CORRMATRIX COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR ] ## ## The known suffix of the stack is as follows: ## ARRAY @@ -3334,9 +3334,9 @@ program: DATABLOCK LBRACE ARRAY LBRACK IDENTIFIER RBRACK VECTOR LBRACK INTNUMERA ## ## Concrete syntax: data { array [ foo ] vector [ 24 ] && ## -## Ends in an error in state: 600. +## Ends in an error in state: 612. ## -## decl(top_var_type,no_assign) -> array_type(top_var_type) . id_and_optional_assignment(no_assign,decl_identifier) option(remaining_declarations(no_assign)) SEMICOLON [ VECTOR UNITVECTOR TUPLE SIMPLEX SEMICOLON ROWVECTOR REAL RBRACE POSITIVEORDERED ORDERED MATRIX INT COVMATRIX CORRMATRIX COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR ARRAY ] +## decl(top_var_type,no_assign) -> array_type(top_var_type) . id_and_optional_assignment(no_assign,decl_identifier) option(remaining_declarations(no_assign)) SEMICOLON [ VECTOR UNITVECTOR TUPLE STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR REAL RBRACE POSITIVEORDERED ORDERED MATRIX INT COVMATRIX CORRMATRIX COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR ARRAY ] ## ## The known suffix of the stack is as follows: ## array_type(top_var_type) @@ -3370,7 +3370,7 @@ program: DATABLOCK LBRACE TUPLE LPAREN REAL COMMA WHILE ## ## Concrete syntax: data { tuple ( real , while ## -## Ends in an error in state: 567. +## Ends in an error in state: 579. ## ## tuple_type(top_var_type) -> TUPLE LPAREN top_var_type COMMA . separated_nonempty_list(COMMA,higher_type(top_var_type)) RPAREN [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## @@ -3394,7 +3394,7 @@ program: DATABLOCK LBRACE TUPLE LPAREN REAL WHILE ## ## Concrete syntax: data { tuple ( real while ## -## Ends in an error in state: 566. +## Ends in an error in state: 578. ## ## tuple_type(top_var_type) -> TUPLE LPAREN top_var_type . COMMA separated_nonempty_list(COMMA,higher_type(top_var_type)) RPAREN [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## @@ -3405,9 +3405,9 @@ program: DATABLOCK LBRACE TUPLE LPAREN REAL WHILE ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 492, spurious reduction of production range_constraint -> +## In state 504, spurious reduction of production range_constraint -> ## In state 476, spurious reduction of production type_constraint -> range_constraint -## In state 493, spurious reduction of production top_var_type -> REAL type_constraint +## In state 505, spurious reduction of production top_var_type -> REAL type_constraint ## Invalid type specification, unmatched "(". @@ -3427,7 +3427,7 @@ program: DATABLOCK LBRACE TUPLE LPAREN REAL COMMA TUPLE LPAREN COMPLEX COMMA COM ## ## Concrete syntax: data { tuple ( real , tuple ( complex , complex ) while ## -## Ends in an error in state: 552. +## Ends in an error in state: 564. ## ## separated_nonempty_list(COMMA,higher_type(top_var_type)) -> tuple_type(top_var_type) . [ RPAREN ] ## separated_nonempty_list(COMMA,higher_type(top_var_type)) -> tuple_type(top_var_type) . COMMA separated_nonempty_list(COMMA,higher_type(top_var_type)) [ RPAREN ] @@ -3510,7 +3510,7 @@ program: DATABLOCK LBRACE ARRAY LBRACK INTNUMERAL RBRACK IDENTIFIER ## ## Concrete syntax: data { array [ 24 ] foo ## -## Ends in an error in state: 560. +## Ends in an error in state: 572. ## ## array_type(top_var_type) -> arr_dims . top_var_type [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## array_type(top_var_type) -> arr_dims . tuple_type(top_var_type) [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -3527,7 +3527,7 @@ program: DATABLOCK LBRACE ARRAY LBRACK WHILE ## ## Ends in an error in state: 223. ## -## arr_dims -> ARRAY LBRACK . separated_nonempty_list(COMMA,expression) RBRACK [ VECTOR UNITVECTOR TUPLE SIMPLEX ROWVECTOR REAL POSITIVEORDERED ORDERED MATRIX INT COVMATRIX CORRMATRIX COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR ] +## arr_dims -> ARRAY LBRACK . separated_nonempty_list(COMMA,expression) RBRACK [ VECTOR UNITVECTOR TUPLE STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX ROWVECTOR REAL POSITIVEORDERED ORDERED MATRIX INT COVMATRIX CORRMATRIX COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR ] ## ## The known suffix of the stack is as follows: ## ARRAY LBRACK @@ -3574,7 +3574,7 @@ program: MODELBLOCK LBRACE TUPLE LPAREN COMPLEX COMMA COMPLEX RPAREN UNREACHABLE ## ## Ends in an error in state: 301. ## -## decl(sized_basic_type,expression) -> tuple_type(sized_basic_type) . id_and_optional_assignment(expression,decl_identifier) option(remaining_declarations(expression)) SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## decl(sized_basic_type,expression) -> tuple_type(sized_basic_type) . id_and_optional_assignment(expression,decl_identifier) option(remaining_declarations(expression)) SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## tuple_type(sized_basic_type) @@ -3625,7 +3625,7 @@ program: DATABLOCK LBRACE REAL WHILE IDENTIFIER ## ## Concrete syntax: data { real while foo ## -## Ends in an error in state: 591. +## Ends in an error in state: 603. ## ## id_and_optional_assignment(no_assign,decl_identifier) -> decl_identifier . optional_assignment(no_assign) [ SEMICOLON COMMA ] ## @@ -3653,21 +3653,274 @@ functions_only: ARRAY LBRACK WHILE "[" (list of commas) "]" expected in unsized return type of function definition. program: TRANSFORMEDDATABLOCK LBRACE FATAL_ERROR LPAREN IDENTIFIER RPAREN WHILE -## Concrete syntax: transformed data { exit ( foo ) while +## Concrete syntax: transformed data { fatal_error ( foo ) while program: TRANSFORMEDDATABLOCK LBRACE FATAL_ERROR LPAREN STRINGLITERAL WHILE -## Concrete syntax: transformed data { exit ( "hello world" while +## Concrete syntax: transformed data { fatal_error ( "hello world" while program: TRANSFORMEDDATABLOCK LBRACE FATAL_ERROR LPAREN WHILE -## Concrete syntax: transformed data { exit ( while +## Concrete syntax: transformed data { fatal_error ( while program: TRANSFORMEDDATABLOCK LBRACE FATAL_ERROR WHILE ## -## Concrete syntax: transformed data { exit while +## Concrete syntax: transformed data { fatal_error while ## ## Ends in an error in state: 290. ## -## atomic_statement -> FATAL_ERROR . LPAREN printables RPAREN SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> FATAL_ERROR . LPAREN printables RPAREN SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## FATAL_ERROR ## Ill-formed fatal error statement. After "fatal_error(", we expect a comma separated list of either expressions or strings, followed by ");". + + +program: DATABLOCK LBRACE STOCHASTICROWMATRIX WHILE +## +## Concrete syntax: data { stochastic_row_matrix while +## +## Ends in an error in state: 483. +## +## top_var_type -> STOCHASTICROWMATRIX . LBRACK expression COMMA expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## +## The known suffix of the stack is as follows: +## STOCHASTICROWMATRIX +## + +TODO: PARSER MESSAGE NEEDED HERE. + +program: DATABLOCK LBRACE STOCHASTICROWMATRIX LBRACK WHILE +## +## Concrete syntax: data { stochastic_row_matrix [ while +## +## Ends in an error in state: 484. +## +## top_var_type -> STOCHASTICROWMATRIX LBRACK . expression COMMA expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## +## The known suffix of the stack is as follows: +## STOCHASTICROWMATRIX LBRACK +## + +TODO: PARSER MESSAGE NEEDED HERE. + +program: DATABLOCK LBRACE STOCHASTICROWMATRIX LBRACK JACOBIAN TILDE +## +## Concrete syntax: data { stochastic_row_matrix [ jacobian ~ +## +## Ends in an error in state: 485. +## +## expression -> expression . QMARK expression COLON expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . PLUS expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . MINUS expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . TIMES expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . DIVIDE expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . IDIVIDE expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . MODULO expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . LDIVIDE expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . ELTTIMES expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . ELTDIVIDE expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . HAT expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . ELTPOW expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . OR expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . AND expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . EQUALS expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . NEQUALS expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . LABRACK expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . LEQ expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . RABRACK expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . GEQ expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . TRANSPOSE [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## top_var_type -> STOCHASTICROWMATRIX LBRACK expression . COMMA expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## +## The known suffix of the stack is as follows: +## STOCHASTICROWMATRIX LBRACK expression +## +## WARNING: This example involves spurious reductions. +## This implies that, although the LR(1) items shown above provide an +## accurate view of the past (what has been recognized so far), they +## may provide an INCOMPLETE view of the future (what was expected next). +## In state 108, spurious reduction of production common_expression -> identifier +## In state 123, spurious reduction of production expression -> common_expression +## + +TODO: PARSER MESSAGE NEEDED HERE. + +program: DATABLOCK LBRACE STOCHASTICROWMATRIX LBRACK JACOBIAN COMMA WHILE +## +## Concrete syntax: data { stochastic_row_matrix [ jacobian , while +## +## Ends in an error in state: 486. +## +## top_var_type -> STOCHASTICROWMATRIX LBRACK expression COMMA . expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## +## The known suffix of the stack is as follows: +## STOCHASTICROWMATRIX LBRACK expression COMMA +## + +TODO: PARSER MESSAGE NEEDED HERE. + +program: DATABLOCK LBRACE STOCHASTICROWMATRIX LBRACK JACOBIAN COMMA JACOBIAN TILDE +## +## Concrete syntax: data { stochastic_row_matrix [ jacobian , jacobian ~ +## +## Ends in an error in state: 487. +## +## expression -> expression . QMARK expression COLON expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . PLUS expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . MINUS expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . TIMES expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . DIVIDE expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . IDIVIDE expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . MODULO expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . LDIVIDE expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . ELTTIMES expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . ELTDIVIDE expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . HAT expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . ELTPOW expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . OR expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . AND expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . EQUALS expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . NEQUALS expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . LABRACK expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . LEQ expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . RABRACK expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . GEQ expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . TRANSPOSE [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## top_var_type -> STOCHASTICROWMATRIX LBRACK expression COMMA expression . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## +## The known suffix of the stack is as follows: +## STOCHASTICROWMATRIX LBRACK expression COMMA expression +## +## WARNING: This example involves spurious reductions. +## This implies that, although the LR(1) items shown above provide an +## accurate view of the past (what has been recognized so far), they +## may provide an INCOMPLETE view of the future (what was expected next). +## In state 108, spurious reduction of production common_expression -> identifier +## In state 123, spurious reduction of production expression -> common_expression +## + +TODO: PARSER MESSAGE NEEDED HERE. + +program: DATABLOCK LBRACE STOCHASTICCOLUMNMATRIX WHILE +## +## Concrete syntax: data { stochastic_column_matrix while +## +## Ends in an error in state: 489. +## +## top_var_type -> STOCHASTICCOLUMNMATRIX . LBRACK expression COMMA expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## +## The known suffix of the stack is as follows: +## STOCHASTICCOLUMNMATRIX +## + +TODO: PARSER MESSAGE NEEDED HERE. + +program: DATABLOCK LBRACE STOCHASTICCOLUMNMATRIX LBRACK WHILE +## +## Concrete syntax: data { stochastic_column_matrix [ while +## +## Ends in an error in state: 490. +## +## top_var_type -> STOCHASTICCOLUMNMATRIX LBRACK . expression COMMA expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## +## The known suffix of the stack is as follows: +## STOCHASTICCOLUMNMATRIX LBRACK +## + +TODO: PARSER MESSAGE NEEDED HERE. + +program: DATABLOCK LBRACE STOCHASTICCOLUMNMATRIX LBRACK JACOBIAN TILDE +## +## Concrete syntax: data { stochastic_column_matrix [ jacobian ~ +## +## Ends in an error in state: 491. +## +## expression -> expression . QMARK expression COLON expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . PLUS expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . MINUS expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . TIMES expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . DIVIDE expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . IDIVIDE expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . MODULO expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . LDIVIDE expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . ELTTIMES expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . ELTDIVIDE expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . HAT expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . ELTPOW expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . OR expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . AND expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . EQUALS expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . NEQUALS expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . LABRACK expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . LEQ expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . RABRACK expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . GEQ expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . TRANSPOSE [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## top_var_type -> STOCHASTICCOLUMNMATRIX LBRACK expression . COMMA expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## +## The known suffix of the stack is as follows: +## STOCHASTICCOLUMNMATRIX LBRACK expression +## +## WARNING: This example involves spurious reductions. +## This implies that, although the LR(1) items shown above provide an +## accurate view of the past (what has been recognized so far), they +## may provide an INCOMPLETE view of the future (what was expected next). +## In state 108, spurious reduction of production common_expression -> identifier +## In state 123, spurious reduction of production expression -> common_expression +## + +TODO: PARSER MESSAGE NEEDED HERE. + +program: DATABLOCK LBRACE STOCHASTICCOLUMNMATRIX LBRACK JACOBIAN COMMA WHILE +## +## Concrete syntax: data { stochastic_column_matrix [ jacobian , while +## +## Ends in an error in state: 492. +## +## top_var_type -> STOCHASTICCOLUMNMATRIX LBRACK expression COMMA . expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## +## The known suffix of the stack is as follows: +## STOCHASTICCOLUMNMATRIX LBRACK expression COMMA +## + +TODO: PARSER MESSAGE NEEDED HERE. + +program: DATABLOCK LBRACE STOCHASTICCOLUMNMATRIX LBRACK JACOBIAN COMMA JACOBIAN TILDE +## +## Concrete syntax: data { stochastic_column_matrix [ jacobian , jacobian ~ +## +## Ends in an error in state: 493. +## +## expression -> expression . QMARK expression COLON expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . PLUS expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . MINUS expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . TIMES expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . DIVIDE expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . IDIVIDE expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . MODULO expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . LDIVIDE expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . ELTTIMES expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . ELTDIVIDE expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . HAT expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . ELTPOW expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . OR expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . AND expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . EQUALS expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . NEQUALS expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . LABRACK expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . LEQ expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . RABRACK expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . GEQ expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . TRANSPOSE [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## top_var_type -> STOCHASTICCOLUMNMATRIX LBRACK expression COMMA expression . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## +## The known suffix of the stack is as follows: +## STOCHASTICCOLUMNMATRIX LBRACK expression COMMA expression +## +## WARNING: This example involves spurious reductions. +## This implies that, although the LR(1) items shown above provide an +## accurate view of the past (what has been recognized so far), they +## may provide an INCOMPLETE view of the future (what was expected next). +## In state 108, spurious reduction of production common_expression -> identifier +## In state 123, spurious reduction of production expression -> common_expression +## + +TODO: PARSER MESSAGE NEEDED HERE. \ No newline at end of file diff --git a/src/frontend/parser.mly b/src/frontend/parser.mly index 146620552..e48016b86 100644 --- a/src/frontend/parser.mly +++ b/src/frontend/parser.mly @@ -85,6 +85,7 @@ let nest_unsized_array basic_type n = POSITIVEORDERED "positive_ordered" SIMPLEX "simplex" UNITVECTOR "unit_vector" CHOLESKYFACTORCORR "cholesky_factor_corr" CHOLESKYFACTORCOV "cholesky_factor_cov" CORRMATRIX "corr_matrix" COVMATRIX "cov_matrix" COMPLEXMATRIX "complex_matrix" + STOCHASTICCOLUMNMATRIX "stochastic_column_matrix" STOCHASTICROWMATRIX "stochastic_row_matrix" %token LOWER "lower" UPPER "upper" OFFSET "offset" MULTIPLIER "multiplier" %token JACOBIAN "jacobian" %token INTNUMERAL "24" @@ -510,6 +511,10 @@ top_var_type: { grammar_logger "CORRMATRIX_top_var_type" ; (SMatrix (AoS, e, e), Correlation) } | COVMATRIX LBRACK e=expression RBRACK { grammar_logger "COVMATRIX_top_var_type" ; (SizedType.SMatrix (AoS, e, e), Transformation.Covariance) } + | STOCHASTICCOLUMNMATRIX LBRACK e1=expression COMMA e2=expression RBRACK + { grammar_logger "STOCHASTICCOLUMNMATRIX_top_var_type" ; (SizedType.SMatrix (AoS, e1, e2), Transformation.StochasticColumn) } + | STOCHASTICROWMATRIX LBRACK e1=expression COMMA e2=expression RBRACK + { grammar_logger "STOCHASTICROWMATRIX_top_var_type" ; (SizedType.SMatrix (AoS, e1, e2), Transformation.StochasticRow) } type_constraint: | r=range_constraint diff --git a/src/middle/Transformation.ml b/src/middle/Transformation.ml index 58d32b44d..ee31b82d4 100644 --- a/src/middle/Transformation.ml +++ b/src/middle/Transformation.ml @@ -20,10 +20,14 @@ type 'e t = | CholeskyCov | Correlation | Covariance + | StochasticRow + | StochasticColumn | TupleTransformation of 'e t list [@@deriving sexp, compare, map, hash, fold] let rec has_check = function - | Identity | Offset _ | Multiplier _ | OffsetMultiplier _ -> false + | Identity | Offset _ | Multiplier _ | OffsetMultiplier _ | StochasticRow + |StochasticColumn -> + false | TupleTransformation transforms -> List.exists ~f:has_check transforms | _ -> true diff --git a/src/stan_math_backend/Lower_expr.ml b/src/stan_math_backend/Lower_expr.ml index 66a25cf2e..a97f172b9 100644 --- a/src/stan_math_backend/Lower_expr.ml +++ b/src/stan_math_backend/Lower_expr.ml @@ -35,6 +35,8 @@ let constraint_to_string = function | Upper _ -> Some "ub" | LowerUpper _ -> Some "lub" | Offset _ | Multiplier _ | OffsetMultiplier _ -> Some "offset_multiplier" + | StochasticRow -> Some "stochastic_row" + | StochasticColumn -> Some "stochastic_column" | Identity -> None | TupleTransformation _ -> Common.ICE.internal_compiler_error diff --git a/test/integration/good/stochastic_matrices.stan b/test/integration/good/stochastic_matrices.stan new file mode 100644 index 000000000..bf09aefac --- /dev/null +++ b/test/integration/good/stochastic_matrices.stan @@ -0,0 +1,23 @@ +data { + stochastic_column_matrix[10, 10] d_scm; + stochastic_row_matrix[10, 10] d_srm; +} + +transformed data { + stochastic_column_matrix[10, 10] td_scm = d_scm; + stochastic_row_matrix[10, 10] td_srm = d_srm; +} +parameters { + stochastic_column_matrix[10, 10] p_scm; + stochastic_row_matrix[10, 10] p_srm; +} + +transformed parameters { + stochastic_column_matrix[10, 10] tp_scm = p_scm; + stochastic_row_matrix[10, 10] tp_srm = p_srm; +} + +generated quantities { + stochastic_column_matrix[10, 10] gq_scm = tp_scm; + stochastic_row_matrix[10, 10] gq_srm = tp_srm; +} \ No newline at end of file diff --git a/test/unit/Debug_data_generation_tests.ml b/test/unit/Debug_data_generation_tests.ml index cc0a5d590..d3ea01ad3 100644 --- a/test/unit/Debug_data_generation_tests.ml +++ b/test/unit/Debug_data_generation_tests.ml @@ -147,29 +147,29 @@ let%expect_test "whole program data generation check" = 0.43780890273186973 ], [ - 0.30070059205259525, 1.0, 0.45065011470838873, 0.40347551006498511, + 0.30070059205259525, 1.0, 0.45065011470838867, 0.40347551006498511, 0.7742535367378276 ], [ - 0.1780531358185751, 0.45065011470838873, 1.0000000000000002, - 0.47627710137758322, 0.69085242407984848 + 0.1780531358185751, 0.45065011470838867, 1.0000000000000002, + 0.47627710137758322, 0.69085242407984859 ], [ - 0.59291090874043639, 0.40347551006498511, 0.47627710137758322, 1.0, - 0.72199384900826991 + 0.59291090874043639, 0.40347551006498511, 0.47627710137758322, + 0.99999999999999989, 0.72199384900826991 ], [ - 0.43780890273186973, 0.7742535367378276, 0.69085242407984848, + 0.43780890273186973, 0.7742535367378276, 0.69085242407984859, 0.72199384900826991, 1.0 ] ], "e": [ [ - 3.5187841056791589, 3.0801270965354863, 2.6613103589944083, + 3.5187841056791589, 3.0801270965354859, 2.6613103589944083, 3.0708651420825221 ], [ - 3.0801270965354863, 4.1445739878716106, 1.7318254997563731, + 3.0801270965354859, 4.1445739878716106, 1.7318254997563731, 3.284008881887432 ], [ @@ -195,8 +195,8 @@ let%expect_test "whole program data generation check" = [ 0.8680809071847051, 0.49642274180518731, 0.0, 0.0 ], [ 0.84564151733440152, 0.45763410086289852, 0.27470248249292828, 0.0 ], [ - 0.797502080028714, 0.46262393314442579, 0.38391964675632256, - 0.050746760156257148 + 0.79750208002871426, 0.46262393314442585, 0.38391964675632262, + 0.050746760156257162 ] ], "h": [ From 7cd1235a581703acb879be8759bbff4ff4d52bf8 Mon Sep 17 00:00:00 2001 From: Steve Bronder Date: Fri, 26 Jul 2024 11:39:30 -0400 Subject: [PATCH 02/10] update --- src/frontend/parser.messages | 2 +- test/unit/Debug_data_generation_tests.ml | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/frontend/parser.messages b/src/frontend/parser.messages index fe081d39a..38bccac94 100644 --- a/src/frontend/parser.messages +++ b/src/frontend/parser.messages @@ -3923,4 +3923,4 @@ program: DATABLOCK LBRACE STOCHASTICCOLUMNMATRIX LBRACK JACOBIAN COMMA JACOBIAN ## In state 123, spurious reduction of production expression -> common_expression ## -TODO: PARSER MESSAGE NEEDED HERE. \ No newline at end of file +TODO: PARSER MESSAGE NEEDED HERE. diff --git a/test/unit/Debug_data_generation_tests.ml b/test/unit/Debug_data_generation_tests.ml index d3ea01ad3..cc0a5d590 100644 --- a/test/unit/Debug_data_generation_tests.ml +++ b/test/unit/Debug_data_generation_tests.ml @@ -147,29 +147,29 @@ let%expect_test "whole program data generation check" = 0.43780890273186973 ], [ - 0.30070059205259525, 1.0, 0.45065011470838867, 0.40347551006498511, + 0.30070059205259525, 1.0, 0.45065011470838873, 0.40347551006498511, 0.7742535367378276 ], [ - 0.1780531358185751, 0.45065011470838867, 1.0000000000000002, - 0.47627710137758322, 0.69085242407984859 + 0.1780531358185751, 0.45065011470838873, 1.0000000000000002, + 0.47627710137758322, 0.69085242407984848 ], [ - 0.59291090874043639, 0.40347551006498511, 0.47627710137758322, - 0.99999999999999989, 0.72199384900826991 + 0.59291090874043639, 0.40347551006498511, 0.47627710137758322, 1.0, + 0.72199384900826991 ], [ - 0.43780890273186973, 0.7742535367378276, 0.69085242407984859, + 0.43780890273186973, 0.7742535367378276, 0.69085242407984848, 0.72199384900826991, 1.0 ] ], "e": [ [ - 3.5187841056791589, 3.0801270965354859, 2.6613103589944083, + 3.5187841056791589, 3.0801270965354863, 2.6613103589944083, 3.0708651420825221 ], [ - 3.0801270965354859, 4.1445739878716106, 1.7318254997563731, + 3.0801270965354863, 4.1445739878716106, 1.7318254997563731, 3.284008881887432 ], [ @@ -195,8 +195,8 @@ let%expect_test "whole program data generation check" = [ 0.8680809071847051, 0.49642274180518731, 0.0, 0.0 ], [ 0.84564151733440152, 0.45763410086289852, 0.27470248249292828, 0.0 ], [ - 0.79750208002871426, 0.46262393314442585, 0.38391964675632262, - 0.050746760156257162 + 0.797502080028714, 0.46262393314442579, 0.38391964675632256, + 0.050746760156257148 ] ], "h": [ From 7f71495a9eef02f9552ecd941ba317d3165c7949 Mon Sep 17 00:00:00 2001 From: Steve Bronder Date: Fri, 26 Jul 2024 11:55:35 -0400 Subject: [PATCH 03/10] update messages --- src/frontend/Pretty_printing.ml | 4 +- src/frontend/parser.messages | 733 +++++++++++++++++--------- test/integration/bad/stanc.expected | 6 +- test/integration/good/pretty.expected | 22 + 4 files changed, 520 insertions(+), 245 deletions(-) diff --git a/src/frontend/Pretty_printing.ml b/src/frontend/Pretty_printing.ml index 1fc632cdd..5aa53c07d 100644 --- a/src/frontend/Pretty_printing.ml +++ b/src/frontend/Pretty_printing.ml @@ -364,8 +364,8 @@ let rec pp_transformed_type ppf (st, trans) = | CholeskyCov -> pf ppf "cholesky_factor_cov%a" cov_sizes_fmt () | Correlation -> pf ppf "corr_matrix%a" cov_sizes_fmt () | Covariance -> pf ppf "cov_matrix%a" cov_sizes_fmt () - | StochasticColumn -> pf ppf "stochastic_column%a" sizes_fmt () - | StochasticRow -> pf ppf "stochastic_row%a" sizes_fmt () + | StochasticColumn -> pf ppf "stochastic_column_matrix%a" sizes_fmt () + | StochasticRow -> pf ppf "stochastic_row_matrix%a" sizes_fmt () | TupleTransformation transforms -> (* NB this calls the top-level function to handle internal arrays etc *) let transTypes = Middle.Utils.zip_stuple_trans_exn st transforms in diff --git a/src/frontend/parser.messages b/src/frontend/parser.messages index 171c8d949..8430801f8 100644 --- a/src/frontend/parser.messages +++ b/src/frontend/parser.messages @@ -2,7 +2,7 @@ program: WHILE ## ## Concrete syntax: while ## -## Ends in an error in state: 404. +## Ends in an error in state: 403. ## ## program' -> . program [ # ] ## @@ -20,7 +20,7 @@ program: DATABLOCK LBRACE CHOLESKYFACTORCORR WHILE ## ## Concrete syntax: data { cholesky_factor_corr while ## -## Ends in an error in state: 551. +## Ends in an error in state: 562. ## ## top_var_type -> CHOLESKYFACTORCORR . LBRACK expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## @@ -42,7 +42,7 @@ program: DATABLOCK LBRACE CHOLESKYFACTORCOV LBRACK WHILE ## ## Concrete syntax: data { cholesky_factor_cov [ while ## -## Ends in an error in state: 545. +## Ends in an error in state: 556. ## ## top_var_type -> CHOLESKYFACTORCOV LBRACK . expression option(pair(COMMA,expression)) RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## @@ -60,7 +60,7 @@ program: DATABLOCK LBRACE CORRMATRIX WHILE ## ## Concrete syntax: data { corr_matrix while ## -## Ends in an error in state: 521. +## Ends in an error in state: 532. ## ## top_var_type -> CORRMATRIX . LBRACK expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## @@ -78,7 +78,7 @@ program: DATABLOCK LBRACE COVMATRIX WHILE ## ## Concrete syntax: data { cov_matrix while ## -## Ends in an error in state: 517. +## Ends in an error in state: 528. ## ## top_var_type -> COVMATRIX . LBRACK expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## @@ -92,7 +92,7 @@ program: DATABLOCK LBRACE INT LABRACK WHILE ## ## Concrete syntax: data { int < while ## -## Ends in an error in state: 515. +## Ends in an error in state: 526. ## ## range_constraint -> LABRACK . range RABRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## @@ -106,7 +106,7 @@ program: DATABLOCK LBRACE INT LBRACE ## ## Concrete syntax: data { int { ## -## Ends in an error in state: 514. +## Ends in an error in state: 525. ## ## top_var_type -> INT . range_constraint [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## @@ -124,7 +124,7 @@ program: DATABLOCK LBRACE ORDERED WHILE ## ## Concrete syntax: data { ordered while ## -## Ends in an error in state: 503. +## Ends in an error in state: 514. ## ## top_var_type -> ORDERED . LBRACK expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## @@ -142,7 +142,7 @@ program: DATABLOCK LBRACE POSITIVEORDERED WHILE ## ## Concrete syntax: data { positive_ordered while ## -## Ends in an error in state: 499. +## Ends in an error in state: 510. ## ## top_var_type -> POSITIVEORDERED . LBRACK expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## @@ -156,7 +156,7 @@ program: DATABLOCK LBRACE RBRACE WHILE ## ## Concrete syntax: data { } while ## -## Ends in an error in state: 615. +## Ends in an error in state: 626. ## ## program -> option(function_block) option(data_block) . option(transformed_data_block) option(parameters_block) option(transformed_parameters_block) option(model_block) option(generated_quantities_block) EOF [ # ] ## @@ -170,7 +170,7 @@ program: DATABLOCK LBRACE REAL IDENTIFIER SEMICOLON WHILE ## ## Concrete syntax: data { real foo ; while ## -## Ends in an error in state: 606. +## Ends in an error in state: 617. ## ## list(top_var_decl_no_assign) -> top_var_decl_no_assign . list(top_var_decl_no_assign) [ RBRACE ] ## @@ -184,7 +184,7 @@ program: DATABLOCK LBRACE REAL LBRACE ## ## Concrete syntax: data { real { ## -## Ends in an error in state: 497. +## Ends in an error in state: 508. ## ## top_var_type -> REAL . type_constraint [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## @@ -198,7 +198,7 @@ program: DATABLOCK LBRACE ROWVECTOR LABRACK MULTIPLIER ASSIGN IDENTIFIER RABRACK ## ## Concrete syntax: data { row_vector < multiplier = foo > while ## -## Ends in an error in state: 493. +## Ends in an error in state: 504. ## ## top_var_type -> ROWVECTOR type_constraint . LBRACK expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## @@ -216,7 +216,7 @@ program: DATABLOCK LBRACE SIMPLEX WHILE ## ## Concrete syntax: data { simplex while ## -## Ends in an error in state: 488. +## Ends in an error in state: 499. ## ## top_var_type -> SIMPLEX . LBRACK expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## @@ -234,7 +234,7 @@ program: DATABLOCK LBRACE UNITVECTOR WHILE ## ## Concrete syntax: data { unit_vector while ## -## Ends in an error in state: 482. +## Ends in an error in state: 481. ## ## top_var_type -> UNITVECTOR . LBRACK expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## @@ -248,7 +248,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK OFFSET ASSIGN IDENTIFIER COMMA MULTIPLI ## ## Concrete syntax: data { vector < offset = foo , multiplier = foo , ## -## Ends in an error in state: 458. +## Ends in an error in state: 457. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE ] @@ -271,8 +271,8 @@ program: DATABLOCK LBRACE VECTOR LABRACK OFFSET ASSIGN IDENTIFIER COMMA MULTIPLI ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 109, spurious reduction of production common_expression -> identifier -## In state 426, spurious reduction of production constr_expression -> common_expression +## In state 108, spurious reduction of production common_expression -> identifier +## In state 425, spurious reduction of production constr_expression -> common_expression ## Expected ">" after "multiplier = " expression. @@ -281,7 +281,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK OFFSET ASSIGN IDENTIFIER COMMA MULTIPLI ## ## Concrete syntax: data { vector < offset = foo , multiplier = while ## -## Ends in an error in state: 457. +## Ends in an error in state: 456. ## ## offset_mult -> OFFSET ASSIGN constr_expression COMMA MULTIPLIER ASSIGN . constr_expression [ RABRACK ] ## @@ -295,7 +295,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK OFFSET ASSIGN IDENTIFIER COMMA MULTIPLI ## ## Concrete syntax: data { vector < offset = foo , multiplier while ## -## Ends in an error in state: 456. +## Ends in an error in state: 455. ## ## offset_mult -> OFFSET ASSIGN constr_expression COMMA MULTIPLIER . ASSIGN constr_expression [ RABRACK ] ## @@ -311,7 +311,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK OFFSET ASSIGN IDENTIFIER COMMA WHILE ## ## Concrete syntax: data { vector < offset = foo , while ## -## Ends in an error in state: 455. +## Ends in an error in state: 454. ## ## offset_mult -> OFFSET ASSIGN constr_expression COMMA . MULTIPLIER ASSIGN constr_expression [ RABRACK ] ## @@ -325,7 +325,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK OFFSET ASSIGN WHILE ## ## Concrete syntax: data { vector < offset = while ## -## Ends in an error in state: 453. +## Ends in an error in state: 452. ## ## offset_mult -> OFFSET ASSIGN . constr_expression COMMA MULTIPLIER ASSIGN constr_expression [ RABRACK ] ## offset_mult -> OFFSET ASSIGN . constr_expression [ RABRACK ] @@ -340,7 +340,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK OFFSET WHILE ## ## Concrete syntax: data { vector < offset while ## -## Ends in an error in state: 452. +## Ends in an error in state: 451. ## ## offset_mult -> OFFSET . ASSIGN constr_expression COMMA MULTIPLIER ASSIGN constr_expression [ RABRACK ] ## offset_mult -> OFFSET . ASSIGN constr_expression [ RABRACK ] @@ -383,7 +383,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK LOWER ASSIGN IDENTIFIER COMMA UPPER ASS ## ## Concrete syntax: data { vector < lower = foo , upper = foo , ## -## Ends in an error in state: 472. +## Ends in an error in state: 471. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE ] @@ -406,8 +406,8 @@ program: DATABLOCK LBRACE VECTOR LABRACK LOWER ASSIGN IDENTIFIER COMMA UPPER ASS ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 109, spurious reduction of production common_expression -> identifier -## In state 426, spurious reduction of production constr_expression -> common_expression +## In state 108, spurious reduction of production common_expression -> identifier +## In state 425, spurious reduction of production constr_expression -> common_expression ## Expected ">" after "upper = " expression. @@ -418,7 +418,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK LOWER ASSIGN IDENTIFIER COMMA UPPER ASS ## ## Concrete syntax: data { vector < lower = foo , upper = while ## -## Ends in an error in state: 471. +## Ends in an error in state: 470. ## ## range -> LOWER ASSIGN constr_expression COMMA UPPER ASSIGN . constr_expression [ RABRACK ] ## @@ -432,7 +432,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK LOWER ASSIGN IDENTIFIER COMMA UPPER WHI ## ## Concrete syntax: data { vector < lower = foo , upper while ## -## Ends in an error in state: 470. +## Ends in an error in state: 469. ## ## range -> LOWER ASSIGN constr_expression COMMA UPPER . ASSIGN constr_expression [ RABRACK ] ## @@ -446,7 +446,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK LOWER ASSIGN IDENTIFIER COMMA WHILE ## ## Concrete syntax: data { vector < lower = foo , while ## -## Ends in an error in state: 469. +## Ends in an error in state: 468. ## ## range -> LOWER ASSIGN constr_expression COMMA . UPPER ASSIGN constr_expression [ RABRACK ] ## @@ -460,7 +460,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK LOWER ASSIGN WHILE ## ## Concrete syntax: data { vector < lower = while ## -## Ends in an error in state: 467. +## Ends in an error in state: 466. ## ## range -> LOWER ASSIGN . constr_expression COMMA UPPER ASSIGN constr_expression [ RABRACK ] ## range -> LOWER ASSIGN . constr_expression [ RABRACK ] @@ -475,7 +475,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK LOWER WHILE ## ## Concrete syntax: data { vector < lower while ## -## Ends in an error in state: 466. +## Ends in an error in state: 465. ## ## range -> LOWER . ASSIGN constr_expression COMMA UPPER ASSIGN constr_expression [ RABRACK ] ## range -> LOWER . ASSIGN constr_expression [ RABRACK ] @@ -490,7 +490,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK MULTIPLIER ASSIGN WHILE ## ## Concrete syntax: data { vector < multiplier = while ## -## Ends in an error in state: 460. +## Ends in an error in state: 459. ## ## offset_mult -> MULTIPLIER ASSIGN . constr_expression COMMA OFFSET ASSIGN constr_expression [ RABRACK ] ## offset_mult -> MULTIPLIER ASSIGN . constr_expression [ RABRACK ] @@ -505,7 +505,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK MULTIPLIER WHILE ## ## Concrete syntax: data { vector < multiplier while ## -## Ends in an error in state: 459. +## Ends in an error in state: 458. ## ## offset_mult -> MULTIPLIER . ASSIGN constr_expression COMMA OFFSET ASSIGN constr_expression [ RABRACK ] ## offset_mult -> MULTIPLIER . ASSIGN constr_expression [ RABRACK ] @@ -522,7 +522,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN BANG WHILE ## ## Concrete syntax: data { vector < upper = ! while ## -## Ends in an error in state: 419. +## Ends in an error in state: 418. ## ## constr_expression -> BANG . constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -536,7 +536,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN MINUS WHILE ## ## Concrete syntax: data { vector < upper = - while ## -## Ends in an error in state: 418. +## Ends in an error in state: 417. ## ## constr_expression -> MINUS . constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -550,7 +550,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN PLUS WHILE ## ## Concrete syntax: data { vector < upper = + while ## -## Ends in an error in state: 417. +## Ends in an error in state: 416. ## ## constr_expression -> PLUS . constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -564,7 +564,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN IDENTIFIER DIVIDE WHILE ## ## Concrete syntax: data { vector < upper = foo / while ## -## Ends in an error in state: 444. +## Ends in an error in state: 443. ## ## constr_expression -> constr_expression DIVIDE . constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -578,7 +578,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN IDENTIFIER ELTDIVIDE WHILE ## ## Concrete syntax: data { vector < upper = foo ./ while ## -## Ends in an error in state: 442. +## Ends in an error in state: 441. ## ## constr_expression -> constr_expression ELTDIVIDE . constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -592,7 +592,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN IDENTIFIER ELTTIMES WHILE ## ## Concrete syntax: data { vector < upper = foo .* while ## -## Ends in an error in state: 440. +## Ends in an error in state: 439. ## ## constr_expression -> constr_expression ELTTIMES . constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -606,7 +606,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN IDENTIFIER HAT WHILE ## ## Concrete syntax: data { vector < upper = foo ^ while ## -## Ends in an error in state: 422. +## Ends in an error in state: 421. ## ## constr_expression -> constr_expression HAT . constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -620,7 +620,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN IDENTIFIER LDIVIDE WHILE ## ## Concrete syntax: data { vector < upper = foo \ while ## -## Ends in an error in state: 432. +## Ends in an error in state: 431. ## ## constr_expression -> constr_expression LDIVIDE . constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -634,7 +634,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN IDENTIFIER MINUS WHILE ## ## Concrete syntax: data { vector < upper = foo - while ## -## Ends in an error in state: 446. +## Ends in an error in state: 445. ## ## constr_expression -> constr_expression MINUS . constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -648,7 +648,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN IDENTIFIER MODULO WHILE ## ## Concrete syntax: data { vector < upper = foo % while ## -## Ends in an error in state: 438. +## Ends in an error in state: 437. ## ## constr_expression -> constr_expression MODULO . constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -662,7 +662,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN IDENTIFIER PLUS WHILE ## ## Concrete syntax: data { vector < upper = foo + while ## -## Ends in an error in state: 436. +## Ends in an error in state: 435. ## ## constr_expression -> constr_expression PLUS . constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -676,7 +676,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN IDENTIFIER TIMES WHILE ## ## Concrete syntax: data { vector < upper = foo * while ## -## Ends in an error in state: 430. +## Ends in an error in state: 429. ## ## constr_expression -> constr_expression TIMES . constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -690,7 +690,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN WHILE ## ## Concrete syntax: data { vector < upper = while ## -## Ends in an error in state: 416. +## Ends in an error in state: 415. ## ## range -> UPPER ASSIGN . constr_expression COMMA LOWER ASSIGN constr_expression [ RABRACK ] ## range -> UPPER ASSIGN . constr_expression [ RABRACK ] @@ -705,7 +705,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK UPPER WHILE ## ## Concrete syntax: data { vector < upper while ## -## Ends in an error in state: 415. +## Ends in an error in state: 414. ## ## range -> UPPER . ASSIGN constr_expression COMMA LOWER ASSIGN constr_expression [ RABRACK ] ## range -> UPPER . ASSIGN constr_expression [ RABRACK ] @@ -720,7 +720,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK WHILE ## ## Concrete syntax: data { vector < while ## -## Ends in an error in state: 414. +## Ends in an error in state: 413. ## ## range_constraint -> LABRACK . range RABRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER LBRACK JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## type_constraint -> LABRACK . offset_mult RABRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER LBRACK JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -735,10 +735,10 @@ program: DATABLOCK LBRACE VECTOR LBRACK INTNUMERAL RBRACK HAT ## ## Concrete syntax: data { vector [ 24 ] ^ ## -## Ends in an error in state: 598. +## Ends in an error in state: 609. ## -## decl(top_var_type,no_assign) -> top_var_type . decl_identifier LBRACK separated_nonempty_list(COMMA,expression) RBRACK [ VECTOR UNITVECTOR TUPLE SIMPLEX SEMICOLON ROWVECTOR REAL RBRACE POSITIVEORDERED ORDERED MATRIX INT COVMATRIX CORRMATRIX COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR ARRAY ] -## decl(top_var_type,no_assign) -> top_var_type . id_and_optional_assignment(no_assign,decl_identifier) option(remaining_declarations(no_assign)) SEMICOLON [ VECTOR UNITVECTOR TUPLE SIMPLEX SEMICOLON ROWVECTOR REAL RBRACE POSITIVEORDERED ORDERED MATRIX INT COVMATRIX CORRMATRIX COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR ARRAY ] +## decl(top_var_type,no_assign) -> top_var_type . decl_identifier LBRACK separated_nonempty_list(COMMA,expression) RBRACK [ VECTOR UNITVECTOR TUPLE STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR REAL RBRACE POSITIVEORDERED ORDERED MATRIX INT COVMATRIX CORRMATRIX COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR ARRAY ] +## decl(top_var_type,no_assign) -> top_var_type . id_and_optional_assignment(no_assign,decl_identifier) option(remaining_declarations(no_assign)) SEMICOLON [ VECTOR UNITVECTOR TUPLE STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR REAL RBRACE POSITIVEORDERED ORDERED MATRIX INT COVMATRIX CORRMATRIX COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR ARRAY ] ## ## The known suffix of the stack is as follows: ## top_var_type @@ -750,7 +750,7 @@ program: DATABLOCK LBRACE IDENTIFIER ## ## Concrete syntax: data { foo ## -## Ends in an error in state: 412. +## Ends in an error in state: 411. ## ## data_block -> DATABLOCK LBRACE . list(top_var_decl_no_assign) RBRACE [ TRANSFORMEDPARAMETERSBLOCK TRANSFORMEDDATABLOCK PARAMETERSBLOCK MODELBLOCK GENERATEDQUANTITIESBLOCK EOF ] ## @@ -762,14 +762,14 @@ Invalid type in declaration. Valid types: int, real, vector, row_vector, matrix, unit_vector, simplex, ordered, positive_ordered, corr_matrix, cov_matrix, cholesky_factor_corr, cholesky_factor_cov, - tuple(...) + stochastic_row_matrix, stochastic_column_matrix, tuple(...) optionally preceded by a single array[...] program: DATABLOCK WHILE ## ## Concrete syntax: data while ## -## Ends in an error in state: 411. +## Ends in an error in state: 410. ## ## data_block -> DATABLOCK . LBRACE list(top_var_decl_no_assign) RBRACE [ TRANSFORMEDPARAMETERSBLOCK TRANSFORMEDDATABLOCK PARAMETERSBLOCK MODELBLOCK GENERATEDQUANTITIESBLOCK EOF ] ## @@ -783,7 +783,7 @@ program: FUNCTIONBLOCK LBRACE RBRACE COVMATRIX ## ## Concrete syntax: functions { } cov_matrix ## -## Ends in an error in state: 410. +## Ends in an error in state: 409. ## ## program -> option(function_block) . option(data_block) option(transformed_data_block) option(parameters_block) option(transformed_parameters_block) option(model_block) option(generated_quantities_block) EOF [ # ] ## @@ -799,7 +799,7 @@ program: FUNCTIONBLOCK LBRACE VOID IDENTIFIER LPAREN RPAREN SEMICOLON WHILE ## ## Concrete syntax: functions { void foo ( ) ; while ## -## Ends in an error in state: 402. +## Ends in an error in state: 401. ## ## list(function_def) -> function_def . list(function_def) [ RBRACE EOF ] ## @@ -817,7 +817,7 @@ program: FUNCTIONBLOCK LBRACE VOID IDENTIFIER LPAREN DATABLOCK WHILE ## ## Concrete syntax: functions { void foo ( data while ## -## Ends in an error in state: 89. +## Ends in an error in state: 88. ## ## arg_decl -> option(DATABLOCK) . unsized_type decl_identifier [ RPAREN COMMA ] ## @@ -831,7 +831,7 @@ program: FUNCTIONBLOCK LBRACE VOID IDENTIFIER LPAREN RPAREN VOID ## ## Concrete syntax: functions { void foo ( ) void ## -## Ends in an error in state: 93. +## Ends in an error in state: 92. ## ## function_def -> return_type decl_identifier LPAREN loption(separated_nonempty_list(COMMA,arg_decl)) RPAREN . statement [ VOID VECTOR TUPLE ROWVECTOR REAL RBRACE MATRIX INT EOF COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX ARRAY ] ## @@ -847,7 +847,7 @@ program: FUNCTIONBLOCK LBRACE VOID IDENTIFIER LPAREN VECTOR IDENTIFIER COMMA WHI ## ## Concrete syntax: functions { void foo ( vector foo , while ## -## Ends in an error in state: 397. +## Ends in an error in state: 396. ## ## separated_nonempty_list(COMMA,arg_decl) -> arg_decl COMMA . separated_nonempty_list(COMMA,arg_decl) [ RPAREN ] ## @@ -861,7 +861,7 @@ program: FUNCTIONBLOCK LBRACE VOID IDENTIFIER LPAREN VECTOR IDENTIFIER WHILE ## ## Concrete syntax: functions { void foo ( vector foo while ## -## Ends in an error in state: 396. +## Ends in an error in state: 395. ## ## separated_nonempty_list(COMMA,arg_decl) -> arg_decl . [ RPAREN ] ## separated_nonempty_list(COMMA,arg_decl) -> arg_decl . COMMA separated_nonempty_list(COMMA,arg_decl) [ RPAREN ] @@ -876,7 +876,7 @@ program: FUNCTIONBLOCK LBRACE VOID IDENTIFIER WHILE ## ## Concrete syntax: functions { void foo while ## -## Ends in an error in state: 85. +## Ends in an error in state: 84. ## ## function_def -> return_type decl_identifier . LPAREN loption(separated_nonempty_list(COMMA,arg_decl)) RPAREN statement [ VOID VECTOR TUPLE ROWVECTOR REAL RBRACE MATRIX INT EOF COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX ARRAY ] ## @@ -904,7 +904,7 @@ program: FUNCTIONBLOCK LBRACE WHILE ## ## Concrete syntax: functions { while ## -## Ends in an error in state: 406. +## Ends in an error in state: 405. ## ## function_block -> FUNCTIONBLOCK LBRACE . list(function_def) RBRACE [ TRANSFORMEDPARAMETERSBLOCK TRANSFORMEDDATABLOCK PARAMETERSBLOCK MODELBLOCK GENERATEDQUANTITIESBLOCK EOF DATABLOCK ] ## @@ -918,7 +918,7 @@ program: FUNCTIONBLOCK WHILE ## ## Concrete syntax: functions while ## -## Ends in an error in state: 405. +## Ends in an error in state: 404. ## ## function_block -> FUNCTIONBLOCK . LBRACE list(function_def) RBRACE [ TRANSFORMEDPARAMETERSBLOCK TRANSFORMEDDATABLOCK PARAMETERSBLOCK MODELBLOCK GENERATEDQUANTITIESBLOCK EOF DATABLOCK ] ## @@ -932,7 +932,7 @@ program: GENERATEDQUANTITIESBLOCK LBRACE RBRACE ELTTIMESASSIGN ## ## Concrete syntax: generated quantities { } .*= ## -## Ends in an error in state: 664. +## Ends in an error in state: 675. ## ## program -> option(function_block) option(data_block) option(transformed_data_block) option(parameters_block) option(transformed_parameters_block) option(model_block) option(generated_quantities_block) . EOF [ # ] ## @@ -946,7 +946,7 @@ program: GENERATEDQUANTITIESBLOCK LBRACE VOID ## ## Concrete syntax: generated quantities { void ## -## Ends in an error in state: 661. +## Ends in an error in state: 672. ## ## generated_quantities_block -> GENERATEDQUANTITIESBLOCK LBRACE . list(top_vardecl_or_statement) RBRACE [ EOF ] ## @@ -960,7 +960,7 @@ program: GENERATEDQUANTITIESBLOCK WHILE ## ## Concrete syntax: generated quantities while ## -## Ends in an error in state: 660. +## Ends in an error in state: 671. ## ## generated_quantities_block -> GENERATEDQUANTITIESBLOCK . LBRACE list(top_vardecl_or_statement) RBRACE [ EOF ] ## @@ -1016,7 +1016,7 @@ program: MODELBLOCK LBRACE MATRIX WHILE ## ## Concrete syntax: model { matrix while ## -## Ends in an error in state: 201. +## Ends in an error in state: 200. ## ## sized_basic_type -> MATRIX . LBRACK expression COMMA expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## @@ -1030,7 +1030,7 @@ program: MODELBLOCK LBRACE RBRACE ELTTIMESASSIGN ## ## Concrete syntax: model { } .*= ## -## Ends in an error in state: 659. +## Ends in an error in state: 670. ## ## program -> option(function_block) option(data_block) option(transformed_data_block) option(parameters_block) option(transformed_parameters_block) option(model_block) . option(generated_quantities_block) EOF [ # ] ## @@ -1046,7 +1046,7 @@ program: MODELBLOCK LBRACE REAL IDENTIFIER ASSIGN WHILE ## ## Concrete syntax: model { real foo = while ## -## Ends in an error in state: 312. +## Ends in an error in state: 311. ## ## option(pair(ASSIGN,expression)) -> ASSIGN . expression [ SEMICOLON COMMA ] ## @@ -1060,10 +1060,10 @@ program: MODELBLOCK LBRACE REAL LBRACK ## ## Concrete syntax: model { real [ ## -## Ends in an error in state: 322. +## Ends in an error in state: 321. ## -## decl(sized_basic_type,expression) -> sized_basic_type . decl_identifier LBRACK separated_nonempty_list(COMMA,expression) RBRACK [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## decl(sized_basic_type,expression) -> sized_basic_type . id_and_optional_assignment(expression,decl_identifier) option(remaining_declarations(expression)) SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## decl(sized_basic_type,expression) -> sized_basic_type . decl_identifier LBRACK separated_nonempty_list(COMMA,expression) RBRACK [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## decl(sized_basic_type,expression) -> sized_basic_type . id_and_optional_assignment(expression,decl_identifier) option(remaining_declarations(expression)) SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## sized_basic_type @@ -1099,7 +1099,7 @@ program: MODELBLOCK LBRACE ROWVECTOR LBRACK WHILE ## ## Concrete syntax: model { row_vector [ while ## -## Ends in an error in state: 197. +## Ends in an error in state: 196. ## ## sized_basic_type -> ROWVECTOR LBRACK . expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## @@ -1113,7 +1113,7 @@ program: MODELBLOCK LBRACE SEMICOLON VOID ## ## Concrete syntax: model { ; void ## -## Ends in an error in state: 387. +## Ends in an error in state: 386. ## ## list(vardecl_or_statement) -> vardecl_or_statement . list(vardecl_or_statement) [ RBRACE ] ## @@ -1153,7 +1153,7 @@ program: MODELBLOCK LBRACE VECTOR WHILE ## ## Concrete syntax: model { vector while ## -## Ends in an error in state: 190. +## Ends in an error in state: 189. ## ## sized_basic_type -> VECTOR . LBRACK expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## @@ -1167,7 +1167,7 @@ program: MODELBLOCK LBRACE VOID ## ## Concrete syntax: model { void ## -## Ends in an error in state: 656. +## Ends in an error in state: 667. ## ## model_block -> MODELBLOCK LBRACE . list(vardecl_or_statement) RBRACE [ GENERATEDQUANTITIESBLOCK EOF ] ## @@ -1181,7 +1181,7 @@ program: MODELBLOCK WHILE ## ## Concrete syntax: model while ## -## Ends in an error in state: 655. +## Ends in an error in state: 666. ## ## model_block -> MODELBLOCK . LBRACE list(vardecl_or_statement) RBRACE [ GENERATEDQUANTITIESBLOCK EOF ] ## @@ -1195,7 +1195,7 @@ program: PARAMETERSBLOCK LBRACE RBRACE ELTTIMESASSIGN ## ## Concrete syntax: parameters { } .*= ## -## Ends in an error in state: 648. +## Ends in an error in state: 659. ## ## program -> option(function_block) option(data_block) option(transformed_data_block) option(parameters_block) . option(transformed_parameters_block) option(model_block) option(generated_quantities_block) EOF [ # ] ## @@ -1209,7 +1209,7 @@ program: PARAMETERSBLOCK LBRACE WHILE ## ## Concrete syntax: parameters { while ## -## Ends in an error in state: 644. +## Ends in an error in state: 655. ## ## parameters_block -> PARAMETERSBLOCK LBRACE . list(top_var_decl_no_assign) RBRACE [ TRANSFORMEDPARAMETERSBLOCK MODELBLOCK GENERATEDQUANTITIESBLOCK EOF ] ## @@ -1223,7 +1223,7 @@ program: PARAMETERSBLOCK WHILE ## ## Concrete syntax: parameters while ## -## Ends in an error in state: 643. +## Ends in an error in state: 654. ## ## parameters_block -> PARAMETERSBLOCK . LBRACE list(top_var_decl_no_assign) RBRACE [ TRANSFORMEDPARAMETERSBLOCK MODELBLOCK GENERATEDQUANTITIESBLOCK EOF ] ## @@ -1239,7 +1239,7 @@ program: TRANSFORMEDDATABLOCK LBRACE BANG WHILE ## ## Concrete syntax: transformed data { ! while ## -## Ends in an error in state: 108. +## Ends in an error in state: 107. ## ## expression -> BANG . expression [ TRANSPOSE TIMES TILDE SEMICOLON RPAREN RBRACK RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON BAR AND ] ## @@ -1253,7 +1253,7 @@ program: TRANSFORMEDDATABLOCK LBRACE BREAK WHILE ## ## Concrete syntax: transformed data { break while ## -## Ends in an error in state: 298. +## Ends in an error in state: 297. ## ## atomic_statement -> BREAK . SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -1267,7 +1267,7 @@ program: TRANSFORMEDDATABLOCK LBRACE CONTINUE WHILE ## ## Concrete syntax: transformed data { continue while ## -## Ends in an error in state: 296. +## Ends in an error in state: 295. ## ## atomic_statement -> CONTINUE . SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -1281,7 +1281,7 @@ program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN IDENTIFIER IN REALNUMERAL COLON ## ## Concrete syntax: transformed data { for ( foo in 3.1415 : foo ) void ## -## Ends in an error in state: 382. +## Ends in an error in state: 381. ## ## nested_statement -> FOR LPAREN identifier IN expression COLON expression RPAREN . vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -1297,7 +1297,7 @@ program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN IDENTIFIER IN REALNUMERAL COLON ## ## Concrete syntax: transformed data { for ( foo in 3.1415 : while ## -## Ends in an error in state: 380. +## Ends in an error in state: 379. ## ## nested_statement -> FOR LPAREN identifier IN expression COLON . expression RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -1311,7 +1311,7 @@ program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN IDENTIFIER IN REALNUMERAL RPAREN ## ## Concrete syntax: transformed data { for ( foo in 3.1415 ) void ## -## Ends in an error in state: 290. +## Ends in an error in state: 289. ## ## nested_statement -> FOR LPAREN identifier IN expression RPAREN . vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -1327,7 +1327,7 @@ program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN IDENTIFIER IN DOTNUMERAL TILDE ## ## Concrete syntax: transformed data { for ( foo in .2 ~ ## -## Ends in an error in state: 289. +## Ends in an error in state: 288. ## ## expression -> expression . QMARK expression COLON expression [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] ## expression -> expression . PLUS expression [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] @@ -1360,7 +1360,7 @@ program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN IDENTIFIER IN DOTNUMERAL TILDE ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 124, spurious reduction of production expression -> common_expression +## In state 123, spurious reduction of production expression -> common_expression ## Ill-formed expression. Expected expression followed by ")" or ":" after "for (" identifier "in". @@ -1369,7 +1369,7 @@ program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN IDENTIFIER WHILE ## ## Concrete syntax: transformed data { for ( foo while ## -## Ends in an error in state: 287. +## Ends in an error in state: 286. ## ## nested_statement -> FOR LPAREN identifier . IN expression COLON expression RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## nested_statement -> FOR LPAREN identifier . IN expression RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] @@ -1384,7 +1384,7 @@ program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN WHILE ## ## Concrete syntax: transformed data { for ( while ## -## Ends in an error in state: 286. +## Ends in an error in state: 285. ## ## nested_statement -> FOR LPAREN . identifier IN expression COLON expression RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## nested_statement -> FOR LPAREN . identifier IN expression RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] @@ -1399,7 +1399,7 @@ program: TRANSFORMEDDATABLOCK LBRACE FOR WHILE ## ## Concrete syntax: transformed data { for while ## -## Ends in an error in state: 285. +## Ends in an error in state: 284. ## ## nested_statement -> FOR . LPAREN identifier IN expression COLON expression RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## nested_statement -> FOR . LPAREN identifier IN expression RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] @@ -1416,7 +1416,7 @@ program: TRANSFORMEDDATABLOCK LBRACE IF LPAREN IDENTIFIER RPAREN SEMICOLON UNREA ## ## Concrete syntax: transformed data { if ( foo ) ; <<<>> ## -## Ends in an error in state: 384. +## Ends in an error in state: 383. ## ## nested_statement -> IF LPAREN expression RPAREN vardecl_or_statement . ELSE vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## nested_statement -> IF LPAREN expression RPAREN vardecl_or_statement . [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] @@ -1431,7 +1431,7 @@ program: TRANSFORMEDDATABLOCK LBRACE IF LPAREN REALNUMERAL RPAREN VOID ## ## Concrete syntax: transformed data { if ( 3.1415 ) void ## -## Ends in an error in state: 284. +## Ends in an error in state: 283. ## ## nested_statement -> IF LPAREN expression RPAREN . vardecl_or_statement ELSE vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## nested_statement -> IF LPAREN expression RPAREN . vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] @@ -1446,7 +1446,7 @@ program: TRANSFORMEDDATABLOCK LBRACE IF LPAREN IDENTIFIER RPAREN SEMICOLON ELSE ## ## Concrete syntax: transformed data { if ( foo ) ; else void ## -## Ends in an error in state: 385. +## Ends in an error in state: 384. ## ## nested_statement -> IF LPAREN expression RPAREN vardecl_or_statement ELSE . vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -1460,7 +1460,7 @@ program: TRANSFORMEDDATABLOCK LBRACE IF LPAREN IDENTIFIER TILDE ## ## Concrete syntax: transformed data { if ( foo ~ ## -## Ends in an error in state: 283. +## Ends in an error in state: 282. ## ## expression -> expression . QMARK expression COLON expression [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## expression -> expression . PLUS expression [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -1493,8 +1493,8 @@ program: TRANSFORMEDDATABLOCK LBRACE IF LPAREN IDENTIFIER TILDE ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 109, spurious reduction of production common_expression -> identifier -## In state 124, spurious reduction of production expression -> common_expression +## In state 108, spurious reduction of production common_expression -> identifier +## In state 123, spurious reduction of production expression -> common_expression ## Ill-formed expression. Expression expected after "(", for test of conditional control flow construct. @@ -1503,7 +1503,7 @@ program: TRANSFORMEDDATABLOCK LBRACE IF LPAREN WHILE ## ## Concrete syntax: transformed data { if ( while ## -## Ends in an error in state: 282. +## Ends in an error in state: 281. ## ## nested_statement -> IF LPAREN . expression RPAREN vardecl_or_statement ELSE vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## nested_statement -> IF LPAREN . expression RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] @@ -1518,7 +1518,7 @@ program: TRANSFORMEDDATABLOCK LBRACE IF WHILE ## ## Concrete syntax: transformed data { if while ## -## Ends in an error in state: 281. +## Ends in an error in state: 280. ## ## nested_statement -> IF . LPAREN expression RPAREN vardecl_or_statement ELSE vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## nested_statement -> IF . LPAREN expression RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] @@ -1533,7 +1533,7 @@ program: TRANSFORMEDDATABLOCK LBRACE LBRACE VOID ## ## Concrete syntax: transformed data { { void ## -## Ends in an error in state: 280. +## Ends in an error in state: 279. ## ## common_expression -> LBRACE . separated_nonempty_list(COMMA,expression) RBRACE [ TRANSPOSE TIMESASSIGN TIMES TILDE RBRACE RABRACK QMARK PLUSASSIGN PLUS OR NEQUALS MODULO MINUSASSIGN MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMESASSIGN ELTTIMES ELTPOW ELTDIVIDEASSIGN ELTDIVIDE DOTNUMERAL DIVIDEASSIGN DIVIDE COMMA ASSIGN AND ] ## nested_statement -> LBRACE . list(vardecl_or_statement) RBRACE [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] @@ -1548,7 +1548,7 @@ program: TRANSFORMEDDATABLOCK LBRACE LBRACK IDENTIFIER COMMA WHILE ## ## Concrete syntax: transformed data { [ foo , while ## -## Ends in an error in state: 170. +## Ends in an error in state: 169. ## ## separated_nonempty_list(COMMA,expression) -> expression COMMA . separated_nonempty_list(COMMA,expression) [ RPAREN RBRACK RBRACE ] ## @@ -1566,7 +1566,7 @@ program: TRANSFORMEDDATABLOCK LBRACE LBRACK IDENTIFIER RPAREN ## ## Concrete syntax: transformed data { [ foo ) ## -## Ends in an error in state: 179. +## Ends in an error in state: 178. ## ## common_expression -> LBRACK loption(separated_nonempty_list(COMMA,expression)) . RBRACK [ TRANSPOSE TIMESASSIGN TIMES TILDE SEMICOLON RPAREN RBRACK RBRACE RABRACK QMARK PLUSASSIGN PLUS OR NEQUALS MODULO MINUSASSIGN MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMESASSIGN ELTTIMES ELTPOW ELTDIVIDEASSIGN ELTDIVIDE DOTNUMERAL DIVIDEASSIGN DIVIDE COMMA COLON BAR ASSIGN AND ] ## @@ -1577,10 +1577,10 @@ program: TRANSFORMEDDATABLOCK LBRACE LBRACK IDENTIFIER RPAREN ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 109, spurious reduction of production common_expression -> identifier -## In state 124, spurious reduction of production expression -> common_expression -## In state 172, spurious reduction of production separated_nonempty_list(COMMA,expression) -> expression -## In state 111, spurious reduction of production loption(separated_nonempty_list(COMMA,expression)) -> separated_nonempty_list(COMMA,expression) +## In state 108, spurious reduction of production common_expression -> identifier +## In state 123, spurious reduction of production expression -> common_expression +## In state 171, spurious reduction of production separated_nonempty_list(COMMA,expression) -> expression +## In state 110, spurious reduction of production loption(separated_nonempty_list(COMMA,expression)) -> separated_nonempty_list(COMMA,expression) ## Ill-formed expression. We expect a comma separated list of expressions, followed by "]". @@ -1590,7 +1590,7 @@ program: TRANSFORMEDDATABLOCK LBRACE LBRACK WHILE ## ## Concrete syntax: transformed data { [ while ## -## Ends in an error in state: 103. +## Ends in an error in state: 102. ## ## common_expression -> LBRACK . loption(separated_nonempty_list(COMMA,expression)) RBRACK [ TRANSPOSE TIMESASSIGN TIMES TILDE SEMICOLON RPAREN RBRACK RBRACE RABRACK QMARK PLUSASSIGN PLUS OR NEQUALS MODULO MINUSASSIGN MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMESASSIGN ELTTIMES ELTPOW ELTDIVIDEASSIGN ELTDIVIDE DOTNUMERAL DIVIDEASSIGN DIVIDE COMMA COLON BAR ASSIGN AND ] ## @@ -1606,7 +1606,7 @@ program: TRANSFORMEDDATABLOCK LBRACE LPAREN IDENTIFIER TILDE ## ## Concrete syntax: transformed data { ( foo ~ ## -## Ends in an error in state: 181. +## Ends in an error in state: 180. ## ## common_expression -> LPAREN expression . COMMA separated_nonempty_list(COMMA,expression) RPAREN [ TRANSPOSE TIMESASSIGN TIMES TILDE SEMICOLON RPAREN RBRACK RBRACE RABRACK QMARK PLUSASSIGN PLUS OR NEQUALS MODULO MINUSASSIGN MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMESASSIGN ELTTIMES ELTPOW ELTDIVIDEASSIGN ELTDIVIDE DOTNUMERAL DIVIDEASSIGN DIVIDE COMMA COLON BAR ASSIGN AND ] ## common_expression -> LPAREN expression . RPAREN [ TRANSPOSE TIMESASSIGN TIMES TILDE SEMICOLON RPAREN RBRACK RBRACE RABRACK QMARK PLUSASSIGN PLUS OR NEQUALS MODULO MINUSASSIGN MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMESASSIGN ELTTIMES ELTPOW ELTDIVIDEASSIGN ELTDIVIDE DOTNUMERAL DIVIDEASSIGN DIVIDE COMMA COLON BAR ASSIGN AND ] @@ -1639,8 +1639,8 @@ program: TRANSFORMEDDATABLOCK LBRACE LPAREN IDENTIFIER TILDE ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 109, spurious reduction of production common_expression -> identifier -## In state 124, spurious reduction of production expression -> common_expression +## In state 108, spurious reduction of production common_expression -> identifier +## In state 123, spurious reduction of production expression -> common_expression ## Ill-formed phrase. Found "(" followed by expression. Expect a "[", "," or ")" or an infix or postfix operator. @@ -1649,7 +1649,7 @@ program: TRANSFORMEDDATABLOCK LBRACE MINUS WHILE ## ## Concrete syntax: transformed data { - while ## -## Ends in an error in state: 101. +## Ends in an error in state: 100. ## ## expression -> MINUS . expression [ TRANSPOSE TIMES TILDE SEMICOLON RPAREN RBRACK RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON BAR AND ] ## @@ -1663,7 +1663,7 @@ program: TRANSFORMEDDATABLOCK LBRACE PLUS WHILE ## ## Concrete syntax: transformed data { + while ## -## Ends in an error in state: 100. +## Ends in an error in state: 99. ## ## expression -> PLUS . expression [ TRANSPOSE TIMES TILDE SEMICOLON RPAREN RBRACK RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON BAR AND ] ## @@ -1677,7 +1677,7 @@ program: TRANSFORMEDDATABLOCK LBRACE PRINT LPAREN STRINGLITERAL WHILE ## ## Concrete syntax: transformed data { print ( "hello world" while ## -## Ends in an error in state: 277. +## Ends in an error in state: 276. ## ## atomic_statement -> PRINT LPAREN printables . RPAREN SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## printables -> printables . COMMA printables [ RPAREN COMMA ] @@ -1692,7 +1692,7 @@ program: TRANSFORMEDDATABLOCK LBRACE PRINT LPAREN IDENTIFIER RPAREN WHILE ## ## Concrete syntax: transformed data { print ( foo ) while ## -## Ends in an error in state: 278. +## Ends in an error in state: 277. ## ## atomic_statement -> PRINT LPAREN printables RPAREN . SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -1706,7 +1706,7 @@ program: TRANSFORMEDDATABLOCK LBRACE PRINT LPAREN WHILE ## ## Concrete syntax: transformed data { print ( while ## -## Ends in an error in state: 276. +## Ends in an error in state: 275. ## ## atomic_statement -> PRINT LPAREN . printables RPAREN SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -1720,7 +1720,7 @@ program: TRANSFORMEDDATABLOCK LBRACE PRINT WHILE ## ## Concrete syntax: transformed data { print while ## -## Ends in an error in state: 275. +## Ends in an error in state: 274. ## ## atomic_statement -> PRINT . LPAREN printables RPAREN SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -1734,7 +1734,7 @@ program: TRANSFORMEDDATABLOCK LBRACE RBRACE ELTTIMESASSIGN ## ## Concrete syntax: transformed data { } .*= ## -## Ends in an error in state: 642. +## Ends in an error in state: 653. ## ## program -> option(function_block) option(data_block) option(transformed_data_block) . option(parameters_block) option(transformed_parameters_block) option(model_block) option(generated_quantities_block) EOF [ # ] ## @@ -1798,7 +1798,7 @@ program: TRANSFORMEDDATABLOCK LBRACE IDENTIFIER WHILE ## ## Concrete syntax: transformed data { foo while ## -## Ends in an error in state: 331. +## Ends in an error in state: 330. ## ## atomic_statement -> identifier . LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## common_expression -> identifier . [ TRANSPOSE TIMESASSIGN TIMES TILDE RBRACE RABRACK QMARK PLUSASSIGN PLUS OR NEQUALS MODULO MINUSASSIGN MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMESASSIGN ELTTIMES ELTPOW ELTDIVIDEASSIGN ELTDIVIDE DOTNUMERAL DIVIDEASSIGN DIVIDE COMMA ASSIGN AND ] @@ -1858,7 +1858,7 @@ program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL ELTPOW WHILE ## ## Concrete syntax: transformed data { 3.1415 .^ while ## -## Ends in an error in state: 122. +## Ends in an error in state: 121. ## ## expression -> expression ELTPOW . expression [ TRANSPOSE TIMES TILDE SEMICOLON RPAREN RBRACK RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON BAR AND ] ## @@ -1876,7 +1876,7 @@ program: TRANSFORMEDDATABLOCK LBRACE IDENTIFIER QMARK WHILE ## ## Concrete syntax: transformed data { foo ? while ## -## Ends in an error in state: 144. +## Ends in an error in state: 143. ## ## expression -> expression QMARK . expression COLON expression [ TRANSPOSE TIMES TILDE SEMICOLON RPAREN RBRACK RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON BAR AND ] ## @@ -1893,7 +1893,7 @@ program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL LBRACK COLON IDENTIFIER TILDE ## ## Concrete syntax: transformed data { 3.1415 [ : foo ~ ## -## Ends in an error in state: 127. +## Ends in an error in state: 126. ## ## expression -> expression . QMARK expression COLON expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## expression -> expression . PLUS expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] @@ -1925,8 +1925,8 @@ program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL LBRACK COLON IDENTIFIER TILDE ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 109, spurious reduction of production common_expression -> identifier -## In state 124, spurious reduction of production expression -> common_expression +## In state 108, spurious reduction of production common_expression -> identifier +## In state 123, spurious reduction of production expression -> common_expression ## Ill-formed phrase. Found ":" expression. We expect either an infix or postfix operator, or "," or or "[" or "]" next. @@ -1937,7 +1937,7 @@ program: TRANSFORMEDDATABLOCK LBRACE PLUS IDENTIFIER TRANSPOSE WHILE ## ## Concrete syntax: transformed data { + foo ' while ## -## Ends in an error in state: 187. +## Ends in an error in state: 186. ## ## expression -> expression . QMARK expression COLON expression [ TRANSPOSE TIMES TILDE SEMICOLON RPAREN RBRACK RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON BAR AND ] ## expression -> expression . PLUS expression [ TRANSPOSE TIMES TILDE SEMICOLON RPAREN RBRACK RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON BAR AND ] @@ -1972,7 +1972,7 @@ program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL LBRACK COLON WHILE ## ## Concrete syntax: transformed data { 3.1415 [ : while ## -## Ends in an error in state: 126. +## Ends in an error in state: 125. ## ## indexes -> COLON . [ RBRACK COMMA ] ## indexes -> COLON . expression [ RBRACK COMMA ] @@ -1987,7 +1987,7 @@ program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL LBRACK COMMA WHILE ## ## Concrete syntax: transformed data { 3.1415 [ , while ## -## Ends in an error in state: 164. +## Ends in an error in state: 163. ## ## indexes -> indexes COMMA . indexes [ RBRACK COMMA ] ## @@ -2003,7 +2003,7 @@ program: TRANSFORMEDDATABLOCK LBRACE IDENTIFIER LBRACK REALNUMERAL COLON WHILE ## ## Concrete syntax: transformed data { foo [ 3.1415 : while ## -## Ends in an error in state: 167. +## Ends in an error in state: 166. ## ## indexes -> expression COLON . [ RBRACK COMMA ] ## indexes -> expression COLON . expression [ RBRACK COMMA ] @@ -2018,7 +2018,7 @@ program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TILDE IDENTIFIER LPAREN RPAREN ## ## Concrete syntax: transformed data { 3.1415 ~ foo ( ) T [ , ] multiplier ## -## Ends in an error in state: 350. +## Ends in an error in state: 349. ## ## atomic_statement -> expression TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) . SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -2042,7 +2042,7 @@ program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TILDE IDENTIFIER LPAREN RPAREN ## ## Concrete syntax: transformed data { 3.1415 ~ foo ( ) T [ while ## -## Ends in an error in state: 343. +## Ends in an error in state: 342. ## ## truncation -> TRUNCATE LBRACK . option(expression) COMMA option(expression) RBRACK [ SEMICOLON ] ## @@ -2056,7 +2056,7 @@ program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TILDE IDENTIFIER LPAREN RPAREN ## ## Concrete syntax: transformed data { 3.1415 ~ foo ( ) while ## -## Ends in an error in state: 341. +## Ends in an error in state: 340. ## ## atomic_statement -> expression TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN . option(truncation) SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -2070,7 +2070,7 @@ program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TILDE IDENTIFIER LPAREN IDENTIF ## ## Concrete syntax: transformed data { 3.1415 ~ foo ( foo ] ## -## Ends in an error in state: 340. +## Ends in an error in state: 339. ## ## atomic_statement -> expression TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) . RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -2081,10 +2081,10 @@ program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TILDE IDENTIFIER LPAREN IDENTIF ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 109, spurious reduction of production common_expression -> identifier -## In state 124, spurious reduction of production expression -> common_expression -## In state 172, spurious reduction of production separated_nonempty_list(COMMA,expression) -> expression -## In state 111, spurious reduction of production loption(separated_nonempty_list(COMMA,expression)) -> separated_nonempty_list(COMMA,expression) +## In state 108, spurious reduction of production common_expression -> identifier +## In state 123, spurious reduction of production expression -> common_expression +## In state 171, spurious reduction of production separated_nonempty_list(COMMA,expression) -> expression +## In state 110, spurious reduction of production loption(separated_nonempty_list(COMMA,expression)) -> separated_nonempty_list(COMMA,expression) ## Ill-formed "~"-statement. Expect a comma separated list of expressions for arguments to the distribution, followed by ")". @@ -2093,7 +2093,7 @@ program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TILDE IDENTIFIER LPAREN WHILE ## ## Concrete syntax: transformed data { 3.1415 ~ foo ( while ## -## Ends in an error in state: 339. +## Ends in an error in state: 338. ## ## atomic_statement -> expression TILDE identifier LPAREN . loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -2107,7 +2107,7 @@ program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TILDE IDENTIFIER WHILE ## ## Concrete syntax: transformed data { 3.1415 ~ foo while ## -## Ends in an error in state: 338. +## Ends in an error in state: 337. ## ## atomic_statement -> expression TILDE identifier . LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -2121,7 +2121,7 @@ program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TILDE WHILE ## ## Concrete syntax: transformed data { 3.1415 ~ while ## -## Ends in an error in state: 337. +## Ends in an error in state: 336. ## ## atomic_statement -> expression TILDE . identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -2135,7 +2135,7 @@ program: TRANSFORMEDDATABLOCK LBRACE REJECT LPAREN IDENTIFIER COMMA STRINGLITERA ## ## Concrete syntax: transformed data { reject ( foo , "hello world" while ## -## Ends in an error in state: 268. +## Ends in an error in state: 267. ## ## printables -> printables . COMMA printables [ RPAREN COMMA ] ## printables -> printables COMMA printables . [ RPAREN COMMA ] @@ -2150,7 +2150,7 @@ program: TRANSFORMEDDATABLOCK LBRACE REJECT LPAREN IDENTIFIER COMMA WHILE ## ## Concrete syntax: transformed data { reject ( foo , while ## -## Ends in an error in state: 267. +## Ends in an error in state: 266. ## ## printables -> printables COMMA . printables [ RPAREN COMMA ] ## @@ -2172,7 +2172,7 @@ program: TRANSFORMEDDATABLOCK LBRACE REJECT LPAREN WHILE ## ## Concrete syntax: transformed data { reject ( while ## -## Ends in an error in state: 261. +## Ends in an error in state: 260. ## ## atomic_statement -> REJECT LPAREN . printables RPAREN SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -2186,7 +2186,7 @@ program: TRANSFORMEDDATABLOCK LBRACE RETURN LBRACE WHILE ## ## Concrete syntax: transformed data { return { while ## -## Ends in an error in state: 104. +## Ends in an error in state: 103. ## ## common_expression -> LBRACE . separated_nonempty_list(COMMA,expression) RBRACE [ TRANSPOSE TIMES TILDE SEMICOLON RPAREN RBRACK RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DOTNUMERAL DIVIDE COMMA COLON BAR AND ] ## @@ -2200,7 +2200,7 @@ program: TRANSFORMEDDATABLOCK LBRACE RETURN TARGET WHILE ## ## Concrete syntax: transformed data { return target while ## -## Ends in an error in state: 96. +## Ends in an error in state: 95. ## ## common_expression -> TARGET . LPAREN RPAREN [ TRANSPOSE TIMES TILDE SEMICOLON RPAREN RBRACK RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DOTNUMERAL DIVIDE COMMA COLON BAR AND ] ## @@ -2214,7 +2214,7 @@ program: TRANSFORMEDDATABLOCK LBRACE RETURN IDENTIFIER LPAREN IDENTIFIER COMMA I ## ## Concrete syntax: transformed data { return foo ( foo , foo ] ## -## Ends in an error in state: 112. +## Ends in an error in state: 111. ## ## common_expression -> identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) . RPAREN [ TRANSPOSE TIMES TILDE SEMICOLON RPAREN RBRACK RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DOTNUMERAL DIVIDE COMMA COLON BAR AND ] ## @@ -2225,11 +2225,11 @@ program: TRANSFORMEDDATABLOCK LBRACE RETURN IDENTIFIER LPAREN IDENTIFIER COMMA I ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 109, spurious reduction of production common_expression -> identifier -## In state 124, spurious reduction of production expression -> common_expression -## In state 172, spurious reduction of production separated_nonempty_list(COMMA,expression) -> expression -## In state 171, spurious reduction of production separated_nonempty_list(COMMA,expression) -> expression COMMA separated_nonempty_list(COMMA,expression) -## In state 111, spurious reduction of production loption(separated_nonempty_list(COMMA,expression)) -> separated_nonempty_list(COMMA,expression) +## In state 108, spurious reduction of production common_expression -> identifier +## In state 123, spurious reduction of production expression -> common_expression +## In state 171, spurious reduction of production separated_nonempty_list(COMMA,expression) -> expression +## In state 170, spurious reduction of production separated_nonempty_list(COMMA,expression) -> expression COMMA separated_nonempty_list(COMMA,expression) +## In state 110, spurious reduction of production loption(separated_nonempty_list(COMMA,expression)) -> separated_nonempty_list(COMMA,expression) ## Ill-formed expression. In function application, expect comma-separated list of expressions followed by ")", after "(". @@ -2238,7 +2238,7 @@ program: TRANSFORMEDDATABLOCK LBRACE RETURN IDENTIFIER LPAREN WHILE ## ## Concrete syntax: transformed data { return foo ( while ## -## Ends in an error in state: 110. +## Ends in an error in state: 109. ## ## common_expression -> identifier LPAREN . loption(separated_nonempty_list(COMMA,expression)) RPAREN [ TRANSPOSE TIMES TILDE SEMICOLON RPAREN RBRACK RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DOTNUMERAL DIVIDE COMMA COLON BAR AND ] ## common_expression -> identifier LPAREN . expression BAR loption(separated_nonempty_list(COMMA,expression)) RPAREN [ TRANSPOSE TIMES TILDE SEMICOLON RPAREN RBRACK RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DOTNUMERAL DIVIDE COMMA COLON BAR AND ] @@ -2255,7 +2255,7 @@ program: TRANSFORMEDDATABLOCK LBRACE RETURN IDENTIFIER TILDE ## ## Concrete syntax: transformed data { return foo ~ ## -## Ends in an error in state: 258. +## Ends in an error in state: 257. ## ## atomic_statement -> RETURN expression . SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## expression -> expression . QMARK expression COLON expression [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -2287,8 +2287,8 @@ program: TRANSFORMEDDATABLOCK LBRACE RETURN IDENTIFIER TILDE ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 109, spurious reduction of production common_expression -> identifier -## In state 124, spurious reduction of production expression -> common_expression +## In state 108, spurious reduction of production common_expression -> identifier +## In state 123, spurious reduction of production expression -> common_expression ## Ill-formed return statement. ";" or expression followed by ";" expected after "return". @@ -2297,7 +2297,7 @@ program: TRANSFORMEDDATABLOCK LBRACE TARGET LPAREN WHILE ## ## Concrete syntax: transformed data { target ( while ## -## Ends in an error in state: 97. +## Ends in an error in state: 96. ## ## common_expression -> TARGET LPAREN . RPAREN [ TRANSPOSE TIMESASSIGN TIMES TILDE SEMICOLON RPAREN RBRACK RBRACE RABRACK QMARK PLUSASSIGN PLUS OR NEQUALS MODULO MINUSASSIGN MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMESASSIGN ELTTIMES ELTPOW ELTDIVIDEASSIGN ELTDIVIDE DOTNUMERAL DIVIDEASSIGN DIVIDE COMMA COLON BAR ASSIGN AND ] ## @@ -2313,7 +2313,7 @@ program: TRANSFORMEDDATABLOCK LBRACE TARGET PLUSASSIGN IDENTIFIER TILDE ## ## Concrete syntax: transformed data { target += foo ~ ## -## Ends in an error in state: 253. +## Ends in an error in state: 252. ## ## atomic_statement -> TARGET PLUSASSIGN expression . SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## expression -> expression . QMARK expression COLON expression [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -2345,8 +2345,8 @@ program: TRANSFORMEDDATABLOCK LBRACE TARGET PLUSASSIGN IDENTIFIER TILDE ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 109, spurious reduction of production common_expression -> identifier -## In state 124, spurious reduction of production expression -> common_expression +## In state 108, spurious reduction of production common_expression -> identifier +## In state 123, spurious reduction of production expression -> common_expression ## Ill-formed statement. Expression followed by ";" expected after "target +=". @@ -2355,7 +2355,7 @@ program: TRANSFORMEDDATABLOCK LBRACE TARGET WHILE ## ## Concrete syntax: transformed data { target while ## -## Ends in an error in state: 251. +## Ends in an error in state: 250. ## ## atomic_statement -> TARGET . PLUSASSIGN expression SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## common_expression -> TARGET . LPAREN RPAREN [ TRANSPOSE TIMESASSIGN TIMES TILDE RBRACE RABRACK QMARK PLUSASSIGN PLUS OR NEQUALS MODULO MINUSASSIGN MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMESASSIGN ELTTIMES ELTPOW ELTDIVIDEASSIGN ELTDIVIDE DOTNUMERAL DIVIDEASSIGN DIVIDE COMMA ASSIGN AND ] @@ -2370,7 +2370,7 @@ program: TRANSFORMEDDATABLOCK LBRACE IDENTIFIER LPAREN REALNUMERAL BAR IDENTIFIE ## ## Concrete syntax: transformed data { foo ( 3.1415 | foo ] ## -## Ends in an error in state: 174. +## Ends in an error in state: 173. ## ## common_expression -> identifier LPAREN expression BAR loption(separated_nonempty_list(COMMA,expression)) . RPAREN [ TRANSPOSE TIMESASSIGN TIMES TILDE SEMICOLON RPAREN RBRACK RBRACE RABRACK QMARK PLUSASSIGN PLUS OR NEQUALS MODULO MINUSASSIGN MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMESASSIGN ELTTIMES ELTPOW ELTDIVIDEASSIGN ELTDIVIDE DOTNUMERAL DIVIDEASSIGN DIVIDE COMMA COLON BAR ASSIGN AND ] ## @@ -2381,10 +2381,10 @@ program: TRANSFORMEDDATABLOCK LBRACE IDENTIFIER LPAREN REALNUMERAL BAR IDENTIFIE ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 109, spurious reduction of production common_expression -> identifier -## In state 124, spurious reduction of production expression -> common_expression -## In state 172, spurious reduction of production separated_nonempty_list(COMMA,expression) -> expression -## In state 111, spurious reduction of production loption(separated_nonempty_list(COMMA,expression)) -> separated_nonempty_list(COMMA,expression) +## In state 108, spurious reduction of production common_expression -> identifier +## In state 123, spurious reduction of production expression -> common_expression +## In state 171, spurious reduction of production separated_nonempty_list(COMMA,expression) -> expression +## In state 110, spurious reduction of production loption(separated_nonempty_list(COMMA,expression)) -> separated_nonempty_list(COMMA,expression) ## Ill-formed conditional distribution evaluation. Expect comma-separated list of expressions followed by ")" after "|". @@ -2393,7 +2393,7 @@ program: TRANSFORMEDDATABLOCK LBRACE IDENTIFIER LPAREN REALNUMERAL BAR WHILE ## ## Concrete syntax: transformed data { foo ( 3.1415 | while ## -## Ends in an error in state: 173. +## Ends in an error in state: 172. ## ## common_expression -> identifier LPAREN expression BAR . loption(separated_nonempty_list(COMMA,expression)) RPAREN [ TRANSPOSE TIMESASSIGN TIMES TILDE SEMICOLON RPAREN RBRACK RBRACE RABRACK QMARK PLUSASSIGN PLUS OR NEQUALS MODULO MINUSASSIGN MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMESASSIGN ELTTIMES ELTPOW ELTDIVIDEASSIGN ELTDIVIDE DOTNUMERAL DIVIDEASSIGN DIVIDE COMMA COLON BAR ASSIGN AND ] ## @@ -2407,7 +2407,7 @@ program: TRANSFORMEDDATABLOCK LBRACE IDENTIFIER LPAREN RPAREN WHILE ## ## Concrete syntax: transformed data { foo ( ) while ## -## Ends in an error in state: 334. +## Ends in an error in state: 333. ## ## atomic_statement -> identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN . SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## common_expression -> identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN . [ TRANSPOSE TIMESASSIGN TIMES TILDE RBRACE RABRACK QMARK PLUSASSIGN PLUS OR NEQUALS MODULO MINUSASSIGN MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMESASSIGN ELTTIMES ELTPOW ELTDIVIDEASSIGN ELTDIVIDE DOTNUMERAL DIVIDEASSIGN DIVIDE COMMA ASSIGN AND ] @@ -2426,7 +2426,7 @@ program: TRANSFORMEDDATABLOCK LBRACE IDENTIFIER LPAREN IDENTIFIER COMMA IDENTIFI ## ## Concrete syntax: transformed data { foo ( foo , foo ] ## -## Ends in an error in state: 333. +## Ends in an error in state: 332. ## ## atomic_statement -> identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) . RPAREN SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## common_expression -> identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) . RPAREN [ TRANSPOSE TIMESASSIGN TIMES TILDE RBRACE RABRACK QMARK PLUSASSIGN PLUS OR NEQUALS MODULO MINUSASSIGN MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMESASSIGN ELTTIMES ELTPOW ELTDIVIDEASSIGN ELTDIVIDE DOTNUMERAL DIVIDEASSIGN DIVIDE COMMA ASSIGN AND ] @@ -2438,11 +2438,11 @@ program: TRANSFORMEDDATABLOCK LBRACE IDENTIFIER LPAREN IDENTIFIER COMMA IDENTIFI ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 109, spurious reduction of production common_expression -> identifier -## In state 124, spurious reduction of production expression -> common_expression -## In state 172, spurious reduction of production separated_nonempty_list(COMMA,expression) -> expression -## In state 171, spurious reduction of production separated_nonempty_list(COMMA,expression) -> expression COMMA separated_nonempty_list(COMMA,expression) -## In state 111, spurious reduction of production loption(separated_nonempty_list(COMMA,expression)) -> separated_nonempty_list(COMMA,expression) +## In state 108, spurious reduction of production common_expression -> identifier +## In state 123, spurious reduction of production expression -> common_expression +## In state 171, spurious reduction of production separated_nonempty_list(COMMA,expression) -> expression +## In state 170, spurious reduction of production separated_nonempty_list(COMMA,expression) -> expression COMMA separated_nonempty_list(COMMA,expression) +## In state 110, spurious reduction of production loption(separated_nonempty_list(COMMA,expression)) -> separated_nonempty_list(COMMA,expression) ## Ill-formed function application. Expect comma-separated list of expressions followed by ")" after "(". @@ -2453,7 +2453,7 @@ program: TRANSFORMEDDATABLOCK LBRACE IDENTIFIER RBRACE ## ## Concrete syntax: transformed data { foo } ## -## Ends in an error in state: 336. +## Ends in an error in state: 335. ## ## atomic_statement -> expression . TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## expression -> expression . QMARK expression COLON expression [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -2485,8 +2485,8 @@ program: TRANSFORMEDDATABLOCK LBRACE IDENTIFIER RBRACE ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 331, spurious reduction of production common_expression -> identifier -## In state 353, spurious reduction of production expression -> common_expression +## In state 330, spurious reduction of production common_expression -> identifier +## In state 352, spurious reduction of production expression -> common_expression ## Ill-formed phrase. Found an expression where we expected a statement. @@ -2505,7 +2505,7 @@ program: TRANSFORMEDDATABLOCK LBRACE IDENTIFIER TIMESASSIGN IDENTIFIER TILDE ## ## Concrete syntax: transformed data { foo *= foo ~ ## -## Ends in an error in state: 355. +## Ends in an error in state: 354. ## ## atomic_statement -> common_expression TIMESASSIGN expression . SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## expression -> expression . QMARK expression COLON expression [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -2537,8 +2537,8 @@ program: TRANSFORMEDDATABLOCK LBRACE IDENTIFIER TIMESASSIGN IDENTIFIER TILDE ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 109, spurious reduction of production common_expression -> identifier -## In state 124, spurious reduction of production expression -> common_expression +## In state 108, spurious reduction of production common_expression -> identifier +## In state 123, spurious reduction of production expression -> common_expression ## Ill-formed compound assignment statement. Expected a ";" after the value being assigned. @@ -2555,7 +2555,7 @@ program: TRANSFORMEDDATABLOCK LBRACE IDENTIFIER TIMESASSIGN WHILE ## ## Concrete syntax: transformed data { foo *= while ## -## Ends in an error in state: 354. +## Ends in an error in state: 353. ## ## atomic_statement -> common_expression TIMESASSIGN . expression SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -2569,9 +2569,9 @@ program: TRANSFORMEDDATABLOCK LBRACE IDENTIFIER ASSIGN IDENTIFIER TILDE ## ## Concrete syntax: transformed data { foo = foo ~ ## -## Ends in an error in state: 373. +## Ends in an error in state: 372. ## -## atomic_statement -> common_expression ASSIGN expression . SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> common_expression ASSIGN expression . SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## expression -> expression . QMARK expression COLON expression [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## expression -> expression . PLUS expression [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## expression -> expression . MINUS expression [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -2601,8 +2601,8 @@ program: TRANSFORMEDDATABLOCK LBRACE IDENTIFIER ASSIGN IDENTIFIER TILDE ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 109, spurious reduction of production common_expression -> identifier -## In state 124, spurious reduction of production expression -> common_expression +## In state 108, spurious reduction of production common_expression -> identifier +## In state 123, spurious reduction of production expression -> common_expression ## Ill-formed assignment statement. Expected a ";" after the value being assigned. @@ -2611,9 +2611,9 @@ program: TRANSFORMEDDATABLOCK LBRACE IDENTIFIER ASSIGN WHILE ## ## Concrete syntax: transformed data { foo = while ## -## Ends in an error in state: 372. +## Ends in an error in state: 371. ## -## atomic_statement -> common_expression ASSIGN . expression SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> common_expression ASSIGN . expression SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## common_expression ASSIGN @@ -2625,10 +2625,10 @@ program: TRANSFORMEDDATABLOCK LBRACE VECTOR LBRACK INTNUMERAL RBRACK HAT ## ## Concrete syntax: transformed data { vector [ 24 ] ^ ## -## Ends in an error in state: 623. +## Ends in an error in state: 634. ## -## decl(top_var_type,expression) -> top_var_type . decl_identifier LBRACK separated_nonempty_list(COMMA,expression) RBRACK [ WHILE VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## decl(top_var_type,expression) -> top_var_type . id_and_optional_assignment(expression,decl_identifier) option(remaining_declarations(expression)) SEMICOLON [ WHILE VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## decl(top_var_type,expression) -> top_var_type . decl_identifier LBRACK separated_nonempty_list(COMMA,expression) RBRACK [ WHILE VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## decl(top_var_type,expression) -> top_var_type . id_and_optional_assignment(expression,decl_identifier) option(remaining_declarations(expression)) SEMICOLON [ WHILE VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## top_var_type @@ -2640,7 +2640,7 @@ program: TRANSFORMEDDATABLOCK LBRACE VOID ## ## Concrete syntax: transformed data { void ## -## Ends in an error in state: 617. +## Ends in an error in state: 628. ## ## transformed_data_block -> TRANSFORMEDDATABLOCK LBRACE . list(top_vardecl_or_statement) RBRACE [ TRANSFORMEDPARAMETERSBLOCK PARAMETERSBLOCK MODELBLOCK GENERATEDQUANTITIESBLOCK EOF ] ## @@ -2654,7 +2654,7 @@ program: TRANSFORMEDDATABLOCK LBRACE WHILE LPAREN IDENTIFIER RPAREN VOID ## ## Concrete syntax: transformed data { while ( foo ) void ## -## Ends in an error in state: 189. +## Ends in an error in state: 188. ## ## nested_statement -> WHILE LPAREN expression RPAREN . vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -2670,7 +2670,7 @@ program: TRANSFORMEDDATABLOCK LBRACE WHILE LPAREN WHILE ## ## Concrete syntax: transformed data { while ( while ## -## Ends in an error in state: 95. +## Ends in an error in state: 94. ## ## nested_statement -> WHILE LPAREN . expression RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -2684,7 +2684,7 @@ program: TRANSFORMEDDATABLOCK LBRACE WHILE WHILE ## ## Concrete syntax: transformed data { while while ## -## Ends in an error in state: 94. +## Ends in an error in state: 93. ## ## nested_statement -> WHILE . LPAREN expression RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -2698,7 +2698,7 @@ program: TRANSFORMEDDATABLOCK WHILE ## ## Concrete syntax: transformed data while ## -## Ends in an error in state: 616. +## Ends in an error in state: 627. ## ## transformed_data_block -> TRANSFORMEDDATABLOCK . LBRACE list(top_vardecl_or_statement) RBRACE [ TRANSFORMEDPARAMETERSBLOCK PARAMETERSBLOCK MODELBLOCK GENERATEDQUANTITIESBLOCK EOF ] ## @@ -2712,7 +2712,7 @@ program: TRANSFORMEDPARAMETERSBLOCK LBRACE RBRACE ELTTIMESASSIGN ## ## Concrete syntax: transformed parameters { } .*= ## -## Ends in an error in state: 654. +## Ends in an error in state: 665. ## ## program -> option(function_block) option(data_block) option(transformed_data_block) option(parameters_block) option(transformed_parameters_block) . option(model_block) option(generated_quantities_block) EOF [ # ] ## @@ -2726,7 +2726,7 @@ program: TRANSFORMEDPARAMETERSBLOCK LBRACE VOID ## ## Concrete syntax: transformed parameters { void ## -## Ends in an error in state: 650. +## Ends in an error in state: 661. ## ## transformed_parameters_block -> TRANSFORMEDPARAMETERSBLOCK LBRACE . list(top_vardecl_or_statement) RBRACE [ MODELBLOCK GENERATEDQUANTITIESBLOCK EOF ] ## @@ -2740,7 +2740,7 @@ program: TRANSFORMEDPARAMETERSBLOCK WHILE ## ## Concrete syntax: transformed parameters while ## -## Ends in an error in state: 649. +## Ends in an error in state: 660. ## ## transformed_parameters_block -> TRANSFORMEDPARAMETERSBLOCK . LBRACE list(top_vardecl_or_statement) RBRACE [ MODELBLOCK GENERATEDQUANTITIESBLOCK EOF ] ## @@ -2754,7 +2754,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN IDENTIFIER COMMA WHILE ## ## Concrete syntax: data { vector < upper = foo , while ## -## Ends in an error in state: 448. +## Ends in an error in state: 447. ## ## range -> UPPER ASSIGN constr_expression COMMA . LOWER ASSIGN constr_expression [ RABRACK ] ## @@ -2768,7 +2768,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN IDENTIFIER COMMA LOWER WHI ## ## Concrete syntax: data { vector < upper = foo , lower while ## -## Ends in an error in state: 449. +## Ends in an error in state: 448. ## ## range -> UPPER ASSIGN constr_expression COMMA LOWER . ASSIGN constr_expression [ RABRACK ] ## @@ -2782,7 +2782,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN IDENTIFIER COMMA LOWER ASS ## ## Concrete syntax: data { vector < upper = foo , lower = while ## -## Ends in an error in state: 450. +## Ends in an error in state: 449. ## ## range -> UPPER ASSIGN constr_expression COMMA LOWER ASSIGN . constr_expression [ RABRACK ] ## @@ -2796,7 +2796,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN IDENTIFIER COMMA LOWER ASS ## ## Concrete syntax: data { vector < upper = foo , lower = foo , ## -## Ends in an error in state: 451. +## Ends in an error in state: 450. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE ] @@ -2819,8 +2819,8 @@ program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN IDENTIFIER COMMA LOWER ASS ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 109, spurious reduction of production common_expression -> identifier -## In state 426, spurious reduction of production constr_expression -> common_expression +## In state 108, spurious reduction of production common_expression -> identifier +## In state 425, spurious reduction of production constr_expression -> common_expression ## Expected '>' after lower expression. @@ -2831,7 +2831,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK MULTIPLIER ASSIGN IDENTIFIER COMMA WHIL ## ## Concrete syntax: data { vector < multiplier = foo , while ## -## Ends in an error in state: 462. +## Ends in an error in state: 461. ## ## offset_mult -> MULTIPLIER ASSIGN constr_expression COMMA . OFFSET ASSIGN constr_expression [ RABRACK ] ## @@ -2845,7 +2845,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK MULTIPLIER ASSIGN IDENTIFIER COMMA OFFS ## ## Concrete syntax: data { vector < multiplier = foo , offset while ## -## Ends in an error in state: 463. +## Ends in an error in state: 462. ## ## offset_mult -> MULTIPLIER ASSIGN constr_expression COMMA OFFSET . ASSIGN constr_expression [ RABRACK ] ## @@ -2859,7 +2859,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK MULTIPLIER ASSIGN IDENTIFIER COMMA OFFS ## ## Concrete syntax: data { vector < multiplier = foo , offset = while ## -## Ends in an error in state: 464. +## Ends in an error in state: 463. ## ## offset_mult -> MULTIPLIER ASSIGN constr_expression COMMA OFFSET ASSIGN . constr_expression [ RABRACK ] ## @@ -2873,7 +2873,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK MULTIPLIER ASSIGN IDENTIFIER COMMA OFFS ## ## Concrete syntax: data { vector < multiplier = foo , offset = foo , ## -## Ends in an error in state: 465. +## Ends in an error in state: 464. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE ] @@ -2896,8 +2896,8 @@ program: DATABLOCK LBRACE VECTOR LABRACK MULTIPLIER ASSIGN IDENTIFIER COMMA OFFS ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 109, spurious reduction of production common_expression -> identifier -## In state 426, spurious reduction of production constr_expression -> common_expression +## In state 108, spurious reduction of production common_expression -> identifier +## In state 425, spurious reduction of production constr_expression -> common_expression ## Expected '>' after multiplier expression. @@ -2914,7 +2914,7 @@ program: DATABLOCK LBRACE REAL IDENTIFIER ASSIGN UNREACHABLE WHILE ## ## Concrete syntax: data { real foo = <<<>> while ## -## Ends in an error in state: 599. +## Ends in an error in state: 610. ## ## decl(top_var_type,no_assign) -> top_var_type id_and_optional_assignment(no_assign,decl_identifier) . option(remaining_declarations(no_assign)) SEMICOLON [ VECTOR UNITVECTOR TUPLE STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR REAL RBRACE POSITIVEORDERED ORDERED MATRIX INT COVMATRIX CORRMATRIX COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR ARRAY ] ## @@ -2935,7 +2935,7 @@ program: MODELBLOCK LBRACE REAL IDENTIFIER COMMA UNREACHABLE ## ## Concrete syntax: model { real foo , <<<>> ## -## Ends in an error in state: 304. +## Ends in an error in state: 303. ## ## remaining_declarations(expression) -> COMMA . separated_nonempty_list(COMMA,id_and_optional_assignment(expression,decl_identifier_after_comma)) [ SEMICOLON ] ## @@ -2950,7 +2950,7 @@ program: TRANSFORMEDDATABLOCK LBRACE PROFILE WHILE ## ## Concrete syntax: transformed data { profile while ## -## Ends in an error in state: 270. +## Ends in an error in state: 269. ## ## nested_statement -> PROFILE . LPAREN string_literal RPAREN LBRACE list(vardecl_or_statement) RBRACE [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -2964,7 +2964,7 @@ program: TRANSFORMEDDATABLOCK LBRACE PROFILE LPAREN WHILE ## ## Concrete syntax: transformed data { profile ( while ## -## Ends in an error in state: 271. +## Ends in an error in state: 270. ## ## nested_statement -> PROFILE LPAREN . string_literal RPAREN LBRACE list(vardecl_or_statement) RBRACE [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -2978,7 +2978,7 @@ program: TRANSFORMEDDATABLOCK LBRACE PROFILE LPAREN STRINGLITERAL WHILE ## ## Concrete syntax: transformed data { profile ( "hello world" while ## -## Ends in an error in state: 272. +## Ends in an error in state: 271. ## ## nested_statement -> PROFILE LPAREN string_literal . RPAREN LBRACE list(vardecl_or_statement) RBRACE [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -2992,7 +2992,7 @@ program: TRANSFORMEDDATABLOCK LBRACE PROFILE LPAREN STRINGLITERAL RPAREN WHILE ## ## Concrete syntax: transformed data { profile ( "hello world" ) while ## -## Ends in an error in state: 273. +## Ends in an error in state: 272. ## ## nested_statement -> PROFILE LPAREN string_literal RPAREN . LBRACE list(vardecl_or_statement) RBRACE [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -3006,7 +3006,7 @@ program: TRANSFORMEDDATABLOCK LBRACE PROFILE LPAREN STRINGLITERAL RPAREN LBRACE ## ## Concrete syntax: transformed data { profile ( "hello world" ) { void ## -## Ends in an error in state: 274. +## Ends in an error in state: 273. ## ## nested_statement -> PROFILE LPAREN string_literal RPAREN LBRACE . list(vardecl_or_statement) RBRACE [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -3020,7 +3020,7 @@ program: DATABLOCK LBRACE COMPLEX UNREACHABLE ## ## Concrete syntax: data { complex <<<>> ## -## Ends in an error in state: 542. +## Ends in an error in state: 553. ## ## top_var_type -> COMPLEX . type_constraint [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## @@ -3048,7 +3048,7 @@ functions_only: VOID ARRAY LPAREN RPAREN SEMICOLON RBRACE ## ## Concrete syntax: void array ( ) ; } ## -## Ends in an error in state: 399. +## Ends in an error in state: 398. ## ## functions_only -> list(function_def) . EOF [ # ] ## @@ -3059,8 +3059,8 @@ functions_only: VOID ARRAY LPAREN RPAREN SEMICOLON RBRACE ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 402, spurious reduction of production list(function_def) -> -## In state 403, spurious reduction of production list(function_def) -> function_def list(function_def) +## In state 401, spurious reduction of production list(function_def) -> +## In state 402, spurious reduction of production list(function_def) -> function_def list(function_def) ## Only function definitions/declarations are expected in '.stanfunctions' file @@ -3073,7 +3073,7 @@ program: TRANSFORMEDDATABLOCK LBRACE ARRAY IDENTIFIER ## ## Concrete syntax: transformed data { array foo ## -## Ends in an error in state: 223. +## Ends in an error in state: 222. ## ## arr_dims -> ARRAY . LBRACK separated_nonempty_list(COMMA,expression) RBRACK [ VECTOR UNITVECTOR TUPLE STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX ROWVECTOR REAL POSITIVEORDERED ORDERED MATRIX INT COVMATRIX CORRMATRIX COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR ] ## @@ -3091,7 +3091,7 @@ program: DATABLOCK LBRACE ARRAY LBRACK IDENTIFIER RBRACK VECTOR LBRACK INTNUMERA ## ## Concrete syntax: data { array [ foo ] vector [ 24 ] && ## -## Ends in an error in state: 609. +## Ends in an error in state: 620. ## ## decl(top_var_type,no_assign) -> array_type(top_var_type) . id_and_optional_assignment(no_assign,decl_identifier) option(remaining_declarations(no_assign)) SEMICOLON [ VECTOR UNITVECTOR TUPLE STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR REAL RBRACE POSITIVEORDERED ORDERED MATRIX INT COVMATRIX CORRMATRIX COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR ARRAY ] ## @@ -3127,7 +3127,7 @@ program: DATABLOCK LBRACE TUPLE LPAREN REAL COMMA WHILE ## ## Concrete syntax: data { tuple ( real , while ## -## Ends in an error in state: 572. +## Ends in an error in state: 583. ## ## tuple_type(top_var_type) -> TUPLE LPAREN top_var_type COMMA . separated_nonempty_list(COMMA,higher_type(top_var_type)) RPAREN [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## @@ -3151,7 +3151,7 @@ program: DATABLOCK LBRACE TUPLE LPAREN REAL WHILE ## ## Concrete syntax: data { tuple ( real while ## -## Ends in an error in state: 571. +## Ends in an error in state: 582. ## ## tuple_type(top_var_type) -> TUPLE LPAREN top_var_type . COMMA separated_nonempty_list(COMMA,higher_type(top_var_type)) RPAREN [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## @@ -3162,9 +3162,9 @@ program: DATABLOCK LBRACE TUPLE LPAREN REAL WHILE ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 497, spurious reduction of production range_constraint -> -## In state 481, spurious reduction of production type_constraint -> range_constraint -## In state 498, spurious reduction of production top_var_type -> REAL type_constraint +## In state 508, spurious reduction of production range_constraint -> +## In state 480, spurious reduction of production type_constraint -> range_constraint +## In state 509, spurious reduction of production top_var_type -> REAL type_constraint ## Invalid type specification, unmatched "(". @@ -3184,7 +3184,7 @@ program: DATABLOCK LBRACE TUPLE LPAREN REAL COMMA TUPLE LPAREN COMPLEX COMMA COM ## ## Concrete syntax: data { tuple ( real , tuple ( complex , complex ) while ## -## Ends in an error in state: 557. +## Ends in an error in state: 568. ## ## separated_nonempty_list(COMMA,higher_type(top_var_type)) -> tuple_type(top_var_type) . [ RPAREN ] ## separated_nonempty_list(COMMA,higher_type(top_var_type)) -> tuple_type(top_var_type) . COMMA separated_nonempty_list(COMMA,higher_type(top_var_type)) [ RPAREN ] @@ -3202,7 +3202,7 @@ program: DATABLOCK LBRACE TUPLE LPAREN WHILE ## ## Concrete syntax: data { tuple ( while ## -## Ends in an error in state: 487. +## Ends in an error in state: 486. ## ## tuple_type(top_var_type) -> TUPLE LPAREN . array_type(top_var_type) COMMA separated_nonempty_list(COMMA,higher_type(top_var_type)) RPAREN [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## tuple_type(top_var_type) -> TUPLE LPAREN . tuple_type(top_var_type) COMMA separated_nonempty_list(COMMA,higher_type(top_var_type)) RPAREN [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -3221,7 +3221,7 @@ program: TRANSFORMEDDATABLOCK LBRACE LPAREN IDENTIFIER COMMA WHILE ## ## Concrete syntax: transformed data { ( foo , while ## -## Ends in an error in state: 183. +## Ends in an error in state: 182. ## ## common_expression -> LPAREN expression COMMA . separated_nonempty_list(COMMA,expression) RPAREN [ TRANSPOSE TIMESASSIGN TIMES TILDE SEMICOLON RPAREN RBRACK RBRACE RABRACK QMARK PLUSASSIGN PLUS OR NEQUALS MODULO MINUSASSIGN MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMESASSIGN ELTTIMES ELTPOW ELTDIVIDEASSIGN ELTDIVIDE DOTNUMERAL DIVIDEASSIGN DIVIDE COMMA COLON BAR ASSIGN AND ] ## @@ -3267,7 +3267,7 @@ program: DATABLOCK LBRACE ARRAY LBRACK INTNUMERAL RBRACK IDENTIFIER ## ## Concrete syntax: data { array [ 24 ] foo ## -## Ends in an error in state: 565. +## Ends in an error in state: 576. ## ## array_type(top_var_type) -> arr_dims . top_var_type [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## array_type(top_var_type) -> arr_dims . tuple_type(top_var_type) [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -3282,7 +3282,7 @@ program: DATABLOCK LBRACE ARRAY LBRACK WHILE ## ## Concrete syntax: data { array [ while ## -## Ends in an error in state: 224. +## Ends in an error in state: 223. ## ## arr_dims -> ARRAY LBRACK . separated_nonempty_list(COMMA,expression) RBRACK [ VECTOR UNITVECTOR TUPLE STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX ROWVECTOR REAL POSITIVEORDERED ORDERED MATRIX INT COVMATRIX CORRMATRIX COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR ] ## @@ -3296,7 +3296,7 @@ program: DATABLOCK LBRACE ROWVECTOR LABRACK LOWER ASSIGN IDENTIFIER TRANSPOSE WH ## ## Concrete syntax: data { row_vector < lower = foo ' while ## -## Ends in an error in state: 468. +## Ends in an error in state: 467. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] @@ -3329,7 +3329,7 @@ program: MODELBLOCK LBRACE TUPLE LPAREN COMPLEX COMMA COMPLEX RPAREN UNREACHABLE ## ## Concrete syntax: model { tuple ( complex , complex ) <<<>> ## -## Ends in an error in state: 302. +## Ends in an error in state: 301. ## ## decl(sized_basic_type,expression) -> tuple_type(sized_basic_type) . id_and_optional_assignment(expression,decl_identifier) option(remaining_declarations(expression)) SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -3349,7 +3349,7 @@ program: DATABLOCK LBRACE TUPLE WHILE ## ## Concrete syntax: data { tuple while ## -## Ends in an error in state: 486. +## Ends in an error in state: 485. ## ## tuple_type(top_var_type) -> TUPLE . LPAREN array_type(top_var_type) COMMA separated_nonempty_list(COMMA,higher_type(top_var_type)) RPAREN [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## tuple_type(top_var_type) -> TUPLE . LPAREN tuple_type(top_var_type) COMMA separated_nonempty_list(COMMA,higher_type(top_var_type)) RPAREN [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -3372,9 +3372,9 @@ program: MODELBLOCK LBRACE REAL IDENTIFIER IDENTIFIER ## ## Concrete syntax: model { real foo foo ## -## Ends in an error in state: 326. +## Ends in an error in state: 325. ## -## decl(sized_basic_type,expression) -> sized_basic_type decl_identifier . LBRACK separated_nonempty_list(COMMA,expression) RBRACK [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## decl(sized_basic_type,expression) -> sized_basic_type decl_identifier . LBRACK separated_nonempty_list(COMMA,expression) RBRACK [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## id_and_optional_assignment(expression,decl_identifier) -> decl_identifier . optional_assignment(expression) [ SEMICOLON COMMA ] ## ## The known suffix of the stack is as follows: @@ -3389,9 +3389,9 @@ program: DATABLOCK LBRACE REAL WHILE IDENTIFIER ## ## Concrete syntax: data { real while foo ## -## Ends in an error in state: 602. +## Ends in an error in state: 613. ## -## decl(top_var_type,no_assign) -> top_var_type decl_identifier . LBRACK separated_nonempty_list(COMMA,expression) RBRACK [ VECTOR UNITVECTOR TUPLE SIMPLEX SEMICOLON ROWVECTOR REAL RBRACE POSITIVEORDERED ORDERED MATRIX INT COVMATRIX CORRMATRIX COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR ARRAY ] +## decl(top_var_type,no_assign) -> top_var_type decl_identifier . LBRACK separated_nonempty_list(COMMA,expression) RBRACK [ VECTOR UNITVECTOR TUPLE STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR REAL RBRACE POSITIVEORDERED ORDERED MATRIX INT COVMATRIX CORRMATRIX COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR ARRAY ] ## id_and_optional_assignment(no_assign,decl_identifier) -> decl_identifier . optional_assignment(no_assign) [ SEMICOLON COMMA ] ## ## The known suffix of the stack is as follows: @@ -3427,7 +3427,7 @@ program: TRANSFORMEDDATABLOCK LBRACE FATAL_ERROR WHILE ## ## Concrete syntax: transformed data { fatal_error while ## -## Ends in an error in state: 291. +## Ends in an error in state: 290. ## ## atomic_statement -> FATAL_ERROR . LPAREN printables RPAREN SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -3451,9 +3451,9 @@ program: MODELBLOCK LBRACE COMPLEX JACOBIAN LBRACK WHILE ## ## Concrete syntax: model { complex jacobian [ while ## -## Ends in an error in state: 327. +## Ends in an error in state: 326. ## -## decl(sized_basic_type,expression) -> sized_basic_type decl_identifier LBRACK . separated_nonempty_list(COMMA,expression) RBRACK [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## decl(sized_basic_type,expression) -> sized_basic_type decl_identifier LBRACK . separated_nonempty_list(COMMA,expression) RBRACK [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## sized_basic_type decl_identifier LBRACK @@ -3463,3 +3463,256 @@ program: MODELBLOCK LBRACE COMPLEX JACOBIAN LBRACK WHILE It looks like you are trying to use the old array syntax. Please use the new syntax: https://mc-stan.org/docs/reference-manual/types.html#array-data-types.section + + +program: DATABLOCK LBRACE STOCHASTICROWMATRIX WHILE +## +## Concrete syntax: data { stochastic_row_matrix while +## +## Ends in an error in state: 487. +## +## top_var_type -> STOCHASTICROWMATRIX . LBRACK expression COMMA expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## +## The known suffix of the stack is as follows: +## STOCHASTICROWMATRIX +## + +TODO: PARSER MESSAGE NEEDED HERE. + +program: DATABLOCK LBRACE STOCHASTICROWMATRIX LBRACK WHILE +## +## Concrete syntax: data { stochastic_row_matrix [ while +## +## Ends in an error in state: 488. +## +## top_var_type -> STOCHASTICROWMATRIX LBRACK . expression COMMA expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## +## The known suffix of the stack is as follows: +## STOCHASTICROWMATRIX LBRACK +## + +TODO: PARSER MESSAGE NEEDED HERE. + +program: DATABLOCK LBRACE STOCHASTICROWMATRIX LBRACK IDENTIFIER TILDE +## +## Concrete syntax: data { stochastic_row_matrix [ foo ~ +## +## Ends in an error in state: 489. +## +## expression -> expression . QMARK expression COLON expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . PLUS expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . MINUS expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . TIMES expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . DIVIDE expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . IDIVIDE expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . MODULO expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . LDIVIDE expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . ELTTIMES expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . ELTDIVIDE expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . HAT expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . ELTPOW expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . OR expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . AND expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . EQUALS expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . NEQUALS expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . LABRACK expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . LEQ expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . RABRACK expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . GEQ expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . TRANSPOSE [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## top_var_type -> STOCHASTICROWMATRIX LBRACK expression . COMMA expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## +## The known suffix of the stack is as follows: +## STOCHASTICROWMATRIX LBRACK expression +## +## WARNING: This example involves spurious reductions. +## This implies that, although the LR(1) items shown above provide an +## accurate view of the past (what has been recognized so far), they +## may provide an INCOMPLETE view of the future (what was expected next). +## In state 108, spurious reduction of production common_expression -> identifier +## In state 123, spurious reduction of production expression -> common_expression +## + +TODO: PARSER MESSAGE NEEDED HERE. + +program: DATABLOCK LBRACE STOCHASTICROWMATRIX LBRACK IDENTIFIER COMMA WHILE +## +## Concrete syntax: data { stochastic_row_matrix [ foo , while +## +## Ends in an error in state: 490. +## +## top_var_type -> STOCHASTICROWMATRIX LBRACK expression COMMA . expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## +## The known suffix of the stack is as follows: +## STOCHASTICROWMATRIX LBRACK expression COMMA +## + +TODO: PARSER MESSAGE NEEDED HERE. + +program: DATABLOCK LBRACE STOCHASTICROWMATRIX LBRACK IDENTIFIER COMMA IDENTIFIER TILDE +## +## Concrete syntax: data { stochastic_row_matrix [ foo , foo ~ +## +## Ends in an error in state: 491. +## +## expression -> expression . QMARK expression COLON expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . PLUS expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . MINUS expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . TIMES expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . DIVIDE expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . IDIVIDE expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . MODULO expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . LDIVIDE expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . ELTTIMES expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . ELTDIVIDE expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . HAT expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . ELTPOW expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . OR expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . AND expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . EQUALS expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . NEQUALS expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . LABRACK expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . LEQ expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . RABRACK expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . GEQ expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . TRANSPOSE [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## top_var_type -> STOCHASTICROWMATRIX LBRACK expression COMMA expression . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## +## The known suffix of the stack is as follows: +## STOCHASTICROWMATRIX LBRACK expression COMMA expression +## +## WARNING: This example involves spurious reductions. +## This implies that, although the LR(1) items shown above provide an +## accurate view of the past (what has been recognized so far), they +## may provide an INCOMPLETE view of the future (what was expected next). +## In state 108, spurious reduction of production common_expression -> identifier +## In state 123, spurious reduction of production expression -> common_expression +## + +TODO: PARSER MESSAGE NEEDED HERE. + +program: DATABLOCK LBRACE STOCHASTICCOLUMNMATRIX WHILE +## +## Concrete syntax: data { stochastic_column_matrix while +## +## Ends in an error in state: 493. +## +## top_var_type -> STOCHASTICCOLUMNMATRIX . LBRACK expression COMMA expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## +## The known suffix of the stack is as follows: +## STOCHASTICCOLUMNMATRIX +## + +TODO: PARSER MESSAGE NEEDED HERE. + +program: DATABLOCK LBRACE STOCHASTICCOLUMNMATRIX LBRACK WHILE +## +## Concrete syntax: data { stochastic_column_matrix [ while +## +## Ends in an error in state: 494. +## +## top_var_type -> STOCHASTICCOLUMNMATRIX LBRACK . expression COMMA expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## +## The known suffix of the stack is as follows: +## STOCHASTICCOLUMNMATRIX LBRACK +## + +TODO: PARSER MESSAGE NEEDED HERE. + +program: DATABLOCK LBRACE STOCHASTICCOLUMNMATRIX LBRACK IDENTIFIER TILDE +## +## Concrete syntax: data { stochastic_column_matrix [ foo ~ +## +## Ends in an error in state: 495. +## +## expression -> expression . QMARK expression COLON expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . PLUS expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . MINUS expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . TIMES expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . DIVIDE expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . IDIVIDE expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . MODULO expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . LDIVIDE expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . ELTTIMES expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . ELTDIVIDE expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . HAT expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . ELTPOW expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . OR expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . AND expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . EQUALS expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . NEQUALS expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . LABRACK expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . LEQ expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . RABRACK expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . GEQ expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## expression -> expression . TRANSPOSE [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## top_var_type -> STOCHASTICCOLUMNMATRIX LBRACK expression . COMMA expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## +## The known suffix of the stack is as follows: +## STOCHASTICCOLUMNMATRIX LBRACK expression +## +## WARNING: This example involves spurious reductions. +## This implies that, although the LR(1) items shown above provide an +## accurate view of the past (what has been recognized so far), they +## may provide an INCOMPLETE view of the future (what was expected next). +## In state 108, spurious reduction of production common_expression -> identifier +## In state 123, spurious reduction of production expression -> common_expression +## + +TODO: PARSER MESSAGE NEEDED HERE. + +program: DATABLOCK LBRACE STOCHASTICCOLUMNMATRIX LBRACK IDENTIFIER COMMA WHILE +## +## Concrete syntax: data { stochastic_column_matrix [ foo , while +## +## Ends in an error in state: 496. +## +## top_var_type -> STOCHASTICCOLUMNMATRIX LBRACK expression COMMA . expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## +## The known suffix of the stack is as follows: +## STOCHASTICCOLUMNMATRIX LBRACK expression COMMA +## + +TODO: PARSER MESSAGE NEEDED HERE. + +program: DATABLOCK LBRACE STOCHASTICCOLUMNMATRIX LBRACK IDENTIFIER COMMA IDENTIFIER TILDE +## +## Concrete syntax: data { stochastic_column_matrix [ foo , foo ~ +## +## Ends in an error in state: 497. +## +## expression -> expression . QMARK expression COLON expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . PLUS expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . MINUS expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . TIMES expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . DIVIDE expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . IDIVIDE expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . MODULO expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . LDIVIDE expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . ELTTIMES expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . ELTDIVIDE expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . HAT expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . ELTPOW expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . OR expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . AND expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . EQUALS expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . NEQUALS expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . LABRACK expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . LEQ expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . RABRACK expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . GEQ expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## expression -> expression . TRANSPOSE [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## top_var_type -> STOCHASTICCOLUMNMATRIX LBRACK expression COMMA expression . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## +## The known suffix of the stack is as follows: +## STOCHASTICCOLUMNMATRIX LBRACK expression COMMA expression +## +## WARNING: This example involves spurious reductions. +## This implies that, although the LR(1) items shown above provide an +## accurate view of the past (what has been recognized so far), they +## may provide an INCOMPLETE view of the future (what was expected next). +## In state 108, spurious reduction of production common_expression -> identifier +## In state 123, spurious reduction of production expression -> common_expression +## + +TODO: PARSER MESSAGE NEEDED HERE. diff --git a/test/integration/bad/stanc.expected b/test/integration/bad/stanc.expected index 14a52d192..d04193658 100644 --- a/test/integration/bad/stanc.expected +++ b/test/integration/bad/stanc.expected @@ -22,7 +22,7 @@ Invalid type in declaration. Valid types: int, real, vector, row_vector, matrix, unit_vector, simplex, ordered, positive_ordered, corr_matrix, cov_matrix, cholesky_factor_corr, cholesky_factor_cov, - tuple(...) + stochastic_row_matrix, stochastic_column_matrix, tuple(...) optionally preceded by a single array[...] $ ../../../../install/default/bin/stanc array-expr-decl-bad3.stan Syntax error in 'array-expr-decl-bad3.stan', line 2, column 2 to column 6, parsing error: @@ -37,7 +37,7 @@ Invalid type in declaration. Valid types: int, real, vector, row_vector, matrix, unit_vector, simplex, ordered, positive_ordered, corr_matrix, cov_matrix, cholesky_factor_corr, cholesky_factor_cov, - tuple(...) + stochastic_row_matrix, stochastic_column_matrix, tuple(...) optionally preceded by a single array[...] $ ../../../../install/default/bin/stanc array-read-write-assign.stan Semantic error in 'array-read-write-assign.stan', line 3, column 0 to column 7: @@ -784,7 +784,7 @@ Invalid type in declaration. Valid types: int, real, vector, row_vector, matrix, unit_vector, simplex, ordered, positive_ordered, corr_matrix, cov_matrix, cholesky_factor_corr, cholesky_factor_cov, - tuple(...) + stochastic_row_matrix, stochastic_column_matrix, tuple(...) optionally preceded by a single array[...] $ ../../../../install/default/bin/stanc err-decl-matrix-2.stan Semantic error in 'err-decl-matrix-2.stan', line 2, column 13 to column 17: diff --git a/test/integration/good/pretty.expected b/test/integration/good/pretty.expected index 022c89f94..9ffd6174a 100644 --- a/test/integration/good/pretty.expected +++ b/test/integration/good/pretty.expected @@ -4711,6 +4711,28 @@ model { y ~ normal(0, 1); } + $ ../../../../install/default/bin/stanc --auto-format stochastic_matrices.stan +data { + stochastic_column_matrix[10, 10] d_scm; + stochastic_row_matrix[10, 10] d_srm; +} +transformed data { + stochastic_column_matrix[10, 10] td_scm = d_scm; + stochastic_row_matrix[10, 10] td_srm = d_srm; +} +parameters { + stochastic_column_matrix[10, 10] p_scm; + stochastic_row_matrix[10, 10] p_srm; +} +transformed parameters { + stochastic_column_matrix[10, 10] tp_scm = p_scm; + stochastic_row_matrix[10, 10] tp_srm = p_srm; +} +generated quantities { + stochastic_column_matrix[10, 10] gq_scm = tp_scm; + stochastic_row_matrix[10, 10] gq_srm = tp_srm; +} + $ ../../../../install/default/bin/stanc --auto-format target.stan parameters { real y; From e6ee37d7ae6787dda0d631f43e467b93ce529ee6 Mon Sep 17 00:00:00 2001 From: Steve Bronder Date: Fri, 26 Jul 2024 12:04:58 -0400 Subject: [PATCH 04/10] update messages --- src/frontend/parser.messages | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/src/frontend/parser.messages b/src/frontend/parser.messages index 8430801f8..0e180c66b 100644 --- a/src/frontend/parser.messages +++ b/src/frontend/parser.messages @@ -3477,7 +3477,7 @@ program: DATABLOCK LBRACE STOCHASTICROWMATRIX WHILE ## STOCHASTICROWMATRIX ## -TODO: PARSER MESSAGE NEEDED HERE. +Expected "[" expression "," expression "]" for size of stochastic_row_matrix. program: DATABLOCK LBRACE STOCHASTICROWMATRIX LBRACK WHILE ## @@ -3491,7 +3491,7 @@ program: DATABLOCK LBRACE STOCHASTICROWMATRIX LBRACK WHILE ## STOCHASTICROWMATRIX LBRACK ## -TODO: PARSER MESSAGE NEEDED HERE. +Expected "[" expression "," expression "]" for size of stochastic_row_matrix. program: DATABLOCK LBRACE STOCHASTICROWMATRIX LBRACK IDENTIFIER TILDE ## @@ -3533,7 +3533,7 @@ program: DATABLOCK LBRACE STOCHASTICROWMATRIX LBRACK IDENTIFIER TILDE ## In state 123, spurious reduction of production expression -> common_expression ## -TODO: PARSER MESSAGE NEEDED HERE. +Expected "[" expression "," expression "]" for size of stochastic_row_matrix. program: DATABLOCK LBRACE STOCHASTICROWMATRIX LBRACK IDENTIFIER COMMA WHILE ## @@ -3547,7 +3547,7 @@ program: DATABLOCK LBRACE STOCHASTICROWMATRIX LBRACK IDENTIFIER COMMA WHILE ## STOCHASTICROWMATRIX LBRACK expression COMMA ## -TODO: PARSER MESSAGE NEEDED HERE. +Expected "[" expression "," expression "]" for size of stochastic_row_matrix. program: DATABLOCK LBRACE STOCHASTICROWMATRIX LBRACK IDENTIFIER COMMA IDENTIFIER TILDE ## @@ -3589,7 +3589,7 @@ program: DATABLOCK LBRACE STOCHASTICROWMATRIX LBRACK IDENTIFIER COMMA IDENTIFIER ## In state 123, spurious reduction of production expression -> common_expression ## -TODO: PARSER MESSAGE NEEDED HERE. +Expected "[" expression "," expression "]" for size of stochastic_row_matrix. program: DATABLOCK LBRACE STOCHASTICCOLUMNMATRIX WHILE ## @@ -3603,7 +3603,7 @@ program: DATABLOCK LBRACE STOCHASTICCOLUMNMATRIX WHILE ## STOCHASTICCOLUMNMATRIX ## -TODO: PARSER MESSAGE NEEDED HERE. +Expected "[" expression "," expression "]" for size of stochastic_column_matrix. program: DATABLOCK LBRACE STOCHASTICCOLUMNMATRIX LBRACK WHILE ## @@ -3617,7 +3617,7 @@ program: DATABLOCK LBRACE STOCHASTICCOLUMNMATRIX LBRACK WHILE ## STOCHASTICCOLUMNMATRIX LBRACK ## -TODO: PARSER MESSAGE NEEDED HERE. +Expected "[" expression "," expression "]" for size of stochastic_column_matrix. program: DATABLOCK LBRACE STOCHASTICCOLUMNMATRIX LBRACK IDENTIFIER TILDE ## @@ -3659,7 +3659,7 @@ program: DATABLOCK LBRACE STOCHASTICCOLUMNMATRIX LBRACK IDENTIFIER TILDE ## In state 123, spurious reduction of production expression -> common_expression ## -TODO: PARSER MESSAGE NEEDED HERE. +Expected "[" expression "," expression "]" for size of stochastic_column_matrix. program: DATABLOCK LBRACE STOCHASTICCOLUMNMATRIX LBRACK IDENTIFIER COMMA WHILE ## @@ -3673,7 +3673,7 @@ program: DATABLOCK LBRACE STOCHASTICCOLUMNMATRIX LBRACK IDENTIFIER COMMA WHILE ## STOCHASTICCOLUMNMATRIX LBRACK expression COMMA ## -TODO: PARSER MESSAGE NEEDED HERE. +Expected "[" expression "," expression "]" for size of stochastic_column_matrix. program: DATABLOCK LBRACE STOCHASTICCOLUMNMATRIX LBRACK IDENTIFIER COMMA IDENTIFIER TILDE ## @@ -3715,4 +3715,5 @@ program: DATABLOCK LBRACE STOCHASTICCOLUMNMATRIX LBRACK IDENTIFIER COMMA IDENTIF ## In state 123, spurious reduction of production expression -> common_expression ## -TODO: PARSER MESSAGE NEEDED HERE. +Expected "[" expression "," expression "]" for size of stochastic_column_matrix. + From fb8bc23974697d721f08bea20ef1df5e664132c8 Mon Sep 17 00:00:00 2001 From: Steve Bronder Date: Fri, 26 Jul 2024 12:06:06 -0400 Subject: [PATCH 05/10] add stoch test to code-gen --- test/integration/good/code-gen/cpp.expected | 628 ++++++++++++++++++ .../{ => code-gen}/stochastic_matrices.stan | 0 test/integration/good/pretty.expected | 22 - 3 files changed, 628 insertions(+), 22 deletions(-) rename test/integration/good/{ => code-gen}/stochastic_matrices.stan (100%) diff --git a/test/integration/good/code-gen/cpp.expected b/test/integration/good/code-gen/cpp.expected index e6e687a40..f96c2a346 100644 --- a/test/integration/good/code-gen/cpp.expected +++ b/test/integration/good/code-gen/cpp.expected @@ -42758,6 +42758,634 @@ new_model(stan::io::var_context& data_context, unsigned int seed, stan::math::profile_map& get_stan_profile_data() { return single_argument_lpmf_model_namespace::profiles__; } +#endif + $ ../../../../../install/default/bin/stanc --print-cpp stochastic_matrices.stan +// Code generated by %%NAME%% %%VERSION%% +#include +namespace stochastic_matrices_model_namespace { +using stan::model::model_base_crtp; +using namespace stan::math; +stan::math::profile_map profiles__; +static constexpr std::array locations_array__ = + {" (found before start of program)", + " (in 'stochastic_matrices.stan', line 11, column 3 to column 42)", + " (in 'stochastic_matrices.stan', line 12, column 3 to column 39)", + " (in 'stochastic_matrices.stan', line 16, column 3 to column 51)", + " (in 'stochastic_matrices.stan', line 17, column 3 to column 48)", + " (in 'stochastic_matrices.stan', line 21, column 3 to column 52)", + " (in 'stochastic_matrices.stan', line 22, column 3 to column 49)", + " (in 'stochastic_matrices.stan', line 2, column 3 to column 42)", + " (in 'stochastic_matrices.stan', line 3, column 3 to column 39)", + " (in 'stochastic_matrices.stan', line 7, column 3 to column 51)", + " (in 'stochastic_matrices.stan', line 8, column 3 to column 48)"}; +class stochastic_matrices_model final : public model_base_crtp { + private: + Eigen::Matrix d_scm_data__; + Eigen::Matrix d_srm_data__; + Eigen::Matrix td_scm_data__; + Eigen::Matrix td_srm_data__; + Eigen::Map> d_scm{nullptr, 0, 0}; + Eigen::Map> d_srm{nullptr, 0, 0}; + Eigen::Map> td_scm{nullptr, 0, 0}; + Eigen::Map> td_srm{nullptr, 0, 0}; + public: + ~stochastic_matrices_model() {} + stochastic_matrices_model(stan::io::var_context& context__, unsigned int + random_seed__ = 0, std::ostream* + pstream__ = nullptr) : model_base_crtp(0) { + int current_statement__ = 0; + // suppress unused var warning + (void) current_statement__; + using local_scalar_t__ = double; + auto base_rng__ = stan::services::util::create_rng(random_seed__, 0); + // suppress unused var warning + (void) base_rng__; + static constexpr const char* function__ = + "stochastic_matrices_model_namespace::stochastic_matrices_model"; + // suppress unused var warning + (void) function__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + // suppress unused var warning + (void) DUMMY_VAR__; + try { + int pos__ = std::numeric_limits::min(); + pos__ = 1; + current_statement__ = 7; + context__.validate_dims("data initialization", "d_scm", "double", + std::vector{static_cast(10), static_cast(10)}); + d_scm_data__ = Eigen::Matrix::Constant(10, 10, + std::numeric_limits::quiet_NaN()); + new (&d_scm) + Eigen::Map>(d_scm_data__.data(), 10, 10); + { + std::vector d_scm_flat__; + current_statement__ = 7; + d_scm_flat__ = context__.vals_r("d_scm"); + pos__ = 1; + for (int sym1__ = 1; sym1__ <= 10; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 10; ++sym2__) { + stan::model::assign(d_scm, d_scm_flat__[(pos__ - 1)], + "assigning variable d_scm", stan::model::index_uni(sym2__), + stan::model::index_uni(sym1__)); + pos__ = (pos__ + 1); + } + } + } + current_statement__ = 8; + context__.validate_dims("data initialization", "d_srm", "double", + std::vector{static_cast(10), static_cast(10)}); + d_srm_data__ = Eigen::Matrix::Constant(10, 10, + std::numeric_limits::quiet_NaN()); + new (&d_srm) + Eigen::Map>(d_srm_data__.data(), 10, 10); + { + std::vector d_srm_flat__; + current_statement__ = 8; + d_srm_flat__ = context__.vals_r("d_srm"); + pos__ = 1; + for (int sym1__ = 1; sym1__ <= 10; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 10; ++sym2__) { + stan::model::assign(d_srm, d_srm_flat__[(pos__ - 1)], + "assigning variable d_srm", stan::model::index_uni(sym2__), + stan::model::index_uni(sym1__)); + pos__ = (pos__ + 1); + } + } + } + current_statement__ = 9; + td_scm_data__ = Eigen::Matrix::Constant(10, 10, + std::numeric_limits::quiet_NaN()); + new (&td_scm) + Eigen::Map>(td_scm_data__.data(), 10, 10); + current_statement__ = 9; + stan::model::assign(td_scm, d_scm, "assigning variable td_scm"); + current_statement__ = 10; + td_srm_data__ = Eigen::Matrix::Constant(10, 10, + std::numeric_limits::quiet_NaN()); + new (&td_srm) + Eigen::Map>(td_srm_data__.data(), 10, 10); + current_statement__ = 10; + stan::model::assign(td_srm, d_srm, "assigning variable td_srm"); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + } + num_params_r__ = ((10 - 1) * 10) + (10 * (10 - 1)); + } + inline std::string model_name() const final { + return "stochastic_matrices_model"; + } + inline std::vector model_compile_info() const noexcept { + return std::vector{"stanc_version = %%NAME%%3 %%VERSION%%", + "stancflags = --print-cpp"}; + } + // Base log prob + template * = nullptr, + stan::require_vector_like_vt* = nullptr, + stan::require_not_st_var* = nullptr> + inline stan::scalar_type_t + log_prob_impl(VecR& params_r__, VecI& params_i__, std::ostream* + pstream__ = nullptr) const { + using T__ = stan::scalar_type_t; + using local_scalar_t__ = T__; + T__ lp__(0.0); + stan::math::accumulator lp_accum__; + stan::io::deserializer in__(params_r__, params_i__); + int current_statement__ = 0; + // suppress unused var warning + (void) current_statement__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + // suppress unused var warning + (void) DUMMY_VAR__; + static constexpr const char* function__ = + "stochastic_matrices_model_namespace::log_prob"; + // suppress unused var warning + (void) function__; + try { + current_statement__ = 1; + auto p_scm = + in__.template read_constrain_stochastic_column< + Eigen::Matrix, jacobian__>(lp__, 10, 10); + current_statement__ = 2; + auto p_srm = + in__.template read_constrain_stochastic_row< + Eigen::Matrix, jacobian__>(lp__, 10, 10); + Eigen::Matrix tp_scm = + Eigen::Matrix::Constant(10, 10, DUMMY_VAR__); + current_statement__ = 3; + stan::model::assign(tp_scm, p_scm, "assigning variable tp_scm"); + Eigen::Matrix tp_srm = + Eigen::Matrix::Constant(10, 10, DUMMY_VAR__); + current_statement__ = 4; + stan::model::assign(tp_srm, p_srm, "assigning variable tp_srm"); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + } + lp_accum__.add(lp__); + return lp_accum__.sum(); + } + // Reverse mode autodiff log prob + template * = nullptr, + stan::require_vector_like_vt* = nullptr, + stan::require_st_var* = nullptr> + inline stan::scalar_type_t + log_prob_impl(VecR& params_r__, VecI& params_i__, std::ostream* + pstream__ = nullptr) const { + using T__ = stan::scalar_type_t; + using local_scalar_t__ = T__; + T__ lp__(0.0); + stan::math::accumulator lp_accum__; + stan::io::deserializer in__(params_r__, params_i__); + int current_statement__ = 0; + // suppress unused var warning + (void) current_statement__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + // suppress unused var warning + (void) DUMMY_VAR__; + static constexpr const char* function__ = + "stochastic_matrices_model_namespace::log_prob"; + // suppress unused var warning + (void) function__; + try { + current_statement__ = 1; + auto p_scm = + in__.template read_constrain_stochastic_column< + Eigen::Matrix, jacobian__>(lp__, 10, 10); + current_statement__ = 2; + auto p_srm = + in__.template read_constrain_stochastic_row< + Eigen::Matrix, jacobian__>(lp__, 10, 10); + Eigen::Matrix tp_scm = + Eigen::Matrix::Constant(10, 10, DUMMY_VAR__); + current_statement__ = 3; + stan::model::assign(tp_scm, p_scm, "assigning variable tp_scm"); + Eigen::Matrix tp_srm = + Eigen::Matrix::Constant(10, 10, DUMMY_VAR__); + current_statement__ = 4; + stan::model::assign(tp_srm, p_srm, "assigning variable tp_srm"); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + } + lp_accum__.add(lp__); + return lp_accum__.sum(); + } + template * = nullptr, stan::require_vector_like_vt* = nullptr, stan::require_vector_vt* = nullptr> + inline void + write_array_impl(RNG& base_rng__, VecR& params_r__, VecI& params_i__, + VecVar& vars__, const bool + emit_transformed_parameters__ = true, const bool + emit_generated_quantities__ = true, std::ostream* + pstream__ = nullptr) const { + using local_scalar_t__ = double; + stan::io::deserializer in__(params_r__, params_i__); + stan::io::serializer out__(vars__); + static constexpr bool propto__ = true; + // suppress unused var warning + (void) propto__; + double lp__ = 0.0; + // suppress unused var warning + (void) lp__; + int current_statement__ = 0; + // suppress unused var warning + (void) current_statement__; + stan::math::accumulator lp_accum__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + // suppress unused var warning + (void) DUMMY_VAR__; + constexpr bool jacobian__ = false; + // suppress unused var warning + (void) jacobian__; + static constexpr const char* function__ = + "stochastic_matrices_model_namespace::write_array"; + // suppress unused var warning + (void) function__; + try { + current_statement__ = 1; + auto p_scm = + in__.template read_constrain_stochastic_column< + Eigen::Matrix, jacobian__>(lp__, 10, 10); + current_statement__ = 2; + auto p_srm = + in__.template read_constrain_stochastic_row< + Eigen::Matrix, jacobian__>(lp__, 10, 10); + Eigen::Matrix tp_scm = + Eigen::Matrix::Constant(10, 10, + std::numeric_limits::quiet_NaN()); + Eigen::Matrix tp_srm = + Eigen::Matrix::Constant(10, 10, + std::numeric_limits::quiet_NaN()); + out__.write(p_scm); + out__.write(p_srm); + if (stan::math::logical_negation( + (stan::math::primitive_value(emit_transformed_parameters__) || + stan::math::primitive_value(emit_generated_quantities__)))) { + return ; + } + current_statement__ = 3; + stan::model::assign(tp_scm, p_scm, "assigning variable tp_scm"); + current_statement__ = 4; + stan::model::assign(tp_srm, p_srm, "assigning variable tp_srm"); + if (emit_transformed_parameters__) { + out__.write(tp_scm); + out__.write(tp_srm); + } + if (stan::math::logical_negation(emit_generated_quantities__)) { + return ; + } + Eigen::Matrix gq_scm = + Eigen::Matrix::Constant(10, 10, + std::numeric_limits::quiet_NaN()); + current_statement__ = 5; + stan::model::assign(gq_scm, tp_scm, "assigning variable gq_scm"); + Eigen::Matrix gq_srm = + Eigen::Matrix::Constant(10, 10, + std::numeric_limits::quiet_NaN()); + current_statement__ = 6; + stan::model::assign(gq_srm, tp_srm, "assigning variable gq_srm"); + out__.write(gq_scm); + out__.write(gq_srm); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + } + } + template * = nullptr, + stan::require_vector_like_vt* = nullptr> + inline void + unconstrain_array_impl(const VecVar& params_r__, const VecI& params_i__, + VecVar& vars__, std::ostream* pstream__ = nullptr) const { + using local_scalar_t__ = double; + stan::io::deserializer in__(params_r__, params_i__); + stan::io::serializer out__(vars__); + int current_statement__ = 0; + // suppress unused var warning + (void) current_statement__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + // suppress unused var warning + (void) DUMMY_VAR__; + try { + Eigen::Matrix p_scm = + Eigen::Matrix::Constant(10, 10, DUMMY_VAR__); + current_statement__ = 1; + stan::model::assign(p_scm, + in__.read>(10, 10), + "assigning variable p_scm"); + out__.write_free_stochastic_column(p_scm); + Eigen::Matrix p_srm = + Eigen::Matrix::Constant(10, 10, DUMMY_VAR__); + current_statement__ = 2; + stan::model::assign(p_srm, + in__.read>(10, 10), + "assigning variable p_srm"); + out__.write_free_stochastic_row(p_srm); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + } + } + template * = nullptr> + inline void + transform_inits_impl(const stan::io::var_context& context__, VecVar& + vars__, std::ostream* pstream__ = nullptr) const { + using local_scalar_t__ = double; + stan::io::serializer out__(vars__); + int current_statement__ = 0; + // suppress unused var warning + (void) current_statement__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + // suppress unused var warning + (void) DUMMY_VAR__; + try { + current_statement__ = 1; + context__.validate_dims("parameter initialization", "p_scm", "double", + std::vector{static_cast(10), static_cast(10)}); + current_statement__ = 2; + context__.validate_dims("parameter initialization", "p_srm", "double", + std::vector{static_cast(10), static_cast(10)}); + int pos__ = std::numeric_limits::min(); + pos__ = 1; + Eigen::Matrix p_scm = + Eigen::Matrix::Constant(10, 10, DUMMY_VAR__); + { + std::vector p_scm_flat__; + current_statement__ = 1; + p_scm_flat__ = context__.vals_r("p_scm"); + pos__ = 1; + for (int sym1__ = 1; sym1__ <= 10; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 10; ++sym2__) { + stan::model::assign(p_scm, p_scm_flat__[(pos__ - 1)], + "assigning variable p_scm", stan::model::index_uni(sym2__), + stan::model::index_uni(sym1__)); + pos__ = (pos__ + 1); + } + } + } + out__.write_free_stochastic_column(p_scm); + Eigen::Matrix p_srm = + Eigen::Matrix::Constant(10, 10, DUMMY_VAR__); + { + std::vector p_srm_flat__; + current_statement__ = 2; + p_srm_flat__ = context__.vals_r("p_srm"); + pos__ = 1; + for (int sym1__ = 1; sym1__ <= 10; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 10; ++sym2__) { + stan::model::assign(p_srm, p_srm_flat__[(pos__ - 1)], + "assigning variable p_srm", stan::model::index_uni(sym2__), + stan::model::index_uni(sym1__)); + pos__ = (pos__ + 1); + } + } + } + out__.write_free_stochastic_row(p_srm); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + } + } + inline void + get_param_names(std::vector& names__, const bool + emit_transformed_parameters__ = true, const bool + emit_generated_quantities__ = true) const { + names__ = std::vector{"p_scm", "p_srm"}; + if (emit_transformed_parameters__) { + std::vector temp{"tp_scm", "tp_srm"}; + names__.reserve(names__.size() + temp.size()); + names__.insert(names__.end(), temp.begin(), temp.end()); + } + if (emit_generated_quantities__) { + std::vector temp{"gq_scm", "gq_srm"}; + names__.reserve(names__.size() + temp.size()); + names__.insert(names__.end(), temp.begin(), temp.end()); + } + } + inline void + get_dims(std::vector>& dimss__, const bool + emit_transformed_parameters__ = true, const bool + emit_generated_quantities__ = true) const { + dimss__ = std::vector>{std::vector{static_cast< + size_t>( + 10), + static_cast(10)}, + std::vector{static_cast(10), + static_cast(10)}}; + if (emit_transformed_parameters__) { + std::vector> + temp{std::vector{static_cast(10), + static_cast(10)}, + std::vector{static_cast(10), + static_cast(10)}}; + dimss__.reserve(dimss__.size() + temp.size()); + dimss__.insert(dimss__.end(), temp.begin(), temp.end()); + } + if (emit_generated_quantities__) { + std::vector> + temp{std::vector{static_cast(10), + static_cast(10)}, + std::vector{static_cast(10), + static_cast(10)}}; + dimss__.reserve(dimss__.size() + temp.size()); + dimss__.insert(dimss__.end(), temp.begin(), temp.end()); + } + } + inline void + constrained_param_names(std::vector& param_names__, bool + emit_transformed_parameters__ = true, bool + emit_generated_quantities__ = true) const final { + for (int sym1__ = 1; sym1__ <= 10; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 10; ++sym2__) { + param_names__.emplace_back(std::string() + "p_scm" + '.' + + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= 10; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 10; ++sym2__) { + param_names__.emplace_back(std::string() + "p_srm" + '.' + + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + if (emit_transformed_parameters__) { + for (int sym1__ = 1; sym1__ <= 10; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 10; ++sym2__) { + param_names__.emplace_back(std::string() + "tp_scm" + '.' + + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= 10; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 10; ++sym2__) { + param_names__.emplace_back(std::string() + "tp_srm" + '.' + + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + if (emit_generated_quantities__) { + for (int sym1__ = 1; sym1__ <= 10; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 10; ++sym2__) { + param_names__.emplace_back(std::string() + "gq_scm" + '.' + + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= 10; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 10; ++sym2__) { + param_names__.emplace_back(std::string() + "gq_srm" + '.' + + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + inline void + unconstrained_param_names(std::vector& param_names__, bool + emit_transformed_parameters__ = true, bool + emit_generated_quantities__ = true) const final { + for (int sym1__ = 1; sym1__ <= 10; ++sym1__) { + for (int sym2__ = 1; sym2__ <= (10 - 1); ++sym2__) { + param_names__.emplace_back(std::string() + "p_scm" + '.' + + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= (10 - 1); ++sym1__) { + for (int sym2__ = 1; sym2__ <= 10; ++sym2__) { + param_names__.emplace_back(std::string() + "p_srm" + '.' + + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + if (emit_transformed_parameters__) { + for (int sym1__ = 1; sym1__ <= 10; ++sym1__) { + for (int sym2__ = 1; sym2__ <= (10 - 1); ++sym2__) { + param_names__.emplace_back(std::string() + "tp_scm" + '.' + + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= (10 - 1); ++sym1__) { + for (int sym2__ = 1; sym2__ <= 10; ++sym2__) { + param_names__.emplace_back(std::string() + "tp_srm" + '.' + + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + if (emit_generated_quantities__) { + for (int sym1__ = 1; sym1__ <= 10; ++sym1__) { + for (int sym2__ = 1; sym2__ <= (10 - 1); ++sym2__) { + param_names__.emplace_back(std::string() + "gq_scm" + '.' + + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= (10 - 1); ++sym1__) { + for (int sym2__ = 1; sym2__ <= 10; ++sym2__) { + param_names__.emplace_back(std::string() + "gq_srm" + '.' + + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + inline std::string get_constrained_sizedtypes() const { + return std::string("[{\"name\":\"p_scm\",\"type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(10) + ",\"cols\":" + std::to_string(10) + "},\"block\":\"parameters\"},{\"name\":\"p_srm\",\"type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(10) + ",\"cols\":" + std::to_string(10) + "},\"block\":\"parameters\"},{\"name\":\"tp_scm\",\"type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(10) + ",\"cols\":" + std::to_string(10) + "},\"block\":\"transformed_parameters\"},{\"name\":\"tp_srm\",\"type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(10) + ",\"cols\":" + std::to_string(10) + "},\"block\":\"transformed_parameters\"},{\"name\":\"gq_scm\",\"type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(10) + ",\"cols\":" + std::to_string(10) + "},\"block\":\"generated_quantities\"},{\"name\":\"gq_srm\",\"type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(10) + ",\"cols\":" + std::to_string(10) + "},\"block\":\"generated_quantities\"}]"); + } + inline std::string get_unconstrained_sizedtypes() const { + return std::string("[{\"name\":\"p_scm\",\"type\":{\"name\":\"matrix\",\"rows\":" + std::to_string((10 -1)) + ",\"cols\":" + std::to_string(10) + "},\"block\":\"parameters\"},{\"name\":\"p_srm\",\"type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(10) + ",\"cols\":" + std::to_string((10 -1)) + "},\"block\":\"parameters\"},{\"name\":\"tp_scm\",\"type\":{\"name\":\"matrix\",\"rows\":" + std::to_string((10 -1)) + ",\"cols\":" + std::to_string(10) + "},\"block\":\"transformed_parameters\"},{\"name\":\"tp_srm\",\"type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(10) + ",\"cols\":" + std::to_string((10 -1)) + "},\"block\":\"transformed_parameters\"},{\"name\":\"gq_scm\",\"type\":{\"name\":\"matrix\",\"rows\":" + std::to_string((10 -1)) + ",\"cols\":" + std::to_string(10) + "},\"block\":\"generated_quantities\"},{\"name\":\"gq_srm\",\"type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(10) + ",\"cols\":" + std::to_string((10 -1)) + "},\"block\":\"generated_quantities\"}]"); + } + // Begin method overload boilerplate + template inline void + write_array(RNG& base_rng, Eigen::Matrix& params_r, + Eigen::Matrix& vars, const bool + emit_transformed_parameters = true, const bool + emit_generated_quantities = true, std::ostream* + pstream = nullptr) const { + const size_t num_params__ = ((10 * 10) + (10 * 10)); + const size_t num_transformed = emit_transformed_parameters * (((10 * 10) + + (10 * 10))); + const size_t num_gen_quantities = emit_generated_quantities * (((10 * 10) + + (10 * 10))); + const size_t num_to_write = num_params__ + num_transformed + + num_gen_quantities; + std::vector params_i; + vars = Eigen::Matrix::Constant(num_to_write, + std::numeric_limits::quiet_NaN()); + write_array_impl(base_rng, params_r, params_i, vars, + emit_transformed_parameters, emit_generated_quantities, pstream); + } + template inline void + write_array(RNG& base_rng, std::vector& params_r, std::vector& + params_i, std::vector& vars, bool + emit_transformed_parameters = true, bool + emit_generated_quantities = true, std::ostream* + pstream = nullptr) const { + const size_t num_params__ = ((10 * 10) + (10 * 10)); + const size_t num_transformed = emit_transformed_parameters * (((10 * 10) + + (10 * 10))); + const size_t num_gen_quantities = emit_generated_quantities * (((10 * 10) + + (10 * 10))); + const size_t num_to_write = num_params__ + num_transformed + + num_gen_quantities; + vars = std::vector(num_to_write, + std::numeric_limits::quiet_NaN()); + write_array_impl(base_rng, params_r, params_i, vars, + emit_transformed_parameters, emit_generated_quantities, pstream); + } + template inline T_ + log_prob(Eigen::Matrix& params_r, std::ostream* pstream = nullptr) const { + Eigen::Matrix params_i; + return log_prob_impl(params_r, params_i, pstream); + } + template inline T_ + log_prob(std::vector& params_r, std::vector& params_i, + std::ostream* pstream = nullptr) const { + return log_prob_impl(params_r, params_i, pstream); + } + inline void + transform_inits(const stan::io::var_context& context, + Eigen::Matrix& params_r, std::ostream* + pstream = nullptr) const final { + std::vector params_r_vec(params_r.size()); + std::vector params_i; + transform_inits(context, params_i, params_r_vec, pstream); + params_r = Eigen::Map>(params_r_vec.data(), + params_r_vec.size()); + } + inline void + transform_inits(const stan::io::var_context& context, std::vector& + params_i, std::vector& vars, std::ostream* + pstream__ = nullptr) const { + vars.resize(num_params_r__); + transform_inits_impl(context, vars, pstream__); + } + inline void + unconstrain_array(const std::vector& params_constrained, + std::vector& params_unconstrained, std::ostream* + pstream = nullptr) const { + const std::vector params_i; + params_unconstrained = std::vector(num_params_r__, + std::numeric_limits::quiet_NaN()); + unconstrain_array_impl(params_constrained, params_i, + params_unconstrained, pstream); + } + inline void + unconstrain_array(const Eigen::Matrix& params_constrained, + Eigen::Matrix& params_unconstrained, + std::ostream* pstream = nullptr) const { + const std::vector params_i; + params_unconstrained = Eigen::Matrix::Constant(num_params_r__, + std::numeric_limits::quiet_NaN()); + unconstrain_array_impl(params_constrained, params_i, + params_unconstrained, pstream); + } +}; +} +using stan_model = stochastic_matrices_model_namespace::stochastic_matrices_model; +#ifndef USING_R +// Boilerplate +stan::model::model_base& +new_model(stan::io::var_context& data_context, unsigned int seed, + std::ostream* msg_stream) { + stan_model* m = new stan_model(data_context, seed, msg_stream); + return *m; +} +stan::math::profile_map& get_stan_profile_data() { + return stochastic_matrices_model_namespace::profiles__; +} #endif $ ../../../../../install/default/bin/stanc --print-cpp tilde-block.stan // Code generated by %%NAME%% %%VERSION%% diff --git a/test/integration/good/stochastic_matrices.stan b/test/integration/good/code-gen/stochastic_matrices.stan similarity index 100% rename from test/integration/good/stochastic_matrices.stan rename to test/integration/good/code-gen/stochastic_matrices.stan diff --git a/test/integration/good/pretty.expected b/test/integration/good/pretty.expected index 9ffd6174a..022c89f94 100644 --- a/test/integration/good/pretty.expected +++ b/test/integration/good/pretty.expected @@ -4711,28 +4711,6 @@ model { y ~ normal(0, 1); } - $ ../../../../install/default/bin/stanc --auto-format stochastic_matrices.stan -data { - stochastic_column_matrix[10, 10] d_scm; - stochastic_row_matrix[10, 10] d_srm; -} -transformed data { - stochastic_column_matrix[10, 10] td_scm = d_scm; - stochastic_row_matrix[10, 10] td_srm = d_srm; -} -parameters { - stochastic_column_matrix[10, 10] p_scm; - stochastic_row_matrix[10, 10] p_srm; -} -transformed parameters { - stochastic_column_matrix[10, 10] tp_scm = p_scm; - stochastic_row_matrix[10, 10] tp_srm = p_srm; -} -generated quantities { - stochastic_column_matrix[10, 10] gq_scm = tp_scm; - stochastic_row_matrix[10, 10] gq_srm = tp_srm; -} - $ ../../../../install/default/bin/stanc --auto-format target.stan parameters { real y; From 6f9308198484e40ef3cbf101c6068456bc8e884a Mon Sep 17 00:00:00 2001 From: Steve Bronder Date: Mon, 29 Jul 2024 11:22:22 -0400 Subject: [PATCH 06/10] update --- src/analysis_and_optimization/Mir_utils.ml | 5 +- src/frontend/Ast_to_Mir.ml | 24 +- src/frontend/lexer.mll | 4 +- src/frontend/parser.messages | 153 ----- src/middle/Transformation.ml | 4 +- test/integration/good/code-gen/cpp.expected | 560 +++++++++++++----- .../good/code-gen/stochastic_matrices.stan | 27 +- 7 files changed, 464 insertions(+), 313 deletions(-) diff --git a/src/analysis_and_optimization/Mir_utils.ml b/src/analysis_and_optimization/Mir_utils.ml index 9d53a201c..53bbd9688 100644 --- a/src/analysis_and_optimization/Mir_utils.ml +++ b/src/analysis_and_optimization/Mir_utils.ml @@ -51,7 +51,8 @@ let trans_bounds_values (trans : Expr.Typed.t Transformation.t) : bound_values = | Upper upper -> {lower= `None; upper= bound_value upper} | LowerUpper (lower, upper) -> {lower= bound_value lower; upper= bound_value upper} - | Simplex -> {lower= `Lit 0.; upper= `Lit 1.} + | Simplex | StochasticColumn | StochasticRow -> + {lower= `Lit 0.; upper= `Lit 1.} | PositiveOrdered -> {lower= `Lit 0.; upper= `None} | UnitVector -> {lower= `Lit (-1.); upper= `Lit 1.} | CholeskyCorr | CholeskyCov | Correlation | Covariance | Ordered | Offset _ @@ -61,7 +62,7 @@ let trans_bounds_values (trans : Expr.Typed.t Transformation.t) : bound_values = until we define a distribution which accepts a tuple, this doesn't matter. *) - |TupleTransformation _ | StochasticColumn | StochasticRow -> + |TupleTransformation _ -> {lower= `None; upper= `None} let chop_dist_name (fname : string) : string Option.t = diff --git a/src/frontend/Ast_to_Mir.ml b/src/frontend/Ast_to_Mir.ml index 3ebfc096f..3bd0f0f75 100644 --- a/src/frontend/Ast_to_Mir.ml +++ b/src/frontend/Ast_to_Mir.ml @@ -323,6 +323,18 @@ let rec param_size transform sizedtype = let k_choose_2 k = Expr.Helpers.(binop (binop k Times (binop k Minus (int 1))) Divide (int 2)) in + let rec stoch_size f1 f2 st = + match st with + | SizedType.SMatrix (mem_pattern, d1, d2) -> + SizedType.SMatrix (mem_pattern, f1 d1, f2 d2) + | SArray (t, d) -> SizedType.SArray (stoch_size f1 f2 t, d) + | SInt | SReal | SComplex | SRowVector _ | SVector _ | STuple _ + |SComplexRowVector _ | SComplexVector _ | SComplexMatrix _ -> + Common.ICE.internal_compiler_error + [%message "Expecting SMatrix, got " (st : Expr.Typed.t SizedType.t)] + in + let min_one d = Expr.Helpers.(binop d Minus (int 1)) in + let noop d = d in match transform with | Transformation.Identity | Lower _ | Upper _ |LowerUpper (_, _) @@ -341,16 +353,8 @@ let rec param_size transform sizedtype = | Simplex -> shrink_eigen (fun d -> Expr.Helpers.(binop d Minus (int 1))) sizedtype | CholeskyCorr | Correlation -> shrink_eigen k_choose_2 sizedtype - | StochasticRow -> ( - match sizedtype with - | SMatrix (mem_pattern, d1, d2) -> - SMatrix (mem_pattern, d1, Expr.Helpers.(binop d2 Minus (int 1))) - | _ -> sizedtype) - | StochasticColumn -> ( - match sizedtype with - | SMatrix (mem_pattern, d1, d2) -> - SMatrix (mem_pattern, Expr.Helpers.(binop d1 Minus (int 1)), d2) - | _ -> sizedtype) + | StochasticRow -> stoch_size noop min_one sizedtype + | StochasticColumn -> stoch_size min_one noop sizedtype | CholeskyCov -> (* (N * (N + 1)) / 2 + (M - N) * N *) shrink_eigen_mat diff --git a/src/frontend/lexer.mll b/src/frontend/lexer.mll index c492caa07..411a265cd 100644 --- a/src/frontend/lexer.mll +++ b/src/frontend/lexer.mll @@ -139,8 +139,8 @@ rule token = parse Parser.CHOLESKYFACTORCOV } | "corr_matrix" { lexer_logger "corr_matrix" ; Parser.CORRMATRIX } | "cov_matrix" { lexer_logger "cov_matrix" ; Parser.COVMATRIX } - | "stochastic_column_matrix" { lexer_logger "stochastic_column_matrix" ; Parser.STOCHASTICCOLUMNMATRIX } - | "stochastic_row_matrix" { lexer_logger "stochastic_row_matrix" ; Parser.STOCHASTICROWMATRIX } + | "column_stochastic_matrix"{ lexer_logger "column_stochastic_matrix" ; Parser.STOCHASTICCOLUMNMATRIX } + | "row_stochastic_matrix" { lexer_logger "row_stochastic_matrix" ; Parser.STOCHASTICROWMATRIX } (* Transformation keywords *) | "lower" { lexer_logger "lower" ; Parser.LOWER } | "upper" { lexer_logger "upper" ; Parser.UPPER } diff --git a/src/frontend/parser.messages b/src/frontend/parser.messages index 0e180c66b..32efe3798 100644 --- a/src/frontend/parser.messages +++ b/src/frontend/parser.messages @@ -3466,89 +3466,13 @@ https://mc-stan.org/docs/reference-manual/types.html#array-data-types.section program: DATABLOCK LBRACE STOCHASTICROWMATRIX WHILE -## ## Concrete syntax: data { stochastic_row_matrix while -## -## Ends in an error in state: 487. -## -## top_var_type -> STOCHASTICROWMATRIX . LBRACK expression COMMA expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## -## The known suffix of the stack is as follows: -## STOCHASTICROWMATRIX -## - -Expected "[" expression "," expression "]" for size of stochastic_row_matrix. - program: DATABLOCK LBRACE STOCHASTICROWMATRIX LBRACK WHILE -## ## Concrete syntax: data { stochastic_row_matrix [ while -## -## Ends in an error in state: 488. -## -## top_var_type -> STOCHASTICROWMATRIX LBRACK . expression COMMA expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## -## The known suffix of the stack is as follows: -## STOCHASTICROWMATRIX LBRACK -## - -Expected "[" expression "," expression "]" for size of stochastic_row_matrix. - program: DATABLOCK LBRACE STOCHASTICROWMATRIX LBRACK IDENTIFIER TILDE -## ## Concrete syntax: data { stochastic_row_matrix [ foo ~ -## -## Ends in an error in state: 489. -## -## expression -> expression . QMARK expression COLON expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] -## expression -> expression . PLUS expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] -## expression -> expression . MINUS expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] -## expression -> expression . TIMES expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] -## expression -> expression . DIVIDE expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] -## expression -> expression . IDIVIDE expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] -## expression -> expression . MODULO expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] -## expression -> expression . LDIVIDE expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] -## expression -> expression . ELTTIMES expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] -## expression -> expression . ELTDIVIDE expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] -## expression -> expression . HAT expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] -## expression -> expression . ELTPOW expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] -## expression -> expression . OR expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] -## expression -> expression . AND expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] -## expression -> expression . EQUALS expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] -## expression -> expression . NEQUALS expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] -## expression -> expression . LABRACK expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] -## expression -> expression . LEQ expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] -## expression -> expression . RABRACK expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] -## expression -> expression . GEQ expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] -## expression -> expression . TRANSPOSE [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] -## top_var_type -> STOCHASTICROWMATRIX LBRACK expression . COMMA expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## -## The known suffix of the stack is as follows: -## STOCHASTICROWMATRIX LBRACK expression -## -## WARNING: This example involves spurious reductions. -## This implies that, although the LR(1) items shown above provide an -## accurate view of the past (what has been recognized so far), they -## may provide an INCOMPLETE view of the future (what was expected next). -## In state 108, spurious reduction of production common_expression -> identifier -## In state 123, spurious reduction of production expression -> common_expression -## - -Expected "[" expression "," expression "]" for size of stochastic_row_matrix. - program: DATABLOCK LBRACE STOCHASTICROWMATRIX LBRACK IDENTIFIER COMMA WHILE -## ## Concrete syntax: data { stochastic_row_matrix [ foo , while -## -## Ends in an error in state: 490. -## -## top_var_type -> STOCHASTICROWMATRIX LBRACK expression COMMA . expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## -## The known suffix of the stack is as follows: -## STOCHASTICROWMATRIX LBRACK expression COMMA -## - -Expected "[" expression "," expression "]" for size of stochastic_row_matrix. - program: DATABLOCK LBRACE STOCHASTICROWMATRIX LBRACK IDENTIFIER COMMA IDENTIFIER TILDE ## ## Concrete syntax: data { stochastic_row_matrix [ foo , foo ~ @@ -3592,89 +3516,13 @@ program: DATABLOCK LBRACE STOCHASTICROWMATRIX LBRACK IDENTIFIER COMMA IDENTIFIER Expected "[" expression "," expression "]" for size of stochastic_row_matrix. program: DATABLOCK LBRACE STOCHASTICCOLUMNMATRIX WHILE -## ## Concrete syntax: data { stochastic_column_matrix while -## -## Ends in an error in state: 493. -## -## top_var_type -> STOCHASTICCOLUMNMATRIX . LBRACK expression COMMA expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## -## The known suffix of the stack is as follows: -## STOCHASTICCOLUMNMATRIX -## - -Expected "[" expression "," expression "]" for size of stochastic_column_matrix. - program: DATABLOCK LBRACE STOCHASTICCOLUMNMATRIX LBRACK WHILE -## ## Concrete syntax: data { stochastic_column_matrix [ while -## -## Ends in an error in state: 494. -## -## top_var_type -> STOCHASTICCOLUMNMATRIX LBRACK . expression COMMA expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## -## The known suffix of the stack is as follows: -## STOCHASTICCOLUMNMATRIX LBRACK -## - -Expected "[" expression "," expression "]" for size of stochastic_column_matrix. - program: DATABLOCK LBRACE STOCHASTICCOLUMNMATRIX LBRACK IDENTIFIER TILDE -## ## Concrete syntax: data { stochastic_column_matrix [ foo ~ -## -## Ends in an error in state: 495. -## -## expression -> expression . QMARK expression COLON expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] -## expression -> expression . PLUS expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] -## expression -> expression . MINUS expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] -## expression -> expression . TIMES expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] -## expression -> expression . DIVIDE expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] -## expression -> expression . IDIVIDE expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] -## expression -> expression . MODULO expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] -## expression -> expression . LDIVIDE expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] -## expression -> expression . ELTTIMES expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] -## expression -> expression . ELTDIVIDE expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] -## expression -> expression . HAT expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] -## expression -> expression . ELTPOW expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] -## expression -> expression . OR expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] -## expression -> expression . AND expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] -## expression -> expression . EQUALS expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] -## expression -> expression . NEQUALS expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] -## expression -> expression . LABRACK expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] -## expression -> expression . LEQ expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] -## expression -> expression . RABRACK expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] -## expression -> expression . GEQ expression [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] -## expression -> expression . TRANSPOSE [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] -## top_var_type -> STOCHASTICCOLUMNMATRIX LBRACK expression . COMMA expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## -## The known suffix of the stack is as follows: -## STOCHASTICCOLUMNMATRIX LBRACK expression -## -## WARNING: This example involves spurious reductions. -## This implies that, although the LR(1) items shown above provide an -## accurate view of the past (what has been recognized so far), they -## may provide an INCOMPLETE view of the future (what was expected next). -## In state 108, spurious reduction of production common_expression -> identifier -## In state 123, spurious reduction of production expression -> common_expression -## - -Expected "[" expression "," expression "]" for size of stochastic_column_matrix. - program: DATABLOCK LBRACE STOCHASTICCOLUMNMATRIX LBRACK IDENTIFIER COMMA WHILE -## ## Concrete syntax: data { stochastic_column_matrix [ foo , while -## -## Ends in an error in state: 496. -## -## top_var_type -> STOCHASTICCOLUMNMATRIX LBRACK expression COMMA . expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## -## The known suffix of the stack is as follows: -## STOCHASTICCOLUMNMATRIX LBRACK expression COMMA -## - -Expected "[" expression "," expression "]" for size of stochastic_column_matrix. - program: DATABLOCK LBRACE STOCHASTICCOLUMNMATRIX LBRACK IDENTIFIER COMMA IDENTIFIER TILDE ## ## Concrete syntax: data { stochastic_column_matrix [ foo , foo ~ @@ -3716,4 +3564,3 @@ program: DATABLOCK LBRACE STOCHASTICCOLUMNMATRIX LBRACK IDENTIFIER COMMA IDENTIF ## Expected "[" expression "," expression "]" for size of stochastic_column_matrix. - diff --git a/src/middle/Transformation.ml b/src/middle/Transformation.ml index ee31b82d4..7c17ea153 100644 --- a/src/middle/Transformation.ml +++ b/src/middle/Transformation.ml @@ -26,8 +26,6 @@ type 'e t = [@@deriving sexp, compare, map, hash, fold] let rec has_check = function - | Identity | Offset _ | Multiplier _ | OffsetMultiplier _ | StochasticRow - |StochasticColumn -> - false + | Identity | Offset _ | Multiplier _ | OffsetMultiplier _ -> false | TupleTransformation transforms -> List.exists ~f:has_check transforms | _ -> true diff --git a/test/integration/good/code-gen/cpp.expected b/test/integration/good/code-gen/cpp.expected index f96c2a346..95037fd95 100644 --- a/test/integration/good/code-gen/cpp.expected +++ b/test/integration/good/code-gen/cpp.expected @@ -42766,28 +42766,35 @@ namespace stochastic_matrices_model_namespace { using stan::model::model_base_crtp; using namespace stan::math; stan::math::profile_map profiles__; -static constexpr std::array locations_array__ = +static constexpr std::array locations_array__ = {" (found before start of program)", - " (in 'stochastic_matrices.stan', line 11, column 3 to column 42)", - " (in 'stochastic_matrices.stan', line 12, column 3 to column 39)", - " (in 'stochastic_matrices.stan', line 16, column 3 to column 51)", - " (in 'stochastic_matrices.stan', line 17, column 3 to column 48)", - " (in 'stochastic_matrices.stan', line 21, column 3 to column 52)", - " (in 'stochastic_matrices.stan', line 22, column 3 to column 49)", + " (in 'stochastic_matrices.stan', line 13, column 3 to column 42)", + " (in 'stochastic_matrices.stan', line 14, column 3 to column 39)", + " (in 'stochastic_matrices.stan', line 15, column 3 to column 52)", + " (in 'stochastic_matrices.stan', line 19, column 3 to column 51)", + " (in 'stochastic_matrices.stan', line 20, column 3 to column 48)", + " (in 'stochastic_matrices.stan', line 21, column 3 to column 62)", + " (in 'stochastic_matrices.stan', line 25, column 3 to column 52)", + " (in 'stochastic_matrices.stan', line 26, column 3 to column 49)", + " (in 'stochastic_matrices.stan', line 27, column 3 to column 63)", " (in 'stochastic_matrices.stan', line 2, column 3 to column 42)", " (in 'stochastic_matrices.stan', line 3, column 3 to column 39)", - " (in 'stochastic_matrices.stan', line 7, column 3 to column 51)", - " (in 'stochastic_matrices.stan', line 8, column 3 to column 48)"}; + " (in 'stochastic_matrices.stan', line 4, column 3 to column 52)", + " (in 'stochastic_matrices.stan', line 8, column 3 to column 51)", + " (in 'stochastic_matrices.stan', line 9, column 3 to column 48)", + " (in 'stochastic_matrices.stan', line 10, column 3 to column 53)"}; class stochastic_matrices_model final : public model_base_crtp { private: - Eigen::Matrix d_scm_data__; - Eigen::Matrix d_srm_data__; - Eigen::Matrix td_scm_data__; - Eigen::Matrix td_srm_data__; - Eigen::Map> d_scm{nullptr, 0, 0}; - Eigen::Map> d_srm{nullptr, 0, 0}; - Eigen::Map> td_scm{nullptr, 0, 0}; - Eigen::Map> td_srm{nullptr, 0, 0}; + Eigen::Matrix d_csm_data__; + Eigen::Matrix d_rsm_data__; + std::vector>> d_arsm; + Eigen::Matrix td_csm_data__; + Eigen::Matrix td_rsm_data__; + std::vector>> td_arsm; + Eigen::Map> d_csm{nullptr, 0, 0}; + Eigen::Map> d_rsm{nullptr, 0, 0}; + Eigen::Map> td_csm{nullptr, 0, 0}; + Eigen::Map> td_rsm{nullptr, 0, 0}; public: ~stochastic_matrices_model() {} stochastic_matrices_model(stan::io::var_context& context__, unsigned int @@ -42810,66 +42817,113 @@ class stochastic_matrices_model final : public model_base_crtp::min(); pos__ = 1; - current_statement__ = 7; - context__.validate_dims("data initialization", "d_scm", "double", + current_statement__ = 10; + context__.validate_dims("data initialization", "d_csm", "double", std::vector{static_cast(10), static_cast(10)}); - d_scm_data__ = Eigen::Matrix::Constant(10, 10, + d_csm_data__ = Eigen::Matrix::Constant(10, 10, std::numeric_limits::quiet_NaN()); - new (&d_scm) - Eigen::Map>(d_scm_data__.data(), 10, 10); + new (&d_csm) + Eigen::Map>(d_csm_data__.data(), 10, 10); { - std::vector d_scm_flat__; - current_statement__ = 7; - d_scm_flat__ = context__.vals_r("d_scm"); + std::vector d_csm_flat__; + current_statement__ = 10; + d_csm_flat__ = context__.vals_r("d_csm"); pos__ = 1; for (int sym1__ = 1; sym1__ <= 10; ++sym1__) { for (int sym2__ = 1; sym2__ <= 10; ++sym2__) { - stan::model::assign(d_scm, d_scm_flat__[(pos__ - 1)], - "assigning variable d_scm", stan::model::index_uni(sym2__), + stan::model::assign(d_csm, d_csm_flat__[(pos__ - 1)], + "assigning variable d_csm", stan::model::index_uni(sym2__), stan::model::index_uni(sym1__)); pos__ = (pos__ + 1); } } } - current_statement__ = 8; - context__.validate_dims("data initialization", "d_srm", "double", + current_statement__ = 10; + stan::math::check_stochastic_column(function__, "d_csm", d_csm); + current_statement__ = 11; + context__.validate_dims("data initialization", "d_rsm", "double", std::vector{static_cast(10), static_cast(10)}); - d_srm_data__ = Eigen::Matrix::Constant(10, 10, + d_rsm_data__ = Eigen::Matrix::Constant(10, 10, std::numeric_limits::quiet_NaN()); - new (&d_srm) - Eigen::Map>(d_srm_data__.data(), 10, 10); + new (&d_rsm) + Eigen::Map>(d_rsm_data__.data(), 10, 10); { - std::vector d_srm_flat__; - current_statement__ = 8; - d_srm_flat__ = context__.vals_r("d_srm"); + std::vector d_rsm_flat__; + current_statement__ = 11; + d_rsm_flat__ = context__.vals_r("d_rsm"); pos__ = 1; for (int sym1__ = 1; sym1__ <= 10; ++sym1__) { for (int sym2__ = 1; sym2__ <= 10; ++sym2__) { - stan::model::assign(d_srm, d_srm_flat__[(pos__ - 1)], - "assigning variable d_srm", stan::model::index_uni(sym2__), + stan::model::assign(d_rsm, d_rsm_flat__[(pos__ - 1)], + "assigning variable d_rsm", stan::model::index_uni(sym2__), stan::model::index_uni(sym1__)); pos__ = (pos__ + 1); } } } - current_statement__ = 9; - td_scm_data__ = Eigen::Matrix::Constant(10, 10, + current_statement__ = 11; + stan::math::check_stochastic_row(function__, "d_rsm", d_rsm); + current_statement__ = 12; + context__.validate_dims("data initialization", "d_arsm", "double", + std::vector{static_cast(2), static_cast(2), + static_cast(10), static_cast(10)}); + d_arsm = std::vector>>(2, + std::vector>(2, + Eigen::Matrix::Constant(10, 10, + std::numeric_limits::quiet_NaN()))); + { + std::vector d_arsm_flat__; + current_statement__ = 12; + d_arsm_flat__ = context__.vals_r("d_arsm"); + pos__ = 1; + for (int sym1__ = 1; sym1__ <= 10; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 10; ++sym2__) { + for (int sym3__ = 1; sym3__ <= 2; ++sym3__) { + for (int sym4__ = 1; sym4__ <= 2; ++sym4__) { + stan::model::assign(d_arsm, d_arsm_flat__[(pos__ - 1)], + "assigning variable d_arsm", + stan::model::index_uni(sym4__), + stan::model::index_uni(sym3__), + stan::model::index_uni(sym2__), + stan::model::index_uni(sym1__)); + pos__ = (pos__ + 1); + } + } + } + } + } + current_statement__ = 12; + stan::math::check_stochastic_row(function__, "d_arsm", d_arsm); + current_statement__ = 13; + td_csm_data__ = Eigen::Matrix::Constant(10, 10, std::numeric_limits::quiet_NaN()); - new (&td_scm) - Eigen::Map>(td_scm_data__.data(), 10, 10); - current_statement__ = 9; - stan::model::assign(td_scm, d_scm, "assigning variable td_scm"); - current_statement__ = 10; - td_srm_data__ = Eigen::Matrix::Constant(10, 10, + new (&td_csm) + Eigen::Map>(td_csm_data__.data(), 10, 10); + current_statement__ = 13; + stan::model::assign(td_csm, d_csm, "assigning variable td_csm"); + current_statement__ = 14; + td_rsm_data__ = Eigen::Matrix::Constant(10, 10, std::numeric_limits::quiet_NaN()); - new (&td_srm) - Eigen::Map>(td_srm_data__.data(), 10, 10); - current_statement__ = 10; - stan::model::assign(td_srm, d_srm, "assigning variable td_srm"); + new (&td_rsm) + Eigen::Map>(td_rsm_data__.data(), 10, 10); + current_statement__ = 14; + stan::model::assign(td_rsm, d_rsm, "assigning variable td_rsm"); + current_statement__ = 15; + td_arsm = std::vector>>(2, + std::vector>(2, + Eigen::Matrix::Constant(10, 10, + std::numeric_limits::quiet_NaN()))); + current_statement__ = 13; + stan::math::check_stochastic_column(function__, "td_csm", td_csm); + current_statement__ = 14; + stan::math::check_stochastic_row(function__, "td_rsm", td_rsm); + current_statement__ = 15; + stan::math::check_stochastic_row(function__, "td_arsm", td_arsm); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); } - num_params_r__ = ((10 - 1) * 10) + (10 * (10 - 1)); + num_params_r__ = ((10 - 1) * 10) + (10 * (10 - 1)) + (2 * (2 * (10 * (10 + - 1)))); } inline std::string model_name() const final { return "stochastic_matrices_model"; @@ -42903,21 +42957,40 @@ class stochastic_matrices_model final : public model_base_crtp, jacobian__>(lp__, 10, 10); current_statement__ = 2; - auto p_srm = + auto p_rsm = in__.template read_constrain_stochastic_row< Eigen::Matrix, jacobian__>(lp__, 10, 10); - Eigen::Matrix tp_scm = - Eigen::Matrix::Constant(10, 10, DUMMY_VAR__); current_statement__ = 3; - stan::model::assign(tp_scm, p_scm, "assigning variable tp_scm"); - Eigen::Matrix tp_srm = + auto p_arsm = + in__.template read_constrain_stochastic_row< + std::vector>>, + jacobian__>(lp__, 2, 2, 10, 10); + Eigen::Matrix tp_csm = Eigen::Matrix::Constant(10, 10, DUMMY_VAR__); current_statement__ = 4; - stan::model::assign(tp_srm, p_srm, "assigning variable tp_srm"); + stan::model::assign(tp_csm, p_csm, "assigning variable tp_csm"); + Eigen::Matrix tp_rsm = + Eigen::Matrix::Constant(10, 10, DUMMY_VAR__); + current_statement__ = 5; + stan::model::assign(tp_rsm, p_rsm, "assigning variable tp_rsm"); + std::vector>> + tp_arsm = + std::vector>>(2, + std::vector>(2, + Eigen::Matrix::Constant(10, 10, + DUMMY_VAR__))); + current_statement__ = 6; + stan::model::assign(tp_arsm, p_arsm, "assigning variable tp_arsm"); + current_statement__ = 4; + stan::math::check_stochastic_column(function__, "tp_csm", tp_csm); + current_statement__ = 5; + stan::math::check_stochastic_row(function__, "tp_rsm", tp_rsm); + current_statement__ = 6; + stan::math::check_stochastic_row(function__, "tp_arsm", tp_arsm); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); } @@ -42949,21 +43022,40 @@ class stochastic_matrices_model final : public model_base_crtp, jacobian__>(lp__, 10, 10); current_statement__ = 2; - auto p_srm = + auto p_rsm = in__.template read_constrain_stochastic_row< Eigen::Matrix, jacobian__>(lp__, 10, 10); - Eigen::Matrix tp_scm = - Eigen::Matrix::Constant(10, 10, DUMMY_VAR__); current_statement__ = 3; - stan::model::assign(tp_scm, p_scm, "assigning variable tp_scm"); - Eigen::Matrix tp_srm = + auto p_arsm = + in__.template read_constrain_stochastic_row< + std::vector>>, + jacobian__>(lp__, 2, 2, 10, 10); + Eigen::Matrix tp_csm = Eigen::Matrix::Constant(10, 10, DUMMY_VAR__); current_statement__ = 4; - stan::model::assign(tp_srm, p_srm, "assigning variable tp_srm"); + stan::model::assign(tp_csm, p_csm, "assigning variable tp_csm"); + Eigen::Matrix tp_rsm = + Eigen::Matrix::Constant(10, 10, DUMMY_VAR__); + current_statement__ = 5; + stan::model::assign(tp_rsm, p_rsm, "assigning variable tp_rsm"); + std::vector>> + tp_arsm = + std::vector>>(2, + std::vector>(2, + Eigen::Matrix::Constant(10, 10, + DUMMY_VAR__))); + current_statement__ = 6; + stan::model::assign(tp_arsm, p_arsm, "assigning variable tp_arsm"); + current_statement__ = 4; + stan::math::check_stochastic_column(function__, "tp_csm", tp_csm); + current_statement__ = 5; + stan::math::check_stochastic_row(function__, "tp_rsm", tp_rsm); + current_statement__ = 6; + stan::math::check_stochastic_row(function__, "tp_arsm", tp_arsm); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); } @@ -43006,49 +43098,122 @@ class stochastic_matrices_model final : public model_base_crtp, jacobian__>(lp__, 10, 10); current_statement__ = 2; - auto p_srm = + auto p_rsm = in__.template read_constrain_stochastic_row< Eigen::Matrix, jacobian__>(lp__, 10, 10); - Eigen::Matrix tp_scm = + current_statement__ = 3; + auto p_arsm = + in__.template read_constrain_stochastic_row< + std::vector>>, + jacobian__>(lp__, 2, 2, 10, 10); + Eigen::Matrix tp_csm = Eigen::Matrix::Constant(10, 10, std::numeric_limits::quiet_NaN()); - Eigen::Matrix tp_srm = + Eigen::Matrix tp_rsm = Eigen::Matrix::Constant(10, 10, std::numeric_limits::quiet_NaN()); - out__.write(p_scm); - out__.write(p_srm); + std::vector>> tp_arsm = + std::vector>>(2, + std::vector>(2, + Eigen::Matrix::Constant(10, 10, + std::numeric_limits::quiet_NaN()))); + out__.write(p_csm); + out__.write(p_rsm); + current_statement__ = 3; + for (int sym1__ = 1; sym1__ <= 10; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 10; ++sym2__) { + for (int sym3__ = 1; sym3__ <= 2; ++sym3__) { + for (int sym4__ = 1; sym4__ <= 2; ++sym4__) { + out__.write(stan::model::rvalue(p_arsm, "p_arsm", + stan::model::index_uni(sym4__), + stan::model::index_uni(sym3__), + stan::model::index_uni(sym2__), + stan::model::index_uni(sym1__))); + } + } + } + } if (stan::math::logical_negation( (stan::math::primitive_value(emit_transformed_parameters__) || stan::math::primitive_value(emit_generated_quantities__)))) { return ; } - current_statement__ = 3; - stan::model::assign(tp_scm, p_scm, "assigning variable tp_scm"); current_statement__ = 4; - stan::model::assign(tp_srm, p_srm, "assigning variable tp_srm"); + stan::model::assign(tp_csm, p_csm, "assigning variable tp_csm"); + current_statement__ = 5; + stan::model::assign(tp_rsm, p_rsm, "assigning variable tp_rsm"); + current_statement__ = 6; + stan::model::assign(tp_arsm, p_arsm, "assigning variable tp_arsm"); + current_statement__ = 4; + stan::math::check_stochastic_column(function__, "tp_csm", tp_csm); + current_statement__ = 5; + stan::math::check_stochastic_row(function__, "tp_rsm", tp_rsm); + current_statement__ = 6; + stan::math::check_stochastic_row(function__, "tp_arsm", tp_arsm); if (emit_transformed_parameters__) { - out__.write(tp_scm); - out__.write(tp_srm); + out__.write(tp_csm); + out__.write(tp_rsm); + current_statement__ = 6; + for (int sym1__ = 1; sym1__ <= 10; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 10; ++sym2__) { + for (int sym3__ = 1; sym3__ <= 2; ++sym3__) { + for (int sym4__ = 1; sym4__ <= 2; ++sym4__) { + out__.write(stan::model::rvalue(tp_arsm, "tp_arsm", + stan::model::index_uni(sym4__), + stan::model::index_uni(sym3__), + stan::model::index_uni(sym2__), + stan::model::index_uni(sym1__))); + } + } + } + } } if (stan::math::logical_negation(emit_generated_quantities__)) { return ; } - Eigen::Matrix gq_scm = + Eigen::Matrix gq_csm = Eigen::Matrix::Constant(10, 10, std::numeric_limits::quiet_NaN()); - current_statement__ = 5; - stan::model::assign(gq_scm, tp_scm, "assigning variable gq_scm"); - Eigen::Matrix gq_srm = + current_statement__ = 7; + stan::model::assign(gq_csm, tp_csm, "assigning variable gq_csm"); + Eigen::Matrix gq_rsm = Eigen::Matrix::Constant(10, 10, std::numeric_limits::quiet_NaN()); - current_statement__ = 6; - stan::model::assign(gq_srm, tp_srm, "assigning variable gq_srm"); - out__.write(gq_scm); - out__.write(gq_srm); + current_statement__ = 8; + stan::model::assign(gq_rsm, tp_rsm, "assigning variable gq_rsm"); + std::vector>> gq_arsm = + std::vector>>(2, + std::vector>(2, + Eigen::Matrix::Constant(10, 10, + std::numeric_limits::quiet_NaN()))); + current_statement__ = 9; + stan::model::assign(gq_arsm, tp_arsm, "assigning variable gq_arsm"); + current_statement__ = 7; + stan::math::check_stochastic_column(function__, "gq_csm", gq_csm); + current_statement__ = 8; + stan::math::check_stochastic_row(function__, "gq_rsm", gq_rsm); + current_statement__ = 9; + stan::math::check_stochastic_row(function__, "gq_arsm", gq_arsm); + out__.write(gq_csm); + out__.write(gq_rsm); + current_statement__ = 9; + for (int sym1__ = 1; sym1__ <= 10; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 10; ++sym2__) { + for (int sym3__ = 1; sym3__ <= 2; ++sym3__) { + for (int sym4__ = 1; sym4__ <= 2; ++sym4__) { + out__.write(stan::model::rvalue(gq_arsm, "gq_arsm", + stan::model::index_uni(sym4__), + stan::model::index_uni(sym3__), + stan::model::index_uni(sym2__), + stan::model::index_uni(sym1__))); + } + } + } + } } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); } @@ -43069,20 +43234,42 @@ class stochastic_matrices_model final : public model_base_crtp p_scm = + Eigen::Matrix p_csm = Eigen::Matrix::Constant(10, 10, DUMMY_VAR__); current_statement__ = 1; - stan::model::assign(p_scm, + stan::model::assign(p_csm, in__.read>(10, 10), - "assigning variable p_scm"); - out__.write_free_stochastic_column(p_scm); - Eigen::Matrix p_srm = + "assigning variable p_csm"); + out__.write_free_stochastic_column(p_csm); + Eigen::Matrix p_rsm = Eigen::Matrix::Constant(10, 10, DUMMY_VAR__); current_statement__ = 2; - stan::model::assign(p_srm, + stan::model::assign(p_rsm, in__.read>(10, 10), - "assigning variable p_srm"); - out__.write_free_stochastic_row(p_srm); + "assigning variable p_rsm"); + out__.write_free_stochastic_row(p_rsm); + std::vector>> + p_arsm = + std::vector>>(2, + std::vector>(2, + Eigen::Matrix::Constant(10, 10, + DUMMY_VAR__))); + current_statement__ = 3; + for (int sym1__ = 1; sym1__ <= 10; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 10; ++sym2__) { + for (int sym3__ = 1; sym3__ <= 2; ++sym3__) { + for (int sym4__ = 1; sym4__ <= 2; ++sym4__) { + current_statement__ = 3; + stan::model::assign(p_arsm, in__.read(), + "assigning variable p_arsm", stan::model::index_uni(sym4__), + stan::model::index_uni(sym3__), + stan::model::index_uni(sym2__), + stan::model::index_uni(sym1__)); + } + } + } + } + out__.write_free_stochastic_row(p_arsm); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); } @@ -43101,47 +43288,79 @@ class stochastic_matrices_model final : public model_base_crtp{static_cast(10), static_cast(10)}); current_statement__ = 2; - context__.validate_dims("parameter initialization", "p_srm", "double", + context__.validate_dims("parameter initialization", "p_rsm", "double", std::vector{static_cast(10), static_cast(10)}); + current_statement__ = 3; + context__.validate_dims("parameter initialization", "p_arsm", "double", + std::vector{static_cast(2), static_cast(2), + static_cast(10), static_cast(10)}); int pos__ = std::numeric_limits::min(); pos__ = 1; - Eigen::Matrix p_scm = + Eigen::Matrix p_csm = Eigen::Matrix::Constant(10, 10, DUMMY_VAR__); { - std::vector p_scm_flat__; + std::vector p_csm_flat__; current_statement__ = 1; - p_scm_flat__ = context__.vals_r("p_scm"); + p_csm_flat__ = context__.vals_r("p_csm"); pos__ = 1; for (int sym1__ = 1; sym1__ <= 10; ++sym1__) { for (int sym2__ = 1; sym2__ <= 10; ++sym2__) { - stan::model::assign(p_scm, p_scm_flat__[(pos__ - 1)], - "assigning variable p_scm", stan::model::index_uni(sym2__), + stan::model::assign(p_csm, p_csm_flat__[(pos__ - 1)], + "assigning variable p_csm", stan::model::index_uni(sym2__), stan::model::index_uni(sym1__)); pos__ = (pos__ + 1); } } } - out__.write_free_stochastic_column(p_scm); - Eigen::Matrix p_srm = + out__.write_free_stochastic_column(p_csm); + Eigen::Matrix p_rsm = Eigen::Matrix::Constant(10, 10, DUMMY_VAR__); { - std::vector p_srm_flat__; + std::vector p_rsm_flat__; current_statement__ = 2; - p_srm_flat__ = context__.vals_r("p_srm"); + p_rsm_flat__ = context__.vals_r("p_rsm"); pos__ = 1; for (int sym1__ = 1; sym1__ <= 10; ++sym1__) { for (int sym2__ = 1; sym2__ <= 10; ++sym2__) { - stan::model::assign(p_srm, p_srm_flat__[(pos__ - 1)], - "assigning variable p_srm", stan::model::index_uni(sym2__), + stan::model::assign(p_rsm, p_rsm_flat__[(pos__ - 1)], + "assigning variable p_rsm", stan::model::index_uni(sym2__), stan::model::index_uni(sym1__)); pos__ = (pos__ + 1); } } } - out__.write_free_stochastic_row(p_srm); + out__.write_free_stochastic_row(p_rsm); + std::vector>> + p_arsm = + std::vector>>(2, + std::vector>(2, + Eigen::Matrix::Constant(10, 10, + DUMMY_VAR__))); + { + std::vector p_arsm_flat__; + current_statement__ = 3; + p_arsm_flat__ = context__.vals_r("p_arsm"); + pos__ = 1; + for (int sym1__ = 1; sym1__ <= 10; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 10; ++sym2__) { + for (int sym3__ = 1; sym3__ <= 2; ++sym3__) { + for (int sym4__ = 1; sym4__ <= 2; ++sym4__) { + stan::model::assign(p_arsm, p_arsm_flat__[(pos__ - 1)], + "assigning variable p_arsm", + stan::model::index_uni(sym4__), + stan::model::index_uni(sym3__), + stan::model::index_uni(sym2__), + stan::model::index_uni(sym1__)); + pos__ = (pos__ + 1); + } + } + } + } + } + out__.write_free_stochastic_row(p_arsm); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); } @@ -43150,14 +43369,14 @@ class stochastic_matrices_model final : public model_base_crtp& names__, const bool emit_transformed_parameters__ = true, const bool emit_generated_quantities__ = true) const { - names__ = std::vector{"p_scm", "p_srm"}; + names__ = std::vector{"p_csm", "p_rsm", "p_arsm"}; if (emit_transformed_parameters__) { - std::vector temp{"tp_scm", "tp_srm"}; + std::vector temp{"tp_csm", "tp_rsm", "tp_arsm"}; names__.reserve(names__.size() + temp.size()); names__.insert(names__.end(), temp.begin(), temp.end()); } if (emit_generated_quantities__) { - std::vector temp{"gq_scm", "gq_srm"}; + std::vector temp{"gq_csm", "gq_rsm", "gq_arsm"}; names__.reserve(names__.size() + temp.size()); names__.insert(names__.end(), temp.begin(), temp.end()); } @@ -43171,12 +43390,18 @@ class stochastic_matrices_model final : public model_base_crtp(10)}, std::vector{static_cast(10), + static_cast(10)}, + std::vector{static_cast(2), + static_cast(2), static_cast(10), static_cast(10)}}; if (emit_transformed_parameters__) { std::vector> temp{std::vector{static_cast(10), static_cast(10)}, std::vector{static_cast(10), + static_cast(10)}, + std::vector{static_cast(2), + static_cast(2), static_cast(10), static_cast(10)}}; dimss__.reserve(dimss__.size() + temp.size()); dimss__.insert(dimss__.end(), temp.begin(), temp.end()); @@ -43186,6 +43411,9 @@ class stochastic_matrices_model final : public model_base_crtp{static_cast(10), static_cast(10)}, std::vector{static_cast(10), + static_cast(10)}, + std::vector{static_cast(2), + static_cast(2), static_cast(10), static_cast(10)}}; dimss__.reserve(dimss__.size() + temp.size()); dimss__.insert(dimss__.end(), temp.begin(), temp.end()); @@ -43197,43 +43425,76 @@ class stochastic_matrices_model final : public model_base_crtp inline void @@ -43294,11 +43588,12 @@ class stochastic_matrices_model final : public model_base_crtp params_i; @@ -43313,11 +43608,12 @@ class stochastic_matrices_model final : public model_base_crtp(num_to_write, diff --git a/test/integration/good/code-gen/stochastic_matrices.stan b/test/integration/good/code-gen/stochastic_matrices.stan index bf09aefac..b1f0e1dc1 100644 --- a/test/integration/good/code-gen/stochastic_matrices.stan +++ b/test/integration/good/code-gen/stochastic_matrices.stan @@ -1,23 +1,28 @@ data { - stochastic_column_matrix[10, 10] d_scm; - stochastic_row_matrix[10, 10] d_srm; + column_stochastic_matrix[10, 10] d_csm; + row_stochastic_matrix[10, 10] d_rsm; + array[2, 2] row_stochastic_matrix[10, 10] d_arsm; } transformed data { - stochastic_column_matrix[10, 10] td_scm = d_scm; - stochastic_row_matrix[10, 10] td_srm = d_srm; + column_stochastic_matrix[10, 10] td_csm = d_csm; + row_stochastic_matrix[10, 10] td_rsm = d_rsm; + array[2, 2] row_stochastic_matrix[10, 10] td_arsm; } parameters { - stochastic_column_matrix[10, 10] p_scm; - stochastic_row_matrix[10, 10] p_srm; + column_stochastic_matrix[10, 10] p_csm; + row_stochastic_matrix[10, 10] p_rsm; + array[2, 2] row_stochastic_matrix[10, 10] p_arsm; } transformed parameters { - stochastic_column_matrix[10, 10] tp_scm = p_scm; - stochastic_row_matrix[10, 10] tp_srm = p_srm; + column_stochastic_matrix[10, 10] tp_csm = p_csm; + row_stochastic_matrix[10, 10] tp_rsm = p_rsm; + array[2, 2] row_stochastic_matrix[10, 10] tp_arsm = p_arsm; } generated quantities { - stochastic_column_matrix[10, 10] gq_scm = tp_scm; - stochastic_row_matrix[10, 10] gq_srm = tp_srm; -} \ No newline at end of file + column_stochastic_matrix[10, 10] gq_csm = tp_csm; + row_stochastic_matrix[10, 10] gq_rsm = tp_rsm; + array[2, 2] row_stochastic_matrix[10, 10] gq_arsm = tp_arsm; +} From 624d822346376eb94bb10571a0b3788227fc48ac Mon Sep 17 00:00:00 2001 From: Brian Ward Date: Mon, 5 Aug 2024 10:20:56 -0400 Subject: [PATCH 07/10] Fix missing renames --- src/frontend/Pretty_printing.ml | 4 +-- src/frontend/parser.messages | 26 +++++++++---------- src/frontend/parser.mly | 2 +- test/integration/bad/stanc.expected | 6 ++--- test/integration/good/pretty.expected | 10 +++++++ .../good/validate_add_var_good.stan | 12 ++++++++- 6 files changed, 40 insertions(+), 20 deletions(-) diff --git a/src/frontend/Pretty_printing.ml b/src/frontend/Pretty_printing.ml index 5aa53c07d..90222b645 100644 --- a/src/frontend/Pretty_printing.ml +++ b/src/frontend/Pretty_printing.ml @@ -364,8 +364,8 @@ let rec pp_transformed_type ppf (st, trans) = | CholeskyCov -> pf ppf "cholesky_factor_cov%a" cov_sizes_fmt () | Correlation -> pf ppf "corr_matrix%a" cov_sizes_fmt () | Covariance -> pf ppf "cov_matrix%a" cov_sizes_fmt () - | StochasticColumn -> pf ppf "stochastic_column_matrix%a" sizes_fmt () - | StochasticRow -> pf ppf "stochastic_row_matrix%a" sizes_fmt () + | StochasticColumn -> pf ppf "column_stochastic_matrix%a" sizes_fmt () + | StochasticRow -> pf ppf "row_stochastic_matrix%a" sizes_fmt () | TupleTransformation transforms -> (* NB this calls the top-level function to handle internal arrays etc *) let transTypes = Middle.Utils.zip_stuple_trans_exn st transforms in diff --git a/src/frontend/parser.messages b/src/frontend/parser.messages index 32efe3798..d9d6712a1 100644 --- a/src/frontend/parser.messages +++ b/src/frontend/parser.messages @@ -762,7 +762,7 @@ Invalid type in declaration. Valid types: int, real, vector, row_vector, matrix, unit_vector, simplex, ordered, positive_ordered, corr_matrix, cov_matrix, cholesky_factor_corr, cholesky_factor_cov, - stochastic_row_matrix, stochastic_column_matrix, tuple(...) + row_stochastic_matrix, column_stochastic_matrix, tuple(...) optionally preceded by a single array[...] program: DATABLOCK WHILE @@ -3466,16 +3466,16 @@ https://mc-stan.org/docs/reference-manual/types.html#array-data-types.section program: DATABLOCK LBRACE STOCHASTICROWMATRIX WHILE -## Concrete syntax: data { stochastic_row_matrix while +## Concrete syntax: data { row_stochastic_matrix while program: DATABLOCK LBRACE STOCHASTICROWMATRIX LBRACK WHILE -## Concrete syntax: data { stochastic_row_matrix [ while +## Concrete syntax: data { row_stochastic_matrix [ while program: DATABLOCK LBRACE STOCHASTICROWMATRIX LBRACK IDENTIFIER TILDE -## Concrete syntax: data { stochastic_row_matrix [ foo ~ +## Concrete syntax: data { row_stochastic_matrix [ foo ~ program: DATABLOCK LBRACE STOCHASTICROWMATRIX LBRACK IDENTIFIER COMMA WHILE -## Concrete syntax: data { stochastic_row_matrix [ foo , while +## Concrete syntax: data { row_stochastic_matrix [ foo , while program: DATABLOCK LBRACE STOCHASTICROWMATRIX LBRACK IDENTIFIER COMMA IDENTIFIER TILDE ## -## Concrete syntax: data { stochastic_row_matrix [ foo , foo ~ +## Concrete syntax: data { row_stochastic_matrix [ foo , foo ~ ## ## Ends in an error in state: 491. ## @@ -3513,19 +3513,19 @@ program: DATABLOCK LBRACE STOCHASTICROWMATRIX LBRACK IDENTIFIER COMMA IDENTIFIER ## In state 123, spurious reduction of production expression -> common_expression ## -Expected "[" expression "," expression "]" for size of stochastic_row_matrix. +Expected "[" expression "," expression "]" for size of row_stochastic_matrix. program: DATABLOCK LBRACE STOCHASTICCOLUMNMATRIX WHILE -## Concrete syntax: data { stochastic_column_matrix while +## Concrete syntax: data { column_stochastic_matrix while program: DATABLOCK LBRACE STOCHASTICCOLUMNMATRIX LBRACK WHILE -## Concrete syntax: data { stochastic_column_matrix [ while +## Concrete syntax: data { column_stochastic_matrix [ while program: DATABLOCK LBRACE STOCHASTICCOLUMNMATRIX LBRACK IDENTIFIER TILDE -## Concrete syntax: data { stochastic_column_matrix [ foo ~ +## Concrete syntax: data { column_stochastic_matrix [ foo ~ program: DATABLOCK LBRACE STOCHASTICCOLUMNMATRIX LBRACK IDENTIFIER COMMA WHILE -## Concrete syntax: data { stochastic_column_matrix [ foo , while +## Concrete syntax: data { column_stochastic_matrix [ foo , while program: DATABLOCK LBRACE STOCHASTICCOLUMNMATRIX LBRACK IDENTIFIER COMMA IDENTIFIER TILDE ## -## Concrete syntax: data { stochastic_column_matrix [ foo , foo ~ +## Concrete syntax: data { column_stochastic_matrix [ foo , foo ~ ## ## Ends in an error in state: 497. ## @@ -3563,4 +3563,4 @@ program: DATABLOCK LBRACE STOCHASTICCOLUMNMATRIX LBRACK IDENTIFIER COMMA IDENTIF ## In state 123, spurious reduction of production expression -> common_expression ## -Expected "[" expression "," expression "]" for size of stochastic_column_matrix. +Expected "[" expression "," expression "]" for size of column_stochastic_matrix. diff --git a/src/frontend/parser.mly b/src/frontend/parser.mly index 3df077752..66fb4d9ec 100644 --- a/src/frontend/parser.mly +++ b/src/frontend/parser.mly @@ -85,7 +85,7 @@ let nest_unsized_array basic_type n = POSITIVEORDERED "positive_ordered" SIMPLEX "simplex" UNITVECTOR "unit_vector" CHOLESKYFACTORCORR "cholesky_factor_corr" CHOLESKYFACTORCOV "cholesky_factor_cov" CORRMATRIX "corr_matrix" COVMATRIX "cov_matrix" COMPLEXMATRIX "complex_matrix" - STOCHASTICCOLUMNMATRIX "stochastic_column_matrix" STOCHASTICROWMATRIX "stochastic_row_matrix" + STOCHASTICCOLUMNMATRIX "column_stochastic_matrix" STOCHASTICROWMATRIX "row_stochastic_matrix" %token LOWER "lower" UPPER "upper" OFFSET "offset" MULTIPLIER "multiplier" %token JACOBIAN "jacobian" %token INTNUMERAL "24" diff --git a/test/integration/bad/stanc.expected b/test/integration/bad/stanc.expected index d04193658..d6aa75bd1 100644 --- a/test/integration/bad/stanc.expected +++ b/test/integration/bad/stanc.expected @@ -22,7 +22,7 @@ Invalid type in declaration. Valid types: int, real, vector, row_vector, matrix, unit_vector, simplex, ordered, positive_ordered, corr_matrix, cov_matrix, cholesky_factor_corr, cholesky_factor_cov, - stochastic_row_matrix, stochastic_column_matrix, tuple(...) + row_stochastic_matrix, column_stochastic_matrix, tuple(...) optionally preceded by a single array[...] $ ../../../../install/default/bin/stanc array-expr-decl-bad3.stan Syntax error in 'array-expr-decl-bad3.stan', line 2, column 2 to column 6, parsing error: @@ -37,7 +37,7 @@ Invalid type in declaration. Valid types: int, real, vector, row_vector, matrix, unit_vector, simplex, ordered, positive_ordered, corr_matrix, cov_matrix, cholesky_factor_corr, cholesky_factor_cov, - stochastic_row_matrix, stochastic_column_matrix, tuple(...) + row_stochastic_matrix, column_stochastic_matrix, tuple(...) optionally preceded by a single array[...] $ ../../../../install/default/bin/stanc array-read-write-assign.stan Semantic error in 'array-read-write-assign.stan', line 3, column 0 to column 7: @@ -784,7 +784,7 @@ Invalid type in declaration. Valid types: int, real, vector, row_vector, matrix, unit_vector, simplex, ordered, positive_ordered, corr_matrix, cov_matrix, cholesky_factor_corr, cholesky_factor_cov, - stochastic_row_matrix, stochastic_column_matrix, tuple(...) + row_stochastic_matrix, column_stochastic_matrix, tuple(...) optionally preceded by a single array[...] $ ../../../../install/default/bin/stanc err-decl-matrix-2.stan Semantic error in 'err-decl-matrix-2.stan', line 2, column 13 to column 17: diff --git a/test/integration/good/pretty.expected b/test/integration/good/pretty.expected index 022c89f94..2bd19c2e1 100644 --- a/test/integration/good/pretty.expected +++ b/test/integration/good/pretty.expected @@ -5093,6 +5093,8 @@ data { matrix[4, 5] m; cov_matrix[3] covm; corr_matrix[3] corrm; + row_stochastic_matrix[3, 4] rowstoch; + column_stochastic_matrix[3, 4] colstoch; } transformed data { int n_td; @@ -5107,6 +5109,8 @@ transformed data { matrix[4, 5] m_td; cov_matrix[3] covm_td; corr_matrix[3] corrm_td; + row_stochastic_matrix[3, 4] rowstoch_td; + column_stochastic_matrix[3, 4] colstoch_td; } parameters { real x_p; @@ -5119,6 +5123,8 @@ parameters { matrix[4, 5] m_p; cov_matrix[3] covm_p; corr_matrix[3] corrm_p; + row_stochastic_matrix[3, 4] rowstoch_p; + column_stochastic_matrix[3, 4] colstoch_p; } transformed parameters { real x_tp; @@ -5131,6 +5137,8 @@ transformed parameters { matrix[4, 5] m_tp; cov_matrix[3] covm_tp; corr_matrix[3] corrm_tp; + row_stochastic_matrix[3, 4] rowstoch_tp; + column_stochastic_matrix[3, 4] colstoch_tp; } model { int n_l; @@ -5156,6 +5164,8 @@ generated quantities { matrix[4, 5] m_gq; cov_matrix[3] covm_gq; corr_matrix[3] corrm_gq; + row_stochastic_matrix[3, 4] rowstoch_gq; + column_stochastic_matrix[3, 4] colstoch_gq; } $ ../../../../install/default/bin/stanc --auto-format validate_bounds_comparison.stan diff --git a/test/integration/good/validate_add_var_good.stan b/test/integration/good/validate_add_var_good.stan index 12c87d795..7b15ea9bc 100644 --- a/test/integration/good/validate_add_var_good.stan +++ b/test/integration/good/validate_add_var_good.stan @@ -11,6 +11,8 @@ data { matrix[4, 5] m; cov_matrix[3] covm; corr_matrix[3] corrm; + row_stochastic_matrix[3,4] rowstoch; + column_stochastic_matrix[3,4] colstoch; } transformed data { int n_td; @@ -25,6 +27,8 @@ transformed data { matrix[4, 5] m_td; cov_matrix[3] covm_td; corr_matrix[3] corrm_td; + row_stochastic_matrix[3,4] rowstoch_td; + column_stochastic_matrix[3,4] colstoch_td; } parameters { real x_p; @@ -37,6 +41,8 @@ parameters { matrix[4, 5] m_p; cov_matrix[3] covm_p; corr_matrix[3] corrm_p; + row_stochastic_matrix[3,4] rowstoch_p; + column_stochastic_matrix[3,4] colstoch_p; } transformed parameters { real x_tp; @@ -49,6 +55,8 @@ transformed parameters { matrix[4, 5] m_tp; cov_matrix[3] covm_tp; corr_matrix[3] corrm_tp; + row_stochastic_matrix[3,4] rowstoch_tp; + column_stochastic_matrix[3,4] colstoch_tp; } model { int n_l; @@ -58,7 +66,7 @@ model { vector[3] v_l; row_vector[3] rv_l; matrix[4, 5] m_l; - + x_p ~ normal(0, 1); } generated quantities { @@ -74,5 +82,7 @@ generated quantities { matrix[4, 5] m_gq; cov_matrix[3] covm_gq; corr_matrix[3] corrm_gq; + row_stochastic_matrix[3,4] rowstoch_gq; + column_stochastic_matrix[3,4] colstoch_gq; } From 1f68c41038ae273e5abd47ece34ea76534b9fbf3 Mon Sep 17 00:00:00 2001 From: Brian Ward Date: Mon, 5 Aug 2024 10:31:46 -0400 Subject: [PATCH 08/10] New reserved word tests --- src/frontend/parser.mly | 2 ++ test/integration/bad/reserved/column_stochastic_matrix.stan | 3 +++ test/integration/bad/reserved/row_stochastic_matrix.stan | 3 +++ 3 files changed, 8 insertions(+) create mode 100644 test/integration/bad/reserved/column_stochastic_matrix.stan create mode 100644 test/integration/bad/reserved/row_stochastic_matrix.stan diff --git a/src/frontend/parser.mly b/src/frontend/parser.mly index 66fb4d9ec..a0d86a4ea 100644 --- a/src/frontend/parser.mly +++ b/src/frontend/parser.mly @@ -258,6 +258,8 @@ reserved_word: | CHOLESKYFACTORCOV { "cholesky_factor_cov", $loc, true } | CORRMATRIX { "corr_matrix", $loc, true } | COVMATRIX { "cov_matrix", $loc, true } + | STOCHASTICCOLUMNMATRIX { "column_stochastic_matrix", $loc, true } + | STOCHASTICROWMATRIX { "row_stochastic_matrix", $loc, true } | PRINT { "print", $loc, false } | REJECT { "reject", $loc, false } | FATAL_ERROR { "fatal_error", $loc, false } diff --git a/test/integration/bad/reserved/column_stochastic_matrix.stan b/test/integration/bad/reserved/column_stochastic_matrix.stan new file mode 100644 index 000000000..a61211686 --- /dev/null +++ b/test/integration/bad/reserved/column_stochastic_matrix.stan @@ -0,0 +1,3 @@ +data { + real column_stochastic_matrix; +} diff --git a/test/integration/bad/reserved/row_stochastic_matrix.stan b/test/integration/bad/reserved/row_stochastic_matrix.stan new file mode 100644 index 000000000..2f70b45a1 --- /dev/null +++ b/test/integration/bad/reserved/row_stochastic_matrix.stan @@ -0,0 +1,3 @@ +generated quantities { + int row_stochastic_matrix; +} From 45907e40dfd48409cc77f2a1f74384c057171bdb Mon Sep 17 00:00:00 2001 From: Brian Ward Date: Mon, 5 Aug 2024 10:35:58 -0400 Subject: [PATCH 09/10] Dune promote --- test/integration/bad/reserved/stanc.expected | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/test/integration/bad/reserved/stanc.expected b/test/integration/bad/reserved/stanc.expected index df0fe38e1..7c9fac6e6 100644 --- a/test/integration/bad/reserved/stanc.expected +++ b/test/integration/bad/reserved/stanc.expected @@ -42,6 +42,16 @@ Syntax error in 'cholesky_factor_cov.stan', line 2, column 7 to column 26, parsi ------------------------------------------------- Expected a new identifier but found reserved keyword 'cholesky_factor_cov'. + $ ../../../../../install/default/bin/stanc column_stochastic_matrix.stan +Syntax error in 'column_stochastic_matrix.stan', line 2, column 7 to column 31, parsing error: + ------------------------------------------------- + 1: data { + 2: real column_stochastic_matrix; + ^ + 3: } + ------------------------------------------------- + +Expected a new identifier but found reserved keyword 'column_stochastic_matrix'. $ ../../../../../install/default/bin/stanc continue.stan Syntax error in 'continue.stan', line 2, column 7 to column 15, parsing error: ------------------------------------------------- @@ -284,6 +294,16 @@ Syntax error in 'return.stan', line 2, column 7 to column 13, parsing error: ------------------------------------------------- Expected a new identifier but found reserved keyword 'return'. + $ ../../../../../install/default/bin/stanc row_stochastic_matrix.stan +Syntax error in 'row_stochastic_matrix.stan', line 2, column 6 to column 27, parsing error: + ------------------------------------------------- + 1: generated quantities { + 2: int row_stochastic_matrix; + ^ + 3: } + ------------------------------------------------- + +Expected a new identifier but found reserved keyword 'row_stochastic_matrix'. $ ../../../../../install/default/bin/stanc row_vector.stan Syntax error in 'row_vector.stan', line 2, column 7 to column 17, parsing error: ------------------------------------------------- From 4247ad43106cca40ed87207c82f49e2dcb365d04 Mon Sep 17 00:00:00 2001 From: Steve Bronder Date: Mon, 5 Aug 2024 11:02:13 -0400 Subject: [PATCH 10/10] Use Fn.id instead of noop for stoch sizes --- src/frontend/Ast_to_Mir.ml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/frontend/Ast_to_Mir.ml b/src/frontend/Ast_to_Mir.ml index 3bd0f0f75..8d3111dbd 100644 --- a/src/frontend/Ast_to_Mir.ml +++ b/src/frontend/Ast_to_Mir.ml @@ -334,7 +334,6 @@ let rec param_size transform sizedtype = [%message "Expecting SMatrix, got " (st : Expr.Typed.t SizedType.t)] in let min_one d = Expr.Helpers.(binop d Minus (int 1)) in - let noop d = d in match transform with | Transformation.Identity | Lower _ | Upper _ |LowerUpper (_, _) @@ -353,8 +352,8 @@ let rec param_size transform sizedtype = | Simplex -> shrink_eigen (fun d -> Expr.Helpers.(binop d Minus (int 1))) sizedtype | CholeskyCorr | Correlation -> shrink_eigen k_choose_2 sizedtype - | StochasticRow -> stoch_size noop min_one sizedtype - | StochasticColumn -> stoch_size min_one noop sizedtype + | StochasticRow -> stoch_size Fn.id min_one sizedtype + | StochasticColumn -> stoch_size min_one Fn.id sizedtype | CholeskyCov -> (* (N * (N + 1)) / 2 + (M - N) * N *) shrink_eigen_mat