Fix &: to throw an error if the symbol does not exist
parent
79a5b3491a
commit
71bc5e9e10
|
@ -8,10 +8,6 @@ sequences system libc alien.strings io.encodings.utf8 ;
|
||||||
|
|
||||||
[ { "blah" 123 } ] [ { "blah" xyz } expand-constants ] unit-test
|
[ { "blah" 123 } ] [ { "blah" xyz } expand-constants ] unit-test
|
||||||
|
|
||||||
: foo ( -- n ) &: fdafd [ 123 ] unless* ;
|
|
||||||
|
|
||||||
[ 123 ] [ foo ] unit-test
|
|
||||||
|
|
||||||
[ -1 ] [ -1 <char> *char ] unit-test
|
[ -1 ] [ -1 <char> *char ] unit-test
|
||||||
[ -1 ] [ -1 <short> *short ] unit-test
|
[ -1 ] [ -1 <short> *short ] unit-test
|
||||||
[ -1 ] [ -1 <int> *int ] unit-test
|
[ -1 ] [ -1 <int> *int ] unit-test
|
||||||
|
|
|
@ -4,7 +4,7 @@ USING: accessors arrays alien alien.c-types alien.structs
|
||||||
alien.arrays alien.strings kernel math namespaces parser
|
alien.arrays alien.strings kernel math namespaces parser
|
||||||
sequences words quotations math.parser splitting grouping
|
sequences words quotations math.parser splitting grouping
|
||||||
effects assocs combinators lexer strings.parser alien.parser
|
effects assocs combinators lexer strings.parser alien.parser
|
||||||
fry vocabs.parser ;
|
fry vocabs.parser words.constant ;
|
||||||
IN: alien.syntax
|
IN: alien.syntax
|
||||||
|
|
||||||
: DLL" lexer get skip-blank parse-string dlopen parsed ; parsing
|
: DLL" lexer get skip-blank parse-string dlopen parsed ; parsing
|
||||||
|
@ -31,10 +31,11 @@ IN: alien.syntax
|
||||||
|
|
||||||
: C-ENUM:
|
: C-ENUM:
|
||||||
";" parse-tokens
|
";" parse-tokens
|
||||||
dup length
|
[ [ create-in ] dip define-constant ] each-index ;
|
||||||
[ [ create-in ] dip 1quotation define ] 2each ;
|
|
||||||
parsing
|
parsing
|
||||||
|
|
||||||
|
: address-of ( name library -- value )
|
||||||
|
load-library dlsym [ "No such symbol" throw ] unless* ;
|
||||||
|
|
||||||
: &:
|
: &:
|
||||||
scan "c-library" get
|
scan "c-library" get '[ _ _ address-of ] over push-all ; parsing
|
||||||
'[ _ _ load-library dlsym ] over push-all ; parsing
|
|
||||||
|
|
Loading…
Reference in New Issue