Syntax

Blocks

In Robin, particular blocks of commands are nested in a block whose end is marked as “end”. These are commands included in conditionals, in loops, functions and other similar concepts.

In the example below, an if conditional is used. If VarA is 0, then VarB will take the value False. Conversely, if VarA is 1, VarB will be True. In the event that there is another value for VarA, VarB will be “empty”.

The three assignment statements, will be nested under each section of the condition.

if VarA = 0 then
    set VarB to 'False'
else if VarA = 1 then
    set VarB to 'True'
else
    set VarB to 'empty'
end
Similarly, blocks are found in functions. The commands of the functions, are nested under the function.
function functionname
    set g:output1 to 1
end
call myfunction2

Comments

As in all programming languages, commenting is a very important aspect required to allow developers set placeholders for future implementations as well as to keep track of what each section performs.

Adding a comment

The first way to set a comment, is just by using the word “comment”

comment This part of the code is a comment and it's not executed.

Alternatively, a comment can be set by using a hash “#”

# This part of the code is a comment and it's not executed.
As in everything else in Robin, using a backslash in the end of a line will carry the properties of the line.

This is the case in Robin as well. Below, we have a multiline comment.

comment This is a multiline comment\

Which continues to the next line.

The multiline comment can only be used with the first method. The hash “#” method is used for single line comments.

Escaping Restricted Characters

Note that in Robin particular symbols are used in commands for specific purposes. For example to set a text value to a variable, the text needs to be within single, double, or tripple quotes.

In case there is the same quotes used in the text as well, the symbol can be escaped using a backslash (\)

 set TextVar to 'That\'s a quote used within the text.'
  

Enabling and Disabling actions

In Robin, all commands that are used in an automation are executed one by one sequentially.

In order to prevent one command from executing without removing it, just disable it.

The word “disable” in the beginning of the line disables the action.

disable set x to 1
To disable a larger block of actions, such as a loop or a condition, use the terms “disable block” in the beginning of the first line.

disable block loop i from 1 to 100
    set x to i

Using the disable without the block in a loop will disable the parent command, however the nested commands will be executed. For conditionals the “disable” keyword equals the “disable block”.