|
|
|
/** ! |
|
/** * |
/** + |
/** +! |
|
P4COMPILES (p4_plus_loop, p4_plus_loop_execution, P4_SKIPS_NOTHING, P4_LOOP_STYLE); |
/** , |
/** - |
/** . |
|
P4COMPILES (p4_dot_quote, p4_dot_quote_execution, P4_SKIPS_STRING, P4_DEFAULT_STYLE); |
/** / |
/** /MOD |
/** 0< |
/** 0= |
/** 1+ |
/** 1- |
/** 2! |
/** 2* |
/** 2/ |
/** 2@ |
/** 2DROP |
/** 2OVER |
|
FCode (p4_colon_EXIT) { FX (p4_Q_csp); STATE = P4_FALSE; FX (p4_reveal); } |
P4RUNTIME1(p4_colon, p4_colon_RT); |
|
P4COMPILES2 (p4_semicolon, p4_semicolon_execution, p4_locals_exit_execution, P4_SKIPS_NOTHING, P4_SEMICOLON_STYLE); |
/** < |
/** = |
/** > |
FCode_XE (p4_to_r_execution) { FX_USE_CODE_ADDR; |
P4COMPILES (p4_to_r, p4_to_r_execution, P4_SKIPS_NOTHING, P4_DEFAULT_STYLE); |
/** @ |
/** ABS |
/** ALIGN |
/** AND |
/** BEGIN |
P4COMPILES (p4_begin, p4_noop, P4_SKIPS_NOTHING, P4_BEGIN_STYLE); |
/** C! |
/** C, |
/** C@ |
/** CELL+ |
/** CELLS |
/** CHAR+ |
|
P4RUNTIME1(p4_constant, p4_constant_RT); |
/** CR |
/** DECIMAL |
/** DEPTH |
|
|
P4COMPILES (p4_do, p4_do_execution, P4_SKIPS_OFFSET, P4_DO_STYLE); |
|
|
P4RUNTIME1 (p4_does, p4_does_RT); |
|
P4COMPILES (p4_does, p4_does_execution, P4_SKIPS_NOTHING, P4_DOES_STYLE); |
|
P4RUNTIME1(p4_builds, p4_builds_RT); |
/** DROP |
|
P4COMPILES (p4_else, p4_else_execution, P4_SKIPS_OFFSET, P4_ELSE_STYLE); |
/** EMIT |
/** EVALUATE |
P4COMPILES2 (p4_exit, p4_semicolon_execution, p4_locals_exit_execution, P4_SKIPS_NOTHING, P4_DEFAULT_STYLE); |
/** FILL |
/** HERE |
/** HOLD |
/** I |
FCode_XE (p4_i_execution) { FX_USE_CODE_ADDR; FX_PUSH_SP = FX_RP[0] + FX_RP[1]; FX_USE_CODE_EXIT; } |
P4COMPILES (p4_i, p4_i_execution, P4_SKIPS_NOTHING, P4_DEFAULT_STYLE); |
|
P4COMPILES (p4_if, p4_if_execution, P4_SKIPS_OFFSET, P4_IF_STYLE); |
/** IMMEDIATE |
/** INVERT |
FCode_XE (p4_j_execution) { FX_USE_CODE_ADDR; FX_PUSH_SP = FX_RP[3] + FX_RP[4]; FX_USE_CODE_EXIT; } |
P4COMPILES (p4_j, p4_j_execution, P4_SKIPS_NOTHING, P4_DEFAULT_STYLE); |
/** KEY |
/** LEAVE |
FCode_XE (p4_leave_execution) { FX_USE_CODE_ADDR; |
P4COMPILES (p4_leave, p4_leave_execution, P4_SKIPS_NOTHING, P4_DEFAULT_STYLE); |
|
P4COMPILES (p4_literal, p4_literal_execution, P4_SKIPS_CELL, P4_DEFAULT_STYLE); |
|
P4COMPILES (p4_loop, p4_loop_execution, P4_SKIPS_OFFSET, P4_LOOP_STYLE); |
/** LSHIFT |
/** M* |
/** MAX |
/** MIN |
/** MOD |
/** MOVE |
/** NEGATE |
/** OR |
/** OVER |
|
P4COMPILES (p4_postpone, p4_postpone_execution, P4_SKIPS_NOTHING, P4_DEFAULT_STYLE); |
FCode_XE (p4_r_from_execution) { FX_USE_CODE_ADDR; |
P4COMPILES (p4_r_from, p4_r_from_execution, P4_SKIPS_NOTHING, P4_DEFAULT_STYLE); |
FCode_XE (p4_r_fetch_execution) { FX_USE_CODE_ADDR; FX_PUSH_SP = *FX_RP; FX_USE_CODE_EXIT; } |
P4COMPILES (p4_r_fetch, p4_r_fetch_execution, P4_SKIPS_NOTHING, P4_DEFAULT_STYLE); |
P4COMPILES (p4_repeat, p4_else_execution, P4_SKIPS_OFFSET, P4_REPEAT_STYLE); |
/** RSHIFT |
|
P4COMPILES (p4_s_quote, p4_s_quote_execution, P4_SKIPS_STRING, P4_DEFAULT_STYLE); |
/** S>D |
/** SIGN |
/** SM/REM |
/** SPACE |
/** SWAP |
/** THEN |
P4COMPILES (p4_then, p4_noop, P4_SKIPS_NOTHING, P4_THEN_STYLE); |
/** TYPE |
/** U. |
/** U< |
/** UM* |
/** UM/MOD |
FCode_XE (p4_unloop_execution) { FX_USE_CODE_ADDR; FX_RP_DROP (3); FX_USE_CODE_EXIT; } |
P4COMPILES (p4_unloop, p4_unloop_execution, P4_SKIPS_NOTHING, P4_DEFAULT_STYLE); |
/** UNTIL |
P4COMPILES (p4_until, p4_if_execution, P4_SKIPS_OFFSET, P4_UNTIL_STYLE); |
P4RUNTIME1(p4_variable, p4_variable_RT); |
P4COMPILES (p4_while, p4_if_execution, P4_SKIPS_OFFSET, P4_WHILE_STYLE); |
/** XOR |
P4COMPILES (p4_bracket_tick, p4_literal_execution, P4_SKIPS_NOTHING, P4_DEFAULT_STYLE); |
P4COMPILES (p4_bracket_char, p4_literal_execution, P4_SKIPS_CELL, P4_DEFAULT_STYLE); |
|
/** 0> |
/** 2>R |
FCode_XE (p4_two_to_r_execution) { FX_USE_CODE_ADDR; |
P4COMPILES(p4_two_to_r, p4_two_to_r_execution, P4_SKIPS_NOTHING, P4_DEFAULT_STYLE); |
/** 2R> |
FCode_XE (p4_two_r_from_execution) { FX_USE_CODE_ADDR; |
P4COMPILES (p4_two_r_from, p4_two_r_from_execution, P4_SKIPS_NOTHING, P4_DEFAULT_STYLE); |
FCode_XE (p4_two_r_fetch_execution) { FX_USE_CODE_ADDR; SP -= 2; SP[0] = FX_RP[0]; SP[1] = FX_RP[1]; FX_USE_CODE_EXIT; } |
P4COMPILES (p4_two_r_fetch, p4_two_r_fetch_execution, P4_SKIPS_NOTHING, P4_DEFAULT_STYLE); |
|
|
FCode (p4_colon_noname_EXIT)
{
p4_Q_pairs(P4_NONAME_MAGIC);
PFE.semicolon_code = (void*) FX_POP;
PFE.locals = (void*) FX_POP;
PFE.state = FX_POP;
|
P4RUNTIME1(p4_colon_noname, p4_colon_noname_RT); |
/** <> |
|
P4COMPILES (p4_Q_do, p4_Q_do_execution, P4_SKIPS_OFFSET, P4_DO_STYLE); |
/** AGAIN |
P4COMPILES (p4_again, p4_else_execution, P4_SKIPS_OFFSET, P4_AGAIN_STYLE); |
|
P4COMPILES (p4_c_quote, p4_c_quote_execution, P4_SKIPS_STRING, P4_DEFAULT_STYLE); |
P4COMPILES (p4_case, p4_noop, P4_SKIPS_NOTHING, P4_CASE_STYLE); |
P4COMPILES (p4_endcase, p4_drop, P4_SKIPS_NOTHING, P4_ENDCASE_STYLE); |
P4COMPILES (p4_endof, p4_else_execution, P4_SKIPS_OFFSET, P4_ENDOF_STYLE); |
/** ERASE |
/** HEX |
|
P4RUNTIME1(p4_marker, p4_marker_RT); |
/** NIP |
|
P4COMPILES (p4_of, p4_of_execution, P4_SKIPS_OFFSET, P4_OF_STYLE); |
/** PAD |
/** PICK |
/** ROLL |
|
int
p4_tick_local(p4xt* xt)
{
int n;
char* p = p4_word ( |
P4COMPILES2 (p4_to, p4_to_execution, p4_to_local_execution, P4_SKIPS_TO_TOKEN, P4_DEFAULT_STYLE); |
/** TUCK |
/** U.R |
/** U> |
/** UNUSED |
|
P4RUNTIME1 (p4_value, p4_value_RT); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|