REM statement

Purpose

Indicate that the remainder of a line in source code files is to be regarded as a Remark or Comment, and excluded from the compiled code.

Syntax

REM comment text

' comment text

; comment in an Inline Assembler statement

Remarks

The PowerBASIC compiler ignores Remarks; they do not take up space in your generated code, so use them abundantly - useful comments greatly increase the readability and maintainability of source code.

Comment text is any sequence of characters.  A comment can appear on a line with other statements, but it must be the last thing on that line, and a colon must precede it.  For example, the assignment below will not be compiled or executed because the compiler cannot tell where the comment ends and the statement begins:

REM now add the numbers: a = b + c

The following works:

a = b + c : REM now add the numbers

The apostrophe ( ' ) is an alternate form of REM.  When you use an apostrophe, you do not need a colon to separate the remark from the other statements on the same line.

When using the Inline Assembler, use the semi-colon ( ; ) to indicate that the remainder of the line should be ignored.  An apostrophe ( ' ) can still be used for comments, however.

In addition, the compiler treats text that appears after the line continuation character as a remark.  However, we still recommend that such comments are preceded by a REM or an apostrophe ( ' ) symbol to clearly distinguish remarks from the actual code.  For example:

DECLARE FUNCTION Call32& _   The prototype

  LIB "CALL32.DLL" _ The DLL name

  ALIAS "Call32" _   ' The exported name

  (Param1 AS ANY, _  ' 1st parameter

  BYVAL id&) ' 2nd parameter

For situations where a large section of code needs to be REMmed out (yet preserved within the source code file), it is often easier to enclose the code with #IF 0/#ENDIF metastatements.  For example:

#IF 0               ' Exclude the following lines

  Code and text in between the #IF 0 and #ENDIF

  metastatements is ignored by the compiler.

  DIM a$(1 TO 1000) ' This line is ignored too.

  INCR x&           ' As is this line!

#ENDIF

Since the #IF expression evaluates to false (zero), this forces the compiler to exclude the enclosed block of code from the compilation process, in exactly the same way as if a REM statement had been prefixed to each line.

See also

Long Lines

Example

x% = 10             : REM This is a comment

y% = 20          ' This is another form of comment

! MOV EAX,"ABCD" ; An Inline Assembler comment