The Open Protocol Notation Programming Guide 1 Document Version 1 (4/23/2018)



Download 1.37 Mb.
Page18/24
Date23.04.2018
Size1.37 Mb.
#46651
1   ...   14   15   16   17   18   19   20   21   ...   24

Library Reference


The OPN standard library provides definitions that are common to all technologies supported by the OPN tool chain. This includes the following:

Constants, patterns and functions on primitive and structured values.

Aspects that are technology independent, related to encoding, documentation, and protocol metadata.

    1. Any


These operators apply to any type.
module Standard;
bool operator ==(any x, any y);

bool operator !=(any x, any y);

T operator ?? (T x, T y);

string operator as(any x);


    1. Scalars


The semantics of OPN operators is aligned to C# conventions.
      1. Integers


All arithmetic operations happen on 32 bits, 64 bits, or 128 bits. Therefore, on 8 and 16 bit integers, only conversion operators are defined. See also the implicit conversion rules in section 2.1.7.
        1. byte


module Standard;

byte operator as (sbyte x);

byte operator as (short x);

byte operator as (ushort x);

byte operator as (int x);

byte operator as (uint x);

byte operator as (long x);

byte operator as (ulong x);

byte operator as (string s);

        1. sbyte


module Standard;

sbyte operator as (byte x);

sbyte operator as (short x);

sbyte operator as (ushort x);

sbyte operator as (int x);

sbyte operator as (uint x);

sbyte operator as (long x);

sbyte operator as (ulong x);

sbyte operator as (string s);

        1. ushort


module Standard;

ushort operator as (short x);

ushort operator as (int x);

ushort operator as (uint x);

ushort operator as (long x);

ushort operator as (ulong x);

ushort operator as (string s);

        1. short


module Standard;

short operator as (ushort x);

short operator as (int x);

short operator as (uint x);

short operator as (long x);

short operator as (ulong x);

short operator as (string s);

        1. int


module Standard;

int operator + (int x);

int operator - (int x);

int operator ~ (int x);

int operator + (int x, int y);

int operator - (int x, int y);

int operator * (int x, int y);

int operator / (int x, int y);

int operator % (int x, int y);

int operator & (int x, int y);

int operator | (int x, int y);

int operator ^ (int x, int y);

bool operator == (int x, int y);

bool operator != (int x, int y);

bool operator <= (int x, int y);

bool operator < (int x, int y);

bool operator >= (int x, int y);

bool operator > (int x, int y);

int operator << (int x, int y);

int operator >> (int x, int y);

int operator as (uint x);

int operator as (long x);

int operator as (ulong x);

int operator as (bool x);

int operator as (string s);

int Min(int x, int y);

int Max(int x, int y);

int Abs(int x);


        1. uint


module Standard;

uint operator + (uint x);

uint operator - (uint x);

uint operator ~ (uint x);

uint operator + (uint x, uint y);

uint operator - (uint x, uint y);

uint operator * (uint x, uint y);

uint operator / (uint x, uint y);

uint operator % (uint x, uint y);

uint operator & (uint x, uint y);

uint operator | (uint x, uint y);

uint operator ^ (uint x, uint y);

bool operator == (uint x, uint y);

bool operator != (uint x, uint y);

bool operator <= (uint x, uint y);

bool operator < (uint x, uint y);

bool operator >= (uint x, uint y);

bool operator > (uint x, uint y);

uint operator << (uint x, int y);

uint operator >> (uint x, int y);

uint operator as (int x);

uint operator as (long x);

uint operator as (ulong x);

uint operator as (string s);

uint Min(uint x, uint y);

uint Max(uint x, unit y);


        1. long


module Standard;

long operator + (long x);

long operator - (long x);

long operator ~ (long x);

long operator + (long x, long y);

long operator - (long x, long y);

long operator * (long x, long y);

long operator / (long x, long y);

long operator % (long x, long y);

long operator & (long x, long y);

long operator | (long x, long y);

long operator ^ (long x, long y);

bool operator == (long x, long y);

bool operator != (long x, long y);

bool operator <= (long x, long y);

bool operator < (long x, long y);

bool operator >= (long x, long y);

bool operator > (long x, long y);

long operator << (long x, int y);

long operator >> (long x, int y);

long operator as (ulong x); 

long operator as (string s);

long Min(long x, long y);

long Max(long x, long y);

long Abs(long x);

        1. ulong


module Standard;

ulong operator + (ulong x);

ulong operator - (ulong x);

ulong operator ~ (ulong x);

ulong operator + (ulong x, ulong y);

ulong operator - (ulong x, ulong y);

ulong operator * (ulong x, ulong y);

ulong operator / (ulong x, ulong y);

