- keyboard focus\r
- keyboard gestures\r
- text fields\r
+- finish check boxes\r
\r
+ compiler:\r
\r
- goal: to compile hash* optimally\r
- type check/not-check entry points for compiled words\r
- getenv/setenv: if literal arg, compile as a load/store\r
-- empty ifte: wrong input type.\r
+- compile tuple dispatch\r
\r
+ oop:\r
\r
[ exit* [ [ integer ] [ ] ] ]
[ client-socket [ [ string integer ] [ port port ] ] ]
[ server-socket [ [ integer ] [ port ] ] ]
- [ close-port [ [ port ] ] ]
+ [ close-port [ [ port ] [ ] ] ]
[ add-accept-io-task [ [ port general-list ] [ ] ] ]
[ accept-fd [ [ port ] [ string integer port port ] ] ]
[ can-read-line? [ [ port ] [ boolean ] ] ]
\ parsing prettyprint-prop
\ inline prettyprint-prop ;
-: prettyprint-comment ( comment -- )
- "comments" style write-attr ;
+: comment. ( comment -- ) "comments" style write-attr ;
-: infer-effect. ( effect -- )
- 0 swap
- " ( " prettyprint-comment
- 2unlist >r [ prettyprint-element ] each r>
- "-- " write
- [ prettyprint-element ] each
- ")" prettyprint-comment
- drop ;
-
-: stack-effect. ( word -- )
+: infer-effect. ( indent effect -- indent )
+ " " write
+ [
+ "(" ,
+ 2unlist >r [ " " , unparse , ] each r>
+ " --" ,
+ [ " " , unparse , ] each
+ " )" ,
+ ] make-string comment. ;
+
+: stack-effect. ( indent word -- indent )
dup "stack-effect" word-property [
" " write
- [ CHAR: ( , , CHAR: ) , ] make-string prettyprint-comment
+ [ CHAR: ( , , CHAR: ) , ] make-string
+ comment.
] [
"infer-effect" word-property dup [
infer-effect.
] [
- 2drop
+ drop
] ifte
] ?ifte ;
: documentation. ( indent word -- indent )
"documentation" word-property [
"\n" split [
- "#!" swap cat2 prettyprint-comment
+ "#!" swap cat2 comment.
dup prettyprint-newline
] each
] when* ;