aboutsummaryrefslogtreecommitdiff
path: root/miscutils/bc.c
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2018-12-24 12:25:20 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2018-12-24 12:25:20 +0100
commit7d9be0bc6dc3efdbaf39810240e47553f9c8b90d (patch)
tree6bcd69440c7073523964501be912cbc91d527a5e /miscutils/bc.c
parent2097ac8d9e07320ff0f087bd6b3f6987aa02eb69 (diff)
downloadbusybox-w32-7d9be0bc6dc3efdbaf39810240e47553f9c8b90d.tar.gz
busybox-w32-7d9be0bc6dc3efdbaf39810240e47553f9c8b90d.tar.bz2
busybox-w32-7d9be0bc6dc3efdbaf39810240e47553f9c8b90d.zip
bc: rename BC_LEXs to XC_LEXs for common constants, and to DC_LEXs for dc-specific
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to '')
-rw-r--r--miscutils/bc.c168
1 files changed, 84 insertions, 84 deletions
diff --git a/miscutils/bc.c b/miscutils/bc.c
index 7a69a0816..b4e9e6cb1 100644
--- a/miscutils/bc.c
+++ b/miscutils/bc.c
@@ -391,8 +391,8 @@ typedef struct BcInstPtr {
391 391
392// BC_LEX_NEG is not used in lexing; it is only for parsing. 392// BC_LEX_NEG is not used in lexing; it is only for parsing.
393typedef enum BcLexType { 393typedef enum BcLexType {
394 BC_LEX_EOF, 394 XC_LEX_EOF,
395 BC_LEX_INVALID, 395 XC_LEX_INVALID,
396 396
397 BC_LEX_OP_INC, 397 BC_LEX_OP_INC,
398 BC_LEX_OP_DEC, 398 BC_LEX_OP_DEC,
@@ -467,33 +467,33 @@ typedef enum BcLexType {
467 BC_LEX_KEY_WHILE, 467 BC_LEX_KEY_WHILE,
468 468
469#if ENABLE_DC 469#if ENABLE_DC
470 BC_LEX_EQ_NO_REG, 470 DC_LEX_EQ_NO_REG,
471 BC_LEX_OP_MODEXP, 471 DC_LEX_OP_MODEXP,
472 BC_LEX_OP_DIVMOD, 472 DC_LEX_OP_DIVMOD,
473 473
474 BC_LEX_COLON, 474 DC_LEX_COLON,
475 BC_LEX_ELSE, 475 DC_LEX_ELSE,
476 BC_LEX_EXECUTE, 476 DC_LEX_EXECUTE,
477 BC_LEX_PRINT_STACK, 477 DC_LEX_PRINT_STACK,
478 BC_LEX_CLEAR_STACK, 478 DC_LEX_CLEAR_STACK,
479 BC_LEX_STACK_LEVEL, 479 DC_LEX_STACK_LEVEL,
480 BC_LEX_DUPLICATE, 480 DC_LEX_DUPLICATE,
481 BC_LEX_SWAP, 481 DC_LEX_SWAP,
482 BC_LEX_POP, 482 DC_LEX_POP,
483 483
484 BC_LEX_ASCIIFY, 484 DC_LEX_ASCIIFY,
485 BC_LEX_PRINT_STREAM, 485 DC_LEX_PRINT_STREAM,
486 486
487 // code uses "t - BC_LEX_STORE_IBASE + XC_INST_IBASE" construct, 487 // code uses "t - DC_LEX_STORE_IBASE + XC_INST_IBASE" construct,
488 BC_LEX_STORE_IBASE, // relative order should match for: XC_INST_IBASE 488 DC_LEX_STORE_IBASE, // relative order should match for: XC_INST_IBASE
489 BC_LEX_STORE_OBASE, // relative order should match for: XC_INST_OBASE 489 DC_LEX_STORE_OBASE, // relative order should match for: XC_INST_OBASE
490 BC_LEX_STORE_SCALE, // relative order should match for: XC_INST_SCALE 490 DC_LEX_STORE_SCALE, // relative order should match for: XC_INST_SCALE
491 BC_LEX_LOAD, 491 DC_LEX_LOAD,
492 BC_LEX_LOAD_POP, 492 DC_LEX_LOAD_POP,
493 BC_LEX_STORE_PUSH, 493 DC_LEX_STORE_PUSH,
494 BC_LEX_PRINT_POP, 494 DC_LEX_PRINT_POP,
495 BC_LEX_NQUIT, 495 DC_LEX_NQUIT,
496 BC_LEX_SCALE_FACTOR, 496 DC_LEX_SCALE_FACTOR,
497#endif 497#endif
498} BcLexType; 498} BcLexType;
499// must match order of BC_LEX_KEY_foo etc above 499// must match order of BC_LEX_KEY_foo etc above
@@ -616,44 +616,44 @@ static const //BcLexType - should be this type
616uint8_t 616uint8_t
617dc_char_to_LEX[] = { 617dc_char_to_LEX[] = {
618 /* %&'( */ 618 /* %&'( */
619 BC_LEX_OP_MODULUS, BC_LEX_INVALID, BC_LEX_INVALID, BC_LEX_LPAREN, 619 BC_LEX_OP_MODULUS, XC_LEX_INVALID, XC_LEX_INVALID, BC_LEX_LPAREN,
620 /* )*+, */ 620 /* )*+, */
621 BC_LEX_INVALID, BC_LEX_OP_MULTIPLY, BC_LEX_OP_PLUS, BC_LEX_INVALID, 621 XC_LEX_INVALID, BC_LEX_OP_MULTIPLY, BC_LEX_OP_PLUS, XC_LEX_INVALID,
622 /* -./ */ 622 /* -./ */
623 BC_LEX_OP_MINUS, BC_LEX_INVALID, BC_LEX_OP_DIVIDE, 623 BC_LEX_OP_MINUS, XC_LEX_INVALID, BC_LEX_OP_DIVIDE,
624 /* 0123456789 */ 624 /* 0123456789 */
625 BC_LEX_INVALID, BC_LEX_INVALID, BC_LEX_INVALID, BC_LEX_INVALID, 625 XC_LEX_INVALID, XC_LEX_INVALID, XC_LEX_INVALID, XC_LEX_INVALID,
626 BC_LEX_INVALID, BC_LEX_INVALID, BC_LEX_INVALID, BC_LEX_INVALID, 626 XC_LEX_INVALID, XC_LEX_INVALID, XC_LEX_INVALID, XC_LEX_INVALID,
627 BC_LEX_INVALID, BC_LEX_INVALID, 627 XC_LEX_INVALID, XC_LEX_INVALID,
628 /* :;<=>?@ */ 628 /* :;<=>?@ */
629 BC_LEX_COLON, BC_LEX_SCOLON, BC_LEX_OP_REL_GT, BC_LEX_OP_REL_EQ, 629 DC_LEX_COLON, BC_LEX_SCOLON, BC_LEX_OP_REL_GT, BC_LEX_OP_REL_EQ,
630 BC_LEX_OP_REL_LT, BC_LEX_KEY_READ, BC_LEX_INVALID, 630 BC_LEX_OP_REL_LT, BC_LEX_KEY_READ, XC_LEX_INVALID,
631 /* ABCDEFGH */ 631 /* ABCDEFGH */
632 BC_LEX_INVALID, BC_LEX_INVALID, BC_LEX_INVALID, BC_LEX_INVALID, 632 XC_LEX_INVALID, XC_LEX_INVALID, XC_LEX_INVALID, XC_LEX_INVALID,
633 BC_LEX_INVALID, BC_LEX_INVALID, BC_LEX_EQ_NO_REG, BC_LEX_INVALID, 633 XC_LEX_INVALID, XC_LEX_INVALID, DC_LEX_EQ_NO_REG, XC_LEX_INVALID,
634 /* IJKLMNOP */ 634 /* IJKLMNOP */
635 BC_LEX_KEY_IBASE, BC_LEX_INVALID, BC_LEX_KEY_SCALE, BC_LEX_LOAD_POP, 635 BC_LEX_KEY_IBASE, XC_LEX_INVALID, BC_LEX_KEY_SCALE, DC_LEX_LOAD_POP,
636 BC_LEX_INVALID, BC_LEX_OP_BOOL_NOT, BC_LEX_KEY_OBASE, BC_LEX_PRINT_STREAM, 636 XC_LEX_INVALID, BC_LEX_OP_BOOL_NOT, BC_LEX_KEY_OBASE, DC_LEX_PRINT_STREAM,
637 /* QRSTUVWXY */ 637 /* QRSTUVWXY */
638 BC_LEX_NQUIT, BC_LEX_POP, BC_LEX_STORE_PUSH, BC_LEX_INVALID, BC_LEX_INVALID, 638 DC_LEX_NQUIT, DC_LEX_POP, DC_LEX_STORE_PUSH, XC_LEX_INVALID, XC_LEX_INVALID,
639 BC_LEX_INVALID, BC_LEX_INVALID, BC_LEX_SCALE_FACTOR, BC_LEX_INVALID, 639 XC_LEX_INVALID, XC_LEX_INVALID, DC_LEX_SCALE_FACTOR, XC_LEX_INVALID,
640 /* Z[\] */ 640 /* Z[\] */
641 BC_LEX_KEY_LENGTH, BC_LEX_INVALID, BC_LEX_INVALID, BC_LEX_INVALID, 641 BC_LEX_KEY_LENGTH, XC_LEX_INVALID, XC_LEX_INVALID, XC_LEX_INVALID,
642 /* ^_` */ 642 /* ^_` */
643 BC_LEX_OP_POWER, BC_LEX_NEG, BC_LEX_INVALID, 643 BC_LEX_OP_POWER, BC_LEX_NEG, XC_LEX_INVALID,
644 /* abcdefgh */ 644 /* abcdefgh */
645 BC_LEX_ASCIIFY, BC_LEX_INVALID, BC_LEX_CLEAR_STACK, BC_LEX_DUPLICATE, 645 DC_LEX_ASCIIFY, XC_LEX_INVALID, DC_LEX_CLEAR_STACK, DC_LEX_DUPLICATE,
646 BC_LEX_ELSE, BC_LEX_PRINT_STACK, BC_LEX_INVALID, BC_LEX_INVALID, 646 DC_LEX_ELSE, DC_LEX_PRINT_STACK, XC_LEX_INVALID, XC_LEX_INVALID,
647 /* ijklmnop */ 647 /* ijklmnop */
648 BC_LEX_STORE_IBASE, BC_LEX_INVALID, BC_LEX_STORE_SCALE, BC_LEX_LOAD, 648 DC_LEX_STORE_IBASE, XC_LEX_INVALID, DC_LEX_STORE_SCALE, DC_LEX_LOAD,
649 BC_LEX_INVALID, BC_LEX_PRINT_POP, BC_LEX_STORE_OBASE, BC_LEX_KEY_PRINT, 649 XC_LEX_INVALID, DC_LEX_PRINT_POP, DC_LEX_STORE_OBASE, BC_LEX_KEY_PRINT,
650 /* qrstuvwx */ 650 /* qrstuvwx */
651 BC_LEX_KEY_QUIT, BC_LEX_SWAP, BC_LEX_OP_ASSIGN, BC_LEX_INVALID, 651 BC_LEX_KEY_QUIT, DC_LEX_SWAP, BC_LEX_OP_ASSIGN, XC_LEX_INVALID,
652 BC_LEX_INVALID, BC_LEX_KEY_SQRT, BC_LEX_INVALID, BC_LEX_EXECUTE, 652 XC_LEX_INVALID, BC_LEX_KEY_SQRT, XC_LEX_INVALID, DC_LEX_EXECUTE,
653 /* yz */ 653 /* yz */
654 BC_LEX_INVALID, BC_LEX_STACK_LEVEL, 654 XC_LEX_INVALID, DC_LEX_STACK_LEVEL,
655 /* {|}~ */ 655 /* {|}~ */
656 BC_LEX_LBRACE, BC_LEX_OP_MODEXP, BC_LEX_INVALID, BC_LEX_OP_DIVMOD, 656 BC_LEX_LBRACE, DC_LEX_OP_MODEXP, XC_LEX_INVALID, DC_LEX_OP_DIVMOD,
657}; 657};
658static const //BcInst - should be this type. Using signed narrow type since DC_INST_INVALID is -1 658static const //BcInst - should be this type. Using signed narrow type since DC_INST_INVALID is -1
659int8_t 659int8_t
@@ -2940,7 +2940,7 @@ static BC_STATUS zbc_lex_next(BcLex *l)
2940 BcStatus s; 2940 BcStatus s;
2941 2941
2942 l->t.last = l->t.t; 2942 l->t.last = l->t.t;
2943 if (l->t.last == BC_LEX_EOF) RETURN_STATUS(bc_error("end of file")); 2943 if (l->t.last == XC_LEX_EOF) RETURN_STATUS(bc_error("end of file"));
2944 2944
2945 l->line += l->newline; 2945 l->line += l->newline;
2946 G.err_line = l->line; 2946 G.err_line = l->line;
@@ -2952,7 +2952,7 @@ static BC_STATUS zbc_lex_next(BcLex *l)
2952 s = BC_STATUS_SUCCESS; 2952 s = BC_STATUS_SUCCESS;
2953 do { 2953 do {
2954 if (l->i == l->len) { 2954 if (l->i == l->len) {
2955 l->t.t = BC_LEX_EOF; 2955 l->t.t = XC_LEX_EOF;
2956 if (!G.input_fp) 2956 if (!G.input_fp)
2957 RETURN_STATUS(BC_STATUS_SUCCESS); 2957 RETURN_STATUS(BC_STATUS_SUCCESS);
2958 if (!bc_lex_more_input(l)) { 2958 if (!bc_lex_more_input(l)) {
@@ -3002,7 +3002,7 @@ static BC_STATUS zbc_lex_text_init(BcLex *l, const char *text)
3002 l->buf = text; 3002 l->buf = text;
3003 l->i = 0; 3003 l->i = 0;
3004 l->len = strlen(text); 3004 l->len = strlen(text);
3005 l->t.t = l->t.last = BC_LEX_INVALID; 3005 l->t.t = l->t.last = XC_LEX_INVALID;
3006 RETURN_STATUS(zbc_lex_next(l)); 3006 RETURN_STATUS(zbc_lex_next(l));
3007} 3007}
3008#define zbc_lex_text_init(...) (zbc_lex_text_init(__VA_ARGS__) COMMA_SUCCESS) 3008#define zbc_lex_text_init(...) (zbc_lex_text_init(__VA_ARGS__) COMMA_SUCCESS)
@@ -3142,7 +3142,7 @@ static BC_STATUS zbc_lex_token(BcLex *l)
3142 switch (c) { 3142 switch (c) {
3143// case '\0': // probably never reached 3143// case '\0': // probably never reached
3144// l->i--; 3144// l->i--;
3145// l->t.t = BC_LEX_EOF; 3145// l->t.t = XC_LEX_EOF;
3146// l->newline = true; 3146// l->newline = true;
3147// break; 3147// break;
3148 case '\n': 3148 case '\n':
@@ -3182,7 +3182,7 @@ static BC_STATUS zbc_lex_token(BcLex *l)
3182 ++l->i; 3182 ++l->i;
3183 l->t.t = BC_LEX_OP_BOOL_AND; 3183 l->t.t = BC_LEX_OP_BOOL_AND;
3184 } else { 3184 } else {
3185 l->t.t = BC_LEX_INVALID; 3185 l->t.t = XC_LEX_INVALID;
3186 s = bc_error_bad_character('&'); 3186 s = bc_error_bad_character('&');
3187 } 3187 }
3188 break; 3188 break;
@@ -3311,12 +3311,12 @@ static BC_STATUS zbc_lex_token(BcLex *l)
3311 ++l->i; 3311 ++l->i;
3312 l->t.t = BC_LEX_OP_BOOL_OR; 3312 l->t.t = BC_LEX_OP_BOOL_OR;
3313 } else { 3313 } else {
3314 l->t.t = BC_LEX_INVALID; 3314 l->t.t = XC_LEX_INVALID;
3315 s = bc_error_bad_character(c); 3315 s = bc_error_bad_character(c);
3316 } 3316 }
3317 break; 3317 break;
3318 default: 3318 default:
3319 l->t.t = BC_LEX_INVALID; 3319 l->t.t = XC_LEX_INVALID;
3320 s = bc_error_bad_character(c); 3320 s = bc_error_bad_character(c);
3321 break; 3321 break;
3322 } 3322 }
@@ -3394,9 +3394,9 @@ static BC_STATUS zdc_lex_token(BcLex *l)
3394 uint8_t 3394 uint8_t
3395 dc_lex_regs[] = { 3395 dc_lex_regs[] = {
3396 BC_LEX_OP_REL_EQ, BC_LEX_OP_REL_LE, BC_LEX_OP_REL_GE, BC_LEX_OP_REL_NE, 3396 BC_LEX_OP_REL_EQ, BC_LEX_OP_REL_LE, BC_LEX_OP_REL_GE, BC_LEX_OP_REL_NE,
3397 BC_LEX_OP_REL_LT, BC_LEX_OP_REL_GT, BC_LEX_SCOLON, BC_LEX_COLON, 3397 BC_LEX_OP_REL_LT, BC_LEX_OP_REL_GT, BC_LEX_SCOLON, DC_LEX_COLON,
3398 BC_LEX_ELSE, BC_LEX_LOAD, BC_LEX_LOAD_POP, BC_LEX_OP_ASSIGN, 3398 DC_LEX_ELSE, DC_LEX_LOAD, DC_LEX_LOAD_POP, BC_LEX_OP_ASSIGN,
3399 BC_LEX_STORE_PUSH, 3399 DC_LEX_STORE_PUSH,
3400 }; 3400 };
3401 3401
3402 BcStatus s; 3402 BcStatus s;
@@ -3411,7 +3411,7 @@ static BC_STATUS zdc_lex_token(BcLex *l)
3411 s = BC_STATUS_SUCCESS; 3411 s = BC_STATUS_SUCCESS;
3412 c = l->buf[l->i++]; 3412 c = l->buf[l->i++];
3413 if (c >= '%' && c <= '~' 3413 if (c >= '%' && c <= '~'
3414 && (l->t.t = dc_char_to_LEX[c - '%']) != BC_LEX_INVALID 3414 && (l->t.t = dc_char_to_LEX[c - '%']) != XC_LEX_INVALID
3415 ) { 3415 ) {
3416 RETURN_STATUS(s); 3416 RETURN_STATUS(s);
3417 } 3417 }
@@ -3419,7 +3419,7 @@ static BC_STATUS zdc_lex_token(BcLex *l)
3419 // This is the workhorse of the lexer. 3419 // This is the workhorse of the lexer.
3420 switch (c) { 3420 switch (c) {
3421// case '\0': // probably never reached 3421// case '\0': // probably never reached
3422// l->t.t = BC_LEX_EOF; 3422// l->t.t = XC_LEX_EOF;
3423// break; 3423// break;
3424 case '\n': 3424 case '\n':
3425 // '\n' is BC_LEX_NLINE, not BC_LEX_WHITESPACE 3425 // '\n' is BC_LEX_NLINE, not BC_LEX_WHITESPACE
@@ -3484,7 +3484,7 @@ static BC_STATUS zdc_lex_token(BcLex *l)
3484 s = zdc_lex_string(l); 3484 s = zdc_lex_string(l);
3485 break; 3485 break;
3486 default: 3486 default:
3487 l->t.t = BC_LEX_INVALID; 3487 l->t.t = XC_LEX_INVALID;
3488 s = bc_error_bad_character(c); 3488 s = bc_error_bad_character(c);
3489 break; 3489 break;
3490 } 3490 }
@@ -3605,7 +3605,7 @@ static void bc_parse_reset(BcParse *p)
3605 } 3605 }
3606 3606
3607 p->l.i = p->l.len; 3607 p->l.i = p->l.len;
3608 p->l.t.t = BC_LEX_EOF; 3608 p->l.t.t = XC_LEX_EOF;
3609 3609
3610 IF_BC(bc_vec_pop_all(&p->exits);) 3610 IF_BC(bc_vec_pop_all(&p->exits);)
3611 IF_BC(bc_vec_pop_all(&p->conds);) 3611 IF_BC(bc_vec_pop_all(&p->conds);)
@@ -4601,7 +4601,7 @@ static BC_STATUS zbc_parse_stmt_or_funcdef(BcParse *p)
4601 BcStatus s; 4601 BcStatus s;
4602 4602
4603 dbg_lex_enter("%s:%d entered", __func__, __LINE__); 4603 dbg_lex_enter("%s:%d entered", __func__, __LINE__);
4604 if (p->l.t.t == BC_LEX_EOF) 4604 if (p->l.t.t == XC_LEX_EOF)
4605 s = bc_error("end of file"); 4605 s = bc_error("end of file");
4606 else if (p->l.t.t == BC_LEX_KEY_DEFINE) { 4606 else if (p->l.t.t == BC_LEX_KEY_DEFINE) {
4607 dbg_lex("%s:%d p->l.t.t:BC_LEX_KEY_DEFINE", __func__, __LINE__); 4607 dbg_lex("%s:%d p->l.t.t:BC_LEX_KEY_DEFINE", __func__, __LINE__);
@@ -4888,7 +4888,7 @@ static BC_STATUS zdc_parse_cond(BcParse *p, uint8_t inst)
4888 // Note that 'else' part can not be on the next line: 4888 // Note that 'else' part can not be on the next line:
4889 // echo -e '[1p]sa [2p]sb 2 1>a eb' | dc - OK, prints "2" 4889 // echo -e '[1p]sa [2p]sb 2 1>a eb' | dc - OK, prints "2"
4890 // echo -e '[1p]sa [2p]sb 2 1>a\neb' | dc - parse error 4890 // echo -e '[1p]sa [2p]sb 2 1>a\neb' | dc - parse error
4891 if (p->l.t.t == BC_LEX_ELSE) { 4891 if (p->l.t.t == DC_LEX_ELSE) {
4892 s = zdc_parse_register(p); 4892 s = zdc_parse_register(p);
4893 if (s) RETURN_STATUS(s); 4893 if (s) RETURN_STATUS(s);
4894 s = zbc_lex_next(&p->l); 4894 s = zbc_lex_next(&p->l);
@@ -4921,9 +4921,9 @@ static BC_STATUS zdc_parse_token(BcParse *p, BcLexType t)
4921 get_token = false; 4921 get_token = false;
4922 break; 4922 break;
4923 case BC_LEX_SCOLON: 4923 case BC_LEX_SCOLON:
4924 case BC_LEX_COLON: 4924 case DC_LEX_COLON:
4925 dbg_lex("%s:%d LEX_[S]COLON", __func__, __LINE__); 4925 dbg_lex("%s:%d LEX_[S]COLON", __func__, __LINE__);
4926 s = zdc_parse_mem(p, XC_INST_ARRAY_ELEM, true, t == BC_LEX_COLON); 4926 s = zdc_parse_mem(p, XC_INST_ARRAY_ELEM, true, t == DC_LEX_COLON);
4927 break; 4927 break;
4928 case BC_LEX_STR: 4928 case BC_LEX_STR:
4929 dbg_lex("%s:%d LEX_STR", __func__, __LINE__); 4929 dbg_lex("%s:%d LEX_STR", __func__, __LINE__);
@@ -4947,23 +4947,23 @@ static BC_STATUS zdc_parse_token(BcParse *p, BcLexType t)
4947 bc_parse_push(p, XC_INST_READ); 4947 bc_parse_push(p, XC_INST_READ);
4948 break; 4948 break;
4949 case BC_LEX_OP_ASSIGN: 4949 case BC_LEX_OP_ASSIGN:
4950 case BC_LEX_STORE_PUSH: 4950 case DC_LEX_STORE_PUSH:
4951 dbg_lex("%s:%d LEX_OP_ASSIGN/STORE_PUSH", __func__, __LINE__); 4951 dbg_lex("%s:%d LEX_OP_ASSIGN/STORE_PUSH", __func__, __LINE__);
4952 assign = t == BC_LEX_OP_ASSIGN; 4952 assign = t == BC_LEX_OP_ASSIGN;
4953 inst = assign ? XC_INST_VAR : DC_INST_PUSH_TO_VAR; 4953 inst = assign ? XC_INST_VAR : DC_INST_PUSH_TO_VAR;
4954 s = zdc_parse_mem(p, inst, true, assign); 4954 s = zdc_parse_mem(p, inst, true, assign);
4955 break; 4955 break;
4956 case BC_LEX_LOAD: 4956 case DC_LEX_LOAD:
4957 case BC_LEX_LOAD_POP: 4957 case DC_LEX_LOAD_POP:
4958 dbg_lex("%s:%d LEX_OP_LOAD[_POP]", __func__, __LINE__); 4958 dbg_lex("%s:%d LEX_OP_LOAD[_POP]", __func__, __LINE__);
4959 inst = t == BC_LEX_LOAD_POP ? DC_INST_PUSH_VAR : DC_INST_LOAD; 4959 inst = t == DC_LEX_LOAD_POP ? DC_INST_PUSH_VAR : DC_INST_LOAD;
4960 s = zdc_parse_mem(p, inst, true, false); 4960 s = zdc_parse_mem(p, inst, true, false);
4961 break; 4961 break;
4962 case BC_LEX_STORE_IBASE: 4962 case DC_LEX_STORE_IBASE:
4963 case BC_LEX_STORE_SCALE: 4963 case DC_LEX_STORE_SCALE:
4964 case BC_LEX_STORE_OBASE: 4964 case DC_LEX_STORE_OBASE:
4965 dbg_lex("%s:%d LEX_OP_STORE_I/OBASE/SCALE", __func__, __LINE__); 4965 dbg_lex("%s:%d LEX_OP_STORE_I/OBASE/SCALE", __func__, __LINE__);
4966 inst = t - BC_LEX_STORE_IBASE + XC_INST_IBASE; 4966 inst = t - DC_LEX_STORE_IBASE + XC_INST_IBASE;
4967 s = zdc_parse_mem(p, inst, false, true); 4967 s = zdc_parse_mem(p, inst, false, true);
4968 break; 4968 break;
4969 default: 4969 default:
@@ -4997,7 +4997,7 @@ static BC_STATUS zdc_parse_expr(BcParse *p)
4997static BC_STATUS zdc_parse_exprs_until_eof(BcParse *p) 4997static BC_STATUS zdc_parse_exprs_until_eof(BcParse *p)
4998{ 4998{
4999 dbg_lex_enter("%s:%d entered, p->l.t.t:%d", __func__, __LINE__, p->l.t.t); 4999 dbg_lex_enter("%s:%d entered, p->l.t.t:%d", __func__, __LINE__, p->l.t.t);
5000 while (p->l.t.t != BC_LEX_EOF) { 5000 while (p->l.t.t != XC_LEX_EOF) {
5001 BcStatus s = zdc_parse_expr(p); 5001 BcStatus s = zdc_parse_expr(p);
5002 if (s) RETURN_STATUS(s); 5002 if (s) RETURN_STATUS(s);
5003 } 5003 }
@@ -5229,7 +5229,7 @@ static BC_STATUS zbc_program_read(void)
5229 } 5229 }
5230 if (s) goto exec_err; 5230 if (s) goto exec_err;
5231 5231
5232 if (parse.l.t.t != BC_LEX_NLINE && parse.l.t.t != BC_LEX_EOF) { 5232 if (parse.l.t.t != BC_LEX_NLINE && parse.l.t.t != XC_LEX_EOF) {
5233 s = bc_error("bad read() expression"); 5233 s = bc_error("bad read() expression");
5234 goto exec_err; 5234 goto exec_err;
5235 } 5235 }
@@ -6361,7 +6361,7 @@ static BC_STATUS zdc_program_execStr(char *code, size_t *bgn, bool cond)
6361 G.input_fp = sv_input_fp; 6361 G.input_fp = sv_input_fp;
6362 6362
6363 if (s) goto err; 6363 if (s) goto err;
6364 if (prs.l.t.t != BC_LEX_EOF) { 6364 if (prs.l.t.t != XC_LEX_EOF) {
6365 s = bc_error_bad_expression(); 6365 s = bc_error_bad_expression();
6366 err: 6366 err:
6367 bc_parse_free(&prs); 6367 bc_parse_free(&prs);
@@ -6695,7 +6695,7 @@ static BC_STATUS zbc_vm_process(const char *text)
6695 s = zbc_parse_text_init(&G.prs, text); // does the first zbc_lex_next() 6695 s = zbc_parse_text_init(&G.prs, text); // does the first zbc_lex_next()
6696 if (s) RETURN_STATUS(s); 6696 if (s) RETURN_STATUS(s);
6697 6697
6698 while (G.prs.l.t.t != BC_LEX_EOF) { 6698 while (G.prs.l.t.t != XC_LEX_EOF) {
6699 BcInstPtr *ip; 6699 BcInstPtr *ip;
6700 BcFunc *f; 6700 BcFunc *f;
6701 6701
@@ -6713,7 +6713,7 @@ static BC_STATUS zbc_vm_process(const char *text)
6713 while (G.prs.l.t.t == BC_LEX_NLINE) { 6713 while (G.prs.l.t.t == BC_LEX_NLINE) {
6714 s = zbc_lex_next(&G.prs.l); 6714 s = zbc_lex_next(&G.prs.l);
6715 if (s) goto err; 6715 if (s) goto err;
6716 if (G.prs.l.t.t == BC_LEX_EOF) 6716 if (G.prs.l.t.t == XC_LEX_EOF)
6717 goto done; 6717 goto done;
6718 } 6718 }
6719 IF_DC(s = zdc_parse_expr(&G.prs)); 6719 IF_DC(s = zdc_parse_expr(&G.prs));