The script was designed to be very similar to C, however there are a few differences as outlined on this page.
Comma-Separated Declarations: In C/C++, it is possible to declare multiple variables at once using a comma between them. This is currently not supported.
Multi-Dimensional Arrays: Multi-dimensional arrays are not supported and never will be. You can simulate them, however, by creating a structure whose only member is an array of the desired type, then create an array of that structure.
Enumeration Types: Declaring a variable as an enumerated type automatically resolves to type int instead, and is therefore in no way actually associated with the specified enumeration. Declaring variables as enumerated types is purely for visual candy.
Constants in Function Parameters: Function parameters declared as const have no special properties associated with being constant. The compiler literally strips this flag away, allowing parameters to be used in exactly the same way as they would without having been declared const. Declaring function parameters as const is for visual candy.
Passing Structures/Unions to Functions by Value: Structures and unions can be passed to functions as pointers, but not by value.
Functions Returning Structures/Unions: Functions can not return structures and unions by value, however they can return pointers to them.
External Functions: External functions are not yet supported, however there are plans to support them in the future (note that these external functions are not the same as C/C++ external functions—see Externals for details).
External Pointer Variables as Function Arguments: External variables declared as pointers can not yet be passed to functions, though this is planned for the future.