BlitzMax/Language/Expressions

From Wikibooks, open books for an open world
Jump to navigation Jump to search

Operators[edit | edit source]

BlitzMax supports the following operators. Operators are grouped into levels of precedence, starting with the highest precedence operators:

Operator Syntax
Sub expression ( Expression )
New object New Typename
Literal Value
Identifier Value
Self object Self
Super object Super
Null value Null
Pi Pi
True True
False False
Minimum Min ( Expression1 , Expression2 )
Maximum Max ( Expression1 , Expression2 )
Member Expression . Identifier
Index Expression [ IndexExpressions ]
Call Expression ( Parameters )
Negate - Expression
Posate + Expression
Bitwise complement ~ Expression
Boolean not Not Expression
Absolute value Abs Expression
Sign Sgn Expression
Value byte size SizeOf Expression
Variable address Varptr Variable
Convert type expression Type Expression
Power Expression ^ Expression
Multiply Expression * Expression
Divide Expression / Expression
Remainder Expression Mod Expression
Bitwise shift left Expression Shl Expression
Bitwise shift right Expression Shr Expression
Arithmetic shift right Expression Sar Expression
Add Expression + Expression
Subtract Expression - Expression
Bitwise and Expression & Expression
Bitwise or Expression | Expression
Bitwise exclusive or Expression ~ Expression
Equal Expression = Expression
Not equal Expression <> Expression
Less than Expression < Expression
Greater than Expression > Expression
Less than or equal Expression <= Expression
Greater than or equal Expression >= Expression
Conditional and Expression And Expression
Conditional or Expression Or Expression

In addition, the following built in functions are also supported:

Function Syntax
Character code Asc ( Expression )
Character Chr ( Expression )
Value length Len ( Expression )

Null returns 0, an empty string, an empty array, the null object or a pointer to 0 depending on context.

True and False are integer constants with the values 1 and 0, respectively.

The index operator can be used on either arrays or strings. If used on an array, the element at the specified index is returned. If used on a string, the character code of the character at the specified index is returned.

The Not operator 'inverts' the logic of a boolean expression. If the expression evaluates to true, Not returns false and vice versa.

Asc returns the character value of the first character of a string, or -1 if the length of the string is 0.

Chr constructs a 1 character string with the specified character value.

Len can be used with either a string or array. When used with a string, Len returns the number of characters in the string. When used with an array, Len returns the number of elements in the array. In the case of multidimensional arrays, Len returns the total number of elements.

Boolean expressions[edit | edit source]

It is frequently necessary to consider an expression as 'true' or 'false', for example, for use with an If statement.

The rules for determining whether an expression is true or false are:

Expression Type Truth condition
Numeric True if value is not equal to 0
Object True if object is not equal to Null
String True if length is not equal to 0
Array True if length is not equal to 0