Someone
public text v1 · immutable: based-exec ( i*x base xt -- j*x )
base @ >r swap base ! execute r> base ! ;
: eval-word ( i*x -- j*x )
parse-word evaluate ;
: based-eval ( newbase "word" -- )
['] eval-word based-exec ;
: based ( newbase -- )
state @ if
' postpone literal postpone based-exec
else
based-eval
then ; immediate
: _ ( "number" -- )
state @ if
-2 cells allot here cell+ @
then based-eval ; immediate
: test2 2 _ 10 . ;
: test16 16 _ 10 . ;
: hex. 16 based . ;
: oct. 8 based . ;
test2 2 _ 10 . cr
test16 16 _ 10 . cr
255 hex. 255 16 based . cr
255 oct. 255 8 based . cr