|
From: Eduardo C. <way...@gm...> - 2007-07-17 07:26:13
|
Hello,
Earlier today, I proposed some alternative conventions for tuples. Here are
some constructor words rewritten using the alternative system.
The 8080 vocabulary also benefits according to some rewrites I did. Basically
anything that is tuple setter intensive should benefit.
Ed
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! inference.backend
TUPLE: inference-error rstate major? ;
! original:
C: inference-error ( msg rstate important? -- error )
[ set-inference-error-major? ] keep
[ set-inference-error-rstate ] keep
[ set-delegate ] keep ;
! alternative:
: <inference-error> ( msg rstate important? -- error )
<inference-error*> swap set-delegate ;
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! parser
TUPLE: parse-error file line col text ;
! original:
C: parse-error ( msg -- error )
file get over set-parse-error-file
lexer get lexer-line over set-parse-error-line
lexer get lexer-column over set-parse-error-col
lexer get line-text over set-parse-error-text
[ set-delegate ] keep ;
! alternative:
: <parse-error> ( msg -- error )
>r
file get
lexer get lexer-line
lexer get lexer-column
lexer get line-text
<parser-error*>
r> set-delegate ;
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! ui.commands
TUPLE: command-map blurb;
! original:
C: command-map ( blurb commands -- command-map )
swap { } like over set-delegate
[ set-command-map-blurb ] keep ;
! alternative:
: <command-map> ( blurb commands -- command-map )
>r <command-map*> r> { } like set-delegate ;
|