diff --git a/params.toml b/params.toml index 362451b..aeee678 100644 --- a/params.toml +++ b/params.toml @@ -26,8 +26,8 @@ verify_config = true [statements.gen_global_decl] gen_boolean = 0.0 gen_character = 0.0 - gen_integer = 0.0 - gen_real = 0.0 + gen_integer = 0.5 + gen_real = 0.5 gen_tuple = 0.0 [statements.gen_if_statement] diff --git a/src/ast_builder.rs b/src/ast_builder.rs index 464f101..098fb85 100644 --- a/src/ast_builder.rs +++ b/src/ast_builder.rs @@ -59,15 +59,15 @@ impl AstBuilder { let typedef = self.gen_typedef(); self.ast.push(typedef); } else { - let decl = self.gen_decl(); + let decl = self.gen_global_decl(); self.ast.push(decl); } } } - fn gen_decl(&mut self) -> Stat { + fn gen_global_decl(&mut self) -> Stat { let mut p: f64 = self.rng.gen(); - let ps = &self.params.statements.gen_decl; + let ps = &self.params.statements.gen_global_decl; let t: BaseType; let assn: Expr; diff --git a/src/params.rs b/src/params.rs index 174e8e5..66e2a6e 100644 --- a/src/params.rs +++ b/src/params.rs @@ -176,7 +176,18 @@ toml_struct!{ impl GenGlobalDecl { fn verify(&self) -> Result<(), String> { - Ok(()) + let sum_type = self.gen_boolean + + self.gen_character + + self.gen_integer + + self.gen_real + + self.gen_tuple; + + + if (sum_type - 1.0).abs() > f64::EPSILON { + Err(format!("statements.gen_global_decl probability sum for types is = {}", sum_type)) + } else { + Ok(()) + } } }