diff --git a/basis/alien/fortran/fortran.factor b/basis/alien/fortran/fortran.factor index 52d69fd193..3670a376e1 100644 --- a/basis/alien/fortran/fortran.factor +++ b/basis/alien/fortran/fortran.factor @@ -1,5 +1,5 @@ ! (c) 2009 Joe Groff, see BSD license -USING: accessors alien alien.c-types alien.complex alien.parser +USING: accessors alien alien.c-types alien.complex grouping alien.strings alien.syntax arrays ascii assocs byte-arrays combinators combinators.short-circuit fry generalizations kernel lexer macros math math.parser namespaces parser sequences @@ -429,6 +429,11 @@ PRIVATE> MACRO: fortran-invoke ( return library function parameters -- ) { [ 2drop nip set-fortran-abi ] [ (fortran-invoke) ] } 4 ncleave ; +: parse-arglist ( parameters return -- types effect ) + [ 2 group unzip [ "," ?tail drop ] map ] + [ [ { } ] [ 1array ] if-void ] + bi* ; + :: define-fortran-function ( return library function parameters -- ) function create-in dup reset-generic return library function parameters return [ "void" ] unless* parse-arglist