|
|
|
|
|
typedef p4xt* (*func_SEE) (p4xt* , char*, p4_Semant*); |
_export p4xt* p4_locals_bar_SEE (p4xt* ip, char* p, p4_Semant* s) { int i; |
_export p4xt* p4_local_SEE (p4xt* ip, char* p, p4_Semant* s) { sprintf (p, |
_export p4xt* p4_literal_SEE (p4xt* ip, char* p, p4_Semant* s) { char buf[80]; if (s) { if (s->name && ! memcmp (s->name+1, |
_export p4xt* |
_export p4xt* |
_export p4xt* |
_export p4xt* |
static p4xt * p4_decompile_word (p4xt* ip, char *p, p4_Decomp *d) { static const p4_Decomp default_style = {P4_SKIPS_NOTHING, 0, 0, 0, 0, 0}; |
_export void p4_decompile_rest (p4xt *ip, int nl, int indent) { p4char* buf = p4_pocket (); p4_Seman2 *s; p4_Decomp d; *buf = |
static P4_CODE_RUN(p4_variable_RT_SEE)
{
strcat (p, |
static P4_CODE_RUN(p4_builds_RT_SEE)
{
strcat (p, |
static P4_CODE_RUN(p4_constant_RT_SEE)
{
strcat (p, p4_str_dot (*P4_TO_BODY (xt), p+200, BASE));
strcat (p, |
static P4_CODE_RUN(p4_value_RT_SEE)
{
strcat (p, p4_str_dot (*P4_TO_BODY (xt), p+200, BASE));
strcat (p, |
static P4_CODE_RUN(p4_two_constant_RT_SEE)
{
strcat (p, p4_str_d_dot_r (*(p4dcell*) P4_TO_BODY (xt), p+200, 0, BASE));
strcat (p, |
static P4_CODE_RUN(p4_marker_RT_SEE)
{
strcat (p, |
static P4_CODE_RUN(p4_defer_RT_SEE)
{
strcat (p, |
static P4_CODE_RUN(p4_vocabulary_RT_SEE)
{
strcat (p, |
static P4_CODE_RUN(p4_offset_RT_SEE)
{
strcat (p, p4_str_dot (*P4_TO_BODY (xt), p+200, BASE));
strcat (p, |
static P4_CODE_RUN(p4_colon_RT_SEE) { strcat (p, |
static P4_CODE_RUN(p4_does_RT_SEE) { strcat (p, |
_export void p4_decompile (char *nfa, p4xt xt) { register p4char* buf = p4_pocket (); register p4xt* rest = 0; *buf = |
|
_export char p4_category (p4code p) { if (p == p4_colon_RT_ || p == p4_debug_colon_RT_) return |
static void
prompt_col (void)
{
p4_emits (24 - p4_OUT, |
static void display (p4xt *ip) { p4_Decomp style; char buf[80]; int indent = PFE.maxlevel * 2; int depth = p4_S0 - SP, i; prompt_col (); for (i = 0; i < depth; i++) { p4_outf ( |
static void interaction (p4xt *ip) { int c; for (;;) { display (ip); prompt_col (); p4_outs ( |
static void do_adjust_level (p4xt xt) { if (*P4_TO_CODE(xt) == p4_colon_RT_ || *P4_TO_CODE(xt) == p4_debug_colon_RT_ || *P4_TO_CODE(xt) == p4_does_RT_ || *P4_TO_CODE(xt) == p4_debug_does_RT_) PFE.level++; else if (*P4_TO_CODE(xt) == PFX (p4_semicolon_execution) || *P4_TO_CODE(xt) == PFX (p4_locals_exit_execution)) PFE.level--; } |
static void p4_debug_execute (p4xt xt) { do_adjust_level (xt); p4_normal_execute (xt); } |
static void
p4_debug_on (void)
{
PFE.debugging = 1;
PFE.opcounter = 0;
PFE.execute = p4_debug_execute;
PFE.level = PFE.maxlevel = 0;
p4_outf ( |
_export void p4_debug_off (void) { PFE.debugging = 0; PFE.execute = p4_normal_execute; } |
static void |
FCode (p4_debug_colon_RT) { FX (p4_colon_RT); if (!PFE.debugging) { p4_debug_on (); do_single_step (); p4_debug_off (); } } |
static FCode (p4_debug_colon) { |
P4RUNTIME1(p4_debug_colon, p4_debug_colon_RT); |
FCode (p4_debug_does_RT) { FX (p4_does_RT); if (!PFE.debugging) { p4_debug_on (); do_single_step (); p4_debug_off (); } } |
static FCode (p4_debug_does) { |
P4RUNTIME1(p4_debug_does, p4_debug_does_RT); |
/** (SEE) |
|
P4_LISTWORDS (debug) =
{
(, ),
(, ),
(, ),
(, ),
(, ),
(, ),
(, ),
(, ),
};
P4_COUNTWORDS (debug, "Debugger words"); |
|