gen.cxx

Go to the documentation of this file.
00001 /**************************************************************************
00002  *
00003  * Copyright (C) 2006, Johns Hopkins University.
00004  * All rights reserved.
00005  *
00006  * Redistribution and use in source and binary forms, with or
00007  * without modification, are permitted provided that the following
00008  * conditions are met:
00009  *
00010  *   - Redistributions of source code must contain the above 
00011  *     copyright notice, this list of conditions, and the following
00012  *     disclaimer. 
00013  *
00014  *   - Redistributions in binary form must reproduce the above
00015  *     copyright notice, this list of conditions, and the following
00016  *     disclaimer in the documentation and/or other materials 
00017  *     provided with the distribution.
00018  *
00019  *   - Neither the names of the copyright holders nor the names of any
00020  *     of any contributors may be used to endorse or promote products
00021  *     derived from this software without specific prior written
00022  *     permission. 
00023  *
00024  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
00025  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
00026  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
00027  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
00028  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
00029  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
00030  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
00031  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
00032  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
00033  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
00034  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00035  *
00036  **************************************************************************/
00037 
00038 #include <iostream>
00039 
00040 using namespace std;
00041  
00042 int main()
00043 {
00044    size_t sizes[] = {8, 16, 32, 64};
00045    size_t nSizes = sizeof(sizes)/sizeof(size_t);
00046    
00047    for(size_t i=0; i < nSizes; i++) {
00048      size_t theSize = sizes[i];
00049      cout << "(definstance (Integral  int" << theSize
00050           << ") preludeID)" 
00051           << endl;     
00052      cout << "(definstance (Integral uint" << theSize
00053           << ") preludeID)" 
00054           << endl;     
00055    }
00056    cout << endl;
00057 
00058    for(size_t i=0; i < nSizes; i++) {
00059      size_t theSize = sizes[i];
00060      cout << "(definstance (Integral (mutable  int" << theSize
00061           << ")) preludeID)" 
00062           << endl;     
00063      cout << "(definstance (Integral (mutable uint" << theSize
00064           << ")) preludeID)" 
00065           << endl;          
00066    }
00067    cout << endl;
00068 
00069    for(size_t i=0; i < nSizes; i++) {
00070      size_t theSize = sizes[i];
00071      for(size_t j=1; j <= theSize; j++) {
00072        cout << "(definstance (Integral (bitfield  int" << theSize
00073             << " " << j << ")) preludeID)"
00074             << endl;
00075        cout << "(definstance (Integral (bitfield uint" << theSize
00076             << " " << j << ")) preludeID)"
00077             << endl;
00078      }
00079      cout << endl;
00080 
00081    }
00082    cout << endl;
00083 
00084    for(size_t i=0; i < nSizes; i++) {
00085      size_t theSize = sizes[i];
00086      for(size_t j=1; j <= theSize; j++) {
00087        cout << "(definstance (Integral (mutable (bitfield  int" << theSize
00088             << " " << j << "))) preludeID)"
00089             << endl;
00090        cout << "(definstance (Integral (mutable (bitfield uint" << theSize
00091             << " " << j << "))) preludeID)"
00092             << endl;
00093      }
00094      cout << endl;
00095    }   
00096    cout << endl;
00097 }

Generated on Sat Feb 4 23:59:30 2012 for BitC Runtime Library by  doxygen 1.4.7