TOC PREV NEXT INDEX

Gaudi logo


Appendix C
Job Options Grammar and Error Codes
C.1   The EBNF grammar of the Job Options files

The syntax of the Job-Options-File is defined through the following EBNF-Grammar.

Job-Options-File =

{Statements} .

Statements =

{Include-Statement} | {Assign-Statement} | {Append-Statement} | {Platform-Dependency} .

AssertableStatements =

{Include-Statement} | {Assign-Statement} | {Append-Statement} .

AssertionStatement =

'#ifdef' | '#ifndef' .

Platform-Dependency =

AssertionStatement 'WIN32' <AsertableStatements> [ #else <AssertableStatements> ] #endif

Include-Statement =

`#include' string .

Assign-Statement =

Identifier `.' Identifier `=' value `;' .

Append-Statement =

Identifier `.' Identifier `+=' value `;' .

Identifier =

letter {letter | digit} .

value =

boolean | integer | double | string | vector .

vector =

`{' vectorvalue { `,' vectorvalue } `}' .

vectorvalue =

boolean | integer | double | string .

boolean =

`true' | `false' .

integer =

prefix scientificdigit .

double =

( prefix <digit> `.' [ scientificdigit ] ) |
( prefix `.' scientificdigit ) .

string =

`"' {char} `"' .

scientificdigit =

< digit> [ ( `e' | `E' ) < digit> ] .

digit =

<figure> .

prefix =

[ `+' | `-' ] .

figure =

`0' | `1' | `2' | `3' | `4' | `5' | `6' | `7' | `8' | `9'.

char =

any character from the ASCII-Code

letter =

set of all capital- and non-capital letter

C.2   Job Options Error Codes and Error Messages

The table below lists the error codes and error messages that the Job Options compiler may generate, their reason and how to avoid them.

Table 18.1 Possible Error-Codes
Error-Code
Reason
How to avoid it
Error #000 Internal compiler error
-
This code normally should never appear. If this code is shown there is maybe a problem with your memory, your disk-space or the property-file is corrupted.
Error #001 Included property-file does not exists or can not be opened
* wrong path in #include-directive
* wrong file or mistyped filename
* file is exclusively locked by another application
* no memory available to open this file
Please check if any of the listed reasons occured in your case.
Warning #001 File already included by another file
The file was already included by another file and will not be included a second time.
The compiler will ignore this #include-directive and will continue with the next statement.
Remove the #include-directive
Error #002 syntax error: Object expected
The compiler expected an object at the given position.
Maybe you mistyped the name of the object or the object contains unknown characters or does not fit the given rules.
Error #003 syntax error: Missing dot between Object and Propertyname
The compiler expect a dot between the Object and the Propertyname.
Check if the dot between the Object and the Propertyname is missing.
Error #004 syntax error: Identifier expected
The compiler expected an identifier at the given position.
Maybe you mistyped the name of the identifier or the identifier contains unknown characters or does not fit the given rules.
Error #005 syntax error: Missing operator '+=' or '='
The compiler expected an operator between the Propertyname and the value.
Check if there is a valid operator after the Propertyname.
Note that a blank or tab is not allowed between '+='!
Error #006 String is not terminated by a "
A string (value) was not terminated by a ".
Check if all your strings are beginning and ending with ". Note that the position given by the compiler can be wrong because the compiler may thought that following statements are part of the string!
Error #007 syntax error: #include-statement is not correct
The next token after the #include is not a string.
Make sure that after the #include-directive there is specified the file to include. The file must be defined as a string!
Error #008 syntax error: #include does not end with a ;
The include-directive was terminated by a ;
Remove the ; after the #include-directive.
Error #009 syntax error: Values must be separated with ','
One or more values within a vector were not separated with a ',' or one ore more values within a vector are mistyped.
Check if every value in the vector is separated by a ','. If so the reason for this message may result in mistyped values in the vector (maybe there is a blank or tab between numbers).
Error #010 syntax error: Vector must end with '}'
The closing bracket is missing or the vector is not terminated correctly.
Check, if the vector ends with a '}' and if there is no semicolon before the ending-bracket.
Error #011 syntax error: Statement must end with a ;
The statement is not terminated correctly.
Check if the statement ends with a semicolon ';'.
Runtime-Error #012: Cannot append to object because it does not exists
The compiler cannot append the values to the object.propertyname because the object does not exist.
Check if the refered object is defined in one of the included files, if so check if you writed the object-name exactly like in the include-file.
Runtime-Error #013 Cannot append to object because Property does not exists
The compiler cannot append the values to the object.propertyname because the property does not exist.
Check if there was already something assigned to the refered property (in the include-file or in the current file). If not then modify the append-statement into a assign-statement.
If there was already something assigned, check if the object-name and the property-name are typed correctly.
Error #014 Elements in the vector are not of the same type
One or more elements in the vector have a different type than the first element in the vector. All elements must have the same type like the first declarated element.
Check declaration of vector, check the types and check, if maybe a value is mistyped.
Error #015 Value(s) expected
The compiler didn't find values to append or assign
Check the statement if there exists values and if they are written correctly.
Maybe this error is a result of a previous error!
Error #016 Specified property-file does not exist or can not be resolved
The compiler was not able to include a property-file or didn't found the file.
A reason can be that the compiler was not able to resolve an environment-variable which points to the location of the property-file.
Check if you are using enviornment-variables to resolve the file, if they are mistyped (wether in the system or in the #include-directive) or not set correctly.
Error #017 #ifdef not followed by an identifier
The #ifdef-statement is not followed by the assertion-identifier (WIN32).
Add WIN32 after the #ifdef-statement.
Error #018 identifier in #ifdef / #ifndef not known
The assertion-identifier used in the #ifdef- /#ifndef-statement is not known. At the moment there can only be used WIN32!
Change identifier to WIN32.
Error #019 #ifdef / #ifndef / #else / #endif doesn't end with a ';'
A semicolon was found after the #ifdef- / #ifndef- / #else- / #endif-statement. These statements don't end with a semicolon.
Remove the semicolon after the #ifdef / #ifndef / #else / #endif-statement.



Quadralay Corporation
http://www.webworks.com
Voice: (512) 719-3399
Fax: (512) 719-3606
sales@webworks.com
TOC PREV NEXT INDEX