Operators

Ada Programming · Wikibooks

0%

Contents

    Text

    Size
    100%
    Theme
    Typeface
    Line length
    Spacing

    From Wikibooks, under CC BY-SA 4.0, as the source states it. This page at Wikibooks.

    Operators

    Ada. Time-tested, safe and secure.
    Ada. Time-tested, safe and secure.

    Standard operators

    Ada allows operator overloading for all standard operators and so the following summaries can only describe the suggested standard operations for each operator. It is quite possible to misuse any standard operator to perform something unusual.

    Each operator is either a keyword or a delimiter—hence all operator pages are redirects to the appropriate keyword or delimiter.

    Operators have arguments which in the RM are called Left and Right for binary operators, Right for unary operators (indicating the position with respect to the operator symbol).

    The list is sorted from lowest precedence to highest precedence.

    Logical operators

    and
    and , (also keyword and)
    or
    or , (also keyword or)
    xor
    exclusive or , (also keyword xor)

    Relational operators

    /=
    Not Equal , (also special character /=)
    =
    Equal , (also special character =)
    <
    Less than , (also special character <)
    <=
    Less than or equal to (), (also special character <=)
    >
    Greater than (), (also special character >)
    >=
    Greater than or equal to (), (also special character >=)

    Binary adding operators

    +
    Add , (also special character +)
    -
    Subtract , (also special character -)
    &
    Concatenate , & , (also special character &)

    Unary adding operators

    +
    Plus sign , (also special character +)
    -
    Minus sign , (also special character -)

    Multiplying operator

    *
    Multiply, , (also special character *)
    /
    Divide , (also special character /)
    mod
    modulus (also keyword mod)
    rem
    remainder (also keyword rem)

    Highest precedence operator

    **
    Power , (also special character **)
    not
    logical not , (also keyword not)
    abs
    absolute value (also keyword abs)

    Short-circuit control forms

    These are not operators and thus cannot be overloaded.

    and then
    e.g. if Y /= 0 and then X/Y > Limit then ...
    or else
    e.g. if Ptr = null or else Ptr.I = 0 then ...

    Membership tests

    The Membership Tests also cannot be overloaded because they are not operators.

    in
    element of, , e.g. if I in Positive then, (also keyword in)
    not in
    not element of, , e.g. if I not in Positive then, (also keywords not in)

    Range membership test

    if Today not in Tuesday .. Thursday then
       ...
    

    Subtype membership test

    Is_Non_Negative := X in Natural;
    

    Class membership test

    exit when Object in Circle'Class;
    

    Range membership test

    if Today not in Tuesday .. Thursday then
       ...
    

    Choice list membership test

    This language feature has been introduced in Ada 2012.

    Ada 2012 extended the membership tests to include the union (short-circuit or) of several range or value choices.

    if Today in Monday .. Wednesday | Friday then
       ...
    

    See also

    Wikibook

    Ada 95 Reference Manual

    Ada 2005 Reference Manual

    Ada Quality and Style Guide


    Ada Operators
    and and then > + abs &
    or or else >= - mod
    xor = < * rem in
    not /= <= ** / not in