Mel
Mel is the ancient language used by the Mayans to talk to the god's before they started to read the will of the gods by playing with snakesBasic
- Single line comment with //.
- Multi line comment /**/
- End every statement with a ;.
Commands
- Commands are like command-line utilities in a UNIX shell.
- Run a command with command [-flag value]. Each command has it's own number of flags (or commandline parameters).
- To get help about a command use the help command. Ex help sphere will print information on the command sphere.
- The same command is often able to both create, edit and query information.
- The default is create mode. Ex sphere DaSphere
- Use flag -query to get values. ex sphere -query -radius DaSphere
- Use flag -edit to edit values. ex sphere -edit -radius 3 DaSphere
- To get the return value of a command enclose it in backquotes. Ex $pos = `sphere -q -s DaSphere`
Variables
- Define a variable with a $ and a name. ex float $earthsize = 100
- Supported types are int, float, string, vector and matrix
- If no value is assigned it get the default one for the type.
- A bool is stored in a int. 0 is false (no and off) , other values true (yes or on).
- Logical operators is: || (or), && (and), ! (not).
- Compare operators is: <, <=, >, >=, == and !=.
Text
- Merge strings with the + symbol.
- Get the length of a string with size. ex size($saymyname).
- Escape special characters with \.
Vector
- A vector is variable that contain three floating point numbers called x,y and z.
- Assign a vector with values in <<>>. ex vector $p = <<10,20,30>>
- Access each element as x,y,z inside a (). ex move -absolute ($p.x) ($p.y) ($p.z)
- To assign a vector element create a new one and assign. ex $p = <<($p.x), ($p.y), 40>>
- * operator acts as dot product for vectors.
- ^ operator is cross product operator for vectors. Use pow command for exponent of numbers.
Matrix
- A matrix is a table of floating point numbers.
- To create a matrix use the matrix type follow by the number of rows and columns. Ex matrix $m[3][4];
- Assign a matrix by using <<>> separated by commas in each row. matrix $m[2][2] = <<1,2;3,4>>
- Assign a element in the matrix with $m[1][2] = 5;
Statements
if ($a == $b)
{
...
}
else if(($a == $c)
{
...
}
else
{
...
}
switch ($form)
{
case "circle":
...
break;
case "cone":
...
break;
default:
...
break
}
while ($a < size($array))
{
...
}
do
{
} while($a < 100)
for($i = 0; $i < 10; $i++)
{
if ($i == 5) continue;
...
}
string $array[3] = {"circle","sphere", "cone"};
for ($k in $array)
{
...
}
Reference
Mel Command Reference - 2017