aboutsummaryrefslogtreecommitdiff
path: root/miscutils
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2018-12-22 16:40:38 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2018-12-22 16:41:23 +0100
commit5daa1a0adfe08bae588e5293686a84ab3649a2aa (patch)
treee00f18273daf1216bef62f2ea440b8f877f97f46 /miscutils
parent7c1c9dc86bf7d7bc91e906473c0f81a666113402 (diff)
downloadbusybox-w32-5daa1a0adfe08bae588e5293686a84ab3649a2aa.tar.gz
busybox-w32-5daa1a0adfe08bae588e5293686a84ab3649a2aa.tar.bz2
busybox-w32-5daa1a0adfe08bae588e5293686a84ab3649a2aa.zip
bc: move zbc_lex_next() out of zdc_parse_string() and zdc_parse_mem()
function old new delta zdc_parse_mem 99 93 -6 zdc_parse_expr 586 569 -17 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-23) Total: -23 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'miscutils')
-rw-r--r--miscutils/bc.c23
1 files changed, 10 insertions, 13 deletions
diff --git a/miscutils/bc.c b/miscutils/bc.c
index bb83e0a14..5d5449efa 100644
--- a/miscutils/bc.c
+++ b/miscutils/bc.c
@@ -4809,7 +4809,7 @@ static BC_STATUS zdc_parse_register(BcParse *p)
4809} 4809}
4810#define zdc_parse_register(...) (zdc_parse_register(__VA_ARGS__) COMMA_SUCCESS) 4810#define zdc_parse_register(...) (zdc_parse_register(__VA_ARGS__) COMMA_SUCCESS)
4811 4811
4812static BC_STATUS zdc_parse_string(BcParse *p) 4812static void dc_parse_string(BcParse *p)
4813{ 4813{
4814 char *str; 4814 char *str;
4815 size_t len = G.prog.strs.len; 4815 size_t len = G.prog.strs.len;
@@ -4826,10 +4826,7 @@ static BC_STATUS zdc_parse_string(BcParse *p)
4826 p->func = bc_program_func(p->fidx); 4826 p->func = bc_program_func(p->fidx);
4827 4827
4828 dbg_lex_done("%s:%d done", __func__, __LINE__); 4828 dbg_lex_done("%s:%d done", __func__, __LINE__);
4829
4830 RETURN_STATUS(zbc_lex_next(&p->l));
4831} 4829}
4832#define zdc_parse_string(...) (zdc_parse_string(__VA_ARGS__) COMMA_SUCCESS)
4833 4830
4834static BC_STATUS zdc_parse_mem(BcParse *p, uint8_t inst, bool name, bool store) 4831static BC_STATUS zdc_parse_mem(BcParse *p, uint8_t inst, bool name, bool store)
4835{ 4832{
@@ -4847,7 +4844,7 @@ static BC_STATUS zdc_parse_mem(BcParse *p, uint8_t inst, bool name, bool store)
4847 bc_parse_push(p, BC_INST_POP); 4844 bc_parse_push(p, BC_INST_POP);
4848 } 4845 }
4849 4846
4850 RETURN_STATUS(zbc_lex_next(&p->l)); 4847 RETURN_STATUS(BC_STATUS_SUCCESS);
4851} 4848}
4852#define zdc_parse_mem(...) (zdc_parse_mem(__VA_ARGS__) COMMA_SUCCESS) 4849#define zdc_parse_mem(...) (zdc_parse_mem(__VA_ARGS__) COMMA_SUCCESS)
4853 4850
@@ -4877,11 +4874,13 @@ static BC_STATUS zdc_parse_cond(BcParse *p, uint8_t inst)
4877 4874
4878static BC_STATUS zdc_parse_token(BcParse *p, BcLexType t) 4875static BC_STATUS zdc_parse_token(BcParse *p, BcLexType t)
4879{ 4876{
4880 BcStatus s = BC_STATUS_SUCCESS; 4877 BcStatus s;
4881 uint8_t inst; 4878 uint8_t inst;
4882 bool assign, get_token = false; 4879 bool assign, get_token;
4883 4880
4884 dbg_lex_enter("%s:%d entered", __func__, __LINE__); 4881 dbg_lex_enter("%s:%d entered", __func__, __LINE__);
4882 s = BC_STATUS_SUCCESS;
4883 get_token = true;
4885 switch (t) { 4884 switch (t) {
4886 case BC_LEX_OP_REL_EQ: 4885 case BC_LEX_OP_REL_EQ:
4887 case BC_LEX_OP_REL_LE: 4886 case BC_LEX_OP_REL_LE:
@@ -4890,6 +4889,7 @@ static BC_STATUS zdc_parse_token(BcParse *p, BcLexType t)
4890 case BC_LEX_OP_REL_LT: 4889 case BC_LEX_OP_REL_LT:
4891 case BC_LEX_OP_REL_GT: 4890 case BC_LEX_OP_REL_GT:
4892 s = zdc_parse_cond(p, t - BC_LEX_OP_REL_EQ + BC_INST_REL_EQ); 4891 s = zdc_parse_cond(p, t - BC_LEX_OP_REL_EQ + BC_INST_REL_EQ);
4892 get_token = false;
4893 break; 4893 break;
4894 case BC_LEX_SCOLON: 4894 case BC_LEX_SCOLON:
4895 case BC_LEX_COLON: 4895 case BC_LEX_COLON:
@@ -4897,7 +4897,7 @@ static BC_STATUS zdc_parse_token(BcParse *p, BcLexType t)
4897 break; 4897 break;
4898 case BC_LEX_STR: 4898 case BC_LEX_STR:
4899 dbg_lex("%s:%d LEX_STR", __func__, __LINE__); 4899 dbg_lex("%s:%d LEX_STR", __func__, __LINE__);
4900 s = zdc_parse_string(p); 4900 dc_parse_string(p);
4901 break; 4901 break;
4902 case BC_LEX_NEG: 4902 case BC_LEX_NEG:
4903 case BC_LEX_NUMBER: 4903 case BC_LEX_NUMBER:
@@ -4910,11 +4910,9 @@ static BC_STATUS zdc_parse_token(BcParse *p, BcLexType t)
4910 } 4910 }
4911 bc_parse_pushNUM(p); 4911 bc_parse_pushNUM(p);
4912 if (t == BC_LEX_NEG) bc_parse_push(p, BC_INST_NEG); 4912 if (t == BC_LEX_NEG) bc_parse_push(p, BC_INST_NEG);
4913 get_token = true;
4914 break; 4913 break;
4915 case BC_LEX_KEY_READ: 4914 case BC_LEX_KEY_READ:
4916 bc_parse_push(p, BC_INST_READ); 4915 bc_parse_push(p, BC_INST_READ);
4917 get_token = true;
4918 break; 4916 break;
4919 case BC_LEX_OP_ASSIGN: 4917 case BC_LEX_OP_ASSIGN:
4920 case BC_LEX_STORE_PUSH: 4918 case BC_LEX_STORE_PUSH:
@@ -4934,9 +4932,8 @@ static BC_STATUS zdc_parse_token(BcParse *p, BcLexType t)
4934 s = zdc_parse_mem(p, inst, false, true); 4932 s = zdc_parse_mem(p, inst, false, true);
4935 break; 4933 break;
4936 default: 4934 default:
4937 s = bc_error_bad_token(); 4935 dbg_lex_done("%s:%d done (bad token)", __func__, __LINE__);
4938 get_token = true; 4936 RETURN_STATUS(bc_error_bad_token());
4939 break;
4940 } 4937 }
4941 4938
4942 if (!s && get_token) s = zbc_lex_next(&p->l); 4939 if (!s && get_token) s = zbc_lex_next(&p->l);