Customizing the metamodel : Customizing the repository metamodel: SAPROPS.CFG and USRPROPS.TXT : Composition and syntax
  
Composition and syntax
Like most programming languages, the language syntax of USRPROPS.TXT is composed of a series of strings. At least one white space character is required to separate strings from each other (white space includes spaces, tabs, commas, carriage return/line feeds, and some others). When there are several white space characters one after the other, such as a carriage return followed by a tab, they are grouped together and treated as one.
If a string includes one or more embedded spaces, enclose it in double quotes, for example, use "Data Flow", not Data Flow.
Keywords
The USRPROPS.TXT language has a certain set of keywords. Depending on its placement, a keyword is considered to be either a command or an argument. For a list of the keywords that are allowed in USRPROPS.TXT, see Keywords for USRPROPS.
Case insensitivity of keywords
Keywords in USRPROPS.TXT are not case sensitive, and you may use capital letters, or small letters, or mixed. In this manual and in the sample USRPROPS.TXT file, commands and all other keywords are all caps for readability only. Examples of commands are:
BEGIN or Begin or BegiN
EDIT or Edit
LIST or List or LiST
LISTONLY or Listonly or ListOnly
RENAME or Rename or ReName, and so on
Commands
Commands are always keywords and they always start a new phrase. When System Architect parses USRPROPS.TXT, it knows that the first string in the file must be a valid keyword command. Each command must be followed by a known number of argument strings (zero or one or more) and then another command must be found.
Arguments
Strings that follow commands are arguments. Some arguments may be keywords. Other arguments consist of textual strings that provide the names of diagrams, symbols, definitions, properties, list values, labels, help strings, and so on, that are found in subsequent dialogs. Here are some examples:
LIST "Processor Scheduling"
Processor Scheduling is not a keyword. It is used as an argument in the expression above.
DISPLAY { FORMAT KEY LEGEND "Key data" }
KEY is a keyword. It is used as an argument in the expression above.
Case sensitivity of arguments that are text strings
As mentioned previously, keywords are not case sensitive. However, arguments that are text strings are case sensitive. For example, using the LIST "Processor Scheduling" argument above, any references to that list in either SAPROPS.CFG or USRPROPS.TXT must be spelled exactly the same way, with the same case sensitivity. For example, if we specify the following list:
LIST "Processor Scheduling"
{
VALUE "preemptive"
VALUE "nonpreemptive"
}
Then a valid reference to that list should have the same exact spelling.
DEFINITION "Hardware Processor"
PROPERTY "Scheduling"
{ EDIT text LIST "Processor Scheduling" LENGTH 20
DISPLAY { LEGEND "Sched" } }
However, the following syntax causes an error saying List "PROCESSOR SCHEDULING" not Found.
DEFINITION "Hardware Processor"
PROPERTY "Scheduling"
{ EDIT text LIST "PROCESSOR SCHEDULING" LENGTH 20
DISPLAY { LEGEND "Sched" } }
Similarly, any properties referenced in reports must use the spelling and case of the entry in SAPROPS.CFG and/or USRPROPS.TXT file.