version 1.28, 1995/09/06 21:00:11
|
version 1.31, 1995/11/29 20:20:34
|
Line 1
|
Line 1
|
\ CROSS.FS The Cross-Compiler 06oct92py |
\ CROSS.FS The Cross-Compiler 06oct92py |
\ $Id$ |
|
\ Idea and implementation: Bernd Paysan (py) |
\ Idea and implementation: Bernd Paysan (py) |
\ Copyright 1992-94 by the GNU Forth Development Group |
|
|
\ Copyright (C) 1995 Free Software Foundation, Inc. |
|
|
|
\ This file is part of Gforth. |
|
|
|
\ Gforth is free software; you can redistribute it and/or |
|
\ modify it under the terms of the GNU General Public License |
|
\ as published by the Free Software Foundation; either version 2 |
|
\ of the License, or (at your option) any later version. |
|
|
|
\ This program is distributed in the hope that it will be useful, |
|
\ but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
\ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
\ GNU General Public License for more details. |
|
|
|
\ You should have received a copy of the GNU General Public License |
|
\ along with this program; if not, write to the Free Software |
|
\ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
|
|
\ Log: |
\ Log: |
\ changed in ; [ to state off 12may93jaw |
\ changed in ; [ to state off 12may93jaw |
Line 120 H
|
Line 136 H
|
-4 Constant :dovar |
-4 Constant :dovar |
-5 Constant :douser |
-5 Constant :douser |
-6 Constant :dodefer |
-6 Constant :dodefer |
-7 Constant :dostruc |
-7 Constant :dofield |
-8 Constant :dodoes |
-8 Constant :dodoes |
-9 Constant :doesjump |
-9 Constant :doesjump |
|
|
Line 402 Create tag-bof 1 c, 0C c,
|
Line 418 Create tag-bof 1 c, 0C c,
|
loadfilename 2@ last-loadfilename 2@ d<> |
loadfilename 2@ last-loadfilename 2@ d<> |
IF |
IF |
tag-bof count tag-file-id write-line throw |
tag-bof count tag-file-id write-line throw |
loadfilename 2@ 2dup |
sourcefilename 2dup |
tag-file-id write-file throw |
tag-file-id write-file throw |
last-loadfilename 2! |
last-loadfilename 2! |
s" ,0" tag-file-id write-line throw |
s" ,0" tag-file-id write-line throw |
Line 416 Create tag-bof 1 c, 0C c,
|
Line 432 Create tag-bof 1 c, 0C c,
|
tag-beg count tag-file-id write-file throw |
tag-beg count tag-file-id write-file throw |
tlast @ >image count $1F and tag-file-id write-file throw |
tlast @ >image count $1F and tag-file-id write-file throw |
tag-end count tag-file-id write-file throw |
tag-end count tag-file-id write-file throw |
base @ decimal loadline @ 0 <# #s #> tag-file-id write-file throw |
base @ decimal sourceline# 0 <# #s #> tag-file-id write-file throw |
\ >in @ 0 <# #s [char] , hold #> tag-file-id write-line throw |
\ >in @ 0 <# #s [char] , hold #> tag-file-id write-line throw |
s" ,0" tag-file-id write-line throw |
s" ,0" tag-file-id write-line throw |
base ! |
base ! |
Line 483 ghost (loop) ghost (+loop)
|
Line 499 ghost (loop) ghost (+loop)
|
ghost (next) drop |
ghost (next) drop |
ghost unloop ghost ;S 2drop |
ghost unloop ghost ;S 2drop |
ghost lit ghost (compile) ghost ! 2drop drop |
ghost lit ghost (compile) ghost ! 2drop drop |
ghost (;code) ghost noop 2drop |
ghost (does>) ghost noop 2drop |
ghost (.") ghost (S") ghost (ABORT") 2drop drop |
ghost (.") ghost (S") ghost (ABORT") 2drop drop |
ghost ' |
ghost ' |
|
|
Line 571 Cond: [ restrict? state off ;Cond
|
Line 587 Cond: [ restrict? state off ;Cond
|
|
|
>TARGET |
>TARGET |
Cond: DOES> restrict? |
Cond: DOES> restrict? |
compile (;code) dodoes, tdoes @ ?dup IF @ T here H resolve THEN |
compile (does>) dodoes, tdoes @ ?dup IF @ T here H resolve THEN |
;Cond |
;Cond |
: DOES> dodoes, T here H !does depth T ] H ; |
: DOES> dodoes, T here H !does depth T ] H ; |
|
|
Line 695 Build: >r rot r@ nalign dup T , H ( a
|
Line 711 Build: >r rot r@ nalign dup T , H ( a
|
+ swap r> nalign ; |
+ swap r> nalign ; |
DO: T @ H + ;DO |
DO: T @ H + ;DO |
Builder Field |
Builder Field |
by Field :dostruc resolve |
by Field :dofield resolve |
|
|
: struct T 0 1 chars H ; |
: struct T 0 1 chars H ; |
: end-struct T 2Constant H ; |
: end-struct T 2Constant H ; |