Adding mini module system.

This commit is contained in:
Brad Nelson
2022-06-04 15:51:06 -07:00
parent 577311c276
commit ab2b73f2ff
3 changed files with 47 additions and 0 deletions

View File

@ -24,6 +24,7 @@ needs float_tests.fs
needs forth_namespace_tests.fs needs forth_namespace_tests.fs
needs structures_tests.fs needs structures_tests.fs
needs including_tests/including_tests.fs needs including_tests/including_tests.fs
needs modules_tests.fs
needs ../lib/hashing/sha1_tests.fs needs ../lib/hashing/sha1_tests.fs
needs ../lib/hashing/sha256_tests.fs needs ../lib/hashing/sha256_tests.fs
run-tests run-tests

17
common/modules.fs Normal file
View File

@ -0,0 +1,17 @@
\ Copyright 2022 Bradley D. Nelson
\
\ Licensed under the Apache License, Version 2.0 (the "License");
\ you may not use this file except in compliance with the License.
\ You may obtain a copy of the License at
\
\ http://www.apache.org/licenses/LICENSE-2.0
\
\ Unless required by applicable law or agreed to in writing, software
\ distributed under the License is distributed on an "AS IS" BASIS,
\ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
\ See the License for the specific language governing permissions and
\ limitations under the License.
: internal ( -- xt ) current @ @ ;
: external ( -- xt ) :noname postpone ; ;
: module ( xt xt -- ) >link& ! ;

29
common/modules_tests.fs Normal file
View File

@ -0,0 +1,29 @@
\ Copyright 2022 Bradley D. Nelson
\
\ Licensed under the Apache License, Version 2.0 (the "License");
\ you may not use this file except in compliance with the License.
\ You may obtain a copy of the License at
\
\ http://www.apache.org/licenses/LICENSE-2.0
\
\ Unless required by applicable law or agreed to in writing, software
\ distributed under the License is distributed on an "AS IS" BASIS,
\ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
\ See the License for the specific language governing permissions and
\ limitations under the License.
needs modules.fs
e: test-modules
vocabulary foo foo definitions
: a ;
internal
: b ;
external
: c b ;
module
: d ;
vlist
forth definitions
out: d c a
;e