Navigation:  Error Messages >

Compiler Errors

Print this Topic Previous pageReturn to chapter overviewNext page

 

The following are all the errors that can be received during the compilation process.  The actual error is displayed in bold and an explanation follows.

 

NOTE:  Most errors are followed by the item that caused the error.

 

All CASE commands must be DO types:

       A CASE command is the equivalent of a IF expr DO ...   The ENDIF occurs with the next CASE, OTHERWISE, or ENDC.  You can't use a THEN, RET, or other option.

 

An error has occurred during conversion of this field from alpha to the appropriate binary form.

       There was an attempt to compile a numeric value and it failed.  This would happen if you combined alpha and numeric characters, such as "3x4" or "44ab", etc.

 

An unknown command modifier was found:

       The command that's being compiled has only a limited list of options that can be used in a specific location.  You have used an option that isn't allowed.

 

CASE command without active SELECT command

       The compiler has found a CASE command and it isn't within a SELECT/ENDC structure.

 

Duplicate Label:

       You have included a label that matches one that was used previously in this program or a Library/Include file.

 

ENDC command without active SELECT command

       The compiler has found a END CASE command and it isn't within a SELECT/ENDC structure.

 

ENDIF command without an active IF command

       The compiler has found an ENDIF command and it isn't within a IF/ENDIF structure.

 

ENDS command without active SCAN

       The compiler has found a END SCAN command and it isn't within a SELECT/ENDC structure.

 

Error while compiling Valid Expression:

       The expression that has been saved in the ValidExpr property for an entry object (TTASEnter, TTASNumEnter, etc.) has a problem and can't be compiled properly.

 

Error while trying to load source file (you may have run out of memory or resources)

       Something happened in memory or you've run out of disk space for your swap file.

 

Error while writing to RUN file.

       This could occur to both RUN and RWN programs.  While the compiled program was being written to disk an error was returned by the OS.  You probably have the program running at the same time you tried to recompile it.  However, this could also occur if you are having a problem with your hard drive or you've run out of space available.

 

EXIT command without active WHILE

       The compiler has found a EXIT command and it isn't within a WHILE/ENDW structure.

 

EXIT_IF command without active WHILE

       The compiler has found a EXIT_IF command and it isn't within a WHILE/ENDW structure.

 

FEXIT command without active FOR command

       The compiler has found a FEXIT command and it isn't within a FOR/NEXT structure.

 

FEXIT_IF command without active FOR

       The compiler has found a FEXIT command and it isn't within a FOR/NEXT structure.

 

Field type changed from O to N or R

       The O type (Old Form BCD) is no longer used.  This message is for information only and will tell you whether it has been changed to N or R type.

 

Field type must be one of: I,B,R,P,T,D,N,L,A or F:

       This would occur within a DEFINE command.  You have specified a Type value other than those allowed.

 

FLOOP command without active FOR command

       The compiler has found a FLOOP command and it isn't within a FOR/NEXT structure.

 

FLOOP_IF command without active FOR

       The compiler has found a FLOOP_IF command and it isn't within a FOR/NEXT structure.

 

If you specify a numeric value as the array specifier in a screen field it must be a legal integer value:

       You have used a numeric array specifier and it didn't compile correctly.  This would happen if you combined alpha and numeric characters, such as "3x4" or "44ab", etc.

 

Invalid Compiler Directive:

       You have used a compiler directive ("#"+directive) that doesn't exist.

 

Label not found with code, it may be due to putting parentheses around values that are passed in a CMD:

       The compiler was attempting to make sure a label had been defined in the program.  However, it wasn't found.  What was found, though, was a "(" within the label so you see this error.  It is possible that you have used a User Define Command (CMD) and put parentheses around the values you're passing, for example:

 

               DoThis(100, 200, 300)

 

       You should actually use the following, instead:

 

               DoThis 100, 200, 300

 

Label not found within code:

       The compile was attempting to make sure a label had been defined in the program.  However, it wasn't found.

 

LOOP command without active WHILE

       The compiler has found a LOOP command and it isn't within a WHILE/ENDW structure.

 

LOOP_IF command without active WHILE

       The compiler has found a LOOP_IF command and it isn't within a WHILE/ENDW structure.

 

