Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ stdl_syntax(1) — ACMSxp 3.2A

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

stdl(1)

acmsxp_introduction(1)

stdl_syntax(1)  —  Commands

Digital

NAME

STDL Syntax − describes rules and conventions for the ACMSxp Structured Transaction Definition Language
 

DESCRIPTION

STDL syntax makes use of the following elements to create definitions and specifications for the compile and build operations of developing an STDL application:

oReserved words

oPredefined words

oUser-defined words

oOperators

oPunctuators

 
The descriptions in the man pages use the notation described in the Syntax Notation section of this man page to illustrate the syntax created with these words. 
 

Reserved Words

 
Reserved words are those used in the syntax of STDL definitions and specifications. You can use only the STDL alphanumeric character set for reserved words. Lowercase, uppercase, and mixed case reserved words are equivalent.
 
The following are the words reserved for STDL definition and specification syntax.
 
        AND             ELSE            LANGUAGE        SCALE
        APPLICATION     END             LENGTH          SELECT
        ARE             ENQUEUE         LIST            SEND
        ARRAY           EVERY                           SENDING
        AS              EXCEPTION       MESSAGE         SET
        AT              EXECUTION                       SHARED
        AUDIT           EXIT            NATIONAL        SIZE
                                        NEXT            SOURCE
        BLOCK           FIELD           NO              SPECIFICATION
        BROADCAST       FIRST           NOMATCH         STRING
        BY              FOR             NOT             SUBMIT
                        FROM            NUMBER          SUBMITTER
        CALL                                            SYSTEM
        CANCEL          GET             OCTET
        CASE            GO              OF              TASK
        CHARACTER       GOTO            ON              TERMINATION
        CLASS           GROUP           OPERATOR        TEXT
        CLIENT                          OR              THEN
        CODE            HANDLER         OUTPUT          TO
        COMMIT          HOLD                            TRANSACTION
        COMPOSABLE                      PASSED          TRANSACTIONAL
 
                        ID              PRESENTATION    TRUE
        CONTROL         IDENTIFIER      PRIVATE         TYPE
                        IF              PROCEDURE
        DECIMAL         IN              PROCESSING      UNTIL
        DEPENDENT       INDEPENDENT                     UPDATE
        DEPENDING       INITIALIZATION  QUEUE           USING
        DEQUEUE         INOUT                           UUID
        DISPLAY         INPUT           RAISE
        DO              INTEGER         READ            VALUE
                        INTO            RECEIVING       VERSION
                        IS              RECORD
                                        REPEATING       WAIT
                        KEY             RERAISE         WHILE
                                        RESTART         WITH
                                        RESTARTABLE     WORK
                                        ROLLBACK        WORKSPACE
                                                        WORKSPACES
 

Predefined Words

 
Only the STDL alphanumeric character set can be used for predefined words. Predefined words are used to specify:
 

oCharacter set identifiers
 
Identifies the execution character set to be used in the text data type:
 
  SIMPLE-LATIN
  Katakana
  Kanji
  ISO-LATIN-1
  ISO-LATIN-2
  ISO-UCS-2

oException class name (class identifier)
 
The name of one of the standard, predefined exception classes listed in the exceptions man page. 

oSystem workspace identifiers
 
The following system workspace names are defined:
 
  EXCEPTION-INFO-WORKSPACE
  SYSTEM-INFO-WORKSPACE
 
See the workspace man page for a description of system workspaces. 
 

User-Defined Words

 
User-defined words are either operating system names or identifiers.
 
Operating System Names
 
Operating system names are user-defined words outside the scope of STDL definitions and COBOL and C programs that are used in STDL definitions. Operating system names must:
 

oContain between 1 and 255 characters. 

oContain only the following characters from the Simple Latin character set:

-Letters (uppercase and lowercase characters are equivalent)

-Numbers

-Underscores (_) and hyphens (-)  (underscores and hyphens are equivalent)

-Not duplicate STDL reserved or predefined words. 

-Begin with a letter. 

-Not begin with tps_ or TPS_. 

 
Details of the names appear in the Parameters sections for the syntax in which you must supply the name. Also, see the acmsadmin help for information about the managed entities that represent these names.  When ACMSxp software sends an operating system name to another TPsystem in an RTI message, it converts lowercase characters to uppercase. 
 
Specify an operating system name as an s-text workspace field or as a restricted string literal.
 
Identifiers
 
Identifiers are user-defined words that refer to names as follows:

oEntities within a definition (for example, a data type or a task name)

oEntities in another external definition (for example, a task name in another task group)

