--- gforth/prims2x.fs 1996/08/21 14:58:43 1.24 +++ gforth/prims2x.fs 1997/05/21 20:39:37 1.27 @@ -42,9 +42,11 @@ warnings off +include extend.fs + \ require interpretation.fs -require debugging.fs -[IFUNDEF] vocabulary include search-order.fs [THEN] +\ require debugs.fs +[IFUNDEF] vocabulary include search.fs [THEN] [IFUNDEF] environment? include environ.fs [THEN] include gray.fs @@ -66,9 +68,18 @@ variable line \ line number of char poin 1 line ! 2variable filename \ filename of original input file 0 0 filename 2! +2variable f-comment +0 0 f-comment 2! variable skipsynclines \ are sync lines ("#line ...") invisible to the parser? skipsynclines on +Variable flush-comment flush-comment off + +: ?flush-comment + flush-comment @ 0= ?EXIT + f-comment 2@ nip + IF cr f-comment 2@ 2 /string type 0 0 f-comment 2! THEN ; + : start ( -- addr ) cookedinput @ ; @@ -224,7 +235,8 @@ eof-char singleton charclass eof nowhite ++ <- name ( -- ) -(( ` \ nonl ** nl +(( {{ ?flush-comment start }} ` \ nonl ** nl {{ end + 2dup 2 min s" \+" compare 0= IF f-comment 2! ELSE 2drop THEN }} )) <- comment ( -- ) (( {{ effect-in }} (( {{ start }} c-name {{ end 2 pick item-name 2! item-descr + }} blank ** )) ** {{ effect-in-end ! }} @@ -595,11 +607,13 @@ set-current : output-label ( -- ) ." &&I_" c-name 2@ type ." ," cr ; -: output-alias ( -- ) +: output-alias ( -- ) flush-comment on + ?flush-comment primitive-number @ . ." alias " forth-name 2@ type cr -1 primitive-number +! ; -: output-forth ( -- ) +: output-forth ( -- ) flush-comment on + ?flush-comment forth-code @ 0= IF output-alias ELSE ." : " forth-name 2@ type ." ( "