Microsoft KB Archive/70626

From BetaArchive Wiki

Summary of Pascal 4.00 Compiler Metacommands PSS ID Number: Q70626 Article last modified on 03-28-1991 PSS database name: S_PasCal

4.00 | 4.00

MS-DOS | OS/2

Summary:

The following list summarizes the metacommands for the Microsoft Pascal Compiler version 4.00 for MS-DOS and MS OS/2. For more information about the metacommands, see chapter 18, “Microsoft Pascal Metacommands,” in the “Microsoft Pascal Reference Manual” for Pascal version 4.00.

More Information:

Metacommands make up the compiler control language. Metacommands are compiler directives that allow you to control debugging and error handling, optimization level, language level, source file usage during compilation, listing-file format, etc.

You can specify metacommands at the start of a comment by using multiple metacommands separated by spaces or commas. To disable a metacommand, place any character that is not a tab or space in front of the first dollar sign. For example, {<math display="inline">pagesize:80} will change the page length of the source listing to 80 bytes and {x</math>pagesize:80} will turn off the metacommand.

LANGUAGE AND OPTIMIZATION LEVEL

Metacommand Action ———– ——

$decmath Directs the compiler to use the decimal math routines in the auxiliary decimal-math run-time library.

$extend Adds extend-level features.

$floatcalls Directs the compiler to make calls to the real number math routines; set to $floatcalls+ by default.

$real:n Sets the length of the REAL type.

$rom Gives a warning on static initialization.

$simple Disables global optimizations.

$size Minimizes size of code generated.

$speed Minimizes execution time of code.

$standard Enables standard level only.

$system Adds extend- and system-level features.

DEBUGGING AND ERROR HANDLING

Metacommand Action ———– ——

$brave+ Sends error messages and warnings to the terminal screen.

$debug- Turns on or off all the debug checking; off by default.

$entry- Generates procedure entry/exit calls for debugger.

$errors:n Sets number of errors allowed per page (default is 25).

$goto- Flags GOTO statements as “considered harmful.”

$indexck Checks for array index values in range, including super array indexes; off by default.

$initck Checks for use of uninitialized values; off by default.

$line- Generates line-number calls for the debugger.

$mathck- Checks for mathematical errors such as overflow and division by zero; off by default.

$nilck- Checks for bad pointer values; off by default.

$rangeck- Checks for subrange validity; off by default.

$runtime- Determines context of run-time errors.

$stackck- Checks for stack overflow at procedure or function entry; off by default.

$tagck- Checks tag fields in variant records; off by default.

$warn+ Gives warning messages in listing file.

SOURCE FILE CONTROL

Metacommand Action ———– ——

$if constant Allows conditional compilation of text1 source if $then text1 constant is greater than zero. $else text2 $end

$include:‘file’ Switches compilation from current source file to source file named.

$inconst:text Allows interactive setting of constant values at compile time.

$message:‘test’ Allows the display of a message to the terminal screen to indicate which version of a program is compiling.

$pop Restores saved value of all metacommands.

$push Saves current value of all metacommands.

LISTING FILE CONTROL

Metacommand Action ———– ——

$linesize:n Sets width of listing. Default is 79 or 131, depending on implementation.

$list+ Turns on or off source listing. Errors are always listed.

$ocode+ Turns on disassembled object-code listing.

$page+ Skips to next page. Line number is not reset.

$page:n Sets page number for next page (does not skip to next page).

$pageif:n Skips to next page if less than n lines left on current page.

$pagesize:n Sets length of listing in lines. Default is 55.

$skip:n Skips n lines or to end of page.

$subtitle:‘text’ Sets page subtitle.

$symtab+ Sends symbol table to listing file.

$title:‘text’ Sets page title.

Copyright Microsoft Corporation 1991.