diff src/parse.y @ 916:2f35156aa18b

[project @ 1994-11-11 00:36:31 by jwe]
author jwe
date Fri, 11 Nov 1994 00:36:31 +0000
parents efb4cbdaac26
children 708827b941b4
line wrap: on
line diff
--- a/src/parse.y	Fri Nov 11 00:25:51 1994 +0000
+++ b/src/parse.y	Fri Nov 11 00:36:31 1994 +0000
@@ -223,6 +223,7 @@
 %token <tok_val> PLOT
 %token <tok_val> TEXT STYLE
 %token <tok_val> FOR WHILE IF ELSEIF ELSE BREAK CONTINUE FUNC_RET
+%token <tok_val> UNWIND_PROTECT UNWIND_PROTECT_CLEANUP
 %token <tok_val> GLOBAL
 %token <tok_val> TEXT_ID
 
@@ -601,6 +602,15 @@
 		    iffing--;
 		    $$ = $1;
 		  }
+
+		| UNWIND_PROTECT opt_list UNWIND_PROTECT_CLEANUP opt_list END
+		  {
+		    if (check_end ($5, token::unwind_protect_end))
+		      ABORT_PARSE;
+
+		    $$ = new tree_unwind_protect_command ($2, $4, $1->line (),
+							  $1->column ());
+		  }
 		| WHILE expression optsep opt_list END
 		  {
 		    maybe_warn_assign_as_truth_value ($2);