summaryrefslogtreecommitdiffstats
path: root/source/rainerscript/expressions.rst
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--source/rainerscript/expressions.rst25
1 files changed, 25 insertions, 0 deletions
diff --git a/source/rainerscript/expressions.rst b/source/rainerscript/expressions.rst
new file mode 100644
index 0000000..a3f6060
--- /dev/null
+++ b/source/rainerscript/expressions.rst
@@ -0,0 +1,25 @@
+Expressions
+===========
+
+The language supports arbitrary complex expressions. All usual operators
+are supported. The precedence of operations is as follows (with
+operations being higher in the list being carried out before those lower
+in the list, e.g. multiplications are done before additions.
+
+- expressions in parenthesis
+- not, unary minus
+- \*, /, % (modulus, as in C)
+- +, -, & (string concatenation)
+- ==, !=, <>, <, >, <=, >=, contains (strings!), startswith (strings!)
+- and
+- or
+
+For example, "not a == b" probably returns not what you intended. The
+script processor will first evaluate "not a" and then compare the
+resulting boolean to the value of b. What you probably intended to do is
+"not (a == b)". And if you just want to test for inequality, we highly
+suggest to use "!=" or "<>". Both are exactly the same and are provided
+so that you can pick whichever you like best. So inequality of a and b
+should be tested as "a <> b". The "not" operator should be reserved to
+cases where it actually is needed to form a complex boolean expression.
+In those cases, parentheses are highly recommended.