| 2variable last-name-filename |
2variable last-name-filename |
| Variable function-number 0 function-number ! |
Variable function-number 0 function-number ! |
| Variable function-old 0 function-old ! |
Variable function-old 0 function-old ! |
| : function-diff ( n -- ) |
: function-diff ( -- ) |
| ." GROUPADD(" function-number @ function-old @ - 0 .r ." )" cr |
." GROUPADD(" function-number @ function-old @ - 0 .r ." )" cr |
| function-number @ function-old ! ; |
function-number @ function-old ! ; |
| : forth-fdiff ( -- ) |
: forth-fdiff ( -- ) |
| set-current |
set-current |
| |
|
| create ...-item ( -- addr ) \ just used for letting stack-prefixes work on it |
create ...-item ( -- addr ) \ just used for letting stack-prefixes work on it |
| item% %allot \ stores the stack temporarily until used by ... |
item% %allot drop \ stores the stack temporarily until used by ... |
| |
|
| : init-item1 ( addr1 addr u -- addr2 ) |
: init-item1 ( addr1 addr u -- addr2 ) |
| \ initialize item at addr1 with name addr u, next item is at addr2 |
\ initialize item at addr1 with name addr u, next item is at addr2 |
| |
|
| (( ` + {{ start }} nonl ** {{ end |
(( ` + {{ start }} nonl ** {{ end |
| dup |
dup |
| IF c-flag @ |
|
| IF |
IF |
| |
c-flag @ IF |
| function-diff |
function-diff |
| ." #ifdef HAS_" bounds ?DO I c@ toupper emit LOOP cr |
." #ifdef HAS_" 2dup bounds ?DO I c@ toupper emit LOOP cr |
| |
THEN |
| |
forth-flag @ IF |
| |
forth-fdiff ." has? " 2dup type ." [IF]" cr |
| THEN |
THEN |
| forth-flag @ |
2drop |
| IF forth-fdiff ." has? " type ." [IF]" cr THEN |
ELSE |
| ELSE 2drop |
2drop |
| c-flag @ IF |
c-flag @ IF |
| function-diff ." #endif" cr THEN |
function-diff ." #endif" cr THEN |
| forth-flag @ IF forth-fdiff ." [THEN]" cr THEN |
forth-flag @ IF forth-fdiff ." [THEN]" cr THEN |
| |
|
| (( (( ` g || ` G )) {{ start }} nonl ** |
(( (( ` g || ` G )) {{ start }} nonl ** |
| {{ end |
{{ end |
| forth-flag @ IF forth-fdiff ." group " type cr THEN |
forth-flag @ IF forth-fdiff ." group " 2dup type cr THEN |
| c-flag @ IF function-diff |
c-flag @ IF function-diff |
| ." GROUP(" type ." , " function-number @ 0 .r ." )" cr THEN }} |
." GROUP(" 2dup type ." , " function-number @ 0 .r ." )" cr THEN |
| |
2drop }} |
| )) <- group-comment |
)) <- group-comment |
| |
|
| (( (( eval-comment || forth-comment || c-comment || else-comment || if-comment || group-comment )) ?? nonl ** )) <- comment-body |
(( (( eval-comment || forth-comment || c-comment || else-comment || if-comment || group-comment )) ?? nonl ** )) <- comment-body |
| (( {{ prim create-prim prim init-simple }} |
(( {{ prim create-prim prim init-simple }} |
| ` ( white ** {{ start }} stack-effect {{ end prim prim-stack-string 2! }} ` ) white ** |
` ( white ** {{ start }} stack-effect {{ end prim prim-stack-string 2! }} ` ) white ** |
| (( {{ start }} forth-ident {{ end prim prim-wordset 2! }} white ** |
(( {{ start }} forth-ident {{ end prim prim-wordset 2! }} white ** |
| (( {{ start }} c-ident {{ end 2dup prim-c-name-2! }} )) ?? |
(( {{ start }} c-ident {{ end prim-c-name-2! }} )) ?? |
| )) ?? nleof |
)) ?? nleof |
| (( ` " ` " {{ start }} (( noquote ++ ` " )) ++ {{ end 1- prim prim-doc 2! }} ` " white ** nleof )) ?? |
(( ` " ` " {{ start }} (( noquote ++ ` " )) ++ {{ end 1- prim prim-doc 2! }} ` " white ** nleof )) ?? |
| {{ skipsynclines off line @ c-line ! filename 2@ c-filename 2! start }} |
{{ skipsynclines off line @ c-line ! filename 2@ c-filename 2! start }} |