: postpone2 ( "name" -- )
bl word find ?dup
if swap [compile] cliteral
0< if ['] compile, else ['] execute then compile,
else drop -13 throw then ; immediate
: postpone3 ( "name" -- )
bl word find dup 0= -13 and throw
0< if [compile] cliteral ['] compile, then compile, ; immediate
: my-if1 postpone if ; immediate
: my-if2 postpone2 if ; immediate
: my-if3 postpone3 if ; immediate
: my-dup1 postpone dup ; immediate
: my-dup2 postpone2 dup ; immediate
: my-dup3 postpone3 dup ; immediate
' my-if1 see
0x8068290: using if (0x8064588)
0x8068294: using exit (0x8063008)
' my-if2 see
0x80682e8: using (clit) (0x8064d48)
0x80682ec: using if (0x8064588)
0x80682f0: using execute (0x8065b58)
0x80682f4: using exit (0x8063008)
' my-if3 see
0x8069300: using if (0x8064588)
0x8069304: using exit (0x8063008)
' my-dup1 see
0x8069310: using (clit) (0x8064d48)
0x8069314: using dup (0x8063048)
0x8069318: using compile, (0x8066920)
0x806931c: using exit (0x8063008)
' my-dup2 see
0x8069328: using (clit) (0x8064d48)
0x806932c: using dup (0x8063048)
0x8069330: using compile, (0x8066920)
0x8069334: using exit (0x8063008)
' my-dup3 see
0x8069340: using (clit) (0x8064d48)
0x8069344: using dup (0x8063048)
0x8069348: using compile, (0x8066920)
0x806934c: using exit (0x8063008)