-
1. OPAL Language Syntax
- 1.1. Statements:
- 1.2. Real expressions:
- 1.3. Real variables and constants:
- 1.4. Logical expressions:
- 1.5. Logical variables:
- 1.6. String expressions:
- 1.7. String constants:
- 1.8. Real array expressions:
- 1.9. Real array definitions:
- 1.10. Constraints:
- 1.11. Variable references:
- 1.12. Token lists:
- 1.13. Regular expressions:
1. OPAL Language Syntax
Words in italic font are syntactic entities, and characters in
monospaced font
must be entered as shown. Comments are given in bold
font.
1.1. Statements:
comment |
: |
|
| |
|
|
identifier |
: |
|
integer |
: |
|
string |
: |
|
| |
|
|
command |
: |
keyword attribute-list |
| |
label |
|
keyword |
: |
identifier |
label |
: |
identifier |
attribute-list |
: |
empty |
| |
attribute-list |
|
attribute |
: |
attribute-name // only for logical attribute |
| |
attribute-name |
|
// expression evaluated |
||
| |
attribute-name |
|
// expression retained |
||
attribute-name |
: |
identifier |
attribute-value |
: |
string-expression |
| |
logical-expression |
|
| |
real-expression |
|
| |
array-expression |
|
| |
constraint |
|
| |
variable-reference |
|
| |
place |
|
| |
range |
|
| |
token-list |
|
| |
token-list-array |
|
| |
regular-expression |
1.2. Real expressions:
real-expression |
: |
real-term |
| |
|
|
| |
|
|
| |
real-expression |
|
| |
real-expression |
|
real-term |
: |
real-factor |
| |
real-term |
|
| |
real-term |
|
real-factor |
: |
real-primary |
| |
real-factor |
|
real-primary |
: |
real-literal |
| |
symbolic-constant |
|
| |
|
|
| |
real-name |
|
| |
array |
|
| |
object-name |
|
| |
object-name |
|
| |
table-reference |
|
| |
real-function |
|
| |
real-function |
|
| |
real-function |
|
| |
function-of-array |
|
| |
|
|
real-function |
: |
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
function-of-array |
: |
|
| |
|
|
| |
|
|
| |
|
1.3. Real variables and constants:
real-prefix |
: |
empty |
| |
|
|
| |
|
|
| |
|
|
real-definition |
: |
real-prefix real-name |
// expression evaluated |
||
| |
real-prefix real-name |
|
// expression retained |
||
symbolic-constant |
: |
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
real-name |
|
real-name |
: |
identifier |
object-name |
: |
identifier |
table-name |
: |
identifier |
column-name |
: |
identifier |
1.4. Logical expressions:
logical-expression |
: |
and-expression |
| |
logical-expression || and-expression |
|
and-expression |
: |
relation |
| |
and-expression |
|
relation |
: |
logical-name |
| |
|
|
| |
|
|
| |
real-expression relation-operator real-expression |
|
logical-name |
: |
identifier |
relation-operator |
: |
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
1.5. Logical variables:
logical-prefix |
: |
|
| |
|
|
logical-definition |
: |
logical-prefix logical-name |
// expression evaluated |
||
| |
logical-prefix logical-name `:=` logical-expression |
|
// expression retained |
1.6. String expressions:
string-expression |
: |
string |
| |
identifier // taken as a string |
|
| |
string-expression |
1.7. String constants:
string-prefix |
: |
|
string-definition |
: |
string-prefix string-name |
// expression evaluated |
||
| |
string-prefix string-name |
|
// expression retained |
1.8. Real array expressions:
array-expression |
: |
array-term |
| |
|
|
| |
|
|
| |
array-expression |
|
| |
array-expression |
|
array-term |
: |
array-factor |
| |
array-term |
|
| |
array-term |
|
array-factor |
: |
array-primary |
| |
array-factor |
|
array-primary |
: |
|
| |
array-reference |
|
| |
real-function |
|
| |
|
|
array-literal |
: |
real-expression |
| |
array-literal |
|
array-reference |
: |
array-name |
| |
object-name |
|
array-name |
: |
identifier |
1.9. Real array definitions:
array-prefix |
: |
|
array-definition |
: |
array-prefix array-name |
| |
array-prefix array-name |
1.10. Constraints:
constraint |
: |
array-expression constraint-operator array-expression |
constraint-operator |
: |
|
| |
|
|
| |
|