From 5faa97e42c5cd5f838ad9b26fd340b6b946930e2 Mon Sep 17 00:00:00 2001 From: Joe Groff <arcata@gmail.com> Date: Sun, 21 Feb 2010 21:06:00 -0800 Subject: [PATCH] alien.parser: favor parsing "foo*" as pointer-to-foo now --- basis/alien/c-types/c-types.factor | 4 +++- basis/alien/parser/parser.factor | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/basis/alien/c-types/c-types.factor b/basis/alien/c-types/c-types.factor index b038244cdd..9db6ac7f4a 100644 --- a/basis/alien/c-types/c-types.factor +++ b/basis/alien/c-types/c-types.factor @@ -304,7 +304,9 @@ CONSTANT: primitive-types : resolve-pointer-typedef ( type -- base-type ) dup "c-type" word-prop dup word? - [ nip resolve-pointer-typedef ] [ drop ] if ; + [ nip resolve-pointer-typedef ] [ + pointer? [ drop void* ] when + ] if ; : special-pointer-type ( type -- special-type ) dup c-type-word? [ diff --git a/basis/alien/parser/parser.factor b/basis/alien/parser/parser.factor index 50d1bfd320..dee5c6e1dd 100644 --- a/basis/alien/parser/parser.factor +++ b/basis/alien/parser/parser.factor @@ -18,8 +18,8 @@ IN: alien.parser { { [ dup "void" = ] [ drop void ] } { [ CHAR: ] over member? ] [ parse-array-type parse-c-type-name prefix ] } - { [ dup search ] [ parse-c-type-name ] } { [ "*" ?tail ] [ (parse-c-type) <pointer> ] } + { [ dup search ] [ parse-c-type-name ] } [ dup search [ ] [ no-word ] ?if ] } cond ;