Changeset fcc57ba


Ignore:
Timestamp:
Sep 25, 2018, 10:14:14 AM (6 years ago)
Author:
Thierry Delisle <tdelisle@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, no_list, persistent-indexer, pthread-emulation, qualifiedEnum
Children:
41cca44
Parents:
e523b07 (diff), ec71a50 (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.
Message:

Merge branch 'master' of plg.uwaterloo.ca:software/cfa/cfa-cc

Files:
3 edited

Legend:

Unmodified
Added
Removed
  • doc/bibliography/pl.bib

    re523b07 rfcc57ba  
    701701% B
    702702
     703@article{Michael13,
     704    contributer = {pabuhr@plg},
     705    author      = {Maged M. Michael},
     706    title       = {The Balancing Act of Choosing Nonblocking Features},
     707    journal     = cacm,
     708    volume      = 56,
     709    number      = 9,
     710    month       = sep,
     711    year        = 2013,
     712    pages       = {46--53},
     713    publisher   = {ACM},
     714    address     = {New York, NY, USA},
     715}
     716
    703717@incollection{beta:old,
    704718    keywords    = {beta, patterns, virtual types},
     
    908922
    909923@misc{Cforall,
     924    contributer = {pabuhr@plg},
    910925    key         = {Cforall},
    911     title       = {\textsf{C}{$\mathbf{\forall}$} Features},
    912     howpublished= {\url{https://plg.uwaterloo.ca/~cforall/features}},
     926    author      = {{\textsf{C}{$\mathbf{\forall}$} Features}},
     927    howpublished= {\href{https://plg.uwaterloo.ca/~cforall/features}{https://\-plg.uwaterloo.ca/\-~cforall/\-features}},
    913928    optnote     = {Accessed: 2018-01-01},
    914929}
     
    926941
    927942@misc{CFAStackEvaluation,
     943    contributer = {a3moss@plg},
    928944    author      = {Aaron Moss},
    929945    title       = {\textsf{C}$\mathbf{\forall}$ Stack Evaluation Programs},
     
    934950
    935951@article{Moss18,
    936     keywords    = {concurrency, C++},
     952    keywords    = {type systems, tuples, Cforall},
    937953    contributer = {pabuhr@plg},
    938954    author      = {Aaron Moss and Robert Schluntz and Peter A. Buhr},
     
    941957    month       = aug,
    942958    journal     = spe,
    943     note        = {http://dx.doi.org/10.1002/spe.2624},
     959    note        = {\href{http://dx.doi.org/10.1002/spe.2624}{http://\-dx.doi.org/\-10.1002/\-spe.2624}},
    944960}
    945961
     
    14171433}
    14181434
     1435@misc{NThreadCode13,
     1436    keywords    = {N-thread software-solution mutual exclusion},
     1437    contributer = {pabuhr@plg},
     1438    key         = {concurrent locking},
     1439    author      = {Peter A. Buhr and David Dice and Wim H. Hesselink},
     1440    title       = {concurrent-locking},
     1441    howpublished= {\href{https://github.com/pabuhr/concurrent-locking}{https://\-github.com/\-pabuhr/\-concurrent-locking}},
     1442    optnote     = {[Accessed April 2017]},
     1443}
     1444
    14191445@incollection{Reppy93,
    14201446    keywords    = {ML, concurrency, continuation passing},
     
    14901516    month       = dec,
    14911517    year        = 2017,
    1492     note        = {\href{http://plg.uwaterloo.ca/~usystem/pub/uSystem/u++-7.0.0.sh}{http://\-plg.\-uwaterloo.\-ca/\-$\sim$usystem/\-pub/\-uSystem/\-u++-7.0.0.sh}},
     1518    note        = {\href{https://plg.uwaterloo.ca/~usystem/pub/uSystem/uC++.pdf}{https://\-plg.uwaterloo.ca/\-~usystem/\-pub/\-uSystem/uC++.pdf}},
    14931519}
    14941520
     
    15571583}
    15581584
     1585@mastersthesis{Sun15,
     1586    author      = {Sun, Xianda},
     1587    title       = {Concurrent High-performance Persistent Hash Table In {J}ava},
     1588    school      = {School of Computer Science, University of Waterloo},
     1589    year        = 2015,
     1590    optaddress  = {Waterloo, Ontario, Canada, N2L 3G1},
     1591    note        = {\href{https://uwspace.uwaterloo.ca/handle/10012/10013}{https://\-uwspace.uwaterloo.ca/\-handle/\-10012/\-10013}},
     1592}
     1593
    15591594@book{Andrews91:book,
    15601595    keywords    = {concurrency},
     
    15811616
    15821617@mastersthesis{Delisle18,
     1618    keywords    = {concurrency, Cforall},
     1619    contributer = {pabuhr@plg},
    15831620    author      = {Thierry Delisle},
    15841621    title       = {Concurrency in \textsf{C}$\mathbf{\forall}$},
    15851622    school      = {School of Computer Science, University of Waterloo},
    15861623    year        = 2018,
    1587     address     = {Waterloo, Ontario, Canada, N2L 3G1},
     1624    optaddress  = {Waterloo, Ontario, Canada, N2L 3G1},
    15881625    note        = {\href{https://uwspace.uwaterloo.ca/handle/10012/12888}{https://\-uwspace.uwaterloo.ca/\-handle/\-10012/\-12888}},
     1626}
     1627
     1628@article{Delisle18b,
     1629    keywords    = {concurrency, Cforall},
     1630    contributer = {pabuhr@plg},
     1631    author      = {Thierry Delisle and Peter A. Buhr},
     1632    title       = {Concurrency in \textsf{C}$\mathbf{\forall}$},
     1633    year        = 2018,
     1634    journal     = spe,
     1635    pages       = {1-32},
     1636    note        = {submitted},
    15891637}
    15901638
     
    28652913    keywords    = {concurrency, mutual exclusion, performance experiment, software solutions},
    28662914    title       = {Fast mutual exclusion by the {T}riangle algorithm},
    2867     author      = {Wim H. Hesselink and Peter Buhr and David Dice},
     2915    author      = {Wim H. Hesselink and Peter A. Buhr and David Dice},
    28682916    journal     = ccpe,
    28692917    volume      = 30,
     
    28722920    month       = feb,
    28732921    publisher   = {John Wiley \& Sons},
    2874     note        = {\url{https://doi.org/10.1002/cpe.4183}}
     2922    note        = {\href{https://doi.org/10.1002/cpe.4183}{https://\-doi.org/\-10.1002/\-cpe.4183}}
    28752923}
    28762924
     
    32843332    edition     = {{S}imon {M}arlow},
    32853333    year        = 2010,
    3286     note        = {\href{https://haskell.org/definition/haskell2010.pdf}{https://haskell.org/\-definition/\-haskell2010.pdf}},
     3334    note        = {\href{https://haskell.org/definition/haskell2010.pdf}{https://\-haskell.org/\-definition/\-haskell2010.pdf}},
    32873335}
    32883336
     
    33583406}
    33593407
    3360 @article{Hesselink17,
     3408@article{Hesselink17b,
    33613409    keywords    = {concurrency, mutual exclusion, performance experiment, software solutions},
    33623410    title       = {High-Contention Mutual Exclusion by Elevator Algorithms},
    3363     author      = {Peter Buhr and David Dice and Wim H. Hesselink},
     3411    author      = {Peter A. Buhr and David Dice and Wim H. Hesselink},
    33643412    journal     = ccpe,
    33653413    volume      = 30,
     
    33683416    month       = sep,
    33693417    publisher   = {John Wiley \& Sons},
    3370     note        = {\url{https://doi-org.proxy.lib.uwaterloo.ca/10.1002/cpe.4475}}
     3418    note        = {\href{https://doi-org.proxy.lib.uwaterloo.ca/10.1002/cpe.4475}{https://\-doi-org.proxy.lib.uwaterloo.ca/\-10.1002/\-cpe.4475}},
    33713419}
    33723420
     
    38463894
    38473895% K
     3896
     3897@inproceedings{Buhr96b,
     3898    author      = {Peter A. Buhr and Martin Karsten and Jun Shih},
     3899    title       = {{\small\textsf{KDB}}: A Multi-threaded Debugger for Multi-threaded Applications},
     3900    booktitle   = {Proceedings of SPDT'96: SIGMETRICS Symposium on Parallel and Distributed Tools},
     3901    publisher   = {ACM Press},
     3902    address     = {Philadelphia, Pennsylvania, U.S.A.},
     3903    month       = may,
     3904    year        = 1996,
     3905    pages       = {80-87},
     3906}
    38483907
    38493908@article{Duggan96,
     
    45344593% N
    45354594
     4595@techreport{Drepper03,
     4596    keywords    = {NPTL, threading, 1:1 model},
     4597    contributer = {pabuhr@plg},
     4598    author      = {Ulrich Drepper and Ingo Molnar},
     4599    title       = {The Native POSIX Thread Library for Linux},
     4600    institution = {Red Hat},
     4601    year        = 2003,
     4602    note        = {\href{http://www.cs.utexas.edu/~witchel/372/lectures/POSIX_Linux_Threading.pdf}{http://www.cs.utexas.edu/\-$\sim$witchel/\-372/\-lectures/\-POSIX\_Linux\_Threading.pdf}},
     4603}
     4604
    45364605@article{Haddon77,
    45374606    keywords    = {monitors, nested monitor calls},
     
    46574726    volume      = 9,
    46584727    pages       = {157-164},
     4728}
     4729
     4730@misc{nginx,
     4731    key         = {nginx},
     4732    author      = {{NGINX}},
     4733    howpublished= {\href{https://www.nginx.com}{https://\-www.nginx.com}},
    46594734}
    46604735
     
    47694844@misc{obj-c-book,
    47704845    keywords    = {objective-c},
    4771     contributor = {a3moss@uwaterloo.ca},
     4846    contributor = {pabuhr@plg},
    47724847    key         = {Objective-C},
    4773     title       = {Objective-C},
     4848    author      = {Objective-C},
    47744849    publisher   = {Apple Inc.},
    4775     year        = 2015,
    4776     howpublished= {\href{https://developer.apple.com/library/content/documentation/General/Conceptual/DevPedia-CocoaCore/ObjectiveC.html}{https://developer.apple.com/\-library/\-content/\-documentation/\-General/\-Conceptual/\-DevPedia-\-CocoaCore/\-ObjectiveC.html}},
     4850    year        = 2014,
     4851    howpublished= {\href{https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC}{https://\-developer.apple.com/\-library/archive/\-documentation/\-Cocoa/\-Conceptual/\-ProgrammingWithObjectiveC}},
    47774852    optnote     = {Accessed: 2018-03}
    47784853}
     
    47844859    title       = {{X}code 7 Release Notes},
    47854860    year        = 2015,
    4786     howpublished= {\href{https://developer.apple.com/library/content/documentation/Xcode/Conceptual/RN-Xcode-Archive/Chapters/xc7_release_notes.html}{https://developer.apple.com/\-library/\-content/\-documentation/\-Xcode/\-Conceptual/\-RN-Xcode-Archive/\-Chapters/\-xc7\_release\_notes.html}},
     4861    howpublished= {\href{https://developer.apple.com/library/content/documentation/Xcode/Conceptual/RN-Xcode-Archive/Chapters/xc7_release_notes.html}{https://\-developer.apple.com/\-library/\-content/\-documentation/\-Xcode/\-Conceptual/\-RN-Xcode-Archive/\-Chapters/\-xc7\_release\_notes.html}},
    47874862    optnote     = {Accessed: 2017-04}
    47884863}
     
    52845359}
    52855360
     5361@misc{perf,
     5362    contributer = {pabuhr@plg},
     5363    key         = {perf},
     5364    author      = {perf},
     5365    howpublished= {\href{https://perf.wiki.kernel.org/index.php/Tutorial}{https://\-perf.wiki.kernel.org/\-index.php/\-Tutorial}},
     5366}
     5367
     5368@misc{Verch12,
     5369    contributer = {pabuhr@plg},
     5370    author      = {Shaun Verch},
     5371    title       = {Performance Analysis of 64-Bit Capriccio},
     5372    month       = may,
     5373    year        = 2012,
     5374    howpublished= {\href{http://cs.brown.edu/research/pubs/theses/masters/2012/verch.pdf}{http://cs.brown.edu/\-research/\-pubs/\-theses/\-masters/\-2012/\-verch.pdf}},
     5375    optnote     = {Accessed: 2013-10-4}
     5376}
     5377
    52865378@article{Anderson90,
    52875379    keywords    = {spin locks, back off, performance},
     
    55045596    note        = {Proceedings of the OOPSLA'89 Conference, Oct. 1--6, 1989, New Orleans, Lousiana},
    55055597    abstract    = {},
     5598}
     5599
     5600@inproceedings{Buhr98,
     5601    keywords    = {profiling, monitoring, visualization},
     5602    contributer = {pabuhr@plg},
     5603    author      = {Peter A. Buhr and Robert Denda},
     5604    title       = {{$\mu$Profiler} : Profiling User-Level Threads in a Shared-Memory Programming Environment},
     5605    booktitle   = {Proceedings of the Second International Symposium on Computing in Object-Oriented Parallel Environments (ISCOPE'98)},
     5606    series      = {Lecture Notes in Computer Science},
     5607    publisher   = {Springer-Verlag},
     5608    volume      = 1505,
     5609    opteditor   = {Dennis Caromel and Rodney R. Oldehoeft and Marydell Tholburn},
     5610    address     = {Santa Fe, New Mexico, U.S.A.},
     5611    month       = dec,
     5612    year        = 1998,
     5613    pages       = {159-166},
    55065614}
    55075615
     
    59656073}
    59666074
     6075@article{Ronsse03,
     6076    keywords    = {profiling, replay},
     6077    contributer = {pabuhr@plg},
     6078    author      = {Michiel Ronsse and De Bosschere, Koen and Mark Christiaens and Jacques Chassin de Kergommeaux and Dieter Kranzlm\"{u}ller},
     6079    title       = {Record/Replay for Nondeterministic Program Executions},
     6080    journal     = cacm,
     6081    month       = sep,
     6082    year        = 2003,
     6083    volume      = 46,
     6084    number      = 9,
     6085    pages       = {62-67},
     6086}
     6087
    59676088@article{Robinson48,
    59686089    keywords    = {recursion, Ackermann function},
     
    60036124}
    60046125
     6126@mastersthesis{Schuster99,
     6127    author      = {Oliver Schuster},
     6128    title       = {Replay of Concurrent Shared-Memory Programs},
     6129    school      = {Universit\"at Mannheim},
     6130    address     = {Mannheim, Deutschland},
     6131    year        = 1999,
     6132    month       = apr,
     6133    type        = {Diplomarbeit},
     6134    note        = {\href{ftp://plg.uwaterloo.ca/pub/theses/SchusterThesis.ps.gz}{ftp://\-plg.uwaterloo.ca/\-pub/\-theses/\-SchusterThesis.ps.gz}},
     6135}
     6136
    60056137@article{Euclid,
    60066138    keywords    = {Euclid},
     
    60346166    school      = {School of Computer Science, University of Waterloo},
    60356167    year        = 2017,
    6036     address     = {Waterloo, Ontario, Canada, N2L 3G1},
     6168    optaddress  = {Waterloo, Ontario, Canada, N2L 3G1},
    60376169    note        = {\href{https://uwspace.uwaterloo.ca/handle/10012/11830}{https://\-uwspace.uwaterloo.ca/\-handle/\-10012/\-11830}},
    60386170}
     
    68616993    contributer = {pabuhr@plg},
    68626994    key         = {TIOBE Index},
    6863     title       = {{TIOBE} Index},
     6995    author      = {{TIOBE Index}},
    68646996    howpublished= {\href{http://www.tiobe.com/tiobe_index}{http://\-www.tiobe.com/\-tiobe\_index}},
    68656997    optnote     = {Accessed: 2018-09},
     
    70017133    year        = 1980
    70027134}
     7135
     7136@misc{TraceCompass,
     7137    contributer = {pabuhr@plg},
     7138    key         = {Trace Compass},
     7139    author      = {{T}race {C}ompass},
     7140    howpublished= {\href{https://projects.eclipse.org/proposals/trace-compass}{https://\-projects.eclipse.org/\-proposals/\-trace-compass}},
     7141}
    70037142 
    70047143@article{Leroy00,
     
    71367275    title       = {Usability Challenges in Exception Handling},
    71377276    booktitle   = {5th International Workshop on Exception Handling (WEH)},
    7138     organization= {16th International Symposium on the Foundations of Software Engineering (FSE 16)},
     7277    optorganization= {16th International Symposium on the Foundations of Software Engineering (FSE 16)},
    71397278    address     = {Zurich, Switzerland},
    71407279    month       = jun,
     
    72807419}
    72817420
     7421@inproceedings{vonBehren03,
     7422    keywords    = {threads, events, web server},
     7423    contributer = {pabuhr@plg},
     7424    author      = {Rob von Behren and Jeremy Condit and Eric Brewer},
     7425    title       = {Why Events Are a Bad Idea (for high-concurrency servers)},
     7426    booktitle   = {HotOS IX: The 9th Workshop on Hot Topics in Operating Systems},
     7427    publisher   = {USENIX Association},
     7428    address     = {Lihue, Hawaii, U.S.A.},
     7429    month       = may,
     7430    year        = 2003,
     7431    pages       = {19-24},
     7432}
     7433
    72827434@techreport{Moss90,
    72837435    keywords    = {Swizzling, database},
     
    73447496    year        = 1986,
    73457497    editor      = {Norman Meyrowitz},
    7346     publisher   = sigplan # " 21(11)",
     7498    publisher   = sigplan,
    73477499    organization= {Association for Computing Machinery},
    73487500    address     = {Portland, Oregon},
    7349     month       = sep # { 29}
     7501    month       = sep,
    73507502}
    73517503
     
    73567508    year        = 1987,
    73577509    editor      = {Norman Meyrowitz},
    7358     publisher   = sigplan # " 22(12)",
     7510    publisher   = sigplan,
    73597511    organization= {Association for Computing Machinery},
    73607512    address     = {Orlando, Florida},
    7361     month       = oct # { 4--8}
     7513    month       = oct,
    73627514}
    73637515
     
    73687520    year        = 1988,
    73697521    editor      = {Norman Meyrowitz},
    7370     publisher   = sigplan # " 23(11)",
     7522    publisher   = sigplan,
    73717523    organization= {Association for Computing Machinery},
    73727524    address     = {San Diego, California},
    7373     month       = sep # { 25--30}
     7525    month       = sep,
    73747526}
    73757527
     
    73807532    year        = 1989,
    73817533    editor      = {Norman Meyrowitz},
    7382     publisher   = sigplan # " 24(10)",
     7534    publisher   = sigplan,
    73837535    organization= {Association for Computing Machinery},
    73847536    address     = {New Orleans, Louisiana},
    7385     month       = oct # { 1--6}
     7537    month       = oct,
    73867538}
    73877539
     
    73927544    year        = 1990,
    73937545    editor      = {Norman Meyrowitz},
    7394     publisher   = sigplan # " 25(10)",
     7546    publisher   = sigplan,
    73957547    organization= {Association for Computing Machinery},
    73967548    address     = {Ottawa, Canada},
    7397     month       = oct # { 21--25}
     7549    month       = oct,
    73987550}
    73997551
     
    74047556    year        = 1991,
    74057557    editor      = {Andreas Paepcke},
    7406     publisher   = sigplan # " 26(11)",
     7558    publisher   = sigplan,
    74077559    organization= {Association for Computing Machinery},
    74087560    address     = {Phoenix, Arizona},
    7409     month       = oct # { 6--11}
    7410 }
     7561    month       = oct,
     7562}
  • src/CodeTools/ResolvProtoDump.cc

    re523b07 rfcc57ba  
    196196                        }
    197197                       
    198                         // default to just name
    199                         ss << pre << name;
     198                        // default to just name, with first character in lowercase
     199                        ss << pre
     200                           << (char)std::tolower( static_cast<unsigned char>(name[0]) )
     201                           << (name.c_str() + 1);
    200202                }
    201203
    202204                /// ensures type inst names are uppercase
    203205                static void ti_name( const std::string& name, std::stringstream& ss ) {
    204                         ss << (char)std::toupper( static_cast<unsigned char>(name[0]) )
    205                            << (name.c_str() + 1);
     206                        unsigned i = 0;
     207                        while ( i < name.size() && name[i] == '_' ) { ++i; }
     208                        if ( i == name.size() ) {
     209                                ss << "Anon";
     210                                return;
     211                        }
     212                        ss << (char)std::toupper( static_cast<unsigned char>(name[i]) )
     213                           << (name.c_str() + i + 1);
    206214                }
    207215
     
    219227                        void previsit( BasicType* bt ) { ss << (int)bt->get_kind(); }
    220228
    221                         // pointers represented as generic type
    222                         // TODO except pointer to function
    223                         void previsit( PointerType* ) { ss << "#$ptr<"; ++depth; }
    224                         void postvisit( PointerType* ) { --depth; ss << '>'; }
    225 
    226                         // arrays represented as generic type
     229                        // pointers (except function pointers) represented as generic type
     230                        void previsit( PointerType* pt ) {
     231                                if ( ! dynamic_cast<FunctionType*>(pt->base) ) { ss << "#$ptr<"; ++depth; }
     232                        }
     233                        void postvisit( PointerType* pt ) {
     234                                if ( ! dynamic_cast<FunctionType*>(pt->base) ) { --depth; ss << '>'; }
     235                        }
     236
     237                        // arrays represented as generic pointers
    227238                        void previsit( ArrayType* at ) {
    228                                 ss << "#$arr<";
     239                                ss << "#$ptr<";
    229240                                ++depth;
    230241                                at->base->accept( *visitor );
     
    244255                        }
    245256
    246                         // encode function type as a 2-param generic type
    247                         // TODO handle forall functions
     257                        // print function types using prototype syntax
    248258                        void previsit( FunctionType* ft ) {
    249                                 ss << "#$fn<";
     259                                ss << '[';
    250260                                ++depth;
    251                                 buildAsTuple( *visitor, from_decls( ft->returnVals ), ss );
    252                                 ss << ' ';
    253                                 buildAsTuple( *visitor, from_decls( ft->parameters ), ss );
     261                                build( *visitor, from_decls( ft->returnVals ), ss, preceded );
     262                                ss << " : ";
     263                                build( *visitor, from_decls( ft->parameters ), ss, terminated );
    254264                                --depth;
    255                                 ss << '>';
     265                                ss << ']';
    256266                                visit_children = false;
    257267                        }
     
    341351                        }
    342352
    343                         // print variable declaration as zero-arg function
     353                        // print variable declaration in prototype syntax
    344354                        PassVisitor<TypePrinter> printTy{ closed, ss };
    345355                        norefs->accept( printTy );
    346                         ss << ' ';
     356                        ss << " &";
    347357                        rp_name( name, ss );
    348358                }
     
    381391                                : closed(closed), ss(ss) {}
    382392
    383                         /// Names handled as nullary function calls
     393                        /// Names handled as name expressions
    384394                        void previsit( NameExpr* expr ) {
     395                                ss << '&';
    385396                                rp_name( expr->name, ss );
    386                                 ss << "()";
    387397                        }
    388398
     
    416426                        }
    417427
     428                        /// Already-resolved calls skipped
     429                        void previsit( ApplicationExpr* ) {
     430                                visit_children = false;
     431                        }
     432
    418433                        /// Address-of handled as operator
    419434                        void previsit( AddressExpr* expr ) {
     
    585600
    586601                void previsit( FunctionDecl *decl ) {
     602                        // skip decls with ftype parameters
     603                        for ( TypeDecl* tyvar : decl->type->forall ) {
     604                                if ( tyvar->get_kind() == TypeDecl::Ftype ) {
     605                                        visit_children = false;
     606                                        return;
     607                                }
     608                        }
     609
    587610                        // add function as declaration
    588611                        std::stringstream ss;
  • tools/cfa.nanorc

    re523b07 rfcc57ba  
    22## WIP
    33
    4 syntax "cfa" "\.cfa"
     4syntax "cfa" "\.(c|h)fa"
    55
    66# Macros
     
    99# Types
    1010color green "\<(forall|trait|(o|d|f|t)type|mutex|_Bool|volatile|virtual)\>"
    11 color green "\<(float|double|bool|char|int|short|long|sizeof|enum|void|auto)\>"
    12 color green "\<(static|const|struct|union|typedef|extern|(un)?signed|inline)\>"
     11color green "\<(float|double|bool|char|int|short|long|enum|void|auto)\>"
     12color green "\<(static|const|extern|(un)?signed|inline)\>" "\<(sizeof)\>"
    1313color green "\<((s?size)|one|zero|((u_?)?int(8|16|32|64|ptr)))_t\>"
    1414
     
    1919# Control Flow Structures
    2020color brightyellow "\<(if|else|while|do|for|switch|choose|case|default)\>"
     21color brightyellow "\<(disable|enable|waitfor|when|timeout)\>"
    2122color brightyellow "\<(try|catch(Resume)?|finally)\>"
    2223
    2324# Control Flow Statements
    2425color magenta "\<(goto|return|break|continue|fallthr(u|ough)|throw(Resume)?)\>"
     26
     27# Escaped Keywords, now Identifiers.
     28color white "`\w+`"
    2529
    2630# Operator Names
Note: See TracChangeset for help on using the changeset viewer.