daVinci_command ::= tcl(tcl_cmd) | (... other cases deleted ...) tcl_cmd ::= eval(string) | eval_file(filename). filename ::= string.Here are some examples for valid commands with respect to this grammar (but please do not try to send such Tcl-scripts to daVinci). :-)
tcl(eval("Hello")) tcl(eval_file("daVinci"))Usually, whitespace (i.e. space, tab or return/newline characters between non-terminal symbols) is allowed, but should not be used in a term to reduce the amount of transmitted data. Return or newline characters must not be used in a term if send to the API. The reason for this restriction is that a newline character is needed to signal the end of a command if sent on a pipe, i.e. the buffer will flush as soon as a newline appears. So, with a newline inside the term, it will be split at this position, resulting in a syntax error for the fragment. If you need to have newline characters inside of a string (e.g. to visualize a node with multiline text), you can use the well known C escape mechanism of ("\n").
Note: As a result of using Tcl/Tk for the implemantation of the user interface, some characters have a special meaning for Tcl. So we have used '{' and '}' as delimiters for sending strings to Tcl. Therefore Tcl complains about unbalanced braces, if somewhere in a string only one of both is used (i.e. "}" or "{", whereas "{}" is allowed). So please avoid unbalanced braces in strings or you'll get Tcl/Tk error messages on command-line.