Changeset b006c51e for libcfa/prelude


Ignore:
Timestamp:
Nov 3, 2024, 2:47:59 PM (7 weeks ago)
Author:
JiadaL <j82liang@…>
Branches:
master
Children:
10a9479d
Parents:
ad9f593
Message:

Move enum trait declaration to builtin/c

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libcfa/prelude/builtins.c

    rad9f593 rb006c51e  
    184184static inline quasi_void ?=?(quasi_void &, quasi_void & _src) { return _src; }
    185185
     186forall( E ) trait Bounded {
     187        E lowerBound(void);
     188        E upperBound(void);
     189};
     190
     191forall( E | Bounded( E ) ) trait Serial {
     192        int fromInstance( E e );
     193        E fromInt_unsafe( int i );
     194        E succ_unsafe( E e );
     195        E pred_unsafe( E e );
     196};
     197
     198forall( E | Serial( E ) ) {
     199        E fromInt( int i );
     200        E succ( E e );
     201        E pred( E e );
     202        int Countof( E );
     203}
     204
     205
     206forall( E ) trait CfaEnum {
     207        const char * label( E e );
     208        int posn( E e );
     209};
     210
     211forall( E, V | CfaEnum( E ) ) trait TypedEnum {
     212        V value( E e );
     213};
     214
    186215// Local Variables: //
    187216// mode: c //
Note: See TracChangeset for help on using the changeset viewer.