Ignore:
Timestamp:
Apr 28, 2024, 7:50:11 PM (5 months ago)
Author:
JiadaL <j82liang@…>
Branches:
master
Children:
c5c123f
Parents:
7042c60
Message:
  1. Change return value of typed Enum in null context: they now return the position. Therefore, printf with enumeration value will no longer be supported. 2. sout now will return the enumeration value. So sout | enumValue will print what we expect. 3. Provide enum.hfa, which contains traits that related to enum. 4. Implement functions declare in enum.hfa for enum types, so enum type fulfill the traits. Known defeat: error if we use the enum traits on enum types. They work but c compiler gives an warning
File:
1 edited

Legend:

Unmodified
Added
Removed
  • tests/enum_tests/position.cfa

    r7042c60 reb7586e  
    1212
    1313int main () {
    14     Colour fishy; // posE()
    15     fishy = Colour.Green; // value(fishy) = Colour.Green;
    16     fishy; // valueE( fishy );
     14    Colour fishy;
     15    fishy = Colour.Green;
     16    fishy;
     17    Colour c2 = fishy;
    1718
    18     printf( "Compile Time: blue value: %s, position: %d, label: %s, default return value: %s \n", valueE(Colour.Blue), posE(Colour.Blue), labelE(Colour.Blue), Colour.Blue );
    19     printf( "Runtime: fishy value: %s, position: %d, label: %s, default return value: %s\n", valueE(fishy), posE(fishy), labelE(fishy), fishy );
    20     Colour c2 = fishy;
    21     printf( "Runtime: C2 value: %s, position: %d, label: %s, default return value: %s\n", valueE(c2), posE(c2), labelE(c2), c2 );
     19    sout | "Compile Time: blue value: " | valueE(Colour.Blue) | ", position: " | posE(Colour.Blue) | ", label: " | labelE(Colour.Blue) | ", default return value: " | Colour.Blue;
     20    sout | "Runtime: fishy value: " | valueE(fishy) | ", position: " | posE(fishy) | ", label: " | labelE(fishy) | ", default return value: " | fishy;
     21    sout | "Runtime: C2 value: " | valueE(c2) | ", position: " | posE(c2) | ", label: " | labelE(c2) | ", default return value: " | c2;
    2222    Colour.Red;
    2323    char * ao = Colour.Red;
     
    2929    Plain a = B;
    3030    printf( "%d \n", a );
     31   
    3132}
Note: See TracChangeset for help on using the changeset viewer.