]> gitweb.factorcode.org Git - factor.git/commitdiff
alien.fortran can't piggyback the alien.parser arg parser anymore
authorJoe Groff <arcata@gmail.com>
Thu, 17 Sep 2009 02:24:10 +0000 (21:24 -0500)
committerJoe Groff <arcata@gmail.com>
Thu, 17 Sep 2009 02:24:10 +0000 (21:24 -0500)
basis/alien/fortran/fortran.factor

index 52d69fd193871d323b289ba266bb28edc7d6d272..3670a376e125095edc04a601654d0bf41c669fda 100644 (file)
@@ -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* <effect> ;
+
 :: define-fortran-function ( return library function parameters -- )
     function create-in dup reset-generic 
     return library function parameters return [ "void" ] unless* parse-arglist