OK, simple rule: if it goes and runs some other code then it's a command, and would require brackets to call
Commands are just external functions which are called from DBPro, whereas things like do, loop, etc. do not run any external code, they ARE the code.
As for definitions, every logical line of code (ie. ignoring empty lines, comments, etc.) must be a statement.
The possible statements allowed are defined by the language, but for DBPro include:
- Assignment (a = 1, b = upkey(), etc.)
- Function call (sync, myfunction(), etc.)
- Variable declaration (myvar as integer)
- Flow control (do, loop, if, function, label, etc.)
- Data statement (data)
When I said "statement" I meant the flow control statements and data statements, as that is how they are usually referred to. (The do statement, the while statement, etc.)
I've used the term "Command" to mean functions from a dll in the plugins, plugins-user or plugins-licensed directories, ie. a built in function.
As for the reason behind having brackets around all commands: You have to use brackets when calling a user defined function in DBPro, even when it doesn't return a value. Why should it be any different for built in functions (commands).
[b]