Errors

Error 1: Unexpected full stop.
Maybe you forgot to close an open bracket.

Error 2: Unexpected ).
Error 3: Unexpected }.
Error 4: Unexpected ].
Maybe you forgot to open this bracket.

Error 5: You wrote an empty atom.
You wrote two apostrophes with nothing between them.

Error 6: You wrote ( ) without a function.
You can write functions with zero arguments like f( ) but otherwise you cannot write these two brackets with nothing between them.

Error 7: Unexpected end of file.
The program must end with a full stop.

Error 8: Cannot put a comma after |.
Think of the | as an operator of type xfx and priority 1000. Think of the comma as an operator of type yfx with the same priority.

Error 9: Empty clause.
Maybe you accidentally wrote a single full stop without a clause.

Error 10: Incorrect binary number.
The binary number begins with 0b (here 0 is zero). It contains only the digits 0 and 1.

Error 11: Incorrect octal number.
The octal number begins with 0o (here 0 is zero and o is the small letter o). It contains only the digits from 0 to 7.

Error 12: Incorrect symbol number (0'symbol).
The symbol number begins with 0' (zero and apostrophe). After 0' you can put any symbol but if you want to use some of the symbols " or ' or ` or \ you have to double them or put \ in front of them (like 0'"" or 0'\\ or 0'\"). You can write symbols like "new line" and "tabulator" in this way: 0'\n and 0'\t.

Error 13: Incorrect floating-point number with E but without the power.
The floating-point number begins with digits followed by a point and eventually by the letter E, after which there must be a number. For example 3.14 or 0.1e-5 or 123.0e+2 or 12e11.

Error 14: The symbol \ has to be replaced with \\ in the string.
The combination \n is accepted as the symbol "new line" so if you want to write the string \n then you have to code it as \\n.

Error 15: The operator XXX is a prefix (or of the type term) but what is expected here is something like an infix operator or a full stop.
Actually, what is expected here is an infix or a suffix operator or a comma or | or a closing bracket or a full stop.

Error 16: Instead of the atom XXX what is expected here is something like an infix operator or a full stop.
If the message is "Instead of a non-functional bracket ..." maybe you are trying to write a function like f(x) but you have put a space between f and (. Other possibility is if you have tried to write the term x op y in a prefix notation. In this case you cannot write op(x, y) because op is an infix operator but you can write 'op'(x, y), i.e. if you put the operator in apostrophes it will be accepted as an atom.

Error 17: The operator XXX is an infix (or suffix) but what is expected here is a beginning of a term.
This mean that here is expected atom or open bracket or prefix operator.

Error 18: The symbol comma is infix operatorbut but what is expected here is a beginning of a term.
This means that here is expected an atom or an open bracket or a prefix operator.

Error 19: The priority of the prefix operator XXX is lower than the priority of YYY. Use brackets to fix this error.
For example, the expression \ ?-atom will give this error because the priority of \ is higher than the priority of ?-. If you want to say '?-'('\'(atom)) write it as ?- \atom. If you want to say '\'('?-'(atom)) write it as \(?-atom), i.e. use brackets.

Error 20: The priority of the suffix operator XXX is lower than the priority of YYY. Use brackets to fix this error.
This error is symmetrical to error 19 but the problem is with a suffix instead of a prefix operator.

Error 21: The last item in an atom-operator sequence has to be an atom or an suffix operator.
The atom-operator sequence is any sequence of terms, operators, commas and | which is inside of a pair of brackets or before a full stop.

Error 22: You cannot make construction using the operators XXX and YYY. They have equal priority and their types are _fx and xf_.
Both operators cannot accept an operator with the same priority (one cannot accept from the left side and other from the right side).

Some of the operators are not defined in the ADD file. Use Help/Operators to see which ones are defined and how they are defined.