diff --git a/basis/alien/syntax/syntax-docs.factor b/basis/alien/syntax/syntax-docs.factor index 5c6e25c7c26..522d11a5031 100644 --- a/basis/alien/syntax/syntax-docs.factor +++ b/basis/alien/syntax/syntax-docs.factor @@ -125,6 +125,10 @@ HELP: C-GLOBAL: { $values { "type" "a C type" } { "name" "a C global variable name" } } { $description "Defines a getter " { $snippet "name" } " and setter " { $snippet "set-name" } " for the global value in the current library, set with " { $link POSTPONE: LIBRARY: } "." } ; +HELP: INITIALIZE-ALIEN: +{ $syntax "INITIALIZE-ALIEN: type ... ;" } +{ $description "Initializes a " { $snippet "type" } " using the provided definition." } ; + ARTICLE: "alien.enums" "Enumeration types" "The " { $vocab-link "alien.enums" } " vocab contains the implementation for " { $link POSTPONE: ENUM: } " C types, and provides words for converting between enum singletons and integers. It is possible to dispatch off of members of an enum." $nl diff --git a/basis/alien/syntax/syntax.factor b/basis/alien/syntax/syntax.factor index 86e12601de0..3354f311056 100644 --- a/basis/alien/syntax/syntax.factor +++ b/basis/alien/syntax/syntax.factor @@ -40,3 +40,6 @@ SYNTAX: C-GLOBAL: scan-c-type scan-new-word define-global ; SYNTAX: pointer: scan-c-type suffix! ; + +SYNTAX: INITIALIZE-ALIEN: + scan-word parse-definition '[ _ _ initialize-alien ] append! ;