summaryrefslogtreecommitdiff
path: root/demos/calc
diff options
context:
space:
mode:
authorKevin Ryde <user42@zip.com.au>2001-12-27 22:57:45 +0100
committerKevin Ryde <user42@zip.com.au>2001-12-27 22:57:45 +0100
commit0727adab3987244c38535e1817e6e8dbf87bc1ac (patch)
tree7397fd42174db44e255f19c0267cfcd28b4dd6c9 /demos/calc
parent591cc494340b205e7182a659a16071212ec973c4 (diff)
downloadgmp-0727adab3987244c38535e1817e6e8dbf87bc1ac.tar.gz
* demos/calc/calc.y: Improve some error messages.
Diffstat (limited to 'demos/calc')
-rw-r--r--demos/calc/calc.y27
1 files changed, 13 insertions, 14 deletions
diff --git a/demos/calc/calc.y b/demos/calc/calc.y
index 49b8fef3b..c30444757 100644
--- a/demos/calc/calc.y
+++ b/demos/calc/calc.y
@@ -131,12 +131,11 @@ mpz_t variable[26];
}
-#define CHECK_UI(name,z) \
- if (! mpz_fits_ulong_p (z)) \
- { \
- fprintf (stderr, \
- "Operand must fit in an \"unsigned long\" for %s\n", name); \
- YYERROR; \
+#define CHECK_UI(name,z) \
+ if (! mpz_fits_ulong_p (z)) \
+ { \
+ fprintf (stderr, "%s too big\n", name); \
+ YYERROR; \
}
%}
@@ -202,13 +201,13 @@ e:
| e '*' e ={ sp--; mpz_mul (sp, sp, sp+1); }
| e '/' e ={ sp--; mpz_fdiv_q (sp, sp, sp+1); }
| e '%' e ={ sp--; mpz_fdiv_r (sp, sp, sp+1); }
- | e '^' e ={ CHECK_UI ("exponentiation", sp);
+ | e '^' e ={ CHECK_UI ("Exponent", sp);
sp--; mpz_pow_ui (sp, sp, mpz_get_ui (sp+1)); }
- | e LSHIFT e ={ CHECK_UI ("lshift", sp);
+ | e LSHIFT e ={ CHECK_UI ("Shift count", sp);
sp--; mpz_mul_2exp (sp, sp, mpz_get_ui (sp+1)); }
- | e RSHIFT e ={ CHECK_UI ("rshift", sp);
+ | e RSHIFT e ={ CHECK_UI ("Shift count", sp);
sp--; mpz_fdiv_q_2exp (sp, sp, mpz_get_ui (sp+1)); }
- | e '!' ={ CHECK_UI ("factorial", sp);
+ | e '!' ={ CHECK_UI ("Factorial", sp);
mpz_fac_ui (sp, mpz_get_ui (sp)); }
| '-' e %prec UMINUS ={ mpz_neg (sp, sp); }
@@ -223,19 +222,19 @@ e:
| e LOR e ={ sp--; mpz_set_ui (sp, mpz_sgn (sp) || mpz_sgn (sp+1)); }
| ABS '(' e ')' ={ mpz_abs (sp, sp); }
- | BIN '(' e ',' e ')' ={ sp--; CHECK_UI ("binomial", sp+1);
+ | BIN '(' e ',' e ')' ={ sp--; CHECK_UI ("Binomial base", sp+1);
mpz_bin_ui (sp, sp, mpz_get_ui (sp+1)); }
- | FIB '(' e ')' ={ CHECK_UI ("fibonacci", sp);
+ | FIB '(' e ')' ={ CHECK_UI ("Fibonacci", sp);
mpz_fib_ui (sp, mpz_get_ui (sp)); }
| GCD '(' gcdlist ')' /* value on stack */
| KRON '(' e ',' e ')' ={ sp--; mpz_set_si (sp,
mpz_kronecker (sp, sp+1)); }
| LCM '(' lcmlist ')' /* value on stack */
- | LUCNUM '(' e ')' ={ CHECK_UI ("lucnum", sp);
+ | LUCNUM '(' e ')' ={ CHECK_UI ("Lucas number", sp);
mpz_lucnum_ui (sp, mpz_get_ui (sp)); }
| NEXTPRIME '(' e ')' ={ mpz_nextprime (sp, sp); }
| POWM '(' e ',' e ',' e ')' ={ sp -= 2; mpz_powm (sp, sp, sp+1, sp+2); }
- | ROOT '(' e ',' e ')' ={ sp--; CHECK_UI ("nth-root", sp+1);
+ | ROOT '(' e ',' e ')' ={ sp--; CHECK_UI ("Nth-root", sp+1);
mpz_root (sp, sp, mpz_get_ui (sp+1)); }
| SQRT '(' e ')' ={ mpz_sqrt (sp, sp); }