Section labels start with '@' character and are:
vec2 a = (0, 0) + 2 you can define it as
_#name, and then in the program section you can assign it
name = something(_1), where # is some unique number. This signals the compiler that the value is constexpr and can be computed only once and clobbered into memory. Uniforms cannot be consetexpr.
Variables:
Variables can be of type num (default desmos number type), vec2, vec3 and lists of these types (eg. vec3[]). Things can also be declared as any this works generally the same as templates in c++. If you need to restrict what the template can be, you can use any[] for lists of any type, or vecn and vecn[] to restrict to any vector type.
Most variables and operations will be fused if possible. eg. if you do num b = 1 + a; num c = b - 20 it will be treated the same as num c = 1 + a - 20.
Functions:
Functions can be defined with the syntax return_type function_name(param_type param_name, ...): followed by a block of code. The return value is specified with the return statement.
Compiler options:
compiler options can be specified by adding a # on the first line of the source, follow by space separated options. These are like command args. Current options are:
showDataVals: dumps collected values in the data section to stdout. Set by dd or dumpdata