ulong operator % (ulong x, ulong y);

ulong operator & (ulong x, ulong y);

ulong operator | (ulong x, ulong y);

ulong operator ^ (ulong x, ulong y);

bool operator == (ulong x, ulong y);

bool operator != (ulong x, ulong y);

bool operator <= (ulong x, ulong y);

bool operator < (ulong x, ulong y);

bool operator >= (ulong x, ulong y);

bool operator > (ulong x, ulong y);

ulong operator << (ulong x, int y);

ulong operator >> (ulong x, int y);

ulong Min(ulong x, ulong y);

ulong Max(ulong x, ulong y);

ulong operator as (long x); 

ulong operator as (string s);


      1. Enums


// The EnumToString function attempts to interpret the given value as the

// given enum pattern name, and returns the corresponding friendly enum name.

// If the given value is not an enum, returns the normal string

// representation of the value instead.

string EnumToString(any @value, string enumPatternName);

// Tests if the t value is in the range of explicitly defined enum

// values of T.

bool InRange(T t);


      1. Floating Point

        1. Float


module Standard;

float operator + (float x);

float operator - (float x);

float operator + (float x, float y);

float operator - (float x, float y);

float operator * (float x, float y);

float operator / (float x, float y);

float operator % (float x, float y);

bool operator <= (float x, float y);

bool operator < (float x, float y);

bool operator >= (float x, float y);

bool operator > (float x, float y);

float operator as (byte x);

float operator as (short x);

float operator as (ushort x);

float operator as (int x);

float operator as (uint x);

float operator as (long x);

float operator as (ulong x);

float operator as (double x);

float operator as (decimal x);

float operator as (string s);


        1. Double


module Standard;

double operator + (double x);

double operator - (double x);

double operator + (double x, double y);

double operator - (double x, double y);

double operator * (double x, double y);

double operator / (double x, double y);

bool operator == (double x, double y);

bool operator != (double x, double y);

bool operator <= (double x, double y);

bool operator < (double x, double y);

bool operator >= (double x, double y);

bool operator > (double x, double y);

double operator as (byte x);

double operator as (short x);

double operator as (ushort x);

double operator as (int x);

double operator as (uint x);

double operator as (long x);

double operator as (ulong x);

double operator as (float x);

double operator as (decimal x);

double operator as (string s);

double Min(double x, double y);

double Max(double x, double y);

double Abs(double x);


        1. Decimal


module Standard;

decimal operator + (decimal x);

decimal operator - (decimal x);

decimal operator + (decimal x, decimal y);

decimal operator - (decimal x, decimal y);

decimal operator * (decimal x, decimal y);

decimal operator / (decimal x, decimal y);

decimal operator % (decimal x, decimal y);

bool operator <= (decimal x, decimal y);

bool operator < (decimal x, decimal y);

bool operator >= (decimal x, decimal y);

bool operator > (decimal x, decimal y);

decimal operator as (byte x);

decimal operator as (short x);

decimal operator as (ushort x);

decimal operator as (int x);

decimal operator as (uint x);

decimal operator as (long x);

decimal operator as (ulong x);

decimal operator as (float x);

decimal operator as (double x);

decimal operator as (string s);

decimal Min(decimal x, decimal y);

decimal Max(decimal x, decimal y);

decimal Abs(decimal x);

      1. Any Number


The AnyNumber is a pattern that represents all possible numeric types available in OPN.

module Standard;

pattern AnyNumber = byte | sbyte | short | ushort | int | uint | long | 

                 ulong | float | double | decimal;


      1. Booleans


module Standard;

bool operator ! (bool x);

bool operator ~ (bool x);

bool operator & (bool x, bool y);

bool operator ^ (bool x, bool y);

bool operator | (bool x, bool y);

bool operator && (bool x, bool y);

bool operator || (bool x, bool y);

bool operator <=> (bool x, bool y);

bool operator ==> (bool x, bool y);

bool operator == (bool x, bool y);

bool operator != (bool x, bool y);

bool operator <= (bool x, bool y);

bool operator < (bool x, bool y);

bool operator >= (bool x, bool y);

bool operator > (bool x, bool y);

bool operator as (int x);

bool operator as (string s);


      1. Characters


module Standard;

bool operator == (char x, char y);

bool operator != (char x, char y);

bool operator <= (char x, char y);

bool operator < (char x, char y);

bool operator >= (char x, char y);

bool operator > (char x, char y);

char operator as (string s);

char ToUpper(this char c);

char ToLower(this char c);




    1. Download 1.37 Mb.

      Share with your friends:
1   ...   14   15   16   17   18   19   20   21   ...   24




The database is protected by copyright ©ininet.org 2024
send message

    Main page