Operators

In this chapter we will introduce the operators provided by the Ring programming language.

Arithmetic Operators

The next table presents all of the arithmetic operators provided by the Ring language. Assume variable X=50 and variable Y=10 then:

Operator

Description

Example

Result

+

Add

x+y

60

-

Subtract

x-y

40

*

Multiplies

x*y

500

/

Divide

x/y

5

%

Modulus

x%y

0

++

Increment

x++

51

- -

Decrement

x- -

49

Relational Operators

The next table presents all of the relational operators provided by the Ring language. Assume variable X=50 and variable Y=10 then:

Operator

Description

Example

Result

=

Equal

x = y

False

!=

Not Equal

x != y

True

>

Greater than

x > y

True

<

Less than

x < y

False

>=

Greater or Equal

x >= y

True

<=

Less than or Equal

x <= y

False

Logical Operators

The next table presents all of the logical operators provided by the Ring language. Assume variable X=True and variable Y=False then:

Operator

Description

Example

Result

and

Logical AND

x and y

False

or

Logical OR

x or y

True

not

Logical Not

not x

False

Another style

Operator

Description

Example

Result

&&

Logical AND

x && y

False

||

Logical OR

x || y

True

!

Logical Not

! x

False

Bitwise Operators

The next table presents all of the bitwise operators provided by the Ring language. Assume variable X=8 and variable Y=2 then:

Operator

Description

Example

Result

&

Binary AND

x & y

0

|

Binary OR

x | y

10

^

Binary XOR

x ^ y

10

~

Binary Ones Complement

~x

-9

<<

Binary Left Shift

x << y

32

>>

Binary Right Shift

x >> y

2

Assignment Operators

The next table presents all of the assignment operators provided by the Ring language.

Assume variable X=8 then:

Operator

Description

Example

Result

=

Assignment

x = 10

x=10

+=

Add AND assignment

x += 5

x=13

-=

Subtract AND assignment

x -= 3

x=5

*=

Multiply AND assignment

x *= 2

x=16

/=

Divide AND assignment

x /= 3

x=2.67

%=

Modulus AND assignment

x %= 2

x=0

<<=

Left shift AND assignment

x <<= 2

x=32

>>=

Right shift AND assignment

x >>= 2

x=2

&=

Bitwise AND assignment

x &= 4

x=0

|=

Bitwise OR and assignment

x |= 3

x=11

^=

Bitwise XOR and assignment

x ^= 4

x=12

Misc Operators

Operator

Description

:literal

using : before identifier mean literal

Start:End

create list contains items from start to end

[list items]

define list items

list[index]

access list item

obj.name

using the dot operator to access object members (attributes/methods).

obj {stmts}

execute statements with direct access to object attributes & methods

func(para,…)

call function using parameters separated by comma

? <expr>

Print expression then new line

Operators Precedence

The next table present operators from higher precedence (Evaluated first) to lower precedence.

Operator

. [] () {}

- ~ :Literal [list items]

++ - -

Start:End

* / %

+ -

<< >>

&

| ^

< > <= >=

= !=

not !

and or && ||

Assignment = += -= *= /= %=>>= <<= &= ^= |=

?

Example:

See 3+5*4       # prints 23