Tweak example.
This commit is contained in:
@ -46,6 +46,8 @@ create array-sizes cell , 1 , cell , 4 ,
|
|||||||
|
|
||||||
( Size of array data in bytes )
|
( Size of array data in bytes )
|
||||||
: bytes ( a -- n ) dup >type @ >esize swap >count @ * ;
|
: bytes ( a -- n ) dup >type @ >esize swap >count @ * ;
|
||||||
|
( To string / array )
|
||||||
|
: range ( a -- a n ) dup >count @ ;
|
||||||
|
|
||||||
( Create an uninitialized array )
|
( Create an uninitialized array )
|
||||||
: array ( n type -- a )
|
: array ( n type -- a )
|
||||||
@ -69,9 +71,12 @@ create array-sizes cell , 1 , cell , 4 ,
|
|||||||
|
|
||||||
( Stack manipulation )
|
( Stack manipulation )
|
||||||
: adrop ( a: a -- ) apop unref ;
|
: adrop ( a: a -- ) apop unref ;
|
||||||
|
: a2drop ( a: a a -- ) adrop adrop ;
|
||||||
: anip ( a: a b -- b ) apop apop unref apush ;
|
: anip ( a: a b -- b ) apop apop unref apush ;
|
||||||
: adup ( a: a -- a a ) top ref apush ;
|
: adup ( a: a -- a a ) top ref apush ;
|
||||||
: aswap ( a: a b -- b a ) apop apop swap apush apush ;
|
: aswap ( a: a b -- b a ) apop apop swap apush apush ;
|
||||||
|
: aover ( a: a b -- a b a ) apop apop ref dup apush swap apush apush ;
|
||||||
|
: a2dup ( a: a b -- a b a b ) aover aover ;
|
||||||
|
|
||||||
( Index into the top of the stack )
|
( Index into the top of the stack )
|
||||||
: a@ ( n a: a -- a: a ) cells top + @ ref adrop apush ;
|
: a@ ( n a: a -- a: a ) cells top + @ ref adrop apush ;
|
||||||
@ -90,7 +95,7 @@ create array-sizes cell , 1 , cell , 4 ,
|
|||||||
( Convert integer array to floats )
|
( Convert integer array to floats )
|
||||||
: n>f
|
: n>f
|
||||||
top >count @ REAL array
|
top >count @ REAL array
|
||||||
under top top >count @ 0 ?do over @ s>f dup sf! sfloat+ >r cell+ r> loop 2drop anip ;
|
under top range 0 ?do over @ s>f dup sf! sfloat+ >r cell+ r> loop 2drop anip ;
|
||||||
|
|
||||||
( Force integers to real. )
|
( Force integers to real. )
|
||||||
: binuminal
|
: binuminal
|
||||||
|
|||||||
@ -32,7 +32,8 @@ vocabulary gemini also json also arrays also gemini definitions
|
|||||||
}}
|
}}
|
||||||
;
|
;
|
||||||
|
|
||||||
r| What's the "time"?| askit adup a. cr cr >json a. cr cr
|
r| What's the "time"?| askit >json a. cr cr
|
||||||
|
r| What's the "time"?| askit _s" contents" dict@ 0 a@ _s" parts" dict@ 0 a@ _s" text" dict@ >json a. cr
|
||||||
|
|
||||||
0 [IF]
|
0 [IF]
|
||||||
HTTPClient
|
HTTPClient
|
||||||
|
|||||||
@ -32,6 +32,21 @@ s" DICTIONARY" _s aconstant DICT
|
|||||||
: {{ [[ DICT ;
|
: {{ [[ DICT ;
|
||||||
: }} ]] ;
|
: }} ]] ;
|
||||||
|
|
||||||
|
( Dictionary lookup )
|
||||||
|
: as= ( a: a a -- f )
|
||||||
|
top >type @ STRING <> if a2drop 0 exit then
|
||||||
|
under >type @ STRING <> if a2drop 0 exit then
|
||||||
|
top range under range str= a2drop
|
||||||
|
;
|
||||||
|
: dict@ ( a: a key -- value )
|
||||||
|
aswap
|
||||||
|
top >count @ 1 ?do
|
||||||
|
a2dup i a@ 0 a@ as= if i a@ 1 a@ anip unloop exit then
|
||||||
|
loop
|
||||||
|
a2drop
|
||||||
|
_s" "
|
||||||
|
;
|
||||||
|
|
||||||
: space? ( ch -- f ) dup 8 = over 10 = or over 13 = or swap 32 = or ;
|
: space? ( ch -- f ) dup 8 = over 10 = or over 13 = or swap 32 = or ;
|
||||||
: <whitespace> begin token space? while skip repeat ;
|
: <whitespace> begin token space? while skip repeat ;
|
||||||
|
|
||||||
@ -130,7 +145,7 @@ defer <value>
|
|||||||
<whitespace>
|
<whitespace>
|
||||||
; is <value>
|
; is <value>
|
||||||
|
|
||||||
: json> ( a -- a ) top top >count @ in <value> anip ;
|
: json> ( a -- a ) top range in <value> anip ;
|
||||||
|
|
||||||
: butlast? ( n -- f ) top >count @ 1- <> ;
|
: butlast? ( n -- f ) top >count @ 1- <> ;
|
||||||
|
|
||||||
@ -168,7 +183,7 @@ defer <value>
|
|||||||
loop a> _s" ]" ,c
|
loop a> _s" ]" ,c
|
||||||
then
|
then
|
||||||
endof
|
endof
|
||||||
STRING of [char] " _c >a top top >count @ a> escaped ,c [char] " _c ,c endof
|
STRING of [char] " _c >a top range a> escaped ,c [char] " _c ,c endof
|
||||||
INTEGER of
|
INTEGER of
|
||||||
_s" " >a
|
_s" " >a
|
||||||
top >count @ 0 ?do
|
top >count @ 0 ?do
|
||||||
|
|||||||
Reference in New Issue
Block a user