Change C-ENUM: to always take a type. Use f for anonymous enums. Update all uses.

release
Erik Charlebois 2010-04-09 23:48:22 -07:00
parent b86abfb70c
commit edc489f4c1
32 changed files with 200 additions and 253 deletions

View File

@ -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: C-ENUM: POSTPONE: C-TYPED-ENUM: }
{ $subsections POSTPONE: C-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:"

View File

@ -4,7 +4,7 @@ USING: accessors alien alien.c-types alien.libraries arrays
assocs classes combinators combinators.short-circuit
compiler.units effects grouping kernel parser sequences
splitting words fry locals lexer namespaces summary math
vocabs.parser ;
vocabs.parser words.constant ;
IN: alien.parser
: parse-c-type-name ( name -- word )
@ -51,14 +51,17 @@ ERROR: *-in-c-type-name name ;
dup "*" tail?
[ *-in-c-type-name ] when ;
: CREATE-C-TYPE ( -- word )
scan validate-c-type-name current-vocab create {
: (CREATE-C-TYPE) ( word -- word )
validate-c-type-name current-vocab create {
[ fake-definition ]
[ set-word ]
[ reset-c-type ]
[ ]
} cleave ;
: CREATE-C-TYPE ( -- word )
scan (CREATE-C-TYPE) ;
<PRIVATE
GENERIC: return-type-name ( type -- name )
@ -72,6 +75,18 @@ M: pointer return-type-name to>> return-type-name CHAR: * suffix ;
PRIVATE>
: define-enum-member ( word-string value -- next-value )
[ create-in ] dip [ define-constant ] keep 1 + ;
: parse-enum-member ( word-string value -- next-value )
over "{" =
[ 2drop scan scan-object define-enum-member "}" expect ]
[ define-enum-member ] if ;
: parse-enum-members ( counter -- )
scan dup ";" = not
[ swap parse-enum-member parse-enum-members ] [ 2drop ] if ;
: scan-function-name ( -- return function )
scan-c-type scan parse-pointers ;

View File

@ -58,28 +58,17 @@ HELP: TYPEDEF:
{ $notes "This word differs from " { $link typedef } " in that it runs at parse time, to ensure correct ordering of operations when loading source files. Words defined in source files are compiled before top-level forms are run, so if a source file defines C binding words and uses " { $link typedef } ", the type alias won't be available at compile time." } ;
HELP: C-ENUM:
{ $syntax "C-ENUM: words... ;" }
{ $values { "words" "a sequence of word names" } }
{ $syntax "C-ENUM: type/f words... ;" }
{ $values { "type" "a name to typedef to int or f" } { "words" "a sequence of word names" } }
{ $description "Creates a sequence of word definitions in the current vocabulary. Each word pushes an integer according to the rules of C enums." }
{ $notes "This word emulates a C-style " { $snippet "enum" } " in Factor. While this feature can be used for any purpose, using integer constants is discouraged unless it is for interfacing with C libraries. Factor code should use " { $link "words.symbol" } " or " { $link "singletons" } " instead." }
{ $examples
"Here is an example enumeration definition:"
{ $code "C-ENUM: red { green 3 } blue ;" }
{ $code "C-ENUM: color_t red { green 3 } blue ;" }
"It is equivalent to the following series of definitions:"
{ $code "CONSTANT: red 0" "CONSTANT: green 3" "CONSTANT: blue 4" }
} ;
HELP: C-TYPED-ENUM:
{ $syntax "C-TYPED-ENUM: foo_t FOO BAR { BAZ 4 } BOL ;" }
{ $description "Typedefs the first word as an int and creates a sequence of word definitions in the current vocabulary. Each word pushes an integer according to the rules of C enums." }
{ $notes "This word emulates a C-style " { $snippet "enum" } " in Factor. While this feature can be used for any purpose, using integer constants is discouraged unless it is for interfacing with C libraries. Factor code should use " { $link "words.symbol" } " or " { $link "singletons" } " instead." }
{ $examples
"Here is an example enumeration definition:"
{ $code "C-TYPED-ENUM: color_t red { green 3 } blue ;" }
"It is equivalent to the following series of definitions:"
{ $code "TYPEDEF: int color_t" "CONSTANT: red 0" "CONSTANT: green 3" "CONSTANT: blue 4" }
} ;
HELP: C-TYPE:
{ $syntax "C-TYPE: type" }
{ $values { "type" "a new C type" } }

View File

@ -24,19 +24,11 @@ SYNTAX: CALLBACK:
SYNTAX: TYPEDEF:
scan-c-type CREATE-C-TYPE dup save-location typedef ;
: define-enum-members ( counter -- )
scan dup ";" = not [
dup "{" =
[ 2drop scan create-in scan-word [ define-constant ] keep "}" expect ]
[ create-in swap [ define-constant ] keep ]
if 1 + define-enum-members
] [ 2drop ] if ;
SYNTAX: C-ENUM: 0 define-enum-members ;
SYNTAX: C-TYPED-ENUM:
int CREATE-C-TYPE dup save-location typedef
0 define-enum-members ;
SYNTAX: C-ENUM:
scan dup "f" =
[ drop ]
[ (CREATE-C-TYPE) dup save-location int swap typedef ] if
0 parse-enum-members ;
SYNTAX: C-TYPE:
void CREATE-C-TYPE typedef ;

View File

@ -44,8 +44,7 @@ TYPEDEF: void* cairo_destroy_func_t
STRUCT: cairo_user_data_key_t
{ unused int } ;
TYPEDEF: int cairo_status_t
C-ENUM:
C-ENUM: cairo_status_t
CAIRO_STATUS_SUCCESS
CAIRO_STATUS_NO_MEMORY
CAIRO_STATUS_INVALID_RESTORE
@ -125,8 +124,7 @@ FUNCTION: void
cairo_pop_group_to_source ( cairo_t* cr ) ;
! Modify state
TYPEDEF: int cairo_operator_t
C-ENUM:
C-ENUM: cairo_operator_t
CAIRO_OPERATOR_CLEAR
CAIRO_OPERATOR_SOURCE
@ -163,8 +161,7 @@ cairo_set_source_surface ( cairo_t* cr, cairo_surface_t* surface, double x, doub
FUNCTION: void
cairo_set_tolerance ( cairo_t* cr, double tolerance ) ;
TYPEDEF: int cairo_antialias_t
C-ENUM:
C-ENUM: cairo_antialias_t
CAIRO_ANTIALIAS_DEFAULT
CAIRO_ANTIALIAS_NONE
CAIRO_ANTIALIAS_GRAY
@ -173,8 +170,7 @@ C-ENUM:
FUNCTION: void
cairo_set_antialias ( cairo_t* cr, cairo_antialias_t antialias ) ;
TYPEDEF: int cairo_fill_rule_t
C-ENUM:
C-ENUM: cairo_fill_rule_t
CAIRO_FILL_RULE_WINDING
CAIRO_FILL_RULE_EVEN_ODD ;
@ -184,8 +180,7 @@ cairo_set_fill_rule ( cairo_t* cr, cairo_fill_rule_t fill_rule ) ;
FUNCTION: void
cairo_set_line_width ( cairo_t* cr, double width ) ;
TYPEDEF: int cairo_line_cap_t
C-ENUM:
C-ENUM: cairo_line_cap_t
CAIRO_LINE_CAP_BUTT
CAIRO_LINE_CAP_ROUND
CAIRO_LINE_CAP_SQUARE ;
@ -193,8 +188,7 @@ C-ENUM:
FUNCTION: void
cairo_set_line_cap ( cairo_t* cr, cairo_line_cap_t line_cap ) ;
TYPEDEF: int cairo_line_join_t
C-ENUM:
C-ENUM: cairo_line_join_t
CAIRO_LINE_JOIN_MITER
CAIRO_LINE_JOIN_ROUND
CAIRO_LINE_JOIN_BEVEL ;
@ -379,35 +373,30 @@ STRUCT: cairo_font_extents_t
{ max_x_advance double }
{ max_y_advance double } ;
TYPEDEF: int cairo_font_slant_t
C-ENUM:
C-ENUM: cairo_font_slant_t
CAIRO_FONT_SLANT_NORMAL
CAIRO_FONT_SLANT_ITALIC
CAIRO_FONT_SLANT_OBLIQUE ;
TYPEDEF: int cairo_font_weight_t
C-ENUM:
C-ENUM: cairo_font_weight_t
CAIRO_FONT_WEIGHT_NORMAL
CAIRO_FONT_WEIGHT_BOLD ;
TYPEDEF: int cairo_subpixel_order_t
C-ENUM:
C-ENUM: cairo_subpixel_order_t
CAIRO_SUBPIXEL_ORDER_DEFAULT
CAIRO_SUBPIXEL_ORDER_RGB
CAIRO_SUBPIXEL_ORDER_BGR
CAIRO_SUBPIXEL_ORDER_VRGB
CAIRO_SUBPIXEL_ORDER_VBGR ;
TYPEDEF: int cairo_hint_style_t
C-ENUM:
C-ENUM: cairo_hint_Style_t
CAIRO_HINT_STYLE_DEFAULT
CAIRO_HINT_STYLE_NONE
CAIRO_HINT_STYLE_SLIGHT
CAIRO_HINT_STYLE_MEDIUM
CAIRO_HINT_STYLE_FULL ;
TYPEDEF: int cairo_hint_metrics_t
C-ENUM:
C-ENUM: cairo_hint_metrics_t
CAIRO_HINT_METRICS_DEFAULT
CAIRO_HINT_METRICS_OFF
CAIRO_HINT_METRICS_ON ;
@ -527,8 +516,7 @@ cairo_font_face_get_reference_count ( cairo_font_face_t* font_face ) ;
FUNCTION: cairo_status_t
cairo_font_face_status ( cairo_font_face_t* font_face ) ;
TYPEDEF: int cairo_font_type_t
C-ENUM:
C-ENUM: cairo_font_type_t
CAIRO_FONT_TYPE_TOY
CAIRO_FONT_TYPE_FT
CAIRO_FONT_TYPE_WIN32
@ -640,8 +628,7 @@ cairo_get_target ( cairo_t* cr ) ;
FUNCTION: cairo_surface_t*
cairo_get_group_target ( cairo_t* cr ) ;
TYPEDEF: int cairo_path_data_type_t
C-ENUM:
C-ENUM: cairo_path_data_type_t
CAIRO_PATH_MOVE_TO
CAIRO_PATH_LINE_TO
CAIRO_PATH_CURVE_TO

View File

@ -6,8 +6,7 @@ images images.memory core-graphics.types core-foundation.utilities
opengl.gl literals ;
IN: core-graphics
! CGImageAlphaInfo
C-ENUM:
C-ENUM: CGImageAlphaInfo
kCGImageAlphaNone
kCGImageAlphaPremultipliedLast
kCGImageAlphaPremultipliedFirst

View File

@ -8,8 +8,7 @@ IN: pango.fonts
LIBRARY: pango
TYPEDEF: int PangoStyle
C-ENUM:
C-ENUM: PangoStyle
PANGO_STYLE_NORMAL
PANGO_STYLE_OBLIQUE
PANGO_STYLE_ITALIC ;

View File

@ -146,8 +146,7 @@ CONSTANT: TokenSessionReference 14
CONSTANT: TokenSandBoxInert 15
! } TOKEN_INFORMATION_CLASS;
TYPEDEF: DWORD ACCESS_MODE
C-ENUM:
C-ENUM: ACCESS_MODE
NOT_USED_ACCESS
GRANT_ACCESS
SET_ACCESS

View File

@ -22,12 +22,11 @@ STRUCT: USB_INTERFACE_DESCRIPTOR
{ iInterface UCHAR } ;
TYPEDEF: USB_INTERFACE_DESCRIPTOR* PUSB_INTERFACE_DESCRIPTOR
C-ENUM:
C-ENUM: USBD_PIPE_TYPE
UsbdPipeTypeControl
UsbdPipeTypeIsochronous
UsbdPipeTypeBulk
UsbdPipeTypeInterrupt ;
TYPEDEF: int USBD_PIPE_TYPE
STRUCT: WINUSB_PIPE_INFORMATION
{ PipeType USBD_PIPE_TYPE }

View File

@ -24,11 +24,11 @@ CONSTANT: D3D11_RETURN_TYPE_DOUBLE 7
CONSTANT: D3D11_RETURN_TYPE_CONTINUED 8
TYPEDEF: int D3D11_RESOURCE_RETURN_TYPE
C-ENUM: D3D11_CT_CBUFFER
C-ENUM: D3D11_CBUFFER_TYPE
D3D11_CT_CBUFFER
D3D11_CT_TBUFFER
D3D11_CT_INTERFACE_POINTERS
D3D11_CT_RESOURCE_BIND_INFO ;
TYPEDEF: int D3D11_CBUFFER_TYPE
TYPEDEF: D3D11_CBUFFER_TYPE* LPD3D11_CBUFFER_TYPE
STRUCT: D3D11_SIGNATURE_PARAMETER_DESC

View File

@ -502,8 +502,7 @@ CONSTANT: MAXD3DDECLUSAGE 13
CONSTANT: MAXD3DDECLUSAGEINDEX 15
CONSTANT: MAXD3DDECLLENGTH 64
TYPEDEF: int D3DDECLMETHOD
C-ENUM:
C-ENUM: D3DDECLMETHOD
D3DDECLMETHOD_DEFAULT
D3DDECLMETHOD_PARTIALU
D3DDECLMETHOD_PARTIALV

View File

@ -48,10 +48,9 @@ COM-INTERFACE: ID3DX11FFT IUnknown {b3f7a938-4c93-4310-a675-b30d6de50553}
HRESULT ForwardTransform ( ID3D11UnorderedAccessView* pInputBuffer, ID3D11UnorderedAccessView** ppOutputBuffer )
HRESULT InverseTransform ( ID3D11UnorderedAccessView* pInputBuffer, ID3D11UnorderedAccessView** ppOutputBuffer ) ;
C-ENUM:
C-ENUM: D3DX11_FFT_DATA_TYPE
D3DX11_FFT_DATA_TYPE_REAL
D3DX11_FFT_DATA_TYPE_COMPLEX ;
TYPEDEF: int D3DX11_FFT_DATA_TYPE
CONSTANT: D3DX11_FFT_DIM_MASK_1D 1
CONSTANT: D3DX11_FFT_DIM_MASK_2D 3

View File

@ -41,22 +41,20 @@ STRUCT: D3DXSEMANTIC
{ UsageIndex UINT } ;
TYPEDEF: D3DXSEMANTIC* LPD3DXSEMANTIC
C-ENUM:
C-ENUM: D3DXREGISTER_SET
D3DXRS_BOOL
D3DXRS_INT4
D3DXRS_FLOAT4
D3DXRS_SAMPLER ;
TYPEDEF: int D3DXREGISTER_SET
TYPEDEF: D3DXREGISTER_SET* LPD3DXREGISTER_SET
C-ENUM:
C-ENUM: D3DXPARAMETER_CLASS
D3DXPC_SCALAR
D3DXPC_VECTOR
D3DXPC_MATRIX_ROWS
D3DXPC_MATRIX_COLUMNS
D3DXPC_OBJECT
D3DXPC_STRUCT ;
TYPEDEF: int D3DXPARAMETER_CLASS
TYPEDEF: D3DXPARAMETER_CLASS* LPD3DXPARAMETER_CLASS
C-ENUM:

View File

@ -1,7 +1,7 @@
USING: alien.c-types alien.syntax ;
IN: windows.directx.dcommon
C-ENUM: DWRITE_MEASURING_MODE_NATURAL
C-ENUM: DWRITE_MEASURING_MODE
DWRITE_MEASURING_MODE_NATURAL
DWRITE_MEASURING_MODE_GDI_CLASSIC
DWRITE_MEASURING_MODE_GDI_NATURAL ;
TYPEDEF: int DWRITE_MEASURING_MODE

View File

@ -5,7 +5,7 @@ IN: windows.directx.dwrite
LIBRARY: dwrite
C-ENUM:
C-ENUM: DWRITE_FONT_FILE_TYPE
DWRITE_FONT_FILE_TYPE_UNKNOWN
DWRITE_FONT_FILE_TYPE_CFF
DWRITE_FONT_FILE_TYPE_TRUETYPE
@ -14,9 +14,8 @@ C-ENUM:
DWRITE_FONT_FILE_TYPE_TYPE1_PFB
DWRITE_FONT_FILE_TYPE_VECTOR
DWRITE_FONT_FILE_TYPE_BITMAP ;
TYPEDEF: int DWRITE_FONT_FILE_TYPE
C-ENUM:
C-ENUM: DWRITE_FONT_FACE_TYPE
DWRITE_FONT_FACE_TYPE_CFF
DWRITE_FONT_FACE_TYPE_TRUETYPE
DWRITE_FONT_FACE_TYPE_TRUETYPE_COLLECTION
@ -24,51 +23,49 @@ C-ENUM:
DWRITE_FONT_FACE_TYPE_VECTOR
DWRITE_FONT_FACE_TYPE_BITMAP
DWRITE_FONT_FACE_TYPE_UNKNOWN ;
TYPEDEF: int DWRITE_FONT_FACE_TYPE
CONSTANT: DWRITE_FONT_SIMULATIONS_NONE 0
CONSTANT: DWRITE_FONT_SIMULATIONS_BOLD 1
CONSTANT: DWRITE_FONT_SIMULATIONS_OBLIQUE 2
TYPEDEF: int DWRITE_FONT_SIMULATIONS
C-ENUM: DWRITE_FONT_SIMULATIONS
DWRITE_FONT_SIMULATIONS_NONE
DWRITE_FONT_SIMULATIONS_BOLD
DWRITE_FONT_SIMULATIONS_OBLIQUE ;
CONSTANT: DWRITE_FONT_WEIGHT_THIN 100
CONSTANT: DWRITE_FONT_WEIGHT_EXTRA_LIGHT 200
CONSTANT: DWRITE_FONT_WEIGHT_ULTRA_LIGHT 200
CONSTANT: DWRITE_FONT_WEIGHT_LIGHT 300
CONSTANT: DWRITE_FONT_WEIGHT_NORMAL 400
CONSTANT: DWRITE_FONT_WEIGHT_REGULAR 400
CONSTANT: DWRITE_FONT_WEIGHT_MEDIUM 500
CONSTANT: DWRITE_FONT_WEIGHT_DEMI_BOLD 600
CONSTANT: DWRITE_FONT_WEIGHT_SEMI_BOLD 600
CONSTANT: DWRITE_FONT_WEIGHT_BOLD 700
CONSTANT: DWRITE_FONT_WEIGHT_EXTRA_BOLD 800
CONSTANT: DWRITE_FONT_WEIGHT_ULTRA_BOLD 800
CONSTANT: DWRITE_FONT_WEIGHT_BLACK 900
CONSTANT: DWRITE_FONT_WEIGHT_HEAVY 900
CONSTANT: DWRITE_FONT_WEIGHT_EXTRA_BLACK 950
CONSTANT: DWRITE_FONT_WEIGHT_ULTRA_BLACK 950
TYPEDEF: int DWRITE_FONT_WEIGHT
C-ENUM: DWRITE_FONT_WEIGHT
{ DWRITE_FONT_WEIGHT_THIN 100 }
{ DWRITE_FONT_WEIGHT_EXTRA_LIGHT 200 }
{ DWRITE_FONT_WEIGHT_ULTRA_LIGHT 200 }
{ DWRITE_FONT_WEIGHT_LIGHT 300 }
{ DWRITE_FONT_WEIGHT_NORMAL 400 }
{ DWRITE_FONT_WEIGHT_REGULAR 400 }
{ DWRITE_FONT_WEIGHT_MEDIUM 500 }
{ DWRITE_FONT_WEIGHT_DEMI_BOLD 600 }
{ DWRITE_FONT_WEIGHT_SEMI_BOLD 600 }
{ DWRITE_FONT_WEIGHT_BOLD 700 }
{ DWRITE_FONT_WEIGHT_EXTRA_BOLD 800 }
{ DWRITE_FONT_WEIGHT_ULTRA_BOLD 800 }
{ DWRITE_FONT_WEIGHT_BLACK 900 }
{ DWRITE_FONT_WEIGHT_HEAVY 900 }
{ DWRITE_FONT_WEIGHT_EXTRA_BLACK 950 }
{ DWRITE_FONT_WEIGHT_ULTRA_BLACK 950 } ;
CONSTANT: DWRITE_FONT_STRETCH_UNDEFINED 0
CONSTANT: DWRITE_FONT_STRETCH_ULTRA_CONDENSED 1
CONSTANT: DWRITE_FONT_STRETCH_EXTRA_CONDENSED 2
CONSTANT: DWRITE_FONT_STRETCH_CONDENSED 3
CONSTANT: DWRITE_FONT_STRETCH_SEMI_CONDENSED 4
CONSTANT: DWRITE_FONT_STRETCH_NORMAL 5
CONSTANT: DWRITE_FONT_STRETCH_MEDIUM 5
CONSTANT: DWRITE_FONT_STRETCH_SEMI_EXPANDED 6
CONSTANT: DWRITE_FONT_STRETCH_EXPANDED 7
CONSTANT: DWRITE_FONT_STRETCH_EXTRA_EXPANDED 8
CONSTANT: DWRITE_FONT_STRETCH_ULTRA_EXPANDED 9
TYPEDEF: int DWRITE_FONT_STRETCH
C-ENUM: DWRITE_FONT_STRETCH
{ DWRITE_FONT_STRETCH_UNDEFINED 0 }
{ DWRITE_FONT_STRETCH_ULTRA_CONDENSED 1 }
{ DWRITE_FONT_STRETCH_EXTRA_CONDENSED 2 }
{ DWRITE_FONT_STRETCH_CONDENSED 3 }
{ DWRITE_FONT_STRETCH_SEMI_CONDENSED 4 }
{ DWRITE_FONT_STRETCH_NORMAL 5 }
{ DWRITE_FONT_STRETCH_MEDIUM 5 }
{ DWRITE_FONT_STRETCH_SEMI_EXPANDED 6 }
{ DWRITE_FONT_STRETCH_EXPANDED 7 }
{ DWRITE_FONT_STRETCH_EXTRA_EXPANDED 8 }
{ DWRITE_FONT_STRETCH_ULTRA_EXPANDED 9 } ;
C-ENUM:
C-ENUM: DWRITE_FONT_STYLE
DWRITE_FONT_STYLE_NORMAL
DWRITE_FONT_STYLE_OBLIQUE
DWRITE_FONT_STYLE_ITALIC ;
TYPEDEF: int DWRITE_FONT_STYLE
C-ENUM:
C-ENUM: DWRITE_INFORMATIONAL_STRING_ID
DWRITE_INFORMATIONAL_STRING_NONE
DWRITE_INFORMATIONAL_STRING_COPYRIGHT_NOTICE
DWRITE_INFORMATIONAL_STRING_VERSION_STRINGS
@ -85,7 +82,6 @@ C-ENUM:
DWRITE_INFORMATIONAL_STRING_PREFERRED_FAMILY_NAMES
DWRITE_INFORMATIONAL_STRING_PREFERRED_SUBFAMILY_NAMES
DWRITE_INFORMATIONAL_STRING_SAMPLE_TEXT ;
TYPEDEF: int DWRITE_INFORMATIONAL_STRING_ID
STRUCT: DWRITE_FONT_METRICS
{ designUnitsPerEm USHORT }
@ -112,10 +108,9 @@ STRUCT: DWRITE_GLYPH_OFFSET
{ advanceOffset FLOAT }
{ ascenderOffset FLOAT } ;
C-ENUM:
C-ENUM: DWRITE_FACTORY_TYPE
DWRITE_FACTORY_TYPE_SHARED
DWRITE_FACTORY_TYPE_ISOLATED ;
TYPEDEF: int DWRITE_FACTORY_TYPE
C-TYPE: IDWriteFontFileStream
@ -138,14 +133,12 @@ COM-INTERFACE: IDWriteFontFile IUnknown {739d886a-cef5-47dc-8769-1a8b41bebbb0}
HRESULT GetLoader ( IDWriteFontFileLoader** fontFileLoader )
HRESULT Analyze ( BOOL* isSupportedFontType, DWRITE_FONT_FILE_TYPE* fontFileType, DWRITE_FONT_FACE_TYPE* fontFaceType, UINT32* numberOfFaces ) ;
TYPEDEF: int DWRITE_PIXEL_GEOMETRY
C-ENUM:
C-ENUM: DWRITE_PIXEL_GEOMETRY
DWRITE_PIXEL_GEOMETRY_FLAT
DWRITE_PIXEL_GEOMETRY_RGB
DWRITE_PIXEL_GEOMETRY_BGR ;
TYPEDEF: int DWRITE_RENDERING_MODE
C-ENUM:
C-ENUM: DWRITE_RENDERING_MODE
DWRITE_RENDERING_MODE_DEFAULT
DWRITE_RENDERING_MODE_ALIASED
DWRITE_RENDERING_MODE_CLEARTYPE_GDI_CLASSIC
@ -240,39 +233,32 @@ COM-INTERFACE: IDWriteFont IUnknown {acd16696-8c14-4f5d-877e-fe3fc1d32737}
HRESULT HasCharacter ( UINT32 unicodeValue, BOOL* exists )
HRESULT CreateFontFace ( IDWriteFontFace** fontFace ) ;
TYPEDEF: int DWRITE_READING_DIRECTION
C-ENUM:
C-ENUM: DWRITE_READING_DRECTION
DWRITE_READING_DIRECTION_LEFT_TO_RIGHT
DWRITE_READING_DIRECTION_RIGHT_TO_LEFT ;
TYPEDEF: int DWRITE_FLOW_DIRECTION
C-ENUM:
C-ENUM: DWRITE_FLOW_DIRECTION
DWRITE_FLOW_DIRECTION_TOP_TO_BOTTOM ;
TYPEDEF: int DWRITE_TEXT_ALIGNMENT
C-ENUM:
C-ENUM: DWRITE_TEXT_ALIGNMENT
DWRITE_TEXT_ALIGNMENT_LEADING
DWRITE_TEXT_ALIGNMENT_TRAILING
DWRITE_TEXT_ALIGNMENT_CENTER ;
TYPEDEF: int DWRITE_PARAGRAPH_ALIGNMENT
C-ENUM:
C-ENUM: DWRITE_PARAGRAPH_ALIGNMENT
DWRITE_PARAGRAPH_ALIGNMENT_NEAR
DWRITE_PARAGRAPH_ALIGNMENT_FAR
DWRITE_PARAGRAPH_ALIGNMENT_CENTER ;
TYPEDEF: int DWRITE_WORD_WRAPPING
C-ENUM:
C-ENUM: DWRITE_WORD_WRAPPING
DWRITE_WORD_WRAPPING_WRAP
DWRITE_WORD_WRAPPING_NO_WRAP ;
TYPEDEF: int DWRITE_LINE_SPACING_METHOD
C-ENUM:
C-ENUM: DWRITE_LINE_SPACING_METHOD
DWRITE_LINE_SPACING_METHOD_DEFAULT
DWRITE_LINE_SPACING_METHOD_UNIFORM ;
TYPEDEF: int DWRITE_TRIMMING_GRANULARITY
C-ENUM:
C-ENUM: DWRITE_TRIMMING_GRANULARITY
DWRITE_TRIMMING_GRANULARITY_NONE
DWRITE_TRIMMING_GRANULARITY_CHARACTER
DWRITE_TRIMMING_GRANULARITY_WORD ;
@ -410,31 +396,29 @@ COM-INTERFACE: IDWriteTypography IUnknown {55f1112b-1dc2-4b3c-9541-f46894ed85b6}
UINT32 GetFontFeatureCount ( )
HRESULT GetFontFeature ( UINT32 fontFeatureIndex, DWRITE_FONT_FEATURE* fontFeature ) ;
CONSTANT: DWRITE_SCRIPT_SHAPES_DEFAULT 0
CONSTANT: DWRITE_SCRIPT_SHAPES_NO_VISUAL 1
TYPEDEF: int DWRITE_SCRIPT_SHAPES
C-ENUM: DWRITE_SCRIPT_SHAPES
DWRITE_SCRIPT_SHAPES_DEFAULT
DWRITE_SCRIPT_SHAPES_NO_VISUAL ;
STRUCT: DWRITE_SCRIPT_ANALYSIS
{ script USHORT }
{ shapes DWRITE_SCRIPT_SHAPES } ;
C-ENUM:
C-ENUM: DWRITE_BREAK_CONDITION
DWRITE_BREAK_CONDITION_NEUTRAL
DWRITE_BREAK_CONDITION_CAN_BREAK
DWRITE_BREAK_CONDITION_MAY_NOT_BREAK
DWRITE_BREAK_CONDITION_MUST_BREAK ;
TYPEDEF: int DWRITE_BREAK_CONDITION
STRUCT: DWRITE_LINE_BREAKPOINT
{ data BYTE } ;
C-ENUM:
C-ENUM: DWRITE_NUMBER_SUBSTITUTION_METHOD
DWRITE_NUMBER_SUBSTITUTION_METHOD_FROM_CULTURE
DWRITE_NUMBER_SUBSTITUTION_METHOD_CONTEXTUAL
DWRITE_NUMBER_SUBSTITUTION_METHOD_NONE
DWRITE_NUMBER_SUBSTITUTION_METHOD_NATIONAL
DWRITE_NUMBER_SUBSTITUTION_METHOD_TRADITIONAL ;
TYPEDEF: int DWRITE_NUMBER_SUBSTITUTION_METHOD
COM-INTERFACE: IDWriteNumberSubstitution IUnknown {14885CC9-BAB0-4f90-B6ED-5C366A2CD03D} ;
@ -628,9 +612,9 @@ COM-INTERFACE: IDWriteGdiInterop IUnknown {1edd9491-9853-4299-898f-6432983b6f3a}
HRESULT CreateFontFaceFromHdc ( HDC hdc, IDWriteFontFace** fontFace )
HRESULT CreateBitmapRenderTarget ( HDC hdc, UINT32 width, UINT32 height, IDWriteBitmapRenderTarget** renderTarget ) ;
C-ENUM: DWRITE_TEXTURE_ALIASED_1x1
C-ENUM: DWRITE_TEXTURE_TYPE
DWRITE_TEXTURE_ALIASED_1x1
DWRITE_TEXTURE_CLEARTYPE_3x1 ;
TYPEDEF: int DWRITE_TEXTURE_TYPE
CONSTANT: DWRITE_ALPHA_MAX 255

View File

@ -47,23 +47,23 @@ STRUCT: DXGI_RATIONAL
{ Numerator UINT }
{ Denominator UINT } ;
C-ENUM: DXGI_MODE_SCANLINE_ORDER_UNSPECIFIED
C-ENUM: DXGI_MODE_SCANLINE_ORDER
DXGI_MODE_SCANLINE_ORDER_UNSPECIFIED
DXGI_MODE_SCANLINE_ORDER_PROGRESSIVE
DXGI_MODE_SCANLINE_ORDER_UPPER_FIELD_FIRST
DXGI_MODE_SCANLINE_ORDER_LOWER_FIELD_FIRST ;
TYPEDEF: int DXGI_MODE_SCANLINE_ORDER
C-ENUM: DXGI_MODE_SCALING_UNSPECIFIED
C-ENUM: DXGI_MODE_SCALING
DXGI_MODE_SCALING_UNSPECIFIED
DXGI_MODE_SCALING_CENTERED
DXGI_MODE_SCALING_STRETCHED ;
TYPEDEF: int DXGI_MODE_SCALING
C-ENUM: DXGI_MODE_ROTATION_UNSPECIFIED
C-ENUM: DXGI_MODE_ROTATION
DXGI_MODE_ROTATION_UNSPECIFIED
DXGI_MODE_ROTATION_IDENTITY
DXGI_MODE_ROTATION_ROTATE90
DXGI_MODE_ROTATION_ROTATE180
DXGI_MODE_ROTATION_ROTATE270 ;
TYPEDEF: int DXGI_MODE_ROTATION
STRUCT: DXGI_MODE_DESC
{ Width UINT }

View File

@ -39,10 +39,9 @@ STRUCT: XAPO_LOCKFORPROCESS_BUFFER_PARAMETERS
{ pFormat WAVEFORMATEX* }
{ MaxFrameCount UINT32 } ;
C-ENUM:
C-ENUM: XAPO_BUFFER_FLAGS
XAPO_BUFFER_SILENT
XAPO_BUFFER_VALID ;
TYPEDEF: int XAPO_BUFFER_FLAGS
STRUCT: XAPO_PROCESS_BUFFER_PARAMETERS
{ pBuffer void* }

View File

@ -199,7 +199,7 @@ CONSTANT: THREAD_PRIORITY_LOWEST -2
CONSTANT: THREAD_PRIORITY_NORMAL 0
CONSTANT: THREAD_PRIORITY_TIME_CRITICAL 15
C-ENUM:
C-ENUM: COMPUTER_NAME_FORMAT
ComputerNameNetBIOS
ComputerNameDnsHostname
ComputerNameDnsDomain
@ -210,8 +210,6 @@ C-ENUM:
ComputerNamePhysicalDnsFullyQualified
ComputerNameMax ;
TYPEDEF: uint COMPUTER_NAME_FORMAT
STRUCT: OVERLAPPED
{ internal UINT_PTR }
{ internal-high UINT_PTR }

View File

@ -37,7 +37,8 @@ FUNCTION: HRESULT ScriptLayout (
int* piLogicalToVisual
) ;
C-ENUM: SCRIPT_JUSTIFY_NONE
C-ENUM: f
SCRIPT_JUSTIFY_NONE
SCRIPT_JUSTIFY_ARABIC_BLANK
SCRIPT_JUSTIFY_CHARACTER
SCRIPT_JUSTIFY_RESERVED1

View File

@ -406,4 +406,4 @@ CONSTANT: MSBFirst 1
! * EXTENDED WINDOW MANAGER HINTS
! *****************************************************************
C-ENUM: _NET_WM_STATE_REMOVE _NET_WM_STATE_ADD _NET_WM_STATE_TOGGLE ;
C-ENUM: f _NET_WM_STATE_REMOVE _NET_WM_STATE_ADD _NET_WM_STATE_TOGGLE ;

View File

@ -348,12 +348,11 @@ STRUCT: cpSegmentQueryInfo
{ t cpFloat }
{ n cpVect } ;
C-ENUM:
C-ENUM: cpShapeType
CP_CIRCLE_SHAPE
CP_SEGMENT_SHAPE
CP_POLY_SHAPE
CP_NUM_SHAPES ;
TYPEDEF: int cpShapeType
CALLBACK: cpBB cacheData_cb ( cpShape* shape, cpVect p, cpVect rot ) ;
CALLBACK: void destroy_cb ( cpShape* shape ) ;
@ -482,11 +481,10 @@ STRUCT: cpContact
FUNCTION: cpContact* cpContactInit ( cpContact* con, cpVect p, cpVect n, cpFloat dist, cpHashValue hash ) ;
C-ENUM:
C-ENUM: cpArbiterState
cpArbiterStateNormal
cpArbiterStateFirstColl
cpArbiterStateIgnore ;
TYPEDEF: int cpArbiterState
STRUCT: cpArbiter
{ numContacts int }

View File

@ -176,14 +176,14 @@ FUNCTION: FT_Error FT_Set_Char_Size ( face* face, FT_F26Dot6 char_width, FT_F26D
FUNCTION: FT_Error FT_Load_Char ( face* face, FT_ULong charcode, FT_Int32 load_flags ) ;
C-ENUM:
C-ENUM: f
FT_RENDER_MODE_NORMAL
FT_RENDER_MODE_LIGHT
FT_RENDER_MODE_MONO
FT_RENDER_MODE_LCD
FT_RENDER_MODE_LCD_V ;
C-ENUM:
C-ENUM: f
FT_PIXEL_MODE_NONE
FT_PIXEL_MODE_MONO
FT_PIXEL_MODE_GRAY

View File

@ -191,7 +191,7 @@ CONSTANT: LIBUSB_ERROR_NOT_SUPPORTED -12
CONSTANT: LIBUSB_ERROR_OTHER -99
TYPEDEF: int libusb_error
C-ENUM:
C-ENUM: libusb_transfer_status
LIBUSB_TRANSFER_COMPLETED
LIBUSB_TRANSFER_ERROR
LIBUSB_TRANSFER_TIMED_OUT
@ -199,7 +199,6 @@ C-ENUM:
LIBUSB_TRANSFER_STALL
LIBUSB_TRANSFER_NO_DEVICE
LIBUSB_TRANSFER_OVERFLOW ;
TYPEDEF: int libusb_transfer_status
CONSTANT: LIBUSB_TRANSFER_SHORT_NOT_OK 1
CONSTANT: LIBUSB_TRANSFER_FREE_BUFFER 2

View File

@ -1,6 +1,6 @@
! Copyright (C) 2009 Matthew Willis.
! See http://factorcode.org/license.txt for BSD license.
USING: alien.libraries alien.syntax system sequences combinators kernel ;
USING: alien.libraries alien.syntax system sequences combinators kernel alien.c-types ;
IN: llvm.core
@ -28,20 +28,20 @@ LIBRARY: LLVMCore
TYPEDEF: uint unsigned
TYPEDEF: unsigned enum
CONSTANT: LLVMZExtAttribute BIN: 1
CONSTANT: LLVMSExtAttribute BIN: 10
CONSTANT: LLVMNoReturnAttribute BIN: 100
CONSTANT: LLVMInRegAttribute BIN: 1000
CONSTANT: LLVMStructRetAttribute BIN: 10000
CONSTANT: LLVMNoUnwindAttribute BIN: 100000
CONSTANT: LLVMNoAliasAttribute BIN: 1000000
CONSTANT: LLVMByValAttribute BIN: 10000000
CONSTANT: LLVMNestAttribute BIN: 100000000
CONSTANT: LLVMReadNoneAttribute BIN: 1000000000
CONSTANT: LLVMReadOnlyAttribute BIN: 10000000000
TYPEDEF: enum LLVMAttribute;
C-ENUM: LLVMAttribute
{ LLVMZExtAttribute BIN: 1 }
{ LLVMSExtAttribute BIN: 10 }
{ LLVMNoReturnAttribute BIN: 100 }
{ LLVMInRegAttribute BIN: 1000 }
{ LLVMStructRetAttribute BIN: 10000 }
{ LLVMNoUnwindAttribute BIN: 100000 }
{ LLVMNoAliasAttribute BIN: 1000000 }
{ LLVMByValAttribute BIN: 10000000 }
{ LLVMNestAttribute BIN: 100000000 }
{ LLVMReadNoneAttribute BIN: 1000000000 }
{ LLVMReadOnlyAttribute BIN: 10000000000 } ;
C-ENUM:
C-ENUM: LLVMTypeKind
LLVMVoidTypeKind
LLVMFloatTypeKind
LLVMDoubleTypeKind
@ -57,9 +57,8 @@ C-ENUM:
LLVMPointerTypeKind
LLVMOpaqueTypeKind
LLVMVectorTypeKind ;
TYPEDEF: enum LLVMTypeKind
C-ENUM:
C-ENUM: LLVMLinkage
LLVMExternalLinkage
LLVMLinkOnceLinkage
LLVMWeakLinkage
@ -69,34 +68,32 @@ C-ENUM:
LLVMDLLExportLinkage
LLVMExternalWeakLinkage
LLVMGhostLinkage ;
TYPEDEF: enum LLVMLinkage
C-ENUM:
C-ENUM: LLVMVisibility
LLVMDefaultVisibility
LLVMHiddenVisibility
LLVMProtectedVisibility ;
TYPEDEF: enum LLVMVisibility
CONSTANT: LLVMCCallConv 0
CONSTANT: LLVMFastCallConv 8
CONSTANT: LLVMColdCallConv 9
CONSTANT: LLVMX86StdcallCallConv 64
CONSTANT: LLVMX86FastcallCallConv 65
TYPEDEF: enum LLVMCallConv
C-ENUM: LLVMCallConv
{ LLVMCCallConv 0 }
{ LLVMFastCallConv 8 }
{ LLVMColdCallConv 9 }
{ LLVMX86StdcallCallConv 64 }
{ LLVMX86FastcallCallConv 65 } ;
CONSTANT: LLVMIntEQ 32
CONSTANT: LLVMIntNE 33
CONSTANT: LLVMIntUGT 34
CONSTANT: LLVMIntUGE 35
CONSTANT: LLVMIntULT 36
CONSTANT: LLVMIntULE 37
CONSTANT: LLVMIntSGT 38
CONSTANT: LLVMIntSGE 39
CONSTANT: LLVMIntSLT 40
CONSTANT: LLVMIntSLE 41
TYPEDEF: enum LLVMIntPredicate
C-ENUM: LLVMIntPredicate
{ LLVMIntEQ 32 }
{ LLVMIntNE 33 }
{ LLVMIntUGT 34 }
{ LLVMIntUGE 35 }
{ LLVMIntULT 36 }
{ LLVMIntULE 37 }
{ LLVMIntSGT 38 }
{ LLVMIntSGE 39 }
{ LLVMIntSLT 40 }
{ LLVMIntSLE 41 } ;
C-ENUM:
C-ENUM: LLVMRealPredicate
LLVMRealPredicateFalse
LLVMRealOEQ
LLVMRealOGT
@ -113,7 +110,6 @@ C-ENUM:
LLVMRealULE
LLVMRealUNE
LLVMRealPredicateTrue ;
TYPEDEF: enum LLVMRealPredicate
! Opaque Types

View File

@ -770,16 +770,14 @@ STRUCT: scattered_relocation_info_little_endian
{ r_address_type_length_pcrel_scattered uint32_t }
{ r_value int32_t } ;
TYPEDEF: int reloc_type_generic
C-ENUM:
C-ENUM: reloc_type_generic
GENERIC_RELOC_VANILLA
GENERIC_RELOC_PAIR
GENERIC_RELOC_SECTDIFF
GENERIC_RELOC_PB_LA_PTR
GENERIC_RELOC_LOCAL_SECTDIFF ;
TYPEDEF: int reloc_type_x86_64
C-ENUM:
C-ENUM: reloc_type_x86_64
X86_64_RELOC_UNSIGNED
X86_64_RELOC_SIGNED
X86_64_RELOC_BRANCH
@ -790,8 +788,7 @@ C-ENUM:
X86_64_RELOC_SIGNED_2
X86_64_RELOC_SIGNED_4 ;
TYPEDEF: int reloc_type_ppc
C-ENUM:
C-ENUM: reloc_type_ppc
PPC_RELOC_VANILLA
PPC_RELOC_PAIR
PPC_RELOC_BR14

View File

@ -9,7 +9,7 @@ LIBRARY: tokyocabinet
TYPEDEF: void* TCADB
C-ENUM:
C-ENUM: f
ADBOVOID
ADBOMDB
ADBONDB

View File

@ -27,7 +27,7 @@ CONSTANT: BDBOTSYNC 64
TYPEDEF: void* BDBCUR
C-ENUM:
C-ENUM: f
BDBCPCURRENT
BDBCPBEFORE
BDBCPAFTER ;

View File

@ -25,7 +25,7 @@ C-TYPE: TCRDB
! { timeout double }
! { opts int } ;
C-ENUM:
C-ENUM: f
TTESUCCESS
TTEINVALID
TTENOHOST

View File

@ -27,7 +27,7 @@ CONSTANT: TDBONOLCK 16
CONSTANT: TDBOLCKNB 32
CONSTANT: TDBOTSYNC 64
C-ENUM:
C-ENUM: f
TDBITLEXICAL
TDBITDECIMAL ;
@ -38,7 +38,7 @@ CONSTANT: TDBITKEEP 16777216
C-TYPE: TDBCOND
C-TYPE: TDBQRY
C-ENUM:
C-ENUM: f
TDBQCSTREQ
TDBQCSTRINC
TDBQCSTRBW
@ -58,7 +58,7 @@ C-ENUM:
CONSTANT: TDBQCNEGATE 16777216
CONSTANT: TDBQCNOIDX 33554432
C-ENUM:
C-ENUM: f
TDBQOSTRASC
TDBQOSTRDESC
TDBQONUMASC

View File

@ -12,7 +12,7 @@ IN: tokyo.alien.tcutil
LIBRARY: tokyocabinet
C-ENUM:
C-ENUM: f
TCDBTHASH
TCDBTBTREE
TCDBTFIXED

View File

@ -878,7 +878,7 @@ TYPEDEF: int CRYPT_KEYID_TYPE
! Internal keyset options
! (As _NONE but open for exclusive access, _CRYPT_DEFINED
! Last possible key option type, _CRYPT_DEFINED Last external keyset option)
C-ENUM:
C-ENUM: f
CRYPT_KEYOPT_NONE
CRYPT_KEYOPT_READONLY
CRYPT_KEYOPT_CREATE

View File

@ -24,7 +24,7 @@ IN: pdf.libhpdf
: HPDF_COMP_MASK HEX: FF ; inline
! page mode
C-ENUM:
C-ENUM: f
HPDF_PAGE_MODE_USE_NONE
HPDF_PAGE_MODE_USE_OUTLINE
HPDF_PAGE_MODE_USE_THUMBS