SYNTAX OF NOTATIONS
===================
CHARACTERS
----------
definitions:
:= - formal
: - informal definition, semantics or comment
- - the same as ":"
(: ... ) - definition term2:=term1 made in prose in form
... term1 (: term2) ...
(= ... ) - terms term1 and term2 are used interchangably if this noted in form:
... term1 (= term2 ) ...
== - equivalent, used in prose
char(x) - character with ASCII x; for example, chr(65) is "A";
CR - carriage return == char(13)
LF - line feed == char(10)
TAB - horizontal tab == char(9)
soft-character - any character with ASCII less than 33
S - soft-character
W := char(32) or char(9)
white-character := W
L := [S]LF
: line terminator
... : repetition or some text, depends on context
LEXICAL CONTRUCTS
-----------------
<...> - term self-described and self-named in prose;
for example,
"event-pattern can have form <token>.<type>";
double-quoting "..." is an alternative to <...>
[...] - fragment which can be omitted.
{...} - denotes fragment which cannot be omitted;
parenthesises (...) serve this purpose as well;
note: construct "{...}" is outdated.
construct "(...)" is preferred.
| - alternation symbol: read "one of";
example:
x|y|z
means
(( x)&(!y)&(!z) ) or ((!x)&( y)&(!z) ) or ((!x)&(!y)&( z) ),
were "!" stands for "not", and "&" stands for "and";
cluster - the way to denote instruction elements.
Two formats are used: dot-syntax or comma-syntax. Example:
hello.w.l - this is event-pattern which matches word
"hello", "w" stands for type "word", and "l" stands for
scope "local".
cluster syntax is:
[fragment [.[fragment [.[fragment ... ]]]]]
where fragment := <string without W and without period> | string-expression
cluster-fragment - fragment in cluster's notation
string-expression - double-quouted text which can include characters escaped in form
\X, variables escaped in form $name,
and double quotes escaped in form <"><">
Details are in:
string_expression_help.txt
Variables_and_Streams_help.txt