This section lists the messages that the scanner emits. The scanner takes care of the lexical
structure of the pascal le, i.e. it tries to nd reserved words, strings, etc. It also takes care of
directives and conditional compilation handling.
-
Fatal: Unexpected end of le
- This typically happens in one of the following cases:
- The source le ends before the nal end. statement. This happens mostly when
the begin and end statements aren't balanced;
- An include le ends in the middle of a statement.
- A comment was not closed.
-
Fatal: String exceeds line
- There is a missing closing ' in a string, so it occupies multiple
lines.
-
Fatal: illegal character "arg1" (arg2)
- An illegal character was encountered in the input
le.
-
Fatal: Syntax error, "arg1" expected but "arg2" found
- This indicates that the compiler
expected a di erent token than the one you typed. It can occur almost anywhere it is possible
to make an error against the Pascal language.
-
Start reading include le arg1
- When you provide the -vt switch, the compiler tells you when it
starts reading an included le.
-
Warning: Comment level arg1 found
- When the -vw switch is used, then the compiler warns
you if it nds nested comments. Nested comments are not allowed in Turbo Pascal and
Delphi, and can be a possible source of errors.
-
Note: Ignored compiler switch "arg1"
- With -vn on, the compiler warns if it ignores a
switch.
-
Warning: Illegal compiler switch "arg1"
- You included a compiler switch (i.e. f$... g) which
the compiler does not recognise.
-
Warning: Misplaced global compiler switch
- The compiler switch is misplaced, and should be
located at the start of the unit or program.
-
Error: Illegal char constant
- This happens when you specify a character with its ASCII code, as
in #96, but the number is either illegal, or out of range.
-
Fatal: Can't open le "arg1"
- Free Pascal cannot nd the program or unit source le you
speci ed on the command line.
-
Fatal: Can't open include le "arg1"
- Free Pascal cannot nd the source le you speci ed in a
f$include ..g statement.
-
Error: Illegal record alignment speci er "arg1"
- You are specifying f$PACKRECORDS ng or
f$ALIGN ng with an illegal value for n. For $PACKRECORDS valid alignments are 1, 2, 4,
8, 16, 32, C, NORMAL, DEFAULT, and for $ALIGN valid alignments are 1, 2, 4, 8, 16, 32,
ON, OFF. Under mode MacPas $ALIGN also supports MAC68K, POWER and
RESET.
-
Error: Illegal enum minimum-size speci er "arg1"
- You are specifying the f$PACKENUM ng
with an illegal value for n. Only 1,2,4, NORMAL or DEFAULT is valid here.
-
Error: $ENDIF expected for arg1 arg2 de ned in arg3 line arg4
- Your conditional
compilation statements are unbalanced.
-
Error: Syntax error while parsing a conditional compiling expression
- There is an
error in the expression following the f$if ..g, f$ifc g or f$setc g compiler
directives.
-
Error: Evaluating a conditional compiling expression
- There is an error in the expression
following the f$if ..g, ifcorsetc compiler directives.
-
Warning: Macro contents are limited to 255 characters in length
- The contents of macros
cannot be longer than 255 characters.
-
Error: ENDIF without IF(N)DEF
- Your f$IFDEF ..g and f$ENDIFg statements aren't
balanced.
-
Fatal: User de ned: arg1
- A user de ned fatal error occurred. See also the Programmers
guide.
-
Error: User de ned: arg1
- A user de ned error occurred. See also the Programmers
guide.
-
Warning: User de ned: arg1
- A user de ned warning occurred. See also the Programmers
guide.
-
Note: User de ned: arg1
- A user de ned note was encountered. See also the Programmers
guide.
-
Hint: User de ned: arg1
- A user de ned hint was encountered. See also the Programmers
guide.
-
Info: User de ned: arg1
- User de ned information was encountered. See also the Programmers
guide.
-
Error: Keyword rede ned as macro has no e ect
- You cannot rede ne keywords with
macros.
-
Fatal: Macro bu er over ow while reading or expanding a macro
- Your macro or its
result was too long for the compiler.
-
Warning: Expanding of macros exceeds a depth of 16.
- When expanding a macro, macros
have been nested to a level of 16. The compiler will expand no further, since this may be a
sign that recursion is used.
-
Warning: compiler switches aren't supported in // styled comments
- Compiler switches
should be in normal Pascal style comments.
-
Handling switch "arg1"
- When you set debugging info on (-vd) the compiler tells you when it is
evaluating conditional compile statements.
-
ENDIF arg1 found
- When you turn on conditional messages (-vc), the compiler tells you where
it encounters conditional statements.
-
IFDEF arg1 found, arg2
- When you turn on conditional messages (-vc), the compiler tells you
where it encounters conditional statements.
-
IFOPT arg1 found, arg2
- When you turn on conditional messages (-vc), the compiler tells you
where it encounters conditional statements.
-
IF arg1 found, arg2
- When you turn on conditional messages (-vc), the compiler tells you where
it encounters conditional statements.
-
IFNDEF arg1 found, arg2
- When you turn on conditional messages (-vc), the compiler tells
you where it encounters conditional statements.
-
ELSE arg1 found, arg2
- When you turn on conditional messages (-vc), the compiler tells you
where it encounters conditional statements.
-
Skipping until...
- When you turn on conditional messages (-vc), the compiler tells you
where it encounters conditional statements, and whether it is skipping or compiling
parts.
-
Info: Press to continue
- When the -vi switch is used, the compiler stops
compilation and waits for the Enter key to be pressed when it encounters a f$STOPg
directive.
-
Warning: Unsupported switch "arg1"
- When warnings are turned on (-vw), the compiler
warns you about unsupported switches. This means that the switch is used in Delphi or
Turbo Pascal, but not in Free Pascal.
-
Warning: Illegal compiler directive "arg1"
- When warnings are turned on (-vw), the compiler
warns you about unrecognised switches. For a list of recognised switches, see the
Programmers guide.
-
Back in arg1
- When you use the -vt switch, the compiler tells you when it has nished reading
an include le.
-
Warning: Unsupported application type: "arg1"
- You get this warning if you specify an
unknown application type with the directive f$APPTYPEg.
-
Warning: APPTYPE is not supported by the target OS
- The f$APPTYPEg directive is
supported by certain operating systems only.
-
Warning: DESCRIPTION is not supported by the target OS
- The f$DESCRIPTIONg
directive is not supported on this target OS.
-
Note: VERSION is not supported by target OS
- The f$VERSIONg directive is not supported
on this target OS.
-
Note: VERSION only for exes or DLLs
- The f$VERSIONg directive is only used for executable
or DLL sources.
-
Warning: Wrong format for VERSION directive "arg1"
- The f$VERSIONg directive
format is majorversion.minorversion where majorversion and minorversion are
words.
-
Error: Illegal assembler style speci ed "arg1"
- When you specify an assembler mode
with the f$ASMMODE xxxg directive, the compiler didn't recognize the mode you
speci ed.
-
Warning: ASM reader switch is not possible inside asm statement, "arg1" will be e ective only for next
-
It is not possible to switch from one assembler reader to another inside an assembler block.
The new reader will be used for next assembler statements only.
-
Error: Wrong switch toggle, use ON/OFF or +/-
- You need to use ON or OFF or a + or -
to toggle the switch.
-
Error: Resource les are not supported for this target
- The target you are compiling for
doesn't support resource les.
-
Warning: Include environment "arg1" not found in environment
- The included
environment variable can't be found in the environment; it will be replaced by an empty
string instead.
-
Error: Illegal value for FPU register limit
- Valid values for this directive are 0..8 and
NORMAL/DEFAULT.
-
Warning: Only one resource le is supported for this target
- The target you are compiling
for supports only one resource le. The rst resource le found is used, the others are
discarded.
-
Warning: Macro support has been turned o
- A macro declaration has been found, but
macro support is currently o , so the declaration will be ignored. To turn macro
support on compile with -Sm on the command line or add f$MACRO ONg in the
source.
-
Error: Illegal interface type speci ed. Valids are COM, CORBA or DEFAULT.
- The
interface type that was speci ed is not supported.
-
Warning: APPID is only supported for PalmOS
- The f$APPIDg directive is only supported
for the PalmOS target.
-
Warning: APPNAME is only supported for PalmOS
- The f$APPNAMEg directive is only
supported for the PalmOS target.
-
Error: Constant strings can't be longer than 255 chars
- A single string constant can
contain at most 255 chars. Try splitting up the string into multiple smaller parts and
concatenate them with a + operator.
-
Fatal: Including include les exceeds a depth of 16.
- When including include les the les
have been nested to a level of 16. The compiler will expand no further, since this may be a
sign that recursion is used.
-
Fatal: Too many levels of PUSH
- A maximum of 20 levels is allowed. This error occurs only in
mode MacPas.
-
Error: A POP without a preceding PUSH
- This error occurs only in mode MacPas.
-
Error: Macro or compile time variable "arg1" does not have any value
- Thus the
conditional compile time expression cannot be evaluated.
-
Error: Wrong switch toggle, use ON/OFF/DEFAULT or +/-/*
- You need to use ON or
OFF or DEFAULT or a + or - or * to toggle the switch.
-
Error: Mode switch "arg1" not allowed here
- A mode switch has already been encountered,
or, in the case of option -Mmacpas, a mode switch occurs after UNIT.
-
Error: Compile time variable or macro "arg1" is not de ned.
- Thus the conditional
compile time expression cannot be evaluated. Only in mode MacPas.
-
Error: UTF-8 code greater than 65535 found
- Free Pascal handles UTF-8 strings internally
as widestrings, i.e. the char codes are limited to 65535.
-
Error: Malformed UTF-8 string
- The given string isn't a valid UTF-8 string.
-
UTF-8 signature found, using UTF-8 encoding
- The compiler found a UTF-8 encoding
signature ($ef, $bb, $bf) at the beginning of a le, so it interprets it as a UTF-8
le.
-
Error: Compile time expression: Wanted arg1 but got arg2 at arg3
- The type-check of a
compile time expression failed.
-
Note: APPTYPE is not supported by the target OS
- The f$APPTYPEg directive is
supported by certain operating systems only.
-
Error: Illegal optimization speci ed "arg1"
- You speci ed an optimization with the
f$OPTIMIZATION xxxg directive, and the compiler didn't recognize the optimization you
speci ed.
-
Warning: SETPEFLAGS is not supported by the target OS
- The f$SETPEFLAGSg directive
is not supported by the target OS.
-
Warning: IMAGEBASE is not supported by the target OS
- The f$IMAGEBASEg directive is
not supported by the target OS.
-
Warning: MINSTACKSIZE is not supported by the target OS
- The f$MINSTACKSIZEg
directive is not supported by the target OS.
-
Warning: MAXSTACKSIZE is not supported by the target OS
- The f$MAXSTACKSIZEg
directive is not supported by the target OS.
-
Error: Illegal state for $WARN directive
- Only ON and OFF can be used as state with a
f$WARNg compiler directive.
-
Error: Illegal set packing value
- Only 0, 1, 2, 4, 8, DEFAULT and NORMAL are allowed as
packset parameters.
-
Warning: PIC directive or switch ignored
- Several targets, such as Windows, do not
support nor need PIC, so the PIC directive and switch are ignored.
-
Warning: The switch "arg1" is not supported by the currently selected target
- Some
compiler switches like $E are not supported by all targets.
-
Warning: Framework-related options are only supported for Darwin/Mac OS X
-
Frameworks are not a known concept, or at least not supported by FPC, on operating
systems other than Darwin/Mac OS X.
-
Error: Illegal minimal oating point constant precision "arg1"
- Valid minimal precisions
for oating point constants are default, 32 and 64, which mean respectively minimal (usually
32 bit), 32 bit and 64 bit precision.
-
Warning: Overriding name of "main" procedure multiple times, was previously set to "arg1"
-
The name for the main entry procedure is speci ed more than once. Only the last name will
be used.