oEntities in preprocessing directives

 
Define identifiers using STDL definitions, COBOL and C programs, and STDL #DEFINE preprocessing directives.
 
Each identifier is classified by scope and by namespace:
 

oThe scope in which the identifier exists determines the part of the definitions in which an identifier is available for use:
 

-An external identifier is defined within a source file but outside a definition.  After an external identifier is defined, it is available throughout the remainder of the source file at the compile operation. 

-An internal identifier is defined within a definition and is available for use only within that definition. 

 

oThe namespace in which the identifier exists determines the set of identifiers in which an identifier is grouped for the purpose of checking uniqueness. An identifier is either unqualified or qualified. 
 

-An unqualified identifier is unique within its scope.  An unqualified internal identifier hides an unqualified external identifier of the same name, except that an unqualified internal identifier does not hide an external unqualified identifier used as a data type identifier. 

-A qualified identifier is qualified by either another qualified identifier (field names only) or by an unqualified identifier. Qualified identifiers are unique within the definition of the identifier by which they are qualified. 

 
Unqualified and qualified identifiers can have either internal or external scope.

 
Both external and internal identifiers must:
 

oContain between 1 and 31 characters. 

oContain only letters (uppercase and lowercase are equivalent), numbers, underscores (_), and hyphens (-) from the STDL alphanumeric character set. Underscores and hyphens are treated as equivalent characters. 

oBegin with a letter. 

oNot duplicate STDL reserved or predefined words. 

oNot begin with tps_ or TPS_. 

oNot end with an underscore (_) or hyphen (-). 

 
The identifiers by scope and namespace are:
 
        Identifier    External Internal Unquali- Qualified Qualified by
                                        fied
        Data type        X                 X
        identifier
 
        Field                      X                 X        Data type
        identifier                                            identifier
                                                              or workspace
                                                              name
 
        Label name                X        X
 
        Message group    X                 X
        name
 
        Message          X                 X         X        Message group
        identifier                                            UUID
 
        Presentation     X                 X
        group name
 
        Presentation     X                          X        Presentation
        procedure name                                       group name
 
        Processing       X                 X
        group name
 
        Processing       X                          X        Processing
        procedure name                                       group name
 
        Receive record   X                          X        Presentation
        name                                                 group name
 
        Send record      X                          X        Presentation
        name                                                 group name
 
        Task group name  X                 X
 
        Task name        X                          X        Task group
                                                             name
        Workspace name
          Shared         X                 X
           workspace
          Private                 X        X
           workspace
 

Literals

 
STDL allows the following literals for use in STDL applications:
 
  String literal
  Restricted string literal
  Integer literal
  Decimal literal
 
String Literal
 
A string literal is a sequence of characters selected from one execution character set. A string literal:
 

oCan contain characters from a single character set.  The Simple-Latin and ISO-Latin-1 character sets are used by STDL. 

oMust start with double quotes (") and end with double quotes (") from the STDL alphanumeric character set. 
 
If you include a double quote in a string literal, you must represent the double quote by two double quote characters ("").
 
If two sequences of characters enclosed in double quotes have an ampersand (&) between them (ignoring any white space), they are treated as a single string literal. The ampersand is from the STDL alphanumeric character set; the two sequences of characters must be from the same character set.

The maximum number of characters allowed in a string literal is 255. 
 
Restricted String Literal
 
Some categories of string literal restrict the contents to the character set allowed or to the characters allowed within a character set:
 

oOperating-system-name literal
 
Contents are restricted to being an operating system name.
 

on-string literal
 
Contents are restricted to the numeric characters 0 through 9 from the Simple Latin character set.
 

oUUID-string literal
 
A string literal giving a universal unique identifier (UUID) where the contents are restricted to being numeric characters 0 through 9, alphabetic characters a through f, A through F, and the hyphen (-) from the Simple Latin character set. The string contains eight hexadecimal digits, a hyphen, three groups of four hexadecimal digits and a hyphen, and twelve hexadecimal digits.
 
  "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
 
where x is a hexadecimal digit.
 

oComputer-language literal
 
An operating system name specifying either C or COBOL.
 

oHuman-language literal
 
One of the human language names specified using the Simple Latin character set. Human languages are defined in the following format:
 
  <language>_<territory>
 
The value <language> is a language symbol as defined in ISO 639:1988. The value <territory> is a country code (ALPHA-2) as defined in ISO 3166:1993. For example:
 
  en_US
 
This represents the English language for the territory of the United States of America.
 
The contents of the literal are restricted to the values ENGLISH, JAPANESE, and and a standard human language. Each language is mapped to a particular execution character set or sets.
 
The language symbol is used to form a human language name specified in STDL message groups. See the message_group man page. 

 
Integer Literal
 
