Files
harbour-core/harbour/doc/pragma.txt
2000-02-17 11:11:52 +00:00

90 lines
2.4 KiB
Plaintext

/*
* $Id$
*/
INTRODUCTION
============
This file explains what is and how to use the #pragma directive
with Harbour. Primarily, it gives you control over the compiler's
command-line switches within your source code.
WHAT IS
=======
The #pragma is a directive used inside the source code in many compilers
to change the behavior of the compiler at compile time.
USAGE
=====
Currently the #pragma directive can be used in two ways: the switch mode
and the command mode.
The syntax is: #pragma <Expression>[=On/Off] or
#pragma -CompilerFlag[+|-]
You can use both modes mixed in the same module and upper/lower case
without worry.
To enable or disable a command or a switch you simply do:
* Command mode Switch mode
--------------------------------------------------------------
* #pragma <CommandName>=On/Off #pragma /<SwitchName>+/-
Example: #pragma AddDebugInfo=Off /* Suppress debug info */
#pragma /B+ /* Add debug info from here */
IMPLEMENTATION
==============
This is the list of the supported commands and switches:
* Command Switch
-----------------------------------------------
* AUTOMEMVARS =<On/Off> /A<+/->
* DEBUGINFO =<On/Off> /B<+/->
* ENABLEWARNINGS =<On/Off> /W<+/->
* EXITSEVERITY =<nLevel> /E<nLevel>
* FORCEMEMVARS =<On/Off> /V<+/->
* LINEINFO =<On/Off> /L<+/->
* NOSTARTPROC =<On/Off> /N<+/->
* PREPROCESSING =<On/Off> /P<+/->
* WARNINGLEVEL =<nLevel> /W<nLevel>
* SHORTCUTTING =<On/Off> /Z<+/->
The switches have the same behavior as the corresponding compiler ones
and the commands are synonyms for the switches.
* TRACEPRAGMAS
This command shows pragma activity at compile time when enabled.
NOTE: You can use the abbreviated command mode by typing only the
first eight chars.
NOTES
=====
This directive is not supported in the standalone version of the Harbour
preprocessor.
EXAMPLES
========
#pragma NoStartProc=Off
/* #pragma /N- */
function Test()
return nil
This is the same as calling Harbour with the -n switch in the command line,
but with the great benefit that if you forgot to pass the switch, it will
be used anyway because it is included inside the source.
===========
Dec 1, 1999
Regards,
Jose Lalin <dezac@corevia.com>