Changes in / [fba51ab:70a3e16]


Ignore:
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • doc/LaTeXmacros/lstlang.sty

    rfba51ab r70a3e16  
    88%% Created On       : Sat May 13 16:34:42 2017
    99%% Last Modified By : Peter A. Buhr
    10 %% Last Modified On : Tue Jan  8 14:40:33 2019
    11 %% Update Count     : 21
     10%% Last Modified On : Fri Apr  6 23:44:50 2018
     11%% Update Count     : 20
    1212%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1313
     
    114114                _Alignas, _Alignof, __alignof, __alignof__, asm, __asm, __asm__, __attribute, __attribute__,
    115115                auto, _Bool, catch, catchResume, choose, _Complex, __complex, __complex__, __const, __const__,
    116                 coroutine, disable, dtype, enable, exception, __extension__, fallthrough, fallthru, finally,
     116                coroutine, disable, dtype, enable, __extension__, exception, fallthrough, fallthru, finally,
    117117                __float80, float80, __float128, float128, forall, ftype, _Generic, _Imaginary, __imag, __imag__,
    118118                inline, __inline, __inline__, __int128, int128, __label__, monitor, mutex, _Noreturn, one_t, or,
  • doc/bibliography/pl.bib

    rfba51ab r70a3e16  
    330330    contributer = {pabuhr@plg},
    331331    author      = {Nissim Francez},
    332     title       = {Another Advantage of Keyword Notation for Parameter Communication with Subprograms},
     332    title       = {Another Advantage of Key word Notation for Parameter Communication with Subprograms},
    333333    journal     = cacm,
    334334    volume      = 20,
     
    831831    year        = 2015,
    832832    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}},
    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}},
     833                  {{http://www.boost.org/\-doc/\-libs/1\_61\_0/\-libs/\-coroutine/\-doc/\-html/\-index.html}}},
    845834    optnote     = {Accessed: 2016-09},
    846835}
     
    30012990}
    30022991
    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 
    30132992@inproceedings{F-bound,
    30142993    keywords    = {},
     
    30583037}
    30593038
    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 
    30703039@manual{Fortran95,
    30713040    keywords    = {Fortran 95},
     
    30883057    address     = {\href{https://www.iso.org/standard/50459.html}{https://\-www.iso.org/\-standard/\-50459.html}},
    30893058    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,
    31013059}
    31023060
     
    36633621    year        = {1964},
    36643622    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}},
    36773623}
    36783624
     
    40023948    year        = 2015,
    40033949    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,
    40253950}
    40263951
     
    42044129}
    42054130
    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 
    42174131@book{Weissman67,
    42184132    keywords    = {lisp},
     
    42484162    pages       = {161-169},
    42494163    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,
    42594164}
    42604165
     
    45864491}
    45874492%    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 }
    46024493
    46034494@manual{MPI,
     
    58735764    address     = {\href{https://www.iso.org/standard/64029.html}{https://\-www.iso.org/\-standard/\-64029.html}},
    58745765    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,
    58865766}
    58875767
     
    61496029    keywords    = {Python},
    61506030    contributer = {pabuhr@plg},
    6151     author      = {Python},
    6152     title       = {Python Language Reference, Release 3.7.2},
     6031    title       = {Python Reference Manual, Release 2.5},
     6032    author      = {Guido van Rossum},
    61536033    organization= {Python Software Foundation},
    6154     address     = {\href{https://docs.python.org/3/reference/index.html}{https://\-docs.python.org/\-3/\-reference/\-index.html}},
    6155     year        = 2018,
     6034    month       = sep,
     6035    year        = 2006,
     6036    note        = {Fred L. Drake, Jr., editor},
    61566037}
    61576038
    61586039% 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 }
    61706040
    61716041@article{Grossman06,
     
    62026072    publisher   = {ACM},
    62036073    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,
    62146074}
    62156075
     
    64636323    year        = 2015,
    64646324    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,
    64756325}
    64766326
  • src/Parser/parser.yy

    rfba51ab r70a3e16  
    1010// Created On       : Sat Sep  1 20:22:55 2001
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Feb 14 22:23:13 2019
    13 // Update Count     : 4217
     12// Last Modified On : Wed Feb 13 17:56:23 2019
     13// Update Count     : 4064
    1414//
    1515
     
    9999        // distribute declaration_specifier across all declared variables, e.g., static, const, __attribute__.
    100100        DeclarationNode * cur = declList, * cl = (new DeclarationNode)->addType( specifier );
    101         for ( cur = dynamic_cast<DeclarationNode *>( cur->get_next() ); cur != nullptr; cur = dynamic_cast<DeclarationNode *>( cur->get_next() ) ) {
     101        //cur->addType( specifier );
     102        for ( cur = dynamic_cast< DeclarationNode * >( cur->get_next() ); cur != nullptr; cur = dynamic_cast< DeclarationNode * >( cur->get_next() ) ) {
    102103                cl->cloneBaseType( cur );
    103104        } // for
    104105        declList->addType( cl );
     106//      delete cl;
    105107        return declList;
    106108} // distAttr
     
    199201        if ( NameExpr * identifier = dynamic_cast<NameExpr *>(index->get_expr()) ) {
    200202                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
    207203        } else {
    208204                SemanticError( yylloc, "Expression disallowed. Only loop-index name allowed" ); return nullptr;
     
    329325%type<en> argument_expression_list              argument_expression                     default_initialize_opt
    330326%type<ifctl> if_control_expression
    331 %type<fctl> for_control_expression              for_control_expression_list
     327%type<fctl> for_control_expression
    332328%type<compop> inclexcl
    333329%type<en> subrange
     
    989985                // labels cannot be identifiers 0 or 1 or ATTR_IDENTIFIER
    990986        identifier_or_type_name ':' attribute_list_opt statement
    991                 { $$ = $4->add_label( $1, $3 ); }
     987                {
     988                        $$ = $4->add_label( $1, $3 );
     989                }
    992990        ;
    993991
     
    10051003        statement_decl
    10061004        | statement_decl_list statement_decl
    1007                 { assert( $1 ); $1->set_last( $2 ); $$ = $1; }
     1005                { if ( $1 != 0 ) { $1->set_last( $2 ); $$ = $1; } }
    10081006        ;
    10091007
     
    10121010                { $$ = new StatementNode( $1 ); }
    10131011        | EXTENSION declaration                                                         // GCC
    1014                 { distExt( $2 ); $$ = new StatementNode( $2 ); }
     1012                {
     1013                        distExt( $2 );
     1014                        $$ = new StatementNode( $2 );
     1015                }
    10151016        | function_definition
    10161017                { $$ = new StatementNode( $1 ); }
    10171018        | EXTENSION function_definition                                         // GCC
    1018                 { distExt( $2 ); $$ = new StatementNode( $2 ); }
     1019                {
     1020                        distExt( $2 );
     1021                        $$ = new StatementNode( $2 );
     1022                }
    10191023        | statement
    10201024        ;
     
    10231027        statement
    10241028        | statement_list_nodecl statement
    1025                 { assert( $1 ); $1->set_last( $2 ); $$ = $1; }
     1029                { if ( $1 != 0 ) { $1->set_last( $2 ); $$ = $1; } }
    10261030        ;
    10271031
     
    11351139        | DO statement WHILE '(' ')' ';'                                        // CFA => do while( 1 )
    11361140                { $$ = new StatementNode( build_do_while( new ExpressionNode( build_constantInteger( *new string( "1" ) ) ), $2 ) ); }
    1137         | FOR '(' push for_control_expression_list ')' statement pop
     1141        | FOR '(' push for_control_expression ')' statement pop
    11381142                { $$ = new StatementNode( build_for( $4, $6 ) ); }
    11391143        | FOR '(' ')' statement                                                         // CFA => for ( ;; )
     
    11411145        ;
    11421146
    1143 for_control_expression_list:
    1144         for_control_expression
    1145         | for_control_expression_list ':' for_control_expression
    1146                 { $$ = $3; }
    1147         ;
    1148 
    11491147for_control_expression:
    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
     1148        comma_expression                                                                        // CFA
    11571149                { $$ = forCtrl( $1, new string( DeclarationNode::anonymous.newName() ), new ExpressionNode( build_constantInteger( *new string( "0" ) ) ),
    11581150                                                OperKinds::LThan, $1->clone(), new ExpressionNode( build_constantInteger( *new string( "1" ) ) ) ); }
    1159         | comma_expression inclexcl comma_expression            // CFA
     1151        | constant_expression inclexcl constant_expression      // CFA
    11601152                { $$ = forCtrl( $1, new string( DeclarationNode::anonymous.newName() ), $1->clone(), $2, $3, new ExpressionNode( build_constantInteger( *new string( "1" ) ) ) ); }
    1161         | comma_expression inclexcl comma_expression '~' comma_expression // CFA
     1153        | constant_expression inclexcl constant_expression '~' constant_expression // CFA
    11621154                { $$ = forCtrl( $1, new string( DeclarationNode::anonymous.newName() ), $1->clone(), $2, $3, $5 ); }
    11631155        | comma_expression ';' comma_expression                         // CFA
    11641156                { $$ = forCtrl( $3, $1, new ExpressionNode( build_constantInteger( *new string( "0" ) ) ),
    11651157                                                OperKinds::LThan, $3->clone(), new ExpressionNode( build_constantInteger( *new string( "1" ) ) ) ); }
    1166         | comma_expression ';' comma_expression inclexcl comma_expression // CFA
     1158        | comma_expression ';' constant_expression inclexcl constant_expression // CFA
    11671159                { $$ = forCtrl( $3, $1, $3->clone(), $4, $5, new ExpressionNode( build_constantInteger( *new string( "1" ) ) ) ); }
    1168         | comma_expression ';' comma_expression inclexcl comma_expression '~' comma_expression // CFA
     1160        | comma_expression ';' constant_expression inclexcl constant_expression '~' constant_expression // CFA
    11691161                { $$ = forCtrl( $3, $1, $3->clone(), $4, $5, $7 ); }
     1162        | comma_expression ';' comma_expression_opt ';' comma_expression_opt
     1163                { $$ = new ForCtrl( $1, $3, $5 ); }
     1164        | ';' comma_expression_opt ';' comma_expression_opt
     1165                { $$ = new ForCtrl( (ExpressionNode * )nullptr, $2, $4 ); }
     1166        | declaration comma_expression_opt ';' comma_expression_opt // C99, declaration has ';'
     1167                { $$ = new ForCtrl( $1, $2, $4 ); }
    11701168        ;
    11711169
Note: See TracChangeset for help on using the changeset viewer.