An integer literal is sequence of characters selected from the numeric characters of the STDL alphanumeric character set:
 

o0 through 9

oPlus sign (+)

oMinus sign (-)

 
An integer literal must contain:
 

oAt least one numeric character. 

oAt most one sign. If a sign is used, it must be the first character. If a sign is not used, the decimal literal is nonnegative. 

 
Decimal Literal
 
A decimal literal is sequence of characters selected from the numeric characters of the STDL alphanumeric character set:
 

o0 through 9

oPlus sign (+)

oMinus sign (-)

oDecimal point (.) 

 
A decimal literal must contain:
 

oAt least one numeric character. 

oAt most one sign. If a sign is used, it must be the first character. If a sign is not used, the decimal literal is nonnegative. 

oAt most one decimal point. The decimal point can appear anywhere except before a sign. If the decimal point is omitted, the decimal literal is treated as if a decimal point follows the last character. 

 

Operators

 
STDL uses the following sets of operators:
 
   Relational
   Arithmetic
   Assignment
 
Relational Operators
 
The relational operators used in Boolean expressions and their meanings are:
 
  Operator              Represents:
 
  =                     Equal
  <>                    Not equal
  <                     Less than
  <=                    Less than or equal
  =<                    Less than or equal
  >                     Greater than
  >=                    Greater than or equal
  =>                    Greater than or equal
 
Only the STDL alphanumeric character set can be used for a relational operator.
 
Arithmetic Operators
 
The arithmetic operators are:
 
 +      Plus sign         The arithmetic sum of the values of two
                          integer literals, of the contents of
                          two integer workspace fields, or of the
                          values of two integer expressions
 
                          If only one operand follows (unary
                          plus), the value of the integer literal,
                          the content of the integer workspace, or
                          the value of the integer expression.
 
 -      Minus sign        The arithmetic difference of the values
                          of two integer literals, of the contents
                          of two integer workspace fields, or of
                          the values of two integer expressions
 
                          If only one operand follows (unary
                          minus), the value resulting by changing
                          the sign of the value of the integer
                          literal, the content of the integer
                          workspace, or the value of the integer
                          expression.
 
 ∗      Multiplication    The arithmetic product of the values of
        sign              two integer literals, of the contents of
                          two integer workspace fields, or of the
                          values of two integer expressions
 
 /      Division          The arithmetic quotient of the values of
        sign              two integer literals, of the contents of
                          two integer workspace fields, or of the
                          values of two integer expressions
 
Only the STDL alphanumeric character set can be used for an arithmetic operator. Arithmetic operators must be preceded by white space and followed by white space.
 
 
The assignment operator (=) is used in STDL assignment statements and preprocessor directives.
 

Punctuators

 
The punctuation characters used in STDL definitions and specifications are:
 
:      Colon       Has the following uses:
 
                   Separates a label from the syntax
                   element or elements to which the label
                   refers.
 
                   Separates a Boolean expression from
                   the statement that is executed when the
                   expression evaluates true.
 
                   Separates the keyword NOMATCH from the
                   statement that is executed when no match
                   is found for a Boolean expression.
 
;      Semicolon   Terminates statements, field
                   definitions, and attributes.
 
,      Comma       Separates arguments when more than one
                   argument is being passed.
 
 
()     Parentheses Can be used to enclose Boolean
                   expressions and delimit array
                   subscripts.
 
Only the STDL alphanumeric character set can be used for punctators.
 

Comment Text and Comment Character

 
Include comment text in STDL definitions and specifications using the exclamation mark (!)  as a comment character. Include comment text by:
 
  Beginning a source line with an exclamation mark
 
  Insert an exclamation mark within a source line.
 
Comment text can contain:

oCharacters from the alphanumeric, ISO Latin 1, ISO Latin 2, Katakana, or Kanji character sets. 

oHorizontal tabs

oForm feeds

 
Comment text is ignored when definitions and specifications are processed.
 
A comment character marks the beginning of comment text. All characters following the comment character in a source line are treated as comment text. Comment text terminates at the end of the source line. Comment text cannot be continued from one line to another. Within a string literal, a comment character is treated as part of the string literal.
 

Message Parameters

 
Within the text of messages in message definitions, you can specify parameters that ACMSxp software fills in when getting the message text at run time. The percent sign (%) and an integer literal from 1 to 9 indicates a message parameter.
 

Boolean Expressions

 
A Boolean expression has an evaluated value of either true or false. The format for a Boolean expression is:
 
  { <operand-1> <relational-operator> <operand-2> |
    (<boolean-expression>) |
    NOT <boolean-expression> |
    <boolean-expression> { AND | OR  } <boolean-expression>
   }
 
