File inclusion

The &include directive instructs the preprocessor to include a file.

Syntax

&include "filename"
  1. filename is searched first in the directory containing the current file, then in the directories listed in the include path. (-I option). The file name can be followed by spaces and comments.

Usage

The included file will be scanned and processed before continuing with the rest of the current file.

Source: File A
First line 
&include "B"
Third line
Source: File B
Second line
Result:
& 1 "A"
First line 
& 1 "B"
Second line 
& 3 "A"
Third line

These preprocessor directives inform the compiler of its current location with special preprocessor comments, so the compiler can provide the right error message when a syntax error occurs.

The preprocessor-generated comments use the following format:
& number "filename"

where:

Recursive inclusions

Recursive inclusions are not allowed. Doing so will fail and output an error message.

The following example is incorrect:

Source: File A
&include "B"
Source: File B
HELLO
&include "A"
fglcomp -M A.4gl output
B.4gl:2:1:2:1:error:(-8029) Multiple inclusion of the source file 'A'.

Including the same file several times is allowed:

Source: File A
&include "B"
&include "B"  -- correct
Source: File B
HELLO
Result:
& 1 "A"
& 1 "B"
HELLO
& 2 "A"
& 1 "B"
HELLO