From: Erik Charlebois Date: Mon, 22 Feb 2010 18:53:19 +0000 (-0800) Subject: Merge alien/parser/parser.factor X-Git-Tag: 0.97~4850 X-Git-Url: https://gitweb.factorcode.org/gitweb.cgi?p=factor.git;a=commitdiff_plain;h=833372cd0802184757240b3948e816de45241e8e;hp=-c Merge alien/parser/parser.factor --- 833372cd0802184757240b3948e816de45241e8e diff --combined basis/alien/parser/parser.factor index d073a4caac,8385bfb97f..8d850c47ee --- a/basis/alien/parser/parser.factor +++ b/basis/alien/parser/parser.factor @@@ -66,16 -66,16 +66,16 @@@ IN: alien.parse 2 group [ first2 normalize-c-arg 2array ] map unzip [ "," ?tail drop ] map ] - [ dup "void" = [ drop { } ] [ 1array ] if ] + [ [ { } ] [ name>> 1array ] if-void ] bi* ; : function-quot ( return library function types -- quot ) '[ _ _ _ _ alien-invoke ] ; :: make-function ( return library function parameters -- word quot effect ) - return function normalize-c-arg :> ( return-c-type function ) + return function normalize-c-arg :> ( return function ) function create-in dup reset-generic - return-c-type library function + return library function parameters return parse-arglist [ function-quot ] dip ; : parse-arg-tokens ( -- tokens ) @@@ -88,20 -88,17 +88,17 @@@ make-function define-declared ; : callback-quot ( return types abi -- quot ) - [ [ ] 3curry dip alien-callback ] 3curry ; - - : library-abi ( lib -- abi ) - library [ abi>> ] [ "cdecl" ] if* ; + '[ [ _ _ _ ] dip alien-callback ] ; :: make-callback-type ( lib return type-name parameters -- word quot effect ) - return type-name normalize-c-arg :> ( return type-name ) + return type-name normalize-c-arg :> ( return-c-type type-name ) type-name current-vocab create :> type-word type-word [ reset-generic ] [ reset-c-type ] bi void* type-word typedef parameters return parse-arglist :> ( types callback-effect ) type-word callback-effect "callback-effect" set-word-prop type-word lib "callback-library" set-word-prop - type-word return types lib library-abi callback-quot (( quot -- alien )) ; + type-word return-c-type types lib library-abi callback-quot (( quot -- alien )) ; : (CALLBACK:) ( -- word quot effect ) "c-library" get @@@ -115,4 -112,3 +112,3 @@@ PREDICATE: alien-function-word < wor PREDICATE: alien-callback-type-word < typedef-word "callback-effect" word-prop ; -