| \ EXTEND.FS CORE-EXT Word not fully tested! 12may93jaw |
\ EXTEND.FS CORE-EXT Word not fully tested! 12may93jaw |
| |
|
| \ Copyright (C) 1995,1998 Free Software Foundation, Inc. |
\ Copyright (C) 1995,1998,2000 Free Software Foundation, Inc. |
| |
|
| \ This file is part of Gforth. |
\ This file is part of Gforth. |
| |
|
| |
|
| \ You should have received a copy of the GNU General Public License |
\ You should have received a copy of the GNU General Public License |
| \ along with this program; if not, write to the Free Software |
\ along with this program; if not, write to the Free Software |
| \ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
\ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA. |
| |
|
| |
|
| \ May be cross-compiled |
\ May be cross-compiled |
| |
|
| \ .( 12may93jaw |
\ .( 12may93jaw |
| |
|
| : .( ( compilation,interpretation "ccc<paren>" -- ) \ core-ext dot-paren |
: .( ( compilation&interpretation "ccc<paren>" -- ) \ core-ext dot-paren |
| \G Compilation and interpretation semantics: Parse a string @i{ccc} |
\G Compilation and interpretation semantics: Parse a string @i{ccc} |
| \G delimited by a @code{)} (right parenthesis). Display the |
\G delimited by a @code{)} (right parenthesis). Display the |
| \G string. This is often used to display progress information during |
\G string. This is often used to display progress information during |
| |
|
| \ C" 17may93jaw |
\ C" 17may93jaw |
| |
|
| : (c") "lit ; |
|
| |
|
| : CLiteral |
|
| postpone (c") here over char+ allot place align ; immediate restrict |
|
| |
|
| : C" ( compilation "ccc<quote>" -- ; run-time -- c-addr ) \ core-ext c-quote |
: C" ( compilation "ccc<quote>" -- ; run-time -- c-addr ) \ core-ext c-quote |
| \G Compilation: parse a string @i{ccc} delimited by a @code{"} |
\G Compilation: parse a string @i{ccc} delimited by a @code{"} |
| \G (double quote). At run-time, return @i{c-addr} which |
\G (double quote). At run-time, return @i{c-addr} which |
| |
|
| \ SOURCE-ID SAVE-INPUT RESTORE-INPUT 11jun93jaw |
\ SOURCE-ID SAVE-INPUT RESTORE-INPUT 11jun93jaw |
| |
|
| |
[IFUNDEF] source-id |
| : source-id ( -- 0 | -1 | fileid ) \ core-ext,file source-i-d |
: source-id ( -- 0 | -1 | fileid ) \ core-ext,file source-i-d |
| \G Return 0 (the input source is the user input device), -1 (the |
\G Return 0 (the input source is the user input device), -1 (the |
| \G input source is a string being processed by @code{evaluate}) or |
\G input source is a string being processed by @code{evaluate}) or |
| r> loadline ! |
r> loadline ! |
| >in ! |
>in ! |
| false ; |
false ; |
| |
[THEN] |
| \ This things we don't need, but for being complete... jaw |
\ This things we don't need, but for being complete... jaw |
| |
|
| \ EXPECT SPAN 17may93jaw |
\ EXPECT SPAN 17may93jaw |
| REPEAT |
REPEAT |
| drop |
drop |
| \ remember udp |
\ remember udp |
| udp @ , ; |
udp @ , |
| |
\ remember dyncode-ptr |
| |
here ['] noop , compile-prim1 finish-code ; |
| |
|
| : marker! ( mark -- ) |
: marker! ( mark -- ) |
| \ reset included files count; resize will happen on next add-included-file |
\ reset included files count; resize will happen on next add-included-file |
| REPEAT |
REPEAT |
| drop |
drop |
| \ restore udp and dp |
\ restore udp and dp |
| |
[IFDEF] forget-dyncode |
| |
dup cell+ @ forget-dyncode 0= abort" gforth bug" |
| |
[THEN] |
| @ udp ! dp ! |
@ udp ! dp ! |
| \ clean up vocabulary stack |
\ clean up vocabulary stack |
| 0 vp @ 0 |
0 vp @ 0 |