bool Source::all_blanks() const { if (_chunk_list->empty()) return true; std::string str = this->get_source(); return string_is_blank(str); }
Source& Source::append_with_separator(const std::string& src, const std::string& separator) { if (!string_is_blank(src)) { if (all_blanks()) { append_text_chunk(src); } else { append_text_chunk(separator + src); } } return (*this); }
int flow_control (const char *line, DATASET *dset, CMD *cmd, void *ptr) { int ci = cmd->ci; int blocked, ok, err = 0; blocked = get_if_state(IS_FALSE); if (ci != IF && ci != ELSE && ci != ELIF && ci != ENDIF) { return blocked; } if (ci == IF) { if (blocked) { err = set_if_state(SET_FALSE); } else { ok = if_eval(line + 2, dset, ptr, &err); if (!err) { err = set_if_state(ok? SET_TRUE : SET_FALSE); } } } else if (ci == ENDIF) { err = set_if_state(SET_ENDIF); } else if (ci == ELIF) { err = set_if_state(SET_ELIF); if (!err && get_if_state(IS_TRUE)) { set_if_state(UNINDENT); ok = if_eval(line + 4, dset, ptr, &err); if (!err) { err = set_if_state(ok? SET_TRUE : SET_FALSE); } } } else if (ci == ELSE) { if (!string_is_blank(line + 4)) { err = trailing_junk_error(line + 4); } else { err = set_if_state(SET_ELSE); } } if (err) { set_if_state(RELAX); cmd->err = err; } return 1; }
static int stray_numeric (int vtype, char *tmp, double *x) { if (vtype == VALUE_STRING) { if (string_is_blank(tmp)) { *x = NADBL; return 1; } else if (import_na_string(tmp)) { *x = NADBL; return 1; } else if (numeric_string(tmp)) { *x = atof(tmp); return 1; } } return 0; }
static int cli_exec_line (ExecState *s, DATASET *dset, PRN *cmdprn) { char *line = s->line; CMD *cmd = s->cmd; PRN *prn = s->prn; MODEL *model = s->model; int old_runit = runit; char runfile[MAXLEN]; int renumber = 0; int err = 0; #if 0 fprintf(stderr, "cli_exec_line: '%s'\n", line); #endif if (gretl_compiling_function()) { err = gretl_function_append_line(line); if (err) { errmsg(err, prn); } else { pprintf(cmdprn, "%s\n", line); } return err; } if (string_is_blank(line)) { if (gretl_echo_space()) { pputc(prn, '\n'); } return 0; } if (!gretl_compiling_loop() && !s->in_comment && !cmd->context && !gretl_if_state_false()) { /* catch requests relating to saved objects, which are not really "commands" as such */ int action = cli_saved_object_action(line, dset, prn); if (action == OBJ_ACTION_INVALID) { return 1; /* action was faulty */ } else if (action != OBJ_ACTION_NONE) { return 0; /* action was OK (and handled), or ignored */ } } /* tell libgretl if we're in batch mode */ gretl_set_batch_mode(batch); if (gretl_compiling_loop()) { /* if we're stacking commands for a loop, parse "lightly" */ err = get_command_index(line, cmd); } else { err = parse_command_line(line, cmd, dset, NULL); } if (err) { int catch = 0; gretl_exec_state_uncomment(s); if (err != E_ALLOC && (cmd->flags & CMD_CATCH)) { set_gretl_errno(err); catch = 1; }