# See 1800-2017 Table 11-2: Operator Precedence and Associativity
# Note that the duplicates (unary/binary) have been removed,
# ie '+', '-', '&', '|', '^', '~^', '^~'
# Note: This is a inconsistent mix of operator and punctuation
# Note: Operators would ideally be represented as one token: ':' ':' -> '::', '~' '&' -> '~&'

---input---
() [] :: .
+ - ! ~ & ~& | ~| ^ ~^ ^~ ++ --
**
* / %
<< >> <<< >>>
< <= > >= inside dist
== != === !== ==? !=?
&&
||
?:
-> <->
= += -= *= /= %= &= ^= |= <<= >>= <<<= >>>= := :/ <=
{} {{}}

---tokens---
'('           Punctuation
')'           Punctuation
' '           Text.Whitespace
'['           Punctuation
']'           Punctuation
' '           Text.Whitespace
':'           Operator
':'           Operator
' '           Text.Whitespace
'.'           Punctuation
'\n'          Text.Whitespace

'+'           Operator
' '           Text.Whitespace
'-'           Operator
' '           Text.Whitespace
'!'           Operator
' '           Text.Whitespace
'~'           Operator
' '           Text.Whitespace
'&'           Operator
' '           Text.Whitespace
'~'           Operator
'&'           Operator
' '           Text.Whitespace
'|'           Operator
' '           Text.Whitespace
'~'           Operator
'|'           Operator
' '           Text.Whitespace
'^'           Operator
' '           Text.Whitespace
'~'           Operator
'^'           Operator
' '           Text.Whitespace
'^'           Operator
'~'           Operator
' '           Text.Whitespace
'+'           Operator
'+'           Operator
' '           Text.Whitespace
'-'           Operator
'-'           Operator
'\n'          Text.Whitespace

'*'           Operator
'*'           Operator
'\n'          Text.Whitespace

'*'           Operator
' '           Text.Whitespace
'/'           Operator
' '           Text.Whitespace
'%'           Operator
'\n'          Text.Whitespace

'<'           Operator
'<'           Operator
' '           Text.Whitespace
'>'           Operator
'>'           Operator
' '           Text.Whitespace
'<'           Operator
'<'           Operator
'<'           Operator
' '           Text.Whitespace
'>'           Operator
'>'           Operator
'>'           Operator
'\n'          Text.Whitespace

'<'           Operator
' '           Text.Whitespace
'<'           Operator
'='           Operator
' '           Text.Whitespace
'>'           Operator
' '           Text.Whitespace
'>'           Operator
'='           Operator
' '           Text.Whitespace
'inside'      Operator.Word
' '           Text.Whitespace
'dist'        Operator.Word
'\n'          Text.Whitespace

'='           Operator
'='           Operator
' '           Text.Whitespace
'!'           Operator
'='           Operator
' '           Text.Whitespace
'='           Operator
'='           Operator
'='           Operator
' '           Text.Whitespace
'!'           Operator
'='           Operator
'='           Operator
' '           Text.Whitespace
'='           Operator
'='           Operator
'?'           Operator
' '           Text.Whitespace
'!'           Operator
'='           Operator
'?'           Operator
'\n'          Text.Whitespace

'&'           Operator
'&'           Operator
'\n'          Text.Whitespace

'|'           Operator
'|'           Operator
'\n'          Text.Whitespace

'?'           Operator
':'           Operator
'\n'          Text.Whitespace

'-'           Operator
'>'           Operator
' '           Text.Whitespace
'<'           Operator
'-'           Operator
'>'           Operator
'\n'          Text.Whitespace

'='           Operator
' '           Text.Whitespace
'+'           Operator
'='           Operator
' '           Text.Whitespace
'-'           Operator
'='           Operator
' '           Text.Whitespace
'*'           Operator
'='           Operator
' '           Text.Whitespace
'/'           Operator
'='           Operator
' '           Text.Whitespace
'%'           Operator
'='           Operator
' '           Text.Whitespace
'&'           Operator
'='           Operator
' '           Text.Whitespace
'^'           Operator
'='           Operator
' '           Text.Whitespace
'|'           Operator
'='           Operator
' '           Text.Whitespace
'<'           Operator
'<'           Operator
'='           Operator
' '           Text.Whitespace
'>'           Operator
'>'           Operator
'='           Operator
' '           Text.Whitespace
'<'           Operator
'<'           Operator
'<'           Operator
'='           Operator
' '           Text.Whitespace
'>'           Operator
'>'           Operator
'>'           Operator
'='           Operator
' '           Text.Whitespace
':'           Operator
'='           Operator
' '           Text.Whitespace
':'           Operator
'/'           Operator
' '           Text.Whitespace
'<'           Operator
'='           Operator
'\n'          Text.Whitespace

'{'           Punctuation
'}'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'{'           Punctuation
'}'           Punctuation
'}'           Punctuation
'\n'          Text.Whitespace
