Changeset 52f85e0
- Timestamp:
- Feb 10, 2016, 3:57:00 PM (8 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, ctor, deferred_resn, demangler, enum, forall-pointer-decay, gc_noraii, jacob/cs343-translation, jenkins-sandbox, master, memory, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, string, with_gc
- Children:
- 6ba0659, cce7872
- Parents:
- bd85400
- Location:
- src
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
src/ResolvExpr/CastCost.cc
rbd85400 r52f85e0 9 9 // Author : Richard C. Bilson 10 10 // Created On : Sun May 17 06:57:43 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Mon Oct 05 14:48:45 201513 // Update Count : 511 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue Feb 2 15:34:36 2016 13 // Update Count : 7 14 14 // 15 15 … … 69 69 PointerType *destAsPointer = dynamic_cast< PointerType* >( dest ); 70 70 if ( destAsPointer && basicType->isInteger() ) { 71 cost = Cost( 1, 0, 0 ); 71 //cost = Cost( 1, 0, 0 ); 72 cost = Cost::infinity; 72 73 } else { 73 74 ConversionCost::visit( basicType ); … … 87 88 cost = Cost( 0, 0, 1 ); 88 89 } else if ( castResult < 0 ) { 89 cost = Cost( 1, 0, 0 ); 90 cost = Cost::infinity; 91 //cost = Cost( 1, 0, 0 ); 90 92 } // if 91 93 } // if 92 94 } else if ( BasicType *destAsBasic = dynamic_cast< BasicType* >( dest ) ) { 93 95 if ( destAsBasic->isInteger() ) { 94 cost = Cost( 1, 0, 0 ); 96 //cost = Cost( 1, 0, 0 ); 97 cost = Cost::infinity; 95 98 } // if 96 99 } -
src/ResolvExpr/Resolver.cc
rbd85400 r52f85e0 10 10 // Created On : Sun May 17 12:17:01 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Jul 24 17:33:54 201513 // Update Count : 17 812 // Last Modified On : Tue Feb 9 21:57:52 2016 13 // Update Count : 179 14 14 // 15 15 … … 322 322 BasicType::SignedInt); 323 323 } else { 324 DeclarationWithType * decl = lookupId( n);324 DeclarationWithType * decl = lookupId( n ); 325 325 initContext = decl->get_type(); 326 326 } … … 344 344 if ( PointerType * pt = dynamic_cast< PointerType *>( newExpr->get_results().front() ) ) { 345 345 if ( isCharType( pt->get_base() ) ) { 346 // strip cast if we're initializing a char[] with a char *, e.g. 347 // char x[] = "hello"; 346 // strip cast if we're initializing a char[] with a char *, e.g. char x[] = "hello"; 348 347 CastExpr *ce = dynamic_cast< CastExpr * >( newExpr ); 349 348 singleInit->set_value( ce->get_arg() ); -
src/examples/sum.c
rbd85400 r52f85e0 10 10 // Created On : Wed May 27 17:56:53 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Feb 5 16:47:44201613 // Update Count : 1 3912 // Last Modified On : Sat Feb 6 11:57:42 2016 13 // Update Count : 182 14 14 // 15 15 … … 33 33 34 34 // Required to satisfy sumable as char does not have addition. 35 // const char 0; 36 // char ?+?( char op1, char op2 ) { return (int)op1 + op2; } // cast forces integer addition or recursion 37 // char ++?( char *op ) { *op += 1; return *op; } 38 // char ?++( char *op ) { char temp = *op; *op += 1; return temp; } 35 const char 0; 36 char ?+?( char t1, char t2 ) { return (int)t1 + t2; } // cast forces integer addition, otherwise recursion 37 char ?+=?( char *t1, char t2 ) { *t1 = *t1 + t2; return *t1; } 38 char ++?( char *t ) { *t += 1; return *t; } 39 char ?++( char *t ) { char temp = *t; *t += 1; return temp; } 39 40 40 41 int main( void ) { 41 42 const int low = 5, High = 15, size = High - low; 42 43 ofstream *sout = ofstream_stdout(); 43 #if 044 44 45 char s = 0, a[size]; 46 char v = low; 45 char s = 0, a[size], v = low; 47 46 for ( int i = 0; i < size; i += 1, v += 1 ) { 48 47 s += v; 49 48 a[i] = v; 50 } 49 } // for 51 50 sout | "sum from " | low | " to " | High | " is " 52 51 | (int)sum( size, a ) | ", check " | (int)s | endl; 53 52 54 int s = 0, a[size]; 55 int v = low; 53 int s = 0, a[size], v = low; 56 54 for ( int i = 0; i < size; i += 1, v += 1 ) { 57 55 s += (int)v; 58 56 a[i] = (int)v; 59 } 57 } // for 60 58 sout | "sum from " | low | " to " | High | " is " 61 59 | sum( size, (int *)a ) | ", check " | (int)s | endl; 62 60 63 float s = 0.0, a[size]; 64 float v = low / 10.0; 61 float s = 0.0, a[size], v = low / 10.0; 65 62 for ( int i = 0; i < size; i += 1, v += 0.1f ) { 66 63 s += (float)v; 67 64 a[i] = (float)v; 68 } 65 } // for 69 66 sout | "sum from " | low / 10.0 | " to " | High / 10.0 | " is " 70 67 | sum( size, (float *)a ) | ", check " | (float)s | endl; 71 #endif72 double s = 0, a[size];73 double v = low / 10.0;74 68 69 double s = 0, a[size], v = low / 10.0; 75 70 for ( int i = 0; i < size; i += 1, v += 0.1 ) { 76 71 s += (double)v; 77 72 a[i] = (double)v; 78 } 73 } // for 79 74 sout | "sum from " | low / 10.0 | " to " | High / 10.0 | " is " 80 75 | sum( size, (double *)a ) | ", check " | (double)s | endl; 81 76 82 // struct S { int i, j; } sarr[size]; 83 // struct S 0 = { 0, 0 }; 84 // struct S 1 = { 1, 1 }; 85 // S ?+?( S t1, S t2 ) { S s = { t1.i + t1.j, t2.i + t2.j }; return s; } 86 // S ?+=?( S *t1, S t2 ) { *t1 = *t1 + t2; return *t1; } 87 // S ++?( S *t ) { *t += 1; return *t; } 88 // S ?++( S *t ) { S temp = *t; *t += 1; return temp; } 89 // sum( size, sarr ); 77 struct S { int i, j; } 0 = { 0, 0 }, 1 = { 1, 1 }; 78 S ?+?( S t1, S t2 ) { S s = { t1.i + t2.i, t1.j + t2.j }; return s; } 79 S ?+=?( S *t1, S t2 ) { *t1 = *t1 + t2; return *t1; } 80 S ++?( S *t ) { *t += 1; return *t; } 81 S ?++( S *t ) { S temp = *t; *t += 1; return temp; } 82 ofstream * ?|?( ofstream * os, S v ) { return os | v.i | ' ' | v.j; } 83 84 S s = 0, a[size], v = { low, low }; 85 for ( int i = 0; i < size; i += 1, v += (S)1 ) { 86 s += (S)v; 87 a[i] = (S)v; 88 } // for 89 sout | "sum from " | low | " to " | High | " is " 90 | sum( size, (S *)a ) | ", check " | (S)s | endl; 90 91 } // main 91 92 -
src/libcfa/iostream.c
rbd85400 r52f85e0 10 10 // Created On : Wed May 27 17:56:53 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Feb 1 14:20:30201613 // Update Count : 6 012 // Last Modified On : Wed Feb 10 15:48:46 2016 13 // Update Count : 66 14 14 // 15 15 … … 19 19 #include <stdio.h> 20 20 #include <string.h> // strlen 21 #include <float.h> // DBL_DIG, LDBL_DIG 21 22 #include <complex.h> // creal, cimag 22 23 } … … 72 73 ostype * ?|?( ostype *os, double d ) { 73 74 char buffer[32]; 74 return write( os, buffer, sprintf( buffer, "% g", d ) );75 return write( os, buffer, sprintf( buffer, "%.*lg", DBL_DIG, d ) ); 75 76 } // ?|? 76 77 … … 78 79 ostype * ?|?( ostype *os, long double d ) { 79 80 char buffer[32]; 80 return write( os, buffer, sprintf( buffer, "% Lg", d ) );81 return write( os, buffer, sprintf( buffer, "%.*Lg", LDBL_DIG, d ) ); 81 82 } // ?|? 82 83 -
src/libcfa/stdlib.c
rbd85400 r52f85e0 10 10 // Created On : Thu Jan 28 17:10:29 2016 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Feb 5 15:41:24201613 // Update Count : 1 2812 // Last Modified On : Wed Feb 10 15:45:56 2016 13 // Update Count : 140 14 14 // 15 15 … … 23 23 #include <string.h> // memset 24 24 #include <malloc.h> // malloc_usable_size 25 #include <stdio.h>26 25 #include <math.h> // fabsf, fabs, fabsl 27 26 #include <complex.h> // _Complex_I, cabsf, cabs, cabsl … … 106 105 long int ato( const char * ptr ) { 107 106 long int li; 108 if ( sscanf( ptr, "%ld", &li ) == EOF ) {} ;// check return code107 if ( sscanf( ptr, "%ld", &li ) == EOF ) {} // check return code 109 108 return li; 110 109 } 111 110 unsigned long int ato( const char * ptr ) { 112 111 unsigned long int uli; 113 if ( sscanf( ptr, "%lu", &uli ) == EOF ) {} ;// check return code112 if ( sscanf( ptr, "%lu", &uli ) == EOF ) {} // check return code 114 113 return uli; 115 114 } 116 115 long long int ato( const char * ptr ) { 117 116 long long int lli; 118 if ( sscanf( ptr, "%lld", &lli ) == EOF ) {} ;// check return code117 if ( sscanf( ptr, "%lld", &lli ) == EOF ) {} // check return code 119 118 return lli; 120 119 } 121 120 unsigned long long int ato( const char * ptr ) { 122 121 unsigned long long int ulli; 123 if ( sscanf( ptr, "%llu", &ulli ) == EOF ) {} ;// check return code122 if ( sscanf( ptr, "%llu", &ulli ) == EOF ) {} // check return code 124 123 return ulli; 125 124 } 126 125 float ato( const char * ptr ) { 127 126 float f; 128 if ( sscanf( ptr, "%f", &f ) == EOF ) {} ;// check return code127 if ( sscanf( ptr, "%f", &f ) == EOF ) {} // check return code 129 128 return f; 130 129 } 131 130 double ato( const char * ptr ) { 132 131 double d; 133 if ( sscanf( ptr, "%lf", &d ) == EOF ) {} ;// check return code132 if ( sscanf( ptr, "%lf", &d ) == EOF ) {} // check return code 134 133 return d; 135 134 } 136 135 long double ato( const char * ptr ) { 137 136 long double ld; 138 printf( "FRED " ); 139 if ( sscanf( ptr, "%.32Lf", &ld ) == EOF ) {}; // check return code 137 if ( sscanf( ptr, "%Lf", &ld ) == EOF ) {} // check return code 140 138 return ld; 141 139 } 142 140 float _Complex ato( const char * ptr ) { 143 141 float re, im; 144 if ( sscanf( ptr, "%g%g ", &re, &im ) == EOF ) {};// check return code142 if ( sscanf( ptr, "%g%gi", &re, &im ) == EOF ) {} // check return code 145 143 return re + im * _Complex_I; 146 144 } 147 145 double _Complex ato( const char * ptr ) { 148 146 double re, im; 149 if ( sscanf( ptr, "% .16lg%.16lg", &re, &im ) == EOF ) {};// check return code147 if ( sscanf( ptr, "%lf%lfi", &re, &im ) == EOF ) {} // check return code 150 148 return re + im * _Complex_I; 151 149 } 152 150 long double _Complex ato( const char * ptr ) { 153 151 long double re, im; 154 if ( sscanf( ptr, "% .32Lg%.32Lg", &re, &im ) == EOF ) {};// check return code152 if ( sscanf( ptr, "%Lf%Lfi", &re, &im ) == EOF ) {} // check return code 155 153 return re + im * _Complex_I; 156 154 }
Note: See TracChangeset
for help on using the changeset viewer.