aboutsummaryrefslogtreecommitdiff
path: root/documentation/typing.md
diff options
context:
space:
mode:
Diffstat (limited to 'documentation/typing.md')
-rw-r--r--documentation/typing.md39
1 files changed, 38 insertions, 1 deletions
diff --git a/documentation/typing.md b/documentation/typing.md
index 57b792d..9639ac8 100644
--- a/documentation/typing.md
+++ b/documentation/typing.md
@@ -77,7 +77,7 @@ table, a text will always be greater than a number (`'a' > 9999` will return
## Explicit conversion
-### From string to num
+### From string to integer
`isnum(…)` will tell you if a value is an integer or not:
@@ -93,3 +93,40 @@ val('123') -> 123
val('abc') -> 0 ! No error here
```
+### From integer to string
+
+`str(…)` will convert a number in string.
+
+## QSP Syntax Parser
+
+> [!NOTE]
+> This parts describe how QSP Syntax Parser deal with the type system. This is
+> not a part of the language reference.
+
+### No implicit conversion
+
+*Explicit is better than implicit.*
+
+Implicit conversion is a bad thing. It can raise errors during the game if you
+don’t care, and can hide other error in the code:
+
+This code is valid, but does not work as expected (because of a `$` is missing
+in the if clause, `$myvar` and `myvar` are two differents variables):
+
+```
+$myvar = 'VALUE'
+…
+if myvar = 'VALUE':
+ …
+```
+
+In order to spot this kind of errors, a warning will be raised here.
+
+### The boolean type
+
+I’ve added a boolean type which does not exists in the original syntax. In QSP,
+the value `-1` stand for `True` and `0` for `False.`
+
+Because *Readability counts.* , the application will raise a warning if a
+String or an integer is directly given in an if clause. A comparaison operator
+is required.