[NAME]
ALL.dao.operator.misc

[TITLE]
Miscellaneous Operators

[DESCRIPTION]


 0.1   String operators  

     
   1  string + string   # Concatenation;
   2  string += string  # String appending;
   3  
   4  string / string   # Path-like Concatenation;
   5  string /= string  # Path-like appending;
     
For path-like concatenation, the paths do not need to exist. For such operation, / and X:
, where X is any alphabetical character, are considered as absolute paths. Additionally, 
paths starting with $( (such as $(HOME)/abc etc.) are also considered as absolute (note t
hat the right brackets are not checked). All other paths are considered as relative, and 
for concatenation, ../ will represent one level higher path with respect to the current p
ath.

 0.2   Type Operators  

     
   1  # Operators:  ?=  ?<
   2  
   3  value1 ?= value2  # Type equal;
   4  value  ?< type    # Is type of;
     


 0.3   Type Operators  

     
   1  # Operators:  ?=  ?<
   2  
   3  value1 ?= value2  # Type equal;
   4  value  ?< type    # Is type of;
     


 0.4   Ternery operator: ?:  

     
   1  expression1 ? expression2 : expression3
     
The value of expression2 is returned if expression1 is evaluated to true (non zero), othe
rwise the value of expression3 is returned.

 0.5   Miscellaneous operators  

     
   1  # Size operator:
   2  % none     # Data type size: 0;
   3  % int      # Data type size: 4 on 32 bits machine, or 8 on 64 bits machine;
   4  % float    # Data type size: 4 for single precision;
   5  % double   # Data type size: 8 for double precision;
   6  % complex  # Data type size: 16 (double precision for both parts);
   7  % string   # Number of characters;
   8  % array    # Number of elements;
   9  % list     # Number of items;
  10  % map      # Number of key-value pairs;
  11  % tuple    # Number of items;
  12  
  13  # Complex conjugation operator:
  14  ~ complex  # Conjugation;
  15  
  16  # "in" or "not in" operator:
  17  int    in string  # Test if a character is in the string;
  18  string in string  # Test if the left operand is a substring of the right;
  19  any    in list    # Test if a value is contained in a list;
  20  any    in map     # Test if a key is in a map;
  21  any    in tuple   # Test if a value is in a tuple;
  22  
  23  int    not in string  # Test if a character is not in the string;
  24  string not in string  # Test if the left operand is not a substring of the right;
  25  any    not in list    # Test if a value is not contained in a list;
  26  any    not in map     # Test if a key is not in a map;
  27  any    not in tuple   # Test if a value is not in a tuple;