alien.parser: favor parsing "foo*" as pointer-to-foo now
parent
d5bf6e55cd
commit
5faa97e42c
|
@ -304,7 +304,9 @@ CONSTANT: primitive-types
|
||||||
|
|
||||||
: resolve-pointer-typedef ( type -- base-type )
|
: resolve-pointer-typedef ( type -- base-type )
|
||||||
dup "c-type" word-prop dup word?
|
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 )
|
: special-pointer-type ( type -- special-type )
|
||||||
dup c-type-word? [
|
dup c-type-word? [
|
||||||
|
|
|
@ -18,8 +18,8 @@ IN: alien.parser
|
||||||
{
|
{
|
||||||
{ [ dup "void" = ] [ drop void ] }
|
{ [ dup "void" = ] [ drop void ] }
|
||||||
{ [ CHAR: ] over member? ] [ parse-array-type parse-c-type-name prefix ] }
|
{ [ CHAR: ] over member? ] [ parse-array-type parse-c-type-name prefix ] }
|
||||||
{ [ dup search ] [ parse-c-type-name ] }
|
|
||||||
{ [ "*" ?tail ] [ (parse-c-type) <pointer> ] }
|
{ [ "*" ?tail ] [ (parse-c-type) <pointer> ] }
|
||||||
|
{ [ dup search ] [ parse-c-type-name ] }
|
||||||
[ dup search [ ] [ no-word ] ?if ]
|
[ dup search [ ] [ no-word ] ?if ]
|
||||||
} cond ;
|
} cond ;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue