String Operators perform various operations on the terms specified. There are several different types of operation available.
| Symbol | Type | Name | Description | Example |
|---|---|---|---|---|
| Arithmetic | ||||
| ~ | Infix | Concatenation | Joins the right term to the end of the left term | a ~ b |
| ~* | Infix | Repetition | Repeats the left term by the number specified by the right term | a ~* b |
| Bitwise | ||||
| ~& | Infix | AND | Bits that are set in both left and right terms are set | a ~& b |
| ~| | Infix | OR | Bits that are set in either left or right terms are set | a ~| b |
| ~^ | Infix | XOR | Bits that are set in either left or right terms, but not both, are set | a ~^ b |
| ~^ | Prefix | NOT | All bits in the term are inverted | ~^ a |
| ~< | Infix | Shift left | Shift the bits of the left term left by the number of steps specified in the right term | a ~< b |
| ~> | Infix | Shift right | Shift the bits of the left term right by the number of steps specified in the right term | a ~> b |
| Type Casting | ||||
| ~ | Prefix | Cast | Converts the term to a String | ~a |
| Type Checking | ||||
| is | Infix | IsType | Checks if the value of the left term is of the type specified by the right term | a is string |
Each Operator will evaluate the terms provided as appropriate to the Operator value type - for instance, performing a concatenation on two Numbers will convert the Numbers to Strings first.