| \ counted string: c-name |
\ counted string: c-name |
| end-struct cff% |
end-struct cff% |
| |
|
| |
variable c-source-file-id \ contains the source file id of the current batch |
| |
0 c-source-file-id ! |
| |
variable lib-handle-addr \ points to the library handle of the current batch. |
| |
\ the library handle is 0 if the current |
| |
\ batch is not yet compiled. |
| |
|
| : .nb ( n -- ) |
: .nb ( n -- ) |
| 0 .r ; |
0 .r ; |
| variable c-prefix-lines 0 c-prefix-lines ! |
variable c-prefix-lines 0 c-prefix-lines ! |
| variable c-prefix-lines-end c-prefix-lines c-prefix-lines-end ! |
variable c-prefix-lines-end c-prefix-lines c-prefix-lines-end ! |
| |
|
| |
: print-c-prefix-line ( node -- ) |
| |
dup c-prefix-chars swap c-prefix-count @ type cr ; |
| |
|
| |
: print-c-prefix-lines ( -- ) |
| |
c-prefix-lines @ ['] print-c-prefix-line list-map ; |
| |
|
| : save-c-prefix-line ( c-addr u -- ) |
: save-c-prefix-line ( c-addr u -- ) |
| |
c-source-file-id @ ?dup-if |
| |
>r 2dup r> write-line throw |
| |
then |
| align here 0 , c-prefix-lines-end list-append ( c-addr u ) |
align here 0 , c-prefix-lines-end list-append ( c-addr u ) |
| longstring, ; |
longstring, ; |
| |
|
| : \c ( "rest-of-line" -- ) |
: \c ( "rest-of-line" -- ) |
| -1 parse save-c-prefix-line ; |
-1 parse save-c-prefix-line ; |
| |
|
| : print-c-prefix-line ( node -- ) |
|
| dup c-prefix-chars swap c-prefix-count @ type cr ; |
|
| |
|
| : print-c-prefix-lines ( -- ) |
|
| c-prefix-lines @ ['] print-c-prefix-line list-map ; |
|
| |
|
| \c #include "engine/libcc.h" |
\c #include "engine/libcc.h" |
| |
|
| \ Types (for parsing) |
\ Types (for parsing) |
| endif |
endif |
| .\" }\n" ; |
.\" }\n" ; |
| |
|
| variable c-source-file-id \ contains the source file id of the current batch |
|
| 0 c-source-file-id ! |
|
| variable lib-handle-addr \ points to the library handle of the current batch. |
|
| \ the library handle is 0 if the current |
|
| \ batch is not yet compiled. |
|
| |
|
| : init-c-source-file ( -- ) |
: init-c-source-file ( -- ) |
| c-source-file-id @ 0= if |
c-source-file-id @ 0= if |
| s" xxx.c" w/o create-file throw dup c-source-file-id ! |
s" xxx.c" w/o create-file throw dup c-source-file-id ! |