Keywords as Identifiers

When you use a PowerScript keyword as an identifier, PowerBuilder .NET automatically prepends the commercial at symbol (@) to the identifier in the source code.

The @ symbol allows the compiler to distinguish between the keyword and the identifier. Although the identifier still appears without the @ symbol in PowerBuilder .NET painters and in IntelliSense, when you add the identifier to a script by selecting it in the IntelliSense list, the Script Editor includes the @ symbol prefix in the identifier.

If you add the same identifier by typing it in a script, make sure to enter the @ symbol prefix. The compiler removes the symbol when it builds the application or component containing the identifier. However, if you type two @ symbols as a prefix to an identifier, the symbols are not removed by the compiler and become part of the identifier name after compilation.

Note: Use of the @ symbol is optional for these keywords: open, close, create, destroy, post, describe, and update.
Also, "system" is not a keyword in the PowerBuilder .NET IDE, although it remains a keyword (reserved word) in PowerBuilder Classic. The following external function declaration is a correct usage of the "system" keyword in PowerBuilder Classic, but reports an error when used in PowerBuilder .NET:
   function int foo() system library "aaa"

You can find a list of PowerScript reserved words in the PowerScript Reference.

If you name an event in an object painter with the keyword "event," a System.Type return type, and a System.Type argument to which you assign the "for" identifier, the source code for the event is saved as:
   event type System.@Type @event (System.@Type @for)
   end type