aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.4.3/gcc/ada/par-ch11.adb
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.4.3/gcc/ada/par-ch11.adb')
-rw-r--r--gcc-4.4.3/gcc/ada/par-ch11.adb257
1 files changed, 0 insertions, 257 deletions
diff --git a/gcc-4.4.3/gcc/ada/par-ch11.adb b/gcc-4.4.3/gcc/ada/par-ch11.adb
deleted file mode 100644
index 412456e1a..000000000
--- a/gcc-4.4.3/gcc/ada/par-ch11.adb
+++ /dev/null
@@ -1,257 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT COMPILER COMPONENTS --
--- --
--- P A R . C H 1 1 --
--- --
--- B o d y --
--- --
--- Copyright (C) 1992-2008, Free Software Foundation, Inc. --
--- --
--- GNAT is free software; you can redistribute it and/or modify it under --
--- terms of the GNU General Public License as published by the Free Soft- --
--- ware Foundation; either version 3, or (at your option) any later ver- --
--- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
--- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
--- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License --
--- for more details. You should have received a copy of the GNU General --
--- Public License distributed with GNAT; see file COPYING3. If not, go to --
--- http://www.gnu.org/licenses for a complete copy of the license. --
--- --
--- GNAT was originally developed by the GNAT team at New York University. --
--- Extensive contributions were provided by Ada Core Technologies Inc. --
--- --
-------------------------------------------------------------------------------
-
-pragma Style_Checks (All_Checks);
--- Turn off subprogram body ordering check. Subprograms are in order
--- by RM section rather than alphabetical
-
-with Sinfo.CN; use Sinfo.CN;
-
-separate (Par)
-package body Ch11 is
-
- -- Local functions, used only in this chapter
-
- function P_Exception_Handler return Node_Id;
- function P_Exception_Choice return Node_Id;
-
- ---------------------------------
- -- 11.1 Exception Declaration --
- ---------------------------------
-
- -- Parsed by P_Identifier_Declaration (3.3.1)
-
- ------------------------------------------
- -- 11.2 Handled Sequence Of Statements --
- ------------------------------------------
-
- -- HANDLED_SEQUENCE_OF_STATEMENTS ::=
- -- SEQUENCE_OF_STATEMENTS
- -- [exception
- -- EXCEPTION_HANDLER
- -- {EXCEPTION_HANDLER}]
-
- -- Error_Recovery : Cannot raise Error_Resync
-
- function P_Handled_Sequence_Of_Statements return Node_Id is
- Handled_Stmt_Seq_Node : Node_Id;
-
- begin
- Handled_Stmt_Seq_Node :=
- New_Node (N_Handled_Sequence_Of_Statements, Token_Ptr);
- Set_Statements
- (Handled_Stmt_Seq_Node, P_Sequence_Of_Statements (SS_Extm_Sreq));
-
- if Token = Tok_Exception then
- Scan; -- past EXCEPTION
- Set_Exception_Handlers
- (Handled_Stmt_Seq_Node, Parse_Exception_Handlers);
- end if;
-
- return Handled_Stmt_Seq_Node;
- end P_Handled_Sequence_Of_Statements;
-
- -----------------------------
- -- 11.2 Exception Handler --
- -----------------------------
-
- -- EXCEPTION_HANDLER ::=
- -- when [CHOICE_PARAMETER_SPECIFICATION :]
- -- EXCEPTION_CHOICE {| EXCEPTION_CHOICE} =>
- -- SEQUENCE_OF_STATEMENTS
-
- -- CHOICE_PARAMETER_SPECIFICATION ::= DEFINING_IDENTIFIER
-
- -- Error recovery: cannot raise Error_Resync
-
- function P_Exception_Handler return Node_Id is
- Scan_State : Saved_Scan_State;
- Handler_Node : Node_Id;
- Choice_Param_Node : Node_Id;
-
- begin
- Handler_Node := New_Node (N_Exception_Handler, Token_Ptr);
- Set_Local_Raise_Statements (Handler_Node, No_Elist);
-
- if Style_Check then
- Style.Check_Indentation;
- end if;
-
- T_When;
-
- -- Test for possible choice parameter present
-
- if Token = Tok_Identifier then
- Choice_Param_Node := Token_Node;
- Save_Scan_State (Scan_State); -- at identifier
- Scan; -- past identifier
-
- if Token = Tok_Colon then
- if Ada_Version = Ada_83 then
- Error_Msg_SP ("(Ada 83) choice parameter not allowed!");
- end if;
-
- Scan; -- past :
- Change_Identifier_To_Defining_Identifier (Choice_Param_Node);
- Set_Choice_Parameter (Handler_Node, Choice_Param_Node);
-
- elsif Token = Tok_Others then
- Error_Msg_AP ("missing "":""");
- Change_Identifier_To_Defining_Identifier (Choice_Param_Node);
- Set_Choice_Parameter (Handler_Node, Choice_Param_Node);
-
- else
- Restore_Scan_State (Scan_State); -- to identifier
- end if;
- end if;
-
- -- Loop through exception choices
-
- Set_Exception_Choices (Handler_Node, New_List);
-
- loop
- Append (P_Exception_Choice, Exception_Choices (Handler_Node));
- exit when Token /= Tok_Vertical_Bar;
- Scan; -- past vertical bar
- end loop;
-
- TF_Arrow;
- Set_Statements (Handler_Node, P_Sequence_Of_Statements (SS_Sreq_Whtm));
- return Handler_Node;
- end P_Exception_Handler;
-
- ------------------------------------------
- -- 11.2 Choice Parameter Specification --
- ------------------------------------------
-
- -- Parsed by P_Exception_Handler (11.2)
-
- ----------------------------
- -- 11.2 Exception Choice --
- ----------------------------
-
- -- EXCEPTION_CHOICE ::= exception_NAME | others
-
- -- Error recovery: cannot raise Error_Resync. If an error occurs, then the
- -- scan pointer is advanced to the next arrow or vertical bar or semicolon.
-
- function P_Exception_Choice return Node_Id is
- begin
-
- if Token = Tok_Others then
- Scan; -- past OTHERS
- return New_Node (N_Others_Choice, Prev_Token_Ptr);
-
- else
- return P_Name; -- exception name
- end if;
-
- exception
- when Error_Resync =>
- Resync_Choice;
- return Error;
- end P_Exception_Choice;
-
- ---------------------------
- -- 11.3 Raise Statement --
- ---------------------------
-
- -- RAISE_STATEMENT ::= raise [exception_NAME];
-
- -- The caller has verified that the initial token is RAISE
-
- -- Error recovery: can raise Error_Resync
-
- function P_Raise_Statement return Node_Id is
- Raise_Node : Node_Id;
-
- begin
- Raise_Node := New_Node (N_Raise_Statement, Token_Ptr);
- Scan; -- past RAISE
-
- if Token /= Tok_Semicolon then
- Set_Name (Raise_Node, P_Name);
- end if;
-
- if Token = Tok_With then
- if Ada_Version < Ada_05 then
- Error_Msg_SC ("string expression in raise is Ada 2005 extension");
- Error_Msg_SC ("\unit must be compiled with -gnat05 switch");
- end if;
-
- Scan; -- past WITH
- Set_Expression (Raise_Node, P_Expression);
- end if;
-
- TF_Semicolon;
- return Raise_Node;
- end P_Raise_Statement;
-
- ------------------------------
- -- Parse_Exception_Handlers --
- ------------------------------
-
- -- This routine scans out a list of exception handlers appearing in a
- -- construct as:
-
- -- exception
- -- EXCEPTION_HANDLER {EXCEPTION_HANDLER}
-
- -- The caller has scanned out the EXCEPTION keyword
-
- -- Control returns after scanning the last exception handler, presumably
- -- at the keyword END, but this is not checked in this routine.
-
- -- Error recovery: cannot raise Error_Resync
-
- function Parse_Exception_Handlers return List_Id is
- Handler : Node_Id;
- Handlers_List : List_Id;
-
- begin
- Handlers_List := New_List;
- P_Pragmas_Opt (Handlers_List);
-
- if Token = Tok_End then
- Error_Msg_SC ("must have at least one exception handler!");
-
- else
- loop
- Handler := P_Exception_Handler;
- Append (Handler, Handlers_List);
-
- -- Note: no need to check for pragmas here. Although the
- -- syntax officially allows them in this position, they
- -- will have been swallowed up as part of the statement
- -- sequence of the handler we just scanned out.
-
- exit when Token /= Tok_When;
- end loop;
- end if;
-
- return Handlers_List;
- end Parse_Exception_Handlers;
-
-end Ch11;