documentation improvements

This commit is contained in:
Araq
2011-01-09 19:56:31 +01:00
parent dbc5048a9a
commit 62643fbc93
3 changed files with 45 additions and 2 deletions

View File

@@ -1885,7 +1885,7 @@ Overloading of the subscript operator
The ``[]`` subscript operator for arrays/openarrays/sequences can be overloaded.
Overloading support is only possible if the first parameter has no type that
already supports the built-in ``[]`` notation. Currently the compiler currently
already supports the built-in ``[]`` notation. Currently the compiler
does not check this. XXX Multiple indexes

View File

@@ -130,6 +130,49 @@ encloses the header file in ``""`` in the generated C code.
**Note**: This will not work for the LLVM backend.
Compile pragma
--------------
The `compile`:idx: pragma can be used to compile and link a C/C++ source file
with the project:
.. code-block:: Nimrod
{.compile: "myfile.cpp".}
**Note**: Nimrod computes a CRC checksum and only recompiles the file if it
has changed. You can use the ``-f`` command line option to force recompilation
of the file.
Link pragma
-----------
The `link`:idx: pragma can be used to link an additional file with the project:
.. code-block:: Nimrod
{.link: "myfile.o".}
Emit pragma
-----------
The `emit`:idx: pragma can be used to directly affect the output of the
compiler's code generator. So it makes your code unportable to other code
generators/backends. Its usage is highly discouraged! However, it can be
extremely useful for interfacing with C++ or Objective C code.
Example:
.. code-block:: Nimrod
{.emit: """
static int cvariable = 420;
""".}
proc embedsC() {.pure.} =
var nimrodVar = 89
# use backticks to access Nimrod symbols within an emit section:
{.emit: """fprintf(stdout, "%d\n", cvariable + (int)`nimrodVar`);""".}
embedsC()
LineDir option
--------------

View File

@@ -1,6 +1,6 @@
- we need a way to disable tests
- {.extern: "thisfile.m".} pragma for objective C/C++ support
- deprecate ^ and make it awailable as operator
- deprecate ^ and make it available as operator
High priority (version 0.9.0)