Directive Import
Module import directive.
Syntax
Import module[.submodule]
Description
A Cerberus X program consists of one or more modules, each of which is represented by a single source file; the name of the module is taken from the name of the source file. For example, if your file is named "particles.cxs" then the module will be called "particles".
A module may 'import' other modules, gaining access to their declarations such as classes, functions, global variables, constants, etc. Imported modules in turn may import other modules, which may themselves import other modules, and so on.
To import another module, the Import keyword must be placed at the top of your source file, but after the Strict keyword if used.
Cerberus X also supports cyclic imports, whereby modules can import each other, gaining access to each other's declarations.
See also
Strict | Include
Language reference
Example
A common use case: importing the mojo module in a game application.
Import
mojo
Function
Main
()
' Game goes here!
End
In Strict mode, Strict should be declared before any imports:
Strict
Import
mojo
Function
Main
:
Int
()
' Game goes here!
Return
0
End
Example 2
This runnable two-part example shows a main module followed by a module to be imported. They should be saved as two separate files in the same folder.
Main module:
' Main module, save as, eg. mygame.cxs
Import
hello
Function
Main
()
SayHello
End
Module to be imported:
' Save as hello.cxs
Function
SayHello
()
Print
"Hello"
End
The main module, mygame, can now access the SayHello function of the imported 'hello' module.
Example 3
This two-part cyclic import example shows a main module, mygame, which imports multiple modules; each of these modules imports mygame in return.
Main module:
' Saved as mygame.cxs
Import
player
Import
rocket
Import
bullet
Function
Main
()
' Game goes here!
End
At the top of player.cxs, rocket.cxs and bullet.cxs:
Import
mygame
' ...
Because the main module, mygame, imports player, rocket and bullet, each module importing mygame can access all declarations in player, rocket and bullet. Any new imports added to mygame will automatically become available.