
Model 2461 Interactive SourceMeter® Instrument Reference Manual
Section 7: Introduction to TSP operation
2461-901-01 A/November 2015
7-17
Operator precedence
Operator precedence in Lua follows the order below (from higher to lower priority):
•
^
(exponentiation)
•
not, -
(unary),
!
(logical NOT)
•
*, /
,
<<
,
>>
•
+, -
,
&
,
|
,
^^
•
..
(concatenation)
•
<
,
>
,
<=
,
>=
,
~=
,
!=
,
==
•
and
•
or
You can use parentheses to change the precedences in an expression. The concatenation ("
..
") and
exponentiation ("
^
") operators are right associative. All other binary operators are left associative. The
examples below show equivalent expressions.
Equivalent expressions
r offset < testValue/2+0.5
=
(r offset) <
((testValue/2)+0.5)
3+reading^2*4
=
3+((reading^2)*4)
Rdg < maxRdg and lastRdg <=
expectedRdg
=
(Rdg < maxRdg) and (lastRdg <=
expectedRdg)
-reading^2
=
-(reading^2)
reading^testAdjustment^2
=
reading^(testAdjustment^2)
Functions
With Lua, you can group commands and statements using the
function
keyword. Functions can
take zero, one, or multiple parameters, and they return zero, one, or multiple values.
You can use functions to form expressions that calculate and return a value. Functions can also act
as statements that execute specific tasks.
Functions are first-class values in Lua. That means that functions can be stored in variables, passed
as arguments to other functions, and returned as results. They can also be stored in tables.
Note that when a function is defined, it is stored in the run-time environment. Like all data that is
stored in the run-time environment, the function persists until it is removed from the run-time
environment, is overwritten, or the instrument is turned off.
Create functions using the function keyword
Functions are created with a message or in Lua code in either of the following forms:
function
myFunction
(
parameterX
)
functionBody
end
myFunction
= function (
parameterX
)
functionBody
end