Compiler error message

From Dragon Age Toolset Wiki
Revision as of 01:44, 13 April 2020 by Sunjammer (Talk | contribs) (Fixed rogue comment tag.)

Jump to: navigation, search

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 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.


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
[explanation].

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.

E

Equality test has invalid operands
[explanation].

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 (attempting to do so will generate a Script must contain either a main or StartingConditional error).

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
[explanation].
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.
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 structure 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.