Fix bootstrap and load-all errors from enum classes.
! (c)2010 Joe Groff bsd license
USING: accessors alien.c-types arrays combinators delegate fry
-kernel quotations sequences words.symbol ;
+kernel quotations sequences words.symbol words ;
IN: alien.enums
TUPLE: enum-c-type base-type members ;
C: <enum-c-type> enum-c-type
+: enum>int ( enum enum-c-type -- int )
+ c-type-unboxer-quot call( x -- y ) ; inline
+
+: int>enum ( int enum-c-type -- enum )
+ c-type-boxer-quot call( x -- y ) ; inline
+
<PRIVATE
: define-enum-members ( member-names -- )
[ 2array suffix! ] [ 1 + ] bi ;
: parse-enum-name ( -- name )
- scan dup "f" =
- [ drop f ]
- [ (CREATE-C-TYPE) dup save-location ] if ;
+ scan (CREATE-C-TYPE) dup save-location ;
: parse-enum-base-type ( -- base-type token )
scan dup "<" =
: <NSString> ( str -- alien ) <CFString> -> autorelease ;
-ENUM: f
-NSApplicationDelegateReplySuccess
-NSApplicationDelegateReplyCancel
-NSApplicationDelegateReplyFailure ;
+CONSTANT: NSApplicationDelegateReplySuccess 0
+CONSTANT: NSApplicationDelegateReplyCancel 1
+CONSTANT: NSApplicationDelegateReplyFailure 2
: with-autorelease-pool ( quot -- )
NSAutoreleasePool -> new [ call ] [ -> release ] bi* ; inline
! Copyright (C) 2008, 2010 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license.
USING: math kernel layouts system strings words quotations byte-arrays
-alien alien.syntax arrays literals sequences ;
+alien arrays literals sequences ;
IN: compiler.constants
! These constants must match vm/memory.h
: segment-end-offset ( -- n ) 2 bootstrap-cells ; inline
! Relocation classes
-ENUM: f
- rc-absolute-cell
- rc-absolute
- rc-relative
- rc-absolute-ppc-2/2
- rc-absolute-ppc-2
- rc-relative-ppc-2
- rc-relative-ppc-3
- rc-relative-arm-3
- rc-indirect-arm
- rc-indirect-arm-pc
- rc-absolute-2
- rc-absolute-1 ;
+CONSTANT: rc-absolute-cell 0
+CONSTANT: rc-absolute 1
+CONSTANT: rc-relative 2
+CONSTANT: rc-absolute-ppc-2/2 3
+CONSTANT: rc-absolute-ppc-2 4
+CONSTANT: rc-relative-ppc-2 5
+CONSTANT: rc-relative-ppc-3 6
+CONSTANT: rc-relative-arm-3 7
+CONSTANT: rc-indirect-arm 8
+CONSTANT: rc-indirect-arm-pc 9
+CONSTANT: rc-absolute-2 10
+CONSTANT: rc-absolute-1 11
! Relocation types
-ENUM: f
- rt-dlsym
- rt-entry-point
- rt-entry-point-pic
- rt-entry-point-pic-tail
- rt-here
- rt-this
- rt-literal
- rt-untagged
- rt-megamorphic-cache-hits
- rt-vm
- rt-cards-offset
- rt-decks-offset
- rt-exception-handler
- rt-float ;
+CONSTANT: rt-dlsym 0
+CONSTANT: rt-entry-point 1
+CONSTANT: rt-entry-point-pic 2
+CONSTANT: rt-entry-point-pic-tail 3
+CONSTANT: rt-here 4
+CONSTANT: rt-this 5
+CONSTANT: rt-literal 6
+CONSTANT: rt-untagged 7
+CONSTANT: rt-megamorphic-cache-hits 8
+CONSTANT: rt-vm 9
+CONSTANT: rt-cards-offset 10
+CONSTANT: rt-decks-offset 11
+CONSTANT: rt-exception-handler 12
+CONSTANT: rt-float 13
: rc-absolute? ( n -- ? )
${
- rc-absolute-ppc-2/2
- rc-absolute-cell
- rc-absolute
- rc-absolute-2
- rc-absolute-1
+ $ rc-absolute-ppc-2/2
+ $ rc-absolute-cell
+ $ rc-absolute
+ $ rc-absolute-2
+ $ rc-absolute-1
} member? ;
opengl.gl literals ;
IN: core-graphics
-ENUM: CGImageAlphaInfo
-kCGImageAlphaNone
-kCGImageAlphaPremultipliedLast
-kCGImageAlphaPremultipliedFirst
-kCGImageAlphaLast
-kCGImageAlphaFirst
-kCGImageAlphaNoneSkipLast
-kCGImageAlphaNoneSkipFirst ;
+TYPEDEF: int CGImageAlphaInfo
+CONSTANT: kCGImageAlphaNone 0
+CONSTANT: kCGImageAlphaPremultipliedLast 1
+CONSTANT: kCGImageAlphaPremultipliedFirst 2
+CONSTANT: kCGImageAlphaLast 3
+CONSTANT: kCGImageAlphaFirst 4
+CONSTANT: kCGImageAlphaNoneSkipLast 5
+CONSTANT: kCGImageAlphaNoneSkipFirst 6
CONSTANT: kCGBitmapAlphaInfoMask HEX: 1f
CONSTANT: kCGBitmapFloatComponents 256
<PRIVATE
! Grapheme breaks
-ENUM: f Any L V T LV LVT Extend Control CR LF
- SpacingMark Prepend graphemes ;
+CONSTANT: Any 0
+CONSTANT: L 1
+CONSTANT: V 2
+CONSTANT: T 3
+CONSTANT: LV 4
+CONSTANT: LVT 5
+CONSTANT: Extend 6
+CONSTANT: Control 7
+CONSTANT: CR 8
+CONSTANT: LF 9
+CONSTANT: SpacingMark 10
+CONSTANT: Prepend 11
+CONSTANT: graphemes 12
: jamo-class ( ch -- class )
dup initial? [ drop L ]
"vocab:unicode/data/WordBreakProperty.txt" load-interval-file
to: word-break-table
-ENUM: f wOther wCR wLF wNewline wExtend wFormat wKatakana wALetter wMidLetter
-wMidNum wMidNumLet wNumeric wExtendNumLet words ;
+CONSTANT: wOther 0
+CONSTANT: wCR 1
+CONSTANT: wLF 2
+CONSTANT: wNewline 3
+CONSTANT: wExtend 4
+CONSTANT: wFormat 5
+CONSTANT: wKatakana 6
+CONSTANT: wALetter 7
+CONSTANT: wMidLetter 8
+CONSTANT: wMidNum 9
+CONSTANT: wMidNumLet 10
+CONSTANT: wNumeric 11
+CONSTANT: wExtendNumLet 12
+CONSTANT: words 13
: word-break-classes ( -- table ) ! Is there a way to avoid this?
H{
: vm-field-offset ( field -- offset ) vm offset-of ; inline
-ENUM: f
-collect-nursery-op
-collect-aging-op
-collect-to-tenured-op
-collect-full-op
-collect-compact-op
-collect-growing-heap-op ;
+CONSTANT: collect-nursery-op 0
+CONSTANT: collect-aging-op 1
+CONSTANT: collect-to-tenured-op 2
+CONSTANT: collect-full-op 3
+CONSTANT: collect-compact-op 4
+CONSTANT: collect-growing-heap-op 5
STRUCT: copying-sizes
{ size cell }
int* piLogicalToVisual
) ;
-ENUM: f
- SCRIPT_JUSTIFY_NONE
- SCRIPT_JUSTIFY_ARABIC_BLANK
- SCRIPT_JUSTIFY_CHARACTER
- SCRIPT_JUSTIFY_RESERVED1
- SCRIPT_JUSTIFY_BLANK
- SCRIPT_JUSTIFY_RESERVED2
- SCRIPT_JUSTIFY_RESERVED3
- SCRIPT_JUSTIFY_ARABIC_NORMAL
- SCRIPT_JUSTIFY_ARABIC_KASHIDA
- SCRIPT_JUSTIFY_ALEF
- SCRIPT_JUSTIFY_HA
- SCRIPT_JUSTIFY_RA
- SCRIPT_JUSTIFY_BA
- SCRIPT_JUSTIFY_BARA
- SCRIPT_JUSTIFY_SEEN
- SCRIPT_JUSTIFFY_RESERVED4 ;
+CONSTANT: SCRIPT_JUSTIFY_NONE 0
+CONSTANT: SCRIPT_JUSTIFY_ARABIC_BLANK 1
+CONSTANT: SCRIPT_JUSTIFY_CHARACTER 2
+CONSTANT: SCRIPT_JUSTIFY_RESERVED1 3
+CONSTANT: SCRIPT_JUSTIFY_BLANK 4
+CONSTANT: SCRIPT_JUSTIFY_RESERVED2 5
+CONSTANT: SCRIPT_JUSTIFY_RESERVED3 6
+CONSTANT: SCRIPT_JUSTIFY_ARABIC_NORMAL 7
+CONSTANT: SCRIPT_JUSTIFY_ARABIC_KASHIDA 8
+CONSTANT: SCRIPT_JUSTIFY_ALEF 9
+CONSTANT: SCRIPT_JUSTIFY_HA 10
+CONSTANT: SCRIPT_JUSTIFY_RA 11
+CONSTANT: SCRIPT_JUSTIFY_BA 12
+CONSTANT: SCRIPT_JUSTIFY_BARA 13
+CONSTANT: SCRIPT_JUSTIFY_SEEN 14
+CONSTANT: SCRIPT_JUSTIFFY_RESERVED4 15
STRUCT: SCRIPT_VISATTR
{ flags WORD } ;
! * EXTENDED WINDOW MANAGER HINTS
! *****************************************************************
-ENUM: f _NET_WM_STATE_REMOVE _NET_WM_STATE_ADD _NET_WM_STATE_TOGGLE ;
+CONSTANT: _NET_WM_STATE_REMOVE 0
+CONSTANT: _NET_WM_STATE_ADD 1
+CONSTANT: _NET_WM_STATE_TOGGLE 2
FUNCTION: FT_Error FT_Load_Char ( face* face, FT_ULong charcode, FT_Int32 load_flags ) ;
-ENUM: f
- FT_RENDER_MODE_NORMAL
- FT_RENDER_MODE_LIGHT
- FT_RENDER_MODE_MONO
- FT_RENDER_MODE_LCD
- FT_RENDER_MODE_LCD_V ;
-
-ENUM: f
- FT_PIXEL_MODE_NONE
- FT_PIXEL_MODE_MONO
- FT_PIXEL_MODE_GRAY
- FT_PIXEL_MODE_GRAY2
- FT_PIXEL_MODE_GRAY4
- FT_PIXEL_MODE_LCD
- FT_PIXEL_MODE_LCD_V ;
+CONSTANT: FT_RENDER_MODE_NORMAL 0
+CONSTANT: FT_RENDER_MODE_LIGHT 1
+CONSTANT: FT_RENDER_MODE_MONO 2
+CONSTANT: FT_RENDER_MODE_LCD 3
+CONSTANT: FT_RENDER_MODE_LCD_V 4
+
+CONSTANT: FT_PIXEL_MODE_NONE 0
+CONSTANT: FT_PIXEL_MODE_MONO 1
+CONSTANT: FT_PIXEL_MODE_GRAY 2
+CONSTANT: FT_PIXEL_MODE_GRAY2 3
+CONSTANT: FT_PIXEL_MODE_GRAY4 4
+CONSTANT: FT_PIXEL_MODE_LCD 5
+CONSTANT: FT_PIXEL_MODE_LCD_V 6
FUNCTION: int FT_Render_Glyph ( glyph* slot, int render_mode ) ;
TYPEDEF: void* TCADB
-ENUM: f
- ADBOVOID
- ADBOMDB
- ADBONDB
- ADBOHDB
- ADBOBDB
- ADBOFDB
- ADBOTDB
- ADBOSKEL ;
+CONSTANT: ADBOVOID 0
+CONSTANT: ADBOMDB 1
+CONSTANT: ADBONDB 2
+CONSTANT: ADBOHDB 3
+CONSTANT: ADBOBDB 4
+CONSTANT: ADBOFDB 5
+CONSTANT: ADBOTDB 6
+CONSTANT: ADBOSKEL 7
FUNCTION: TCADB* tcadbnew ( ) ;
FUNCTION: void tcadbdel ( TCADB* adb ) ;
TYPEDEF: void* BDBCUR
-ENUM: f
- BDBCPCURRENT
- BDBCPBEFORE
- BDBCPAFTER ;
+CONSTANT: BDBCPCURRENT 0
+CONSTANT: BDBCPBEFORE 1
+CONSTANT: BDBCPAFTER 2
FUNCTION: c-string tcbdberrmsg ( int ecode ) ;
FUNCTION: TCBDB* tcbdbnew ( ) ;
! { timeout double }
! { opts int } ;
-ENUM: f
- TTESUCCESS
- TTEINVALID
- TTENOHOST
- TTEREFUSED
- TTESEND
- TTERECV
- TTEKEEP
- TTENOREC ;
-CONSTANT: TTEMISC 9999
+CONSTANT: TTESUCCESS 0
+CONSTANT: TTEINVALID 1
+CONSTANT: TTENOHOST 2
+CONSTANT: TTEREFUSED 3
+CONSTANT: TTESEND 4
+CONSTANT: TTERECV 5
+CONSTANT: TTEKEEP 6
+CONSTANT: TTENOREC 7
+CONSTANT: TTEMISC 9999
CONSTANT: RDBTRECON 1
CONSTANT: RDBXOLCKREC 1
CONSTANT: TDBOLCKNB 32
CONSTANT: TDBOTSYNC 64
-ENUM: f
- TDBITLEXICAL
- TDBITDECIMAL ;
+CONSTANT: TDBITLEXICAL 0
+CONSTANT: TDBITDECIMAL 1
CONSTANT: TDBITOPT 9998
CONSTANT: TDBITVOID 9999
C-TYPE: TDBCOND
C-TYPE: TDBQRY
-ENUM: f
- TDBQCSTREQ
- TDBQCSTRINC
- TDBQCSTRBW
- TDBQCSTREW
- TDBQCSTRAND
- TDBQCSTROR
- TDBQCSTROREQ
- TDBQCSTRRX
- TDBQCNUMEQ
- TDBQCNUMGT
- TDBQCNUMGE
- TDBQCNUMLT
- TDBQCNUMLE
- TDBQCNUMBT
- TDBQCNUMOREQ ;
+CONSTANT: TDBQCSTREQ 0
+CONSTANT: TDBQCSTRINC 1
+CONSTANT: TDBQCSTRBW 2
+CONSTANT: TDBQCSTREW 3
+CONSTANT: TDBQCSTRAND 4
+CONSTANT: TDBQCSTROR 5
+CONSTANT: TDBQCSTROREQ 6
+CONSTANT: TDBQCSTRRX 7
+CONSTANT: TDBQCNUMEQ 8
+CONSTANT: TDBQCNUMGT 9
+CONSTANT: TDBQCNUMGE 10
+CONSTANT: TDBQCNUMLT 11
+CONSTANT: TDBQCNUMLE 12
+CONSTANT: TDBQCNUMBT 13
+CONSTANT: TDBQCNUMOREQ 14
CONSTANT: TDBQCNEGATE 16777216
CONSTANT: TDBQCNOIDX 33554432
-ENUM: f
- TDBQOSTRASC
- TDBQOSTRDESC
- TDBQONUMASC
- TDBQONUMDESC ;
+CONSTANT: TDBQOSTRASC 0
+CONSTANT: TDBQOSTRDESC 1
+CONSTANT: TDBQONUMASC 2
+CONSTANT: TDBQONUMDESC 3
CONSTANT: TDBQPPUT 1
CONSTANT: TDBQPOUT 2
LIBRARY: tokyocabinet
-ENUM: f
- TCDBTHASH
- TCDBTBTREE
- TCDBTFIXED
- TCDBTTABLE ;
+CONSTANT: TCDBTHASH 0
+CONSTANT: TCDBTBTREE 1
+CONSTANT: TCDBTFIXED 2
+CONSTANT: TCDBTTABLE 3
! FIXME: on windows 64bits this isn't correct, because long is 32bits there, and time_t is int64
TYPEDEF: long tokyo_time_t
'(":" "::" ";" "&:" "<<" "<PRIVATE" ">>"\r
"ABOUT:" "AFTER:" "ALIAS:" "ALIEN:" "ARTICLE:"\r
"B" "BEFORE:" "BIN:"\r
- "C:" "CALLBACK:" "C-ENUM:" "C-TYPE:" "CHAR:" "COM-INTERFACE:" "CONSTANT:" "CONSULT:" "call-next-method"\r
+ "C:" "CALLBACK:" "ENUM:" "C-TYPE:" "CHAR:" "COM-INTERFACE:" "CONSTANT:" "CONSULT:" "call-next-method"\r
"DEFER:"\r
"EBNF:" ";EBNF" "ERROR:" "EXCLUDE:"\r
"f" "FORGET:" "FROM:" "FUNCTION:"\r
\r
(defconst fuel-syntax--indent-def-starts '("" ":"\r
"AFTER" "BEFORE"\r
- "C-ENUM" "COM-INTERFACE" "CONSULT"\r
+ "ENUM" "COM-INTERFACE" "CONSULT"\r
"FROM" "FUNCTION:"\r
"INTERSECTION:"\r
"M" "M:" "MACRO" "MACRO:"\r
("\\_<\\(U\\)SING: \\(;\\)" (1 "<b") (2 ">b"))\r
("\\_<USING:\\( \\)" (1 "<b"))\r
("\\_<\\(C\\)-ENUM: \\(;\\)" (1 "<b") (2 ">b"))\r
- ("\\_<C-ENUM:\\( \\|\n\\)" (1 "<b"))\r
+ ("\\_<ENUM:\\( \\|\n\\)" (1 "<b"))\r
("\\_<TUPLE: +\\w+? +< +\\w+? *\\( \\|\n\\)\\([^;]\\|$\\)" (1 "<b"))\r
("\\_<TUPLE: +\\w+? *\\( \\|\n\\)\\([^;<\n]\\|\\_>\\)" (1 "<b"))\r
("\\_<\\(SYMBOLS\\|SPECIALIZED-ARRAYS\\|SINGLETONS\\|VARIANT\\): *?\\( \\|\n\\)\\([^;\n]\\|\\_>\\)"\r
! 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: f
- CRYPT_KEYOPT_NONE
- CRYPT_KEYOPT_READONLY
- CRYPT_KEYOPT_CREATE
- CRYPT_IKEYOPT_EXCLUSIVEACCESS
- CRYPT_KEYOPT_LAST
-;
+CONSTANT: CRYPT_KEYOPT_NONE 0
+CONSTANT: CRYPT_KEYOPT_READONLY 1
+CONSTANT: CRYPT_KEYOPT_CREATE 2
+CONSTANT: CRYPT_IKEYOPT_EXCLUSIVEACCESS 3
+CONSTANT: CRYPT_KEYOPT_LAST 4
: CRYPT_KEYOPT_LAST_EXTERNAL 3 ; inline ! = CRYPT_KEYOPT_CREATE + 1
: HPDF_COMP_MASK HEX: FF ; inline
! page mode
-C-ENUM: f
- HPDF_PAGE_MODE_USE_NONE
- HPDF_PAGE_MODE_USE_OUTLINE
- HPDF_PAGE_MODE_USE_THUMBS
- HPDF_PAGE_MODE_FULL_SCREEN
- HPDF_PAGE_MODE_EOF
-;
+CONSTANT: HPDF_PAGE_MODE_USE_NONE 0
+CONSTANT: HPDF_PAGE_MODE_USE_OUTLINE 1
+CONSTANT: HPDF_PAGE_MODE_USE_THUMBS 2
+CONSTANT: HPDF_PAGE_MODE_FULL_SCREEN 3
+CONSTANT: HPDF_PAGE_MODE_EOF 4
: error-code ( -- seq ) {
{ HEX: 1001 "HPDF_ARRAY_COUNT_ERR\nInternal error. The consistency of the data was lost." }