Integrated Development
Environment (IDE) Documentation:

Compiling Programs

Programs can be compiled by selecting the appropriate option under the Debug menu. Additionally, the IDE will automatically compile the program, if necessary, before simulating, emulating, and uploading.

While compiling, the IDE will display a dialog with the compile's status. Compiler warnings will be displayed in the bottom portion of the dialog. Fatal errors are displayed in their own dialogs.

Warnings

XferMemoryRisk

Possible memory overflow into Xfer ports.

This warning is raised to indicate that the memory used by variables and calculations could potentially overflow into the memory used by the Xfer ports. The additional information supplied with this warning will help you diagnose whether or not you should be concerned.

Errors

CodeSyntaxError

Raised when a syntax error is encountered.

This error generally indicates an error in the parameters passed to a function. The error text should explain what was expected.

ConnectionError

Raised when an expected connection cannot be found.

This error appears when the blocks in a flowchart are not connected correctly. The most common causes are:

  • Blocks with unconnected sockets
  • Output sockets that don't connect to an input socket
  • Lines that loop back to themselves

OutOfRAMError

Raised when insufficient RAM exists to allocate variables.

This error indicates that your program uses too many variables. The best way to work around this error is to go through your variables one by one and determine if any are not needed.

In such cases, you can usually find variables that have been defined but are not needed. Alternatively, you may be able to use the same variable in multiple places. Ask yourself how long each saved value is needed.

ParseError

Raised when the code doesn't match the expected syntax.

This is probably the most common error you will encounter. Almost every type-o will cause a ParseError. The row and column indicators will indicate where the compiler got confused.

RangeError

Raised when a constant is out of range.

The IDE compiler only supports 16-bit integers. Make sure any constant you use is within the range -32,768 to 32,767.

ReadOnlyError

Raised when the user tries to write to a read-only token.

Various ports, such as DI, are read-only and cannot be written to.

RedefinitionError

Raised when a token is defined multiple times.

This error indicates that you have defined multiple variables or labels with the same name. Either locate the erroneous defintion and remove it, or change one of the definitions to a new name.

ReservedWordError

Raised when a reserved word is used inappropriately.

The most common cause for this error is naming a variable or label by one of the language's reserved words:

abs ADC ADC_A
ADC_B ADC_C ADC_D
ADC_raw and break
case Commas const
continue Count DAC
DAC_B DAC_D default
DI DO do
else end for
FormatInt FSign goto
if int MBGetDI
MBGetDO MBGetErr MBGetHold
MBGetInput MBPutDO MBPutHold
ModbusAddr not or
ParseInt Pulse RightJ
SerialIn SerialOut start
stop string switch
timer until wait
while Width Xfer
ZeroF

UndefinedLabelError

Raised when a label is used but not defined.

This error indicates that you have a goto command that refers to a label that was not defined. The most common causes of this error are type-o's and errors in capitalization. Remember, the IDE is case sensative, so make sure that you don't define a loop as:

LOOP:

and then refer to it with:

goto Loop;

UnknownVariableError

Raised when a variable is used but not allocated.

This is a pretty easy error to correct. Identify the undefined variable from the error message text and add a definition for it.

UnusedObjectError

Raised when an object exists but isn't connected to the main program.

This error is similar to the ConnectionError. Make sure there is a path from the Start block to every other block in the program.

VarTypeError

Raised when a variable has the wrong type.

This error can be raised in a wide variety of instances, but the root cause is that the compiler was expecting a value of one type and yet it found a different type.

The most common cause for this error is from trying to output an integer value over the serial port without using the FormatInt function to convert it to text.