Changeset fcc57ba
- Timestamp:
- Sep 25, 2018, 10:14:14 AM (6 years ago)
- 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. - Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
doc/bibliography/pl.bib
re523b07 rfcc57ba 701 701 % B 702 702 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 703 717 @incollection{beta:old, 704 718 keywords = {beta, patterns, virtual types}, … … 908 922 909 923 @misc{Cforall, 924 contributer = {pabuhr@plg}, 910 925 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}}, 913 928 optnote = {Accessed: 2018-01-01}, 914 929 } … … 926 941 927 942 @misc{CFAStackEvaluation, 943 contributer = {a3moss@plg}, 928 944 author = {Aaron Moss}, 929 945 title = {\textsf{C}$\mathbf{\forall}$ Stack Evaluation Programs}, … … 934 950 935 951 @article{Moss18, 936 keywords = { concurrency, C++},952 keywords = {type systems, tuples, Cforall}, 937 953 contributer = {pabuhr@plg}, 938 954 author = {Aaron Moss and Robert Schluntz and Peter A. Buhr}, … … 941 957 month = aug, 942 958 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}}, 944 960 } 945 961 … … 1417 1433 } 1418 1434 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 1419 1445 @incollection{Reppy93, 1420 1446 keywords = {ML, concurrency, continuation passing}, … … 1490 1516 month = dec, 1491 1517 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}}, 1493 1519 } 1494 1520 … … 1557 1583 } 1558 1584 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 1559 1594 @book{Andrews91:book, 1560 1595 keywords = {concurrency}, … … 1581 1616 1582 1617 @mastersthesis{Delisle18, 1618 keywords = {concurrency, Cforall}, 1619 contributer = {pabuhr@plg}, 1583 1620 author = {Thierry Delisle}, 1584 1621 title = {Concurrency in \textsf{C}$\mathbf{\forall}$}, 1585 1622 school = {School of Computer Science, University of Waterloo}, 1586 1623 year = 2018, 1587 address = {Waterloo, Ontario, Canada, N2L 3G1},1624 optaddress = {Waterloo, Ontario, Canada, N2L 3G1}, 1588 1625 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}, 1589 1637 } 1590 1638 … … 2865 2913 keywords = {concurrency, mutual exclusion, performance experiment, software solutions}, 2866 2914 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}, 2868 2916 journal = ccpe, 2869 2917 volume = 30, … … 2872 2920 month = feb, 2873 2921 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}} 2875 2923 } 2876 2924 … … 3284 3332 edition = {{S}imon {M}arlow}, 3285 3333 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}}, 3287 3335 } 3288 3336 … … 3358 3406 } 3359 3407 3360 @article{Hesselink17 ,3408 @article{Hesselink17b, 3361 3409 keywords = {concurrency, mutual exclusion, performance experiment, software solutions}, 3362 3410 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}, 3364 3412 journal = ccpe, 3365 3413 volume = 30, … … 3368 3416 month = sep, 3369 3417 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}}, 3371 3419 } 3372 3420 … … 3846 3894 3847 3895 % 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 } 3848 3907 3849 3908 @article{Duggan96, … … 4534 4593 % N 4535 4594 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 4536 4605 @article{Haddon77, 4537 4606 keywords = {monitors, nested monitor calls}, … … 4657 4726 volume = 9, 4658 4727 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}}, 4659 4734 } 4660 4735 … … 4769 4844 @misc{obj-c-book, 4770 4845 keywords = {objective-c}, 4771 contributor = { a3moss@uwaterloo.ca},4846 contributor = {pabuhr@plg}, 4772 4847 key = {Objective-C}, 4773 title= {Objective-C},4848 author = {Objective-C}, 4774 4849 publisher = {Apple Inc.}, 4775 year = 201 5,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}}, 4777 4852 optnote = {Accessed: 2018-03} 4778 4853 } … … 4784 4859 title = {{X}code 7 Release Notes}, 4785 4860 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}}, 4787 4862 optnote = {Accessed: 2017-04} 4788 4863 } … … 5284 5359 } 5285 5360 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 5286 5378 @article{Anderson90, 5287 5379 keywords = {spin locks, back off, performance}, … … 5504 5596 note = {Proceedings of the OOPSLA'89 Conference, Oct. 1--6, 1989, New Orleans, Lousiana}, 5505 5597 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}, 5506 5614 } 5507 5615 … … 5965 6073 } 5966 6074 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 5967 6088 @article{Robinson48, 5968 6089 keywords = {recursion, Ackermann function}, … … 6003 6124 } 6004 6125 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 6005 6137 @article{Euclid, 6006 6138 keywords = {Euclid}, … … 6034 6166 school = {School of Computer Science, University of Waterloo}, 6035 6167 year = 2017, 6036 address = {Waterloo, Ontario, Canada, N2L 3G1},6168 optaddress = {Waterloo, Ontario, Canada, N2L 3G1}, 6037 6169 note = {\href{https://uwspace.uwaterloo.ca/handle/10012/11830}{https://\-uwspace.uwaterloo.ca/\-handle/\-10012/\-11830}}, 6038 6170 } … … 6861 6993 contributer = {pabuhr@plg}, 6862 6994 key = {TIOBE Index}, 6863 title = {{TIOBE} Index},6995 author = {{TIOBE Index}}, 6864 6996 howpublished= {\href{http://www.tiobe.com/tiobe_index}{http://\-www.tiobe.com/\-tiobe\_index}}, 6865 6997 optnote = {Accessed: 2018-09}, … … 7001 7133 year = 1980 7002 7134 } 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 } 7003 7142 7004 7143 @article{Leroy00, … … 7136 7275 title = {Usability Challenges in Exception Handling}, 7137 7276 booktitle = {5th International Workshop on Exception Handling (WEH)}, 7138 o rganization= {16th International Symposium on the Foundations of Software Engineering (FSE 16)},7277 optorganization= {16th International Symposium on the Foundations of Software Engineering (FSE 16)}, 7139 7278 address = {Zurich, Switzerland}, 7140 7279 month = jun, … … 7280 7419 } 7281 7420 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 7282 7434 @techreport{Moss90, 7283 7435 keywords = {Swizzling, database}, … … 7344 7496 year = 1986, 7345 7497 editor = {Norman Meyrowitz}, 7346 publisher = sigplan # " 21(11)",7498 publisher = sigplan, 7347 7499 organization= {Association for Computing Machinery}, 7348 7500 address = {Portland, Oregon}, 7349 month = sep # { 29}7501 month = sep, 7350 7502 } 7351 7503 … … 7356 7508 year = 1987, 7357 7509 editor = {Norman Meyrowitz}, 7358 publisher = sigplan # " 22(12)",7510 publisher = sigplan, 7359 7511 organization= {Association for Computing Machinery}, 7360 7512 address = {Orlando, Florida}, 7361 month = oct # { 4--8}7513 month = oct, 7362 7514 } 7363 7515 … … 7368 7520 year = 1988, 7369 7521 editor = {Norman Meyrowitz}, 7370 publisher = sigplan # " 23(11)",7522 publisher = sigplan, 7371 7523 organization= {Association for Computing Machinery}, 7372 7524 address = {San Diego, California}, 7373 month = sep # { 25--30}7525 month = sep, 7374 7526 } 7375 7527 … … 7380 7532 year = 1989, 7381 7533 editor = {Norman Meyrowitz}, 7382 publisher = sigplan # " 24(10)",7534 publisher = sigplan, 7383 7535 organization= {Association for Computing Machinery}, 7384 7536 address = {New Orleans, Louisiana}, 7385 month = oct # { 1--6}7537 month = oct, 7386 7538 } 7387 7539 … … 7392 7544 year = 1990, 7393 7545 editor = {Norman Meyrowitz}, 7394 publisher = sigplan # " 25(10)",7546 publisher = sigplan, 7395 7547 organization= {Association for Computing Machinery}, 7396 7548 address = {Ottawa, Canada}, 7397 month = oct # { 21--25}7549 month = oct, 7398 7550 } 7399 7551 … … 7404 7556 year = 1991, 7405 7557 editor = {Andreas Paepcke}, 7406 publisher = sigplan # " 26(11)",7558 publisher = sigplan, 7407 7559 organization= {Association for Computing Machinery}, 7408 7560 address = {Phoenix, Arizona}, 7409 month = oct # { 6--11}7410 } 7561 month = oct, 7562 } -
src/CodeTools/ResolvProtoDump.cc
re523b07 rfcc57ba 196 196 } 197 197 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); 200 202 } 201 203 202 204 /// ensures type inst names are uppercase 203 205 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); 206 214 } 207 215 … … 219 227 void previsit( BasicType* bt ) { ss << (int)bt->get_kind(); } 220 228 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 227 238 void previsit( ArrayType* at ) { 228 ss << "#$ arr<";239 ss << "#$ptr<"; 229 240 ++depth; 230 241 at->base->accept( *visitor ); … … 244 255 } 245 256 246 // encode function type as a 2-param generic type 247 // TODO handle forall functions 257 // print function types using prototype syntax 248 258 void previsit( FunctionType* ft ) { 249 ss << "#$fn<";259 ss << '['; 250 260 ++depth; 251 build AsTuple( *visitor, from_decls( ft->returnVals ), ss);252 ss << ' ';253 build AsTuple( *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 ); 254 264 --depth; 255 ss << ' >';265 ss << ']'; 256 266 visit_children = false; 257 267 } … … 341 351 } 342 352 343 // print variable declaration as zero-arg function353 // print variable declaration in prototype syntax 344 354 PassVisitor<TypePrinter> printTy{ closed, ss }; 345 355 norefs->accept( printTy ); 346 ss << ' ';356 ss << " &"; 347 357 rp_name( name, ss ); 348 358 } … … 381 391 : closed(closed), ss(ss) {} 382 392 383 /// Names handled as n ullary function calls393 /// Names handled as name expressions 384 394 void previsit( NameExpr* expr ) { 395 ss << '&'; 385 396 rp_name( expr->name, ss ); 386 ss << "()";387 397 } 388 398 … … 416 426 } 417 427 428 /// Already-resolved calls skipped 429 void previsit( ApplicationExpr* ) { 430 visit_children = false; 431 } 432 418 433 /// Address-of handled as operator 419 434 void previsit( AddressExpr* expr ) { … … 585 600 586 601 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 587 610 // add function as declaration 588 611 std::stringstream ss; -
tools/cfa.nanorc
re523b07 rfcc57ba 2 2 ## WIP 3 3 4 syntax "cfa" "\. cfa"4 syntax "cfa" "\.(c|h)fa" 5 5 6 6 # Macros … … 9 9 # Types 10 10 color 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)\>"11 color green "\<(float|double|bool|char|int|short|long|enum|void|auto)\>" 12 color green "\<(static|const|extern|(un)?signed|inline)\>" "\<(sizeof)\>" 13 13 color green "\<((s?size)|one|zero|((u_?)?int(8|16|32|64|ptr)))_t\>" 14 14 … … 19 19 # Control Flow Structures 20 20 color brightyellow "\<(if|else|while|do|for|switch|choose|case|default)\>" 21 color brightyellow "\<(disable|enable|waitfor|when|timeout)\>" 21 22 color brightyellow "\<(try|catch(Resume)?|finally)\>" 22 23 23 24 # Control Flow Statements 24 25 color magenta "\<(goto|return|break|continue|fallthr(u|ough)|throw(Resume)?)\>" 26 27 # Escaped Keywords, now Identifiers. 28 color white "`\w+`" 25 29 26 30 # Operator Names
Note: See TracChangeset
for help on using the changeset viewer.