☜ | Metalanguage Description1995 Version of ANSI (Equivalent to Current ISO Version) of Standard | ☞ |
The primitives of the metalanguage are the ASCII characters. The metalanguage operators are defined as follows:
Operator | Meaning |
::= | definition |
[ ] | option |
| | | grouping |
... | optional indefinite repetition |
L | list |
V | value |
SP | space |
The following visible representations of ASCII characters required in the defined syntactic objects are used: SP (space), CR (carriage-return), LF (line-feed), and FF (form-feed).
In general, defined syntactic objects will have designators which are underlined names spelled with lower case letters, e.g., name, expr, etc. Concatenation of syntactic objects is expressed by horizontal juxtaposition, choice is expressed by vertical juxtaposition. The ::= symbol denotes a syntactic definition. An optional element is enclosed in square brackets [ ], and three dots ... denote that the previous element is optionally repeated any number of times. The definition of name, for example, is written:
name | ::= | │ │ │ |
% ident |
│ │ │ |
┌ │ └ |
digit ident |
┐ │ ┘ |
... |
The vertical bars are used to group elements or to make a choice of elements more readable.
Special care is taken to avoid any danger of confusing the square brackets in the metalanguage with the ASCII graphics ] and [. Normally, the square brackets will stand for the metalanguage symbols.
The unary metalanguage operator L denotes a list of one or more occurrences of the syntactic object immediately to its right, with one comma between each pair of occurrences. Thus,
L name
is equivalent to
name [ , name ] ... .
The binary metalanguage operator V places the constraint on the syntactic object to its left that it must have a value which satisfies the syntax of the syntactic object to its right. For example, one might define the syntax of a hypothetical EXAMPLE command with its argument list by
examplecommand | ::= | EXAMPLE SP L exampleargument |
where
exampleargument | ::= | │ │ │ |
expr @ expratom V L exampleargument |
│ │ │ |
This example states: after evaluation of indirection, the command argument list consists of any number of exprs separated by commas. In the static syntax (i.e., prior to evaluation of indirection), occurrences of @ expratom may stand in place of nonoverlapping sublists of command arguments. Usually, the text accompanying a syntax description incorporating indirection will describe the syntax after all occurrences of indirection have been evaluated.
Copyright © Standard Documents; 1977-2024 MUMPS Development Committee;
Copyright © Examples: 1995-2024 Ed de Moel;
Copyright © Annotations: 2003-2008 Jacquard Systems Research
Copyright © Annotations: 2008-2024 Ed de Moel.
This page most recently updated on 16-Nov-2023, 17:52:46.
For comments, contact Ed de Moel (demoel@jacquardsystems.com)