1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113
|
// Copyright (c) 2001, The Regents of the University of Calfornia.
// Produced at the Lawrence Livermore National Laboratory.
// Written by the Components Team <components@llnl.gov>
// UCRL-CODE-2002-054
// All rights reserved.
//
// This file is part of Babel. For more information, see
// http://www.llnl.gov/CASC/components/. Please read the COPYRIGHT file
// for Our Notice and the LICENSE file for the GNU Lesser General Public
// License.
//
// This program is free software; you can redistribute it and/or modify it
// under the terms of the GNU Lesser General Public License (as published by
// the Free Software Foundation) version 2.1 dated February 1999.
//
// This program is distributed in the hope that it will be useful, but
// WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
// conditions of the GNU Lesser General Public License for more details.
//
// You should have recieved a copy of the GNU Lesser General Public License
// along with this program; if not, write to the Free Software Foundation,
// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//
// For the purposes of this test, all in parameters must be as close to
// the complex number (pi + pi i) as their precision permits.
// All out parameters and return values will also be as close to the same
// number.
// bool == true
// char == '3'
// int == 3
// float == 3.1000
// double == 3.14000
//
//
// All inout parameters will be logically negated, negated, or complex conjugated
// as appropriate. inout chars are made uppercase if lowercase and vice versa
// Inout parameters may not be zero, exception of 'inout bool' which can be either.
// and 'inout char' which has the additional constraint that it must be a letter.
//
// If the input constraints are not met. zero is returned as an error message.
//
package Args version 1.0
{
// bool char int float double fcomplex dcomplex
class Cbool {
bool returnback ( );
bool passin( in bool b );
bool passout( out bool b );
bool passinout( inout bool b );
bool passeverywhere( in bool b1, out bool b2, inout bool b3 );
};
class Cchar {
char returnback ( );
bool passin( in char c );
bool passout( out char c );
bool passinout( inout char c );
char passeverywhere( in char c1, out char c2, inout char c3 );
};
class Cint {
int returnback ( );
bool passin( in int i );
bool passout( out int i );
bool passinout( inout int i );
int passeverywhere( in int i1, out int i2, inout int i3 );
};
class Clong
{
long returnback ( );
bool passin( in long l );
bool passout( out long l );
bool passinout( inout long l );
long passeverywhere( in long l1, out long l2, inout long l3 );
};
class Cfloat {
float returnback ( );
bool passin( in float f );
bool passout( out float f );
bool passinout( inout float f );
float passeverywhere( in float f1, out float f2, inout float f3 );
};
class Cdouble {
double returnback ( );
bool passin( in double d );
bool passout( out double d );
bool passinout( inout double d );
double passeverywhere( in double d1, out double d2, inout double d3 );
};
class Cfcomplex {
fcomplex returnback ( );
bool passin( in fcomplex c );
bool passout( out fcomplex c );
bool passinout( inout fcomplex c );
fcomplex passeverywhere( in fcomplex c1, out fcomplex c2, inout fcomplex c3 );
};
class Cdcomplex {
dcomplex returnback ( );
bool passin( in dcomplex c );
bool passout( out dcomplex c );
bool passinout( inout dcomplex c );
dcomplex passeverywhere( in dcomplex c1, out dcomplex c2, inout dcomplex c3 );
};
};
|