diff --git a/basis/alien/data/data-docs.factor b/basis/alien/data/data-docs.factor index c5130001d9..1401190f45 100644 --- a/basis/alien/data/data-docs.factor +++ b/basis/alien/data/data-docs.factor @@ -105,7 +105,7 @@ $nl "Important guidelines for passing data in byte arrays:" { $subsections "byte-arrays-gc" } "C-style enumerated types are supported:" -{ $subsections POSTPONE: ENUM: } +{ $subsections "alien.enums" POSTPONE: ENUM: } "C types can be aliased for convenience and consistency with native library documentation:" { $subsections POSTPONE: TYPEDEF: } "A utility for defining " { $link "destructors" } " for deallocating memory:" diff --git a/basis/alien/enums/enums-docs.factor b/basis/alien/enums/enums-docs.factor index 8a689fe9c4..cc23a40df3 100644 --- a/basis/alien/enums/enums-docs.factor +++ b/basis/alien/enums/enums-docs.factor @@ -1,13 +1,13 @@ ! Copyright (C) 2010 Erik Charlebois. ! See http://factorcode.org/license.txt for BSD license. -USING: alien.c-types help.markup help.syntax words ; +USING: alien.c-types alien.syntax help.markup help.syntax words ; IN: alien.enums HELP: define-enum { $values { "word" word } { "base-type" c-type } { "members" "sequence of word and value pairs" } } -{ $description "Defines an enum. This is the run-time equivalent of ENUM:." } ; +{ $description "Defines an enum. This is the run-time equivalent of " { $link POSTPONE: ENUM: } "." } ; HELP: enum>number { $values @@ -23,11 +23,14 @@ HELP: number>enum } { $description "Convert a number to an enum." } ; -ARTICLE: "alien.enums" "Alien Enumerations" -{ $vocab-link "alien.enums" } +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 symbols and integers." +$nl "Defining enums at run-time:" { $subsection define-enum } "Conversions between enums and integers:" { $subsections enum>number number>enum } ; +{ POSTPONE: ENUM: define-enum enum>number number>enum } related-words + ABOUT: "alien.enums" diff --git a/basis/alien/syntax/syntax-docs.factor b/basis/alien/syntax/syntax-docs.factor index f93f1fb3b8..c960984d53 100644 --- a/basis/alien/syntax/syntax-docs.factor +++ b/basis/alien/syntax/syntax-docs.factor @@ -72,7 +72,7 @@ HELP: TYPEDEF: HELP: ENUM: { $syntax "ENUM: type words... ;" "ENUM: type < base-type words..." } { $values { "type" "a name to typedef to int or f" } { "words" "a sequence of word names" } } -{ $description "Creates a c-type that boxes and unboxes integer values to singletons. A singleton is defined for each member word. The base c-type can optionally be specified and defaults to " { $snippet "int" } ". A constructor word " { $snippet "" } " is defined for converting from integers to singletons. The generic word " { $link enum>number } " converts from singletons to integers. Enum-typed values are automatically prettyprinted as their singleton words. Unrecognizing enum numbers are kept as numbers." } +{ $description "Creates a c-type that boxes and unboxes integer values to symbols. A symbol is defined for each member word. The base c-type can optionally be specified and defaults to " { $link int } ". A constructor word " { $snippet "" } " is defined for converting from integers to singletons. The generic word " { $link enum>number } " converts from singletons to integers. Enum-typed values are automatically prettyprinted as their singleton words. Unrecognizing enum numbers are kept as numbers." } { $examples "Here is an example enumeration definition:" { $code "ENUM: color_t red { green 3 } blue ;" }