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