- Timestamp:
- Feb 17, 2021, 9:20:09 AM (4 years ago)
- Branches:
- ADT, arm-eh, ast-experimental, enum, forall-pointer-decay, jacob/cs343-translation, master, new-ast-unique-expr, pthread-emulation, qualifiedEnum
- Children:
- 1717b12, 95b3a9c, eb24cec0
- Parents:
- d0502a3
- Location:
- src/Parser
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Parser/lex.ll
rd0502a3 r9fb1367 10 10 * Created On : Sat Sep 22 08:58:10 2001 11 11 * Last Modified By : Peter A. Buhr 12 * Last Modified On : Tue Oct 6 18:15:41 202013 * Update Count : 7 4312 * Last Modified On : Wed Feb 17 08:38:13 2021 13 * Update Count : 752 14 14 */ 15 15 … … 221 221 break { KEYWORD_RETURN(BREAK); } 222 222 case { KEYWORD_RETURN(CASE); } 223 catch { KEYWORD_RETURN(CATCH); } // CFA224 catchResume { KEYWORD_RETURN(CATCHRESUME); } // CFA223 catch { QKEYWORD_RETURN(CATCH); } // CFA 224 catchResume { QKEYWORD_RETURN(CATCHRESUME); } // CFA 225 225 char { KEYWORD_RETURN(CHAR); } 226 226 choose { KEYWORD_RETURN(CHOOSE); } // CFA … … 247 247 fallthrough { KEYWORD_RETURN(FALLTHROUGH); } // CFA 248 248 fallthru { KEYWORD_RETURN(FALLTHRU); } // CFA 249 finally { KEYWORD_RETURN(FINALLY); } // CFA 249 finally { QKEYWORD_RETURN(FINALLY); } // CFA 250 fixup { QKEYWORD_RETURN(FIXUP); } // CFA 250 251 float { KEYWORD_RETURN(FLOAT); } 251 252 __float80 { KEYWORD_RETURN(uuFLOAT80); } // GCC … … 287 288 or { QKEYWORD_RETURN(WOR); } // CFA 288 289 otype { KEYWORD_RETURN(OTYPE); } // CFA 290 recover { QKEYWORD_RETURN(RECOVER); } // CFA 289 291 register { KEYWORD_RETURN(REGISTER); } 292 report { KEYWORD_RETURN(THROWRESUME); } // CFA 290 293 restrict { KEYWORD_RETURN(RESTRICT); } // C99 291 294 __restrict { KEYWORD_RETURN(RESTRICT); } // GCC … … 324 327 __volatile { KEYWORD_RETURN(VOLATILE); } // GCC 325 328 __volatile__ { KEYWORD_RETURN(VOLATILE); } // GCC 326 waitfor { KEYWORD_RETURN(WAITFOR); } 327 when { KEYWORD_RETURN(WHEN); } 329 waitfor { KEYWORD_RETURN(WAITFOR); } // CFA 330 when { KEYWORD_RETURN(WHEN); } // CFA 328 331 while { KEYWORD_RETURN(WHILE); } 329 332 with { KEYWORD_RETURN(WITH); } // CFA -
src/Parser/parser.yy
rd0502a3 r9fb1367 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 3 18:30:12202113 // Update Count : 47 0012 // Last Modified On : Wed Feb 17 09:03:07 2021 13 // Update Count : 4722 14 14 // 15 15 … … 282 282 %token ATTRIBUTE EXTENSION // GCC 283 283 %token IF ELSE SWITCH CASE DEFAULT DO WHILE FOR BREAK CONTINUE GOTO RETURN 284 %token CHOOSE DISABLE ENABLE FALLTHRU FALLTHROUGH TRY CATCH CATCHRESUME FINALLYTHROW THROWRESUME AT WITH WHEN WAITFOR // CFA284 %token CHOOSE DISABLE ENABLE FALLTHRU FALLTHROUGH TRY THROW THROWRESUME AT WITH WHEN WAITFOR // CFA 285 285 %token ASM // C99, extension ISO/IEC 9899:1999 Section J.5.10(1) 286 286 %token ALIGNAS ALIGNOF GENERIC STATICASSERT // C11 287 287 288 288 // names and constants: lexer differentiates between identifier and typedef names 289 %token<tok> IDENTIFIER QUOTED_IDENTIFIER TYPEDEFnameTYPEGENname290 %token<tok> TIMEOUT WOR291 %token<tok> INTEGERconstant CHARACTERconstantSTRINGliteral289 %token<tok> IDENTIFIER QUOTED_IDENTIFIER TYPEDEFname TYPEGENname 290 %token<tok> TIMEOUT WOR CATCH RECOVER CATCHRESUME FIXUP FINALLY // CFA 291 %token<tok> INTEGERconstant CHARACTERconstant STRINGliteral 292 292 %token<tok> DIRECTIVE 293 293 // Floating point constant is broken into three kinds of tokens because of the ambiguity with tuple indexing and … … 462 462 // Order of these lines matters (low-to-high precedence). THEN is left associative over WOR/TIMEOUT/ELSE, WOR is left 463 463 // associative over TIMEOUT/ELSE, and TIMEOUT is left associative over ELSE. 464 %precedence THEN // rule precedence for IF/WAITFOR statement 465 %precedence WOR // token precedence for start of WOR in WAITFOR statement 466 %precedence TIMEOUT // token precedence for start of TIMEOUT in WAITFOR statement 467 %precedence ELSE // token precedence for start of else clause in IF/WAITFOR statement 464 %precedence THEN // rule precedence for IF/WAITFOR statement 465 %precedence WOR // token precedence for start of WOR in WAITFOR statement 466 %precedence TIMEOUT // token precedence for start of TIMEOUT in WAITFOR statement 467 %precedence CATCH // token precedence for start of TIMEOUT in WAITFOR statement 468 %precedence RECOVER // token precedence for start of TIMEOUT in WAITFOR statement 469 %precedence CATCHRESUME // token precedence for start of TIMEOUT in WAITFOR statement 470 %precedence FIXUP // token precedence for start of TIMEOUT in WAITFOR statement 471 %precedence FINALLY // token precedence for start of TIMEOUT in WAITFOR statement 472 %precedence ELSE // token precedence for start of else clause in IF/WAITFOR statement 473 468 474 469 475 // Handle shift/reduce conflict for generic type by shifting the '(' token. For example, this string is ambiguous: … … 544 550 TIMEOUT 545 551 | WOR 552 | CATCH 553 | RECOVER 554 | CATCHRESUME 555 | FIXUP 556 | FINALLY 546 557 ; 547 558 … … 1366 1377 1367 1378 exception_statement: 1368 TRY compound_statement handler_clause 1379 TRY compound_statement handler_clause %prec THEN 1369 1380 { $$ = new StatementNode( build_try( $2, $3, 0 ) ); } 1370 1381 | TRY compound_statement finally_clause … … 1389 1400 handler_key: 1390 1401 CATCH { $$ = CatchStmt::Terminate; } 1402 | RECOVER { $$ = CatchStmt::Terminate; } 1391 1403 | CATCHRESUME { $$ = CatchStmt::Resume; } 1404 | FIXUP { $$ = CatchStmt::Resume; } 1392 1405 ; 1393 1406
Note: See TracChangeset
for help on using the changeset viewer.