Expressions
Expressions are used throughout WinScript to perform logical analysis, triggers, and mathematical operations.
Logic
Logical analysis is performed in conjunction with the If, Else, and End If events. When an expression is used with an If event, all events located after the If event and before an Else or End If event will be executed if the expression evaluates as TRUE. If the expression evaluates as FALSE, any events located between the Else and End If events will be executed. If there is no Else event, the sequence will simply skip to the End If event.
Here's an example using just If and End If events:
Here's an example of If, Else, and End If being used together:
When adding events to a Timed sequence, expressions can be used in the Condition column of each event. If an expression is associated with a timed event, that event will only execute if the expression evaluates as TRUE.
Triggers
Expressions can also be used to trigger sequences. In this case, expressions are constantly analyzed and if they ever become TRUE, the trigger will occur.
Math
Mathematical operations are also possible thanks to expressions. Various operators and functions (listed below) can be used to make calculations to any constant or variable values you enter into the expression formula.
Variables
Up to 8 variable names can be used within an expression. Each variable is converted to a Decimal value before evaluating the expression.
Important Note: Variable names that contain operators such as '-' must be wrapped in backtick marks. For example, given the follow variables and values, choosing to not use backticks changes the meaning of the expression.
Name | Value |
---|---|
taco | 5 |
tuesday | 2 |
taco-tuesday | 7 |
With backticks "`taco-tuesday`+1" = 8
Without backticks "taco-tuesday+1" = 4
Expression Operators
These are the supported operators for Boolean logic:
Operator | Description |
---|---|
! | NOT |
< | Less Than |
<= | Less Than or Equal To |
> | Greater Than |
>= | Greater Than or Equal To |
== | Equal To |
!= | NOT Equal To |
&& | AND |
|| | OR |
Supported Operators:
Operator | Description |
---|---|
+ | Add |
- | Subtract |
* | Multiply |
/ | Divide |
% | Modulo |
^ | Power |
() | Parentheses |
`` | Backtick |
Expression Functions
Supported Functions:
Function | Description |
---|---|
cos(x) | cosine of a radian angle x |
cosh(x) | hyperbolic cosine of x |
acos(x) | arc cosine of x in radians |
sin(x) | sine of a radian angle x |
sinh(x) | hyperbolic cosine of x |
asin(x) | arc sine of x in radians |
tan(x) | tangent of a radian angle x |
tanh(x) | hyperbolic tangent of x atan(x) arc tangent of x in radians |
atan2(y,x) | arc tangent in radians of y/x based on the signs of both values to determine the correct quadrant |
abs(x) | absolute value of x |
ceil(x) | rounds up x to a whole number |
floor(x) | rounds down x to a whole number |
ln(x) | natural log of x (base-e) |
log(x) | log of x (base-10) |
ncr(n,r) | number of unordered set of r items from a set of n items. (combinations) |
npr(n,r) | number of ordered set of r items from a total of n items (permutations) |
pow(x,y) | x to the y power |
exp(y) | e to the y power |
fac(x) | factorial of x |
sqrt(x) | square root of x |
pi() | Pi Constant - 3.14159... |
e() | Euler's Number Constant - 2.71828... |