From 9a186711e41b1f7a1c6c85c958037b4310f91b08 Mon Sep 17 00:00:00 2001 From: hyung-hwan Date: Wed, 8 Aug 2018 03:41:17 +0000 Subject: [PATCH] dropped cli-mode code. it turned out to be not effective --- lib/comp.c | 101 +++++-------------- lib/dic.c | 6 +- lib/exec.c | 15 +-- lib/hcl.h | 7 +- lib/main.c | 9 -- lib/print.c | 6 +- lib/read.c | 268 +-------------------------------------------------- lib/work.txt | 75 -------------- 8 files changed, 38 insertions(+), 449 deletions(-) delete mode 100644 lib/work.txt diff --git a/lib/comp.c b/lib/comp.c index f6372d3..e5fd791 100644 --- a/lib/comp.c +++ b/lib/comp.c @@ -1365,8 +1365,7 @@ static int compile_cons_xlist_expression (hcl_t* hcl, hcl_oop_t obj) * if the name is another function call, i can't know if the * function name will be valid at the compile time. */ - HCL_ASSERT (hcl, HCL_IS_CONS_CONCODED(hcl, obj, HCL_CONCODE_XLIST) || - HCL_IS_CONS_CONCODED(hcl, obj, HCL_CONCODE_EXPLIST)); + HCL_ASSERT (hcl, HCL_IS_CONS_CONCODED(hcl, obj, HCL_CONCODE_XLIST)); car = HCL_CONS_CAR(obj); if (HCL_IS_SYMBOL(hcl,car) && (syncode = HCL_OBJ_GET_FLAGS_SYNCODE(car))) @@ -1437,8 +1436,7 @@ static int compile_cons_xlist_expression (hcl_t* hcl, hcl_oop_t obj) return -1; } } - else if (HCL_IS_SYMBOL(hcl,car) || HCL_IS_CONS_CONCODED(hcl,car,HCL_CONCODE_XLIST) || - ((hcl->option.trait & HCL_CLI_MODE) && HCL_IS_STRING(hcl, car))) + else if (HCL_IS_SYMBOL(hcl,car) || HCL_IS_CONS_CONCODED(hcl,car,HCL_CONCODE_XLIST)) { /* normal function call * ( ...) */ @@ -1457,14 +1455,7 @@ static int compile_cons_xlist_expression (hcl_t* hcl, hcl_oop_t obj) oldtop = GET_TOP_CFRAME_INDEX(hcl); HCL_ASSERT (hcl, oldtop >= 0); - if (HCL_IS_CONS_CONCODED(hcl,obj,HCL_CONCODE_EXPLIST)) - { - SWITCH_TOP_CFRAME (hcl, COP_DO_NOTHING, hcl->_nil); - } - else - { - SWITCH_TOP_CFRAME (hcl, COP_EMIT_CALL, HCL_SMOOI_TO_OOP(0)); - } + SWITCH_TOP_CFRAME (hcl, COP_EMIT_CALL, HCL_SMOOI_TO_OOP(0)); /* compile */ PUSH_CFRAME (hcl, COP_COMPILE_OBJECT, car); @@ -1515,23 +1506,11 @@ static int compile_cons_xlist_expression (hcl_t* hcl, hcl_oop_t obj) /* redundant cdr check is performed inside compile_object_list() */ PUSH_SUBCFRAME (hcl, COP_COMPILE_ARGUMENT_LIST, cdr); - if (HCL_IS_CONS_CONCODED(hcl,obj,HCL_CONCODE_EXPLIST)) - { - /* nothing to patch */ - } - else - { - /* patch the argument count in the operand field of the COP_EMIT_CALL frame */ - cf = GET_CFRAME(hcl, oldtop); - HCL_ASSERT (hcl, cf->opcode == COP_EMIT_CALL); - cf->operand = HCL_SMOOI_TO_OOP(nargs); - } + /* patch the argument count in the operand field of the COP_EMIT_CALL frame */ + cf = GET_CFRAME(hcl, oldtop); + HCL_ASSERT (hcl, cf->opcode == COP_EMIT_CALL); + cf->operand = HCL_SMOOI_TO_OOP(nargs); } - /* TODO:??? else if (HCL_IS_CONS_CONCODED(hcl, car, HCL_CONCODE_EXPLIST)) - { - HCL_ASSERT (hcl, hcl->option.trait & HCL_CLI_MODE); - SWITCH_TOP_CFRAME (hcl, COP_COMPILE_OBJECT, HCL_SMOOI_TO_OOP(0)); - } */ else { hcl_setsynerrbfmt (hcl, HCL_SYNERR_CALLABLE, HCL_NULL, HCL_NULL, "invalid callable %O in function call - %O", car, obj); /* error location */ @@ -1588,58 +1567,28 @@ static HCL_INLINE int compile_symbol (hcl_t* hcl, hcl_oop_t obj) return -1; } - if (hcl->option.trait & HCL_CLI_MODE) + /* check if a symbol is a local variable */ + if (find_temporary_variable_backward(hcl, obj, &index) <= -1) { - if (find_temporary_variable_backward(hcl, obj, &index) <= -1) + hcl_oop_t cons; +/* TODO: if i require all variables to be declared, this part is not needed and should handle it as an error */ +/* TODO: change the scheme... allow declaration??? */ + /* global variable */ + cons = (hcl_oop_t)hcl_getatsysdic(hcl, obj); + if (!cons) { - hcl_oop_t cons; - - cons = (hcl_oop_t)hcl_getatsysdic(hcl, obj); - if (cons) - { - if (add_literal(hcl, cons, &index) <= -1 || - emit_single_param_instruction(hcl, HCL_CODE_PUSH_OBJECT_0, index) <= -1) return -1; - } - else - { - /* in the cli mode, a symbol is pushed as a normal literal if it is not resolved - * at the moment of compilation */ - if (add_literal(hcl, obj, &index) <= -1 || - emit_single_param_instruction(hcl, HCL_CODE_PUSH_LITERAL_0, index) <= -1) return -1; - } - - return 0; - } - else - { - return emit_indexed_variable_access(hcl, index, HCL_CODE_PUSH_CTXTEMPVAR_0, HCL_CODE_PUSH_TEMPVAR_0); + cons = (hcl_oop_t)hcl_putatsysdic(hcl, obj, hcl->_nil); + if (!cons) return -1; } + + if (add_literal(hcl, cons, &index) <= -1 || + emit_single_param_instruction(hcl, HCL_CODE_PUSH_OBJECT_0, index) <= -1) return -1; + + return 0; } else { - /* check if a symbol is a local variable */ - if (find_temporary_variable_backward(hcl, obj, &index) <= -1) - { - hcl_oop_t cons; - /* TODO: if i require all variables to be declared, this part is not needed and should handle it as an error */ - /* TODO: change the scheme... allow declaration??? */ - /* global variable */ - cons = (hcl_oop_t)hcl_getatsysdic(hcl, obj); - if (!cons) - { - cons = (hcl_oop_t)hcl_putatsysdic(hcl, obj, hcl->_nil); - if (!cons) return -1; - } - - if (add_literal(hcl, cons, &index) <= -1 || - emit_single_param_instruction(hcl, HCL_CODE_PUSH_OBJECT_0, index) <= -1) return -1; - - return 0; - } - else - { - return emit_indexed_variable_access(hcl, index, HCL_CODE_PUSH_CTXTEMPVAR_0, HCL_CODE_PUSH_TEMPVAR_0); - } + return emit_indexed_variable_access(hcl, index, HCL_CODE_PUSH_CTXTEMPVAR_0, HCL_CODE_PUSH_TEMPVAR_0); } } @@ -1686,10 +1635,6 @@ static int compile_object (hcl_t* hcl) if (compile_cons_dic_expression(hcl, cf->operand) <= -1) return -1; break; - case HCL_CONCODE_EXPLIST: - if (compile_cons_xlist_expression (hcl, cf->operand) <= -1) return -1; - break; - /* TODO: QLIST? */ default: if (compile_cons_xlist_expression (hcl, cf->operand) <= -1) return -1; diff --git a/lib/dic.c b/lib/dic.c index 212a24a..094242b 100644 --- a/lib/dic.c +++ b/lib/dic.c @@ -26,7 +26,11 @@ #include "hcl-prv.h" -#define SYMBOL_ONLY_KEY +/* The dictionary functions in this file are used for storing + * a dictionary object enclosed in {}. So putting a non-symbol + * key is allowed like { 1 2 3 4 } where 1 and 3 are keys. + * so SYMBOL_ONLY_KEY must not be defined */ +/*#define SYMBOL_ONLY_KEY*/ static hcl_oop_oop_t expand_bucket (hcl_t* hcl, hcl_oop_oop_t oldbuc) { diff --git a/lib/exec.c b/lib/exec.c index b26cf5d..7442ca9 100644 --- a/lib/exec.c +++ b/lib/exec.c @@ -161,10 +161,9 @@ static void vm_checkbc (hcl_t* hcl, hcl_oob_t bcode) static HCL_INLINE hcl_oop_t make_context (hcl_t* hcl, hcl_ooi_t ntmprs) { HCL_ASSERT (hcl, ntmprs >= 0); - return hcl_allocoopobj (hcl, HCL_BRAND_CONTEXT, HCL_CONTEXT_NAMED_INSTVARS + (hcl_oow_t)ntmprs); + return hcl_allocoopobj(hcl, HCL_BRAND_CONTEXT, HCL_CONTEXT_NAMED_INSTVARS + (hcl_oow_t)ntmprs); } - static HCL_INLINE int prepare_to_alloc_pid (hcl_t* hcl) { hcl_oow_t new_capa; @@ -927,7 +926,7 @@ static int __activate_context (hcl_t* hcl, hcl_oop_context_t rcv_blkctx, hcl_ooi /* create a new block context to clone rcv_blkctx */ hcl_pushtmp (hcl, (hcl_oop_t*)&rcv_blkctx); - blkctx = (hcl_oop_context_t) make_context (hcl, local_ntmprs); + blkctx = (hcl_oop_context_t) make_context(hcl, local_ntmprs); hcl_poptmp (hcl); if (!blkctx) return -1; @@ -1203,7 +1202,7 @@ static int start_initial_process_and_context (hcl_t* hcl, hcl_ooi_t initial_ip) hcl_oop_process_t proc; /* create a fake initial context. */ - ctx = (hcl_oop_context_t)make_context (hcl, 0); /* no temporary variables */ + ctx = (hcl_oop_context_t)make_context(hcl, 0); /* no temporary variables */ if (!ctx) return -1; /* the initial context starts the life of the entire VM @@ -1758,10 +1757,6 @@ static int execute (hcl_t* hcl) if (call_primitive(hcl, b1) <= -1) goto oops; break; - case HCL_BRAND_SYMBOL: - case HCL_BRAND_STRING: - if ((hcl->option.trait & HCL_CLI_MODE) && exec_syscmd(hcl, b1) >= 0) break; - /* fall thru */ default: goto cannot_call; } @@ -2281,7 +2276,7 @@ static int execute (hcl_t* hcl) * clones a block context and activates the cloned context. * this base block context is created with no temporaries * for this reason */ - blkctx = (hcl_oop_context_t)make_context (hcl, 0); + blkctx = (hcl_oop_context_t)make_context(hcl, 0); if (!blkctx) goto oops; /* the long forward jump instruction has the format of @@ -2338,7 +2333,7 @@ static int execute (hcl_t* hcl) * context and activates the cloned context. * this base block context is created with no * stack for this reason. */ - blkctx = (hcl_oop_context_t)make_context (hcl, 0); + blkctx = (hcl_oop_context_t)make_context(hcl, 0); if (!blkctx) goto oops; /* get the receiver to the block copy message after block context instantiation diff --git a/lib/hcl.h b/lib/hcl.h index 188e1e8..6b6e9fd 100644 --- a/lib/hcl.h +++ b/lib/hcl.h @@ -187,9 +187,6 @@ enum hcl_trait_t HCL_DEBUG_BIGINT = (1u << 1), #endif - /* command line mode */ - HCL_CLI_MODE = (1u << 7), - /* perform no garbage collection when the heap is full. * you still can use hcl_gc() explicitly. */ HCL_NOGC = (1u << 8), @@ -1424,9 +1421,7 @@ enum hcl_concode_t HCL_CONCODE_ARRAY, /* [] */ HCL_CONCODE_BYTEARRAY, /* #[] */ HCL_CONCODE_DIC, /* {} */ - HCL_CONCODE_QLIST, /* #() - data list */ - - HCL_CONCODE_EXPLIST /* expresssion list used in the cli mode */ + HCL_CONCODE_QLIST /* #() - data list */ }; typedef enum hcl_concode_t hcl_concode_t; diff --git a/lib/main.c b/lib/main.c index c9841f8..419d92b 100644 --- a/lib/main.c +++ b/lib/main.c @@ -1673,7 +1673,6 @@ int main (int argc, char* argv[]) { ":log", 'l' }, { ":memsize", 'm' }, { "large-pages", '\0' }, - { "cli-mode", '\0' }, #if defined(HCL_BUILD_DEBUG) { ":debug", '\0' }, /* NOTE: there is no short option for --debug */ #endif @@ -1688,7 +1687,6 @@ int main (int argc, char* argv[]) const char* logopt = HCL_NULL; hcl_oow_t memsize = MIN_MEMSIZE; int large_pages = 0; - int cli_mode = 0; #if defined(HCL_BUILD_DEBUG) const char* dbgopt = HCL_NULL; @@ -1723,11 +1721,6 @@ int main (int argc, char* argv[]) large_pages = 1; break; } - else if (hcl_comp_bcstr(opt.lngopt, "cli-mode") == 0) - { - cli_mode = 1; - break; - } #if defined(HCL_BUILD_DEBUG) else if (hcl_comp_bcstr(opt.lngopt, "debug") == 0) { @@ -1794,8 +1787,6 @@ int main (int argc, char* argv[]) /*trait |= HCL_NOGC;*/ trait |= HCL_AWAIT_PROCS; - - if (cli_mode) trait |= HCL_CLI_MODE; hcl_setoption (hcl, HCL_TRAIT, &trait); /* disable GC logs */ diff --git a/lib/print.c b/lib/print.c index 61b4444..e08208b 100644 --- a/lib/print.c +++ b/lib/print.c @@ -206,10 +206,9 @@ static HCL_INLINE int outfmt_obj (hcl_t* hcl, hcl_bitmask_t mask, hcl_oop_t obj, { { "(", "(" }, /*HCL_CONCODE_XLIST */ { "[", "[" }, /*HCL_CONCODE_ARRAY */ - { "#[", "[" }, /*HCL_CONCODE_BYTEARRAY */ + { "#[", "[" }, /*HCL_CONCODE_BYTEARRAY */ { "{", "{" }, /*HCL_CONCODE_DIC */ - { "#(", "[" }, /*HCL_CONCODE_QLIST */ - { "@(", "@(" } /*HCL_CONCODE_EXPLIST */ + { "#(", "[" } /*HCL_CONCODE_QLIST */ }; static const hcl_bch_t *closing_parens[][2] = @@ -219,7 +218,6 @@ static HCL_INLINE int outfmt_obj (hcl_t* hcl, hcl_bitmask_t mask, hcl_oop_t obj, { "]", "]" }, /*HCL_CONCODE_BYTEARRAY */ { "}", "}" }, /*HCL_CONCODE_DIC */ { ")", "]" }, /*HCL_CONCODE_QLIST */ - { ")", ")" } /*HCL_CONCODE_EXPLIST */ }; static const hcl_bch_t* breakers[][2] = diff --git a/lib/read.c b/lib/read.c index 3e772e3..c355150 100644 --- a/lib/read.c +++ b/lib/read.c @@ -1015,18 +1015,7 @@ retry: do { /* skip spaces */ - while (is_spacechar(hcl->c->lxc.c)) - { - if ((hcl->option.trait & HCL_CLI_MODE) && hcl->c->lxc.c == '\n' && TOKEN_TYPE(hcl) != HCL_IOTOK_EOL) - { - SET_TOKEN_TYPE (hcl, HCL_IOTOK_EOL); - CLEAR_TOKEN_NAME (hcl); - ADD_TOKEN_STR(hcl, vocas[VOCA_EOL].str, vocas[VOCA_EOL].len); - hcl->c->tok.loc = hcl->c->lxc.l; /* set token location */ - goto done; - } - GET_CHAR (hcl); - } + while (is_spacechar(hcl->c->lxc.c)) GET_CHAR (hcl); /* the first character after the last space is in hcl->c->lxc */ if ((n = skip_comment(hcl)) <= -1) return -1; } @@ -2187,258 +2176,6 @@ static int read_object (hcl_t* hcl) return 0; } -static int read_object_in_cli_mode (hcl_t* hcl) -{ -/* -( ls -laF - pwd ) -> ( (ls -laF) (pwd) ) - - - -ls -laF (pwd) -> (ls -laF ( (pwd ) ) - - -ls -laF -> (ls -laF) - - -( -> ( - ls -laF -> (ls -laF) - pwd -> (pwd) -) -> ) - - -( ( - pwd ( (pwd ( - ls -laF (ls -laF) - ) ) ) -) ) - -* SOME key test cases - ------------ -(pwd) ------------- -(pwd -) ------------- -( -pwd) ------------- -( -pwd -) ------------- -pwd (pwd) ------------- -pwd (pwd -) -* - ---------------- -pwd) -------> error - -*/ - int level = 0, array_level = 0, flagv = 0; - hcl_oop_t obj; - int start_virtual_list = 1; - hcl_iotok_type_t prev_token_type = HCL_IOTOK_EOF; - - if (TOKEN_TYPE(hcl) == HCL_IOTOK_LPAREN) start_virtual_list = 0; - - while (1) - { - redo: - if (start_virtual_list) - { -HCL_DEBUG0 (hcl, "STARTING vritual list...\n"); - flagv = 0; - LIST_FLAG_SET_CONCODE (flagv, HCL_CONCODE_XLIST); - - /* push some data to simulate recursion into - * a list literal or an array literal */ - if (enter_list(hcl, flagv) == HCL_NULL) goto oops; - level++; - //if (LIST_FLAG_GET_CONCODE(flagv) == HCL_CONCODE_ARRAY) array_level++; - - start_virtual_list = 0; - } - - switch (TOKEN_TYPE(hcl)) - { - default: - hcl_setsynerr (hcl, HCL_SYNERR_ILTOK, TOKEN_LOC(hcl), TOKEN_NAME(hcl)); - goto oops; - - case HCL_IOTOK_EOF: - hcl_setsynerr (hcl, HCL_SYNERR_EOF, TOKEN_LOC(hcl), TOKEN_NAME(hcl)); - goto oops; - - case HCL_IOTOK_INCLUDE: - /* TODO: should i limit where #include can be specified? - * disallow it inside a list literal or an array literal? */ - GET_TOKEN (hcl); - if (TOKEN_TYPE(hcl) != HCL_IOTOK_STRLIT) - { - hcl_setsynerr (hcl, HCL_SYNERR_STRING, TOKEN_LOC(hcl), TOKEN_NAME(hcl)); - goto oops; - } - if (begin_include(hcl) <= -1) goto oops; - goto redo; - - case HCL_IOTOK_LPAREN: /* () */ - flagv = 0; - LIST_FLAG_SET_CONCODE (flagv, HCL_CONCODE_EXPLIST); - /*start_list:*/ - if (level >= HCL_TYPE_MAX(int)) - { - /* the nesting level has become too deep */ - hcl_setsynerr (hcl, HCL_SYNERR_NESTING, TOKEN_LOC(hcl), TOKEN_NAME(hcl)); - goto oops; - } - - /* push some data to simulate recursion into - * a list literal or an array literal */ -HCL_DEBUG0 (hcl, "111 STARTING list...\n"); - if (enter_list(hcl, flagv) == HCL_NULL) goto oops; - level++; - //if (LIST_FLAG_GET_CONCODE(flagv) == HCL_CONCODE_ARRAY) array_level++; - - /* read the next token */ - start_virtual_list = 1; - goto next_token; - - case HCL_IOTOK_EOL: - { - int oldflagv; - //int concode; - - if (prev_token_type == HCL_IOTOK_EOL || prev_token_type == HCL_IOTOK_LPAREN) goto next_token; - - if (level <= 0) - { - hcl_setsynerr (hcl, HCL_SYNERR_UNBALPBB, TOKEN_LOC(hcl), HCL_NULL); - goto oops; - } - -HCL_DEBUG1 (hcl, "11 LEAVING LIST level->%d\n", (int)level); - //concode = LIST_FLAG_GET_CONCODE(flagv); - obj = leave_list(hcl, &flagv, &oldflagv); - - level--; - //if (LIST_FLAG_GET_CONCODE(oldflagv) == HCL_CONCODE_ARRAY) array_level--; - - start_virtual_list = 1; - break; - } - - case HCL_IOTOK_RPAREN: - { - int oldflagv; - //int concode; - - if (prev_token_type == HCL_IOTOK_LPAREN) - { - hcl_setsynerr (hcl, HCL_SYNERR_EMPTYXLIST, TOKEN_LOC(hcl), HCL_NULL); /* TODO: change error code?? */ - goto oops; - } - else if (prev_token_type == HCL_IOTOK_EOL) - { - if (level <= 1) goto unbalpbb; - - obj = leave_list(hcl, &flagv, &oldflagv); - level--; - //if (LIST_FLAG_GET_CONCODE(oldflagv) == HCL_CONCODE_ARRAY) array_level--; - - if (!obj) goto oops; - HCL_ASSERT (hcl, level > 0); - HCL_ASSERT (hcl, obj == hcl->_nil); - } - else - { - /* exit #1 */ - if (level <= 1) goto unbalpbb; - - //concode = LIST_FLAG_GET_CONCODE(flagv); -HCL_DEBUG0 (hcl, "22 LEAVING LIST\n"); - obj = leave_list(hcl, &flagv, &oldflagv); - level--; - //if (LIST_FLAG_GET_CONCODE(oldflagv) == HCL_CONCODE_ARRAY) array_level--; - - if (!obj) goto oops; - HCL_ASSERT (hcl, level > 0); - - if (obj != hcl->_nil) - { - //HCL_ASSERT (hcl, obj == hcl->_nil); - HCL_DEBUG1 (hcl, "00 ADDING TO LIST %O\n", obj); - if (chain_to_list(hcl, obj) == HCL_NULL) goto oops; - clear_comma_colon_flag (hcl); - } - } - - /* exit #2 */ - if (level <= 0) - { - unbalpbb: - hcl_setsynerr (hcl, HCL_SYNERR_UNBALPBB, TOKEN_LOC(hcl), HCL_NULL); - goto oops; - } - - HCL_DEBUG1 (hcl, "33 LEAVING LIST level %d\n", level); - //concode = LIST_FLAG_GET_CONCODE(flagv); - obj = leave_list(hcl, &flagv, &oldflagv); /* this object is added to the chain after break */ - level--; - - //if (LIST_FLAG_GET_CONCODE(oldflagv) == HCL_CONCODE_ARRAY) array_level--; - - if (!obj) goto oops; - if (obj == hcl->_nil) - { - /* consider an input like ls (pwd ) where EOL is '\n' */ - goto next_token; - } - break; - } - - case HCL_IOTOK_NUMLIT: - case HCL_IOTOK_RADNUMLIT: - obj = string_to_num(hcl, TOKEN_NAME(hcl), TOKEN_TYPE(hcl) == HCL_IOTOK_RADNUMLIT); - break; - - case HCL_IOTOK_STRLIT: - obj = hcl_makestring(hcl, TOKEN_NAME_PTR(hcl), TOKEN_NAME_LEN(hcl), 0); - break; - - case HCL_IOTOK_IDENT: - obj = hcl_makestring(hcl, TOKEN_NAME_PTR(hcl), TOKEN_NAME_LEN(hcl), 0); - obj = hcl_makesymbol(hcl, TOKEN_NAME_PTR(hcl), TOKEN_NAME_LEN(hcl)); - break; - } - - if (!obj) goto oops; - - /* check if we are at the top level */ - if (level <= 0) break; /* yes */ - - /* if not, append the element read into the current list. - * if we are not at the top level, we must be in a list */ -HCL_DEBUG1 (hcl, "11 ADDING TO LIST %O\n", obj); - if (chain_to_list(hcl, obj) == HCL_NULL) goto oops; - clear_comma_colon_flag (hcl); - - next_token: - prev_token_type = TOKEN_TYPE(hcl); - /* read the next token */ - GET_TOKEN (hcl); - } - - hcl->c->r.e = obj; - return 0; - -oops: - SET_TOKEN_TYPE (hcl, HCL_IOTOK_EOL); /* to make get_token() not return an immediate EOL after error */ - return -1; -} - static HCL_INLINE int __read (hcl_t* hcl) { if (get_token(hcl) <= -1) return -1; @@ -2447,7 +2184,7 @@ static HCL_INLINE int __read (hcl_t* hcl) hcl_seterrnum (hcl, HCL_EFINIS); return -1; } - return (hcl->option.trait & HCL_CLI_MODE)? read_object_in_cli_mode(hcl): read_object(hcl); + return read_object(hcl); } hcl_oop_t hcl_read (hcl_t* hcl) @@ -2615,7 +2352,6 @@ int hcl_attachio (hcl_t* hcl, hcl_ioimpl_t reader, hcl_ioimpl_t printer) /* the stream is open. set it as the current input stream */ hcl->c->curinp = &hcl->c->inarg; - if (hcl->option.trait & HCL_CLI_MODE) SET_TOKEN_TYPE (hcl, HCL_IOTOK_EOL); return 0; oops: diff --git a/lib/work.txt b/lib/work.txt deleted file mode 100644 index 3aa4a2a..0000000 --- a/lib/work.txt +++ /dev/null @@ -1,75 +0,0 @@ -(ls -laF @((pwd) (pwd) (pwd))) -2018-08-08 00:32:16 +0900 000000 push_literal @0 -2018-08-08 00:32:16 +0900 000001 push_literal @1 -2018-08-08 00:32:16 +0900 000002 push_literal @2 -2018-08-08 00:32:16 +0900 000003 call 0 pwd -2018-08-08 00:32:16 +0900 000004 push_literal @2 -2018-08-08 00:32:16 +0900 000005 call 0 pwd -2018-08-08 00:32:16 +0900 000006 push_literal @2 -2018-08-08 00:32:16 +0900 000007 call 0 pwd -2018-08-08 00:32:16 +0900 000008 call 2 -2018-08-08 00:32:16 +0900 000009 pop_stacktop -2018-08-08 00:32:16 +0900 @0 ls -2018-08-08 00:32:16 +0900 @1 -laF -2018-08-08 00:32:16 +0900 @2 pwd - - - - -(ls -laF @((echo qq) (echo jj) (echo -n cc))) -2018-08-08 00:57:55 +0900 000000 push_literal @0 -2018-08-08 00:57:55 +0900 000001 push_literal @1 -2018-08-08 00:57:55 +0900 000002 push_literal @2 -2018-08-08 00:57:55 +0900 000003 push_literal @3 -2018-08-08 00:57:55 +0900 000004 call 1 echo qq -2018-08-08 00:57:55 +0900 000005 push_literal @2 -2018-08-08 00:57:55 +0900 000006 push_literal @4 -2018-08-08 00:57:55 +0900 000007 call 1 echo jj -2018-08-08 00:57:55 +0900 000008 push_literal @2 -2018-08-08 00:57:55 +0900 000009 push_literal @5 -2018-08-08 00:57:55 +0900 000010 push_literal @6 -2018-08-08 00:57:55 +0900 000011 call 2 echo -n cc -2018-08-08 00:57:55 +0900 000012 call 2 ls -laF .... -2018-08-08 00:57:55 +0900 000013 pop_stacktop -2018-08-08 00:57:55 +0900 @0 ls -2018-08-08 00:57:55 +0900 @1 -laF -2018-08-08 00:57:55 +0900 @2 echo -2018-08-08 00:57:55 +0900 @3 qq -2018-08-08 00:57:55 +0900 @4 jj -2018-08-08 00:57:55 +0900 @5 -n -2018-08-08 00:57:55 +0900 @6 cc - - - -(ls -laF @((@((pwd))))) - - - -ls -laF ( - ( - pwd - ps -ef - ) -) ====> (ls -laF @( - ( - @( - (pwd) - (ps -ef) - ) - ) - ) - ) - - - -ls -laF ( - ( - pwd - ps -ef - ) -qq -) ===========> (ls -laF @( - ( - @((pwd) (ps -ef)) -qq - ) - ) - )