DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400 Tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Rational R1000/400 Tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download
Index: B T

⟦64eb638cb⟧ TextFile

    Length: 13426 (0x3472)
    Types: TextFile
    Names: »B«

Derivation

└─⟦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⟧ 

TextFile

separate (Compilation_Unit.Produce_Metrics)
procedure Expression_Token
             (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

    --==========================================================
    -- Expression_Token ::=
    --      "(" Expression ")"
    --    | "=>"
    --    | ".."
    --    | "OTHERS"
    --    | "|"
    --    | "<>"
    --    | "RANGE"
    --    | "AND" ["THEN"]
    --    | "OR" ["ELSE"]
    --    | "XOR"
    --    | "NOT" ["IN"]
    --    | "IN"
    --    | "**"
    --    | "ABS"
    --    | "NULL"
    --    | "="
    --    | "/="
    --    | "<"
    --    | "<="
    --    | ">"
    --    | ">="
    --    | "+"
    --    | "-"
    --    | "&"
    --    | "*"
    --    | "/"
    --    | ","
    --    | "MOD"
    --    | "REM"
    --    | "NEW"
    --    | "DELTA"
    --    | "DIGITS"
    --    | "!"
    --    | Numeric_Literal
    --    | Name
    --==========================================================

    Current_Token : Token_Package.Token;
    Dummy_Name_Kind : Name_Kind;

begin
    -- Expression_Token

    case Token_Package.Class_Of (Peek (From => Current_Compilation_Unit)) is

        when Token_Package.Keyword | Token_Package.Punctuation =>

            Get_Next_Token (Out_Token => Current_Token,
                            From => Current_Compilation_Unit,
                            Current_Loc => Loc);

            case Token_Package.Value_Of (Current_Token) is

                when Token_Package.Left_Parenthesis_Token =>

                    Expression
                       (Current_Compilation_Unit => Current_Compilation_Unit,
                        Program_Unit => Program_Unit,
                        Halstead => Halstead,
                        Loc => Loc,
                        Mccabe => Mccabe,
                        Terminate_Tokens =>
                           Set_Of_Tokens'
                              (1 => Token_Package.Right_Parenthesis_Token));

                    Get_Next_Token (Out_Token => Current_Token,
                                    From => Current_Compilation_Unit,
                                    Current_Loc => Loc);

                    if "/=" (Token_Package.Value_Of (Current_Token),
                             Token_Package.Right_Parenthesis_Token) then
                        raise Syntax_Error;
                    end if;

                    -- increment Halstead PARENTHESES operator count
                    Halstead.Store_Operator
                       ((Kind => Halstead_Operator.Parentheses_Halstead));

                when Token_Package.Arrow_Token =>

                    -- increment Halstead ARROW operator count
                    Halstead.Store_Operator
                       ((Kind => Halstead_Operator.Arrow_Halstead));

                when Token_Package.Double_Dot_Token =>

                    -- increment Halstead DOUBLE_DOT operator count
                    Halstead.Store_Operator
                       ((Kind => Halstead_Operator.Double_Dot_Halstead));

                when Token_Package.Others_Token =>

                    -- increment Halstead OTHERS operator count
                    Halstead.Store_Operator
                       ((Kind => Halstead_Operator.Others_Halstead));

                when Token_Package.Vertical_Bar_Token =>

                    -- increment Halstead VERTICAL_BAR operator count
                    Halstead.Store_Operator
                       ((Kind => Halstead_Operator.Vertical_Bar_Halstead));
                    -- increment McCabe PI
                    Mccabe.Change_Pi;

                when Token_Package.Box_Token =>

                    -- increment Halstead BOX operator count
                    Halstead.Store_Operator
                       ((Kind => Halstead_Operator.Box_Halstead));

                when Token_Package.Range_Token =>

                    -- increment Halstead RANGE operator count
                    Halstead.Store_Operator
                       ((Kind => Halstead_Operator.Range_Halstead));

                when Token_Package.And_Token =>

                    if Token_Package.Value_Of
                          (Peek (From => Current_Compilation_Unit)) =
                       Token_Package.Then_Token then
                        Get_Next_Token (Out_Token => Current_Token,
                                        From => Current_Compilation_Unit,
                                        Current_Loc => Loc);

                        -- increment Halstead AND_THEN operator count
                        Halstead.Store_Operator
                           ((Kind => Halstead_Operator.And_Then_Halstead));

                    else

                        -- increment Halstead AND operator count
                        Halstead.Store_Operator
                           ((Kind => Halstead_Operator.And_Halstead));

                    end if;

                    -- increment McCabe PI
                    Mccabe.Change_Pi;

                when Token_Package.Or_Token =>

                    if Token_Package.Value_Of
                          (Peek (From => Current_Compilation_Unit)) =
                       Token_Package.Else_Token then

                        Get_Next_Token (Out_Token => Current_Token,
                                        From => Current_Compilation_Unit,
                                        Current_Loc => Loc);

                        -- increment Halstead OR_ELSE operator count
                        Halstead.Store_Operator
                           ((Kind => Halstead_Operator.Or_Else_Halstead));

                    else

                        -- increment Halstead OR operator count
                        Halstead.Store_Operator
                           ((Kind => Halstead_Operator.Or_Halstead));

                    end if;

                    -- increment McCabe PI
                    Mccabe.Change_Pi;

                when Token_Package.Xor_Token =>

                    -- increment Halstead XOR operator count
                    Halstead.Store_Operator
                       ((Kind => Halstead_Operator.Xor_Halstead));
                    -- increment McCabe PI
                    Mccabe.Change_Pi;

                when Token_Package.Not_Token =>

                    -- increment Halstead NOT operator count
                    Halstead.Store_Operator
                       ((Kind => Halstead_Operator.Not_Halstead));

                when Token_Package.In_Token =>

                    -- increment Halstead IN operator count
                    Halstead.Store_Operator
                       ((Kind => Halstead_Operator.In_Halstead));

                when Token_Package.Double_Star_Token =>

                    -- increment Halstead DOUBLE_STAR operator count
                    Halstead.Store_Operator
                       ((Kind => Halstead_Operator.Double_Star_Halstead));

                when Token_Package.Abs_Token =>

                    -- increment Halstead ABS operator count
                    Halstead.Store_Operator
                       ((Kind => Halstead_Operator.Abs_Halstead));

                when Token_Package.Null_Token =>

                    -- increment Halstead NULL operator count
                    Halstead.Store_Operator
                       ((Kind => Halstead_Operator.Null_Halstead));

                when Token_Package.Equal_Token =>

                    -- increment Halstead EQUAL operator count
                    Halstead.Store_Operator
                       ((Kind => Halstead_Operator.Equal_Halstead));

                when Token_Package.Inequality_Token =>

                    -- increment Halstead INEQUALITY operator count
                    Halstead.Store_Operator
                       ((Kind => Halstead_Operator.Inequality_Halstead));

                when Token_Package.Less_Than_Token =>

                    -- increment Halstead LESS_THAN operator count
                    Halstead.Store_Operator
                       ((Kind => Halstead_Operator.Less_Than_Halstead));

                when Token_Package.Less_Than_Or_Equal_Token =>

                    -- increment Halstead LESS_THAN_OR_EQUAL operator count
                    Halstead.Store_Operator
                       ((Kind => Halstead_Operator.
                                    Less_Than_Or_Equal_Halstead));

                when Token_Package.Greater_Than_Token =>

                    -- increment Halstead GREATER_THAN operator count
                    Halstead.Store_Operator
                       ((Kind => Halstead_Operator.Greater_Than_Halstead));

                when Token_Package.Greater_Than_Or_Equal_Token =>

                    -- increment Halstead GREATER_THAN_OR_EQUAL operator count
                    Halstead.Store_Operator
                       ((Kind => Halstead_Operator.
                                    Greater_Than_Or_Equal_Halstead));

                when Token_Package.Plus_Token =>

                    -- increment Halstead PLUS operator count
                    Halstead.Store_Operator
                       ((Kind => Halstead_Operator.Plus_Halstead));

                when Token_Package.Hyphen_Token =>

                    -- increment Halstead MINUS operator count
                    Halstead.Store_Operator
                       ((Kind => Halstead_Operator.Minus_Halstead));

                when Token_Package.Ampersand_Token =>

                    -- increment Halstead CONCATENATE operator count
                    Halstead.Store_Operator
                       ((Kind => Halstead_Operator.Concatenate_Halstead));

                when Token_Package.Star_Token =>

                    -- increment Halstead STAR operator count
                    Halstead.Store_Operator
                       ((Kind => Halstead_Operator.Star_Halstead));

                when Token_Package.Slash_Token =>

                    -- increment Halstead DIVIDE operator count
                    Halstead.Store_Operator
                       ((Kind => Halstead_Operator.Divide_Halstead));

                when Token_Package.Mod_Token =>

                    -- increment Halstead MOD operator count
                    Halstead.Store_Operator
                       ((Kind => Halstead_Operator.Mod_Halstead));

                when Token_Package.Rem_Token =>

                    -- increment Halstead REM operator count
                    Halstead.Store_Operator
                       ((Kind => Halstead_Operator.Rem_Halstead));

                when Token_Package.New_Token =>

                    -- increment Halstead NEW operator count
                    Halstead.Store_Operator
                       ((Kind => Halstead_Operator.New_Halstead));

                when Token_Package.Delta_Token =>

                    -- increment Halstead DELTA operator count
                    Halstead.Store_Operator
                       ((Kind => Halstead_Operator.Delta_Halstead));

                when Token_Package.Digits_Token =>

                    -- increment Halstead DIGITS operator count
                    Halstead.Store_Operator
                       ((Kind => Halstead_Operator.Digits_Halstead));

                when Token_Package.Apostrophe_Token =>

                    -- increment Halstead APOSTROPHE operator count
                    Halstead.Store_Operator
                       ((Kind => Halstead_Operator.Tick_Halstead));

                when Token_Package.Exclamation_Mark_Token =>

                    -- increment Halstead EXCLAMATION_MARK operator count
                    Halstead.Store_Operator
                       ((Kind => Halstead_Operator.Exclamation_Mark_Halstead));
                    -- increment McCabe PI
                    Mccabe.Change_Pi;

                    --** 3/7/86 modified by DHE and BDB as per Johan
                when Token_Package.Comma_Token =>
                    -- increment Halstead COMMA operator count
                    Halstead.Store_Operator
                       ((Kind => Halstead_Operator.Comma_Halstead));

                when others =>
                    raise Syntax_Error;

            end case; -- Token is KEYWORD or PUNCTUATION

        when Token_Package.Numeric_Literal =>

            Get_Next_Token (Out_Token => Current_Token,
                            From => Current_Compilation_Unit,
                            Current_Loc => Loc);

            -- increment Halstead operand count
            Halstead.Store_Operand (Halstead_Operand.Definition
                                       (Token_Package.Value_Of
                                           (This_Token => Current_Token)));

        when Token_Package.Identifier | Token_Package.Standard_String_Literal |
             Token_Package.Alternate_String_Literal |
             Token_Package.Character_Literal =>

            Name (Current_Compilation_Unit => Current_Compilation_Unit,
                  Program_Unit => Program_Unit,
                  Halstead => Halstead,
                  Loc => Loc,
                  Mccabe => Mccabe,
                  Out_Name_Kind => Dummy_Name_Kind);

        when others =>
            raise Syntax_Error;

    end case;

end Expression_Token;