fuel,fuel.eval: renaming fuel- prefix words
parent
340ca944d4
commit
c11c59876f
|
@ -1,14 +1,30 @@
|
||||||
! Copyright (C) 2009 Jose Antonio Ortega Ruiz.
|
! Copyright (C) 2009 Jose Antonio Ortega Ruiz.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: fuel fuel.eval io.streams.string math namespaces random.data
|
USING: continuations fuel fuel.eval io.streams.string kernel math
|
||||||
sequences tools.test ;
|
namespaces random.data sequences strings tools.test ;
|
||||||
IN: fuel.eval.tests
|
IN: fuel.eval.tests
|
||||||
|
|
||||||
|
! pop-restarts
|
||||||
|
{ V{ "um" } } [
|
||||||
|
fuel-eval-non-restartable V{ } clone restarts set-global
|
||||||
|
V{ "um" } pop-restarts
|
||||||
|
restarts get-global
|
||||||
|
V{ } clone restarts set-global
|
||||||
|
] unit-test
|
||||||
|
|
||||||
|
! push-status
|
||||||
|
{ 1 } [
|
||||||
|
V{ } clone [ status-stack set-global ] keep push-status
|
||||||
|
length
|
||||||
|
pop-status
|
||||||
|
] unit-test
|
||||||
|
|
||||||
! Make sure prettyprint doesn't limit output.
|
! Make sure prettyprint doesn't limit output.
|
||||||
|
|
||||||
{ t } [
|
{ t } [
|
||||||
1000 random-string fuel-eval-result set-global
|
1000 random-string eval-result set-global
|
||||||
[ fuel-send-retort ] with-string-writer length 1000 >
|
[ send-retort ] with-string-writer length 1000 >
|
||||||
|
f eval-result set-global
|
||||||
] unit-test
|
] unit-test
|
||||||
|
|
||||||
{
|
{
|
||||||
|
@ -17,4 +33,5 @@ IN: fuel.eval.tests
|
||||||
[
|
[
|
||||||
V{ "\"dup\"" "fuel-word-synopsis" } "scratchpad" V{ } fuel-eval-in-context
|
V{ "\"dup\"" "fuel-word-synopsis" } "scratchpad" V{ } fuel-eval-in-context
|
||||||
] with-string-writer
|
] with-string-writer
|
||||||
|
f eval-result set-global
|
||||||
] unit-test
|
] unit-test
|
||||||
|
|
|
@ -3,75 +3,72 @@
|
||||||
USING: accessors arrays continuations debugger fuel.pprint io
|
USING: accessors arrays continuations debugger fuel.pprint io
|
||||||
io.streams.string kernel listener namespaces prettyprint.config sequences
|
io.streams.string kernel listener namespaces prettyprint.config sequences
|
||||||
vocabs.parser ;
|
vocabs.parser ;
|
||||||
|
|
||||||
IN: fuel.eval
|
IN: fuel.eval
|
||||||
|
|
||||||
TUPLE: fuel-status manifest restarts ;
|
TUPLE: status manifest restarts ;
|
||||||
|
|
||||||
SYMBOL: fuel-status-stack
|
SYMBOL: status-stack
|
||||||
V{ } clone fuel-status-stack set-global
|
V{ } clone status-stack set-global
|
||||||
|
|
||||||
SYMBOL: fuel-eval-error
|
SYMBOL: eval-error
|
||||||
f fuel-eval-error set-global
|
f eval-error set-global
|
||||||
|
|
||||||
SYMBOL: fuel-eval-result
|
SYMBOL: eval-result
|
||||||
f fuel-eval-result set-global
|
f eval-result set-global
|
||||||
|
|
||||||
SYMBOL: fuel-eval-output
|
SYMBOL: eval-output
|
||||||
f fuel-eval-result set-global
|
f eval-output set-global
|
||||||
|
|
||||||
SYMBOL: fuel-eval-res-flag
|
SYMBOL: eval-res-flag
|
||||||
t fuel-eval-res-flag set-global
|
t eval-res-flag set-global
|
||||||
|
|
||||||
: fuel-eval-restartable? ( -- ? )
|
: eval-restartable? ( -- ? )
|
||||||
fuel-eval-res-flag get-global ;
|
eval-res-flag get-global ;
|
||||||
|
|
||||||
: fuel-push-status ( -- )
|
: push-status ( -- )
|
||||||
manifest get clone restarts get-global clone
|
manifest get clone restarts get-global clone status boa
|
||||||
fuel-status boa
|
status-stack get push ;
|
||||||
fuel-status-stack get push ;
|
|
||||||
|
|
||||||
: fuel-pop-restarts ( restarts -- )
|
: pop-restarts ( restarts -- )
|
||||||
fuel-eval-restartable? [ drop ] [ clone restarts set-global ] if ;
|
eval-restartable? [ drop ] [ clone restarts set-global ] if ;
|
||||||
|
|
||||||
: fuel-pop-status ( -- )
|
: pop-status ( -- )
|
||||||
fuel-status-stack get [
|
status-stack get [
|
||||||
pop
|
pop
|
||||||
[ manifest>> clone manifest set ]
|
[ manifest>> clone manifest set ]
|
||||||
[ restarts>> fuel-pop-restarts ]
|
[ restarts>> pop-restarts ]
|
||||||
bi
|
bi
|
||||||
] unless-empty ;
|
] unless-empty ;
|
||||||
|
|
||||||
: fuel-forget-error ( -- ) f fuel-eval-error set-global ;
|
: forget-status ( -- )
|
||||||
: fuel-forget-result ( -- ) f fuel-eval-result set-global ;
|
f eval-error set-global
|
||||||
: fuel-forget-output ( -- ) f fuel-eval-output set-global ;
|
f eval-result set-global
|
||||||
: fuel-forget-status ( -- )
|
f eval-output set-global ;
|
||||||
fuel-forget-error fuel-forget-result fuel-forget-output ;
|
|
||||||
|
|
||||||
: fuel-send-retort ( -- )
|
: send-retort ( -- )
|
||||||
fuel-eval-error get-global
|
eval-error get-global
|
||||||
fuel-eval-result get-global
|
eval-result get-global
|
||||||
fuel-eval-output get-global 3array
|
eval-output get-global 3array
|
||||||
[ fuel-pprint ] without-limits
|
[ fuel-pprint ] without-limits
|
||||||
flush nl "<~FUEL~>" write nl flush ;
|
flush nl "<~FUEL~>" write nl flush ;
|
||||||
|
|
||||||
: (fuel-begin-eval) ( -- )
|
: begin-eval ( -- )
|
||||||
fuel-push-status fuel-forget-status ;
|
push-status forget-status ;
|
||||||
|
|
||||||
: (fuel-end-eval) ( output -- )
|
: end-eval ( output -- )
|
||||||
fuel-eval-output set-global fuel-send-retort fuel-pop-status ;
|
eval-output set-global send-retort pop-status ;
|
||||||
|
|
||||||
: (fuel-eval) ( lines -- )
|
: eval ( lines -- )
|
||||||
[ parse-lines-interactive call( -- ) ] curry
|
[ parse-lines-interactive call( -- ) ] curry
|
||||||
[ [ fuel-eval-error set-global ] [ print-error ] bi ] recover ;
|
[ [ eval-error set-global ] [ print-error ] bi ] recover ;
|
||||||
|
|
||||||
: (fuel-eval-usings) ( usings -- )
|
: eval-usings ( usings -- )
|
||||||
[ [ use-vocab ] curry [ drop ] recover ] each ;
|
[ [ use-vocab ] curry [ drop ] recover ] each ;
|
||||||
|
|
||||||
: (fuel-eval-in) ( in -- )
|
: eval-in ( in -- )
|
||||||
[ set-current-vocab ] when* ;
|
[ set-current-vocab ] when* ;
|
||||||
|
|
||||||
: (fuel-eval-in-context) ( lines in usings -- )
|
: eval-in-context ( lines in usings -- )
|
||||||
(fuel-begin-eval)
|
begin-eval
|
||||||
[ (fuel-eval-usings) (fuel-eval-in) (fuel-eval) ] with-string-writer
|
[ eval-usings eval-in eval ] with-string-writer
|
||||||
(fuel-end-eval) ;
|
end-eval ;
|
||||||
|
|
|
@ -4,24 +4,23 @@ USING: accessors assocs compiler.units continuations fuel.eval
|
||||||
fuel.help fuel.xref help.topics io.pathnames kernel namespaces parser
|
fuel.help fuel.xref help.topics io.pathnames kernel namespaces parser
|
||||||
sequences tools.scaffold vocabs vocabs.files vocabs.hierarchy
|
sequences tools.scaffold vocabs vocabs.files vocabs.hierarchy
|
||||||
vocabs.loader vocabs.metadata vocabs.parser words ;
|
vocabs.loader vocabs.metadata vocabs.parser words ;
|
||||||
|
|
||||||
IN: fuel
|
IN: fuel
|
||||||
|
|
||||||
! Evaluation
|
! Evaluation
|
||||||
|
|
||||||
: fuel-eval-restartable ( -- )
|
: fuel-eval-restartable ( -- )
|
||||||
t fuel-eval-res-flag set-global ; inline
|
t eval-res-flag set-global ; inline
|
||||||
|
|
||||||
: fuel-eval-non-restartable ( -- )
|
: fuel-eval-non-restartable ( -- )
|
||||||
f fuel-eval-res-flag set-global ; inline
|
f eval-res-flag set-global ; inline
|
||||||
|
|
||||||
: fuel-eval-in-context ( lines in usings -- )
|
: fuel-eval-in-context ( lines in usings -- )
|
||||||
(fuel-eval-in-context) ;
|
eval-in-context ;
|
||||||
|
|
||||||
: fuel-eval-set-result ( obj -- )
|
: fuel-eval-set-result ( obj -- )
|
||||||
clone fuel-eval-result set-global ; inline
|
clone eval-result set-global ; inline
|
||||||
|
|
||||||
: fuel-retort ( -- ) fuel-send-retort ; inline
|
: fuel-retort ( -- ) send-retort ; inline
|
||||||
|
|
||||||
! Loading files
|
! Loading files
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue