Version 2 (modified by hopscc, 15 years ago) |
---|
Use
use <namespace> use <namespace> from <library-name>
Specify a namespace and its contents to make available to this module.
When using the first form if the compiler cannot immediately locate
the namespace
(i.e if its not in the list of default loaded libraries)
it will look for a (platform dependent) library-name of the same form as
the namespace.
For .Net thats the namespace with '.dll' appended
use Foo.Bar # On .Net will look for namespace in Foo.Bar.dll if not already available
If the filename of the library differs from the namespace, you can specify
it with the second form.
<library-name> can be a simple identifier, qualified identifier (Foo.Bar)
or a string literal.
use Foo.Bar from SomeLib
You can put single or double quotes around the file name if its components
are not legal identifiers.
(for example, the filename has a space or punctuation mark in it).
use Foo.Bar from "My Lib"
Platform
On .Net <library-name> will refer to a .Net Assembly or dll.
No ".dll" extension is expected (or allowed) in any of this syntax.
In .Net the list of default loaded libraries is:
- System
- System.Collections.Generic
- System.IO
- System.Text
- CobraCore (Cobra.Lang.dll)
Examples
use System.Windows.Forms use System.Drawing
Notes
In most cases this syntax means you dont need to specify the commandline -reference switch
With MyProg.cobra containing ...
use Foo.Bar
Instead of compilation by
cobra -reference:Foo.Bar MyProg.cobra
you can just say:
cobra MyProg.cob