Difference between revisions of "Compiler error message"

From Dragon Age Toolset Wiki
Jump to: navigation, search
m (Sunjammer moved page User:Sunjammer/Compiler error message to Compiler error message without leaving a redirect)
m (Added error)
Line 28: Line 28:
 
;Declaration does not match parameters (<function>)
 
;Declaration does not match parameters (<function>)
 
: Too few or too many arguments used when calling a function.
 
: Too few or too many arguments used when calling a function.
 +
 +
;Duplicate function implementation (<function>)
 +
: Two functions with the same name exist.
  
 
=== <span id="E">E</span> ===
 
=== <span id="E">E</span> ===

Revision as of 00:47, 26 April 2020

Scripting

When the compiler encounters a syntax error it aborts the process for that script and displays a compiler error message in the Log window.

There are a couple of guidelines to remember when trying to understand compiler error message:

  • The compiler reports the error when it can no longer make sense of the script: this often occurs on the line 'after the line containing the error.
  • If the script has one or more include files the error may have "while compiling <include>.nss" appended to it, however the error may be in the script being compiled rather than an include file.

Errors

The following is a list of compiler error messages that have been encountered and what caused them. It is important to be aware that the listed cause(s) may not be the only cause(s) for a particular error and therefore should be viewed as examples rather than definitions.

Contents
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

A

After compound statement at end
The double quote before the file name is missing from an #include directive.

B

Break outside of loop or case statement
[example].

D

Declaration does not match parameters
The wrong type of argument used when calling a function, e.g. a string passed into a int argument.
Declaration does not match parameters (<function>)
Too few or too many arguments used when calling a function.
Duplicate function implementation (<function>)
Two functions with the same name exist.

E

Equality test has invalid operands
[example].

F

Function definition missing parameter list
The brackets were omitted when defining a function.

I

Included file not found
  1. An include file does not exist or has not been saved.
  2. The wrong file name used or the ".nss" extension included in an #include directive.
NOTE: include files cannot not be compiled directly (attempting to do so will generate a Script must contain either a main or StartingConditional error).
Invalid declaration type
The brackets were omitted when declaring a function.

M

Mismatched types
  1. A value or variable is assigned to a variable of a different type, e.g. a string value assigned to an int varaible.
  2. A function is assigned to a variable of a different type, e.g. a [[string] function to assigned to an int variable.
  3. A function returns a different type from its declared return type.
  4. A void function is assigned to a variable.

N

No colon after case label
[example].
No left bracket on arg list
  1. The brackets were omitted when calling a function (without arguments).
No semicolon after expression
  1. The statement terminator (;) is missing from the end of an expression.
  2. A keyword in an expression contains a typo.
No semicolon after structure
  1. The statement terminator (;) is missing from the end of a structure definition.
Not all control paths return a value
  1. A function does not have a return statement.
  2. A logic branch in a function does not have a return statement.
  3. A function does not have an else or default case with a return function.

P

Parsing variable list
  1. The statement terminator (;) is missing from the on previous line.
  2. A line contains a rogue double-quotes mark.

S

Script must contain either a main or StartingConditional
  1. Compiled an include file directly (instead of the script including it).
  2. Used the incorrect case i.e. Main instead of main.

U

Undefined identifier (<identifier>)
  1. A variable is being used before it is defined.
  2. A string is missing its opening double-quotes mark.
Undefined structure
A struct is being used before it is defined.
Unknown state in compiler
Invalid syntax e.g. an extra comma in a list of arguments.
Unterminated string constant
  1. A string is missing its closing double-quotes mark.
  2. A line contains a rogue double-quotes mark.

V

Variable defined without type
  1. A value is being assigned to a variable before it has been declared.
  2. A variable is being assigned or passed into a function before it has been declared.
Void expression where non void required
Assigned a member of a vector which was itself a member of a struct to a variable.