# 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