A IS B
A IS B is a derivative of Set, but with a different, more natural syntax.
Set vs. A IS B
The difference between Set and A IS B is like stated, the syntax. You can say it resembles a certain block-puzzle game.
Instead of:
set a b
you use:
AA IS BB
Natural, isn't it?
Also, unlike Set, you're not setting things, you reference things. For example:
AA IS 2 > set AA to 2 BB IS AA > reference BB as AA BB IS 3 > set BB to 3 > AA is 3
The same thing applies backwards.
Variables that don't exist or referenced to nothing will have a value of null.
Should you use A IS B instead of Set? I don't know, both of them are pretty pointless.
Variables
A IS B supports 8353082550 variables. Variables in A IS B can be at most 7 characters long, at least 2 characters long, and are strictly uppercase only. One-character "variables" are literals. There's also some system variables. Unlike regular variables, system variables (and literals) are not reference-able; variables that read or set it will not be affected by it.
TERM
variable
TERM
indicates input/output. It works exactly the same as the !
in Set.
LINE
variable
LINE
represent the line of code which is being executed. It works exactly the same as the ?
in Set.
AND
combiner
AND
has 2 functions:
If used after IS
, it will combine/add things:
AA IS BB AND 2 > AA is BB plus 2
Note that AA is still referenced with BB (self reference sets the variable, not reference it to itself, that would be very weird).
For example:
AA IS 3 BB IS AA AND 2 AA IS 5 > BB is 7 (AA plus 2)
The same thing applies backwards.
If used before IS
, it will apply the reference to both objects:
AA AND BB IS CC > AA IS CC and BB IS CC but AA IS NOT BB
IF...THEN
conditional
It's pretty obvious.
Example:
AA IS 1 IF AA IS 0 THEN AA IS 2 > If AA equals 0, then set AA to 2 IF AA IS NOT 0 THEN AA IS 3 > If AA is not equal to 0, then set AA to 3 > AA IS 3
NOT
negation
NOT
has 3 functions:
If used before variables, it will reference every variable but the variable being NOTed.
AA IS 1 BB IS 2 NOT AA IS 3 > BB is 3, AA is still 1
If used after IS
, it will set a flag such that if the variable equals the flag, it will raise an error.
AA IS 1 AA IS NOT 3 > AA should not be 3 AA IS 3 > error, since AA should not be 3
It may also be used inside IF...THEN
. In this case, it equals to [.../...]
in Set.
If used after IS
and before variables before IS
, it will de-reference that variable to every variable.
AA IS 1 AA IS NOT AA > AA is de-referenced
If used after AND
(right side), it will negate instead of adding.
AA IS 5 AA IS BB AND NOT 3 > AA IS 2
Example Codes
Hello, world!
TERM IS H TERM IS e TERM IS l TERM IS l TERM IS o TERM IS , TERM IS 32 TERM IS w TERM IS o TERM IS r TERM IS l TERM IS d TERM IS 33
Truth machine
INPUT IS TERM IF INPUT IS NOT 48 THEN LINE IS 5 TERM IS 49 LINE IS 3 TERM IS 48