diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /support/dktools/test-dk4maami.c |
Initial commit
Diffstat (limited to 'support/dktools/test-dk4maami.c')
-rw-r--r-- | support/dktools/test-dk4maami.c | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/support/dktools/test-dk4maami.c b/support/dktools/test-dk4maami.c new file mode 100644 index 0000000000..dc7bed5797 --- /dev/null +++ b/support/dktools/test-dk4maami.c @@ -0,0 +1,109 @@ +/* + WARNING: This file was generated by dkct. + Changes you make here will be lost if dkct is run again! + You should modify the original source and run dkct on it. + Original source: test-dk4maami.ctr +*/ + +/** @file test-dk4maami.c The test-dk4maami module. +*/ + + +#line 1 "test-dk4maami.ctr" +#include "dk4conf.h" + +#include <stdio.h> + +#include "dk4error.h" +#include "dk4maami.h" + + + +#line 9 "test-dk4maami.ctr" + + +static +void +show_error(dk4_er_t *erp) +{ + if (DK4_E_NONE != erp->ec) { + switch(erp->ec) { + case DK4_E_MATH_OVERFLOW: { + printf(" overflow"); + } break; + case DK4_E_MATH_DIVZERO: { + printf(" divzero"); + } break; + default: { + printf(" %d", erp->ec); + } break; + } + } +} + + + +int main(void) +{ + char buffer[128]; /* Input line buffer */ + dk4_er_t er; /* Error report */ + intmax_t i1; /* First operand */ + intmax_t i2; /* Second operand */ + int exc; /* Exit code */ + int cc; /* Flag: Can continue */ + intmax_t c1; /* First operand as char */ + intmax_t c2; /* Second operand as char */ + intmax_t c3; /* Result as char */ + + + +#line 45 "test-dk4maami.ctr" + + +#line 46 "test-dk4maami.ctr" + exc = 0; + cc = 1; + while((1 == cc) && (fgets(buffer, sizeof(buffer), stdin))) { + if (sscanf(buffer, "%jd %jd", &i1, &i2) == 2) { + c1 = i1; + c2 = i2; + printf("%jd %jd\n", c1, c2); + dk4error_init(&er); + c3 = dk4ma_intmax_t_add(c1, c2, &er); + printf("\t+ %jd", c3); + show_error(&er); + printf("\n"); + + dk4error_init(&er); + c3 = dk4ma_intmax_t_sub(c1, c2, &er); + printf("\t- %jd", c3); + show_error(&er); + printf("\n"); + + dk4error_init(&er); + c3 = dk4ma_intmax_t_mul(c1, c2, &er); + printf("\t* %jd", c3); + show_error(&er); + printf("\n"); + + dk4error_init(&er); + c3 = dk4ma_intmax_t_div(c1, c2, &er); + printf("\t/ %jd", c3); + show_error(&er); + printf("\n"); + } else { + exc = 1; + fprintf(stderr, "test-dk4maac:ERROR: Invalid input line!\n"); + fflush(stderr); + cc = 0; + } + } + + +#line 84 "test-dk4maami.ctr" + + +#line 85 "test-dk4maami.ctr" + return exc; +} + |