User's Manual

Appendix D. PDL Syntax 191
idpath := id ( <DOT> id )*
id := <ID>
integer := <INT>
D.2. PDL Reserved Words
D.2.1. PDL Keywords
The following list, in conjunction with the Section D.2.2 PDL Attribute Types, details all PDL re-
served words. Explanations are provided where applicable. Examples of how to use almost all of
these keywords can be found in the Chapter 9 Persistence Tutorial.
D.2.1.1. Escaping PDL Keywords
Similar to most other languages, the PDL reserved words are not valid except in the context defined for
them unless they are properly escaped. For instance, naming something "composite" or "component"
will cause a compilation error because the parser found a "composite" token instead of an "id" token.
The desire to use keywords as well as legal SQL identifiers that would not otherwise be allowed in
PDL (such as ’#’) has prompted the ability to escape special characters and words. In order to use a
reserved word or character in a PDL identifier, it is necessary to precede the character with a ’\’. For
example:
object type StereoReceiver {
...
String[1..1] serial\# = stereo_receiver.serial\#;
String[0..1] \unique = stereo_receiver.unique_column VARCHAR(100);
Component[0..1] \component = join stereo_receiver.component_id
to components.component_id;
...
}
D.2.1.2. Reserved Words
Reserved Words
---------------------------------------
ADAPTER = adapter
ADD = add
AGGRESSIVE = aggressive <WS> load
ALL = all
ASSOCIATION = association
ATTRIBUTES = attributes
CALL = do <WS> call
CLASS = class
CLEAR = clear
COMPONENT = component
COMPOSITE = composite
DATA_OPERATION = data <WS> operation
DELETE = delete
DO = do
EXTENDS = extends
FALSE = false
FOREIGNKEY = foreign <WS> key
IMMEDIATE = immediate