refactor(grammar): use is_multiple_of and let-chains

Replace modulo operations with is_multiple_of calls and simplify nested if
statements using let-chains in the grammar generator.

Co-Authored-By: fiddlerwoaroof/git-smart-commit (gemma-4-31B-it-UD-Q4_K_XL.gguf)
This commit is contained in:
Edward Langley
2026-04-14 01:03:24 -07:00
parent bdbfe08476
commit 648e50860e
2 changed files with 8 additions and 8 deletions

View File

@ -186,7 +186,7 @@ impl<'g> Gen<'g> {
} }
"number" => { "number" => {
let whole = 1 + self.rng.next() % 99999; let whole = 1 + self.rng.next() % 99999;
if self.pick() % 3 == 0 { if self.pick().is_multiple_of(3) {
let frac = self.rng.next() % 100; let frac = self.rng.next() % 100;
out.push_str(&format!("{whole}.{frac:02}")); out.push_str(&format!("{whole}.{frac:02}"));
} else { } else {
@ -240,11 +240,11 @@ impl<'g> Gen<'g> {
} }
_ => { _ => {
// Try override first, fall back to grammar walk // Try override first, fall back to grammar walk
if !self.try_override(name, out) { if !self.try_override(name, out)
if let Some((_ty, expr)) = self.rules.get(name) { && let Some((_ty, expr)) = self.rules.get(name)
let expr = expr.clone(); {
self.emit(&expr, out); let expr = expr.clone();
} self.emit(&expr, out);
} }
} }
}, },
@ -264,7 +264,7 @@ impl<'g> Gen<'g> {
self.emit(alts[idx], out); self.emit(alts[idx], out);
} }
Expr::Opt(inner) => { Expr::Opt(inner) => {
if self.pick() % 3 != 0 { if !self.pick().is_multiple_of(3) {
// ~66% chance of emitting // ~66% chance of emitting
self.emit(inner, out); self.emit(inner, out);
} }

View File

@ -2232,7 +2232,7 @@ mod generator {
self.emit(alts[idx], out); self.emit(alts[idx], out);
} }
Expr::Opt(inner) => { Expr::Opt(inner) => {
if self.pick() % 3 != 0 { if !self.pick().is_multiple_of(3) {
// ~66% chance of emitting // ~66% chance of emitting
self.emit(inner, out); self.emit(inner, out);
} }