## Directives

    directive:
          # open string
       |  # close string
       |  # ident string

Directives control the behavior of the compiler. They apply to the remainder of the current compilation unit.

The two directives `#open` and `#close` modify the list of opened modules, that the compiler uses to complete unqualified identifiers, as described in section 3.3. The directive `#open` string adds the module whose name is given by the string constant string to the list of opened modules, in first position. The directive `#close` string removes the first occurrence of the module whose name is given by the string constant string from the list of opened modules.

Implementations can provide other directives, provided they follow the syntax `#` ident string, where ident is the name of the directive, and the string constant string is the argument to the directive. The behavior of these additional directives is implementation-dependent.