Lines Matching refs:env

40 void (*to_ptr)(fcode_env_t *env) = do_set_action;
44 parse_a_string(fcode_env_t *env, int *lenp) in parse_a_string() argument
46 parse_word(env); in parse_a_string()
47 return (pop_a_string(env, lenp)); in parse_a_string()
51 constant(fcode_env_t *env) in constant() argument
56 name = parse_a_string(env, &len); in constant()
57 env->instance_mode = 0; in constant()
58 make_common_access(env, name, len, 1, 0, in constant()
63 buffer_colon(fcode_env_t *env) in buffer_colon() argument
69 name = parse_a_string(env, &len); in buffer_colon()
70 make_common_access(env, name, len, 2, in buffer_colon()
71 env->instance_mode, &noop, &noop, &set_buffer_actions); in buffer_colon()
75 value(fcode_env_t *env) in value() argument
80 name = parse_a_string(env, &len); in value()
81 make_common_access(env, name, len, 1, in value()
82 env->instance_mode, &noop, &noop, &set_value_actions); in value()
86 variable(fcode_env_t *env) in variable() argument
92 name = parse_a_string(env, &len); in variable()
93 make_common_access(env, name, len, 1, in variable()
94 env->instance_mode, &instance_variable, &do_create, NULL); in variable()
98 defer(fcode_env_t *env) in defer() argument
100 static void (*crash_ptr)(fcode_env_t *env) = do_crash; in defer()
105 name = parse_a_string(env, &len); in defer()
106 make_common_access(env, name, len, 1, in defer()
107 env->instance_mode, &noop, &noop, &set_defer_actions); in defer()
111 field(fcode_env_t *env) in field() argument
116 over(env); in field()
117 name = parse_a_string(env, &len); in field()
118 make_common_access(env, name, len, 1, 0, &do_field, &do_field, NULL); in field()
119 add(env); in field()
123 bye(fcode_env_t *env) in bye() argument
129 do_resume(fcode_env_t *env) in do_resume() argument
131 if (env->interactive) env->interactive--; in do_resume()
139 return_to_interact(fcode_env_t *env) in return_to_interact() argument
146 do_interact(fcode_env_t *env) in do_interact() argument
152 input_typ *old_input = env->input; in do_interact()
155 env->interactive++; in do_interact()
156 level = env->interactive; in do_interact()
160 env->input->separator = ' '; in do_interact()
161 env->input->maxlen = 256; in do_interact()
162 env->input->buffer = MALLOC(env->input->maxlen); in do_interact()
163 env->input->scanptr = env->input->buffer; in do_interact()
167 RS = env->rs0; in do_interact()
168 DS = env->ds0; in do_interact()
171 env->input = old_input; in do_interact()
172 env->order_depth = 0; in do_interact()
178 env->input = old_input; in do_interact()
180 do_forth(env); in do_interact()
181 do_definitions(env); in do_interact()
190 while (env->interactive == level) { in do_interact()
194 DEBUGF(SHOW_RS, output_return_stack(env, 0, MSG_FC_DEBUG)); in do_interact()
195 DEBUGF(SHOW_STACK, output_data_stack(env, MSG_FC_DEBUG)); in do_interact()
203 read_line(env); in do_interact()
204 if ((line = pop_a_string(env, NULL)) == NULL) in do_interact()
207 env->input->scanptr = strcpy(env->input->buffer, line); in do_interact()
213 env->input->scanptr = fgets(env->input->buffer, in do_interact()
214 env->input->maxlen, stdin); in do_interact()
219 if (env->input->scanptr == NULL) in do_interact()
223 if ((p = strpbrk(env->input->scanptr, "\n\r")) != NULL) in do_interact()
226 if ((wlen = strlen(env->input->scanptr)) == 0) in do_interact()
229 PUSH(DS, (fstack_t)env->input->buffer); in do_interact()
231 evaluate(env); in do_interact()
235 FREE(env->input->buffer); in do_interact()
239 temp_base(fcode_env_t *env, fstack_t base) in temp_base() argument
243 obase = env->num_base; in temp_base()
244 env->num_base = base; in temp_base()
245 parse_word(env); in temp_base()
246 evaluate(env); in temp_base()
247 env->num_base = obase; in temp_base()
251 temp_decimal(fcode_env_t *env) in temp_decimal() argument
253 temp_base(env, 10); in temp_decimal()
257 temp_hex(fcode_env_t *env) in temp_hex() argument
259 temp_base(env, 0x10); in temp_hex()
263 temp_binary(fcode_env_t *env) in temp_binary() argument
265 temp_base(env, 2); in temp_binary()
269 do_hex(fcode_env_t *env) in do_hex() argument
271 env->num_base = 0x10; in do_hex()
275 do_decimal(fcode_env_t *env) in do_decimal() argument
277 env->num_base = 10; in do_decimal()
281 do_binary(fcode_env_t *env) in do_binary() argument
283 env->num_base = 2; in do_binary()
287 do_clear(fcode_env_t *env) in do_clear() argument
289 DS = env->ds0; in do_clear()
293 action_one(fcode_env_t *env) in action_one() argument
296 do_tick(env); in action_one()
297 if (env->state) { in action_one()
301 perform_action(env); in action_one()
306 do_if(fcode_env_t *env) in do_if() argument
308 branch_common(env, 1, 1, 0); in do_if()
312 do_else(fcode_env_t *env) in do_else() argument
314 branch_common(env, 1, 0, 1); in do_else()
315 bresolve(env); in do_else()
319 do_then(fcode_env_t *env) in do_then() argument
321 bresolve(env); in do_then()
325 do_of(fcode_env_t *env) in do_of() argument
327 branch_common(env, 0, 2, 0); in do_of()
331 load_file(fcode_env_t *env) in load_file() argument
339 CHECK_DEPTH(env, 2, "load-file"); in load_file()
340 name = pop_a_string(env, &len); in load_file()
344 forth_perror(env, "Can't open '%s'", name); in load_file()
350 forth_perror(env, "load_file: MALLOC(%d)", len); in load_file()
353 forth_perror(env, "read error '%s'", name); in load_file()
361 load(fcode_env_t *env) in load() argument
363 parse_word(env); in load()
365 load_file(env); in load()
369 fevaluate(fcode_env_t *env) in fevaluate() argument
374 two_dup(env); in fevaluate()
375 buffer = pop_a_string(env, &len); in fevaluate()
380 evaluate(env); in fevaluate()
384 fload(fcode_env_t *env) in fload() argument
388 load(env); in fload()
389 two_dup(env); in fload()
390 buffer = pop_a_string(env, NULL); in fload()
391 fevaluate(env); in fload()
403 add_line_to_history(fcode_env_t *env, char *line) in add_line_to_history() argument
418 do_emit_chars(fcode_env_t *env, char c, int n) in do_emit_chars() argument
423 do_emit(env, c); in do_emit_chars()
427 do_emit_str(fcode_env_t *env, char *str, int n) in do_emit_str() argument
432 do_emit(env, *str++); in do_emit_str()
465 redraw_line(fcode_env_t *env, char *prev_l, char *prev_cursor, char *prev_eol, in redraw_line() argument
471 do_emit_chars(env, '\b', prev_cursor - prev_l); in redraw_line()
474 do_emit_str(env, new_l, new_eol - new_l); in redraw_line()
478 do_emit_chars(env, ' ', len); in redraw_line()
481 do_emit_chars(env, '\b', len + (new_eol - new_cursor)); in redraw_line()
497 read_line(fcode_env_t *env) in read_line() argument
508 push_string(env, buf, strlen(buf)); in read_line()
523 keyquestion(env); in read_line()
524 key(env); in read_line()
532 do_emit(env, d); in read_line()
547 do_emit_chars(env, '\b', cursor - tp); in read_line()
556 do_emit_str(env, tp, tp - cursor); in read_line()
574 redraw_line(env, buf, cursor, eol, buf, cursor, in read_line()
587 do_emit(env, d); in read_line()
597 do_emit(env, *cursor++); in read_line()
601 do_emit_chars(env, '\b', cursor - buf); in read_line()
606 do_emit_str(env, cursor, eol - cursor); in read_line()
627 redraw_line(env, buf, cursor, eol, in read_line()
638 redraw_line(env, buf, cursor, eol, p, p, p + len); in read_line()
664 redraw_line(env, buf, cursor, eol, buf, cursor, in read_line()
670 redraw_line(env, buf, cursor, eol, buf, cursor, in read_line()
682 redraw_line(env, buf, cursor, eol, buf, cursor - len, in read_line()
690 redraw_line(env, buf, cursor, eol, buf, buf, buf); in read_line()
702 redraw_line(env, buf, cursor, eol, buf, cursor + len, in read_line()
713 do_emit(env, '\n'); in read_line()
715 do_emit_str(env, history_lines[i], in read_line()
717 do_emit(env, '\n'); in read_line()
719 redraw_line(env, buf, buf, buf, buf, cursor, eol); in read_line()
723 redraw_line(env, buf, cursor, eol, buf, cursor, eol); in read_line()
733 do_emit(env, '\b'); in read_line()
741 redraw_line(env, buf, cursor, eol, buf, cursor - 1, in read_line()
750 do_emit(env, '\n'); in read_line()
755 add_line_to_history(env, buf); in read_line()
757 push_string(env, buf, strlen(buf)); in read_line()
761 set_prompt(fcode_env_t *env) in set_prompt() argument
765 if ((prompt = parse_a_string(env, NULL)) != NULL) in set_prompt()
774 fcode_env_t *env = initial_env; in _init() local
776 ASSERT(env); in _init()