Parentheses (open (() and closed ())  pairs) can be used to delimit the Boolean expression. Values within parentheses are evaluated first.
 
The following categories of conditions are associated with Boolean expressions:
 

oSimple condition
 
A simple condition compares two operands operand-1 and operand-2. A simple condition is either true or false based on the result of the comparison specified by the relational operator used.

oComplex condition
 
A complex condition is formed by combining simple conditions and complex conditions with the logical operators, AND and OR, or by negating these conditions with the negative logical operator, NOT. The value of a complex condition is the value that results from the interactions of the logical operators and negative logical operator among its constituent conditions. Rules for the logical operators are as follows:

-AND
 
Logical conjunction; the value is true if both conjoined conditions are true; the value is false if either one of the conjoined conditions is false or both conjoined conditions are false. The precedence of AND is higher than that of OR.

-OR
 
Logical inclusive OR; the value is true if either one included is true or both of the included conditions are true; the value is false if both included conditions are false.

-NOT
 
Logical converse of value; the value is true if the condition is false; the value is false if the condition is true.

 
The data types of the operand-1 and operand-2 operands must be compatible. The types of operands that can be compared and restrictions on the types of relational operators that can be used with different data types are:
 
 Operand of Data Type: Can Compare with Operand of Data Type:
 
 Array workspace       Array workspace field that has the
 field                 same array element data type, the
                       same level of array nesting, and
                       the same size of each level of array
                       nesting.
 
                       Variable-length array fields being
                       compared must have equal values of
                       the DEPENDING ON fields. Comparisons
                       are performed element by element.
 
                       Comparisons are for equality (=)
                       only. You cannot perform other
                       comparisons.
 
 Class identifier      Integer workspace field, integer
                       literal, or class identifier.
 
 Data type workspace   Data type workspace field
 field                 Comparisons are for equality only.
 
 Decimal workspace     Decimal workspace field or decimal
 field or decimal      literal
 literal               The decimal points of the two fields
                       or literals are aligned. The field
                       or literal with fewer digits to the
                       left of the decimal point is padded
                       with zeros to the left. The field
                       or literal with fewer digits to the
                       right of the decimal point is padded
                       with zeros to the right.
 
 Integer workspace     Integer workspace field, message
 field or integer      identifier, class identifier, or
 literal               integer literal
 
 Message group         Message group identifier, UUID-
 identifier            workspace field, or UUID string
                       literal.
 
                       Comparisons are for equality only.
 
 Message identifier    Message identifier, integer workspace
                       field, or integer literal.
 
 Octet workspace       Octet workspace field
 field                 Comparisons are for equality (=)
                       only. You cannot perform other
                       comparisons.
 
 Record workspace      Record workspace field whose fields
 field                 or subfields must match in order,
                       data type, and size
 
                       Comparisons are for equality (=)
                       only. You cannot perform other
                       comparisons. Comparisons are
                       performed field by field.
 
 Text workspace field  Text workspace field or string
 or string literal     literal
 
                       Text to be compared must be of the
                       same character set. Comparisons
                       of alphabetic characters are case
                       sensitive.
 
                       In comparisons of text fields or
                       strings of unequal length, ACMSxp
                       software pads the shorter text field
                       or string with spaces to the right
                       for the comparison.
 
 UUID-workspace field  UUID-workspace field, message group
                       identifier, or UUID-string literal
 
                       Comparisons are for equality (=)
                       only. No other comparisons are
                       supported.
 

Syntax Notation

 
The syntax diagrams in the ACMSxp STDL man pages observe the following conventions:
 

oSyntax is all uppercase. 
 
Underlined uppercased words are required for that syntax element.
 
Uppercased words without underlines are optional. Include them for readability.

oBraces { } indicate mandatory choices. 
 
One and only one of the choices immediately adjacent to the opening brace must be used. When braces enclose only a single choice, they still indicate that the choice is required, but serve to clarify the full scope of the required elements.

oBrackets [ ] indicate optional choices. Zero, one, or more of the enclosed syntax elements can be used. 

oVertical bars (|) separate choices within brackets or braces. 

oHorizontal ellipses (...) indicate repetition. 
 
Within brackets [ ... ] horizontal ellipses indicate optional repetition of the syntax element immediately to the left of the brackets.
 
Horizontal ellipses preceded by a comma within brackets [ ,... ] indicate that the optional repetitions must be separated by commas.

 

RELATED INFORMATION

Command: stdl(1)

acmsxp_introduction(1)
 
 
 
 
 
 
 
 
 

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026