Changes in / [522f71c:f886608]


Ignore:
Files:
2 deleted
2 edited

Legend:

Unmodified
Added
Removed
  • libcfa/prelude/prelude-gen.cc

    r522f71c rf886608  
    1010// Created On       : Sat Feb 16 08:44:58 2019
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sun Jan 12 20:28:33 2025
    13 // Update Count     : 53
     12// Last Modified On : Thu Feb  2 11:40:01 2023
     13// Update Count     : 38
    1414//
    1515
     
    2424        const string name;
    2525        bool isFloat;
    26         bool hasComparison;             // CANNOT COMPARE COMPLEX NUMBERS!!!
     26        bool hasComparison;
    2727} basicTypes[] = {
    28         { "char",                                       false, true, },
    29         { "signed char",                        false, true, },
    30         { "unsigned char",                      false, true, },
    31         { "signed short",                       false, true, },
    32         { "unsigned short",                     false, true, },
    33         { "signed int",                         false, true, },
    34         { "unsigned int",                       false, true, },
    35         { "signed long int",            false, true, },
    36         { "unsigned long int",          false, true, },
    37         { "signed long long int",       false, true, },
    38         { "unsigned long long int",     false, true, },
    39         { "float",                                      true , true, },
    40         { "double",                                     true,  true, },
    41         { "long double",                        true,  true, },
    42         { "float _Complex",                     true, false, },
    43         { "double _Complex",            true, false, },
    44         { "long double _Complex",       true, false, },
     28        { "char"                  , false, true , },
     29        { "signed char"           , false, true , },
     30        { "unsigned char"         , false, true , },
     31        { "signed short"          , false, true , },
     32        { "unsigned short"        , false, true , },
     33        { "signed int"            , false, true , },
     34        { "unsigned int"          , false, true , },
     35        { "signed long int"       , false, true , },
     36        { "unsigned long int"     , false, true , },
     37        { "signed long long int"  , false, true , },
     38        { "unsigned long long int", false, true , },
     39        { "float"                 , true , true , },
     40        { "double"                , true , true , },
     41        { "long double"           , true , true , },
     42        { "float _Complex"        , true , false, },
     43        { "double _Complex"       , true , false, },
     44        { "long double _Complex"  , true , false, },
    4545#if defined(__SIZEOF_INT128__)
    46         { "__int128",                           false, true, },
    47         { "unsigned __int128",          false, true, },
     46        { "__int128"              , false, true , },
     47        { "unsigned __int128"     , false, true , },
    4848#endif
    4949#if defined(__i386__) || defined(__ia64__) || defined(__x86_64__)
    50         { "__float80",                          true,  true,  },
    51         { "__float128",                         true,  true,  },
    52         { "_Float128",                          true,  true,  },
    53         { "_Float128 _Complex",         true,  false, },
    54 //      { "_Float128x",                         true,  true,  },                // add declarations if type supported
    55 //      { "_Float128x _Complex",        true,  false, },
     50        { "__float80"             , true , true , },
     51        { "__float128"            , true , true , },
    5652#endif
    5753};
     
    6460        bool isEqual = false;
    6561} arithmeticOperators[] = {
    66         { "?++",        true,  true, false, false },
    67         { "?--",        true,  true, false, false },
    68         { "++?",        true,  true, false, false },
    69         { "--?",        true,  true, false, false },
    70         { "+?",         false, true, false, false },
    71         { "-?",         false, true, false, false },
    72         { "~?",         false, false, false, false },
    73         { "!?",         false, true, false, true  },
    74         { "?*?",        false, true, false, false },
    75         { "?/?",        false, true, false, false },
    76         { "?%?",        false, false, false, false },
    77         { "?+?",        false, true, false, false },
    78         { "?-?",        false, true, false, false },
    79         { "?<<?",       false, false, false, false },
    80         { "?>>?",       false, false, false, false },
    81         { "?<?",        false, true,  true, false },
    82         { "?<=?",       false, true,  true, true  },
    83         { "?>?",        false, true,  true, false },
    84         { "?>=?",       false, true,  true, true  },
    85         { "?==?",       false, true, false, true  },
    86         { "?!=?",       false, true, false, true  },
    87         { "?&?",        false, false, false, false },
    88         { "?^?",        false, false, false, false },
    89         { "?|?",        false, false, false, false },
    90         { "?=?",        true,  true, false, false },
    91         { "?+=?",       true,  true, false, false },
    92         { "?-=?",       true,  true, false, false },
    93         { "?*=?",       true,  true, false, false },
    94         { "?/=?",       true,  true, false, false },
    95         { "?%=?",       true, false, false, false },
    96         { "?<<=?",      true, false, false, false },
    97         { "?>>=?",      true, false, false, false },
    98         { "?&=?",       true, false, false, false },
    99         { "?|=?",       true, false, false, false },
    100         { "?^=?",       true, false, false, false },
     62        { "?++"  , true , true, false, false },
     63        { "?--"  , true , true, false, false },
     64        { "++?"  , true , true, false, false },
     65        { "--?"  , true , true, false, false },
     66        { "+?"   , false, true , false, false },
     67        { "-?"   , false, true , false, false },
     68        { "~?"   , false, false, false, false },
     69        { "!?"   , false, true , false, true  },
     70        { "?*?"  , false, true , false, false },
     71        { "?/?"  , false, true , false, false },
     72        { "?%?"  , false, false, false, false },
     73        { "?+?"  , false, true , false, false },
     74        { "?-?"  , false, true , false, false },
     75        { "?<<?" , false, false, false, false },
     76        { "?>>?" , false, false, false, false },
     77        { "?<?"  , false, true , true , false },
     78        { "?<=?" , false, true , true , true  },
     79        { "?>?"  , false, true , true , false },
     80        { "?>=?" , false, true , true , true  },
     81        { "?==?" , false, true , false, true  },
     82        { "?!=?" , false, true , false, true  },
     83        { "?&?"  , false, false, false, false },
     84        { "?^?"  , false, false, false, false },
     85        { "?|?"  , false, false, false, false },
     86        { "?=?"  , true , true , false, false },
     87        { "?+=?" , true , true , false, false },
     88        { "?-=?" , true , true , false, false },
     89        { "?*=?" , true , true , false, false },
     90        { "?/=?" , true , true , false, false },
     91        { "?%=?" , true , false, false, false },
     92        { "?<<=?", true , false, false, false },
     93        { "?>>=?", true , false, false, false },
     94        { "?&=?" , true , false, false, false },
     95        { "?|=?" , true , false, false, false },
     96        { "?^=?" , true , false, false, false },
    10197};
    10298
     
    110106        string sized;
    111107} pointerOperators[] = {
    112         { "?++",        true,  "",                              Normal,                 " | sized(DT)" },
    113         { "?--",        true,  "",                              Normal,                 " | sized(DT)" },
    114         { "++?",        true,  "",                              Normal,                 " | sized(DT)" },
    115         { "--?",        true,  "",                              Normal,                 " | sized(DT)" },
    116         { "!?",         false, "int",                   Normal,                 "" },
    117         { "?<?",        false, "signed int",    Normal,                 "" },
    118         { "?<=?",       false, "signed int",    Normal,                 "" },
    119         { "?>?",        false, "signed int",    Normal,                 "" },
    120         { "?>=?",       false, "signed int",    Normal,                 "" },
    121         { "?==?",       false, "signed int",    Normal,                 "" },
    122         { "?!=?",       false, "signed int",    Normal,                 "" },
    123         { "?=?",        true,  "",                              Normal,                 "" }, // void * LHS, zero_t RHS ???
    124 //      { "*?",         false, "&",                             Normal,                 " | sized(DT)" }, // & ???
    125         { "*?",         false, "&",                             Normal,                 "" }, // & ???
    126 
    127         { "?-?",        false, "ptrdiff_t",             Normal,                 " | sized(DT)" },
    128         { "?-?",        false, "",                              PtrDiff,                " | sized(DT)" },
    129         { "?-=?",       true,  "",                              PtrDiff,                " | sized(DT)" },
    130 
    131         { "?+?",        false, "",                              CommPtrDiff,    " | sized(DT)" },
    132         { "?[?]",       false, "&",                             CommPtrDiff,    " | sized(DT)" }, // & ???
    133         { "?+=?",       true,  "",                              PtrDiff,                " | sized(DT)" },
     108        { "?++", true, "", Normal, " | sized(DT)" },
     109        { "?--", true, "", Normal, " | sized(DT)" },
     110        { "++?", true, "", Normal, " | sized(DT)" },
     111        { "--?", true, "", Normal, " | sized(DT)" },
     112        { "!?" , false, "int", Normal, "" },
     113        { "?<?", false, "signed int", Normal, "" },
     114        { "?<=?", false, "signed int", Normal, "" },
     115        { "?>?", false, "signed int", Normal, "" },
     116        { "?>=?", false, "signed int", Normal, "" },
     117        { "?==?", false, "signed int", Normal, "" },
     118        { "?!=?", false, "signed int", Normal, "" },
     119        { "?=?", true, "", Normal, "" }, // void * LHS, zero_t RHS ???
     120//      { "*?", false, "&", Normal, " | sized(DT)" }, // & ???
     121        { "*?", false, "&", Normal, "" }, // & ???
     122
     123        { "?-?", false, "ptrdiff_t", Normal, " | sized(DT)" },
     124        { "?-?", false, "", PtrDiff, " | sized(DT)" },
     125        { "?-=?", true, "", PtrDiff, " | sized(DT)" },
     126
     127        { "?+?", false, "", CommPtrDiff, " | sized(DT)" },
     128        { "?[?]", false, "&", CommPtrDiff, " | sized(DT)" }, // & ???
     129        { "?+=?" , true, "", PtrDiff, " | sized(DT)" },
    134130};
    135131
  • src/BasicTypes-gen.cpp

    r522f71c rf886608  
    4545        Float64xComplex,
    4646        Float80,
     47        Float128,
     48        Float128Complex,
     49        uuFloat128,
    4750        LongDouble,
    4851        LongDoubleComplex,
    49         uuFloat128,
    50         Float128,
    51         Float128Complex,
    5252        Float128x,
    5353        Float128xComplex,
     
    113113        { DoubleComplex, "DoubleComplex", "DC", "double _Complex", "Cd", Floating, Float64xComplex, -1, -1, 12 },
    114114        { Float64x, "Float64x", "_FDX", "_Float64x", "DF64x_", Floating, Float80, Float64xComplex, -1, 13 },
    115         { Float64xComplex, "Float64xComplex", "_FDXC", "_Float64x _Complex", "CDF64x_", Floating, LongDoubleComplex, -1, -1, 13 },
    116 
    117         { Float80, "Float80", "_F80", "__float80", "Dq", Floating, LongDouble, LongDoubleComplex, -1, 14 },
     115        { Float64xComplex, "Float64xComplex", "_FDXC", "_Float64x _Complex", "CDF64x_", Floating, Float128Complex, -1, -1, 13 },
     116
     117        { Float80, "Float80", "_F80", "__float80", "Dq", Floating, Float128, Float64xComplex, -1, 14 },
    118118        // __float80 _Complex, no complex counterpart
    119         // gcc implements long double as float80 (12 bytes)
    120         { LongDouble, "LongDouble", "LD", "long double", "e", Floating, uuFloat128, LongDoubleComplex, -1, 15 },
    121         { LongDoubleComplex, "LongDoubleComplex", "LDC", "long double _Complex", "Ce", Floating, Float128Complex, -1, -1, 15 },
    122 
    123         { uuFloat128, "uuFloat128", "__FLD", "__float128", "g", Floating, Float128, Float128Complex, -1, 16 },
     119
     120        { Float128, "Float128", "_FLD", "_Float128", "DF128_", Floating, uuFloat128, Float128Complex, -1, 15 },
     121        { Float128Complex, "Float128Complex", "_FLDC", "_Float128 _Complex", "CDF128_", Floating, LongDoubleComplex, -1, -1, 15 },
     122        { uuFloat128, "uuFloat128", "__FLD", "__float128", "g", Floating, LongDouble, Float128Complex, -1, 16 },
    124123        // __float128 _Complex, no complex counterpart
    125         { Float128, "Float128", "_FLD", "_Float128", "DF128_", Floating, Float128x, Float128Complex, -1, 17 },
    126         { Float128Complex, "Float128Complex", "_FLDC", "_Float128 _Complex", "CDF128_", Floating, Float128xComplex, -1, -1, 17 },
     124        { LongDouble, "LongDouble", "LD", "long double", "e", Floating, Float128x, LongDoubleComplex, -1, 17 },
     125        { LongDoubleComplex, "LongDoubleComplex", "LDC", "long double _Complex", "Ce", Floating, Float128xComplex, -1, -1, 17 },
    127126
    128127        // may not be supported
     
    135134static Kind commonTypeMatrix[NUMBER_OF_BASIC_TYPES][NUMBER_OF_BASIC_TYPES];
    136135
    137 // Fangren explain shortest cost algorithm.
    138136void generateCosts( int row ) {
    139137        bool seen[NUMBER_OF_BASIC_TYPES] = { false /*, ... */ };
     
    176174
    177175                // traverse children
    178                 // Fangren explain "max"
    179176                int i = graph[col].left;
    180177                if ( i == -1 ) continue;                                                // leaf
     
    191188} // generateCosts
    192189
    193 // Fangren explain this routine if you can.
    194190void generateCommonType( int row, int col ) {                   // row <= col
    195191        if ( costMatrix[row][col] >= 0 ) {
Note: See TracChangeset for help on using the changeset viewer.