recognizers
A collection of recognizers
\
\ separate stacks for cell sized data
\
\ Date: Sep 18, 2016
\ Author: Matthias Trute
\ License: Public Domain
: STACK ( size -- stack-id )
1+ ( size ) CELLS HERE SWAP ALLOT
0 OVER ! \ empty stack
;
: SET-STACK ( rec-n .. rec-1 n recstack-id -- )
2DUP ! >R
BEGIN
DUP
WHILE
DUP CELLS R@ +
ROT SWAP ! 1-
REPEAT R> 2DROP
;
: GET-STACK ( recstack-id -- rec-n .. rec-1 n )
DUP @ DUP >R SWAP
BEGIN
CELL+ OVER
WHILE
DUP @ ROT 1- ROT
REPEAT 2DROP R>
;
: MAP-STACK ( i*x XT stack-id -- j*y )
DUP CELL+ SWAP @ CELLS BOUNDS ?DO
( -- i*x XT )
I @ SWAP DUP >R EXECUTE
?DUP IF R> DROP UNLOOP EXIT THEN
R>
CELL +LOOP DROP 0
;
\ Following Jenny Brien
: >FRONT ( x stack-id -- )
2DUP 2>R GET-STACK 2R> ROT 1+ SWAP SET-STACK
;
: >BACK ( x stack-id -- )
DUP >R GET-STACK R> 1+ SET-STACK
;
by mtrute
Versions
2.1.0, 2.0.0, 1.4.5, 1.4.4, 1.4.3, 1.4.2, 1.4.1, 1.4.0, 1.3.2, 1.3.1, 1.3.0, 1.2.1, 1.2.0, 1.1.0, 1.0.1, 1.0.0
Download current as zip
Tags
recognizer, recognizerstack, stack
Dependencies
ttester 1.x.x, stack 1.x.x
Dependents
None