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