-
ecb62edd47
bc: fold struct BcLex into BcParse
Denys Vlasenko
2018-12-25 22:32:41 +01:00
-
6e6182342e
bc: move BcLex::lex member to be the first in struct globals
Denys Vlasenko
2018-12-25 22:20:14 +01:00
-
0b0e8d0509
bc: rename some members and macros, no code changes
Denys Vlasenko
2018-12-25 21:44:10 +01:00
-
3f8752c33f
bc: shorten error messages
Denys Vlasenko
2018-12-25 21:28:25 +01:00
-
fa495ce498
bc: make it clear that the code is adapted
Gavin Howard
2018-12-18 10:03:14 -07:00
-
8fac1c7740
dc: add two tests
Denys Vlasenko
2018-12-25 20:50:41 +01:00
-
a2e62e3e50
bc: stop passing a pointer to G.prs down the call chain
Denys Vlasenko
2018-12-25 20:40:55 +01:00
-
1fbe35a7d8
bc: make zbc_program_read() and zdc_program_execStr() use G.prs
Denys Vlasenko
2018-12-25 19:38:13 +01:00
-
53e569c06b
bc: fix interactive read()
Denys Vlasenko
2018-12-25 19:37:23 +01:00
-
2638454464
bc: add code to detect errors like "print 1 print 2"
Denys Vlasenko
2018-12-25 18:37:52 +01:00
-
5fa74b9efc
bc: allow {break} and {continue} (allow RBRACE to terminate them)
Denys Vlasenko
2018-12-25 17:07:51 +01:00
-
d4b721cc8b
bc: shrink parsing code a bit more, disallow "auto a b c" (without commas)
Denys Vlasenko
2018-12-25 16:39:01 +01:00
-
73b3ebc0e1
bc: simplify bc_parse_expr_empty_ok()
Denys Vlasenko
2018-12-25 01:43:52 +01:00
-
d0238d83f0
bc: simplify bc_parse_expr_empty_ok()
Denys Vlasenko
2018-12-25 01:21:16 +01:00
-
bb116031a0
bc: simplify bc_parse_expr_empty_ok()
Denys Vlasenko
2018-12-25 01:16:37 +01:00
-
d897c9aca6
bc: BC_RESULT_ONE is bc-specific
Denys Vlasenko
2018-12-24 23:41:31 +01:00
-
0c45bb22a0
bc: partially deinline BC_PARSE_LEAF() macro
Denys Vlasenko
2018-12-24 23:22:40 +01:00
-
a17d95d0d0
bc: rename lexer variables, use smallints where appropriate
Denys Vlasenko
2018-12-24 22:55:54 +01:00
-
d279d809ac
bc: fix "bc -s" only warning on "define f()<newline>", not exiting
Denys Vlasenko
2018-12-24 18:28:56 +01:00
-
79587cb442
bc: POSIX error/warn functions can be 'z' functions too
Denys Vlasenko
2018-12-24 18:11:41 +01:00
-
65b6fe09c4
bc: remove unnecessary NULL initializers
Denys Vlasenko
2018-12-24 17:15:34 +01:00
-
a5bf53e4bb
bc: move relational LEXs before math LEXs - shorten dc_LEX_to_INST[]
Denys Vlasenko
2018-12-24 17:06:37 +01:00
-
4accb6bba8
bc: offset dc_LEX_to_INST[] start
Denys Vlasenko
2018-12-24 15:29:08 +01:00
-
23ea0734e1
bc: rename BC_LEX_NLINE/WHITESPACE/STR/NAME/NUMBER to XC_LEX_
Denys Vlasenko
2018-12-24 15:05:49 +01:00
-
9d9c97efbd
bc: separate many bc and dc LEX constants
Denys Vlasenko
2018-12-24 15:00:56 +01:00
-
69560f42da
bc: rename several BC_LEX_OPs to XC_LEX_OPs.
Denys Vlasenko
2018-12-24 14:14:23 +01:00
-
abf6cf6765
bc: move BC_LEX_OP_INC/DEC to the end of operation LEX constants
Denys Vlasenko
2018-12-24 13:20:57 +01:00
-
7d9be0bc6d
bc: rename BC_LEXs to XC_LEXs for common constants, and to DC_LEXs for dc-specific
Denys Vlasenko
2018-12-24 12:25:20 +01:00
-
2097ac8d9e
bc: move functions/macros around, no code changes
Denys Vlasenko
2018-12-24 05:00:36 +01:00
-
a7732d1120
bc: rename common INST constants to XC_, dc-specific ones to DC_
Denys Vlasenko
2018-12-24 04:26:07 +01:00
-
81293c8af0
dc: without -x, do not parse extended regs: 's p' means: store to ' ' reg, print
Denys Vlasenko
2018-12-24 01:53:55 +01:00
-
73b2c60825
bc: fix incorrect bit in BC_PARSE_EXPRS_BITS: 'limits' is not allowed
Denys Vlasenko
2018-12-24 01:02:59 +01:00
-
ad0bd381e9
bc: for "dc only" remove handling of LAST, move OBASE enums up to IBASE
Denys Vlasenko
2018-12-24 00:50:32 +01:00
-
9471bd4660
bc: fix empty lines in dc generating "bad token" message
Denys Vlasenko
2018-12-23 00:13:15 +01:00
-
01eb5e9da1
bc: shrink modular exponentiation code
Denys Vlasenko
2018-12-22 23:59:21 +01:00
-
1acac7f9c5
bc: do not yet allow 2^2.1
Denys Vlasenko
2018-12-22 23:14:48 +01:00
-
a9f59db809
bc: avoid having to twiddle b->neg in zbc_num_p()
Denys Vlasenko
2018-12-22 21:52:30 +01:00
-
2ea8ddf8c2
bc: do not disallow powers to N.0000 degree - it's even shorter code
Denys Vlasenko
2018-12-22 21:45:18 +01:00
-
1557b76edd
bc: shrink zbc_num_ulong()
Denys Vlasenko
2018-12-22 21:37:46 +01:00
-
ec74a9c145
bc: make long-running dc drop data it does not need (when it can)
Denys Vlasenko
2018-12-22 19:23:46 +01:00
-
5cf0b2d466
bc: unbreak "z function" macro machinery
Denys Vlasenko
2018-12-22 18:24:19 +01:00
-
badf683b0a
dc: unbreak interactive mode - was trying to get next tokens instead of executing
Denys Vlasenko
2018-12-22 18:04:08 +01:00
-
5daa1a0adf
bc: move zbc_lex_next() out of zdc_parse_string() and zdc_parse_mem()
Denys Vlasenko
2018-12-22 16:40:38 +01:00
-
7c1c9dc86b
bc: shorten sanity-check code
Denys Vlasenko
2018-12-22 14:18:47 +01:00
-
88fcd5cc6c
bc: fold single-callsite functions into callers, commonalize code
Denys Vlasenko
2018-12-22 06:00:25 +01:00
-
514967df5e
bc: zcommon_parse_expr() has only one user, fold it in
Denys Vlasenko
2018-12-22 03:38:52 +01:00
-
f093e3df2d
bc: zcommon_parse_expr() lost its flags argument
Denys Vlasenko
2018-12-22 02:30:18 +01:00
-
39287e0d02
bc: stop using BC_PARSE_NOCALL in dc code
Denys Vlasenko
2018-12-22 02:23:08 +01:00
-
8c1e723596
bc: unbreak read(), remove checks for nested read()
Denys Vlasenko
2018-12-22 01:34:10 +01:00
-
1dc4de9d9b
bc: code shrink
Denys Vlasenko
2018-12-21 23:13:48 +01:00
-
24e4194635
bc: rename BcInstPtr::idx and ::len
Denys Vlasenko
2018-12-21 23:01:26 +01:00
-
8287b1c869
bc: remove unnecessary initializations
Denys Vlasenko
2018-12-21 22:43:53 +01:00
-
e8e7bda63a
bc: use non-allocated BcNum's where appropriate
Denys Vlasenko
2018-12-21 22:36:04 +01:00
-
6ed7fb0a87
bc: optimize bc_vec_push() usage
Denys Vlasenko
2018-12-21 22:16:17 +01:00
-
19eee8ed7c
bc: fix for() to not leave data on stack
Denys Vlasenko
2018-12-21 20:29:34 +01:00
-
5d57bc442d
bc: fix infinite state growth for "yes 1 | bc" case
Denys Vlasenko
2018-12-21 16:22:26 +01:00
-
447dc02c27
bc: fix comment
Denys Vlasenko
2018-12-21 00:39:02 +01:00
-
52caa007e3
bc: for(;;) fix from upstream
Denys Vlasenko
2018-12-21 00:35:22 +01:00
-
047154472a
bc: shrink bc_program_add_fn()
Denys Vlasenko
2018-12-21 00:10:26 +01:00
-
44a99ca617
bc: "dc only" config does not need G.prog.fn_map
Denys Vlasenko
2018-12-20 20:34:09 +01:00
-
5acd14ba5b
bc: fix keyword matching to not think "ifz" is the "if" keyword
Denys Vlasenko
2018-12-20 16:48:50 +01:00
-
503faf9d53
bc: shrink "dc only" code by dropping unused structure members
Denys Vlasenko
2018-12-20 16:24:18 +01:00
-
eaa3b00002
bc: shorten bc_program_addFunc()
Denys Vlasenko
2018-12-19 20:05:50 +01:00
-
408b7d45f6
bc: fix "dc only" and "bc only" configs
Denys Vlasenko
2018-12-19 19:43:03 +01:00
-
fa21079183
bc: rename dc-specific functions, simplify zdc_program_execStr() a bit
Denys Vlasenko
2018-12-19 19:35:40 +01:00
-
44dbe675dd
bc: rename zbc_parse_string->bc_parse_pushSTR, do not emit next opcode in it
Denys Vlasenko
2018-12-19 19:10:40 +01:00
-
ea5cad2a0d
bc: avoid bc_vec_item() calls in bc_vm_run()
Denys Vlasenko
2018-12-19 18:09:31 +01:00
-
eac0de55d6
bc: avoid bc_vec_item() calls in bc_array_copy()
Denys Vlasenko
2018-12-19 17:59:30 +01:00
-
87888ce4d8
bc: avoid successive bc_vec_item(&func->autos, i)
Denys Vlasenko
2018-12-19 17:55:23 +01:00
-
f36a0adf8b
bc: remove unnecessary union use
Denys Vlasenko
2018-12-19 17:15:04 +01:00
-
dfe1dd2031
bc: "unsigned_n > 0" is shorter code than "unsigned_n >= 1"
Denys Vlasenko
2018-12-19 17:09:01 +01:00
-
65e1046abf
bc: open-code bc_parse_updateFunc() macro
Denys Vlasenko
2018-12-19 15:13:14 +01:00
-
684d441f5c
bc: make bc_program_addFunc() return new idx, untangle &p->fidx interaction
Denys Vlasenko
2018-12-19 14:57:23 +01:00
-
085b420220
bc: "reload stack only after insts" change missed a few places
Denys Vlasenko
2018-12-19 14:02:59 +01:00
-
5aa54830bf
bc: rename a few functions
Denys Vlasenko
2018-12-19 13:55:53 +01:00
-
e3d3d2067d
bc: remove redundant strdup+free in zbc_parse_call()
Denys Vlasenko
2018-12-19 13:19:44 +01:00
-
4796a1d537
bc: delete G.prog.strmb for real
Denys Vlasenko
2018-12-19 12:47:45 +01:00
-
b80d7aad1b
bc: in execution loop, reload stack only after insts which can change it
Denys Vlasenko
2018-12-19 12:35:27 +01:00
-
d6e24bd795
bc: simplify bc_array_expand()
Denys Vlasenko
2018-12-18 20:10:48 +01:00
-
30a8e0c2f9
bc: code shrink
Denys Vlasenko
2018-12-18 19:20:04 +01:00
-
694d2982e5
bc: code shrink
Denys Vlasenko
2018-12-18 19:17:11 +01:00
-
7b30bc0222
bc: shrink bc_program_pushVar()
Denys Vlasenko
2018-12-18 17:14:34 +01:00
-
d340143247
bc: get rid of G.prog.ob, G.prog.strmb
Denys Vlasenko
2018-12-18 17:00:35 +01:00
-
09fe0aaefa
bc: do not show -i in --help, it's a NOP (for now)
Denys Vlasenko
2018-12-18 16:32:25 +01:00
-
7f2d59c38d
bc: style edit, no code changes
Denys Vlasenko
2018-12-18 16:24:07 +01:00
-
3f940c9c70
bc: shrink bc_program_index()
Denys Vlasenko
2018-12-18 15:49:42 +01:00
-
55f3cab7e9
bc: fix "echo -n '#foo' | bc" not eating last 'o'
Denys Vlasenko
2018-12-18 14:37:16 +01:00
-
a199cc95b7
bc: shrink zdc_parse_expr()
Denys Vlasenko
2018-12-18 14:11:35 +01:00
-
07597cd35d
bc: optimize zbc_lex_string()
Denys Vlasenko
2018-12-18 14:03:20 +01:00
-
ef271da33f
bc: shrink zdc_lex_string()
Denys Vlasenko
2018-12-18 13:48:37 +01:00
-
d4258dd321
bc: another for() loop simplified
Denys Vlasenko
2018-12-18 13:22:23 +01:00
-
5c0c5abba0
bc: simplify another for() loop
Denys Vlasenko
2018-12-18 13:15:55 +01:00
-
6b0fbd14fc
bc: rewrite more for() loops
Denys Vlasenko
2018-12-18 12:55:40 +01:00
-
71c82d1d8c
bc: rewrite another for() loop
Denys Vlasenko
2018-12-18 12:43:21 +01:00
-
e2e6ffd3c5
bc: replace signed division / 10 by unsigned
Denys Vlasenko
2018-12-18 12:23:16 +01:00
-
4113e1f2cd
bc: rewrite bc_num_compare() to be readable
Denys Vlasenko
2018-12-18 00:39:24 +01:00
-
57734c926b
bc: fold zbc_num_stream() into its single caller
Denys Vlasenko
2018-12-17 21:14:05 +01:00
-
f6e3f8511e
bc: get rid of BcNum BcProgram::ib,hexb
Denys Vlasenko
2018-12-17 21:05:09 +01:00
-
0f31a5c79e
bc: fixes to bugs found while testing 64-bit build
Denys Vlasenko
2018-12-18 03:16:48 +01:00
-
f4f10720fe
bc: fixed from 64-bit compile
Denys Vlasenko
2018-12-18 02:23:53 +01:00