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 hereOperation or operator you attempted to use is not supported. Example:
var result = "string" - 2;  // operator - is not supported for strings
CE002: Divison by zeroDivison by zero has been encountered.
int array[5/0];
CE003: The specified identifier was not foundYou referenced the previously undeclared identifier.
public struct A
{
    int a;
    int b;
    int arr[c];   // generates CE003, c is undeclared
};
CE004: Scalar is expectedA 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 expectedA 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 rangeAn 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 yetCE008: Invalid bit field sizeCE009: Syntax errorCE010: Type has only been forward-declaredAn 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 typesizeof 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 redefinedAn attempt to redefine already defined type is detected.
struct B
{
    int a;
};
struct B  // generates CE012
{
    int c;
};
CE013: Assertion failedCE014: Constant expression is expectedCE015: Constant string expression is expectedCE016: Wrong number of arguments for a function callCE017: 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 engineCE019: Invalid argumentCE020: Maximum allowed recursion depth is reachedCheck 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