Changes in / [70a3e16:fba51ab]
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
doc/LaTeXmacros/lstlang.sty
r70a3e16 rfba51ab 8 8 %% Created On : Sat May 13 16:34:42 2017 9 9 %% Last Modified By : Peter A. Buhr 10 %% Last Modified On : Fri Apr 6 23:44:50 201811 %% Update Count : 2 010 %% Last Modified On : Tue Jan 8 14:40:33 2019 11 %% Update Count : 21 12 12 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 13 13 … … 114 114 _Alignas, _Alignof, __alignof, __alignof__, asm, __asm, __asm__, __attribute, __attribute__, 115 115 auto, _Bool, catch, catchResume, choose, _Complex, __complex, __complex__, __const, __const__, 116 coroutine, disable, dtype, enable, __extension__, exception, fallthrough, fallthru, finally,116 coroutine, disable, dtype, enable, exception, __extension__, fallthrough, fallthru, finally, 117 117 __float80, float80, __float128, float128, forall, ftype, _Generic, _Imaginary, __imag, __imag__, 118 118 inline, __inline, __inline__, __int128, int128, __label__, monitor, mutex, _Noreturn, one_t, or, -
doc/bibliography/pl.bib
r70a3e16 rfba51ab 330 330 contributer = {pabuhr@plg}, 331 331 author = {Nissim Francez}, 332 title = {Another Advantage of Key 332 title = {Another Advantage of Keyword Notation for Parameter Communication with Subprograms}, 333 333 journal = cacm, 334 334 volume = 20, … … 831 831 year = 2015, 832 832 howpublished= {\href{http://www.boost.org/doc/libs/1_61_0/libs/coroutine/doc/html/index.html} 833 {{http://www.boost.org/\-doc/\-libs/1\_61\_0/\-libs/\-coroutine/\-doc/\-html/\-index.html}}}, 833 {http://www.boost.org/\-doc/\-libs/1\_61\_0/\-libs/\-coroutine/\-doc/\-html/\-index.html}}, 834 optnote = {Accessed: 2016-09}, 835 } 836 837 @misc{BoostThreads, 838 keywords = {Boost Thread Library}, 839 contributer = {pabuhr@plg}, 840 author = {Anthony Williams and Vicente J. Botet Escriba}, 841 title = {Boost Thread Library}, 842 year = 2015, 843 howpublished= {\href{https://www.boost.org/doc/libs/1_61_0/doc/html/thread.html} 844 {https://\-www.boost.org/\-doc/\-libs/\-1\_61\_0/\-doc/\-html/\-thread.html}}, 834 845 optnote = {Accessed: 2016-09}, 835 846 } … … 2990 3001 } 2991 3002 3003 @manual{WindowsFibers, 3004 keywords = {threads, fibers}, 3005 contributer = {pabuhr@plg}, 3006 author = {Windows}, 3007 title = {Fibers}, 3008 organization= {Microsoft, Windows Development Center}, 3009 address = {\href{https://docs.microsoft.com/en-us/windows/desktop/ProcThread/fibers}{https://\-docs.microsoft.com/\-en-us/\-windows/\-desktop/\-ProcThread/\-fibers}}, 3010 year = 2018, 3011 } 3012 2992 3013 @inproceedings{F-bound, 2993 3014 keywords = {}, … … 3037 3058 } 3038 3059 3060 @manual{Folly, 3061 keywords = {Folly}, 3062 contributer = {pabuhr@plg}, 3063 author = {Folly}, 3064 title = {Facebook Open-source Library}, 3065 organization= {Facebook}, 3066 address = {\href{https://github.com/facebook/folly}{https://\-github.com/\-facebook/\-folly}}, 3067 year = 2018, 3068 } 3069 3039 3070 @manual{Fortran95, 3040 3071 keywords = {Fortran 95}, … … 3057 3088 address = {\href{https://www.iso.org/standard/50459.html}{https://\-www.iso.org/\-standard/\-50459.html}}, 3058 3089 year = 2010, 3090 } 3091 3092 @manual{Fortran18, 3093 keywords = {ISO/IEC Fortran 10}, 3094 contributer = {pabuhr@plg}, 3095 author = {Fortran18}, 3096 title = {Programming Languages -- {Fortran} Part 1:Base Language ISO/IEC 1539-1:2018}, 3097 edition = {4rd}, 3098 publisher = {International Standard Organization}, 3099 address = {\href{https://www.iso.org/standard/72320.html}{https://\-www.iso.org/\-standard/\-72320.html}}, 3100 year = 2018, 3059 3101 } 3060 3102 … … 3621 3663 year = {1964}, 3622 3664 publisher = {ACM} 3665 } 3666 3667 @phdthesis{Barghi18, 3668 keywords = {concurrency, user threads, actors}, 3669 contributer = {pabuhr@plg}, 3670 author = {Saman Barghi}, 3671 title = {Improving the Performance of User-level Runtime Systems for Concurrent Applications}, 3672 school = {School of Computer Science, University of Waterloo}, 3673 year = 2018, 3674 month = sep, 3675 optaddress = {Waterloo, Ontario, Canada, N2L 3G1}, 3676 note = {\href{https://uwspace.uwaterloo.ca/handle/10012/13935}{https://\-uwspace.uwaterloo.ca/\-handle/\-10012/\-13935}}, 3623 3677 } 3624 3678 … … 3948 4002 year = 2015, 3949 4003 edition = {{J}ava {SE} 8}, 4004 } 4005 4006 @manual{Java11, 4007 keywords = {Java SE 11}, 4008 contributer = {pabuhr@plg}, 4009 author = {James Gosling and Bill Joy and Guy Steele and Gilad Bracha and Alex Buckley and Daniel Smith}, 4010 title = {{Java} Language Specification}, 4011 publisher = {Oracle}, 4012 month = sep, 4013 year = 2018, 4014 edition = {{J}ava {SE} 11}, 4015 } 4016 4017 @manual{JDK1.1, 4018 keywords = {JDK 1.1}, 4019 contributer = {pabuhr@plg}, 4020 author = {{Multithreading Models}}, 4021 title = {JDK 1.1 for Solaris Developer's Guide}, 4022 publisher = {Oracle}, 4023 address = {\href{https://docs.oracle.com/cd/E19455-01/806-3461/6jck06gqk/index.html#ch2mt-41}{https://\-docs.oracle.com/\-cd/\-E19455-01/\-806-3461/\-6jck06gqk/\-index.html\#ch2mt-41}}, 4024 year = 2010, 3950 4025 } 3951 4026 … … 4129 4204 } 4130 4205 4206 @manual{libmill, 4207 keywords = {libmill}, 4208 contributer = {pabuhr@plg}, 4209 author = {libmill}, 4210 title = {{G}o-style concurrency in {C}, Version 1.18}, 4211 organization= {libmill}, 4212 address = {\href{http://libmill.org/documentation.html}{http://\-libmill.org/\-documentation.html}}, 4213 month = jan, 4214 year = 2017, 4215 } 4216 4131 4217 @book{Weissman67, 4132 4218 keywords = {lisp}, … … 4162 4248 pages = {161-169}, 4163 4249 note = {Proceedings of the {SIGPLAN}~'89 Conference on Programming Language Design and Implementation} 4250 } 4251 4252 @manual{Lua, 4253 keywords = {Lua}, 4254 contributer = {pabuhr@plg}, 4255 author = {Lua}, 4256 title = {Lua 5.3 Reference Manual}, 4257 address = {\href{https://www.lua.org/manual/5.3}{https://\-www.lua.org/\-manual/\-5.3}}, 4258 year = 2018, 4164 4259 } 4165 4260 … … 4491 4586 } 4492 4587 % editor = {Allen Kent and James G. Williams}, 4588 4589 @incollection{MPC, 4590 keywords = {user-level threading}, 4591 contributer = {pabuhr@plg}, 4592 author = {Marc P\'erache and Herv\'e Jourdren and Raymond Namyst}, 4593 title = {MPC: A Unified Parallel Runtime for Clusters of {NUMA} Machines}, 4594 booktitle = {Euro-Par 2008}, 4595 pages = {329-342}, 4596 publisher = {Springer}, 4597 address = {Berlin, Heidelberg}, 4598 year = 2008, 4599 volume = 5168, 4600 series = {Lecture Notes in Computer Science}, 4601 } 4493 4602 4494 4603 @manual{MPI, … … 5764 5873 address = {\href{https://www.iso.org/standard/64029.html}{https://\-www.iso.org/\-standard/\-64029.html}}, 5765 5874 year = 2014, 5875 } 5876 5877 @manual{C++17, 5878 keywords = {ISO/IEC C++ 17}, 5879 contributer = {pabuhr@plg}, 5880 key = {C++17}, 5881 title = {{C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}} Programming Language ISO/IEC 14882:2017}, 5882 edition = {5th}, 5883 publisher = {International Standard Organization}, 5884 address = {\href{https://www.iso.org/standard/68564.html}{https://\-www.iso.org/\-standard/\-68564.html}}, 5885 year = 2017, 5766 5886 } 5767 5887 … … 6029 6149 keywords = {Python}, 6030 6150 contributer = {pabuhr@plg}, 6031 title = {Python Reference Manual, Release 2.5},6032 author = {Guido van Rossum},6151 author = {Python}, 6152 title = {Python Language Reference, Release 3.7.2}, 6033 6153 organization= {Python Software Foundation}, 6034 month = sep, 6035 year = 2006, 6036 note = {Fred L. Drake, Jr., editor}, 6154 address = {\href{https://docs.python.org/3/reference/index.html}{https://\-docs.python.org/\-3/\-reference/\-index.html}}, 6155 year = 2018, 6037 6156 } 6038 6157 6039 6158 % Q 6159 6160 @inproceedings{Qthreads, 6161 keywords = {user-level threading}, 6162 author = {Kyle B. Wheeler and Richard C. Murphy and Douglas Thain}, 6163 title = {Qthreads: An API for Programming with Millions of Lightweight Threads}, 6164 booktitle = {International Symposium on Parallel and Distributed Processing}, 6165 organization= {IEEE}, 6166 address = {Miami, FL, USA}, 6167 month = apr, 6168 year = 2008, 6169 } 6040 6170 6041 6171 @article{Grossman06, … … 6072 6202 publisher = {ACM}, 6073 6203 address = {New York, NY, USA}, 6204 } 6205 6206 @manual{Quasar, 6207 keywords = {Quasar}, 6208 contributer = {pabuhr@plg}, 6209 author = {Quasar}, 6210 title = {Quasar Documentation, Release 0.8.0}, 6211 organization= {Parallel Universe}, 6212 address = {\href{http://docs.paralleluniverse.co/quasar}{http://\-docs.paralleluniverse.co/\-quasar}}, 6213 year = 2018, 6074 6214 } 6075 6215 … … 6323 6463 year = 2015, 6324 6464 note = {\href{https://doc.rust-lang.org/reference.html}{https://\-doc.rust-lang\-.org/\-reference.html}}, 6465 } 6466 6467 @manual{Ruby, 6468 keywords = {Ruby}, 6469 contributer = {pabuhr@plg}, 6470 author = {Ruby}, 6471 title = {Ruby Documentation, Release 2.6.0}, 6472 organization= {Python Software Foundation}, 6473 address = {\href{https://www.ruby-lang.org/en/documentation}{https://\-www.ruby-lang.org/\-en/\-documentation}}, 6474 year = 2018, 6325 6475 } 6326 6476 -
src/Parser/parser.yy
r70a3e16 rfba51ab 10 10 // Created On : Sat Sep 1 20:22:55 2001 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Feb 13 17:56:23 201913 // Update Count : 4 06412 // Last Modified On : Thu Feb 14 22:23:13 2019 13 // Update Count : 4217 14 14 // 15 15 … … 99 99 // distribute declaration_specifier across all declared variables, e.g., static, const, __attribute__. 100 100 DeclarationNode * cur = declList, * cl = (new DeclarationNode)->addType( specifier ); 101 //cur->addType( specifier ); 102 for ( cur = dynamic_cast< DeclarationNode * >( cur->get_next() ); cur != nullptr; cur = dynamic_cast< DeclarationNode * >( cur->get_next() ) ) { 101 for ( cur = dynamic_cast<DeclarationNode *>( cur->get_next() ); cur != nullptr; cur = dynamic_cast<DeclarationNode *>( cur->get_next() ) ) { 103 102 cl->cloneBaseType( cur ); 104 103 } // for 105 104 declList->addType( cl ); 106 // delete cl;107 105 return declList; 108 106 } // distAttr … … 201 199 if ( NameExpr * identifier = dynamic_cast<NameExpr *>(index->get_expr()) ) { 202 200 return forCtrl( type, new string( identifier->name ), start, compop, comp, inc ); 201 } else if ( CommaExpr * commaExpr = dynamic_cast<CommaExpr *>(index->get_expr()) ) { 202 if ( NameExpr * identifier = dynamic_cast<NameExpr *>(commaExpr->arg1 ) ) { 203 return forCtrl( type, new string( identifier->name ), start, compop, comp, inc ); 204 } else { 205 SemanticError( yylloc, "Expression disallowed. Only loop-index name allowed" ); return nullptr; 206 } // if 203 207 } else { 204 208 SemanticError( yylloc, "Expression disallowed. Only loop-index name allowed" ); return nullptr; … … 325 329 %type<en> argument_expression_list argument_expression default_initialize_opt 326 330 %type<ifctl> if_control_expression 327 %type<fctl> for_control_expression 331 %type<fctl> for_control_expression for_control_expression_list 328 332 %type<compop> inclexcl 329 333 %type<en> subrange … … 985 989 // labels cannot be identifiers 0 or 1 or ATTR_IDENTIFIER 986 990 identifier_or_type_name ':' attribute_list_opt statement 987 { 988 $$ = $4->add_label( $1, $3 ); 989 } 991 { $$ = $4->add_label( $1, $3 ); } 990 992 ; 991 993 … … 1003 1005 statement_decl 1004 1006 | statement_decl_list statement_decl 1005 { if ( $1 != 0 ) { $1->set_last( $2 ); $$ = $1; }}1007 { assert( $1 ); $1->set_last( $2 ); $$ = $1; } 1006 1008 ; 1007 1009 … … 1010 1012 { $$ = new StatementNode( $1 ); } 1011 1013 | EXTENSION declaration // GCC 1012 { 1013 distExt( $2 ); 1014 $$ = new StatementNode( $2 ); 1015 } 1014 { distExt( $2 ); $$ = new StatementNode( $2 ); } 1016 1015 | function_definition 1017 1016 { $$ = new StatementNode( $1 ); } 1018 1017 | EXTENSION function_definition // GCC 1019 { 1020 distExt( $2 ); 1021 $$ = new StatementNode( $2 ); 1022 } 1018 { distExt( $2 ); $$ = new StatementNode( $2 ); } 1023 1019 | statement 1024 1020 ; … … 1027 1023 statement 1028 1024 | statement_list_nodecl statement 1029 { if ( $1 != 0 ) { $1->set_last( $2 ); $$ = $1; }}1025 { assert( $1 ); $1->set_last( $2 ); $$ = $1; } 1030 1026 ; 1031 1027 … … 1139 1135 | DO statement WHILE '(' ')' ';' // CFA => do while( 1 ) 1140 1136 { $$ = new StatementNode( build_do_while( new ExpressionNode( build_constantInteger( *new string( "1" ) ) ), $2 ) ); } 1141 | FOR '(' push for_control_expression ')' statement pop1137 | FOR '(' push for_control_expression_list ')' statement pop 1142 1138 { $$ = new StatementNode( build_for( $4, $6 ) ); } 1143 1139 | FOR '(' ')' statement // CFA => for ( ;; ) … … 1145 1141 ; 1146 1142 1143 for_control_expression_list: 1144 for_control_expression 1145 | for_control_expression_list ':' for_control_expression 1146 { $$ = $3; } 1147 ; 1148 1147 1149 for_control_expression: 1148 comma_expression // CFA 1150 ';' comma_expression_opt ';' comma_expression_opt 1151 { $$ = new ForCtrl( (ExpressionNode * )nullptr, $2, $4 ); } 1152 | comma_expression ';' comma_expression_opt ';' comma_expression_opt 1153 { $$ = new ForCtrl( $1, $3, $5 ); } 1154 | declaration comma_expression_opt ';' comma_expression_opt // C99, declaration has ';' 1155 { $$ = new ForCtrl( $1, $2, $4 ); } 1156 | comma_expression // CFA 1149 1157 { $$ = forCtrl( $1, new string( DeclarationNode::anonymous.newName() ), new ExpressionNode( build_constantInteger( *new string( "0" ) ) ), 1150 1158 OperKinds::LThan, $1->clone(), new ExpressionNode( build_constantInteger( *new string( "1" ) ) ) ); } 1151 | co nstant_expression inclexcl constant_expression// CFA1159 | comma_expression inclexcl comma_expression // CFA 1152 1160 { $$ = forCtrl( $1, new string( DeclarationNode::anonymous.newName() ), $1->clone(), $2, $3, new ExpressionNode( build_constantInteger( *new string( "1" ) ) ) ); } 1153 | co nstant_expression inclexcl constant_expression '~' constant_expression // CFA1161 | comma_expression inclexcl comma_expression '~' comma_expression // CFA 1154 1162 { $$ = forCtrl( $1, new string( DeclarationNode::anonymous.newName() ), $1->clone(), $2, $3, $5 ); } 1155 1163 | comma_expression ';' comma_expression // CFA 1156 1164 { $$ = forCtrl( $3, $1, new ExpressionNode( build_constantInteger( *new string( "0" ) ) ), 1157 1165 OperKinds::LThan, $3->clone(), new ExpressionNode( build_constantInteger( *new string( "1" ) ) ) ); } 1158 | comma_expression ';' co nstant_expression inclexcl constant_expression // CFA1166 | comma_expression ';' comma_expression inclexcl comma_expression // CFA 1159 1167 { $$ = forCtrl( $3, $1, $3->clone(), $4, $5, new ExpressionNode( build_constantInteger( *new string( "1" ) ) ) ); } 1160 | comma_expression ';' co nstant_expression inclexcl constant_expression '~' constant_expression // CFA1168 | comma_expression ';' comma_expression inclexcl comma_expression '~' comma_expression // CFA 1161 1169 { $$ = forCtrl( $3, $1, $3->clone(), $4, $5, $7 ); } 1162 | comma_expression ';' comma_expression_opt ';' comma_expression_opt1163 { $$ = new ForCtrl( $1, $3, $5 ); }1164 | ';' comma_expression_opt ';' comma_expression_opt1165 { $$ = new ForCtrl( (ExpressionNode * )nullptr, $2, $4 ); }1166 | declaration comma_expression_opt ';' comma_expression_opt // C99, declaration has ';'1167 { $$ = new ForCtrl( $1, $2, $4 ); }1168 1170 ; 1169 1171
Note: See TracChangeset
for help on using the changeset viewer.