|
|
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: 3941 (0xf65)
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 (Compilation_Unit.Produce_Metrics)
procedure Sequence_Of_Statements
(Current_Compilation_Unit : in out Ada_Compilation_Unit;
Program_Unit : in Program_Unit_State_Machine;
Halstead : in Halstead_State_Machine;
Loc : in Loc_State_Machine;
Mccabe : in Mccabe_State_Machine) is
--======================================================
-- Sequence_Of_Statements ::=
-- Pragma_Clause Label Statement Pragma_Clause
-- { Label Statement Pragma_Clause }
--======================================================
Peek_Ahead_Token : Token_Package.Token;
No_More_Statements : Boolean := False;
begin
-- Sequence_Of_Statements
Pragma_Clause (Current_Compilation_Unit => Current_Compilation_Unit,
Program_Unit => Program_Unit,
Halstead => Halstead,
Loc => Loc,
Mccabe => Mccabe);
Process_Statements:
-- repeat for every statement
loop
Label (Current_Compilation_Unit => Current_Compilation_Unit,
Program_Unit => Program_Unit,
Halstead => Halstead,
Loc => Loc,
Mccabe => Mccabe);
Statement (Current_Compilation_Unit => Current_Compilation_Unit,
Program_Unit => Program_Unit,
Halstead => Halstead,
Loc => Loc,
Mccabe => Mccabe);
-- increment LOC executable statement count
Loc.Change_Executable_Statements_Count;
Pragma_Clause (Current_Compilation_Unit => Current_Compilation_Unit,
Program_Unit => Program_Unit,
Halstead => Halstead,
Loc => Loc,
Mccabe => Mccabe);
Peek_Ahead_Token := Peek (From => Current_Compilation_Unit);
case Token_Package.Class_Of (Peek_Ahead_Token) is
when Token_Package.Keyword =>
case Token_Package.Value_Of (Peek_Ahead_Token) is
when Token_Package.Abort_Token |
Token_Package.Delay_Token |
Token_Package.Exit_Token |
Token_Package.Goto_Token |
Token_Package.Null_Token |
Token_Package.Raise_Token |
Token_Package.Return_Token |
Token_Package.Accept_Token |
Token_Package.Case_Token | Token_Package.If_Token |
Token_Package.While_Token |
Token_Package.For_Token |
Token_Package.Loop_Token |
Token_Package.Select_Token =>
null;
when others =>
No_More_Statements := True;
end case;
when Token_Package.Punctuation =>
if "/=" (Token_Package.Value_Of (Peek_Ahead_Token),
Token_Package.Left_Label_Bracket_Token) then
No_More_Statements := True;
end if;
when Token_Package.Identifier |
Token_Package.Standard_String_Literal |
Token_Package.Alternate_String_Literal |
Token_Package.Character_Literal =>
null;
when Token_Package.Begin_Compilation_Unit =>
null;
when others =>
No_More_Statements := True;
end case;
exit Process_Statements when No_More_Statements;
end loop Process_Statements;
end Sequence_Of_Statements;