bc: rename functions common to bc and dc as xc_FOO()
No binary (build failed)
—
(log yok)
| @@ -436,7 +436,7 @@ typedef enum BcLexType { | |
| BC_LEX_LPAREN, // () are 0x28 and 0x29 | |
| BC_LEX_RPAREN, // must be LPAREN+1: code uses (c - '(' + BC_LEX_LPAREN) | |
| - | BC_LEX_LBRACKET, // [] are 0x5B and 5D |
| + | BC_LEX_LBRACKET, // [] are 0x5B and 0x5D |
| BC_LEX_COMMA, | |
| BC_LEX_RBRACKET, // must be LBRACKET+2: code uses (c - '[' + BC_LEX_LBRACKET) | |
| @@ -632,52 +632,52 @@ static const uint8_t bc_parse_ops[] ALIGN1 = { | |
| static const //BcLexType - should be this type | |
| uint8_t | |
| dc_char_to_LEX[] ALIGN1 = { | |
| - | /* %&'( */ |
| + | // %&'( |
| XC_LEX_OP_MODULUS, XC_LEX_INVALID, XC_LEX_INVALID, DC_LEX_LPAREN, | |
| - | /* )*+, */ |
| + | // )*+, |
| XC_LEX_INVALID, XC_LEX_OP_MULTIPLY, XC_LEX_OP_PLUS, XC_LEX_INVALID, | |
| - | /* -./ */ |
| + | // -./ |
| XC_LEX_OP_MINUS, XC_LEX_INVALID, XC_LEX_OP_DIVIDE, | |
| - | /* 0123456789 */ |
| + | // 0123456789 |
| XC_LEX_INVALID, XC_LEX_INVALID, XC_LEX_INVALID, XC_LEX_INVALID, | |
| XC_LEX_INVALID, XC_LEX_INVALID, XC_LEX_INVALID, XC_LEX_INVALID, | |
| XC_LEX_INVALID, XC_LEX_INVALID, | |
| - | /* :;<=>?@ */ |
| + | // :;<=>?@ |
| DC_LEX_COLON, DC_LEX_SCOLON, XC_LEX_OP_REL_GT, XC_LEX_OP_REL_EQ, | |
| XC_LEX_OP_REL_LT, DC_LEX_READ, XC_LEX_INVALID, | |
| - | /* ABCDEFGH */ |
| + | // ABCDEFGH |
| XC_LEX_INVALID, XC_LEX_INVALID, XC_LEX_INVALID, XC_LEX_INVALID, | |
| XC_LEX_INVALID, XC_LEX_INVALID, DC_LEX_EQ_NO_REG, XC_LEX_INVALID, | |
| - | /* IJKLMNOP */ |
| + | // IJKLMNOP |
| DC_LEX_IBASE, XC_LEX_INVALID, DC_LEX_SCALE, DC_LEX_LOAD_POP, | |
| XC_LEX_INVALID, DC_LEX_OP_BOOL_NOT, DC_LEX_OBASE, DC_LEX_PRINT_STREAM, | |
| - | /* QRSTUVWXY */ |
| + | // QRSTUVWXY |
| DC_LEX_NQUIT, DC_LEX_POP, DC_LEX_STORE_PUSH, XC_LEX_INVALID, XC_LEX_INVALID, | |
| XC_LEX_INVALID, XC_LEX_INVALID, DC_LEX_SCALE_FACTOR, XC_LEX_INVALID, | |
| - | /* Z[\] */ |
| + | // Z[\] |
| DC_LEX_LENGTH, XC_LEX_INVALID, XC_LEX_INVALID, XC_LEX_INVALID, | |
| - | /* ^_` */ |
| + | // ^_` |
| XC_LEX_OP_POWER, XC_LEX_NEG, XC_LEX_INVALID, | |
| - | /* abcdefgh */ |
| + | // abcdefgh |
| DC_LEX_ASCIIFY, XC_LEX_INVALID, DC_LEX_CLEAR_STACK, DC_LEX_DUPLICATE, | |
| DC_LEX_ELSE, DC_LEX_PRINT_STACK, XC_LEX_INVALID, XC_LEX_INVALID, | |
| - | /* ijklmnop */ |
| + | // ijklmnop |
| DC_LEX_STORE_IBASE, XC_LEX_INVALID, DC_LEX_STORE_SCALE, DC_LEX_LOAD, | |
| XC_LEX_INVALID, DC_LEX_PRINT_POP, DC_LEX_STORE_OBASE, DC_LEX_PRINT, | |
| - | /* qrstuvwx */ |
| + | // qrstuvwx |
| DC_LEX_QUIT, DC_LEX_SWAP, DC_LEX_OP_ASSIGN, XC_LEX_INVALID, | |
| XC_LEX_INVALID, DC_LEX_SQRT, XC_LEX_INVALID, DC_LEX_EXECUTE, | |
| - | /* yz */ |
| + | // yz |
| XC_LEX_INVALID, DC_LEX_STACK_LEVEL, | |
| - | /* {|}~ */ |
| + | // {|}~ |
| DC_LEX_LBRACE, DC_LEX_OP_MODEXP, XC_LEX_INVALID, DC_LEX_OP_DIVMOD, | |
| }; | |
| static const //BcInst - should be this type. Using signed narrow type since DC_INST_INVALID is -1 | |
| int8_t | |
| - | dc_LEX_to_INST[] ALIGN1 = { // starts at XC_LEX_OP_POWER // corresponding XC/DC_LEX_xyz: |
| - | XC_INST_POWER, XC_INST_MULTIPLY, // OP_POWER OP_MULTIPLY |
| - | XC_INST_DIVIDE, XC_INST_MODULUS, // OP_DIVIDE OP_MODULUS |
| - | XC_INST_PLUS, XC_INST_MINUS, // OP_PLUS OP_MINUS |
| + | dc_LEX_to_INST[] ALIGN1 = { //starts at XC_LEX_OP_POWER // corresponding XC/DC_LEX_xyz: |
| + | XC_INST_POWER, XC_INST_MULTIPLY, // XC_LEX_OP_POWER XC_LEX_OP_MULTIPLY |
| + | XC_INST_DIVIDE, XC_INST_MODULUS, // XC_LEX_OP_DIVIDE XC_LEX_OP_MODULUS |
| + | XC_INST_PLUS, XC_INST_MINUS, // XC_LEX_OP_PLUS XC_LEX_OP_MINUS |
| XC_INST_BOOL_NOT, // DC_LEX_OP_BOOL_NOT | |
| DC_INST_INVALID, // DC_LEX_OP_ASSIGN | |
| XC_INST_REL_GT, // DC_LEX_LPAREN | |
| @@ -692,18 +692,18 @@ dc_LEX_to_INST[] ALIGN1 = { // starts at XC_LEX_OP_POWER // corresponding | |
| XC_INST_SQRT, // DC_LEX_SQRT | |
| XC_INST_REL_GE, // DC_LEX_LBRACE | |
| XC_INST_REL_EQ, // DC_LEX_EQ_NO_REG | |
| - | DC_INST_MODEXP, DC_INST_DIVMOD, // OP_MODEXP OP_DIVMOD |
| - | DC_INST_INVALID, DC_INST_INVALID, // COLON ELSE |
| - | DC_INST_EXECUTE, // EXECUTE |
| - | DC_INST_PRINT_STACK, DC_INST_CLEAR_STACK, // PRINT_STACK CLEAR_STACK |
| - | DC_INST_STACK_LEN, DC_INST_DUPLICATE, // STACK_LEVEL DUPLICATE |
| - | DC_INST_SWAP, XC_INST_POP, // SWAP POP |
| - | DC_INST_ASCIIFY, DC_INST_PRINT_STREAM, // ASCIIFY PRINT_STREAM |
| - | DC_INST_INVALID, DC_INST_INVALID, // STORE_IBASE STORE_OBASE |
| - | DC_INST_INVALID, DC_INST_INVALID, // STORE_SCALE LOAD |
| - | DC_INST_INVALID, DC_INST_INVALID, // LOAD_POP STORE_PUSH |
| - | XC_INST_PRINT, DC_INST_NQUIT, // PRINT_POP NQUIT |
| - | XC_INST_SCALE_FUNC, // SCALE_FACTOR |
| + | DC_INST_MODEXP, DC_INST_DIVMOD, // DC_LEX_OP_MODEXP DC_LEX_OP_DIVMOD |
| + | DC_INST_INVALID, DC_INST_INVALID, // DC_LEX_COLON DC_LEX_ELSE |
| + | DC_INST_EXECUTE, // DC_LEX_EXECUTE |
| + | DC_INST_PRINT_STACK, DC_INST_CLEAR_STACK, // DC_LEX_PRINT_STACK DC_LEX_CLEAR_STACK |
| + | DC_INST_STACK_LEN, DC_INST_DUPLICATE, // DC_LEX_STACK_LEVEL DC_LEX_DUPLICATE |
| + | DC_INST_SWAP, XC_INST_POP, // DC_LEX_SWAP DC_LEX_POP |
| + | DC_INST_ASCIIFY, DC_INST_PRINT_STREAM, // DC_LEX_ASCIIFY DC_LEX_PRINT_STREAM |
| + | DC_INST_INVALID, DC_INST_INVALID, // DC_LEX_STORE_IBASE DC_LEX_STORE_OBASE |
| + | DC_INST_INVALID, DC_INST_INVALID, // DC_LEX_STORE_SCALE DC_LEX_LOAD |
| + | DC_INST_INVALID, DC_INST_INVALID, // DC_LEX_LOAD_POP DC_LEX_STORE_PUSH |
| + | XC_INST_PRINT, DC_INST_NQUIT, // DC_LEX_PRINT_POP DC_LEX_NQUIT |
| + | XC_INST_SCALE_FUNC, // DC_LEX_SCALE_FACTOR |
| // DC_INST_INVALID in this table either means that corresponding LEX | |
| // is not possible for dc, or that it does not compile one-to-one | |
| // to a single INST. | |
| @@ -825,8 +825,8 @@ struct globals { | |
| #define BC_FLAG_S (1 << 2) | |
| #define BC_FLAG_Q (1 << 3) | |
| #define BC_FLAG_L (1 << 4) | |
| - | #define BC_FLAG_I (1 << 5) |
| - | #define DC_FLAG_X (1 << 6) |
| + | #define BC_FLAG_I ((1 << 5) * ENABLE_DC) |
| + | #define DC_FLAG_X ((1 << 6) * ENABLE_DC) |
| #define BC_MAX(a, b) ((a) > (b) ? (a) : (b)) | |
| #define BC_MIN(a, b) ((a) < (b) ? (a) : (b)) | |
| @@ -911,9 +911,6 @@ do { \ | |
| return BC_STATUS_FAILURE; \ | |
| } while (0) | |
| #else | |
| - | #define QUIT_OR_RETURN_TO_MAIN quit() |
| - | #endif |
| - | |
| static void quit(void) NORETURN; | |
| static void quit(void) | |
| { | |
| @@ -923,6 +920,8 @@ static void quit(void) | |
| dbg_exec("quit(): exiting with exitcode SUCCESS"); | |
| exit(0); | |
| } | |
| + | #define QUIT_OR_RETURN_TO_MAIN quit() |
| + | #endif |
| static void bc_verror_msg(const char *fmt, va_list p) | |
| { | |
| @@ -1165,23 +1164,23 @@ static FAST_FUNC void bc_vec_free(void *vec) | |
| free(v->v); | |
| } | |
| - | static BcFunc* bc_program_func(size_t idx) |
| + | static BcFunc* xc_program_func(size_t idx) |
| { | |
| return bc_vec_item(&G.prog.fns, idx); | |
| } | |
| // BC_PROG_MAIN is zeroth element, so: | |
| - | #define bc_program_func_BC_PROG_MAIN() ((BcFunc*)(G.prog.fns.v)) |
| + | #define xc_program_func_BC_PROG_MAIN() ((BcFunc*)(G.prog.fns.v)) |
| #if ENABLE_BC | |
| static BcFunc* bc_program_current_func(void) | |
| { | |
| BcInstPtr *ip = bc_vec_top(&G.prog.exestack); | |
| - | BcFunc *func = bc_program_func(ip->func); |
| + | BcFunc *func = xc_program_func(ip->func); |
| return func; | |
| } | |
| #endif | |
| - | static char** bc_program_str(size_t idx) |
| + | static char** xc_program_str(size_t idx) |
| { | |
| #if ENABLE_BC | |
| if (IS_BC) { | |
| @@ -1192,7 +1191,7 @@ static char** bc_program_str(size_t idx) | |
| IF_DC(return bc_vec_item(&G.prog.strs, idx);) | |
| } | |
| - | static char** bc_program_const(size_t idx) |
| + | static char** xc_program_const(size_t idx) |
| { | |
| #if ENABLE_BC | |
| if (IS_BC) { | |
| @@ -1637,7 +1636,7 @@ static FAST_FUNC BC_STATUS zbc_num_pow(BcNum *a, BcNum *b, BcNum *c, size_t scal | |
| RETURN_STATUS(zbc_num_binary(a, b, c, scale, zbc_num_p, a->len * b->len + 1)); | |
| } | |
| - | static const BcNumBinaryOp zbc_program_ops[] = { |
| + | static const BcNumBinaryOp zxc_program_ops[] = { |
| zbc_num_pow, zbc_num_mul, zbc_num_div, zbc_num_mod, zbc_num_add, zbc_num_sub, | |
| }; | |
| #define zbc_num_add(...) (zbc_num_add(__VA_ARGS__) COMMA_SUCCESS) | |
| @@ -2481,7 +2480,7 @@ static int bad_input_byte(char c) | |
| return 0; | |
| } | |
| - | static void bc_read_line(BcVec *vec, FILE *fp) |
| + | static void xc_read_line(BcVec *vec, FILE *fp) |
| { | |
| again: | |
| bc_vec_pop_all(vec); | |
| @@ -2568,7 +2567,7 @@ static void bc_read_line(BcVec *vec, FILE *fp) | |
| // Parsing routines | |
| // | |
| - | static bool bc_num_strValid(const char *val, size_t base) |
| + | static bool xc_num_strValid(const char *val, size_t base) |
| { | |
| BcDig b; | |
| bool radix; | |
| @@ -2703,9 +2702,9 @@ static void bc_num_parseBase(BcNum *n, const char *val, unsigned base_t) | |
| bc_num_free(&temp); | |
| } | |
| - | static BC_STATUS zbc_num_parse(BcNum *n, const char *val, unsigned base_t) |
| + | static BC_STATUS zxc_num_parse(BcNum *n, const char *val, unsigned base_t) |
| { | |
| - | if (!bc_num_strValid(val, base_t)) |
| + | if (!xc_num_strValid(val, base_t)) |
| RETURN_STATUS(bc_error("bad number string")); | |
| bc_num_zero(n); | |
| @@ -2718,15 +2717,15 @@ static BC_STATUS zbc_num_parse(BcNum *n, const char *val, unsigned base_t) | |
| RETURN_STATUS(BC_STATUS_SUCCESS); | |
| } | |
| - | #define zbc_num_parse(...) (zbc_num_parse(__VA_ARGS__) COMMA_SUCCESS) |
| + | #define zxc_num_parse(...) (zxc_num_parse(__VA_ARGS__) COMMA_SUCCESS) |
| - | static bool bc_lex_more_input(void) |
| + | static bool xc_lex_more_input(void) |
| { | |
| BcParse *p = &G.prs; | |
| bc_vec_pop_all(&G.input_buffer); | |
| - | bc_read_line(&G.input_buffer, G.prs.lex_input_fp); |
| + | xc_read_line(&G.input_buffer, G.prs.lex_input_fp); |
| p->lex_inbuf = G.input_buffer.v; | |
| // bb_error_msg("G.input_buffer.len:%d '%s'", G.input_buffer.len, G.input_buffer.v); | |
| @@ -2769,7 +2768,7 @@ static char peek_inbuf(void) | |
| { | |
| if (*G.prs.lex_inbuf == '\0') { | |
| if (G.prs.lex_input_fp) | |
| - | if (!bc_lex_more_input()) |
| + | if (!xc_lex_more_input()) |
| G.prs.lex_input_fp = NULL; | |
| } | |
| return *G.prs.lex_inbuf; | |
| @@ -2781,7 +2780,7 @@ static char eat_inbuf(void) | |
| return c; | |
| } | |
| - | static void bc_lex_lineComment(void) |
| + | static void xc_lex_lineComment(void) |
| { | |
| BcParse *p = &G.prs; | |
| char c; | |
| @@ -2795,7 +2794,7 @@ static void bc_lex_lineComment(void) | |
| p->lex_inbuf++; | |
| } | |
| - | static void bc_lex_whitespace(void) |
| + | static void xc_lex_whitespace(void) |
| { | |
| BcParse *p = &G.prs; | |
| @@ -2812,7 +2811,7 @@ static void bc_lex_whitespace(void) | |
| } | |
| } | |
| - | static BC_STATUS zbc_lex_number(char last) |
| + | static BC_STATUS zxc_lex_number(char last) |
| { | |
| BcParse *p = &G.prs; | |
| bool pt; | |
| @@ -2853,9 +2852,9 @@ static BC_STATUS zbc_lex_number(char last) | |
| G.err_line = G.prs.lex_line; | |
| RETURN_STATUS(BC_STATUS_SUCCESS); | |
| } | |
| - | #define zbc_lex_number(...) (zbc_lex_number(__VA_ARGS__) COMMA_SUCCESS) |
| + | #define zxc_lex_number(...) (zxc_lex_number(__VA_ARGS__) COMMA_SUCCESS) |
| - | static void bc_lex_name(void) |
| + | static void xc_lex_name(void) |
| { | |
| BcParse *p = &G.prs; | |
| size_t i; | |
| @@ -2893,7 +2892,7 @@ IF_DC(static BC_STATUS zdc_lex_token(void);) | |
| #define zbc_lex_token(...) (zbc_lex_token(__VA_ARGS__) COMMA_SUCCESS) | |
| #define zdc_lex_token(...) (zdc_lex_token(__VA_ARGS__) COMMA_SUCCESS) | |
| - | static BC_STATUS zbc_lex_next(void) |
| + | static BC_STATUS zxc_lex_next(void) |
| { | |
| BcParse *p = &G.prs; | |
| BcStatus s; | |
| @@ -2928,13 +2927,13 @@ static BC_STATUS zbc_lex_next(void) | |
| RETURN_STATUS(s); | |
| } | |
| - | #define zbc_lex_next(...) (zbc_lex_next(__VA_ARGS__) COMMA_SUCCESS) |
| + | #define zxc_lex_next(...) (zxc_lex_next(__VA_ARGS__) COMMA_SUCCESS) |
| #if ENABLE_BC | |
| static BC_STATUS zbc_lex_skip_if_at_NLINE(void) | |
| { | |
| if (G.prs.lex == XC_LEX_NLINE) | |
| - | RETURN_STATUS(zbc_lex_next()); |
| + | RETURN_STATUS(zxc_lex_next()); |
| RETURN_STATUS(BC_STATUS_SUCCESS); | |
| } | |
| #define zbc_lex_skip_if_at_NLINE(...) (zbc_lex_skip_if_at_NLINE(__VA_ARGS__) COMMA_SUCCESS) | |
| @@ -2942,24 +2941,14 @@ static BC_STATUS zbc_lex_skip_if_at_NLINE(void) | |
| static BC_STATUS zbc_lex_next_and_skip_NLINE(void) | |
| { | |
| BcStatus s; | |
| - | s = zbc_lex_next(); |
| + | s = zxc_lex_next(); |
| if (s) RETURN_STATUS(s); | |
| // if(cond)<newline>stmt is accepted too (but not 2+ newlines) | |
| s = zbc_lex_skip_if_at_NLINE(); | |
| RETURN_STATUS(s); | |
| } | |
| #define zbc_lex_next_and_skip_NLINE(...) (zbc_lex_next_and_skip_NLINE(__VA_ARGS__) COMMA_SUCCESS) | |
| - | #endif |
| - | |
| - | static BC_STATUS zbc_lex_text_init(const char *text) |
| - | { |
| - | G.prs.lex_inbuf = text; |
| - | G.prs.lex = G.prs.lex_last = XC_LEX_INVALID; |
| - | RETURN_STATUS(zbc_lex_next()); |
| - | } |
| - | #define zbc_lex_text_init(...) (zbc_lex_text_init(__VA_ARGS__) COMMA_SUCCESS) |
| - | #if ENABLE_BC |
| static BC_STATUS zbc_lex_identifier(void) | |
| { | |
| BcParse *p = &G.prs; | |
| @@ -2991,7 +2980,7 @@ static BC_STATUS zbc_lex_identifier(void) | |
| RETURN_STATUS(BC_STATUS_SUCCESS); | |
| } | |
| - | bc_lex_name(); |
| + | xc_lex_name(); |
| s = BC_STATUS_SUCCESS; | |
| if (p->lex_strnumbuf.len > 2) { | |
| @@ -3101,7 +3090,7 @@ static BC_STATUS zbc_lex_token(void) | |
| case '\f': | |
| case '\r': | |
| case ' ': | |
| - | bc_lex_whitespace(); |
| + | xc_lex_whitespace(); |
| break; | |
| case '!': | |
| parse_lex_by_checking_eq_sign(XC_LEX_OP_REL_NE, BC_LEX_OP_BOOL_NOT); | |
| @@ -3116,7 +3105,7 @@ static BC_STATUS zbc_lex_token(void) | |
| case '#': | |
| s = zbc_POSIX_does_not_allow("'#' script comments"); | |
| if (s) RETURN_STATUS(s); | |
| - | bc_lex_lineComment(); |
| + | xc_lex_lineComment(); |
| break; | |
| case '%': | |
| parse_lex_by_checking_eq_sign(BC_LEX_OP_ASSIGN_MODULUS, XC_LEX_OP_MODULUS); | |
| @@ -3161,7 +3150,7 @@ static BC_STATUS zbc_lex_token(void) | |
| break; | |
| case '.': | |
| if (isdigit(*p->lex_inbuf)) | |
| - | s = zbc_lex_number(c); |
| + | s = zxc_lex_number(c); |
| else { | |
| p->lex = BC_LEX_KEY_LAST; | |
| s = zbc_POSIX_does_not_allow("'.' as 'last'"); | |
| @@ -3190,7 +3179,7 @@ static BC_STATUS zbc_lex_token(void) | |
| case 'D': | |
| case 'E': | |
| case 'F': | |
| - | s = zbc_lex_number(c); |
| + | s = zxc_lex_number(c); |
| break; | |
| case ';': | |
| p->lex = BC_LEX_SCOLON; | |
| @@ -3278,9 +3267,9 @@ static BC_STATUS zdc_lex_register(void) | |
| { | |
| BcParse *p = &G.prs; | |
| if (G_exreg && isspace(*p->lex_inbuf)) { | |
| - | bc_lex_whitespace(); // eats whitespace (but not newline) |
| - | p->lex_inbuf++; // bc_lex_name() expects this |
| - | bc_lex_name(); |
| + | xc_lex_whitespace(); // eats whitespace (but not newline) |
| + | p->lex_inbuf++; // xc_lex_name() expects this |
| + | xc_lex_name(); |
| } else { | |
| bc_vec_pop_all(&p->lex_strnumbuf); | |
| bc_vec_push(&p->lex_strnumbuf, p->lex_inbuf++); | |
| @@ -3326,7 +3315,6 @@ static BC_STATUS zdc_lex_string(void) | |
| #undef zdc_lex_token | |
| static BC_STATUS zdc_lex_token(void) | |
| { | |
| - | BcParse *p = &G.prs; |
| static const //BcLexType - should be this type, but narrower type saves size: | |
| uint8_t | |
| dc_lex_regs[] ALIGN1 = { | |
| @@ -3336,6 +3324,7 @@ static BC_STATUS zdc_lex_token(void) | |
| DC_LEX_STORE_PUSH, | |
| }; | |
| + | BcParse *p = &G.prs; |
| BcStatus s; | |
| char c, c2; | |
| size_t i; | |
| @@ -3375,7 +3364,7 @@ static BC_STATUS zdc_lex_token(void) | |
| case '\f': | |
| case '\r': | |
| case ' ': | |
| - | bc_lex_whitespace(); |
| + | xc_lex_whitespace(); |
| break; | |
| case '!': | |
| c2 = *p->lex_inbuf; | |
| @@ -3390,11 +3379,11 @@ static BC_STATUS zdc_lex_token(void) | |
| p->lex_inbuf++; | |
| break; | |
| case '#': | |
| - | bc_lex_lineComment(); |
| + | xc_lex_lineComment(); |
| break; | |
| case '.': | |
| if (isdigit(*p->lex_inbuf)) | |
| - | s = zbc_lex_number(c); |
| + | s = zxc_lex_number(c); |
| else | |
| s = bc_error_bad_character(c); | |
| break; | |
| @@ -3414,7 +3403,7 @@ static BC_STATUS zdc_lex_token(void) | |
| case 'D': | |
| case 'E': | |
| case 'F': | |
| - | s = zbc_lex_number(c); |
| + | s = zxc_lex_number(c); |
| break; | |
| case '[': | |
| s = zdc_lex_string(); | |
| @@ -3430,14 +3419,14 @@ static BC_STATUS zdc_lex_token(void) | |
| #define zdc_lex_token(...) (zdc_lex_token(__VA_ARGS__) COMMA_SUCCESS) | |
| #endif // ENABLE_DC | |
| - | static void bc_parse_push(char i) |
| + | static void xc_parse_push(char i) |
| { | |
| BcVec *code = &G.prs.func->code; | |
| dbg_compile("%s:%d pushing bytecode %zd:%d", __func__, __LINE__, code->len, i); | |
| bc_vec_pushByte(code, i); | |
| } | |
| - | static void bc_parse_pushName(char *name) |
| + | static void xc_parse_pushName(char *name) |
| { | |
| #if 1 | |
| BcVec *code = &G.prs.func->code; | |
| @@ -3450,7 +3439,7 @@ static void bc_parse_pushName(char *name) | |
| #else | |
| // Smaller code, but way slow: | |
| do { | |
| - | bc_parse_push(*name); |
| + | xc_parse_push(*name); |
| } while (*name++); | |
| #endif | |
| } | |
| @@ -3461,7 +3450,7 @@ static void bc_parse_pushName(char *name) | |
| // (The above describes 32-bit case). | |
| #define SMALL_INDEX_LIMIT (0x100 - sizeof(size_t)) | |
| - | static void bc_parse_pushIndex(size_t idx) |
| + | static void xc_parse_pushIndex(size_t idx) |
| { | |
| size_t mask; | |
| unsigned amt; | |
| @@ -3479,11 +3468,11 @@ static void bc_parse_pushIndex(size_t idx) | |
| amt--; | |
| } while (amt != 0); | |
| - | bc_parse_push(SMALL_INDEX_LIMIT + amt); |
| + | xc_parse_push(SMALL_INDEX_LIMIT + amt); |
| while (idx != 0) { | |
| push_idx: | |
| - | bc_parse_push((unsigned char)idx); |
| + | xc_parse_push((unsigned char)idx); |
| idx >>= 8; | |
| } | |
| } | |
| @@ -3491,14 +3480,14 @@ static void bc_parse_pushIndex(size_t idx) | |
| #if ENABLE_BC | |
| static void bc_parse_pushJUMP(size_t idx) | |
| { | |
| - | bc_parse_push(BC_INST_JUMP); |
| - | bc_parse_pushIndex(idx); |
| + | xc_parse_push(BC_INST_JUMP); |
| + | xc_parse_pushIndex(idx); |
| } | |
| static void bc_parse_pushJUMP_ZERO(size_t idx) | |
| { | |
| - | bc_parse_push(BC_INST_JUMP_ZERO); |
| - | bc_parse_pushIndex(idx); |
| + | xc_parse_push(BC_INST_JUMP_ZERO); |
| + | xc_parse_pushIndex(idx); |
| } | |
| static BC_STATUS zbc_parse_pushSTR(void) | |
| @@ -3506,16 +3495,16 @@ static BC_STATUS zbc_parse_pushSTR(void) | |
| BcParse *p = &G.prs; | |
| char *str = xstrdup(p->lex_strnumbuf.v); | |
| - | bc_parse_push(XC_INST_STR); |
| - | bc_parse_pushIndex(p->func->strs.len); |
| + | xc_parse_push(XC_INST_STR); |
| + | xc_parse_pushIndex(p->func->strs.len); |
| bc_vec_push(&p->func->strs, &str); | |
| - | RETURN_STATUS(zbc_lex_next()); |
| + | RETURN_STATUS(zxc_lex_next()); |
| } | |
| #define zbc_parse_pushSTR(...) (zbc_parse_pushSTR(__VA_ARGS__) COMMA_SUCCESS) | |
| #endif | |
| - | static void bc_parse_pushNUM(void) |
| + | static void xc_parse_pushNUM(void) |
| { | |
| BcParse *p = &G.prs; | |
| char *num = xstrdup(p->lex_strnumbuf.v); | |
| @@ -3526,22 +3515,22 @@ static void bc_parse_pushNUM(void) | |
| #else // DC | |
| size_t idx = bc_vec_push(&G.prog.consts, &num); | |
| #endif | |
| - | bc_parse_push(XC_INST_NUM); |
| - | bc_parse_pushIndex(idx); |
| + | xc_parse_push(XC_INST_NUM); |
| + | xc_parse_pushIndex(idx); |
| } | |
| - | static BC_STATUS zbc_parse_text_init(const char *text) |
| + | static BC_STATUS zxc_parse_text_init(const char *text) |
| { | |
| - | BcParse *p = &G.prs; |
| - | p->func = bc_program_func(p->fidx); |
| - | |
| - | RETURN_STATUS(zbc_lex_text_init(text)); |
| + | G.prs.func = xc_program_func(G.prs.fidx); |
| + | G.prs.lex_inbuf = text; |
| + | G.prs.lex = G.prs.lex_last = XC_LEX_INVALID; |
| + | RETURN_STATUS(zxc_lex_next()); |
| } | |
| - | #define zbc_parse_text_init(...) (zbc_parse_text_init(__VA_ARGS__) COMMA_SUCCESS) |
| + | #define zxc_parse_text_init(...) (zxc_parse_text_init(__VA_ARGS__) COMMA_SUCCESS) |
| // Called when parsing or execution detects a failure, | |
| // resets execution structures. | |
| - | static void bc_program_reset(void) |
| + | static void xc_program_reset(void) |
| { | |
| BcFunc *f; | |
| BcInstPtr *ip; | |
| @@ -3549,14 +3538,14 @@ static void bc_program_reset(void) | |
| bc_vec_npop(&G.prog.exestack, G.prog.exestack.len - 1); | |
| bc_vec_pop_all(&G.prog.results); | |
| - | f = bc_program_func_BC_PROG_MAIN(); |
| + | f = xc_program_func_BC_PROG_MAIN(); |
| ip = bc_vec_top(&G.prog.exestack); | |
| ip->inst_idx = f->code.len; | |
| } | |
| // Called when parsing code detects a failure, | |
| // resets parsing structures. | |
| - | static void bc_parse_reset(void) |
| + | static void xc_parse_reset(void) |
| { | |
| BcParse *p = &G.prs; | |
| if (p->fidx != BC_PROG_MAIN) { | |
| @@ -3564,7 +3553,7 @@ static void bc_parse_reset(void) | |
| bc_func_init(p->func); | |
| p->fidx = BC_PROG_MAIN; | |
| - | p->func = bc_program_func_BC_PROG_MAIN(); |
| + | p->func = xc_program_func_BC_PROG_MAIN(); |
| } | |
| p->lex_inbuf += strlen(p->lex_inbuf); | |
| @@ -3574,10 +3563,10 @@ static void bc_parse_reset(void) | |
| IF_BC(bc_vec_pop_all(&p->conds);) | |
| IF_BC(bc_vec_pop_all(&p->ops);) | |
| - | bc_program_reset(); |
| + | xc_program_reset(); |
| } | |
| - | static void bc_parse_free(void) |
| + | static void xc_parse_free(void) |
| { | |
| IF_BC(bc_vec_free(&G.prs.exits);) | |
| IF_BC(bc_vec_free(&G.prs.conds);) | |
| @@ -3585,7 +3574,7 @@ static void bc_parse_free(void) | |
| bc_vec_free(&G.prs.lex_strnumbuf); | |
| } | |
| - | static void bc_parse_create(size_t fidx) |
| + | static void xc_parse_create(size_t fidx) |
| { | |
| BcParse *p = &G.prs; | |
| memset(p, 0, sizeof(BcParse)); | |
| @@ -3596,10 +3585,10 @@ static void bc_parse_create(size_t fidx) | |
| IF_BC(bc_vec_init(&p->ops, sizeof(BcLexType), NULL);) | |
| p->fidx = fidx; | |
| - | p->func = bc_program_func(fidx); |
| + | p->func = xc_program_func(fidx); |
| } | |
| - | static void bc_program_add_fn(void) |
| + | static void xc_program_add_fn(void) |
| { | |
| //size_t idx; | |
| BcFunc f; | |
| @@ -3630,11 +3619,11 @@ static size_t bc_program_addFunc(char *name) | |
| if (!inserted) { | |
| // There is already a function with this name. | |
| // It'll be redefined now, clear old definition. | |
| - | BcFunc *func = bc_program_func(entry_ptr->idx); |
| + | BcFunc *func = xc_program_func(entry_ptr->idx); |
| bc_func_free(func); | |
| bc_func_init(func); | |
| } else { | |
| - | bc_program_add_fn(); |
| + | xc_program_add_fn(); |
| } | |
| return idx; | |
| @@ -3695,7 +3684,7 @@ static void bc_parse_operator(BcLexType type, size_t start, size_t *nexprs) | |
| l = bc_parse_op_PREC(t - XC_LEX_1st_op); | |
| if (l >= r && (l != r || !left)) break; | |
| - | bc_parse_push(BC_TOKEN_2_INST(t)); |
| + | xc_parse_push(BC_TOKEN_2_INST(t)); |
| bc_vec_pop(&p->ops); | |
| *nexprs -= (t != BC_LEX_OP_BOOL_NOT && t != XC_LEX_NEG); | |
| } | |
| @@ -3713,7 +3702,7 @@ static BC_STATUS zbc_parse_rightParen(size_t ops_bgn, size_t *nexs) | |
| top = BC_PARSE_TOP_OP(p); | |
| while (top != BC_LEX_LPAREN) { | |
| - | bc_parse_push(BC_TOKEN_2_INST(top)); |
| + | xc_parse_push(BC_TOKEN_2_INST(top)); |
| bc_vec_pop(&p->ops); | |
| *nexs -= (top != BC_LEX_OP_BOOL_NOT && top != XC_LEX_NEG); | |
| @@ -3738,7 +3727,7 @@ static BC_STATUS zbc_parse_params(uint8_t flags) | |
| dbg_lex("%s:%d p->lex:%d", __func__, __LINE__, p->lex); | |
| flags = (flags & ~(BC_PARSE_PRINT | BC_PARSE_REL)) | BC_PARSE_ARRAY; | |
| - | s = zbc_lex_next(); |
| + | s = zxc_lex_next(); |
| if (s) RETURN_STATUS(s); | |
| nparams = 0; | |
| @@ -3752,13 +3741,13 @@ static BC_STATUS zbc_parse_params(uint8_t flags) | |
| break; | |
| RETURN_STATUS(bc_error_bad_token()); | |
| } | |
| - | s = zbc_lex_next(); |
| + | s = zxc_lex_next(); |
| if (s) RETURN_STATUS(s); | |
| } | |
| } | |
| - | bc_parse_push(BC_INST_CALL); |
| - | bc_parse_pushIndex(nparams); |
| + | xc_parse_push(BC_INST_CALL); |
| + | xc_parse_pushIndex(nparams); |
| RETURN_STATUS(BC_STATUS_SUCCESS); | |
| } | |
| @@ -3792,9 +3781,9 @@ static BC_STATUS zbc_parse_call(char *name, uint8_t flags) | |
| free(name); | |
| entry_ptr = bc_vec_item(&G.prog.fn_map, idx); | |
| - | bc_parse_pushIndex(entry_ptr->idx); |
| + | xc_parse_pushIndex(entry_ptr->idx); |
| - | RETURN_STATUS(zbc_lex_next()); |
| + | RETURN_STATUS(zxc_lex_next()); |
| err: | |
| free(name); | |
| RETURN_STATUS(s); | |
| @@ -3808,11 +3797,11 @@ static BC_STATUS zbc_parse_name(BcInst *type, uint8_t flags) | |
| char *name; | |
| name = xstrdup(p->lex_strnumbuf.v); | |
| - | s = zbc_lex_next(); |
| + | s = zxc_lex_next(); |
| if (s) goto err; | |
| if (p->lex == BC_LEX_LBRACKET) { | |
| - | s = zbc_lex_next(); |
| + | s = zxc_lex_next(); |
| if (s) goto err; | |
| if (p->lex == BC_LEX_RBRACKET) { | |
| @@ -3827,10 +3816,10 @@ static BC_STATUS zbc_parse_name(BcInst *type, uint8_t flags) | |
| s = zbc_parse_expr(flags); | |
| if (s) goto err; | |
| } | |
| - | s = zbc_lex_next(); |
| + | s = zxc_lex_next(); |
| if (s) goto err; | |
| - | bc_parse_push(*type); |
| - | bc_parse_pushName(name); |
| + | xc_parse_push(*type); |
| + | xc_parse_pushName(name); |
| free(name); | |
| } else if (p->lex == BC_LEX_LPAREN) { | |
| if (flags & BC_PARSE_NOCALL) { | |
| @@ -3841,8 +3830,8 @@ static BC_STATUS zbc_parse_name(BcInst *type, uint8_t flags) | |
| s = zbc_parse_call(name, flags); | |
| } else { | |
| *type = XC_INST_VAR; | |
| - | bc_parse_push(XC_INST_VAR); |
| - | bc_parse_pushName(name); |
| + | xc_parse_push(XC_INST_VAR); |
| + | xc_parse_pushName(name); |
| free(name); | |
| } | |
| @@ -3858,15 +3847,15 @@ static BC_STATUS zbc_parse_read(void) | |
| BcParse *p = &G.prs; | |
| BcStatus s; | |
| - | s = zbc_lex_next(); |
| + | s = zxc_lex_next(); |
| if (s) RETURN_STATUS(s); | |
| if (p->lex != BC_LEX_LPAREN) RETURN_STATUS(bc_error_bad_token()); | |
| - | s = zbc_lex_next(); |
| + | s = zxc_lex_next(); |
| if (s) RETURN_STATUS(s); | |
| if (p->lex != BC_LEX_RPAREN) RETURN_STATUS(bc_error_bad_token()); | |
| - | bc_parse_push(XC_INST_READ); |
| + | xc_parse_push(XC_INST_READ); |
| RETURN_STATUS(s); | |
| } | |
| @@ -3877,13 +3866,13 @@ static BC_STATUS zbc_parse_builtin(BcLexType type, uint8_t flags, BcInst *prev) | |
| BcParse *p = &G.prs; | |
| BcStatus s; | |
| - | s = zbc_lex_next(); |
| + | s = zxc_lex_next(); |
| if (s) RETURN_STATUS(s); | |
| if (p->lex != BC_LEX_LPAREN) RETURN_STATUS(bc_error_bad_token()); | |
| flags = (flags & ~(BC_PARSE_PRINT | BC_PARSE_REL)) | BC_PARSE_ARRAY; | |
| - | s = zbc_lex_next(); |
| + | s = zxc_lex_next(); |
| if (s) RETURN_STATUS(s); | |
| s = zbc_parse_expr(flags); | |
| @@ -3892,7 +3881,7 @@ static BC_STATUS zbc_parse_builtin(BcLexType type, uint8_t flags, BcInst *prev) | |
| if (p->lex != BC_LEX_RPAREN) RETURN_STATUS(bc_error_bad_token()); | |
| *prev = (type == BC_LEX_KEY_LENGTH) ? XC_INST_LENGTH : XC_INST_SQRT; | |
| - | bc_parse_push(*prev); |
| + | xc_parse_push(*prev); |
| RETURN_STATUS(s); | |
| } | |
| @@ -3903,28 +3892,28 @@ static BC_STATUS zbc_parse_scale(BcInst *type, uint8_t flags) | |
| BcParse *p = &G.prs; | |
| BcStatus s; | |
| - | s = zbc_lex_next(); |
| + | s = zxc_lex_next(); |
| if (s) RETURN_STATUS(s); | |
| if (p->lex != BC_LEX_LPAREN) { | |
| *type = XC_INST_SCALE; | |
| - | bc_parse_push(XC_INST_SCALE); |
| + | xc_parse_push(XC_INST_SCALE); |
| RETURN_STATUS(BC_STATUS_SUCCESS); | |
| } | |
| *type = XC_INST_SCALE_FUNC; | |
| flags &= ~(BC_PARSE_PRINT | BC_PARSE_REL); | |
| - | s = zbc_lex_next(); |
| + | s = zxc_lex_next(); |
| if (s) RETURN_STATUS(s); | |
| s = zbc_parse_expr(flags); | |
| if (s) RETURN_STATUS(s); | |
| if (p->lex != BC_LEX_RPAREN) | |
| RETURN_STATUS(bc_error_bad_token()); | |
| - | bc_parse_push(XC_INST_SCALE_FUNC); |
| + | xc_parse_push(XC_INST_SCALE_FUNC); |
| - | RETURN_STATUS(zbc_lex_next()); |
| + | RETURN_STATUS(zxc_lex_next()); |
| } | |
| #define zbc_parse_scale(...) (zbc_parse_scale(__VA_ARGS__) COMMA_SUCCESS) | |
| @@ -3942,13 +3931,13 @@ static BC_STATUS zbc_parse_incdec(BcInst *prev, bool *paren_expr, | |
| || etype == XC_INST_IBASE || etype == XC_INST_OBASE | |
| ) { | |
| *prev = inst = BC_INST_INC_POST + (p->lex != BC_LEX_OP_INC); | |
| - | bc_parse_push(inst); |
| - | s = zbc_lex_next(); |
| + | xc_parse_push(inst); |
| + | s = zxc_lex_next(); |
| } else { | |
| *prev = inst = BC_INST_INC_PRE + (p->lex != BC_LEX_OP_INC); | |
| *paren_expr = true; | |
| - | s = zbc_lex_next(); |
| + | s = zxc_lex_next(); |
| if (s) RETURN_STATUS(s); | |
| type = p->lex; | |
| @@ -3963,23 +3952,23 @@ static BC_STATUS zbc_parse_incdec(BcInst *prev, bool *paren_expr, | |
| case BC_LEX_KEY_IBASE: | |
| case BC_LEX_KEY_LAST: | |
| case BC_LEX_KEY_OBASE: | |
| - | bc_parse_push(type - BC_LEX_KEY_IBASE + XC_INST_IBASE); |
| - | s = zbc_lex_next(); |
| + | xc_parse_push(type - BC_LEX_KEY_IBASE + XC_INST_IBASE); |
| + | s = zxc_lex_next(); |
| break; | |
| case BC_LEX_KEY_SCALE: | |
| - | s = zbc_lex_next(); |
| + | s = zxc_lex_next(); |
| if (s) RETURN_STATUS(s); | |
| if (p->lex == BC_LEX_LPAREN) | |
| s = bc_error_bad_token(); | |
| else | |
| - | bc_parse_push(XC_INST_SCALE); |
| + | xc_parse_push(XC_INST_SCALE); |
| break; | |
| default: | |
| s = bc_error_bad_token(); | |
| break; | |
| } | |
| - | if (!s) bc_parse_push(inst); |
| + | if (!s) xc_parse_push(inst); |
| } | |
| RETURN_STATUS(s); | |
| @@ -4012,7 +4001,7 @@ static BC_STATUS zbc_parse_minus(BcInst *prev, size_t ops_bgn, | |
| BcLexType type; | |
| BcInst etype = *prev; | |
| - | s = zbc_lex_next(); |
| + | s = zxc_lex_next(); |
| if (s) RETURN_STATUS(s); | |
| type = BC_PARSE_LEAF(etype, rparen) ? XC_LEX_OP_MINUS : XC_LEX_NEG; | |
| @@ -4036,7 +4025,7 @@ static BC_STATUS zbc_parse_print(void) | |
| BcLexType type; | |
| for (;;) { | |
| - | s = zbc_lex_next(); |
| + | s = zxc_lex_next(); |
| if (s) RETURN_STATUS(s); | |
| type = p->lex; | |
| if (type == XC_LEX_STR) { | |
| @@ -4045,7 +4034,7 @@ static BC_STATUS zbc_parse_print(void) | |
| s = zbc_parse_expr(0); | |
| } | |
| if (s) RETURN_STATUS(s); | |
| - | bc_parse_push(XC_INST_PRINT_POP); |
| + | xc_parse_push(XC_INST_PRINT_POP); |
| if (p->lex != BC_LEX_COMMA) | |
| break; | |
| } | |
| @@ -4061,18 +4050,18 @@ static BC_STATUS zbc_parse_return(void) | |
| BcLexType t; | |
| dbg_lex_enter("%s:%d entered", __func__, __LINE__); | |
| - | s = zbc_lex_next(); |
| + | s = zxc_lex_next(); |
| if (s) RETURN_STATUS(s); | |
| t = p->lex; | |
| if (t == XC_LEX_NLINE || t == BC_LEX_SCOLON) | |
| - | bc_parse_push(BC_INST_RET0); |
| + | xc_parse_push(BC_INST_RET0); |
| else { | |
| bool paren = (t == BC_LEX_LPAREN); | |
| s = bc_parse_expr_empty_ok(0); | |
| if (s == BC_STATUS_PARSE_EMPTY_EXP) { | |
| - | bc_parse_push(BC_INST_RET0); |
| - | s = zbc_lex_next(); |
| + | xc_parse_push(BC_INST_RET0); |
| + | s = zxc_lex_next(); |
| } | |
| if (s) RETURN_STATUS(s); | |
| @@ -4081,7 +4070,7 @@ static BC_STATUS zbc_parse_return(void) | |
| if (s) RETURN_STATUS(s); | |
| } | |
| - | bc_parse_push(XC_INST_RET); |
| + | xc_parse_push(XC_INST_RET); |
| } | |
| dbg_lex_done("%s:%d done", __func__, __LINE__); | |
| @@ -4103,11 +4092,11 @@ static BC_STATUS zbc_parse_if(void) | |
| size_t ip_idx; | |
| dbg_lex_enter("%s:%d entered", __func__, __LINE__); | |
| - | s = zbc_lex_next(); |
| + | s = zxc_lex_next(); |
| if (s) RETURN_STATUS(s); | |
| if (p->lex != BC_LEX_LPAREN) RETURN_STATUS(bc_error_bad_token()); | |
| - | s = zbc_lex_next(); |
| + | s = zxc_lex_next(); |
| if (s) RETURN_STATUS(s); | |
| s = zbc_parse_expr(BC_PARSE_REL); | |
| if (s) RETURN_STATUS(s); | |
| @@ -4155,10 +4144,10 @@ static BC_STATUS zbc_parse_while(void) | |
| size_t cond_idx; | |
| size_t ip_idx; | |
| - | s = zbc_lex_next(); |
| + | s = zxc_lex_next(); |
| if (s) RETURN_STATUS(s); | |
| if (p->lex != BC_LEX_LPAREN) RETURN_STATUS(bc_error_bad_token()); | |
| - | s = zbc_lex_next(); |
| + | s = zxc_lex_next(); |
| if (s) RETURN_STATUS(s); | |
| cond_idx = bc_vec_push(&p->func->labels, &p->func->code.len); | |
| @@ -4197,15 +4186,15 @@ static BC_STATUS zbc_parse_for(void) | |
| size_t cond_idx, exit_idx, body_idx, update_idx; | |
| dbg_lex("%s:%d p->lex:%d", __func__, __LINE__, p->lex); | |
| - | s = zbc_lex_next(); |
| + | s = zxc_lex_next(); |
| if (s) RETURN_STATUS(s); | |
| if (p->lex != BC_LEX_LPAREN) RETURN_STATUS(bc_error_bad_token()); | |
| - | s = zbc_lex_next(); |
| + | s = zxc_lex_next(); |
| if (s) RETURN_STATUS(s); | |
| if (p->lex != BC_LEX_SCOLON) { | |
| s = zbc_parse_expr(0); | |
| - | bc_parse_push(XC_INST_POP); |
| + | xc_parse_push(XC_INST_POP); |
| if (s) RETURN_STATUS(s); | |
| } else { | |
| s = zbc_POSIX_does_not_allow_empty_X_expression_in_for("init"); | |
| @@ -4213,7 +4202,7 @@ static BC_STATUS zbc_parse_for(void) | |
| } | |
| if (p->lex != BC_LEX_SCOLON) RETURN_STATUS(bc_error_bad_token()); | |
| - | s = zbc_lex_next(); |
| + | s = zxc_lex_next(); |
| if (s) RETURN_STATUS(s); | |
| cond_idx = bc_vec_push(&p->func->labels, &p->func->code.len); | |
| @@ -4224,18 +4213,18 @@ static BC_STATUS zbc_parse_for(void) | |
| if (p->lex != BC_LEX_SCOLON) | |
| s = zbc_parse_expr(BC_PARSE_REL); | |
| else { | |
| - | // Set this for the next call to bc_parse_pushNUM(). |
| + | // Set this for the next call to xc_parse_pushNUM(). |
| // This is safe to set because the current token is a semicolon, | |
| // which has no string requirement. | |
| bc_vec_string(&p->lex_strnumbuf, 1, "1"); | |
| - | bc_parse_pushNUM(); |
| + | xc_parse_pushNUM(); |
| s = zbc_POSIX_does_not_allow_empty_X_expression_in_for("condition"); | |
| } | |
| if (s) RETURN_STATUS(s); | |
| if (p->lex != BC_LEX_SCOLON) RETURN_STATUS(bc_error_bad_token()); | |
| - | s = zbc_lex_next(); |
| + | s = zxc_lex_next(); |
| if (s) RETURN_STATUS(s); | |
| bc_parse_pushJUMP_ZERO(exit_idx); | |
| @@ -4248,7 +4237,7 @@ static BC_STATUS zbc_parse_for(void) | |
| s = zbc_parse_expr(0); | |
| if (s) RETURN_STATUS(s); | |
| if (p->lex != BC_LEX_RPAREN) RETURN_STATUS(bc_error_bad_token()); | |
| - | bc_parse_push(XC_INST_POP); |
| + | xc_parse_push(XC_INST_POP); |
| } else { | |
| s = zbc_POSIX_does_not_allow_empty_X_expression_in_for("update"); | |
| if (s) RETURN_STATUS(s); | |
| @@ -4290,7 +4279,7 @@ static BC_STATUS zbc_parse_break_or_continue(BcLexType type) | |
| } | |
| bc_parse_pushJUMP(i); | |
| - | RETURN_STATUS(zbc_lex_next()); |
| + | RETURN_STATUS(zxc_lex_next()); |
| } | |
| #define zbc_parse_break_or_continue(...) (zbc_parse_break_or_continue(__VA_ARGS__) COMMA_SUCCESS) | |
| @@ -4323,20 +4312,20 @@ static BC_STATUS zbc_parse_funcdef(void) | |
| char *name; | |
| dbg_lex_enter("%s:%d entered", __func__, __LINE__); | |
| - | s = zbc_lex_next(); |
| + | s = zxc_lex_next(); |
| if (s) RETURN_STATUS(s); | |
| if (p->lex != XC_LEX_NAME) | |
| RETURN_STATUS(bc_error("bad function definition")); | |
| name = xstrdup(p->lex_strnumbuf.v); | |
| p->fidx = bc_program_addFunc(name); | |
| - | p->func = bc_program_func(p->fidx); |
| + | p->func = xc_program_func(p->fidx); |
| - | s = zbc_lex_next(); |
| + | s = zxc_lex_next(); |
| if (s) RETURN_STATUS(s); | |
| if (p->lex != BC_LEX_LPAREN) | |
| RETURN_STATUS(bc_error("bad function definition")); | |
| - | s = zbc_lex_next(); |
| + | s = zxc_lex_next(); |
| if (s) RETURN_STATUS(s); | |
| while (p->lex != BC_LEX_RPAREN) { | |
| @@ -4346,13 +4335,13 @@ static BC_STATUS zbc_parse_funcdef(void) | |
| ++p->func->nparams; | |
| name = xstrdup(p->lex_strnumbuf.v); | |
| - | s = zbc_lex_next(); |
| + | s = zxc_lex_next(); |
| if (s) goto err; | |
| var = p->lex != BC_LEX_LBRACKET; | |
| if (!var) { | |
| - | s = zbc_lex_next(); |
| + | s = zxc_lex_next(); |
| if (s) goto err; | |
| if (p->lex != BC_LEX_RBRACKET) { | |
| @@ -4360,13 +4349,13 @@ static BC_STATUS zbc_parse_funcdef(void) | |
| goto err; | |
| } | |
| - | s = zbc_lex_next(); |
| + | s = zxc_lex_next(); |
| if (s) goto err; | |
| } | |
| comma = p->lex == BC_LEX_COMMA; | |
| if (comma) { | |
| - | s = zbc_lex_next(); |
| + | s = zxc_lex_next(); |
| if (s) goto err; | |
| } | |
| @@ -4376,7 +4365,7 @@ static BC_STATUS zbc_parse_funcdef(void) | |
| if (comma) RETURN_STATUS(bc_error("bad function definition")); | |
| - | s = zbc_lex_next(); |
| + | s = zxc_lex_next(); |
| if (s) RETURN_STATUS(s); | |
| if (p->lex != BC_LEX_LBRACE) { | |
| @@ -4396,11 +4385,11 @@ static BC_STATUS zbc_parse_funcdef(void) | |
| p->in_funcdef--; | |
| if (s) RETURN_STATUS(s); | |
| - | bc_parse_push(BC_INST_RET0); |
| + | xc_parse_push(BC_INST_RET0); |
| // Subsequent code generation is into main program | |
| p->fidx = BC_PROG_MAIN; | |
| - | p->func = bc_program_func_BC_PROG_MAIN(); |
| + | p->func = xc_program_func_BC_PROG_MAIN(); |
| dbg_lex_done("%s:%d done", __func__, __LINE__); | |
| RETURN_STATUS(s); | |
| @@ -4418,7 +4407,7 @@ static BC_STATUS zbc_parse_auto(void) | |
| char *name; | |
| dbg_lex_enter("%s:%d entered", __func__, __LINE__); | |
| - | s = zbc_lex_next(); |
| + | s = zxc_lex_next(); |
| if (s) RETURN_STATUS(s); | |
| for (;;) { | |
| @@ -4428,19 +4417,19 @@ static BC_STATUS zbc_parse_auto(void) | |
| RETURN_STATUS(bc_error("bad 'auto' syntax")); | |
| name = xstrdup(p->lex_strnumbuf.v); | |
| - | s = zbc_lex_next(); |
| + | s = zxc_lex_next(); |
| if (s) goto err; | |
| var = (p->lex != BC_LEX_LBRACKET); | |
| if (!var) { | |
| - | s = zbc_lex_next(); |
| + | s = zxc_lex_next(); |
| if (s) goto err; | |
| if (p->lex != BC_LEX_RBRACKET) { | |
| s = bc_error("bad 'auto' syntax"); | |
| goto err; | |
| } | |
| - | s = zbc_lex_next(); |
| + | s = zxc_lex_next(); |
| if (s) goto err; | |
| } | |
| @@ -4455,7 +4444,7 @@ static BC_STATUS zbc_parse_auto(void) | |
| } | |
| if (p->lex != BC_LEX_COMMA) | |
| RETURN_STATUS(bc_error("bad 'auto' syntax")); | |
| - | s = zbc_lex_next(); // skip comma |
| + | s = zxc_lex_next(); // skip comma |
| if (s) RETURN_STATUS(s); | |
| } | |
| @@ -4478,17 +4467,17 @@ static BC_STATUS zbc_parse_stmt_possibly_auto(bool auto_allowed) | |
| if (p->lex == XC_LEX_NLINE) { | |
| dbg_lex_done("%s:%d done (seen XC_LEX_NLINE)", __func__, __LINE__); | |
| - | RETURN_STATUS(zbc_lex_next()); |
| + | RETURN_STATUS(zxc_lex_next()); |
| } | |
| if (p->lex == BC_LEX_SCOLON) { | |
| dbg_lex_done("%s:%d done (seen BC_LEX_SCOLON)", __func__, __LINE__); | |
| - | RETURN_STATUS(zbc_lex_next()); |
| + | RETURN_STATUS(zxc_lex_next()); |
| } | |
| if (p->lex == BC_LEX_LBRACE) { | |
| dbg_lex("%s:%d BC_LEX_LBRACE: (auto_allowed:%d)", __func__, __LINE__, auto_allowed); | |
| do { | |
| - | s = zbc_lex_next(); |
| + | s = zxc_lex_next(); |
| if (s) RETURN_STATUS(s); | |
| } while (p->lex == XC_LEX_NLINE); | |
| if (auto_allowed && p->lex == BC_LEX_KEY_AUTO) { | |
| @@ -4501,7 +4490,7 @@ static BC_STATUS zbc_parse_stmt_possibly_auto(bool auto_allowed) | |
| s = zbc_parse_stmt(); | |
| if (s) RETURN_STATUS(s); | |
| } | |
| - | s = zbc_lex_next(); |
| + | s = zxc_lex_next(); |
| dbg_lex_done("%s:%d done (seen BC_LEX_RBRACE)", __func__, __LINE__); | |
| RETURN_STATUS(s); | |
| } | |
| @@ -4526,7 +4515,7 @@ static BC_STATUS zbc_parse_stmt_possibly_auto(bool auto_allowed) | |
| break; | |
| case XC_LEX_STR: | |
| s = zbc_parse_pushSTR(); | |
| - | bc_parse_push(XC_INST_PRINT_STR); |
| + | xc_parse_push(XC_INST_PRINT_STR); |
| break; | |
| case BC_LEX_KEY_BREAK: | |
| case BC_LEX_KEY_CONTINUE: | |
| @@ -4536,8 +4525,8 @@ static BC_STATUS zbc_parse_stmt_possibly_auto(bool auto_allowed) | |
| s = zbc_parse_for(); | |
| break; | |
| case BC_LEX_KEY_HALT: | |
| - | bc_parse_push(BC_INST_HALT); |
| - | s = zbc_lex_next(); |
| + | xc_parse_push(BC_INST_HALT); |
| + | s = zxc_lex_next(); |
| break; | |
| case BC_LEX_KEY_IF: | |
| s = zbc_parse_if(); | |
| @@ -4555,7 +4544,7 @@ static BC_STATUS zbc_parse_stmt_possibly_auto(bool auto_allowed) | |
| "MAX Exponent = "BC_MAX_EXP_STR "\n" | |
| "Number of vars = "BC_MAX_VARS_STR "\n" | |
| ); | |
| - | s = zbc_lex_next(); |
| + | s = zxc_lex_next(); |
| break; | |
| case BC_LEX_KEY_PRINT: | |
| s = zbc_parse_print(); | |
| @@ -4686,7 +4675,7 @@ static BcStatus bc_parse_expr_empty_ok(uint8_t flags) | |
| nrelops += (t >= XC_LEX_OP_REL_EQ && t <= XC_LEX_OP_REL_GT); | |
| prev = BC_TOKEN_2_INST(t); | |
| bc_parse_operator(t, ops_bgn, &nexprs); | |
| - | s = zbc_lex_next(); |
| + | s = zxc_lex_next(); |
| rprn = false; | |
| //get_token = false; - already is | |
| bin_last = (t != BC_LEX_OP_BOOL_NOT); | |
| @@ -4732,7 +4721,7 @@ static BcStatus bc_parse_expr_empty_ok(uint8_t flags) | |
| dbg_lex("%s:%d LEX_NUMBER", __func__, __LINE__); | |
| if (BC_PARSE_LEAF(prev, rprn)) | |
| return bc_error_bad_expression(); | |
| - | bc_parse_pushNUM(); |
| + | xc_parse_pushNUM(); |
| prev = XC_INST_NUM; | |
| get_token = true; | |
| paren_expr = true; | |
| @@ -4746,7 +4735,7 @@ static BcStatus bc_parse_expr_empty_ok(uint8_t flags) | |
| if (BC_PARSE_LEAF(prev, rprn)) | |
| return bc_error_bad_expression(); | |
| prev = (char) (t - BC_LEX_KEY_IBASE + XC_INST_IBASE); | |
| - | bc_parse_push((char) prev); |
| + | xc_parse_push((char) prev); |
| get_token = true; | |
| paren_expr = true; | |
| rprn = bin_last = false; | |
| @@ -4792,7 +4781,7 @@ static BcStatus bc_parse_expr_empty_ok(uint8_t flags) | |
| if (s || G_interrupt) // error, or ^C: stop parsing | |
| return BC_STATUS_FAILURE; | |
| if (get_token) { | |
| - | s = zbc_lex_next(); |
| + | s = zxc_lex_next(); |
| if (s) return s; | |
| } | |
| } | |
| @@ -4805,7 +4794,7 @@ static BcStatus bc_parse_expr_empty_ok(uint8_t flags) | |
| if (top == BC_LEX_LPAREN || top == BC_LEX_RPAREN) | |
| return bc_error_bad_expression(); | |
| - | bc_parse_push(BC_TOKEN_2_INST(top)); |
| + | xc_parse_push(BC_TOKEN_2_INST(top)); |
| nexprs -= (top != BC_LEX_OP_BOOL_NOT && top != XC_LEX_NEG); | |
| bc_vec_pop(&p->ops); | |
| @@ -4826,8 +4815,8 @@ static BcStatus bc_parse_expr_empty_ok(uint8_t flags) | |
| if (flags & BC_PARSE_PRINT) { | |
| if (paren_first || !assign) | |
| - | bc_parse_push(XC_INST_PRINT); |
| - | bc_parse_push(XC_INST_POP); |
| + | xc_parse_push(XC_INST_PRINT); |
| + | xc_parse_push(XC_INST_POP); |
| } | |
| dbg_lex_done("%s:%d done", __func__, __LINE__); | |
| @@ -4843,11 +4832,11 @@ static BC_STATUS zdc_parse_register(void) | |
| BcParse *p = &G.prs; | |
| BcStatus s; | |
| - | s = zbc_lex_next(); |
| + | s = zxc_lex_next(); |
| if (s) RETURN_STATUS(s); | |
| if (p->lex != XC_LEX_NAME) RETURN_STATUS(bc_error_bad_token()); | |
| - | bc_parse_pushName(p->lex_strnumbuf.v); |
| + | xc_parse_pushName(p->lex_strnumbuf.v); |
| RETURN_STATUS(s); | |
| } | |
| @@ -4862,13 +4851,13 @@ static void dc_parse_string(void) | |
| dbg_lex_enter("%s:%d entered", __func__, __LINE__); | |
| str = xstrdup(p->lex_strnumbuf.v); | |
| - | bc_parse_push(XC_INST_STR); |
| - | bc_parse_pushIndex(len); |
| + | xc_parse_push(XC_INST_STR); |
| + | xc_parse_pushIndex(len); |
| bc_vec_push(&G.prog.strs, &str); | |
| // Explanation needed here | |
| - | bc_program_add_fn(); |
| - | p->func = bc_program_func(p->fidx); |
| + | xc_program_add_fn(); |
| + | p->func = xc_program_func(p->fidx); |
| dbg_lex_done("%s:%d done", __func__, __LINE__); | |
| } | |
| @@ -4877,16 +4866,16 @@ static BC_STATUS zdc_parse_mem(uint8_t inst, bool name, bool store) | |
| { | |
| BcStatus s; | |
| - | bc_parse_push(inst); |
| + | xc_parse_push(inst); |
| if (name) { | |
| s = zdc_parse_register(); | |
| if (s) RETURN_STATUS(s); | |
| } | |
| if (store) { | |
| - | bc_parse_push(DC_INST_SWAP); |
| - | bc_parse_push(XC_INST_ASSIGN); |
| - | bc_parse_push(XC_INST_POP); |
| + | xc_parse_push(DC_INST_SWAP); |
| + | xc_parse_push(XC_INST_ASSIGN); |
| + | xc_parse_push(XC_INST_POP); |
| } | |
| RETURN_STATUS(BC_STATUS_SUCCESS); | |
| @@ -4898,13 +4887,13 @@ static BC_STATUS zdc_parse_cond(uint8_t inst) | |
| BcParse *p = &G.prs; | |
| BcStatus s; | |
| - | bc_parse_push(inst); |
| - | bc_parse_push(DC_INST_EXEC_COND); |
| + | xc_parse_push(inst); |
| + | xc_parse_push(DC_INST_EXEC_COND); |
| s = zdc_parse_register(); | |
| if (s) RETURN_STATUS(s); | |
| - | s = zbc_lex_next(); |
| + | s = zxc_lex_next(); |
| if (s) RETURN_STATUS(s); | |
| // Note that 'else' part can not be on the next line: | |
| @@ -4913,9 +4902,9 @@ static BC_STATUS zdc_parse_cond(uint8_t inst) | |
| if (p->lex == DC_LEX_ELSE) { | |
| s = zdc_parse_register(); | |
| if (s) RETURN_STATUS(s); | |
| - | s = zbc_lex_next(); |
| + | s = zxc_lex_next(); |
| } else { | |
| - | bc_parse_push('\0'); |
| + | xc_parse_push('\0'); |
| } | |
| RETURN_STATUS(s); | |
| @@ -4953,20 +4942,20 @@ static BC_STATUS zdc_parse_token(BcLexType t) | |
| break; | |
| case XC_LEX_NEG: | |
| dbg_lex("%s:%d LEX_NEG", __func__, __LINE__); | |
| - | s = zbc_lex_next(); |
| + | s = zxc_lex_next(); |
| if (s) RETURN_STATUS(s); | |
| if (G.prs.lex != XC_LEX_NUMBER) | |
| RETURN_STATUS(bc_error_bad_token()); | |
| - | bc_parse_pushNUM(); |
| - | bc_parse_push(XC_INST_NEG); |
| + | xc_parse_pushNUM(); |
| + | xc_parse_push(XC_INST_NEG); |
| break; | |
| case XC_LEX_NUMBER: | |
| dbg_lex("%s:%d LEX_NUMBER", __func__, __LINE__); | |
| - | bc_parse_pushNUM(); |
| + | xc_parse_pushNUM(); |
| break; | |
| case DC_LEX_READ: | |
| dbg_lex("%s:%d LEX_KEY_READ", __func__, __LINE__); | |
| - | bc_parse_push(XC_INST_READ); |
| + | xc_parse_push(XC_INST_READ); |
| break; | |
| case DC_LEX_OP_ASSIGN: | |
| case DC_LEX_STORE_PUSH: | |
| @@ -4993,7 +4982,7 @@ static BC_STATUS zdc_parse_token(BcLexType t) | |
| RETURN_STATUS(bc_error_bad_token()); | |
| } | |
| - | if (!s && get_token) s = zbc_lex_next(); |
| + | if (!s && get_token) s = zxc_lex_next(); |
| dbg_lex_done("%s:%d done", __func__, __LINE__); | |
| RETURN_STATUS(s); | |
| @@ -5009,8 +4998,8 @@ static BC_STATUS zdc_parse_expr(void) | |
| if (i >= 0) { | |
| BcInst inst = dc_LEX_to_INST[i]; | |
| if (inst != DC_INST_INVALID) { | |
| - | bc_parse_push(inst); |
| - | RETURN_STATUS(zbc_lex_next()); |
| + | xc_parse_push(inst); |
| + | RETURN_STATUS(zxc_lex_next()); |
| } | |
| } | |
| RETURN_STATUS(zdc_parse_token(p->lex)); | |
| @@ -5040,7 +5029,7 @@ static BC_STATUS zdc_parse_exprs_until_eof(void) | |
| #define STACK_HAS_MORE_THAN(s, n) ((s)->len > ((size_t)(n))) | |
| #define STACK_HAS_EQUAL_OR_MORE_THAN(s, n) ((s)->len >= ((size_t)(n))) | |
| - | static BcVec* bc_program_search(char *id, bool var) |
| + | static BcVec* xc_program_search(char *id, bool var) |
| { | |
| BcId e, *ptr; | |
| BcVec *v, *map; | |
| @@ -5066,7 +5055,7 @@ static BcVec* bc_program_search(char *id, bool var) | |
| } | |
| // 'num' need not be initialized on entry | |
| - | static BC_STATUS zbc_program_num(BcResult *r, BcNum **num, bool hex) |
| + | static BC_STATUS zxc_program_num(BcResult *r, BcNum **num, bool hex) |
| { | |
| switch (r->t) { | |
| case XC_RESULT_STR: | |
| @@ -5082,14 +5071,14 @@ static BC_STATUS zbc_program_num(BcResult *r, BcNum **num, bool hex) | |
| unsigned base_t; | |
| size_t len; | |
| - | str = *bc_program_const(r->d.id.idx); |
| + | str = *xc_program_const(r->d.id.idx); |
| len = strlen(str); | |
| bc_num_init(&r->d.n, len); | |
| hex = hex && len == 1; | |
| base_t = hex ? 16 : G.prog.ib_t; | |
| - | s = zbc_num_parse(&r->d.n, str, base_t); |
| + | s = zxc_num_parse(&r->d.n, str, base_t); |
| if (s) { | |
| bc_num_free(&r->d.n); | |
| RETURN_STATUS(s); | |
| @@ -5103,7 +5092,7 @@ static BC_STATUS zbc_program_num(BcResult *r, BcNum **num, bool hex) | |
| case XC_RESULT_ARRAY_ELEM: { | |
| BcVec *v; | |
| - | v = bc_program_search(r->d.id.name, r->t == XC_RESULT_VAR); |
| + | v = xc_program_search(r->d.id.name, r->t == XC_RESULT_VAR); |
| if (r->t == XC_RESULT_ARRAY_ELEM) { | |
| v = bc_vec_top(v); | |
| @@ -5130,9 +5119,9 @@ static BC_STATUS zbc_program_num(BcResult *r, BcNum **num, bool hex) | |
| RETURN_STATUS(BC_STATUS_SUCCESS); | |
| } | |
| - | #define zbc_program_num(...) (zbc_program_num(__VA_ARGS__) COMMA_SUCCESS) |
| + | #define zxc_program_num(...) (zxc_program_num(__VA_ARGS__) COMMA_SUCCESS) |
| - | static BC_STATUS zbc_program_binOpPrep(BcResult **l, BcNum **ln, |
| + | static BC_STATUS zxc_program_binOpPrep(BcResult **l, BcNum **ln, |
| BcResult **r, BcNum **rn, bool assign) | |
| { | |
| BcStatus s; | |
| @@ -5149,15 +5138,15 @@ static BC_STATUS zbc_program_binOpPrep(BcResult **l, BcNum **ln, | |
| rt = (*r)->t; | |
| hex = assign && (lt == XC_RESULT_IBASE || lt == XC_RESULT_OBASE); | |
| - | s = zbc_program_num(*l, ln, false); |
| + | s = zxc_program_num(*l, ln, false); |
| if (s) RETURN_STATUS(s); | |
| - | s = zbc_program_num(*r, rn, hex); |
| + | s = zxc_program_num(*r, rn, hex); |
| if (s) RETURN_STATUS(s); | |
| // We run this again under these conditions in case any vector has been | |
| // reallocated out from under the BcNums or arrays we had. | |
| if (lt == rt && (lt == XC_RESULT_VAR || lt == XC_RESULT_ARRAY_ELEM)) { | |
| - | s = zbc_program_num(*l, ln, false); |
| + | s = zxc_program_num(*l, ln, false); |
| if (s) RETURN_STATUS(s); | |
| } | |
| @@ -5168,9 +5157,9 @@ static BC_STATUS zbc_program_binOpPrep(BcResult **l, BcNum **ln, | |
| RETURN_STATUS(s); | |
| } | |
| - | #define zbc_program_binOpPrep(...) (zbc_program_binOpPrep(__VA_ARGS__) COMMA_SUCCESS) |
| + | #define zxc_program_binOpPrep(...) (zxc_program_binOpPrep(__VA_ARGS__) COMMA_SUCCESS) |
| - | static void bc_program_binOpRetire(BcResult *r) |
| + | static void xc_program_binOpRetire(BcResult *r) |
| { | |
| r->t = XC_RESULT_TEMP; | |
| bc_vec_pop(&G.prog.results); | |
| @@ -5178,7 +5167,7 @@ static void bc_program_binOpRetire(BcResult *r) | |
| } | |
| // Note: *r and *n need not be initialized by caller | |
| - | static BC_STATUS zbc_program_prep(BcResult **r, BcNum **n) |
| + | static BC_STATUS zxc_program_prep(BcResult **r, BcNum **n) |
| { | |
| BcStatus s; | |
| @@ -5186,7 +5175,7 @@ static BC_STATUS zbc_program_prep(BcResult **r, BcNum **n) | |
| RETURN_STATUS(bc_error_stack_has_too_few_elements()); | |
| *r = bc_vec_top(&G.prog.results); | |
| - | s = zbc_program_num(*r, n, false); |
| + | s = zxc_program_num(*r, n, false); |
| if (s) RETURN_STATUS(s); | |
| if (!BC_PROG_NUM((*r), (*n))) | |
| @@ -5194,37 +5183,37 @@ static BC_STATUS zbc_program_prep(BcResult **r, BcNum **n) | |
| RETURN_STATUS(s); | |
| } | |
| - | #define zbc_program_prep(...) (zbc_program_prep(__VA_ARGS__) COMMA_SUCCESS) |
| + | #define zxc_program_prep(...) (zxc_program_prep(__VA_ARGS__) COMMA_SUCCESS) |
| - | static void bc_program_retire(BcResult *r, BcResultType t) |
| + | static void xc_program_retire(BcResult *r, BcResultType t) |
| { | |
| r->t = t; | |
| bc_result_pop_and_push(r); | |
| } | |
| - | static BC_STATUS zbc_program_op(char inst) |
| + | static BC_STATUS zxc_program_op(char inst) |
| { | |
| BcStatus s; | |
| BcResult *opd1, *opd2, res; | |
| BcNum *n1, *n2; | |
| - | s = zbc_program_binOpPrep(&opd1, &n1, &opd2, &n2, false); |
| + | s = zxc_program_binOpPrep(&opd1, &n1, &opd2, &n2, false); |
| if (s) RETURN_STATUS(s); | |
| bc_num_init_DEF_SIZE(&res.d.n); | |
| s = BC_STATUS_SUCCESS; | |
| - | IF_ERROR_RETURN_POSSIBLE(s =) zbc_program_ops[inst - XC_INST_POWER](n1, n2, &res.d.n, G.prog.scale); |
| + | IF_ERROR_RETURN_POSSIBLE(s =) zxc_program_ops[inst - XC_INST_POWER](n1, n2, &res.d.n, G.prog.scale); |
| if (s) goto err; | |
| - | bc_program_binOpRetire(&res); |
| + | xc_program_binOpRetire(&res); |
| RETURN_STATUS(s); | |
| err: | |
| bc_num_free(&res.d.n); | |
| RETURN_STATUS(s); | |
| } | |
| - | #define zbc_program_op(...) (zbc_program_op(__VA_ARGS__) COMMA_SUCCESS) |
| + | #define zxc_program_op(...) (zxc_program_op(__VA_ARGS__) COMMA_SUCCESS) |
| - | static BC_STATUS zbc_program_read(void) |
| + | static BC_STATUS zxc_program_read(void) |
| { | |
| BcStatus s; | |
| BcParse sv_parse; | |
| @@ -5233,16 +5222,16 @@ static BC_STATUS zbc_program_read(void) | |
| BcFunc *f; | |
| bc_char_vec_init(&buf); | |
| - | bc_read_line(&buf, stdin); |
| + | xc_read_line(&buf, stdin); |
| - | f = bc_program_func(BC_PROG_READ); |
| + | f = xc_program_func(BC_PROG_READ); |
| bc_vec_pop_all(&f->code); | |
| sv_parse = G.prs; // struct copy | |
| - | bc_parse_create(BC_PROG_READ); |
| + | xc_parse_create(BC_PROG_READ); |
| //G.err_line = G.prs.lex_line = 1; - not needed, error line info is not printed for read() | |
| - | s = zbc_parse_text_init(buf.v); |
| + | s = zxc_parse_text_init(buf.v); |
| if (s) goto exec_err; | |
| if (IS_BC) { | |
| IF_BC(s = zbc_parse_expr(0)); | |
| @@ -5260,18 +5249,18 @@ static BC_STATUS zbc_program_read(void) | |
| ip.inst_idx = 0; | |
| IF_BC(ip.results_len_before_call = G.prog.results.len;) | |
| - | bc_parse_push(XC_INST_RET); |
| + | xc_parse_push(XC_INST_RET); |
| bc_vec_push(&G.prog.exestack, &ip); | |
| exec_err: | |
| - | bc_parse_free(); |
| + | xc_parse_free(); |
| G.prs = sv_parse; // struct copy | |
| bc_vec_free(&buf); | |
| RETURN_STATUS(s); | |
| } | |
| - | #define zbc_program_read(...) (zbc_program_read(__VA_ARGS__) COMMA_SUCCESS) |
| + | #define zxc_program_read(...) (zxc_program_read(__VA_ARGS__) COMMA_SUCCESS) |
| - | static size_t bc_program_index(char *code, size_t *bgn) |
| + | static size_t xc_program_index(char *code, size_t *bgn) |
| { | |
| unsigned char *bytes = (void*)(code + *bgn); | |
| unsigned amt; | |
| @@ -5294,7 +5283,7 @@ static size_t bc_program_index(char *code, size_t *bgn) | |
| return res; | |
| } | |
| - | static char *bc_program_name(char *code, size_t *bgn) |
| + | static char *xc_program_name(char *code, size_t *bgn) |
| { | |
| code += *bgn; | |
| *bgn += strlen(code) + 1; | |
| @@ -5302,7 +5291,7 @@ static char *bc_program_name(char *code, size_t *bgn) | |
| return xstrdup(code); | |
| } | |
| - | static void bc_program_printString(const char *str) |
| + | static void xc_program_printString(const char *str) |
| { | |
| #if ENABLE_DC | |
| if (!str[0]) { | |
| @@ -5424,7 +5413,7 @@ static void bc_num_printDecimal(BcNum *n) | |
| typedef void (*BcNumDigitOp)(size_t, size_t, bool) FAST_FUNC; | |
| - | static BC_STATUS zbc_num_printNum(BcNum *n, unsigned base_t, size_t width, BcNumDigitOp print) |
| + | static BC_STATUS zxc_num_printNum(BcNum *n, unsigned base_t, size_t width, BcNumDigitOp print) |
| { | |
| BcStatus s; | |
| BcVec stack; | |
| @@ -5490,9 +5479,9 @@ static BC_STATUS zbc_num_printNum(BcNum *n, unsigned base_t, size_t width, BcNum | |
| bc_vec_free(&stack); | |
| RETURN_STATUS(s); | |
| } | |
| - | #define zbc_num_printNum(...) (zbc_num_printNum(__VA_ARGS__) COMMA_SUCCESS) |
| + | #define zxc_num_printNum(...) (zxc_num_printNum(__VA_ARGS__) COMMA_SUCCESS) |
| - | static BC_STATUS zbc_num_printBase(BcNum *n) |
| + | static BC_STATUS zxc_num_printBase(BcNum *n) |
| { | |
| BcStatus s; | |
| size_t width; | |
| @@ -5521,14 +5510,14 @@ static BC_STATUS zbc_num_printBase(BcNum *n) | |
| print = bc_num_printDigits; | |
| } | |
| - | s = zbc_num_printNum(n, G.prog.ob_t, width, print); |
| + | s = zxc_num_printNum(n, G.prog.ob_t, width, print); |
| n->neg = neg; | |
| RETURN_STATUS(s); | |
| } | |
| - | #define zbc_num_printBase(...) (zbc_num_printBase(__VA_ARGS__) COMMA_SUCCESS) |
| + | #define zxc_num_printBase(...) (zxc_num_printBase(__VA_ARGS__) COMMA_SUCCESS) |
| - | static BC_STATUS zbc_num_print(BcNum *n, bool newline) |
| + | static BC_STATUS zxc_num_print(BcNum *n, bool newline) |
| { | |
| BcStatus s = BC_STATUS_SUCCESS; | |
| @@ -5540,7 +5529,7 @@ static BC_STATUS zbc_num_print(BcNum *n, bool newline) | |
| } else if (G.prog.ob_t == 10) | |
| bc_num_printDecimal(n); | |
| else | |
| - | s = zbc_num_printBase(n); |
| + | s = zxc_num_printBase(n); |
| if (newline) { | |
| bb_putchar('\n'); | |
| @@ -5549,9 +5538,9 @@ static BC_STATUS zbc_num_print(BcNum *n, bool newline) | |
| RETURN_STATUS(s); | |
| } | |
| - | #define zbc_num_print(...) (zbc_num_print(__VA_ARGS__) COMMA_SUCCESS) |
| + | #define zxc_num_print(...) (zxc_num_print(__VA_ARGS__) COMMA_SUCCESS) |
| - | static BC_STATUS zbc_program_print(char inst, size_t idx) |
| + | static BC_STATUS zxc_program_print(char inst, size_t idx) |
| { | |
| BcStatus s; | |
| BcResult *r; | |
| @@ -5562,11 +5551,11 @@ static BC_STATUS zbc_program_print(char inst, size_t idx) | |
| RETURN_STATUS(bc_error_stack_has_too_few_elements()); | |
| r = bc_vec_item_rev(&G.prog.results, idx); | |
| - | s = zbc_program_num(r, &num, false); |
| + | s = zxc_program_num(r, &num, false); |
| if (s) RETURN_STATUS(s); | |
| if (BC_PROG_NUM(r, num)) { | |
| - | s = zbc_num_print(num, !pop); |
| + | s = zxc_num_print(num, !pop); |
| #if ENABLE_BC | |
| if (!s && IS_BC) bc_num_copy(&G.prog.last, num); | |
| #endif | |
| @@ -5574,7 +5563,7 @@ static BC_STATUS zbc_program_print(char inst, size_t idx) | |
| char *str; | |
| idx = (r->t == XC_RESULT_STR) ? r->d.id.idx : num->rdx; | |
| - | str = *bc_program_str(idx); |
| + | str = *xc_program_str(idx); |
| if (inst == XC_INST_PRINT_STR) { | |
| for (;;) { | |
| @@ -5585,7 +5574,7 @@ static BC_STATUS zbc_program_print(char inst, size_t idx) | |
| if (c == '\n') G.prog.nchars = 0; | |
| } | |
| } else { | |
| - | bc_program_printString(str); |
| + | xc_program_printString(str); |
| if (inst == XC_INST_PRINT) bb_putchar('\n'); | |
| } | |
| } | |
| @@ -5594,35 +5583,35 @@ static BC_STATUS zbc_program_print(char inst, size_t idx) | |
| RETURN_STATUS(s); | |
| } | |
| - | #define zbc_program_print(...) (zbc_program_print(__VA_ARGS__) COMMA_SUCCESS) |
| + | #define zxc_program_print(...) (zxc_program_print(__VA_ARGS__) COMMA_SUCCESS) |
| - | static BC_STATUS zbc_program_negate(void) |
| + | static BC_STATUS zxc_program_negate(void) |
| { | |
| BcStatus s; | |
| BcResult res, *ptr; | |
| BcNum *num; | |
| - | s = zbc_program_prep(&ptr, &num); |
| + | s = zxc_program_prep(&ptr, &num); |
| if (s) RETURN_STATUS(s); | |
| bc_num_init(&res.d.n, num->len); | |
| bc_num_copy(&res.d.n, num); | |
| if (res.d.n.len) res.d.n.neg = !res.d.n.neg; | |
| - | bc_program_retire(&res, XC_RESULT_TEMP); |
| + | xc_program_retire(&res, XC_RESULT_TEMP); |
| RETURN_STATUS(s); | |
| } | |
| - | #define zbc_program_negate(...) (zbc_program_negate(__VA_ARGS__) COMMA_SUCCESS) |
| + | #define zxc_program_negate(...) (zxc_program_negate(__VA_ARGS__) COMMA_SUCCESS) |
| - | static BC_STATUS zbc_program_logical(char inst) |
| + | static BC_STATUS zxc_program_logical(char inst) |
| { | |
| BcStatus s; | |
| BcResult *opd1, *opd2, res; | |
| BcNum *n1, *n2; | |
| ssize_t cond; | |
| - | s = zbc_program_binOpPrep(&opd1, &n1, &opd2, &n2, false); |
| + | s = zxc_program_binOpPrep(&opd1, &n1, &opd2, &n2, false); |
| if (s) RETURN_STATUS(s); | |
| bc_num_init_DEF_SIZE(&res.d.n); | |
| @@ -5658,11 +5647,11 @@ static BC_STATUS zbc_program_logical(char inst) | |
| if (cond) bc_num_one(&res.d.n); | |
| //else bc_num_zero(&res.d.n); - already is | |
| - | bc_program_binOpRetire(&res); |
| + | xc_program_binOpRetire(&res); |
| RETURN_STATUS(s); | |
| } | |
| - | #define zbc_program_logical(...) (zbc_program_logical(__VA_ARGS__) COMMA_SUCCESS) |
| + | #define zxc_program_logical(...) (zxc_program_logical(__VA_ARGS__) COMMA_SUCCESS) |
| #if ENABLE_DC | |
| static BC_STATUS zdc_program_assignStr(BcResult *r, BcVec *v, bool push) | |
| @@ -5689,7 +5678,7 @@ static BC_STATUS zdc_program_assignStr(BcResult *r, BcVec *v, bool push) | |
| #define zdc_program_assignStr(...) (zdc_program_assignStr(__VA_ARGS__) COMMA_SUCCESS) | |
| #endif // ENABLE_DC | |
| - | static BC_STATUS zbc_program_copyToVar(char *name, bool var) |
| + | static BC_STATUS zxc_program_copyToVar(char *name, bool var) |
| { | |
| BcStatus s; | |
| BcResult *ptr, r; | |
| @@ -5702,7 +5691,7 @@ static BC_STATUS zbc_program_copyToVar(char *name, bool var) | |
| ptr = bc_vec_top(&G.prog.results); | |
| if ((ptr->t == XC_RESULT_ARRAY) != !var) | |
| RETURN_STATUS(bc_error_variable_is_wrong_type()); | |
| - | v = bc_program_search(name, var); |
| + | v = xc_program_search(name, var); |
| #if ENABLE_DC | |
| if (ptr->t == XC_RESULT_STR && !var) | |
| @@ -5711,11 +5700,11 @@ static BC_STATUS zbc_program_copyToVar(char *name, bool var) | |
| RETURN_STATUS(zdc_program_assignStr(ptr, v, true)); | |
| #endif | |
| - | s = zbc_program_num(ptr, &n, false); |
| + | s = zxc_program_num(ptr, &n, false); |
| if (s) RETURN_STATUS(s); | |
| // Do this once more to make sure that pointers were not invalidated. | |
| - | v = bc_program_search(name, var); |
| + | v = xc_program_search(name, var); |
| if (var) { | |
| bc_num_init_DEF_SIZE(&r.d.n); | |
| @@ -5730,9 +5719,9 @@ static BC_STATUS zbc_program_copyToVar(char *name, bool var) | |
| RETURN_STATUS(s); | |
| } | |
| - | #define zbc_program_copyToVar(...) (zbc_program_copyToVar(__VA_ARGS__) COMMA_SUCCESS) |
| + | #define zxc_program_copyToVar(...) (zxc_program_copyToVar(__VA_ARGS__) COMMA_SUCCESS) |
| - | static BC_STATUS zbc_program_assign(char inst) |
| + | static BC_STATUS zxc_program_assign(char inst) |
| { | |
| BcStatus s; | |
| BcResult *left, *right, res; | |
| @@ -5740,7 +5729,7 @@ static BC_STATUS zbc_program_assign(char inst) | |
| bool assign = (inst == XC_INST_ASSIGN); | |
| bool ib, sc; | |
| - | s = zbc_program_binOpPrep(&left, &l, &right, &r, assign); |
| + | s = zxc_program_binOpPrep(&left, &l, &right, &r, assign); |
| if (s) RETURN_STATUS(s); | |
| ib = left->t == XC_RESULT_IBASE; | |
| @@ -5752,7 +5741,7 @@ static BC_STATUS zbc_program_assign(char inst) | |
| if (left->t != XC_RESULT_VAR) | |
| RETURN_STATUS(bc_error_variable_is_wrong_type()); | |
| - | v = bc_program_search(left->d.id.name, true); |
| + | v = xc_program_search(left->d.id.name, true); |
| RETURN_STATUS(zdc_program_assignStr(right, v, false)); | |
| } | |
| @@ -5772,7 +5761,7 @@ static BC_STATUS zbc_program_assign(char inst) | |
| bc_num_copy(l, r); | |
| else { | |
| s = BC_STATUS_SUCCESS; | |
| - | IF_ERROR_RETURN_POSSIBLE(s =) zbc_program_ops[inst - BC_INST_ASSIGN_POWER](l, r, l, G.prog.scale); |
| + | IF_ERROR_RETURN_POSSIBLE(s =) zxc_program_ops[inst - BC_INST_ASSIGN_POWER](l, r, l, G.prog.scale); |
| } | |
| if (s) RETURN_STATUS(s); | |
| #else | |
| @@ -5811,29 +5800,29 @@ static BC_STATUS zbc_program_assign(char inst) | |
| bc_num_init(&res.d.n, l->len); | |
| bc_num_copy(&res.d.n, l); | |
| - | bc_program_binOpRetire(&res); |
| + | xc_program_binOpRetire(&res); |
| RETURN_STATUS(s); | |
| } | |
| - | #define zbc_program_assign(...) (zbc_program_assign(__VA_ARGS__) COMMA_SUCCESS) |
| + | #define zxc_program_assign(...) (zxc_program_assign(__VA_ARGS__) COMMA_SUCCESS) |
| #if !ENABLE_DC | |
| - | #define bc_program_pushVar(code, bgn, pop, copy) \ |
| - | bc_program_pushVar(code, bgn) |
| + | #define xc_program_pushVar(code, bgn, pop, copy) \ |
| + | xc_program_pushVar(code, bgn) |
| // for bc, 'pop' and 'copy' are always false | |
| #endif | |
| - | static BC_STATUS bc_program_pushVar(char *code, size_t *bgn, |
| + | static BC_STATUS xc_program_pushVar(char *code, size_t *bgn, |
| bool pop, bool copy) | |
| { | |
| BcResult r; | |
| - | char *name = bc_program_name(code, bgn); |
| + | char *name = xc_program_name(code, bgn); |
| r.t = XC_RESULT_VAR; | |
| r.d.id.name = name; | |
| #if ENABLE_DC | |
| if (pop || copy) { | |
| - | BcVec *v = bc_program_search(name, true); |
| + | BcVec *v = xc_program_search(name, true); |
| BcNum *num = bc_vec_top(v); | |
| free(name); | |
| @@ -5858,7 +5847,7 @@ static BC_STATUS bc_program_pushVar(char *code, size_t *bgn, | |
| RETURN_STATUS(BC_STATUS_SUCCESS); | |
| } | |
| - | #define zbc_program_pushVar(...) (bc_program_pushVar(__VA_ARGS__) COMMA_SUCCESS) |
| + | #define zxc_program_pushVar(...) (xc_program_pushVar(__VA_ARGS__) COMMA_SUCCESS) |
| static BC_STATUS zbc_program_pushArray(char *code, size_t *bgn, char inst) | |
| { | |
| @@ -5866,7 +5855,7 @@ static BC_STATUS zbc_program_pushArray(char *code, size_t *bgn, char inst) | |
| BcResult r; | |
| BcNum *num; | |
| - | r.d.id.name = bc_program_name(code, bgn); |
| + | r.d.id.name = xc_program_name(code, bgn); |
| if (inst == XC_INST_ARRAY) { | |
| r.t = XC_RESULT_ARRAY; | |
| @@ -5875,7 +5864,7 @@ static BC_STATUS zbc_program_pushArray(char *code, size_t *bgn, char inst) | |
| BcResult *operand; | |
| unsigned long temp; | |
| - | s = zbc_program_prep(&operand, &num); |
| + | s = zxc_program_prep(&operand, &num); |
| if (s) goto err; | |
| s = zbc_num_ulong(num, &temp); | |
| if (s) goto err; | |
| @@ -5886,7 +5875,7 @@ static BC_STATUS zbc_program_pushArray(char *code, size_t *bgn, char inst) | |
| } | |
| r.d.id.idx = (size_t) temp; | |
| - | bc_program_retire(&r, XC_RESULT_ARRAY_ELEM); |
| + | xc_program_retire(&r, XC_RESULT_ARRAY_ELEM); |
| } | |
| err: | |
| if (s) free(r.d.id.name); | |
| @@ -5902,7 +5891,7 @@ static BC_STATUS zbc_program_incdec(char inst) | |
| BcNum *num; | |
| char inst2 = inst; | |
| - | s = zbc_program_prep(&ptr, &num); |
| + | s = zxc_program_prep(&ptr, &num); |
| if (s) RETURN_STATUS(s); | |
| if (inst == BC_INST_INC_POST || inst == BC_INST_DEC_POST) { | |
| @@ -5917,7 +5906,7 @@ static BC_STATUS zbc_program_incdec(char inst) | |
| : BC_INST_ASSIGN_MINUS; | |
| bc_vec_push(&G.prog.results, &res); | |
| - | s = zbc_program_assign(inst); |
| + | s = zxc_program_assign(inst); |
| if (s) RETURN_STATUS(s); | |
| if (inst2 == BC_INST_INC_POST || inst2 == BC_INST_DEC_POST) { | |
| @@ -5936,10 +5925,10 @@ static BC_STATUS zbc_program_call(char *code, size_t *idx) | |
| BcId *a; | |
| BcResult *arg; | |
| - | nparams = bc_program_index(code, idx); |
| + | nparams = xc_program_index(code, idx); |
| ip.inst_idx = 0; | |
| - | ip.func = bc_program_index(code, idx); |
| - | func = bc_program_func(ip.func); |
| + | ip.func = xc_program_index(code, idx); |
| + | func = xc_program_func(ip.func); |
| if (func->code.len == 0) { | |
| RETURN_STATUS(bc_error("undefined function")); | |
| @@ -5958,7 +5947,7 @@ static BC_STATUS zbc_program_call(char *code, size_t *idx) | |
| if ((!a->idx) != (arg->t == XC_RESULT_ARRAY) || arg->t == XC_RESULT_STR) | |
| RETURN_STATUS(bc_error_variable_is_wrong_type()); | |
| - | s = zbc_program_copyToVar(a->name, a->idx); |
| + | s = zxc_program_copyToVar(a->name, a->idx); |
| if (s) RETURN_STATUS(s); | |
| } | |
| @@ -5966,7 +5955,7 @@ static BC_STATUS zbc_program_call(char *code, size_t *idx) | |
| for (; i < func->autos.len; i++, a++) { | |
| BcVec *v; | |
| - | v = bc_program_search(a->name, a->idx); |
| + | v = xc_program_search(a->name, a->idx); |
| if (a->idx) { | |
| BcNum n2; | |
| bc_num_init_DEF_SIZE(&n2); | |
| @@ -5995,7 +5984,7 @@ static BC_STATUS zbc_program_return(char inst) | |
| if (!STACK_HAS_EQUAL_OR_MORE_THAN(&G.prog.results, ip->results_len_before_call + (inst == XC_INST_RET))) | |
| RETURN_STATUS(bc_error_stack_has_too_few_elements()); | |
| - | f = bc_program_func(ip->func); |
| + | f = xc_program_func(ip->func); |
| res.t = XC_RESULT_TEMP; | |
| if (inst == XC_INST_RET) { | |
| @@ -6003,7 +5992,7 @@ static BC_STATUS zbc_program_return(char inst) | |
| BcNum *num; | |
| BcResult *operand = bc_vec_top(&G.prog.results); | |
| - | s = zbc_program_num(operand, &num, false); |
| + | s = zxc_program_num(operand, &num, false); |
| if (s) RETURN_STATUS(s); | |
| bc_num_init(&res.d.n, num->len); | |
| bc_num_copy(&res.d.n, num); | |
| @@ -6016,7 +6005,7 @@ static BC_STATUS zbc_program_return(char inst) | |
| a = (void*)f->autos.v; | |
| for (i = 0; i < f->autos.len; i++, a++) { | |
| BcVec *v; | |
| - | v = bc_program_search(a->name, a->idx); |
| + | v = xc_program_search(a->name, a->idx); |
| bc_vec_pop(v); | |
| } | |
| @@ -6029,12 +6018,12 @@ static BC_STATUS zbc_program_return(char inst) | |
| #define zbc_program_return(...) (zbc_program_return(__VA_ARGS__) COMMA_SUCCESS) | |
| #endif // ENABLE_BC | |
| - | static unsigned long bc_program_scale(BcNum *n) |
| + | static unsigned long xc_program_scale(BcNum *n) |
| { | |
| return (unsigned long) n->rdx; | |
| } | |
| - | static unsigned long bc_program_len(BcNum *n) |
| + | static unsigned long xc_program_len(BcNum *n) |
| { | |
| size_t len = n->len; | |
| @@ -6047,7 +6036,7 @@ static unsigned long bc_program_len(BcNum *n) | |
| return len; | |
| } | |
| - | static BC_STATUS zbc_program_builtin(char inst) |
| + | static BC_STATUS zxc_program_builtin(char inst) |
| { | |
| BcStatus s; | |
| BcResult *opnd; | |
| @@ -6059,7 +6048,7 @@ static BC_STATUS zbc_program_builtin(char inst) | |
| RETURN_STATUS(bc_error_stack_has_too_few_elements()); | |
| opnd = bc_vec_top(&G.prog.results); | |
| - | s = zbc_program_num(opnd, &num, false); |
| + | s = zxc_program_num(opnd, &num, false); |
| if (s) RETURN_STATUS(s); | |
| #if ENABLE_DC | |
| @@ -6081,19 +6070,19 @@ static BC_STATUS zbc_program_builtin(char inst) | |
| char **str; | |
| size_t idx = opnd->t == XC_RESULT_STR ? opnd->d.id.idx : num->rdx; | |
| - | str = bc_program_str(idx); |
| + | str = xc_program_str(idx); |
| bc_num_ulong2num(&res.d.n, strlen(*str)); | |
| } | |
| #endif | |
| else { | |
| - | bc_num_ulong2num(&res.d.n, len ? bc_program_len(num) : bc_program_scale(num)); |
| + | bc_num_ulong2num(&res.d.n, len ? xc_program_len(num) : xc_program_scale(num)); |
| } | |
| - | bc_program_retire(&res, XC_RESULT_TEMP); |
| + | xc_program_retire(&res, XC_RESULT_TEMP); |
| RETURN_STATUS(s); | |
| } | |
| - | #define zbc_program_builtin(...) (zbc_program_builtin(__VA_ARGS__) COMMA_SUCCESS) |
| + | #define zxc_program_builtin(...) (zxc_program_builtin(__VA_ARGS__) COMMA_SUCCESS) |
| #if ENABLE_DC | |
| static BC_STATUS zdc_program_divmod(void) | |
| @@ -6102,7 +6091,7 @@ static BC_STATUS zdc_program_divmod(void) | |
| BcResult *opd1, *opd2, res, res2; | |
| BcNum *n1, *n2; | |
| - | s = zbc_program_binOpPrep(&opd1, &n1, &opd2, &n2, false); |
| + | s = zxc_program_binOpPrep(&opd1, &n1, &opd2, &n2, false); |
| if (s) RETURN_STATUS(s); | |
| bc_num_init_DEF_SIZE(&res.d.n); | |
| @@ -6111,7 +6100,7 @@ static BC_STATUS zdc_program_divmod(void) | |
| s = zbc_num_divmod(n1, n2, &res2.d.n, &res.d.n, G.prog.scale); | |
| if (s) goto err; | |
| - | bc_program_binOpRetire(&res2); |
| + | xc_program_binOpRetire(&res2); |
| res.t = XC_RESULT_TEMP; | |
| bc_vec_push(&G.prog.results, &res); | |
| @@ -6131,11 +6120,11 @@ static BC_STATUS zdc_program_modexp(void) | |
| if (!STACK_HAS_MORE_THAN(&G.prog.results, 2)) | |
| RETURN_STATUS(bc_error_stack_has_too_few_elements()); | |
| - | s = zbc_program_binOpPrep(&r2, &n2, &r3, &n3, false); |
| + | s = zxc_program_binOpPrep(&r2, &n2, &r3, &n3, false); |
| if (s) RETURN_STATUS(s); | |
| r1 = bc_vec_item_rev(&G.prog.results, 2); | |
| - | s = zbc_program_num(r1, &n1, false); |
| + | s = zxc_program_num(r1, &n1, false); |
| if (s) RETURN_STATUS(s); | |
| if (!BC_PROG_NUM(r1, n1)) | |
| RETURN_STATUS(bc_error_variable_is_wrong_type()); | |
| @@ -6143,11 +6132,11 @@ static BC_STATUS zdc_program_modexp(void) | |
| // Make sure that the values have their pointers updated, if necessary. | |
| if (r1->t == XC_RESULT_VAR || r1->t == XC_RESULT_ARRAY_ELEM) { | |
| if (r1->t == r2->t) { | |
| - | s = zbc_program_num(r2, &n2, false); |
| + | s = zxc_program_num(r2, &n2, false); |
| if (s) RETURN_STATUS(s); | |
| } | |
| if (r1->t == r3->t) { | |
| - | s = zbc_program_num(r3, &n3, false); |
| + | s = zxc_program_num(r3, &n3, false); |
| if (s) RETURN_STATUS(s); | |
| } | |
| } | |
| @@ -6157,7 +6146,7 @@ static BC_STATUS zdc_program_modexp(void) | |
| if (s) goto err; | |
| bc_vec_pop(&G.prog.results); | |
| - | bc_program_binOpRetire(&res); |
| + | xc_program_binOpRetire(&res); |
| RETURN_STATUS(s); | |
| err: | |
| @@ -6192,7 +6181,7 @@ static BC_STATUS zdc_program_asciify(void) | |
| RETURN_STATUS(bc_error_stack_has_too_few_elements()); | |
| r = bc_vec_top(&G.prog.results); | |
| - | s = zbc_program_num(r, &num, false); |
| + | s = zxc_program_num(r, &num, false); |
| if (s) RETURN_STATUS(s); | |
| if (BC_PROG_NUM(r, num)) { | |
| @@ -6219,7 +6208,7 @@ static BC_STATUS zdc_program_asciify(void) | |
| } else { | |
| char *sp; | |
| idx = (r->t == XC_RESULT_STR) ? r->d.id.idx : num->rdx; | |
| - | sp = *bc_program_str(idx); |
| + | sp = *xc_program_str(idx); |
| c = sp[0]; | |
| } | |
| @@ -6256,15 +6245,15 @@ static BC_STATUS zdc_program_printStream(void) | |
| RETURN_STATUS(bc_error_stack_has_too_few_elements()); | |
| r = bc_vec_top(&G.prog.results); | |
| - | s = zbc_program_num(r, &n, false); |
| + | s = zxc_program_num(r, &n, false); |
| if (s) RETURN_STATUS(s); | |
| if (BC_PROG_NUM(r, n)) { | |
| - | s = zbc_num_printNum(n, 0x100, 1, dc_num_printChar); |
| + | s = zxc_num_printNum(n, 0x100, 1, dc_num_printChar); |
| } else { | |
| char *str; | |
| idx = (r->t == XC_RESULT_STR) ? r->d.id.idx : n->rdx; | |
| - | str = *bc_program_str(idx); |
| + | str = *xc_program_str(idx); |
| fputs(str, stdout); | |
| } | |
| @@ -6279,7 +6268,7 @@ static BC_STATUS zdc_program_nquit(void) | |
| BcNum *num; | |
| unsigned long val; | |
| - | s = zbc_program_prep(&opnd, &num); |
| + | s = zxc_program_prep(&opnd, &num); |
| if (s) RETURN_STATUS(s); | |
| s = zbc_num_ulong(num, &val); | |
| if (s) RETURN_STATUS(s); | |
| @@ -6315,13 +6304,13 @@ static BC_STATUS zdc_program_execStr(char *code, size_t *bgn, bool cond) | |
| BcNum *n = n; // for compiler | |
| bool exec; | |
| char *name; | |
| - | char *then_name = bc_program_name(code, bgn); |
| + | char *then_name = xc_program_name(code, bgn); |
| char *else_name = NULL; | |
| if (code[*bgn] == '\0') | |
| (*bgn) += 1; | |
| else | |
| - | else_name = bc_program_name(code, bgn); |
| + | else_name = xc_program_name(code, bgn); |
| exec = r->d.n.len != 0; | |
| name = then_name; | |
| @@ -6332,7 +6321,7 @@ static BC_STATUS zdc_program_execStr(char *code, size_t *bgn, bool cond) | |
| if (exec) { | |
| BcVec *v; | |
| - | v = bc_program_search(name, true); |
| + | v = xc_program_search(name, true); |
| n = bc_vec_top(v); | |
| } | |
| @@ -6351,7 +6340,7 @@ static BC_STATUS zdc_program_execStr(char *code, size_t *bgn, bool cond) | |
| sidx = r->d.id.idx; | |
| } else if (r->t == XC_RESULT_VAR) { | |
| BcNum *n; | |
| - | s = zbc_program_num(r, &n, false); |
| + | s = zxc_program_num(r, &n, false); |
| if (s || !BC_PROG_STR(n)) goto exit; | |
| sidx = n->rdx; | |
| } else | |
| @@ -6360,24 +6349,24 @@ static BC_STATUS zdc_program_execStr(char *code, size_t *bgn, bool cond) | |
| fidx = sidx + BC_PROG_REQ_FUNCS; | |
| - | f = bc_program_func(fidx); |
| + | f = xc_program_func(fidx); |
| if (f->code.len == 0) { | |
| BcParse sv_parse; | |
| char *str; | |
| sv_parse = G.prs; // struct copy | |
| - | bc_parse_create(fidx); |
| - | str = *bc_program_str(sidx); |
| - | s = zbc_parse_text_init(str); |
| + | xc_parse_create(fidx); |
| + | str = *xc_program_str(sidx); |
| + | s = zxc_parse_text_init(str); |
| if (s) goto err; | |
| s = zdc_parse_exprs_until_eof(); | |
| if (s) goto err; | |
| - | bc_parse_push(DC_INST_POP_EXEC); |
| + | xc_parse_push(DC_INST_POP_EXEC); |
| if (G.prs.lex != XC_LEX_EOF) | |
| s = bc_error_bad_expression(); | |
| - | bc_parse_free(); |
| + | xc_parse_free(); |
| G.prs = sv_parse; // struct copy | |
| if (s) { | |
| err: | |
| @@ -6400,7 +6389,7 @@ static BC_STATUS zdc_program_execStr(char *code, size_t *bgn, bool cond) | |
| #define zdc_program_execStr(...) (zdc_program_execStr(__VA_ARGS__) COMMA_SUCCESS) | |
| #endif // ENABLE_DC | |
| - | static void bc_program_pushGlobal(char inst) |
| + | static void xc_program_pushGlobal(char inst) |
| { | |
| BcResult res; | |
| unsigned long val; | |
| @@ -6418,11 +6407,11 @@ static void bc_program_pushGlobal(char inst) | |
| bc_vec_push(&G.prog.results, &res); | |
| } | |
| - | static BC_STATUS zbc_program_exec(void) |
| + | static BC_STATUS zxc_program_exec(void) |
| { | |
| BcResult r, *ptr; | |
| BcInstPtr *ip = bc_vec_top(&G.prog.exestack); | |
| - | BcFunc *func = bc_program_func(ip->func); |
| + | BcFunc *func = xc_program_func(ip->func); |
| char *code = func->code.v; | |
| dbg_exec("func:%zd bytes:%zd ip:%zd results.len:%d", | |
| @@ -6438,18 +6427,18 @@ static BC_STATUS zbc_program_exec(void) | |
| BcNum *num; | |
| bool zero; | |
| dbg_exec("BC_INST_JUMP_ZERO:"); | |
| - | s = zbc_program_prep(&ptr, &num); |
| + | s = zxc_program_prep(&ptr, &num); |
| if (s) RETURN_STATUS(s); | |
| zero = (bc_num_cmp(num, &G.prog.zero) == 0); | |
| bc_vec_pop(&G.prog.results); | |
| if (!zero) { | |
| - | bc_program_index(code, &ip->inst_idx); |
| + | xc_program_index(code, &ip->inst_idx); |
| break; | |
| } | |
| // else: fall through | |
| } | |
| case BC_INST_JUMP: { | |
| - | size_t idx = bc_program_index(code, &ip->inst_idx); |
| + | size_t idx = xc_program_index(code, &ip->inst_idx); |
| size_t *addr = bc_vec_item(&func->labels, idx); | |
| dbg_exec("BC_INST_JUMP: to %ld", (long)*addr); | |
| ip->inst_idx = *addr; | |
| @@ -6485,15 +6474,15 @@ static BC_STATUS zbc_program_exec(void) | |
| case XC_INST_REL_LT: | |
| case XC_INST_REL_GT: | |
| dbg_exec("BC_INST_BOOL:"); | |
| - | s = zbc_program_logical(inst); |
| + | s = zxc_program_logical(inst); |
| break; | |
| case XC_INST_READ: | |
| dbg_exec("XC_INST_READ:"); | |
| - | s = zbc_program_read(); |
| + | s = zxc_program_read(); |
| goto read_updated_ip; | |
| case XC_INST_VAR: | |
| dbg_exec("XC_INST_VAR:"); | |
| - | s = zbc_program_pushVar(code, &ip->inst_idx, false, false); |
| + | s = zxc_program_pushVar(code, &ip->inst_idx, false, false); |
| break; | |
| case XC_INST_ARRAY_ELEM: | |
| case XC_INST_ARRAY: | |
| @@ -6511,18 +6500,18 @@ static BC_STATUS zbc_program_exec(void) | |
| case XC_INST_OBASE: | |
| case XC_INST_SCALE: | |
| dbg_exec("XC_INST_internalvar(%d):", inst - XC_INST_IBASE); | |
| - | bc_program_pushGlobal(inst); |
| + | xc_program_pushGlobal(inst); |
| break; | |
| case XC_INST_SCALE_FUNC: | |
| case XC_INST_LENGTH: | |
| case XC_INST_SQRT: | |
| dbg_exec("BC_INST_builtin:"); | |
| - | s = zbc_program_builtin(inst); |
| + | s = zxc_program_builtin(inst); |
| break; | |
| case XC_INST_NUM: | |
| dbg_exec("XC_INST_NUM:"); | |
| r.t = XC_RESULT_CONSTANT; | |
| - | r.d.id.idx = bc_program_index(code, &ip->inst_idx); |
| + | r.d.id.idx = xc_program_index(code, &ip->inst_idx); |
| bc_vec_push(&G.prog.results, &r); | |
| break; | |
| case XC_INST_POP: | |
| @@ -6536,12 +6525,12 @@ static BC_STATUS zbc_program_exec(void) | |
| case XC_INST_PRINT_POP: | |
| case XC_INST_PRINT_STR: | |
| dbg_exec("XC_INST_PRINTxyz:"); | |
| - | s = zbc_program_print(inst, 0); |
| + | s = zxc_program_print(inst, 0); |
| break; | |
| case XC_INST_STR: | |
| dbg_exec("XC_INST_STR:"); | |
| r.t = XC_RESULT_STR; | |
| - | r.d.id.idx = bc_program_index(code, &ip->inst_idx); |
| + | r.d.id.idx = xc_program_index(code, &ip->inst_idx); |
| bc_vec_push(&G.prog.results, &r); | |
| break; | |
| case XC_INST_POWER: | |
| @@ -6551,23 +6540,23 @@ static BC_STATUS zbc_program_exec(void) | |
| case XC_INST_PLUS: | |
| case XC_INST_MINUS: | |
| dbg_exec("BC_INST_binaryop:"); | |
| - | s = zbc_program_op(inst); |
| + | s = zxc_program_op(inst); |
| break; | |
| case XC_INST_BOOL_NOT: { | |
| BcNum *num; | |
| dbg_exec("XC_INST_BOOL_NOT:"); | |
| - | s = zbc_program_prep(&ptr, &num); |
| + | s = zxc_program_prep(&ptr, &num); |
| if (s) RETURN_STATUS(s); | |
| bc_num_init_DEF_SIZE(&r.d.n); | |
| if (bc_num_cmp(num, &G.prog.zero) == 0) | |
| bc_num_one(&r.d.n); | |
| //else bc_num_zero(&r.d.n); - already is | |
| - | bc_program_retire(&r, XC_RESULT_TEMP); |
| + | xc_program_retire(&r, XC_RESULT_TEMP); |
| break; | |
| } | |
| case XC_INST_NEG: | |
| dbg_exec("XC_INST_NEG:"); | |
| - | s = zbc_program_negate(); |
| + | s = zxc_program_negate(); |
| break; | |
| #if ENABLE_BC | |
| case BC_INST_ASSIGN_POWER: | |
| @@ -6579,7 +6568,7 @@ static BC_STATUS zbc_program_exec(void) | |
| #endif | |
| case XC_INST_ASSIGN: | |
| dbg_exec("BC_INST_ASSIGNxyz:"); | |
| - | s = zbc_program_assign(inst); |
| + | s = zxc_program_assign(inst); |
| break; | |
| #if ENABLE_DC | |
| case DC_INST_POP_EXEC: | |
| @@ -6603,7 +6592,7 @@ static BC_STATUS zbc_program_exec(void) | |
| size_t idx; | |
| dbg_exec("DC_INST_PRINT_STACK:"); | |
| for (idx = 0; idx < G.prog.results.len; ++idx) { | |
| - | s = zbc_program_print(XC_INST_PRINT, idx); |
| + | s = zxc_program_print(XC_INST_PRINT, idx); |
| if (s) break; | |
| } | |
| break; | |
| @@ -6647,12 +6636,12 @@ static BC_STATUS zbc_program_exec(void) | |
| case DC_INST_LOAD: | |
| case DC_INST_PUSH_VAR: { | |
| bool copy = inst == DC_INST_LOAD; | |
| - | s = zbc_program_pushVar(code, &ip->inst_idx, true, copy); |
| + | s = zxc_program_pushVar(code, &ip->inst_idx, true, copy); |
| break; | |
| } | |
| case DC_INST_PUSH_TO_VAR: { | |
| - | char *name = bc_program_name(code, &ip->inst_idx); |
| - | s = zbc_program_copyToVar(name, true); |
| + | char *name = xc_program_name(code, &ip->inst_idx); |
| + | s = zxc_program_copyToVar(name, true); |
| free(name); | |
| break; | |
| } | |
| @@ -6670,13 +6659,13 @@ static BC_STATUS zbc_program_exec(void) | |
| read_updated_ip: | |
| // Instruction stack has changed, read new pointers | |
| ip = bc_vec_top(&G.prog.exestack); | |
| - | func = bc_program_func(ip->func); |
| + | func = xc_program_func(ip->func); |
| code = func->code.v; | |
| dbg_exec("func:%zd bytes:%zd ip:%zd", ip->func, func->code.len, ip->inst_idx); | |
| } | |
| if (s || G_interrupt) { | |
| - | bc_program_reset(); |
| + | xc_program_reset(); |
| RETURN_STATUS(s); | |
| } | |
| @@ -6685,9 +6674,9 @@ static BC_STATUS zbc_program_exec(void) | |
| RETURN_STATUS(BC_STATUS_SUCCESS); | |
| } | |
| - | #define zbc_program_exec(...) (zbc_program_exec(__VA_ARGS__) COMMA_SUCCESS) |
| + | #define zxc_program_exec(...) (zxc_program_exec(__VA_ARGS__) COMMA_SUCCESS) |
| - | static unsigned bc_vm_envLen(const char *var) |
| + | static unsigned xc_vm_envLen(const char *var) |
| { | |
| char *lenv; | |
| unsigned len; | |
| @@ -6703,12 +6692,12 @@ static unsigned bc_vm_envLen(const char *var) | |
| return len; | |
| } | |
| - | static BC_STATUS zbc_vm_process(const char *text) |
| + | static BC_STATUS zxc_vm_process(const char *text) |
| { | |
| BcStatus s; | |
| dbg_lex_enter("%s:%d entered", __func__, __LINE__); | |
| - | s = zbc_parse_text_init(text); // does the first zbc_lex_next() |
| + | s = zxc_parse_text_init(text); // does the first zxc_lex_next() |
| if (s) RETURN_STATUS(s); | |
| IF_BC(check_eof:) | |
| @@ -6722,7 +6711,7 @@ static BC_STATUS zbc_vm_process(const char *text) | |
| if (G.prs.lex == BC_LEX_SCOLON | |
| || G.prs.lex == XC_LEX_NLINE | |
| ) { | |
| - | s = zbc_lex_next(); |
| + | s = zxc_lex_next(); |
| if (s) goto err; | |
| goto check_eof; | |
| } | |
| @@ -6746,14 +6735,14 @@ static BC_STATUS zbc_vm_process(const char *text) | |
| goto err; | |
| } | |
| // The above logic is fragile. Check these examples: | |
| - | // - interative read() still works |
| + | // - interactive read() still works |
| #endif | |
| } else { | |
| #if ENABLE_DC | |
| // Most of dc parsing assumes all whitespace, | |
| // including '\n', is eaten. | |
| while (G.prs.lex == XC_LEX_NLINE) { | |
| - | s = zbc_lex_next(); |
| + | s = zxc_lex_next(); |
| if (s) goto err; | |
| if (G.prs.lex == XC_LEX_EOF) | |
| goto done; | |
| @@ -6763,14 +6752,14 @@ static BC_STATUS zbc_vm_process(const char *text) | |
| } | |
| if (s || G_interrupt) { | |
| err: | |
| - | bc_parse_reset(); // includes bc_program_reset() |
| + | xc_parse_reset(); // includes xc_program_reset() |
| RETURN_STATUS(BC_STATUS_FAILURE); | |
| } | |
| dbg_lex("%s:%d executing...", __func__, __LINE__); | |
| - | s = zbc_program_exec(); |
| + | s = zxc_program_exec(); |
| if (s) { | |
| - | bc_program_reset(); |
| + | xc_program_reset(); |
| break; | |
| } | |
| @@ -6781,7 +6770,7 @@ static BC_STATUS zbc_vm_process(const char *text) | |
| if (ip->func != BC_PROG_MAIN) | |
| bb_error_msg_and_die("BUG:not MAIN"); | |
| #endif | |
| - | f = bc_program_func_BC_PROG_MAIN(); |
| + | f = xc_program_func_BC_PROG_MAIN(); |
| // bc discards strings, constants and code after each | |
| // top-level statement in the "main program". | |
| // This prevents "yes 1 | bc" from growing its memory | |
| @@ -6824,9 +6813,9 @@ static BC_STATUS zbc_vm_process(const char *text) | |
| dbg_lex_done("%s:%d done", __func__, __LINE__); | |
| RETURN_STATUS(s); | |
| } | |
| - | #define zbc_vm_process(...) (zbc_vm_process(__VA_ARGS__) COMMA_SUCCESS) |
| + | #define zxc_vm_process(...) (zxc_vm_process(__VA_ARGS__) COMMA_SUCCESS) |
| - | static BC_STATUS zbc_vm_execute_FILE(FILE *fp, const char *filename) |
| + | static BC_STATUS zxc_vm_execute_FILE(FILE *fp, const char *filename) |
| { | |
| // So far bc/dc have no way to include a file from another file, | |
| // therefore we know G.prs.lex_filename == NULL on entry | |
| @@ -6838,7 +6827,7 @@ static BC_STATUS zbc_vm_execute_FILE(FILE *fp, const char *filename) | |
| G.err_line = G.prs.lex_line = 1; | |
| do { | |
| - | s = zbc_vm_process(""); |
| + | s = zxc_vm_process(""); |
| // We do not stop looping on errors here if reading stdin. | |
| // Example: start interactive bc and enter "return". | |
| // It should say "'return' not in a function" | |
| @@ -6847,20 +6836,20 @@ static BC_STATUS zbc_vm_execute_FILE(FILE *fp, const char *filename) | |
| G.prs.lex_filename = NULL; | |
| RETURN_STATUS(s); | |
| } | |
| - | #define zbc_vm_execute_FILE(...) (zbc_vm_execute_FILE(__VA_ARGS__) COMMA_SUCCESS) |
| + | #define zxc_vm_execute_FILE(...) (zxc_vm_execute_FILE(__VA_ARGS__) COMMA_SUCCESS) |
| - | static BC_STATUS zbc_vm_file(const char *file) |
| + | static BC_STATUS zxc_vm_file(const char *file) |
| { | |
| BcStatus s; | |
| FILE *fp; | |
| fp = xfopen_for_read(file); | |
| - | s = zbc_vm_execute_FILE(fp, file); |
| + | s = zxc_vm_execute_FILE(fp, file); |
| fclose(fp); | |
| RETURN_STATUS(s); | |
| } | |
| - | #define zbc_vm_file(...) (zbc_vm_file(__VA_ARGS__) COMMA_SUCCESS) |
| + | #define zxc_vm_file(...) (zxc_vm_file(__VA_ARGS__) COMMA_SUCCESS) |
| #if ENABLE_BC | |
| static void bc_vm_info(void) | |
| @@ -7106,7 +7095,7 @@ static const char bc_lib[] ALIGN1 = { | |
| }; | |
| #endif // ENABLE_BC | |
| - | static BC_STATUS zbc_vm_exec(void) |
| + | static BC_STATUS zxc_vm_exec(void) |
| { | |
| char **fname; | |
| BcStatus s; | |
| @@ -7117,7 +7106,7 @@ static BC_STATUS zbc_vm_exec(void) | |
| // We know that internal library is not buggy, | |
| // thus error checking is normally disabled. | |
| # define DEBUG_LIB 0 | |
| - | s = zbc_vm_process(bc_lib); |
| + | s = zxc_vm_process(bc_lib); |
| if (DEBUG_LIB && s) RETURN_STATUS(s); | |
| } | |
| #endif | |
| @@ -7125,7 +7114,7 @@ static BC_STATUS zbc_vm_exec(void) | |
| s = BC_STATUS_SUCCESS; | |
| fname = (void*)G.files.v; | |
| for (i = 0; i < G.files.len; i++) { | |
| - | s = zbc_vm_file(*fname++); |
| + | s = zxc_vm_file(*fname++); |
| if (ENABLE_FEATURE_CLEAN_UP && !G_ttyin && s) { | |
| // Debug config, non-interactive mode: | |
| // return all the way back to main. | |
| @@ -7136,14 +7125,14 @@ static BC_STATUS zbc_vm_exec(void) | |
| } | |
| if (IS_BC || (option_mask32 & BC_FLAG_I)) | |
| - | s = zbc_vm_execute_FILE(stdin, /*filename:*/ NULL); |
| + | s = zxc_vm_execute_FILE(stdin, /*filename:*/ NULL); |
| RETURN_STATUS(s); | |
| } | |
| - | #define zbc_vm_exec(...) (zbc_vm_exec(__VA_ARGS__) COMMA_SUCCESS) |
| + | #define zxc_vm_exec(...) (zxc_vm_exec(__VA_ARGS__) COMMA_SUCCESS) |
| #if ENABLE_FEATURE_CLEAN_UP | |
| - | static void bc_program_free(void) |
| + | static void xc_program_free(void) |
| { | |
| bc_vec_free(&G.prog.fns); | |
| IF_BC(bc_vec_free(&G.prog.fn_map);) | |
| @@ -7161,16 +7150,16 @@ static void bc_program_free(void) | |
| bc_vec_free(&G.input_buffer); | |
| } | |
| - | static void bc_vm_free(void) |
| + | static void xc_vm_free(void) |
| { | |
| bc_vec_free(&G.files); | |
| - | bc_program_free(); |
| - | bc_parse_free(); |
| + | xc_program_free(); |
| + | xc_parse_free(); |
| free(G.env_args); | |
| } | |
| #endif | |
| - | static void bc_program_init(void) |
| + | static void xc_program_init(void) |
| { | |
| BcInstPtr ip; | |
| @@ -7200,8 +7189,8 @@ static void bc_program_init(void) | |
| IF_BC(bc_program_addFunc(xstrdup("1"))); // func #1: for read() | |
| } else { | |
| // in dc, functions have no names | |
| - | bc_program_add_fn(); |
| - | bc_program_add_fn(); |
| + | xc_program_add_fn(); |
| + | xc_program_add_fn(); |
| } | |
| bc_vec_init(&G.prog.vars, sizeof(BcVec), bc_vec_free); | |
| @@ -7219,17 +7208,17 @@ static void bc_program_init(void) | |
| bc_char_vec_init(&G.input_buffer); | |
| } | |
| - | static int bc_vm_init(const char *env_len) |
| + | static int xc_vm_init(const char *env_len) |
| { | |
| #if ENABLE_FEATURE_EDITING | |
| G.line_input_state = new_line_input_t(DO_HISTORY); | |
| #endif | |
| - | G.prog.len = bc_vm_envLen(env_len); |
| + | G.prog.len = xc_vm_envLen(env_len); |
| bc_vec_init(&G.files, sizeof(char *), NULL); | |
| + | xc_program_init(); |
| IF_BC(if (IS_BC) bc_vm_envArgs();) | |
| - | bc_program_init(); |
| - | bc_parse_create(BC_PROG_MAIN); |
| + | xc_parse_create(BC_PROG_MAIN); |
| //TODO: in GNU bc, the check is (isatty(0) && isatty(1)), | |
| //-i option unconditionally enables this regardless of isatty(): | |
| @@ -7261,13 +7250,13 @@ static int bc_vm_init(const char *env_len) | |
| return 0; // "not a tty" | |
| } | |
| - | static BcStatus bc_vm_run(void) |
| + | static BcStatus xc_vm_run(void) |
| { | |
| - | BcStatus st = zbc_vm_exec(); |
| + | BcStatus st = zxc_vm_exec(); |
| #if ENABLE_FEATURE_CLEAN_UP | |
| if (G_exiting) // it was actually "halt" or "quit" | |
| st = EXIT_SUCCESS; | |
| - | bc_vm_free(); |
| + | xc_vm_free(); |
| # if ENABLE_FEATURE_EDITING | |
| free_line_input_t(G.line_input_state); | |
| # endif | |
| @@ -7285,14 +7274,14 @@ int bc_main(int argc UNUSED_PARAM, char **argv) | |
| INIT_G(); | |
| - | is_tty = bc_vm_init("BC_LINE_LENGTH"); |
| + | is_tty = xc_vm_init("BC_LINE_LENGTH"); |
| bc_args(argv); | |
| if (is_tty && !(option_mask32 & BC_FLAG_Q)) | |
| bc_vm_info(); | |
| - | return bc_vm_run(); |
| + | return xc_vm_run(); |
| } | |
| #endif | |
| @@ -7314,7 +7303,7 @@ int dc_main(int argc UNUSED_PARAM, char **argv) | |
| // |123\ | | |
| // |456 | | |
| // Do the same, or it's a bug? | |
| - | bc_vm_init("DC_LINE_LENGTH"); |
| + | xc_vm_init("DC_LINE_LENGTH"); |
| // Run -e'SCRIPT' and -fFILE in order of appearance, then handle FILEs | |
| noscript = BC_FLAG_I; | |
| @@ -7325,12 +7314,12 @@ int dc_main(int argc UNUSED_PARAM, char **argv) | |
| switch (n) { | |
| case 'e': | |
| noscript = 0; | |
| - | n = zbc_vm_process(optarg); |
| + | n = zxc_vm_process(optarg); |
| if (n) return n; | |
| break; | |
| case 'f': | |
| noscript = 0; | |
| - | n = zbc_vm_file(optarg); |
| + | n = zxc_vm_file(optarg); |
| if (n) return n; | |
| break; | |
| case 'x': | |
| @@ -7349,7 +7338,7 @@ int dc_main(int argc UNUSED_PARAM, char **argv) | |
| option_mask32 |= noscript; // set BC_FLAG_I if we need to interpret stdin | |
| - | return bc_vm_run(); |
| + | return xc_vm_run(); |
| } | |
| #endif | |