diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2015-10-01 17:30:14 -0700 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2015-10-01 17:30:14 -0700 |
commit | 166e3c0d407a967d25d793b6a9db56ffd7a03727 (patch) | |
tree | 73b18adca78fda2a4b1ef5a65fe3851e77248d93 /064random.cc | |
parent | 16386f766ec1e347db8a19ebfd9cedaa9b281a5f (diff) | |
download | mu-166e3c0d407a967d25d793b6a9db56ffd7a03727.tar.gz |
2232
Diffstat (limited to '064random.cc')
-rw-r--r-- | 064random.cc | 22 |
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; |