Ignore:
Timestamp:
Feb 18, 2019, 1:04:30 PM (6 years ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, persistent-indexer, pthread-emulation, qualifiedEnum
Children:
d08beee
Parents:
ada4575
Message:

add char, signed char, unsigned char to basic types in prologue

File:
1 edited

Legend:

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

    rada4575 ree06e41b  
     1//
     2// Cforall Version 1.0.0 Copyright (C) 2018 University of Waterloo
     3//
     4// The contents of this file are covered under the licence agreement in the
     5// file "LICENCE" distributed with Cforall.
     6//
     7// prelude-gen.cc --
     8//
     9// Author           : Rob Schluntz and Thierry Delisle
     10// Created On       : Sat Feb 16 08:44:58 2019
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Mon Feb 18 09:47:33 2019
     13// Update Count     : 22
     14//
     15
    116#include <algorithm>
    217#include <array>
     
    1126        bool hasComparison;
    1227} basicTypes[] = {
    13         // { "char"                  , false, true , },
    14         // { "signed char"           , false, true , },
    15         // { "unsigned char"         , false, true , },
     28        { "char"                  , false, true , },
     29        { "signed char"           , false, true , },
     30        { "unsigned char"         , false, true , },
    1631        { "signed short"          , false, true , },
    1732        { "unsigned short"        , false, true , },
     
    150165        cout << endl;
    151166
    152         cout << "signed int ?==?( zero_t, zero_t ),                                                     ?!=?( zero_t, zero_t );" << endl;
    153         cout << "signed int ?==?( one_t, one_t ),                                                       ?!=?( one_t, one_t );" << endl;
    154         cout << "signed int ?==?( _Bool, _Bool ),                                                       ?!=?( _Bool, _Bool );" << endl;
     167        cout << "signed int ?==?( zero_t, zero_t ),     ?!=?( zero_t, zero_t );" << endl;
     168        cout << "signed int ?==?( one_t, one_t ),       ?!=?( one_t, one_t );" << endl;
     169        cout << "signed int ?==?( _Bool, _Bool ),       ?!=?( _Bool, _Bool );" << endl;
    155170        cout << "signed int !?( _Bool );" << endl;
    156171
     
    188203        cout << "// Arithmetic Constructors //" << endl;
    189204        cout << "/////////////////////////////" << endl;
     205        cout << endl;
     206
    190207        auto otype = [](const std::string & type, bool do_volatile = false) {
    191                 cout << "void \t?{} ( " << type << " & );" << endl;
    192                 cout << "void \t?{} ( " << type << " &, " << type << " );" << endl;
    193                 cout << type << " \t?=? ( " << type << " &, " << type << " )";
    194                 if( do_volatile ) {
    195                         cout << ", \t?=?( volatile " << type << " &, " << type << " )";
     208                cout << "void ?{} (" << type << " &);" << endl;
     209                cout << "void ?{} (" << type << " &, " << type << ");" << endl;
     210                cout << type << "  ?=? (" << type << " &, " << type << ")";
     211                if ( do_volatile ) {
     212                        cout << ",  ?=?(volatile " << type << " &, " << type << ")";
    196213                }
    197214                cout << ";" << endl;
    198                 cout << "void \t^?{}( " << type << " & );" << endl;
     215                cout << "void ^?{}( " << type << " & );" << endl;
    199216        };
    200217
     
    202219        otype("one_t");
    203220        otype("_Bool", true);
    204         otype("char", true);
    205         otype("signed char", true);
    206         otype("unsigned char", true);
     221        cout << endl;
    207222
    208223        for (auto type : basicTypes) {
    209                 cout << "void  ?{}(" << type.name << " &);" << endl;
    210                 cout << "void  ?{}(" << type.name << " &, " << type.name << ");" << endl;
     224                cout << "void ?{}(" << type.name << " &);" << endl;
     225                cout << "void ?{}(" << type.name << " &, " << type.name << ");" << endl;
     226                cout << "void ?{}(" << type.name << " &, zero_t);" << endl;
    211227                cout << "void ^?{}(" << type.name << " &);" << endl;
    212228                cout << endl;
     
    217233        cout << "// Pointer Constructors //" << endl;
    218234        cout << "//////////////////////////" << endl;
    219         cout << "forall(ftype FT) void  ?{}( FT *&, FT * );" << endl;
    220         cout << "forall(ftype FT) void  ?{}( FT * volatile &, FT * );" << endl;
     235        cout << endl;
     236
     237        cout << "forall(ftype FT) void ?{}( FT *&, FT * );" << endl;
     238        cout << "forall(ftype FT) void ?{}( FT * volatile &, FT * );" << endl;
    221239
    222240        // generate qualifiers
     
    242260                for (auto cvq : qualifiersPair) {
    243261                        for (auto is_vol : { "        ", "volatile" }) {
    244                                 cout << "forall(dtype DT) void  ?{}(" << cvq.first << type << " * " << is_vol << " &, " << cvq.second << "DT *);" << endl;
     262                                cout << "forall(dtype DT) void ?{}(" << cvq.first << type << " * " << is_vol << " &, " << cvq.second << "DT *);" << endl;
    245263                        }
    246264                }
    247265                for (auto cvq : qualifiersSingle) {
    248266                        for (auto is_vol : { "        ", "volatile" }) {
    249                                 cout << "forall(dtype DT) void  ?{}(" << cvq << type << " * " << is_vol << " &);" << endl;
     267                                cout << "forall(dtype DT) void ?{}(" << cvq << type << " * " << is_vol << " &);" << endl;
    250268                        }
    251269                        for (auto is_vol : { "        ", "volatile" }) {
     
    386404        cout << endl;
    387405}
     406
     407// Local Variables: //
     408// tab-width: 4 //
     409// End: //
Note: See TracChangeset for help on using the changeset viewer.