|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: B T
Length: 2100 (0x834)
Types: TextFile
Names: »B«
└─⟦180fe333a⟧ Bits:30000405 8mm tape, Rational 1000, SW CATALOG, 10_20_0
└─⟦180fe333a⟧ Bits:30000537 8mm tape, Rational 1000, SW Catalog 10_20_0
└─⟦5cb1d1d7f⟧ »DATA«
└─⟦3b1ee7bd8⟧
└─⟦this⟧
separate (Find_Unit.Build_Ada_Compilation_Unit)
procedure Peek_Left_Right_Paren is
--==============================================================
-- This procedure builds the next part of the grammar for an =
-- Ada compilation unit. Based on the next token, we will =
-- complete different productions. At present, we are parsing =
-- a right parenthesis If a left parenthesis is found before =
-- the corresponding right parenthesis, then we will recurse on=
-- this procedure. If we find a syntax error, then we will =
-- raise the exception Build_Syntax_Error. =
-- The grammar : =
-- <Peek_Left_Right_Paren> = =
-- * {'(' <Peek_Left_Right_Paren> * } ')' =
-- =
-- written by GER with help from b2 and JM =
-- May 1985 at EVB Software Engineering =
--==============================================================
Peek_Token : Token_Package.Token;
-- This will token will be looked later
Right_Found : Boolean := False;
-- Set to true when the right parenthesis is found
begin
-- Peek_Left_Right_Paren
-- Parse a right parenthesis
Search_For_Right:
loop
Peek_Next_Significant_Token (Significant_Token => Peek_Token);
case Token_Package.Value_Of (Peek_Token) is
when Token_Package.Right_Parenthesis_Token =>
Right_Found := True;
when Token_Package.Left_Parenthesis_Token =>
Peek_Left_Right_Paren;
when others =>
if Token_Package.Class_Of (Peek_Token) =
Token_Package.End_Of_File then
raise Build_Syntax_Error;
end if;
end case;
exit Search_For_Right when Right_Found;
end loop Search_For_Right;
end Peek_Left_Right_Paren;