This is a document that describe the SupyML language Global syntax ============= SupyML is a language based on the XML syntax. The official SupyML interpreter uses the xml.dom.minidom parser. Minidom handles the format error; the exceptions it raises are not handled by the SupyML parser. Commands ======== SupyML is based on call to SupyBot commands. A command is call like that: arg1 arg2 arg3 If you want to call a command in a specific plugin, use this syntax: commandName arg1 arg2 arg3 Variables ========= To get the value of a variable, type: To set the value, type: newValue Note that all variable are strings, because SupyML and SupyBot commands processing both use only strings. Some plugins, like Conditional provides different handlings for strings and numerics, but it is their own problems. Variable lifetime ----------------- When creating/setting/editing a variable or its value, the changes are available everywhere in the source code. About the names --------------- Because of/thanks to the syntax of the language, names can easily be anything, even if things other language doesn't like, for example: special chars, spaces, starting with a number, empty, etc. But, this is highly deprecated, and it raises a warning. Conditions ========== SupyML has not (yet) conditions. Use the Conditional plugin to do that. Loops ===== Loops are the main feature provided by SupyML. Here is the global syntax: booleancommand arg1 arg2 arg3 Use conditions to have changing booleans ;) While loop ---------- The syntax of the while loop is: booleancommand arg1 arg2 arg3 The command is run while the boolean is true.