From: Goldsack, Patrick <patrick.goldsack@hp...> - 2004-03-15 08:09:18
I have added a number of significant new features to the language:
1) operator syntax: there are now a number of operators, such as
they are used between ( ) as follows:
(a + b + c)
Only a single type of operator symbol may be used between the ( ), but
they may be nested.
Some operators are unary prefix (!)
Some are binary (- / >= <= > < == !=)
Some are nary (+ * && || ++ <>) (<> is vector append, ++ is string
2) you can now use if-then-else for defining an attribute value
this is used as follows
x IF (! (foo > 5)) THEN 42 ELSE (foo + 12) FI;
3) you can use non-lazy references in the definition of a vector, such as
4) to support the above, I have had to change the semantics of references
- if the first (or only) part of a reference is simply a name, this is
treated as ATTRIB,
this is the same as the interpretation of the type name in extends.
- if you want this first (or only) part to be a here reference part, you
must now prefix it
by HERE, other parts are still implicitly prefixed by HERE.
I do not believe that this will have any significant impact on existing
For more details of these, read the updated documentation when it comes out
over the next couple of days.