Device Monitoring Studio - TODO
Docs

Errors

This topic describes all compilation and binding errors generated by Device Monitoring Studio.

CE001: The requested operation is not allowed on the given data type or not expected here

Operation or operator you attempted to use is not supported. Example:

var result = "string" - 2;  // operator - is not supported for strings
CE002: Divison by zero

Divison by zero has been encountered.

int array[5/0];
CE003: The specified identifier was not found

You referenced the previously undeclared identifier.

public struct A
{
    int a;
    int b;
    int arr[c];   // generates CE003, c is undeclared
};
CE004: Scalar is expected

A requested operation is allowed only on scalar values.

public struct A
{
    int data[10];
    int array[data];  // generates CE004, data is not a scalar
};
CE005: Vector is expected

A requested operation is allowed only on vector values.

public struct A
{
    int a;
    int b[a[1]];  // generates CE005, a is not a vector
};
CE006: Array index is out of range

An attempt to access array's element that is outside of the declared array size.

public struct A
{
    int a[10];
    int b[a[12]]; // generates CE006, a only has 10 elements (0..9)
};
CE007: Not implemented yet
This operation has not yet been implemented.
CE008: Invalid bit field size
Unsupported bit field size is used.
CE009: Syntax error
See error's additional message for detailed syntax error information.
CE010: Type has only been forward-declared

An attempt to materialize a type that has only been forward-declared is detected.

// forward declare B
struct B;

public struct A
{
    B data;    // generates CE010
};

// end of file
CE011: Operation not supported for dynamic type

sizeof operator is used with dynamic type.

struct B
{
    int size;
    char data[size];
};

public struct A
{
    char reserved[sizeof(B)]; // generates CE011, B is dynamic type
};
CE012: Type is redefined

An attempt to redefine already defined type is detected.

struct B
{
    int a;
};

struct B  // generates CE012
{
    int c;
};
CE013: Assertion failed
Assertion (generated by $assert directive) has failed.
CE014: Constant expression is expected
Compiler expects a constant expression here.
CE015: Constant string expression is expected
Compiler expects a constant string expression here.
CE016: Wrong number of arguments for a function call
An invalid number of arguments used in a call to built-in function.
CE017: Subscript operation for non-indexed array (hint: remove [noindex] attribute)

[] operator has been used for non-indexed array. Remove the noindex attribute.

struct B { … };

struct A
{
    [noindex] B data[1000];

    char reserved[data[5].size];  // generates CE017, remove [noindex] from previous line
};
CE018: Error returned by JavaScript engine
JavaScript function returned an error.
CE019: Invalid argument
Invalid argument has been passed to built-in function.
CE020: Maximum allowed recursion depth is reached

Check your source file for infinite recursion.

struct B;

struct A
{
    B b;
};

struct B
{
    A a;
};

// will generate CE020 after several iterations
CE021: Expression of another type is expected
Compiler expects expression of another type here. Additional information specifies what type is expected.