Commit Graph

  • 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