Main source file could not be opened

       The source file you have named to be compiled could not be found or there was a problem opening the file so that the lines could be loaded.

 

Maximum field name length is 15 characters:

       This would occur in a DEFINE command.  One of the field names you have specified is longer than 15 characters.

 

Maximum number of dec characters is 8:

       This would occur in a DEFINE command.  The DEC value is greater than 8, the maximum allowed.

 

No init value in FOR/NEXT loop

       Each FOR command has four parts; counter field, start, stop and increment values.  You have not included the start or initialzation field.

 

No step value in FOR/NEXT loop

       Each FOR command has four parts; counter field, start, stop and increment values.  You have not included the increment or step field.

 

No stop value in FOR/NEXT loop

       Each FOR command has four parts; counter field, start, stop and increment values.  You have not included the stop field.

 

OTHERWISE command without active SELECT command

       The compiler has found an OTHERWISE command and it isn't within a SELECT/ENDC structure.

 

Problem in the SELECT|CASE structure

       This is a general CASE structure error.

 

SEXIT command without active SCAN

       The compiler has found a SCAN EXIT command and it isn't within a SELECT/ENDC structure.

 

SEXIT_IF command without active SCAN

       The compiler has found a SCAN EXIT_IF command and it isn't within a SELECT/ENDC structure.

 

SLOOP command without active SCAN

       The compiler has found a SCAN LOOP command and it isn't within a SELECT/ENDC structure.

 

SLOOP_IF command without active SCAN

       The compiler has found a SCAN LOOP_IF command and it isn't within a SELECT/ENDC structure.

 

The array brackets ([]) are not matched

       You have specified an array field and the array brackets ([ & ]) are not balanced.

 

The array element specified in a screen field is greater than the maximum number of elements for the field:

       You have specified a numeric array field value that exceeds the defined number of array elements for the field.

 

The Compiled Code Buffer is too small.

       This is a value you would setup on the Defaults tab of the compiler.  Increase the value of the Compiled Code Buffer, click on the Update button and re-compile the program.

 

The compiler has used then entire Screen Buffer.  Please increase the Screen Buffer size on the Defaults page and recompile this program.

       This is a value you would setup on the Defaults tab of the compiler.  Increase the value of the Screen Buffer size, click on the Update button and re-compile the program.

 

The first character of a field name must be alpha (A to Z):

       You've used something other than A to Z as the first character of a field name in a DEFINE command.

 

The math op following is not acceptable:

       While working on an expression, the compiler found something it didn't expect.  The legal math operators are here.

 

The parentheses are unbalanced in this expression:

       In every expression the compiler expects to find a "(" for each ")" and vice-versa.  In the expression displayed they parentheses are not matched.

 

