about summary refs log tree commit diff stats
path: root/064random.cc
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2015-10-01 17:30:14 -0700
committerKartik K. Agaram <vc@akkartik.com>2015-10-01 17:30:14 -0700
commit166e3c0d407a967d25d793b6a9db56ffd7a03727 (patch)
tree73b18adca78fda2a4b1ef5a65fe3851e77248d93 /064random.cc
parent16386f766ec1e347db8a19ebfd9cedaa9b281a5f (diff)
downloadmu-166e3c0d407a967d25d793b6a9db56ffd7a03727.tar.gz
2232
Diffstat (limited to '064random.cc')
-rw-r--r--064random.cc22
1 files changed, 17 insertions, 5 deletions
diff --git a/064random.cc b/064random.cc
index 07667cc2..de304714 100644
--- a/064random.cc
+++ b/064random.cc
@@ -2,6 +2,10 @@
 RANDOM,
 :(before "End Primitive Recipe Numbers")
 Recipe_ordinal["random"] = RANDOM;
+:(before "End Primitive Recipe Checks")
+case RANDOM: {
+  break;
+}
 :(before "End Primitive Recipe Implementations")
 case RANDOM: {
   // todo: limited range of numbers, might be imperfectly random
@@ -15,6 +19,10 @@ case RANDOM: {
 MAKE_RANDOM_NONDETERMINISTIC,
 :(before "End Primitive Recipe Numbers")
 Recipe_ordinal["make-random-nondeterministic"] = MAKE_RANDOM_NONDETERMINISTIC;
+:(before "End Primitive Recipe Checks")
+case MAKE_RANDOM_NONDETERMINISTIC: {
+  break;
+}
 :(before "End Primitive Recipe Implementations")
 case MAKE_RANDOM_NONDETERMINISTIC: {
   srand(time(NULL));
@@ -25,16 +33,20 @@ case MAKE_RANDOM_NONDETERMINISTIC: {
 ROUND,
 :(before "End Primitive Recipe Numbers")
 Recipe_ordinal["round"] = ROUND;
-:(before "End Primitive Recipe Implementations")
+:(before "End Primitive Recipe Checks")
 case ROUND: {
-  if (SIZE(ingredients) != 1) {
-    raise << maybe(current_recipe_name()) << "'round' requires exactly one ingredient, but got " << current_instruction().to_string() << '\n' << end();
+  if (SIZE(inst.ingredients) != 1) {
+    raise << maybe(Recipe[r].name) << "'round' requires exactly one ingredient, but got " << inst.to_string() << '\n' << end();
     break;
   }
-  if (!scalar(ingredients.at(0))) {
-    raise << maybe(current_recipe_name()) << "first ingredient of 'round' should be a number, but got " << current_instruction().ingredients.at(0).original_string << '\n' << end();
+  if (!is_mu_scalar(inst.ingredients.at(0))) {
+    raise << maybe(Recipe[r].name) << "first ingredient of 'round' should be a number, but got " << inst.ingredients.at(0).original_string << '\n' << end();
     break;
   }
+  break;
+}
+:(before "End Primitive Recipe Implementations")
+case ROUND: {
   products.resize(1);
   products.at(0).push_back(rint(ingredients.at(0).at(0)));
   break;