@@ -30,33 +30,44 @@ warnings !
30
30
31
31
standard:field
32
32
33
- : vfield-int, ( addr body -- offset ) dup cell+ @ execute ;
34
- : vfield-comp, ( body -- ) dup cell+ @ compile , ;
33
+ : vfield-int, ( addr body -- offset ) dup cell+ @ to-!exec ;
34
+ : vfield-comp, ( body -- ) dup cell+ @ to-! , ;
35
35
36
36
: create+value ( n1 addr "name" -- n3 )
37
37
>r r@ cell+ cell+ 2@ r> 2@
38
38
2>r >r Create over , + action-of +field, ,
39
39
r> set-does> 2r> set-to set-optimizer ;
40
40
41
- : wrap+value: ( n2 xt-align xt@ xt! "name" -- ) { xt-align xt@ xt! }
41
+ : wrap+value: ( n2 xt-align xt@ xt!-table "name" -- ) { xt-align xt@ xt! }
42
42
:noname ]] vfield-int, [[ xt@ compile, postpone ; \ xt-does
43
43
:noname ]] >body vfield-comp, [[ xt@ ]]L compile, ; [[ \ xt-comp,
44
44
:noname ]] drop >body vfield-comp, [[ xt! ]]L compile, ; [[ \ xt-to-comp,
45
45
:noname ]] >body vfield-int, [[ xt! compile, postpone ; swap set-optimizer \ xt-to
46
46
:noname ]] >r [[ xt-align compile, ]] r> create+value ; [[
47
47
Create set-does> , , , , ;
48
48
49
- cell ' aligned ' @ ' ! wrap+value: value: ( u1 "name" -- u2 )
50
- 1 ' noop ' c@ ' c! wrap+value: cvalue: ( u1 "name" -- u2 )
51
- 2 ' waligned ' w@ ' w! wrap+value: wvalue: ( u1 "name" -- u2 )
52
- 2 ' waligned ' sw@ ' w! wrap+value: swvalue: ( u1 "name" -- u2 )
53
- 4 ' laligned ' l@ ' l! wrap+value: lvalue: ( u1 "name" -- u2 )
54
- 4 ' laligned ' sl@ ' l! wrap+value: slvalue: ( u1 "name" -- u2 )
55
- 2 cells ' aligned ' 2@ ' 2! wrap+value: 2value: ( u1 "name" -- u2 )
56
- 1 floats ' faligned ' f@ ' f! wrap+value: fvalue: ( u1 "name" -- u2 )
57
- 1 sfloats ' sfaligned ' sf@ ' sf! wrap+value: sfvalue: ( u1 "name" -- u2 )
58
- 1 dfloats ' dfaligned ' df@ ' df! wrap+value: dfvalue: ( u1 "name" -- u2 )
59
- cell ' aligned ' $@ ' $! wrap+value: $value: ( u1 "name" -- u2 )
49
+ : w+! ( w addr -- ) dup >r w@ + r> w! ;
50
+ : l+! ( w addr -- ) dup >r l@ + r> l! ;
51
+ : sf+! ( w addr -- ) dup >r sf@ f+ r> sf! ;
52
+ : df+! ( w addr -- ) dup >r df@ f+ r> df! ;
53
+
54
+ Create w!-table ' w! , ' w+! ,
55
+ Create l!-table ' l! , ' l+! ,
56
+ Create sf!-table ' sf! , ' sf+! ,
57
+ Create df!-table ' df! , ' df+! ,
58
+ Create $!-table ' $! , ' $+! ,
59
+
60
+ cell ' aligned ' @ ' !-table wrap+value: value: ( u1 "name" -- u2 )
61
+ 1 ' noop ' c@ ' c!-table wrap+value: cvalue: ( u1 "name" -- u2 )
62
+ 2 ' waligned ' w@ ' w!-table wrap+value: wvalue: ( u1 "name" -- u2 )
63
+ 2 ' waligned ' sw@ ' w!-table wrap+value: swvalue: ( u1 "name" -- u2 )
64
+ 4 ' laligned ' l@ ' l!-table wrap+value: lvalue: ( u1 "name" -- u2 )
65
+ 4 ' laligned ' sl@ ' l!-table wrap+value: slvalue: ( u1 "name" -- u2 )
66
+ 2 cells ' aligned ' 2@ ' 2!-table wrap+value: 2value: ( u1 "name" -- u2 )
67
+ 1 floats ' faligned ' f@ ' f!-table wrap+value: fvalue: ( u1 "name" -- u2 )
68
+ 1 sfloats ' sfaligned ' sf@ ' sf!-table wrap+value: sfvalue: ( u1 "name" -- u2 )
69
+ 1 dfloats ' dfaligned ' df@ ' df!-table wrap+value: dfvalue: ( u1 "name" -- u2 )
70
+ cell ' aligned ' $@ ' $!-table wrap+value: $value: ( u1 "name" -- u2 )
60
71
61
72
0 [IF] \ test
62
73
begin-structure foo
0 commit comments