Add in bitwise AND ".&.", OR ".|.", and XOR ".^."
Add arithmetic left shift "<<", arithmetic right shift ">>",
and logical right shift operators ">>>"
This retains the original parsing of something like "9.^.5" to be
interpreted as "square root of 9" However, "9.^. 5" is interpreted as
"9 XOR 5".
( The number parsing code moving to parse_number() is the only
significant change in adapting this extension to the new server;
the original behavior of the extension is retained in this commit
--wrog )
Change-Id: I99291bed3d07d68ced204ea27bf684dc09a861fc
this subphase: Do all of the int(32_t)->Num retypings.
!(- use C99-like macros for printf)
!(- use [u]int*_t types (autoconf can verify they exist))
- abstract Num and Objid out
- default to 64 bit integers
!(- un-pointerify floating-point numbers (makes no sense on modern hardware))
really need to be sure .h files are not getting multiply included
(I had thought this was already best-practice from the K&R days).
new rules for forming the symbol from the filename:
(1) capitalize each word of the filename,
(2) final 'H' is capitalized
... *unless* the rest of the filename is an initialism (AST, DB)
which would make the resulting symbol all-caps (AST_H, DB_H)
which we do not want (since it might collide with something real)
so use a small 'h' in those cases (AST_h, DB_h)
(3) make sure this preprocessor symbol is used *NOWHERE* else.
--wrog