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:
@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user