The quote marks are unbalanced in this expression:

       In every expression the compiler expects to find quote marks in pairs.  If you start a constant with a single quote (') you must end the constant using a single quote.  If you want to imbed a quote within a constant use the other kind to start and stop the quote.  For example:

 

               "I didn't get an error with this constant"

 

       However, if you used:

 

               'I didn't get an error with this constant'  (all single quote marks)

 

       You'd be wrong, you would get the error above.

 

The Report File Name could not be found:

       The report format specified in a #WinReport compiler directive could not be found on the disk.

 

The Run Code Buffer is too small:

       This is a value you would setup on the Defaults tab of the compiler.  Increase the value of the Run Code Buffer, click on the Update button and re-compile the program.

 

The size of the constant buffer has exceeded the size defined in the defaults.  Please reset the default value and recompile this program

       This is a value you would setup on the Defaults tab of the compiler.  Increase the value of the Constant Buffer Size, click on the Update button and re-compile the program.

 

The source file did not have any lines:

       A source file (either the main file or a #LIB, #INC file) was empty when the compiler attempted to load it or search for a subroutine.

 

There are too many defined/dictionary fields used in this program.  Please increase the compiler options for fields and then recompile:

       This is a value you would setup on the Defaults tab of the compiler.  Increase the value of the Number of Fields, click on the Update button and re-compile the program.

 

There is a fatal problem with the following expression.  The problem may have to do with parentheses:

       This is a general error you may get if the compiler cannot compile an expression.  You may have unbalanced parentheses.

 

This expression is too complex.  Please break into two parts:

       You will see this if you have more than 20 functions or math operators in a single expression.  Also, the total compiled size cannot exceed 1024 characters, however, since each part of an expression requires 5 characters you'll probably run out of functions/operators before this happens.

 

This field has been previously defined, or is in the Data Dictionary.  It cannot be defined again:

       This is a warning error you'll receive if you try to DEFINE a field that exists in the data dictionary or you've previously defined in the program.  In either case the compiler will ignore this definition and will use the first one it finds.  If you turn off warning messages in the compiler you will never see this error message.

 

This field was used in the program.  It must be either DEFINEd or in the Data Dictionary:

       At the end of the compilation process, all the fields used are checked to make sure they are either defined in the data dictionary or a DEFINE command in the program.  If you received this error a field was used that wasn't in the data dictionary or defined.

 

This is not an allowed Option:

       The compiler has found a value in your command this is not a legal option.

 

This key was not found in the data dictionary:

       A key name you have specified could not be found in the FILEKNUM.B file.

 

       NOTE:  Even if you have added the key to the FD using the Maintain Data Dictionary program, if you don't Restructure the file the key will not be available during compilation.  Also, if you make changes to an FD and save it back to disk the keys in FILEKNUM.B are automatically deleted and are not recreated until you run Restructure.

 

This Option is not part of the command:

       The compiler has found a value in your command that is a legal option but isn't used in this command.

 

Too many library/Include files:

       You may specify a maximum of 30 different library/include files.

 

Unable to create RUN file.

       This is a memory problem that occurs at the end of the compilation process just before the .RUN program is saved to disk.

 

Unable to create RWN file.

       This is a memory problem that occurs at the end of the compilation process just before the .RWN program is saved to disk.

 

Unable to load form:

       The compiler is having problems loading a screen form that has been specified in the #WinForm compiler directive.

 

You can only have regular fields and constants in the CHAIN xxx WITH option.  You used:

       You have probably tried to include an expression as a WITH option value in a CHAIN command.

 

You cannot have a Value option and multiple field names or array elements

       If you specify a VALUE option in a DEFINE command you may not have ARRAY elements and you may define only one field at a time.

 

You cannot have Valid Expressions in encrypted forms.  The expression will not be compiled.

       If you are compiling forms that are encrypted, any ValidExpr properties will be ignored.

 

You have a DEFINE command without any field names

       You have specified a DEFINE command and the compiler can't find any field names.

 

You have a MOUNT command without a corresponding format:

       This would occur when compiling a TAS Professional 5.1 program in the MOUNT command.  The format specified in the command could not be found.

 

You have an End Structure type command without a corresponding Begin type command.

       This error occurs if there are no active structures in the program and the compiler finds an end structure command, such as ENDIF, ENDC, etc.

 

You have included too many MOUNT or REMOUNT commands in this program.

       This would occur when compiling a TAS Professional 5.1 program.  There is a limit of 40 MOUNT/REMOUNT commands in any single program.

 

You have more field names than markers in the format:

       This would occur when compiling a TAS Professional 5.1 program.  If you have specified the #FMT compiler directive and the format being compiled has more fields than markers (&) in the format.

       

You have stacked more than 50 control structures.  Reduce the complexity of this program.

       You are limited to 50 active structures at any time in the program.  You will probably never see this error.

 

You have tried to include more than 30 library and include files

       You may specify a maximum of 30 different library/include files.

 

You have used a xxx structure ending command when the program expected a xxx

       You would see this error if you use the wrong command to end a structure, for example, if you have a ENDC in an active IF structure (you should have an ENDIF).  The structure type and the end command used will be displayed.

 

You have used an ELSE command without first using an IF

       The compiler has found a FLOOP_IF command and it isn't within a FOR/NEXT structure.

 

You have used too many different files.

       There is a limit of 100 different data files open in a single program.

 

You must have the FD in this command.

       In the SET_ACTIVE command you must specify the FD.  If you don't you will get this error.

 

 


Page url: http://www.cassoftware.com/tas/manual/compilererrors.htm