Changeset f2e482cb
- Timestamp:
- May 16, 2019, 10:59:00 AM (5 years ago)
- Branches:
- ADT, arm-eh, ast-experimental, cleanup-dtors, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, pthread-emulation, qualifiedEnum
- Children:
- 3d8d7a7, aa00626
- Parents:
- 8a5530c (diff), 7a54d67 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - Files:
-
- 17 edited
Legend:
- Unmodified
- Added
- Removed
-
doc/bibliography/pl.bib
r8a5530c rf2e482cb 1919 1919 year = 1965, 1920 1920 note = {Reprinted in \cite{Genuys68} pp. 43--112.} 1921 } 1922 1923 @manual{C++20Coroutine19, 1924 keywords = {coroutine}, 1925 contributer = {pabuhr@plg}, 1926 title = {Coroutines (C++20)}, 1927 organization= {cppreference.com}, 1928 month = apr, 1929 year = 2019, 1930 note = {\href{https://en.cppreference.com/w/cpp/language/coroutines}{https://\-en.cppreference.com/\-w/\-cpp/\-language/\-coroutines}}, 1921 1931 } 1922 1932 -
libcfa/src/fstream.cfa
r8a5530c rf2e482cb 10 10 // Created On : Wed May 27 17:56:53 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Apr 20 12:03:43201913 // Update Count : 3 1112 // Last Modified On : Thu May 16 08:33:28 2019 13 // Update Count : 328 14 14 // 15 15 … … 27 27 #define IO_MSG "I/O error: " 28 28 29 void ?{}( ofstream & os, void * file , bool sepDefault, bool sepOnOff, bool nlOnOff, bool prt, const char * separator, const char * tupleSeparator) {29 void ?{}( ofstream & os, void * file ) { 30 30 os.file = file; 31 os.sepDefault = sepDefault;32 os.sepOnOff = sepOnOff;33 os.nlOnOff = nlOnOff;34 os.prt = prt;31 os.sepDefault = true; 32 os.sepOnOff = false; 33 os.nlOnOff = true; 34 os.prt = false; 35 35 os.sawNL = false; 36 sepSet( os, separator);36 sepSet( os, " " ); 37 37 sepSetCur( os, sepGet( os ) ); 38 sepSetTuple( os, tupleSeparator);38 sepSetTuple( os, ", " ); 39 39 } 40 40 … … 104 104 105 105 void open( ofstream & os, const char * name, const char * mode ) { 106 FILE * file = fopen( name, mode );106 FILE * file = fopen( name, mode ); 107 107 #ifdef __CFA_DEBUG__ 108 108 if ( file == 0 ) { … … 110 110 } // if 111 111 #endif // __CFA_DEBUG__ 112 (os){ file , true, false, true, false, " ", ", "};112 (os){ file }; 113 113 } // open 114 114 … … 152 152 } // fmt 153 153 154 static ofstream soutFile = { (FILE *)(&_IO_2_1_stdout_) , true, false, true, false, " ", ", "};154 static ofstream soutFile = { (FILE *)(&_IO_2_1_stdout_) }; 155 155 ofstream & sout = soutFile; 156 static ofstream serrFile = { (FILE *)(&_IO_2_1_stderr_) , true, false, true, false, " ", ", "};156 static ofstream serrFile = { (FILE *)(&_IO_2_1_stderr_) }; 157 157 ofstream & serr = serrFile; 158 158 159 // static ofstream sexitFile = { (FILE *)(&_IO_2_1_stdout_) }; 160 // ofstream & sexit = sexitFile; 161 // static ofstream sabortFile = { (FILE *)(&_IO_2_1_stderr_) }; 162 // ofstream & sabort = sabortFile; 163 164 void nl( ofstream & os ) { 165 if ( getANL( os ) ) (ofstream &)(nl( os )); // implementation only 166 else setPrt( os, false ); // turn off 167 } 159 168 160 169 //--------------------------------------- -
libcfa/src/fstream.hfa
r8a5530c rf2e482cb 10 10 // Created On : Wed May 27 17:56:53 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Apr 20 12:03:58201913 // Update Count : 15 112 // Last Modified On : Thu May 16 08:34:10 2019 13 // Update Count : 157 14 14 // 15 15 … … 70 70 extern ofstream & sout, & serr; 71 71 72 // extern ofstream & sout, & serr, & sexit, & sabort; 73 // void nl( ofstream & os ); 74 72 75 73 76 struct ifstream { -
libcfa/src/iostream.cfa
r8a5530c rf2e482cb 10 10 // Created On : Wed May 27 17:56:53 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Apr 20 14:02:43201913 // Update Count : 6 1712 // Last Modified On : Mon May 13 12:46:45 2019 13 // Update Count : 650 14 14 // 15 15 … … 23 23 extern size_t strlen (const char *__s) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 24 24 #include <float.h> // DBL_DIG, LDBL_DIG 25 #include <math.h> // modff, modf, modlf 25 26 #include <complex.h> // creal, cimag 26 27 } … … 156 157 if ( sepPrt( os ) ) fmt( os, "%s", sepGetCur( os ) ); 157 158 fmt( os, "%g", f ); 159 float tempi; 160 if ( isfinite( f ) && modff( f, &tempi ) == 0.0F ) fmt( os, "." ); // always print decimal point 158 161 return os; 159 162 } // ?|? … … 165 168 if ( sepPrt( os ) ) fmt( os, "%s", sepGetCur( os ) ); 166 169 fmt( os, "%.*lg", DBL_DIG, d ); 170 // fmt( os, "%lg", d ); 171 double tempi; 172 if ( isfinite( d ) && modf( d, &tempi ) == 0.0D ) fmt( os, "." ); // always print decimal point 167 173 return os; 168 174 } // ?|? … … 174 180 if ( sepPrt( os ) ) fmt( os, "%s", sepGetCur( os ) ); 175 181 fmt( os, "%.*Lg", LDBL_DIG, ld ); 182 // fmt( os, "%Lg", ld ); 183 long double tempi; 184 if ( isfinite( ld ) && modfl( ld, &tempi ) == 0.0L ) fmt( os, "." ); // always print decimal point 176 185 return os; 177 186 } // ?|? … … 182 191 ostype & ?|?( ostype & os, float _Complex fc ) { 183 192 if ( sepPrt( os ) ) fmt( os, "%s", sepGetCur( os ) ); 184 fmt( os, "%g%+gi", crealf( fc ), cimagf( fc ) ); 193 float temp = crealf( fc ), tempi; 194 fmt( os, "%g", temp ); 195 if ( isfinite( temp ) && modff( temp, &tempi ) == 0.0F ) fmt( os, "." ); // always print decimal point 196 temp = cimagf( fc ); 197 fmt( os, "%+g", temp ); 198 if ( isfinite( temp ) && modff( temp, &tempi ) == 0.0F ) fmt( os, "." ); // always print decimal point 199 fmt( os, "i" ); 185 200 return os; 186 201 } // ?|? … … 191 206 ostype & ?|?( ostype & os, double _Complex dc ) { 192 207 if ( sepPrt( os ) ) fmt( os, "%s", sepGetCur( os ) ); 193 fmt( os, "%.*lg%+.*lgi", DBL_DIG, creal( dc ), DBL_DIG, cimag( dc ) ); 208 double temp = creal( dc ), tempi; 209 fmt( os, "%.*lg", DBL_DIG, temp ); 210 if ( isfinite( temp ) && modf( temp, &tempi ) == 0.0D ) fmt( os, "." ); // always print decimal point 211 temp = cimag( dc ); 212 fmt( os, "%+.*lg", DBL_DIG, temp ); 213 if ( isfinite( temp ) && modf( temp, &tempi ) == 0.0D ) fmt( os, "." ); // always print decimal point 214 fmt( os, "i" ); 215 // fmt( os, "%lg%+lgi", creal( dc ), cimag( dc ) ); 194 216 return os; 195 217 } // ?|? … … 200 222 ostype & ?|?( ostype & os, long double _Complex ldc ) { 201 223 if ( sepPrt( os ) ) fmt( os, "%s", sepGetCur( os ) ); 202 fmt( os, "%.*Lg%+.*Lgi", LDBL_DIG, creall( ldc ), LDBL_DIG, cimagl( ldc ) ); 224 long double temp = creall( ldc ), tempi; 225 fmt( os, "%.*Lg", LDBL_DIG, temp ); 226 if ( isfinite( temp ) && modfl( temp, &tempi ) == 0.0L ) fmt( os, "." ); // always print decimal point 227 temp = cimagl( ldc ); 228 fmt( os, "%+.*Lg", LDBL_DIG, cimagl( ldc ) ); 229 if ( isfinite( temp ) && modfl( temp, &tempi ) == 0.0L ) fmt( os, "." ); // always print decimal point 230 fmt( os, "i" ); 231 // fmt( os, "%Lg%+Lgi", creall( ldc ), cimagl( ldc ) ); 203 232 return os; 204 233 } // ?|? … … 494 523 } // ?|? 495 524 496 497 525 // manipulators 498 526 istype & ?|?( istype & is, istype & (* manip)( istype & ) ) { … … 501 529 502 530 istype & nl( istype & is ) { 503 fmt( is, "%*[ \t\f\n\r\v]" ); // ignore whitespace531 fmt( is, "%*[^\n]" ); // ignore characters to newline 504 532 return is; 505 533 } // nl -
libcfa/src/iostream.hfa
r8a5530c rf2e482cb 10 10 // Created On : Wed May 27 17:56:53 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri May 3 22:55:04201913 // Update Count : 23 012 // Last Modified On : Sat May 11 10:31:27 2019 13 // Update Count : 232 14 14 // 15 15 … … 190 190 191 191 // manipulators 192 istype & ?|?( istype &, istype & (*)( istype & ) ); 193 istype & nl( istype & is ); 192 194 istype & nlOn( istype & ); 193 195 istype & nlOff( istype & ); 194 istype & ?|?( istype &, istype & (*)( istype & ) );195 istype & nl( istype & is );196 196 } // distribution 197 197 … … 215 215 216 216 // Local Variables: // 217 // mode: c //218 217 // tab-width: 4 // 219 218 // End: // -
src/Parser/lex.ll
r8a5530c rf2e482cb 10 10 * Created On : Sat Sep 22 08:58:10 2001 11 11 * Last Modified By : Peter A. Buhr 12 * Last Modified On : Wed Ma r 13 14:54:30201913 * Update Count : 70 712 * Last Modified On : Wed May 15 21:25:27 2019 13 * Update Count : 708 14 14 */ 15 15 … … 265 265 fortran { KEYWORD_RETURN(FORTRAN); } 266 266 ftype { KEYWORD_RETURN(FTYPE); } // CFA 267 generator { KEYWORD_RETURN(GENERATOR); } // CFA 267 268 _Generic { KEYWORD_RETURN(GENERIC); } // C11 268 269 goto { KEYWORD_RETURN(GOTO); } -
src/Parser/parser.yy
r8a5530c rf2e482cb 10 10 // Created On : Sat Sep 1 20:22:55 2001 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Apr 15 15:02:56201913 // Update Count : 429 012 // Last Modified On : Wed May 15 21:25:27 2019 13 // Update Count : 4296 14 14 // 15 15 … … 173 173 DeclarationNode * fieldDecl( DeclarationNode * typeSpec, DeclarationNode * fieldList ) { 174 174 if ( ! fieldList ) { // field declarator ? 175 if ( ! ( typeSpec->type && typeSpec->type->kind == TypeData::Aggregate) ) {175 if ( ! ( typeSpec->type && (typeSpec->type->kind == TypeData::Aggregate || typeSpec->type->kind == TypeData::Enum) ) ) { 176 176 stringstream ss; 177 177 typeSpec->type->print( ss ); … … 275 275 %token ENUM STRUCT UNION 276 276 %token EXCEPTION // CFA 277 %token COROUTINE MONITOR THREAD// CFA277 %token GENERATOR COROUTINE MONITOR THREAD // CFA 278 278 %token OTYPE FTYPE DTYPE TTYPE TRAIT // CFA 279 279 %token SIZEOF OFFSETOF … … 677 677 // empty 678 678 { $$ = nullptr; } 679 | ' ?' // CFA, default parameter679 | '@' // CFA, default parameter 680 680 { SemanticError( yylloc, "Default parameter for argument is currently unimplemented." ); $$ = nullptr; } 681 681 // { $$ = new ExpressionNode( build_constantInteger( *new string( "2" ) ) ); } … … 796 796 { $$ = new ExpressionNode( build_cast( $2, $4 ) ); } 797 797 // keyword cast cannot be grouped because of reduction in aggregate_key 798 | '(' GENERATOR '&' ')' cast_expression // CFA 799 { $$ = new ExpressionNode( build_keyword_cast( KeywordCastExpr::Coroutine, $5 ) ); } 798 800 | '(' COROUTINE '&' ')' cast_expression // CFA 799 801 { $$ = new ExpressionNode( build_keyword_cast( KeywordCastExpr::Coroutine, $5 ) ); } … … 2061 2063 | EXCEPTION 2062 2064 { yyy = true; $$ = DeclarationNode::Exception; } 2065 | GENERATOR 2066 { yyy = true; $$ = DeclarationNode::Coroutine; } 2063 2067 | COROUTINE 2064 2068 { yyy = true; $$ = DeclarationNode::Coroutine; } -
tests/.expect/abs.txt
r8a5530c rf2e482cb 3 3 signed long int -65 abs 65 4 4 signed long long int -65 abs 65 5 float -65 abs 656 double -65 abs 657 long double -65 abs 658 float _Complex -65 -2i abs 65.03089 double _Complex -65 -2i abs 65.030761951556410 long double _Complex -65 -2i abs 65.03076195155643425 float -65. abs 65. 6 double -65. abs 65. 7 long double -65. abs 65. 8 float _Complex -65.-2.i abs 65.0308 9 double _Complex -65.-2.i abs 65.0307619515564 10 long double _Complex -65.-2.i abs 65.0307619515564342 -
tests/.expect/ato.txt
r8a5530c rf2e482cb 22 22 -123.456789012345679 -123.45678901234567890123456789 23 23 -123.456-123.456i -123.456-123.456i 24 0 +0i 2 324 0.+0.i 2 3 25 25 -123.456789012346+123.456789012346i -123.4567890123456+123.4567890123456i 26 26 123.456789012345679-123.456789012345679i 123.45678901234567890123456789-123.45678901234567890123456789i -
tests/.expect/complex.txt
r8a5530c rf2e482cb 1 1 x:3+2i y:4+5i z:7+7i 2 x:3 +2i y:4+5i z:7+7i2 x:3.+2.i y:4.+5.i z:7.+7.i 3 3 x:2.1+1.3i y:3.2+4.5i z:5.3+5.8i 4 4 x:2.1+1.3i y:3.2+4.5i z:5.3+5.8i -
tests/.expect/identity.txt
r8a5530c rf2e482cb 9 9 double 4.1 10 10 long double 4.1 11 float _Complex -4.1-2 i12 double _Complex -4.1-2 i13 long double _Complex -4.1-2 i11 float _Complex -4.1-2.i 12 double _Complex -4.1-2.i 13 long double _Complex -4.1-2.i -
tests/.expect/math1.txt
r8a5530c rf2e482cb 1 fmod:1 1 1 1 1 12 remainder:-1 -1 -11 fmod:1. 1. 1. 1. 1. 1. 2 remainder:-1. -1. -1. 3 3 remquo:7 0.0999999 7 0.1 7 0.0999999999999999999 4 div:7 , 0.2 7, 0.2 7, 0.25 fma:-2 -2 -26 fdim:2 2 24 div:7., 0.2 7., 0.2 7., 0.2 5 fma:-2. -2. -2. 6 fdim:2. 2. 2. 7 7 nan:nan nan nan 8 8 exp:2.71828 2.71828182845905 2.71828182845904524 1.46869+2.28736i 1.46869393991589+2.28735528717884i 1.46869393991588516+2.28735528717884239i 9 exp2:2 2 29 exp2:2. 2. 2. 10 10 expm1:1.71828 1.71828182845905 1.71828182845904524 11 pow:1 1 10.273957+0.583701i 0.273957253830121+0.583700758758615i -0.638110484918098871+0.705394566961838155i11 pow:1. 1. 1. 0.273957+0.583701i 0.273957253830121+0.583700758758615i -0.638110484918098871+0.705394566961838155i 12 12 16 \ 2 = 256 13 13 912673 256 64 -64 0 0 -
tests/.expect/math2.txt
r8a5530c rf2e482cb 1 log:0 0 00.346574+0.785398i 0.346573590279973+0.785398163397448i 0.346573590279972655+0.78539816339744831i2 log2:3 3 33 log10:2 2 21 log:0. 0. 0. 0.346574+0.785398i 0.346573590279973+0.785398163397448i 0.346573590279972655+0.78539816339744831i 2 log2:3. 3. 3. 3 log10:2. 2. 2. 4 4 log1p:0.693147 0.693147180559945 0.693147180559945309 5 5 ilogb:0 0 0 6 logb:3 3 37 sqrt:1 1 11.09868+0.45509i 1.09868411346781+0.455089860562227i 1.09868411346780997+0.455089860562227341i8 cbrt:3 3 36 logb:3. 3. 3. 7 sqrt:1. 1. 1. 1.09868+0.45509i 1.09868411346781+0.455089860562227i 1.09868411346780997+0.455089860562227341i 8 cbrt:3. 3. 3. 9 9 hypot:1.41421 1.4142135623731 1.41421356237309505 10 10 sin:0.841471 0.841470984807897 0.841470984807896507 1.29846+0.634964i 1.29845758141598+0.634963914784736i 1.29845758141597729+0.634963914784736108i … … 12 12 tan:1.55741 1.5574077246549 1.55740772465490223 0.271753+1.08392i 0.271752585319512+1.08392332733869i 0.271752585319511717+1.08392332733869454i 13 13 asin:1.5708 1.5707963267949 1.57079632679489662 0.666239+1.06128i 0.666239432492515+1.06127506190504i 0.666239432492515255+1.06127506190503565i 14 acos:0 0 00.904557-1.06128i 0.904556894302381-1.06127506190504i 0.904556894302381364-1.06127506190503565i14 acos:0. 0. 0. 0.904557-1.06128i 0.904556894302381-1.06127506190504i 0.904556894302381364-1.06127506190503565i 15 15 atan:0.785398 0.785398163397448 0.78539816339744831 1.01722+0.402359i 1.01722196789785+0.402359478108525i 1.01722196789785137+0.402359478108525094i 16 16 atan2:0.785398 0.785398163397448 0.78539816339744831 atan:0.785398 0.785398163397448 0.78539816339744831 -
tests/.expect/math3.txt
r8a5530c rf2e482cb 2 2 cosh:1.54308 1.54308063481524 1.54308063481524378 0.83373+0.988898i 0.833730025131149+0.988897705762865i 0.833730025131149049+0.988897705762865096i 3 3 tanh:0.761594 0.761594155955765 0.761594155955764888 1.08392+0.271753i 1.08392332733869+0.271752585319512i 1.08392332733869454+0.271752585319511717i 4 acosh:0 0 01.06128+0.904557i 1.06127506190504+0.904556894302381i 1.06127506190503565+0.904556894302381364i4 acosh:0. 0. 0. 1.06128+0.904557i 1.06127506190504+0.904556894302381i 1.06127506190503565+0.904556894302381364i 5 5 asinh:0.881374 0.881373587019543 0.881373587019543025 1.06128+0.666239i 1.06127506190504+0.666239432492515i 1.06127506190503565+0.666239432492515255i 6 6 atanh:inf inf inf 0.402359+1.01722i 0.402359478108525+1.01722196789785i 0.402359478108525094+1.01722196789785137i … … 9 9 lgamma:1.79176 1.79175946922805 1.791759469228055 10 10 lgamma:1.79176 1 1.79175946922805 1 1.791759469228055 1 11 tgamma:6 6 611 tgamma:6 6. 6. -
tests/.expect/math4.txt
r8a5530c rf2e482cb 1 floor:1 1 12 ceil:2 2 23 trunc:3 3 34 rint:2 2 21 floor:1. 1. 1. 2 ceil:2. 2. 2. 3 trunc:3. 3. 3. 4 rint:2. 2. 2. 5 5 rint:2 2 2 6 6 rint:2 2 2 7 7 lrint:2 2 2 8 8 llrint:2 2 2 9 nearbyint:4 4 410 round:2 2 29 nearbyint:4. 4. 4. 10 round:2. 2. 2. 11 11 round:2 2 2 12 12 round:2 2 2 13 13 lround:2 2 2 14 14 llround:2 2 2 15 copysign:-1 -1 -115 copysign:-1. -1. -1. 16 16 frexp:0.5 3 0.5 3 0.5 3 17 ldexp:8 8 818 modf:2 0.3 2 0.3 20.319 modf:2 , 0.3 2, 0.3 2, 0.317 ldexp:8. 8. 8. 18 modf:2. 0.3 2. 0.3 2. 0.3 19 modf:2., 0.3 2., 0.3 2., 0.3 20 20 nextafter:2 2 2 21 21 nexttoward:2 2 2 22 scalbn:16 16 1623 scalbln:16 16 1622 scalbn:16. 16. 16. 23 scalbln:16. 16. 16. -
tests/.expect/minmax.txt
r8a5530c rf2e482cb 6 6 signed long long int 4 3 min 3 7 7 unsigned long long int 4 3 min 3 8 float 4 3.1 min 3.19 double 4 3.1 min 3.110 long double 4 3.1 min 3.18 float 4. 3.1 min 3.1 9 double 4. 3.1 min 3.1 10 long double 4. 3.1 min 3.1 11 11 12 12 char z a max z … … 17 17 signed long long int 4 3 max 4 18 18 unsigned long long int 4 3 max 4 19 float 4 3.1 max 420 double 4 3.1 max 421 long double 4 3.1 max 419 float 4. 3.1 max 4. 20 double 4. 3.1 max 4. 21 long double 4. 3.1 max 4. -
tests/.expect/references.txt
r8a5530c rf2e482cb 35 35 3 36 36 3 37 3 9 { 1 , 7}, [1, 2, 3]37 3 9 { 1., 7. }, [1, 2, 3] 38 38 Destructing a Y 39 39 Destructing a Y
Note: See TracChangeset
for help on using the changeset viewer.