aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--miscutils/bc.c449
1 files changed, 131 insertions, 318 deletions
diff --git a/miscutils/bc.c b/miscutils/bc.c
index 2570e8313..ccc7cb4d1 100644
--- a/miscutils/bc.c
+++ b/miscutils/bc.c
@@ -551,12 +551,6 @@ enum {
#define bc_lex_kws_POSIX(i) ((1 << (i)) & POSIX_KWORD_MASK)
#endif
-#if ENABLE_FEATURE_BC_SIGNALS || ENABLE_FEATURE_CLEAN_UP
-# define BC_STATUS BcStatus
-#else
-# define BC_STATUS void
-#endif
-
typedef struct BcLex {
const char *buf;
size_t i;
@@ -890,15 +884,17 @@ dc_parse_insts[] = {
#if ENABLE_FEATURE_BC_SIGNALS || ENABLE_FEATURE_CLEAN_UP
# define ERRORS_ARE_FATAL 0
# define ERRORFUNC /*nothing*/
-# define ERROR_RETURN(a) a
-//moved up: # define BC_STATUS BcStatus
+# define IF_ERROR_RETURN_POSSIBLE(a) a
+# define BC_STATUS BcStatus
# define RETURN_STATUS(v) return (v)
+# define COMMA_SUCCESS /*nothing*/
#else
# define ERRORS_ARE_FATAL 1
# define ERRORFUNC NORETURN
-# define ERROR_RETURN(a) /*nothing*/
-//moved up: # define BC_STATUS void
+# define IF_ERROR_RETURN_POSSIBLE(a) /*nothing*/
+# define BC_STATUS void
# define RETURN_STATUS(v) do { ((void)(v)); return; } while (0)
+# define COMMA_SUCCESS ,BC_STATUS_SUCCESS
#endif
#define BC_NUM_NEG(n, neg) ((((ssize_t)(n)) ^ -((ssize_t)(neg))) + (neg))
@@ -968,14 +964,12 @@ static FAST_FUNC BC_STATUS zbc_num_pow(BcNum *a, BcNum *b, BcNum *c, size_t scal
static const BcNumBinaryOp zbc_program_ops[] = {
zbc_num_pow, zbc_num_mul, zbc_num_div, zbc_num_mod, zbc_num_add, zbc_num_sub,
};
-#if ERRORS_ARE_FATAL
-# define zbc_num_add(...) (zbc_num_add(__VA_ARGS__), BC_STATUS_SUCCESS)
-# define zbc_num_sub(...) (zbc_num_sub(__VA_ARGS__), BC_STATUS_SUCCESS)
-# define zbc_num_mul(...) (zbc_num_mul(__VA_ARGS__), BC_STATUS_SUCCESS)
-# define zbc_num_div(...) (zbc_num_div(__VA_ARGS__), BC_STATUS_SUCCESS)
-# define zbc_num_mod(...) (zbc_num_mod(__VA_ARGS__), BC_STATUS_SUCCESS)
-# define zbc_num_pow(...) (zbc_num_pow(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_num_add(...) (zbc_num_add(__VA_ARGS__) COMMA_SUCCESS)
+#define zbc_num_sub(...) (zbc_num_sub(__VA_ARGS__) COMMA_SUCCESS)
+#define zbc_num_mul(...) (zbc_num_mul(__VA_ARGS__) COMMA_SUCCESS)
+#define zbc_num_div(...) (zbc_num_div(__VA_ARGS__) COMMA_SUCCESS)
+#define zbc_num_mod(...) (zbc_num_mod(__VA_ARGS__) COMMA_SUCCESS)
+#define zbc_num_pow(...) (zbc_num_pow(__VA_ARGS__) COMMA_SUCCESS)
static void fflush_and_check(void)
{
@@ -1027,9 +1021,9 @@ static NOINLINE ERRORFUNC int bc_error_fmt(const char *fmt, ...)
bc_verror_msg(fmt, p);
va_end(p);
- if (!ENABLE_FEATURE_CLEAN_UP && !G_ttyin)
- exit(1);
- ERROR_RETURN(return BC_STATUS_FAILURE;)
+ if (ENABLE_FEATURE_CLEAN_UP || G_ttyin)
+ IF_ERROR_RETURN_POSSIBLE(return BC_STATUS_FAILURE);
+ exit(1);
}
#if ENABLE_BC
@@ -1048,9 +1042,9 @@ static NOINLINE int bc_posix_error_fmt(const char *fmt, ...)
// Do we treat non-POSIX constructs as errors?
if (!(option_mask32 & BC_FLAG_S))
return BC_STATUS_SUCCESS; // no, it's a warning
- if (!ENABLE_FEATURE_CLEAN_UP && !G_ttyin)
- exit(1);
- return BC_STATUS_FAILURE;
+ if (ENABLE_FEATURE_CLEAN_UP || G_ttyin)
+ return BC_STATUS_FAILURE;
+ exit(1);
}
#endif
@@ -1061,31 +1055,31 @@ static NOINLINE int bc_posix_error_fmt(const char *fmt, ...)
// Thus, use these shims for the cases when we have no vararg PARAMS:
static ERRORFUNC int bc_error(const char *msg)
{
- ERROR_RETURN(return) bc_error_fmt("%s", msg);
+ IF_ERROR_RETURN_POSSIBLE(return) bc_error_fmt("%s", msg);
}
static ERRORFUNC int bc_error_bad_character(char c)
{
- ERROR_RETURN(return) bc_error_fmt("bad character '%c'", c);
+ IF_ERROR_RETURN_POSSIBLE(return) bc_error_fmt("bad character '%c'", c);
}
static ERRORFUNC int bc_error_bad_expression(void)
{
- ERROR_RETURN(return) bc_error("bad expression");
+ IF_ERROR_RETURN_POSSIBLE(return) bc_error("bad expression");
}
static ERRORFUNC int bc_error_bad_token(void)
{
- ERROR_RETURN(return) bc_error("bad token");
+ IF_ERROR_RETURN_POSSIBLE(return) bc_error("bad token");
}
static ERRORFUNC int bc_error_stack_has_too_few_elements(void)
{
- ERROR_RETURN(return) bc_error("stack has too few elements");
+ IF_ERROR_RETURN_POSSIBLE(return) bc_error("stack has too few elements");
}
static ERRORFUNC int bc_error_variable_is_wrong_type(void)
{
- ERROR_RETURN(return) bc_error("variable is wrong type");
+ IF_ERROR_RETURN_POSSIBLE(return) bc_error("variable is wrong type");
}
static ERRORFUNC int bc_error_nested_read_call(void)
{
- ERROR_RETURN(return) bc_error("read() call inside of a read() call");
+ IF_ERROR_RETURN_POSSIBLE(return) bc_error("read() call inside of a read() call");
}
#if ENABLE_BC
static int bc_POSIX_requires(const char *msg)
@@ -1494,9 +1488,7 @@ static BC_STATUS zbc_num_ulong(BcNum *n, unsigned long *result_p)
RETURN_STATUS(BC_STATUS_SUCCESS);
}
-#if ERRORS_ARE_FATAL
-# define zbc_num_ulong(...) (zbc_num_ulong(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_num_ulong(...) (zbc_num_ulong(__VA_ARGS__) COMMA_SUCCESS)
static void bc_num_ulong2num(BcNum *n, unsigned long val)
{
@@ -1678,9 +1670,7 @@ static BC_STATUS zbc_num_shift(BcNum *n, size_t places)
RETURN_STATUS(BC_STATUS_SUCCESS);
}
-#if ERRORS_ARE_FATAL
-# define zbc_num_shift(...) (zbc_num_shift(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_num_shift(...) (zbc_num_shift(__VA_ARGS__) COMMA_SUCCESS)
static BC_STATUS zbc_num_inv(BcNum *a, BcNum *b, size_t scale)
{
@@ -1693,9 +1683,7 @@ static BC_STATUS zbc_num_inv(BcNum *a, BcNum *b, size_t scale)
RETURN_STATUS(zbc_num_div(&one, a, b, scale));
}
-#if ERRORS_ARE_FATAL
-# define zbc_num_inv(...) (zbc_num_inv(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_num_inv(...) (zbc_num_inv(__VA_ARGS__) COMMA_SUCCESS)
static FAST_FUNC BC_STATUS zbc_num_a(BcNum *a, BcNum *b, BcNum *restrict c, size_t sub)
{
@@ -1832,9 +1820,7 @@ static FAST_FUNC BC_STATUS zbc_num_s(BcNum *a, BcNum *b, BcNum *restrict c, size
static FAST_FUNC BC_STATUS zbc_num_k(BcNum *restrict a, BcNum *restrict b,
BcNum *restrict c)
-#if ERRORS_ARE_FATAL
-# define zbc_num_k(...) (zbc_num_k(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_num_k(...) (zbc_num_k(__VA_ARGS__) COMMA_SUCCESS)
{
BcStatus s;
size_t max = BC_MAX(a->len, b->len), max2 = (max + 1) / 2;
@@ -1982,9 +1968,7 @@ err:
bc_num_free(&cpa);
RETURN_STATUS(s);
}
-#if ERRORS_ARE_FATAL
-# define zbc_num_m(...) (zbc_num_m(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_num_m(...) (zbc_num_m(__VA_ARGS__) COMMA_SUCCESS)
static FAST_FUNC BC_STATUS zbc_num_d(BcNum *a, BcNum *b, BcNum *restrict c, size_t scale)
{
@@ -2059,9 +2043,7 @@ static FAST_FUNC BC_STATUS zbc_num_d(BcNum *a, BcNum *b, BcNum *restrict c, size
RETURN_STATUS(s);
}
-#if ERRORS_ARE_FATAL
-# define zbc_num_d(...) (zbc_num_d(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_num_d(...) (zbc_num_d(__VA_ARGS__) COMMA_SUCCESS)
static FAST_FUNC BC_STATUS zbc_num_r(BcNum *a, BcNum *b, BcNum *restrict c,
BcNum *restrict d, size_t scale, size_t ts)
@@ -2099,9 +2081,7 @@ err:
bc_num_free(&temp);
RETURN_STATUS(s);
}
-#if ERRORS_ARE_FATAL
-# define zbc_num_r(...) (zbc_num_r(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_num_r(...) (zbc_num_r(__VA_ARGS__) COMMA_SUCCESS)
static FAST_FUNC BC_STATUS zbc_num_rem(BcNum *a, BcNum *b, BcNum *restrict c, size_t scale)
{
@@ -2115,9 +2095,7 @@ static FAST_FUNC BC_STATUS zbc_num_rem(BcNum *a, BcNum *b, BcNum *restrict c, si
RETURN_STATUS(s);
}
-#if ERRORS_ARE_FATAL
-# define zbc_num_rem(...) (zbc_num_rem(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_num_rem(...) (zbc_num_rem(__VA_ARGS__) COMMA_SUCCESS)
static FAST_FUNC BC_STATUS zbc_num_p(BcNum *a, BcNum *b, BcNum *restrict c, size_t scale)
{
@@ -2209,9 +2187,7 @@ err:
bc_num_free(&copy);
RETURN_STATUS(s);
}
-#if ERRORS_ARE_FATAL
-# define zbc_num_p(...) (zbc_num_p(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_num_p(...) (zbc_num_p(__VA_ARGS__) COMMA_SUCCESS)
static BC_STATUS zbc_num_binary(BcNum *a, BcNum *b, BcNum *c, size_t scale,
BcNumBinaryOp op, size_t req)
@@ -2244,15 +2220,13 @@ static BC_STATUS zbc_num_binary(BcNum *a, BcNum *b, BcNum *c, size_t scale,
bc_num_expand(c, req);
s = BC_STATUS_SUCCESS;
- ERROR_RETURN(s =) op(ptr_a, ptr_b, c, scale);
+ IF_ERROR_RETURN_POSSIBLE(s =) op(ptr_a, ptr_b, c, scale);
if (init) bc_num_free(&num2);
RETURN_STATUS(s);
}
-#if ERRORS_ARE_FATAL
-# define zbc_num_binary(...) (zbc_num_binary(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_num_binary(...) (zbc_num_binary(__VA_ARGS__) COMMA_SUCCESS)
static bool bc_num_strValid(const char *val, size_t base)
{
@@ -2400,9 +2374,7 @@ static BC_STATUS zbc_num_parse(BcNum *n, const char *val, BcNum *base,
RETURN_STATUS(BC_STATUS_SUCCESS);
}
-#if ERRORS_ARE_FATAL
-# define zbc_num_parse(...) (zbc_num_parse(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_num_parse(...) (zbc_num_parse(__VA_ARGS__) COMMA_SUCCESS)
static BC_STATUS zbc_num_sqrt(BcNum *a, BcNum *restrict b, size_t scale)
{
@@ -2505,9 +2477,7 @@ err:
bc_num_free(&num1);
RETURN_STATUS(s);
}
-#if ERRORS_ARE_FATAL
-# define zbc_num_sqrt(...) (zbc_num_sqrt(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_num_sqrt(...) (zbc_num_sqrt(__VA_ARGS__) COMMA_SUCCESS)
static BC_STATUS zbc_num_divmod(BcNum *a, BcNum *b, BcNum *c, BcNum *d,
size_t scale)
@@ -2534,9 +2504,7 @@ static BC_STATUS zbc_num_divmod(BcNum *a, BcNum *b, BcNum *c, BcNum *d,
RETURN_STATUS(s);
}
-#if ERRORS_ARE_FATAL
-# define zbc_num_divmod(...) (zbc_num_divmod(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_num_divmod(...) (zbc_num_divmod(__VA_ARGS__) COMMA_SUCCESS)
#if ENABLE_DC
static BC_STATUS zbc_num_modexp(BcNum *a, BcNum *b, BcNum *c, BcNum *restrict d)
@@ -2590,9 +2558,7 @@ err:
bc_num_free(&base);
RETURN_STATUS(s);
}
-#if ERRORS_ARE_FATAL
-# define zbc_num_modexp(...) (zbc_num_modexp(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_num_modexp(...) (zbc_num_modexp(__VA_ARGS__) COMMA_SUCCESS)
#endif // ENABLE_DC
#if ENABLE_BC
@@ -2613,9 +2579,7 @@ static BC_STATUS zbc_func_insert(BcFunc *f, char *name, bool var)
RETURN_STATUS(BC_STATUS_SUCCESS);
}
-#if ERRORS_ARE_FATAL
-# define zbc_func_insert(...) (zbc_func_insert(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_func_insert(...) (zbc_func_insert(__VA_ARGS__) COMMA_SUCCESS)
#endif
static void bc_func_init(BcFunc *f)
@@ -2835,9 +2799,7 @@ static BC_STATUS zbc_lex_number(BcLex *l, char start)
RETURN_STATUS(BC_STATUS_SUCCESS);
}
-#if ERRORS_ARE_FATAL
-# define zbc_lex_number(...) (zbc_lex_number(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_lex_number(...) (zbc_lex_number(__VA_ARGS__) COMMA_SUCCESS)
static void bc_lex_name(BcLex *l)
{
@@ -2895,6 +2857,7 @@ static BC_STATUS zcommon_lex_token(BcLex *l)
}
IF_DC(RETURN_STATUS(zdc_lex_token(l));)
}
+#define zcommon_lex_token(...) (zcommon_lex_token(__VA_ARGS__) COMMA_SUCCESS)
static bool bc_lex_more_input(BcLex *l)
{
@@ -2997,15 +2960,13 @@ static BC_STATUS zbc_lex_next(BcLex *l)
dbg_lex("next string to parse:'%.*s'",
(int)(strchrnul(l->buf + l->i, '\n') - (l->buf + l->i)),
l->buf + l->i);
- ERROR_RETURN(s =) zcommon_lex_token(l);
+ s = zcommon_lex_token(l);
} while (!s && l->t.t == BC_LEX_WHITESPACE);
dbg_lex("l->t.t from string:%d", l->t.t);
RETURN_STATUS(s);
}
-#if ERRORS_ARE_FATAL
-# define zbc_lex_next(...) (zbc_lex_next(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_lex_next(...) (zbc_lex_next(__VA_ARGS__) COMMA_SUCCESS)
static BC_STATUS zbc_lex_skip_if_at_NLINE(BcLex *l)
{
@@ -3013,9 +2974,7 @@ static BC_STATUS zbc_lex_skip_if_at_NLINE(BcLex *l)
RETURN_STATUS(zbc_lex_next(l));
RETURN_STATUS(BC_STATUS_SUCCESS);
}
-#if ERRORS_ARE_FATAL
-# define zbc_lex_skip_if_at_NLINE(...) (zbc_lex_skip_if_at_NLINE(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_lex_skip_if_at_NLINE(...) (zbc_lex_skip_if_at_NLINE(__VA_ARGS__) COMMA_SUCCESS)
static BC_STATUS zbc_lex_next_and_skip_NLINE(BcLex *l)
{
@@ -3026,9 +2985,7 @@ static BC_STATUS zbc_lex_next_and_skip_NLINE(BcLex *l)
s = zbc_lex_skip_if_at_NLINE(l);
RETURN_STATUS(s);
}
-#if ERRORS_ARE_FATAL
-# define zbc_lex_next_and_skip_NLINE(...) (zbc_lex_next_and_skip_NLINE(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_lex_next_and_skip_NLINE(...) (zbc_lex_next_and_skip_NLINE(__VA_ARGS__) COMMA_SUCCESS)
static BC_STATUS zbc_lex_text_init(BcLex *l, const char *text)
{
@@ -3038,9 +2995,7 @@ static BC_STATUS zbc_lex_text_init(BcLex *l, const char *text)
l->t.t = l->t.last = BC_LEX_INVALID;
RETURN_STATUS(zbc_lex_next(l));
}
-#if ERRORS_ARE_FATAL
-# define zbc_lex_text_init(...) (zbc_lex_text_init(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_lex_text_init(...) (zbc_lex_text_init(__VA_ARGS__) COMMA_SUCCESS)
#if ENABLE_BC
static BC_STATUS zbc_lex_identifier(BcLex *l)
@@ -3063,7 +3018,7 @@ static BC_STATUS zbc_lex_identifier(BcLex *l)
l->t.t = BC_LEX_KEY_1st_keyword + i;
if (!bc_lex_kws_POSIX(i)) {
s = bc_posix_error_fmt("%sthe '%.8s' keyword", "POSIX does not allow ", bc_lex_kws[i].name8);
- ERROR_RETURN(if (s) RETURN_STATUS(s);)
+ IF_ERROR_RETURN_POSSIBLE(if (s) RETURN_STATUS(s));
}
// We minus 1 because the index has already been incremented.
@@ -3084,9 +3039,7 @@ static BC_STATUS zbc_lex_identifier(BcLex *l)
RETURN_STATUS(s);
}
-#if ERRORS_ARE_FATAL
-# define zbc_lex_identifier(...) (zbc_lex_identifier(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_lex_identifier(...) (zbc_lex_identifier(__VA_ARGS__) COMMA_SUCCESS)
static BC_STATUS zbc_lex_string(BcLex *l)
{
@@ -3117,9 +3070,7 @@ static BC_STATUS zbc_lex_string(BcLex *l)
RETURN_STATUS(BC_STATUS_SUCCESS);
}
-#if ERRORS_ARE_FATAL
-# define zbc_lex_string(...) (zbc_lex_string(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_lex_string(...) (zbc_lex_string(__VA_ARGS__) COMMA_SUCCESS)
static void bc_lex_assign(BcLex *l, unsigned with_and_without)
{
@@ -3161,9 +3112,7 @@ static BC_STATUS zbc_lex_comment(BcLex *l)
RETURN_STATUS(BC_STATUS_SUCCESS);
}
-#if ERRORS_ARE_FATAL
-# define zbc_lex_comment(...) (zbc_lex_comment(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_lex_comment(...) (zbc_lex_comment(__VA_ARGS__) COMMA_SUCCESS)
static BC_STATUS zbc_lex_token(BcLex *l)
{
@@ -3192,7 +3141,7 @@ static BC_STATUS zbc_lex_token(BcLex *l)
bc_lex_assign(l, BC_LEX_OP_REL_NE, BC_LEX_OP_BOOL_NOT);
if (l->t.t == BC_LEX_OP_BOOL_NOT) {
s = bc_POSIX_does_not_allow_bool_ops_this_is_bad("!");
- ERROR_RETURN(if (s) RETURN_STATUS(s);)
+ IF_ERROR_RETURN_POSSIBLE(if (s) RETURN_STATUS(s));
}
break;
case '"':
@@ -3200,7 +3149,7 @@ static BC_STATUS zbc_lex_token(BcLex *l)
break;
case '#':
s = bc_POSIX_does_not_allow("'#' script comments");
- ERROR_RETURN(if (s) RETURN_STATUS(s);)
+ IF_ERROR_RETURN_POSSIBLE(if (s) RETURN_STATUS(s));
bc_lex_lineComment(l);
break;
case '%':
@@ -3210,7 +3159,7 @@ static BC_STATUS zbc_lex_token(BcLex *l)
c2 = l->buf[l->i];
if (c2 == '&') {
s = bc_POSIX_does_not_allow_bool_ops_this_is_bad("&&");
- ERROR_RETURN(if (s) RETURN_STATUS(s);)
+ IF_ERROR_RETURN_POSSIBLE(if (s) RETURN_STATUS(s));
++l->i;
l->t.t = BC_LEX_OP_BOOL_AND;
} else {
@@ -3339,7 +3288,7 @@ static BC_STATUS zbc_lex_token(BcLex *l)
c2 = l->buf[l->i];
if (c2 == '|') {
s = bc_POSIX_does_not_allow_bool_ops_this_is_bad("||");
- ERROR_RETURN(if (s) RETURN_STATUS(s);)
+ IF_ERROR_RETURN_POSSIBLE(if (s) RETURN_STATUS(s));
++l->i;
l->t.t = BC_LEX_OP_BOOL_OR;
} else {
@@ -3376,9 +3325,7 @@ static BC_STATUS zdc_lex_register(BcLex *l)
RETURN_STATUS(BC_STATUS_SUCCESS);
}
-#if ERRORS_ARE_FATAL
-# define zdc_lex_register(...) (zdc_lex_register(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zdc_lex_register(...) (zdc_lex_register(__VA_ARGS__) COMMA_SUCCESS)
static BC_STATUS zdc_lex_string(BcLex *l)
{
@@ -3415,9 +3362,7 @@ static BC_STATUS zdc_lex_string(BcLex *l)
RETURN_STATUS(BC_STATUS_SUCCESS);
}
-#if ERRORS_ARE_FATAL
-# define zdc_lex_string(...) (zdc_lex_string(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zdc_lex_string(...) (zdc_lex_string(__VA_ARGS__) COMMA_SUCCESS)
static BC_STATUS zdc_lex_token(BcLex *l)
{
@@ -3578,6 +3523,7 @@ static BC_STATUS zcommon_parse(BcParse *p)
}
IF_DC(RETURN_STATUS(zdc_parse_parse(p));)
}
+#define zcommon_parse(...) (zcommon_parse(__VA_ARGS__) COMMA_SUCCESS)
static BC_STATUS zbc_parse_text_init(BcParse *p, const char *text)
{
@@ -3585,9 +3531,7 @@ static BC_STATUS zbc_parse_text_init(BcParse *p, const char *text)
RETURN_STATUS(zbc_lex_text_init(&p->l, text));
}
-#if ERRORS_ARE_FATAL
-# define zbc_parse_text_init(...) (zbc_parse_text_init(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_parse_text_init(...) (zbc_parse_text_init(__VA_ARGS__) COMMA_SUCCESS)
// Called when parsing or execution detects a failure,
// resets execution structures.
@@ -3665,18 +3609,14 @@ static void bc_parse_create(BcParse *p, size_t func)
static BC_STATUS zbc_parse_stmt_possibly_auto(BcParse *p, bool auto_allowed);
static BC_STATUS zbc_parse_expr(BcParse *p, uint8_t flags, BcParseNext next);
static BcStatus bc_parse_expr_empty_ok(BcParse *p, uint8_t flags, BcParseNext next);
-#if ERRORS_ARE_FATAL
-# define zbc_parse_expr(...) (zbc_parse_expr(__VA_ARGS__), BC_STATUS_SUCCESS)
-# define zbc_parse_stmt_possibly_auto(...) (zbc_parse_stmt_possibly_auto(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_parse_expr(...) (zbc_parse_expr(__VA_ARGS__) COMMA_SUCCESS)
+#define zbc_parse_stmt_possibly_auto(...) (zbc_parse_stmt_possibly_auto(__VA_ARGS__) COMMA_SUCCESS)
static BC_STATUS zbc_parse_stmt(BcParse *p)
{
RETURN_STATUS(zbc_parse_stmt_possibly_auto(p, false));
}
-#if ERRORS_ARE_FATAL
-# define zbc_parse_stmt(...) (zbc_parse_stmt(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_parse_stmt(...) (zbc_parse_stmt(__VA_ARGS__) COMMA_SUCCESS)
static BC_STATUS zbc_parse_stmt_allow_NLINE_before(BcParse *p, const char *after_X)
{
@@ -3689,9 +3629,7 @@ static BC_STATUS zbc_parse_stmt_allow_NLINE_before(BcParse *p, const char *after
RETURN_STATUS(zbc_parse_stmt(p));
}
-#if ERRORS_ARE_FATAL
-# define zbc_parse_stmt_allow_NLINE_before(...) (zbc_parse_stmt_allow_NLINE_before(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_parse_stmt_allow_NLINE_before(...) (zbc_parse_stmt_allow_NLINE_before(__VA_ARGS__) COMMA_SUCCESS)
static void bc_parse_operator(BcParse *p, BcLexType type, size_t start,
size_t *nexprs)
@@ -3737,9 +3675,7 @@ static BC_STATUS zbc_parse_rightParen(BcParse *p, size_t ops_bgn, size_t *nexs)
RETURN_STATUS(zbc_lex_next(&p->l));
}
-#if ERRORS_ARE_FATAL
-# define zbc_parse_rightParen(...) (zbc_parse_rightParen(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_parse_rightParen(...) (zbc_parse_rightParen(__VA_ARGS__) COMMA_SUCCESS)
static BC_STATUS zbc_parse_params(BcParse *p, uint8_t flags)
{
@@ -3769,9 +3705,7 @@ static BC_STATUS zbc_parse_params(BcParse *p, uint8_t flags)
RETURN_STATUS(BC_STATUS_SUCCESS);
}
-#if ERRORS_ARE_FATAL
-# define zbc_parse_params(...) (zbc_parse_params(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_parse_params(...) (zbc_parse_params(__VA_ARGS__) COMMA_SUCCESS)
static BC_STATUS zbc_parse_call(BcParse *p, char *name, uint8_t flags)
{
@@ -3808,9 +3742,7 @@ err:
free(name);
RETURN_STATUS(s);
}
-#if ERRORS_ARE_FATAL
-# define zbc_parse_call(...) (zbc_parse_call(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_parse_call(...) (zbc_parse_call(__VA_ARGS__) COMMA_SUCCESS)
static BC_STATUS zbc_parse_name(BcParse *p, BcInst *type, uint8_t flags)
{
@@ -3863,9 +3795,7 @@ err:
free(name);
RETURN_STATUS(s);
}
-#if ERRORS_ARE_FATAL
-# define zbc_parse_name(...) (zbc_parse_name(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_parse_name(...) (zbc_parse_name(__VA_ARGS__) COMMA_SUCCESS)
static BC_STATUS zbc_parse_read(BcParse *p)
{
@@ -3883,9 +3813,7 @@ static BC_STATUS zbc_parse_read(BcParse *p)
RETURN_STATUS(zbc_lex_next(&p->l));
}
-#if ERRORS_ARE_FATAL
-# define zbc_parse_read(...) (zbc_parse_read(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_parse_read(...) (zbc_parse_read(__VA_ARGS__) COMMA_SUCCESS)
static BC_STATUS zbc_parse_builtin(BcParse *p, BcLexType type, uint8_t flags,
BcInst *prev)
@@ -3911,9 +3839,7 @@ static BC_STATUS zbc_parse_builtin(BcParse *p, BcLexType type, uint8_t flags,
RETURN_STATUS(zbc_lex_next(&p->l));
}
-#if ERRORS_ARE_FATAL
-# define zbc_parse_builtin(...) (zbc_parse_builtin(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_parse_builtin(...) (zbc_parse_builtin(__VA_ARGS__) COMMA_SUCCESS)
static BC_STATUS zbc_parse_scale(BcParse *p, BcInst *type, uint8_t flags)
{
@@ -3942,9 +3868,7 @@ static BC_STATUS zbc_parse_scale(BcParse *p, BcInst *type, uint8_t flags)
RETURN_STATUS(zbc_lex_next(&p->l));
}
-#if ERRORS_ARE_FATAL
-# define zbc_parse_scale(...) (zbc_parse_scale(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_parse_scale(...) (zbc_parse_scale(__VA_ARGS__) COMMA_SUCCESS)
static BC_STATUS zbc_parse_incdec(BcParse *p, BcInst *prev, bool *paren_expr,
size_t *nexprs, uint8_t flags)
@@ -4002,9 +3926,7 @@ static BC_STATUS zbc_parse_incdec(BcParse *p, BcInst *prev, bool *paren_expr,
RETURN_STATUS(s);
}
-#if ERRORS_ARE_FATAL
-# define zbc_parse_incdec(...) (zbc_parse_incdec(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_parse_incdec(...) (zbc_parse_incdec(__VA_ARGS__) COMMA_SUCCESS)
static BC_STATUS zbc_parse_minus(BcParse *p, BcInst *prev, size_t ops_bgn,
bool rparen, size_t *nexprs)
@@ -4031,9 +3953,7 @@ static BC_STATUS zbc_parse_minus(BcParse *p, BcInst *prev, size_t ops_bgn,
RETURN_STATUS(s);
}
-#if ERRORS_ARE_FATAL
-# define zbc_parse_minus(...) (zbc_parse_minus(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_parse_minus(...) (zbc_parse_minus(__VA_ARGS__) COMMA_SUCCESS)
static BC_STATUS zbc_parse_string(BcParse *p, char inst)
{
@@ -4046,9 +3966,7 @@ static BC_STATUS zbc_parse_string(BcParse *p, char inst)
RETURN_STATUS(zbc_lex_next(&p->l));
}
-#if ERRORS_ARE_FATAL
-# define zbc_parse_string(...) (zbc_parse_string(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_parse_string(...) (zbc_parse_string(__VA_ARGS__) COMMA_SUCCESS)
static BC_STATUS zbc_parse_print(BcParse *p)
{
@@ -4072,9 +3990,7 @@ static BC_STATUS zbc_parse_print(BcParse *p)
RETURN_STATUS(s);
}
-#if ERRORS_ARE_FATAL
-# define zbc_parse_print(...) (zbc_parse_print(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_parse_print(...) (zbc_parse_print(__VA_ARGS__) COMMA_SUCCESS)
static BC_STATUS zbc_parse_return(BcParse *p)
{
@@ -4099,7 +4015,7 @@ static BC_STATUS zbc_parse_return(BcParse *p)
if (!paren || p->l.t.last != BC_LEX_RPAREN) {
s = bc_POSIX_requires("parentheses around return expressions");
- ERROR_RETURN(if (s) RETURN_STATUS(s);)
+ IF_ERROR_RETURN_POSSIBLE(if (s) RETURN_STATUS(s));
}
bc_parse_push(p, BC_INST_RET);
@@ -4108,9 +4024,7 @@ static BC_STATUS zbc_parse_return(BcParse *p)
dbg_lex_done("%s:%d done", __func__, __LINE__);
RETURN_STATUS(s);
}
-#if ERRORS_ARE_FATAL
-# define zbc_parse_return(...) (zbc_parse_return(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_parse_return(...) (zbc_parse_return(__VA_ARGS__) COMMA_SUCCESS)
static void rewrite_label_to_current(BcParse *p, size_t idx)
{
@@ -4167,9 +4081,7 @@ static BC_STATUS zbc_parse_if(BcParse *p)
dbg_lex_done("%s:%d done", __func__, __LINE__);
RETURN_STATUS(s);
}
-#if ERRORS_ARE_FATAL
-# define zbc_parse_if(...) (zbc_parse_if(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_parse_if(...) (zbc_parse_if(__VA_ARGS__) COMMA_SUCCESS)
static BC_STATUS zbc_parse_while(BcParse *p)
{
@@ -4212,9 +4124,7 @@ static BC_STATUS zbc_parse_while(BcParse *p)
RETURN_STATUS(s);
}
-#if ERRORS_ARE_FATAL
-# define zbc_parse_while(...) (zbc_parse_while(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_parse_while(...) (zbc_parse_while(__VA_ARGS__) COMMA_SUCCESS)
static BC_STATUS zbc_parse_for(BcParse *p)
{
@@ -4290,9 +4200,7 @@ static BC_STATUS zbc_parse_for(BcParse *p)
RETURN_STATUS(BC_STATUS_SUCCESS);
}
-#if ERRORS_ARE_FATAL
-# define zbc_parse_for(...) (zbc_parse_for(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_parse_for(...) (zbc_parse_for(__VA_ARGS__) COMMA_SUCCESS)
static BC_STATUS zbc_parse_break_or_continue(BcParse *p, BcLexType type)
{
@@ -4317,9 +4225,7 @@ static BC_STATUS zbc_parse_break_or_continue(BcParse *p, BcLexType type)
RETURN_STATUS(zbc_lex_next(&p->l));
}
-#if ERRORS_ARE_FATAL
-# define zbc_parse_break_or_continue(...) (zbc_parse_break_or_continue(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_parse_break_or_continue(...) (zbc_parse_break_or_continue(__VA_ARGS__) COMMA_SUCCESS)
static BC_STATUS zbc_parse_funcdef(BcParse *p)
{
@@ -4406,9 +4312,7 @@ err:
free(name);
RETURN_STATUS(s);
}
-#if ERRORS_ARE_FATAL
-# define zbc_parse_funcdef(...) (zbc_parse_funcdef(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_parse_funcdef(...) (zbc_parse_funcdef(__VA_ARGS__) COMMA_SUCCESS)
static BC_STATUS zbc_parse_auto(BcParse *p)
{
@@ -4466,9 +4370,7 @@ err:
dbg_lex_done("%s:%d done (ERROR)", __func__, __LINE__);
RETURN_STATUS(s);
}
-#if ERRORS_ARE_FATAL
-# define zbc_parse_auto(...) (zbc_parse_auto(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_parse_auto(...) (zbc_parse_auto(__VA_ARGS__) COMMA_SUCCESS)
#undef zbc_parse_stmt_possibly_auto
static BC_STATUS zbc_parse_stmt_possibly_auto(BcParse *p, bool auto_allowed)
@@ -4586,9 +4488,7 @@ static BC_STATUS zbc_parse_stmt_possibly_auto(BcParse *p, bool auto_allowed)
dbg_lex_done("%s:%d done", __func__, __LINE__);
RETURN_STATUS(s);
}
-#if ERRORS_ARE_FATAL
-# define zbc_parse_stmt_possibly_auto(...) (zbc_parse_stmt_possibly_auto(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_parse_stmt_possibly_auto(...) (zbc_parse_stmt_possibly_auto(__VA_ARGS__) COMMA_SUCCESS)
static BC_STATUS zbc_parse_stmt_or_funcdef(BcParse *p)
{
@@ -4608,9 +4508,7 @@ static BC_STATUS zbc_parse_stmt_or_funcdef(BcParse *p)
dbg_lex_done("%s:%d done", __func__, __LINE__);
RETURN_STATUS(s);
}
-#if ERRORS_ARE_FATAL
-# define zbc_parse_stmt_or_funcdef(...) (zbc_parse_stmt_or_funcdef(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_parse_stmt_or_funcdef(...) (zbc_parse_stmt_or_funcdef(__VA_ARGS__) COMMA_SUCCESS)
// This is not a "z" function: can also return BC_STATUS_PARSE_EMPTY_EXP
static BcStatus bc_parse_expr_empty_ok(BcParse *p, uint8_t flags, BcParseNext next)
@@ -4864,11 +4762,11 @@ static BcStatus bc_parse_expr_empty_ok(BcParse *p, uint8_t flags, BcParseNext ne
if (!(flags & BC_PARSE_REL) && nrelops) {
s = bc_POSIX_does_not_allow("comparison operators outside if or loops");
- ERROR_RETURN(if (s) return s;)
+ IF_ERROR_RETURN_POSSIBLE(if (s) return s);
}
else if ((flags & BC_PARSE_REL) && nrelops > 1) {
s = bc_POSIX_requires("exactly one comparison operator per condition");
- ERROR_RETURN(if (s) return s;)
+ IF_ERROR_RETURN_POSSIBLE(if (s) return s);
}
if (flags & BC_PARSE_PRINT) {
@@ -4890,9 +4788,7 @@ static BC_STATUS zbc_parse_expr(BcParse *p, uint8_t flags, BcParseNext next)
RETURN_STATUS(bc_error("empty expression"));
RETURN_STATUS(s);
}
-#if ERRORS_ARE_FATAL
-# define zbc_parse_expr(...) (zbc_parse_expr(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_parse_expr(...) (zbc_parse_expr(__VA_ARGS__) COMMA_SUCCESS)
#endif // ENABLE_BC
@@ -4912,9 +4808,7 @@ static BC_STATUS zdc_parse_register(BcParse *p)
RETURN_STATUS(s);
}
-#if ERRORS_ARE_FATAL
-# define zdc_parse_register(...) (zdc_parse_register(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zdc_parse_register(...) (zdc_parse_register(__VA_ARGS__) COMMA_SUCCESS)
static BC_STATUS zdc_parse_string(BcParse *p)
{
@@ -4932,9 +4826,7 @@ static BC_STATUS zdc_parse_string(BcParse *p)
RETURN_STATUS(zbc_lex_next(&p->l));
}
-#if ERRORS_ARE_FATAL
-# define zdc_parse_string(...) (zdc_parse_string(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zdc_parse_string(...) (zdc_parse_string(__VA_ARGS__) COMMA_SUCCESS)
static BC_STATUS zdc_parse_mem(BcParse *p, uint8_t inst, bool name, bool store)
{
@@ -4954,9 +4846,7 @@ static BC_STATUS zdc_parse_mem(BcParse *p, uint8_t inst, bool name, bool store)
RETURN_STATUS(zbc_lex_next(&p->l));
}
-#if ERRORS_ARE_FATAL
-# define zdc_parse_mem(...) (zdc_parse_mem(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zdc_parse_mem(...) (zdc_parse_mem(__VA_ARGS__) COMMA_SUCCESS)
static BC_STATUS zdc_parse_cond(BcParse *p, uint8_t inst)
{
@@ -4981,9 +4871,7 @@ static BC_STATUS zdc_parse_cond(BcParse *p, uint8_t inst)
RETURN_STATUS(s);
}
-#if ERRORS_ARE_FATAL
-# define zdc_parse_cond(...) (zdc_parse_cond(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zdc_parse_cond(...) (zdc_parse_cond(__VA_ARGS__) COMMA_SUCCESS)
static BC_STATUS zdc_parse_token(BcParse *p, BcLexType t, uint8_t flags)
{
@@ -5055,9 +4943,7 @@ static BC_STATUS zdc_parse_token(BcParse *p, BcLexType t, uint8_t flags)
RETURN_STATUS(s);
}
-#if ERRORS_ARE_FATAL
-# define zdc_parse_token(...) (zdc_parse_token(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zdc_parse_token(...) (zdc_parse_token(__VA_ARGS__) COMMA_SUCCESS)
static BC_STATUS zdc_parse_expr(BcParse *p, uint8_t flags)
{
@@ -5080,9 +4966,7 @@ static BC_STATUS zdc_parse_expr(BcParse *p, uint8_t flags)
RETURN_STATUS(s);
}
-#if ERRORS_ARE_FATAL
-# define zdc_parse_expr(...) (zdc_parse_expr(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zdc_parse_expr(...) (zdc_parse_expr(__VA_ARGS__) COMMA_SUCCESS)
static BC_STATUS zdc_parse_parse(BcParse *p)
{
@@ -5100,9 +4984,7 @@ static BC_STATUS zdc_parse_parse(BcParse *p)
RETURN_STATUS(s);
}
-#if ERRORS_ARE_FATAL
-# define zdc_parse_parse(...) (zdc_parse_parse(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zdc_parse_parse(...) (zdc_parse_parse(__VA_ARGS__) COMMA_SUCCESS)
#endif // ENABLE_DC
@@ -5114,9 +4996,7 @@ static BC_STATUS zcommon_parse_expr(BcParse *p, uint8_t flags)
IF_DC(RETURN_STATUS(zdc_parse_expr(p, flags)));
}
}
-#if ERRORS_ARE_FATAL
-# define zcommon_parse_expr(...) (zcommon_parse_expr(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zcommon_parse_expr(...) (zcommon_parse_expr(__VA_ARGS__) COMMA_SUCCESS)
static BcVec* bc_program_search(char *id, bool var)
{
@@ -5216,9 +5096,7 @@ static BC_STATUS zbc_program_num(BcResult *r, BcNum **num, bool hex)
RETURN_STATUS(BC_STATUS_SUCCESS);
}
-#if ERRORS_ARE_FATAL
-# define zbc_program_num(...) (zbc_program_num(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_program_num(...) (zbc_program_num(__VA_ARGS__) COMMA_SUCCESS)
static BC_STATUS zbc_program_binOpPrep(BcResult **l, BcNum **ln,
BcResult **r, BcNum **rn, bool assign)
@@ -5256,9 +5134,7 @@ static BC_STATUS zbc_program_binOpPrep(BcResult **l, BcNum **ln,
RETURN_STATUS(s);
}
-#if ERRORS_ARE_FATAL
-# define zbc_program_binOpPrep(...) (zbc_program_binOpPrep(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_program_binOpPrep(...) (zbc_program_binOpPrep(__VA_ARGS__) COMMA_SUCCESS)
static void bc_program_binOpRetire(BcResult *r)
{
@@ -5284,9 +5160,7 @@ static BC_STATUS zbc_program_prep(BcResult **r, BcNum **n)
RETURN_STATUS(s);
}
-#if ERRORS_ARE_FATAL
-# define zbc_program_prep(...) (zbc_program_prep(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_program_prep(...) (zbc_program_prep(__VA_ARGS__) COMMA_SUCCESS)
static void bc_program_retire(BcResult *r, BcResultType t)
{
@@ -5306,7 +5180,7 @@ static BC_STATUS zbc_program_op(char inst)
bc_num_init_DEF_SIZE(&res.d.n);
s = BC_STATUS_SUCCESS;
- ERROR_RETURN(s =) zbc_program_ops[inst - BC_INST_POWER](n1, n2, &res.d.n, G.prog.scale);
+ IF_ERROR_RETURN_POSSIBLE(s =) zbc_program_ops[inst - BC_INST_POWER](n1, n2, &res.d.n, G.prog.scale);
if (s) goto err;
bc_program_binOpRetire(&res);
@@ -5316,9 +5190,7 @@ err:
bc_num_free(&res.d.n);
RETURN_STATUS(s);
}
-#if ERRORS_ARE_FATAL
-# define zbc_program_op(...) (zbc_program_op(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_program_op(...) (zbc_program_op(__VA_ARGS__) COMMA_SUCCESS)
static BC_STATUS zbc_program_read(void)
{
@@ -5367,15 +5239,12 @@ static BC_STATUS zbc_program_read(void)
exec_err:
bc_parse_free(&parse);
-//io_err:
G.in_read = 0;
G.prog.file = sv_file;
bc_vec_free(&buf);
RETURN_STATUS(s);
}
-#if ERRORS_ARE_FATAL
-# define zbc_program_read(...) (zbc_program_read(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_program_read(...) (zbc_program_read(__VA_ARGS__) COMMA_SUCCESS)
static size_t bc_program_index(char *code, size_t *bgn)
{
@@ -5584,9 +5453,7 @@ err:
bc_vec_free(&stack);
RETURN_STATUS(s);
}
-#if ERRORS_ARE_FATAL
-# define zbc_num_printNum(...) (zbc_num_printNum(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_num_printNum(...) (zbc_num_printNum(__VA_ARGS__) COMMA_SUCCESS)
static BC_STATUS zbc_num_printBase(BcNum *n)
{
@@ -5617,18 +5484,14 @@ static BC_STATUS zbc_num_printBase(BcNum *n)
RETURN_STATUS(s);
}
-#if ERRORS_ARE_FATAL
-# define zbc_num_printBase(...) (zbc_num_printBase(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_num_printBase(...) (zbc_num_printBase(__VA_ARGS__) COMMA_SUCCESS)
#if ENABLE_DC
static BC_STATUS zbc_num_stream(BcNum *n, BcNum *base)
{
RETURN_STATUS(zbc_num_printNum(n, base, 1, bc_num_printChar));
}
-#if ERRORS_ARE_FATAL
-# define zbc_num_stream(...) (zbc_num_stream(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_num_stream(...) (zbc_num_stream(__VA_ARGS__) COMMA_SUCCESS)
#endif
static BC_STATUS zbc_num_print(BcNum *n, bool newline)
@@ -5653,9 +5516,7 @@ static BC_STATUS zbc_num_print(BcNum *n, bool newline)
RETURN_STATUS(s);
}
-#if ERRORS_ARE_FATAL
-# define zbc_num_print(...) (zbc_num_print(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_num_print(...) (zbc_num_print(__VA_ARGS__) COMMA_SUCCESS)
static BC_STATUS zbc_program_print(char inst, size_t idx)
{
@@ -5701,9 +5562,7 @@ static BC_STATUS zbc_program_print(char inst, size_t idx)
RETURN_STATUS(s);
}
-#if ERRORS_ARE_FATAL
-# define zbc_program_print(...) (zbc_program_print(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_program_print(...) (zbc_program_print(__VA_ARGS__) COMMA_SUCCESS)
static BC_STATUS zbc_program_negate(void)
{
@@ -5722,9 +5581,7 @@ static BC_STATUS zbc_program_negate(void)
RETURN_STATUS(s);
}
-#if ERRORS_ARE_FATAL
-# define zbc_program_negate(...) (zbc_program_negate(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_program_negate(...) (zbc_program_negate(__VA_ARGS__) COMMA_SUCCESS)
static BC_STATUS zbc_program_logical(char inst)
{
@@ -5773,9 +5630,7 @@ static BC_STATUS zbc_program_logical(char inst)
RETURN_STATUS(s);
}
-#if ERRORS_ARE_FATAL
-# define zbc_program_logical(...) (zbc_program_logical(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_program_logical(...) (zbc_program_logical(__VA_ARGS__) COMMA_SUCCESS)
#if ENABLE_DC
static BC_STATUS zbc_program_assignStr(BcResult *r, BcVec *v,
@@ -5802,9 +5657,7 @@ static BC_STATUS zbc_program_assignStr(BcResult *r, BcVec *v,
RETURN_STATUS(BC_STATUS_SUCCESS);
}
-#if ERRORS_ARE_FATAL
-# define zbc_program_assignStr(...) (zbc_program_assignStr(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_program_assignStr(...) (zbc_program_assignStr(__VA_ARGS__) COMMA_SUCCESS)
#endif // ENABLE_DC
static BC_STATUS zbc_program_copyToVar(char *name, bool var)
@@ -5849,9 +5702,7 @@ static BC_STATUS zbc_program_copyToVar(char *name, bool var)
RETURN_STATUS(s);
}
-#if ERRORS_ARE_FATAL
-# define zbc_program_copyToVar(...) (zbc_program_copyToVar(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_program_copyToVar(...) (zbc_program_copyToVar(__VA_ARGS__) COMMA_SUCCESS)
static BC_STATUS zbc_program_assign(char inst)
{
@@ -5894,7 +5745,7 @@ static BC_STATUS zbc_program_assign(char inst)
bc_num_copy(l, r);
else {
s = BC_STATUS_SUCCESS;
- ERROR_RETURN(s =) zbc_program_ops[inst - BC_INST_ASSIGN_POWER](l, r, l, G.prog.scale);
+ IF_ERROR_RETURN_POSSIBLE(s =) zbc_program_ops[inst - BC_INST_ASSIGN_POWER](l, r, l, G.prog.scale);
}
if (s) RETURN_STATUS(s);
#else
@@ -5942,9 +5793,7 @@ static BC_STATUS zbc_program_assign(char inst)
RETURN_STATUS(s);
}
-#if ERRORS_ARE_FATAL
-# define zbc_program_assign(...) (zbc_program_assign(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_program_assign(...) (zbc_program_assign(__VA_ARGS__) COMMA_SUCCESS)
#if !ENABLE_DC
#define bc_program_pushVar(code, bgn, pop, copy) \
@@ -5996,11 +5845,7 @@ static BC_STATUS bc_program_pushVar(char *code, size_t *bgn,
RETURN_STATUS(BC_STATUS_SUCCESS);
}
-#if ERRORS_ARE_FATAL
-# define zbc_program_pushVar(...) (bc_program_pushVar(__VA_ARGS__), BC_STATUS_SUCCESS)
-#else
-# define zbc_program_pushVar(...) bc_program_pushVar(__VA_ARGS__)
-#endif
+#define zbc_program_pushVar(...) (bc_program_pushVar(__VA_ARGS__) COMMA_SUCCESS)
static BC_STATUS zbc_program_pushArray(char *code, size_t *bgn,
char inst)
@@ -6038,9 +5883,7 @@ err:
if (s) free(r.d.id.name);
RETURN_STATUS(s);
}
-#if ERRORS_ARE_FATAL
-# define zbc_program_pushArray(...) (zbc_program_pushArray(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_program_pushArray(...) (zbc_program_pushArray(__VA_ARGS__) COMMA_SUCCESS)
#if ENABLE_BC
static BC_STATUS zbc_program_incdec(char inst)
@@ -6075,9 +5918,7 @@ static BC_STATUS zbc_program_incdec(char inst)
RETURN_STATUS(s);
}
-#if ERRORS_ARE_FATAL
-# define zbc_program_incdec(...) (zbc_program_incdec(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_program_incdec(...) (zbc_program_incdec(__VA_ARGS__) COMMA_SUCCESS)
static BC_STATUS zbc_program_call(char *code, size_t *idx)
{
@@ -6133,9 +5974,7 @@ static BC_STATUS zbc_program_call(char *code, size_t *idx)
RETURN_STATUS(BC_STATUS_SUCCESS);
}
-#if ERRORS_ARE_FATAL
-# define zbc_program_call(...) (zbc_program_call(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_program_call(...) (zbc_program_call(__VA_ARGS__) COMMA_SUCCESS)
static BC_STATUS zbc_program_return(char inst)
{
@@ -6180,9 +6019,7 @@ static BC_STATUS zbc_program_return(char inst)
RETURN_STATUS(BC_STATUS_SUCCESS);
}
-#if ERRORS_ARE_FATAL
-# define zbc_program_return(...) (zbc_program_return(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_program_return(...) (zbc_program_return(__VA_ARGS__) COMMA_SUCCESS)
#endif // ENABLE_BC
static unsigned long bc_program_scale(BcNum *n)
@@ -6248,9 +6085,7 @@ static BC_STATUS zbc_program_builtin(char inst)
RETURN_STATUS(s);
}
-#if ERRORS_ARE_FATAL
-# define zbc_program_builtin(...) (zbc_program_builtin(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_program_builtin(...) (zbc_program_builtin(__VA_ARGS__) COMMA_SUCCESS)
#if ENABLE_DC
static BC_STATUS zbc_program_divmod(void)
@@ -6279,9 +6114,7 @@ err:
bc_num_free(&res.d.n);
RETURN_STATUS(s);
}
-#if ERRORS_ARE_FATAL
-# define zbc_program_divmod(...) (zbc_program_divmod(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_program_divmod(...) (zbc_program_divmod(__VA_ARGS__) COMMA_SUCCESS)
static BC_STATUS zbc_program_modexp(void)
{
@@ -6327,9 +6160,7 @@ err:
bc_num_free(&res.d.n);
RETURN_STATUS(s);
}
-#if ERRORS_ARE_FATAL
-# define zbc_program_modexp(...) (zbc_program_modexp(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_program_modexp(...) (zbc_program_modexp(__VA_ARGS__) COMMA_SUCCESS)
static void bc_program_stackLen(void)
{
@@ -6412,9 +6243,7 @@ num_err:
bc_num_free(&n);
RETURN_STATUS(s);
}
-#if ERRORS_ARE_FATAL
-# define zbc_program_asciify(...) (zbc_program_asciify(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_program_asciify(...) (zbc_program_asciify(__VA_ARGS__) COMMA_SUCCESS)
static BC_STATUS zbc_program_printStream(void)
{
@@ -6441,9 +6270,7 @@ static BC_STATUS zbc_program_printStream(void)
RETURN_STATUS(s);
}
-#if ERRORS_ARE_FATAL
-# define zbc_program_printStream(...) (zbc_program_printStream(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_program_printStream(...) (zbc_program_printStream(__VA_ARGS__) COMMA_SUCCESS)
static BC_STATUS zbc_program_nquit(void)
{
@@ -6469,9 +6296,7 @@ static BC_STATUS zbc_program_nquit(void)
RETURN_STATUS(s);
}
-#if ERRORS_ARE_FATAL
-# define zbc_program_nquit(...) (zbc_program_nquit(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_program_nquit(...) (zbc_program_nquit(__VA_ARGS__) COMMA_SUCCESS)
static BC_STATUS zbc_program_execStr(char *code, size_t *bgn,
bool cond)
@@ -6573,9 +6398,7 @@ exit:
bc_vec_pop(&G.prog.results);
RETURN_STATUS(s);
}
-#if ERRORS_ARE_FATAL
-# define zbc_program_execStr(...) (zbc_program_execStr(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_program_execStr(...) (zbc_program_execStr(__VA_ARGS__) COMMA_SUCCESS)
#endif // ENABLE_DC
static void bc_program_pushGlobal(char inst)
@@ -6874,9 +6697,7 @@ static BC_STATUS zbc_program_exec(void)
RETURN_STATUS(BC_STATUS_SUCCESS);
}
-#if ERRORS_ARE_FATAL
-# define zbc_program_exec(...) (zbc_program_exec(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_program_exec(...) (zbc_program_exec(__VA_ARGS__) COMMA_SUCCESS)
static unsigned bc_vm_envLen(const char *var)
{
@@ -6904,7 +6725,7 @@ static BC_STATUS zbc_vm_process(const char *text)
while (G.prs.l.t.t != BC_LEX_EOF) {
dbg_lex("%s:%d G.prs.l.t.t:%d", __func__, __LINE__, G.prs.l.t.t);
- ERROR_RETURN(s =) zcommon_parse(&G.prs);
+ s = zcommon_parse(&G.prs);
if (s) RETURN_STATUS(s);
s = zbc_program_exec();
if (s) {
@@ -6916,9 +6737,7 @@ static BC_STATUS zbc_vm_process(const char *text)
dbg_lex_done("%s:%d done", __func__, __LINE__);
RETURN_STATUS(s);
}
-#if ERRORS_ARE_FATAL
-# define zbc_vm_process(...) (zbc_vm_process(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_vm_process(...) (zbc_vm_process(__VA_ARGS__) COMMA_SUCCESS)
static BC_STATUS zbc_vm_execute_FILE(FILE *fp, const char *filename)
{
@@ -6941,9 +6760,7 @@ static BC_STATUS zbc_vm_execute_FILE(FILE *fp, const char *filename)
G.prog.file = NULL;
RETURN_STATUS(s);
}
-#if ERRORS_ARE_FATAL
-# define zbc_vm_execute_FILE(...) (zbc_vm_execute_FILE(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_vm_execute_FILE(...) (zbc_vm_execute_FILE(__VA_ARGS__) COMMA_SUCCESS)
static BC_STATUS zbc_vm_file(const char *file)
{
@@ -6956,9 +6773,7 @@ static BC_STATUS zbc_vm_file(const char *file)
RETURN_STATUS(s);
}
-#if ERRORS_ARE_FATAL
-# define zbc_vm_file(...) (zbc_vm_file(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_vm_file(...) (zbc_vm_file(__VA_ARGS__) COMMA_SUCCESS)
#if ENABLE_BC
static void bc_vm_info(void)
@@ -7234,9 +7049,7 @@ static BC_STATUS zbc_vm_exec(void)
RETURN_STATUS(s);
}
-#if ERRORS_ARE_FATAL
-# define zbc_vm_exec(...) (zbc_vm_exec(__VA_ARGS__), BC_STATUS_SUCCESS)
-#endif
+#define zbc_vm_exec(...) (zbc_vm_exec(__VA_ARGS__) COMMA_SUCCESS)
#if ENABLE_FEATURE_CLEAN_UP
static void bc_program_free(void)