File inclusion

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

Syntax

&include "filename"
  1. filename is the file to be included during preprocessing.

Usage

The file to be included is searched first in the directory containing the current file, then in the directorie(s) provided with -I option.

filename can be followed by spaces and comments.

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:

  • number is the current line in the preprocessed file
  • filename is the current file name

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