A TTCN-3 programozási nyelv

Operátorok

A TTCN-3 nyelvben az alábbi operátorok léteznek.

1. táblázat: Operátorok listája a TTCN-3-ban
Operátor Alkalmazhatóság Eredmény típusa Példák
Aritmetikai operátorok
+ (unáris)
  • integer
  • float

  • operandus típusa

+5

+5.0

- (unáris)

-5

-5.0

+ (bináris)

5 + 2

2.0 + 4.0

2 + 4.0 (hiba, inkompatibilis típus)

- (bináris)

5 - 2

2.0 - 4.0

2 - 4.0 (hiba, inkompatibilis típus)

*

5 * 2

2.0 * 4.0

2 * 4.0 (hiba, inkompatibilis típus)

/

5 / 2 (értéke 2)

5 / -2 (értéke -2)

-5 / 2 (értéke -2)

-5 / -2 (értéke 2)

2.0 / 4.0 (értéke 0.5)

2 / 4.0 (hiba, inkompatibilis típus)

rem
  • integer
  • integer
x rem y = x - y * (x/y)
mod
x mod y = x rem |y| ha x >= 0 = 0 ha x < 0 and x rem |y| = 0 = |y| + x rem |y| ha x < 0 and x rem |y| < 0
Szöveges operátorok
&

  • minden szöveges típusra

  • operandusok típusa

"Hello, " & "world!" (értéke "Hello, world!")

"Ελληνικά " & "Русский"

'1101'B & '11100'B

'3EF'H & 'AC'H

'15EF'O & '2844'O

'15EF'O & '2844'H (hiba, inkompatibilis típus)

Relációs operátorok
==

  • minden kompatibilis típusra

  • boolean

5 == 2 (értéke false)

true == false (értéke false)

5 == 5 (értéke true)

myVar == { a := 1, b := 2.0 } (OK, a jobb operandus típusa levezethető a bal típusa alapján)

{ a := 1, b := 2.0 } == myVar (OK, a bal operandus típusa levezethető a jobb típusa alapján)

{ a := 1, b := 2.0 } == { a := 1, b := 2.0 } (hiba, operandusok típusa nem vezethető le)

!=

5 != 2 (értéke true)

true != false (értéke true)

5 != 5 (értéke false)

<
  • integer
  • float
  • enumerated
5 < 10 (értéke true)
>
5.0 > 10.0 (értéke false)
<=
E_ACCEPT <= E_DENY (az összehansonlítás az enumeration értéei alapján hajtódik végre)
>=
1 >= 2.0 (hiba, inkompatibilis típus)
Logikai operátorok
not
  • boolean
  • boolean

not true (értéke false)

not false (értéke true)

and

true and false (értéke false)

or

true or false (értéke true)

xor

true xor false (értéke true)

Bitenkénti operátorok
not4b
  • bitstring
  • hexstring
  • octetstring

  • operandusok típusa

not4b '1010'B (értéke '0101'B)

not4b 'A'H (értéke '5'H)

not4b 'A0'O (értéke '5F'O)

and4b

'1100'B and4b '1010'B (értéke '1000'B)

'C'H and4b 'A'H (értéke '8'H)

'CF'O and4b 'A0'O (értéke '80'O)

or4b

'1100'B or4b '1010'B (értéke '1110'B)

'C'H or4b 'A'H (értéke 'E'H)

'CF'O or4b 'A0'O (értéke 'EF'O)

xor4b

'1100'B xor4b '1010'B (értéke '0110'B)

'C'H xor4b 'A'H (értéke '6'H)

'CF'O xor4b 'A0'O (értéke '6F'O)

'CF'O xor4b 'A0'H (hiba, inkompatibilis típus)

Eltoló operátorok
<<

bal operandus:

  • bitstring
  • hexstring
  • octetstring

jobb operandus:

  • integer

  • bal operandus típusa

'111001'B << 2 (értéke '100100'B)

'12345'H << 2 (értéke '34500'H)

'1122334455'O << 2 (értéke '3344550000'O)

>>

'111001'B >> 2 (értéke '001110'B)

'12345'H >> 2 (értéke '00123'H)

'1122334455'O >> 2 (értéke '0000112233'O)

Forgató operátorok
<@

bal operandus:

  • minden szöveges típus

jobb operandus

  • integer

  • bal operandus típusa

'111001'B <@ 2 (értéke '100111'B)

'12345'H <@ 2 (értéke '34512'H)

'1122334455'O <@ 2 (értéke '3344551122'O)

"abcde" <@ 2 (értéke "cdeab")

@>

'111001'B @> 2 (értéke '011110'B)

'12345'H @> 2 (értéke '45123'H)

'1122334455'O @> 2 (értéke '4455112233'O)

"abcde" @> 2 (értéke "deabc")

Az operátorprecedenciák az alábbi táblázat szerint alakulnak.

2. táblázat: TTCN-3 operátor precedencia
Operátorok (csökkenő erősségi sorrendben)
( ... )
+ (unáris) - (unáris)
* / mod rem
+ (bináris) - (bináris) &
not4b
and4b
xor4b
or4b
<< >> <@ @>
< > <= >=
== !=
not
and
xor
or

A nyelv nem támogatja az operátor felüldefiniálást és új operátorokat sem lehet bevezetni.