Changes in / [f2e482cb:8a5530c]
- Files:
-
- 17 edited
Legend:
- Unmodified
- Added
- Removed
-
doc/bibliography/pl.bib
rf2e482cb r8a5530c 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}},1931 1921 } 1932 1922 -
libcfa/src/fstream.cfa
rf2e482cb r8a5530c 10 10 // Created On : Wed May 27 17:56:53 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu May 16 08:33:28201913 // Update Count : 3 2812 // Last Modified On : Sat Apr 20 12:03:43 2019 13 // Update Count : 311 14 14 // 15 15 … … 27 27 #define IO_MSG "I/O error: " 28 28 29 void ?{}( ofstream & os, void * file ) {29 void ?{}( ofstream & os, void * file, bool sepDefault, bool sepOnOff, bool nlOnOff, bool prt, const char * separator, const char * tupleSeparator ) { 30 30 os.file = file; 31 os.sepDefault = true;32 os.sepOnOff = false;33 os.nlOnOff = true;34 os.prt = false;31 os.sepDefault = sepDefault; 32 os.sepOnOff = sepOnOff; 33 os.nlOnOff = nlOnOff; 34 os.prt = prt; 35 35 os.sawNL = false; 36 sepSet( os, " ");36 sepSet( os, separator ); 37 37 sepSetCur( os, sepGet( os ) ); 38 sepSetTuple( os, ", ");38 sepSetTuple( os, tupleSeparator ); 39 39 } 40 40 … … 104 104 105 105 void open( ofstream & os, const char * name, const char * mode ) { 106 FILE * 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 };112 (os){ file, true, false, true, false, " ", ", " }; 113 113 } // open 114 114 … … 152 152 } // fmt 153 153 154 static ofstream soutFile = { (FILE *)(&_IO_2_1_stdout_) };154 static ofstream soutFile = { (FILE *)(&_IO_2_1_stdout_), true, false, true, false, " ", ", " }; 155 155 ofstream & sout = soutFile; 156 static ofstream serrFile = { (FILE *)(&_IO_2_1_stderr_) };156 static ofstream serrFile = { (FILE *)(&_IO_2_1_stderr_), true, false, true, false, " ", ", " }; 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 only166 else setPrt( os, false ); // turn off167 }168 159 169 160 //--------------------------------------- -
libcfa/src/fstream.hfa
rf2e482cb r8a5530c 10 10 // Created On : Wed May 27 17:56:53 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu May 16 08:34:10201913 // Update Count : 15 712 // Last Modified On : Sat Apr 20 12:03:58 2019 13 // Update Count : 151 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 75 72 76 73 struct ifstream { -
libcfa/src/iostream.cfa
rf2e482cb r8a5530c 10 10 // Created On : Wed May 27 17:56:53 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon May 13 12:46:45201913 // Update Count : 6 5012 // Last Modified On : Sat Apr 20 14:02:43 2019 13 // Update Count : 617 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, modlf26 25 #include <complex.h> // creal, cimag 27 26 } … … 157 156 if ( sepPrt( os ) ) fmt( os, "%s", sepGetCur( os ) ); 158 157 fmt( os, "%g", f ); 159 float tempi;160 if ( isfinite( f ) && modff( f, &tempi ) == 0.0F ) fmt( os, "." ); // always print decimal point161 158 return os; 162 159 } // ?|? … … 168 165 if ( sepPrt( os ) ) fmt( os, "%s", sepGetCur( os ) ); 169 166 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 point173 167 return os; 174 168 } // ?|? … … 180 174 if ( sepPrt( os ) ) fmt( os, "%s", sepGetCur( os ) ); 181 175 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 point185 176 return os; 186 177 } // ?|? … … 191 182 ostype & ?|?( ostype & os, float _Complex fc ) { 192 183 if ( sepPrt( os ) ) fmt( os, "%s", sepGetCur( os ) ); 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" ); 184 fmt( os, "%g%+gi", crealf( fc ), cimagf( fc ) ); 200 185 return os; 201 186 } // ?|? … … 206 191 ostype & ?|?( ostype & os, double _Complex dc ) { 207 192 if ( sepPrt( os ) ) fmt( os, "%s", sepGetCur( os ) ); 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 ) ); 193 fmt( os, "%.*lg%+.*lgi", DBL_DIG, creal( dc ), DBL_DIG, cimag( dc ) ); 216 194 return os; 217 195 } // ?|? … … 222 200 ostype & ?|?( ostype & os, long double _Complex ldc ) { 223 201 if ( sepPrt( os ) ) fmt( os, "%s", sepGetCur( os ) ); 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 ) ); 202 fmt( os, "%.*Lg%+.*Lgi", LDBL_DIG, creall( ldc ), LDBL_DIG, cimagl( ldc ) ); 232 203 return os; 233 204 } // ?|? … … 523 494 } // ?|? 524 495 496 525 497 // manipulators 526 498 istype & ?|?( istype & is, istype & (* manip)( istype & ) ) { … … 529 501 530 502 istype & nl( istype & is ) { 531 fmt( is, "%*[ ^\n]" ); // ignore characters to newline503 fmt( is, "%*[ \t\f\n\r\v]" ); // ignore whitespace 532 504 return is; 533 505 } // nl -
libcfa/src/iostream.hfa
rf2e482cb r8a5530c 10 10 // Created On : Wed May 27 17:56:53 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat May 11 10:31:27201913 // Update Count : 23 212 // Last Modified On : Fri May 3 22:55:04 2019 13 // Update Count : 230 14 14 // 15 15 … … 190 190 191 191 // manipulators 192 istype & nlOn( istype & ); 193 istype & nlOff( istype & ); 192 194 istype & ?|?( istype &, istype & (*)( istype & ) ); 193 195 istype & nl( istype & is ); 194 istype & nlOn( istype & );195 istype & nlOff( istype & );196 196 } // distribution 197 197 … … 215 215 216 216 // Local Variables: // 217 // mode: c // 217 218 // tab-width: 4 // 218 219 // End: // -
src/Parser/lex.ll
rf2e482cb r8a5530c 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 y 15 21:25:27201913 * Update Count : 70 812 * Last Modified On : Wed Mar 13 14:54:30 2019 13 * Update Count : 707 14 14 */ 15 15 … … 265 265 fortran { KEYWORD_RETURN(FORTRAN); } 266 266 ftype { KEYWORD_RETURN(FTYPE); } // CFA 267 generator { KEYWORD_RETURN(GENERATOR); } // CFA268 267 _Generic { KEYWORD_RETURN(GENERIC); } // C11 269 268 goto { KEYWORD_RETURN(GOTO); } -
src/Parser/parser.yy
rf2e482cb r8a5530c 10 10 // Created On : Sat Sep 1 20:22:55 2001 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed May 15 21:25:27201913 // Update Count : 429 612 // Last Modified On : Mon Apr 15 15:02:56 2019 13 // Update Count : 4290 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 || typeSpec->type->kind == TypeData::Enum)) ) {175 if ( ! ( typeSpec->type && typeSpec->type->kind == TypeData::Aggregate ) ) { 176 176 stringstream ss; 177 177 typeSpec->type->print( ss ); … … 275 275 %token ENUM STRUCT UNION 276 276 %token EXCEPTION // CFA 277 %token GENERATOR COROUTINE MONITOR THREAD// CFA277 %token 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 // CFA799 { $$ = new ExpressionNode( build_keyword_cast( KeywordCastExpr::Coroutine, $5 ) ); }800 798 | '(' COROUTINE '&' ')' cast_expression // CFA 801 799 { $$ = new ExpressionNode( build_keyword_cast( KeywordCastExpr::Coroutine, $5 ) ); } … … 2063 2061 | EXCEPTION 2064 2062 { yyy = true; $$ = DeclarationNode::Exception; } 2065 | GENERATOR2066 { yyy = true; $$ = DeclarationNode::Coroutine; }2067 2063 | COROUTINE 2068 2064 { yyy = true; $$ = DeclarationNode::Coroutine; } -
tests/.expect/abs.txt
rf2e482cb r8a5530c 3 3 signed long int -65 abs 65 4 4 signed long long int -65 abs 65 5 float -65 . abs 65.6 double -65 . abs 65.7 long double -65 . abs 65.8 float _Complex -65 .-2.i abs 65.03089 double _Complex -65 .-2.i abs 65.030761951556410 long double _Complex -65 .-2.i abs 65.03076195155643425 float -65 abs 65 6 double -65 abs 65 7 long double -65 abs 65 8 float _Complex -65-2i abs 65.0308 9 double _Complex -65-2i abs 65.0307619515564 10 long double _Complex -65-2i abs 65.0307619515564342 -
tests/.expect/ato.txt
rf2e482cb r8a5530c 22 22 -123.456789012345679 -123.45678901234567890123456789 23 23 -123.456-123.456i -123.456-123.456i 24 0 .+0.i 2 324 0+0i 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
rf2e482cb r8a5530c 1 1 x:3+2i y:4+5i z:7+7i 2 x:3 .+2.i y:4.+5.i z:7.+7.i2 x:3+2i y:4+5i z:7+7i 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
rf2e482cb r8a5530c 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-2i 12 double _Complex -4.1-2i 13 long double _Complex -4.1-2i -
tests/.expect/math1.txt
rf2e482cb r8a5530c 1 fmod:1 . 1. 1. 1. 1. 1.2 remainder:-1 . -1. -1.1 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. -2.6 fdim:2 . 2. 2.4 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. 2.9 exp2:2 2 2 10 10 expm1:1.71828 1.71828182845905 1.71828182845904524 11 pow:1 . 1. 1.0.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
rf2e482cb r8a5530c 1 log:0 . 0. 0.0.346574+0.785398i 0.346573590279973+0.785398163397448i 0.346573590279972655+0.78539816339744831i2 log2:3 . 3. 3.3 log10:2 . 2. 2.1 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. 3.7 sqrt:1 . 1. 1.1.09868+0.45509i 1.09868411346781+0.455089860562227i 1.09868411346780997+0.455089860562227341i8 cbrt:3 . 3. 3.6 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. 0.0.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
rf2e482cb r8a5530c 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. 0.1.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 . 6.11 tgamma:6 6 6 -
tests/.expect/math4.txt
rf2e482cb r8a5530c 1 floor:1 . 1. 1.2 ceil:2 . 2. 2.3 trunc:3 . 3. 3.4 rint:2 . 2. 2.1 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. 4.10 round:2 . 2. 2.9 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. -1.15 copysign:-1 -1 -1 16 16 frexp:0.5 3 0.5 3 0.5 3 17 ldexp:8 . 8. 8.18 modf:2 . 0.3 2. 0.3 2.0.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. 16.23 scalbln:16 . 16. 16.22 scalbn:16 16 16 23 scalbln:16 16 16 -
tests/.expect/minmax.txt
rf2e482cb r8a5530c 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 4.20 double 4 . 3.1 max 4.21 long double 4 . 3.1 max 4.19 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
rf2e482cb r8a5530c 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.