'# Numbers'   Comment.Single
'\n'          Text.Whitespace

'0b0101011'   Literal.Number.Bin
'\n'          Text.Whitespace

'1234'        Literal.Number.Integer
' '           Text.Whitespace
';'           Punctuation
' '           Text.Whitespace
'0x1A'        Literal.Number.Hex
' '           Text.Whitespace
';'           Punctuation
' '           Text.Whitespace
'0xbeef'      Literal.Number.Hex
' '           Text.Whitespace
';'           Punctuation
' '           Text.Whitespace
'0763'        Literal.Number.Integer
' '           Text.Whitespace
';'           Punctuation
' '           Text.Whitespace
'0o123'       Literal.Number.Oct
'\n'          Text.Whitespace

'3.14'        Literal.Number.Float
' '           Text.Whitespace
';'           Punctuation
' '           Text.Whitespace
'5.0e21'      Literal.Number.Float
' '           Text.Whitespace
';'           Punctuation
' '           Text.Whitespace
'0.5e-12'     Literal.Number.Float
'\n'          Text.Whitespace

'100_000_000' Literal.Number.Integer
'\n\n'        Text.Whitespace

'# these are not valid numbers' Comment.Single
'\n'          Text.Whitespace

'0b01'        Literal.Number.Bin
'2'           Literal.Number.Integer
' '           Text.Whitespace
';'           Punctuation
' '           Text.Whitespace
'0xb'         Literal.Number.Hex
'oar'         Name
' '           Text.Whitespace
';'           Punctuation
' '           Text.Whitespace
'0'           Literal.Number.Integer
'o888'        Name
'\n'          Text.Whitespace

'0'           Literal.Number.Integer
'B01'         Name.Class
' '           Text.Whitespace
';'           Punctuation
' '           Text.Whitespace
'0'           Literal.Number.Integer
'XAF'         Name.Class
' '           Text.Whitespace
';'           Punctuation
' '           Text.Whitespace
'0'           Literal.Number.Integer
'O123'        Name.Class
'\n\n'        Text.Whitespace

'# Characters' Comment.Single
'\n'          Text.Whitespace

'?a'          Literal.String.Char
' '           Text.Whitespace
';'           Punctuation
' '           Text.Whitespace
'?1'          Literal.String.Char
' '           Text.Whitespace
';'           Punctuation
' '           Text.Whitespace
'?'           Literal.String.Char
'\\n'         Literal.String.Escape
' '           Text.Whitespace
';'           Punctuation
' '           Text.Whitespace
'?'           Literal.String.Char
'\\s'         Literal.String.Escape
' '           Text.Whitespace
';'           Punctuation
' '           Text.Whitespace
'?\\c'        Literal.String.Char
' '           Text.Whitespace
';'           Punctuation
' '           Text.Whitespace
'? '          Literal.String.Char
';'           Punctuation
' '           Text.Whitespace
'?,'          Literal.String.Char
'\n'          Text.Whitespace

'?'           Literal.String.Char
'\\x{'        Literal.String.Escape
'12'          Literal.Number.Hex
'}'           Literal.String.Escape
' '           Text.Whitespace
';'           Punctuation
' '           Text.Whitespace
'?'           Literal.String.Char
'\\x{'        Literal.String.Escape
'abcd'        Literal.Number.Hex
'}'           Literal.String.Escape
'\n'          Text.Whitespace

'?'           Literal.String.Char
'\\x34'       Literal.String.Escape
' '           Text.Whitespace
';'           Punctuation
' '           Text.Whitespace
'?'           Literal.String.Char
'\\xF'        Literal.String.Escape
'\n\n'        Text.Whitespace

'# these show that only the first digit is part of the character' Comment.Single
'\n'          Text.Whitespace

'?\\1'        Literal.String.Char
'23'          Literal.Number.Integer
' '           Text.Whitespace
';'           Punctuation
' '           Text.Whitespace
'?\\1'        Literal.String.Char
'2'           Literal.Number.Integer
' '           Text.Whitespace
';'           Punctuation
' '           Text.Whitespace
'?\\7'        Literal.String.Char
'\n\n'        Text.Whitespace

'# Atoms'     Comment.Single
'\n'          Text.Whitespace

':this'       Literal.String.Symbol
' '           Text.Whitespace
';'           Punctuation
' '           Text.Whitespace
':that'       Literal.String.Symbol
'\n'          Text.Whitespace

":'"          Literal.String.Symbol
'complex atom' Literal.String.Symbol
"'"           Literal.String.Symbol
'\n'          Text.Whitespace

':"'          Literal.String.Symbol
"with' "      Literal.String.Symbol
'\\"'         Literal.String.Symbol
'\\"'         Literal.String.Symbol
" 'quotes"    Literal.String.Symbol
'"'           Literal.String.Symbol
'\n'          Text.Whitespace

':"'          Literal.String.Symbol
" multi\n line ' " Literal.String.Symbol
'\\s'         Literal.String.Escape
' '           Literal.String.Symbol
'\\1'         Literal.String.Symbol
'23 '         Literal.String.Symbol
'\\xff'       Literal.String.Escape
'\natom'      Literal.String.Symbol
'"'           Literal.String.Symbol
'\n'          Text.Whitespace

':...'        Literal.String.Symbol
' '           Text.Whitespace
';'           Punctuation
' '           Text.Whitespace
':<<>>'       Literal.String.Symbol
' '           Text.Whitespace
';'           Punctuation
' '           Text.Whitespace
':%{}'        Literal.String.Symbol
' '           Text.Whitespace
';'           Punctuation
' '           Text.Whitespace
':%'          Literal.String.Symbol
' '           Text.Whitespace
';'           Punctuation
' '           Text.Whitespace
':{}'         Literal.String.Symbol
'\n'          Text.Whitespace

':++'         Literal.String.Symbol
';'           Punctuation
' '           Text.Whitespace
':--'         Literal.String.Symbol
';'           Punctuation
' '           Text.Whitespace
':*'          Literal.String.Symbol
';'           Punctuation
' '           Text.Whitespace
':~~~'        Literal.String.Symbol
';'           Punctuation
' '           Text.Whitespace
':::'         Literal.String.Symbol
'\n'          Text.Whitespace

':%'          Literal.String.Symbol
' '           Text.Whitespace
';'           Punctuation
' '           Text.Whitespace
':.'          Literal.String.Symbol
' '           Text.Whitespace
';'           Punctuation
' '           Text.Whitespace
':<-'         Literal.String.Symbol
'\n\n'        Text.Whitespace

'# Strings'   Comment.Single
'\n'          Text.Whitespace

'"'           Literal.String.Double
'Hello world' Literal.String.Double
'"'           Literal.String.Double
'\n'          Text.Whitespace

'"'           Literal.String.Double
'Interspersed ' Literal.String.Double
'\\x{'        Literal.String.Escape
'ff'          Literal.Number.Hex
'}'           Literal.String.Escape
' codes '     Literal.String.Double
'\\7'         Literal.String.Double
' '           Literal.String.Double
'\\8'         Literal.String.Double
' '           Literal.String.Double
'\\6'         Literal.String.Double
'5 '          Literal.String.Double
'\\0'         Literal.String.Double
'16 and '     Literal.String.Double
'\\t'         Literal.String.Escape
'\\s'         Literal.String.Escape
'\\\\'        Literal.String.Double
's'           Literal.String.Double
'\\z'         Literal.String.Double
'\\+'         Literal.String.Double
' '           Literal.String.Double
'\\\\'        Literal.String.Double
' escapes'    Literal.String.Double
'"'           Literal.String.Double
'\n'          Text.Whitespace

'"'           Literal.String.Double
"Quotes ' inside " Literal.String.Double
'\\"'         Literal.String.Double
' '           Literal.String.Double
'\\1'         Literal.String.Double
'23 the '     Literal.String.Double
'\\"'         Literal.String.Double
'\\"'         Literal.String.Double
' '           Literal.String.Double
'\\xF'        Literal.String.Escape
' '           Literal.String.Double
'\\\\'        Literal.String.Double
'xF string '  Literal.String.Double
'\\\\'        Literal.String.Double
'\\"'         Literal.String.Double
' end'        Literal.String.Double
'"'           Literal.String.Double
'\n'          Text.Whitespace

'"'           Literal.String.Double
'Multiline\n   string' Literal.String.Double
'"'           Literal.String.Double
'\n\n'        Text.Whitespace

'# Char lists' Comment.Single
'\n'          Text.Whitespace

"'"           Literal.String.Single
'this is a list' Literal.String.Single
"'"           Literal.String.Single
'\n'          Text.Whitespace

"'"           Literal.String.Single
'escapes '    Literal.String.Single
"\\'"         Literal.String.Single
' '           Literal.String.Single
'\\t'         Literal.String.Escape
' '           Literal.String.Single
'\\\\'        Literal.String.Single
"\\'"         Literal.String.Single
"'"           Literal.String.Single
'\n'          Text.Whitespace

"'"           Literal.String.Single
'Multiline\n    char\n  list\n' Literal.String.Single

"'"           Literal.String.Single
'\n\n'        Text.Whitespace

'# Binaries'  Comment.Single
'\n'          Text.Whitespace

'<<'          Punctuation
'1'           Literal.Number.Integer
','           Punctuation
' '           Text.Whitespace
'2'           Literal.Number.Integer
','           Punctuation
' '           Text.Whitespace
'3'           Literal.Number.Integer
'>>'          Punctuation
'\n'          Text.Whitespace

'<<'          Punctuation
'"'           Literal.String.Double
'hello'       Literal.String.Double
'"'           Literal.String.Double
'::'          Operator
'binary'      Name
','           Punctuation
' '           Text.Whitespace
'c'           Name
' '           Text.Whitespace
'::'          Operator
' '           Text.Whitespace
'utf8'        Name
','           Punctuation
' '           Text.Whitespace
'x'           Name
'::'          Operator
'['           Punctuation
'4'           Literal.Number.Integer
','           Punctuation
' '           Text.Whitespace
'unit'        Name
'('           Punctuation
'2'           Literal.Number.Integer
')'           Punctuation
']'           Punctuation
'>>'          Punctuation
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'"'           Literal.String.Double
'hello™1'     Literal.String.Double
'"'           Literal.String.Double
'\n\n'        Text.Whitespace

'# Sigils'    Comment.Single
'\n'          Text.Whitespace

'~r/'         Literal.String.Other
'this + i'    Literal.String.Other
'\\s'         Literal.String.Escape
' "a" regex'  Literal.String.Other
'/'           Literal.String.Other
'\n'          Text.Whitespace

"~R'"         Literal.String.Other
'this + i'    Literal.String.Other
'\\s'         Literal.String.Other
' "a" regex too' Literal.String.Other
"'"           Literal.String.Other
'\n'          Text.Whitespace

'~w('         Literal.String.Other
'hello '      Literal.String.Other
'#{'          Literal.String.Interpol
' '           Text.Whitespace
'['           Punctuation
'"'           Literal.String.Double
'has'         Literal.String.Double
'"'           Literal.String.Double
' '           Text.Whitespace
'<>'          Operator
' '           Text.Whitespace
'"'           Literal.String.Double
'123'         Literal.String.Double
'"'           Literal.String.Double
','           Punctuation
' '           Text.Whitespace
"'"           Literal.String.Single
'\\c'         Literal.String.Single
'\\d'         Literal.String.Escape
"'"           Literal.String.Single
','           Punctuation
' '           Text.Whitespace
'"'           Literal.String.Double
'\\1'         Literal.String.Double
'23 interpol' Literal.String.Double
'"'           Literal.String.Double
' '           Text.Whitespace
'|'           Operator
' '           Text.Whitespace
'['           Punctuation
']'           Punctuation
']'           Punctuation
' '           Text.Whitespace
'}'           Literal.String.Interpol
' world'      Literal.String.Other
')s'          Literal.String.Other
'\n'          Text.Whitespace

'~W('         Literal.String.Other
'hello #{no "123" ' Literal.String.Other
'\\c'         Literal.String.Other
'\\d'         Literal.String.Other
' '           Literal.String.Other
'\\1'         Literal.String.Other
'23 interpol} world' Literal.String.Other
')s'          Literal.String.Other
'\n\n'        Text.Whitespace

'~s{'         Literal.String.Other
'Escapes terminators ' Literal.String.Other
'\\{'         Literal.String.Other
' and '       Literal.String.Other
'\\}'         Literal.String.Other
', but no {balancing' Literal.String.Other
'}'           Literal.String.Other
' '           Text.Whitespace
'# outside of sigil here }' Comment.Single
'\n\n'        Text.Whitespace

'~S"'         Literal.String.Other
'No escapes ' Literal.String.Other
'\\s'         Literal.String.Other
'\\t'         Literal.String.Other
'\\n'         Literal.String.Other
' and no #{interpolation}' Literal.String.Other
'"'           Literal.String.Other
'\n\n'        Text.Whitespace

':"'          Literal.String.Symbol
'atoms work ' Literal.String.Symbol
'#{'          Literal.String.Interpol
'"'           Literal.String.Double
'to'          Literal.String.Double
'"'           Literal.String.Double
' '           Text.Whitespace
'<>'          Operator
' '           Text.Whitespace
'"'           Literal.String.Double
'o'           Literal.String.Double
'"'           Literal.String.Double
'}'           Literal.String.Interpol
'"'           Literal.String.Symbol
'\n\n'        Text.Whitespace

'# Operators' Comment.Single
'\n'          Text.Whitespace

'x'           Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'1'           Literal.Number.Integer
' '           Text.Whitespace
'+'           Operator
' '           Text.Whitespace
'2.0'         Literal.Number.Float
' '           Text.Whitespace
'*'           Operator
' '           Text.Whitespace
'3'           Literal.Number.Integer
'\n'          Text.Whitespace

'y'           Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'true'        Name.Constant
' '           Text.Whitespace
'and'         Operator.Word
' '           Text.Whitespace
'false'       Name.Constant
';'           Punctuation
' '           Text.Whitespace
'z'           Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'false'       Name.Constant
' '           Text.Whitespace
'or'          Operator.Word
' '           Text.Whitespace
'true'        Name.Constant
'\n'          Text.Whitespace

'...'         Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'144'         Literal.Number.Integer
'\n'          Text.Whitespace

'...'         Name
' '           Text.Whitespace
'=='          Operator
' '           Text.Whitespace
'!'           Operator
'x'           Name
' '           Text.Whitespace
'&&'          Operator
' '           Text.Whitespace
'y'           Name
' '           Text.Whitespace
'||'          Operator
' '           Text.Whitespace
'z'           Name
'\n'          Text.Whitespace

'"'           Literal.String.Double
'hello'       Literal.String.Double
'"'           Literal.String.Double
' '           Text.Whitespace
'|>'          Operator
' '           Text.Whitespace
'String'      Name.Class
'.'           Operator
'upcase'      Name
' '           Text.Whitespace
'|>'          Operator
' '           Text.Whitespace
'String'      Name.Class
'.'           Operator
'downcase'    Name
'('           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

'{'           Punctuation
'^'           Operator
'z'           Name
','           Punctuation
' '           Text.Whitespace
'a'           Name
'}'           Punctuation
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'{'           Punctuation
'true'        Name.Constant
','           Punctuation
' '           Text.Whitespace
'x'           Name
'}'           Punctuation
'\n\n'        Text.Whitespace

'# Free operators (added in 1.0.0)' Comment.Single
'\n'          Text.Whitespace

'p'           Name
'  '          Text.Whitespace
'~>>'         Operator
' '           Text.Whitespace
'f'           Name
'  '          Text.Whitespace
'='           Operator
' '           Text.Whitespace
'bind'        Name
'('           Punctuation
'p'           Name
','           Punctuation
' '           Text.Whitespace
'f'           Name
')'           Punctuation
'\n'          Text.Whitespace

'p1'          Name
' '           Text.Whitespace
'~>'          Operator
'  '          Text.Whitespace
'p2'          Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'pair_right'  Name
'('           Punctuation
'p1'          Name
','           Punctuation
' '           Text.Whitespace
'p2'          Name
')'           Punctuation
'\n'          Text.Whitespace

'p1'          Name
' '           Text.Whitespace
'<~'          Operator
'  '          Text.Whitespace
'p2'          Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'pair_left'   Name
'('           Punctuation
'p1'          Name
','           Punctuation
' '           Text.Whitespace
'p2'          Name
')'           Punctuation
'\n'          Text.Whitespace

'p1'          Name
' '           Text.Whitespace
'<~>'         Operator
' '           Text.Whitespace
'p2'          Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'pair_both'   Name
'('           Punctuation
'p1'          Name
','           Punctuation
' '           Text.Whitespace
'p2'          Name
')'           Punctuation
'\n'          Text.Whitespace

'p'           Name
'  '          Text.Whitespace
'|~>'         Operator
' '           Text.Whitespace
'f'           Name
'  '          Text.Whitespace
'='           Operator
' '           Text.Whitespace
'map'         Name
'('           Punctuation
'p'           Name
','           Punctuation
' '           Text.Whitespace
'f'           Name
')'           Punctuation
'\n'          Text.Whitespace

'p1'          Name
' '           Text.Whitespace
'<|>'         Operator
' '           Text.Whitespace
'p2'          Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'either'      Name
'('           Punctuation
'p1'          Name
','           Punctuation
' '           Text.Whitespace
'p2'          Name
')'           Punctuation
'\n\n'        Text.Whitespace

'# Lists, tuples, maps, keywords' Comment.Single
'\n'          Text.Whitespace

'['           Punctuation
'1'           Literal.Number.Integer
','           Punctuation
' '           Text.Whitespace
':a'          Literal.String.Symbol
','           Punctuation
' '           Text.Whitespace
"'"           Literal.String.Single
'hello'       Literal.String.Single
"'"           Literal.String.Single
']'           Punctuation
' '           Text.Whitespace
'++'          Operator
' '           Text.Whitespace
'['           Punctuation
'2'           Literal.Number.Integer
','           Punctuation
' '           Text.Whitespace
'3'           Literal.Number.Integer
']'           Punctuation
'\n'          Text.Whitespace

'['           Punctuation
':head'       Literal.String.Symbol
' '           Text.Whitespace
'|'           Operator
' '           Text.Whitespace
'['           Punctuation
'?t'          Literal.String.Char
','           Punctuation
' '           Text.Whitespace
'?a'          Literal.String.Char
','           Punctuation
' '           Text.Whitespace
'?i'          Literal.String.Char
','           Punctuation
' '           Text.Whitespace
'?l'          Literal.String.Char
']'           Punctuation
']'           Punctuation
'\n\n'        Text.Whitespace

'{'           Punctuation
':one'        Literal.String.Symbol
','           Punctuation
' '           Text.Whitespace
'2.0'         Literal.Number.Float
','           Punctuation
' '           Text.Whitespace
'"'           Literal.String.Double
'three'       Literal.String.Double
'"'           Literal.String.Double
'}'           Punctuation
'\n\n'        Text.Whitespace

'['           Punctuation
'...'         Literal.String.Symbol
':'           Punctuation
' '           Text.Whitespace
'"'           Literal.String.Double
'this'        Literal.String.Double
'"'           Literal.String.Double
','           Punctuation
' '           Text.Whitespace
'<<>>'        Literal.String.Symbol
':'           Punctuation
' '           Text.Whitespace
'"'           Literal.String.Double
'is'          Literal.String.Double
'"'           Literal.String.Double
','           Punctuation
' '           Text.Whitespace
'%{}'         Literal.String.Symbol
':'           Punctuation
' '           Text.Whitespace
'"'           Literal.String.Double
'a keyword'   Literal.String.Double
'"'           Literal.String.Double
','           Punctuation
' '           Text.Whitespace
'%'           Literal.String.Symbol
':'           Punctuation
' '           Text.Whitespace
'"'           Literal.String.Double
'list'        Literal.String.Double
'"'           Literal.String.Double
','           Punctuation
' '           Text.Whitespace
'{}'          Literal.String.Symbol
':'           Punctuation
' '           Text.Whitespace
'"'           Literal.String.Double
'too'         Literal.String.Double
'"'           Literal.String.Double
']'           Punctuation
'\n'          Text.Whitespace

'['           Punctuation
'"'           Literal.String.Double
'this is an atom too' Literal.String.Double
'"'           Literal.String.Double
':'           Punctuation
' '           Text.Whitespace
'1'           Literal.Number.Integer
','           Punctuation
' '           Text.Whitespace
'"'           Literal.String.Double
'so is this'  Literal.String.Double
'"'           Literal.String.Double
':'           Punctuation
' '           Text.Whitespace
'2'           Literal.Number.Integer
']'           Punctuation
'\n'          Text.Whitespace

'['           Punctuation
'option'      Literal.String.Symbol
':'           Punctuation
' '           Text.Whitespace
'"'           Literal.String.Double
'value'       Literal.String.Double
'"'           Literal.String.Double
','           Punctuation
' '           Text.Whitespace
'key'         Literal.String.Symbol
':'           Punctuation
' '           Text.Whitespace
':word'       Literal.String.Symbol
']'           Punctuation
'\n'          Text.Whitespace

'['           Punctuation
'++'          Literal.String.Symbol
':'           Punctuation
' '           Text.Whitespace
'"'           Literal.String.Double
'operator'    Literal.String.Double
'"'           Literal.String.Double
','           Punctuation
' '           Text.Whitespace
'~~~'         Literal.String.Symbol
':'           Punctuation
' '           Text.Whitespace
':&&&'        Literal.String.Symbol
']'           Punctuation
'\n\n'        Text.Whitespace

'map'         Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'%{'          Punctuation
'shortcut'    Literal.String.Symbol
':'           Punctuation
' '           Text.Whitespace
'"'           Literal.String.Double
'syntax'      Literal.String.Double
'"'           Literal.String.Double
'}'           Punctuation
'\n'          Text.Whitespace

'%{'          Punctuation
'map'         Name
' '           Text.Whitespace
'|'           Operator
' '           Text.Whitespace
'"'           Literal.String.Double
'update'      Literal.String.Double
'"'           Literal.String.Double
' '           Text.Whitespace
'='           Operator
'>'           Operator
' '           Text.Whitespace
'"'           Literal.String.Double
'me'          Literal.String.Double
'"'           Literal.String.Double
'}'           Punctuation
'\n'          Text.Whitespace

'%{'          Punctuation
' '           Text.Whitespace
'12'          Literal.Number.Integer
' '           Text.Whitespace
'='           Operator
'>'           Operator
' '           Text.Whitespace
'13'          Literal.Number.Integer
','           Punctuation
' '           Text.Whitespace
':weird'      Literal.String.Symbol
' '           Text.Whitespace
'='           Operator
'>'           Operator
' '           Text.Whitespace
'['           Punctuation
"'"           Literal.String.Single
'thing'       Literal.String.Single
"'"           Literal.String.Single
']'           Punctuation
' '           Text.Whitespace
'}'           Punctuation
'\n\n'        Text.Whitespace

'# Comprehensions' Comment.Single
'\n'          Text.Whitespace

'for'         Keyword
' '           Text.Whitespace
'x'           Name
' '           Text.Whitespace
'<-'          Operator
' '           Text.Whitespace
'1'           Literal.Number.Integer
'.'           Operator
'.'           Operator
'10'          Literal.Number.Integer
','           Punctuation
' '           Text.Whitespace
'x'           Name
' '           Text.Whitespace
'<'           Operator
' '           Text.Whitespace
'5'           Literal.Number.Integer
','           Punctuation
' '           Text.Whitespace
'do'          Literal.String.Symbol
':'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'x'           Name
','           Punctuation
' '           Text.Whitespace
'x'           Name
'}'           Punctuation
'\n'          Text.Whitespace

'pixels'      Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'"'           Literal.String.Double
'12345678'    Literal.String.Double
'"'           Literal.String.Double
'\n'          Text.Whitespace

'for'         Keyword
' '           Text.Whitespace
'<<'          Punctuation
' '           Text.Whitespace
'<<'          Punctuation
'r'           Name
'::'          Operator
'4'           Literal.Number.Integer
','           Punctuation
' '           Text.Whitespace
'g'           Name
'::'          Operator
'4'           Literal.Number.Integer
','           Punctuation
' '           Text.Whitespace
'b'           Name
'::'          Operator
'4'           Literal.Number.Integer
','           Punctuation
' '           Text.Whitespace
'a'           Name
'::'          Operator
'size'        Name
'('           Punctuation
'4'           Literal.Number.Integer
')'           Punctuation
'>>'          Punctuation
' '           Text.Whitespace
'<-'          Operator
' '           Text.Whitespace
'pixels'      Name
' '           Text.Whitespace
'>>'          Punctuation
' '           Text.Whitespace
'do'          Keyword
'\n  '        Text.Whitespace
'['           Punctuation
'r'           Name
','           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'g'           Name
','           Punctuation
' '           Text.Whitespace
'%{'          Punctuation
'"'           Literal.String.Double
'b'           Literal.String.Double
'"'           Literal.String.Double
' '           Text.Whitespace
'='           Operator
'>'           Operator
' '           Text.Whitespace
'a'           Name
'}'           Punctuation
'}'           Punctuation
']'           Punctuation
'\n'          Text.Whitespace

'end'         Keyword
'\n\n'        Text.Whitespace

'# String interpolation' Comment.Single
'\n'          Text.Whitespace

'"'           Literal.String.Double
'String '     Literal.String.Double
'#{'          Literal.String.Interpol
'inspect'     Name
' '           Text.Whitespace
'"'           Literal.String.Double
'interpolation' Literal.String.Double
'"'           Literal.String.Double
'}'           Literal.String.Interpol
' is quite '  Literal.String.Double
'#{'          Literal.String.Interpol
'1'           Literal.Number.Integer
'+'           Operator
'4'           Literal.Number.Integer
'+'           Operator
'7'           Literal.Number.Integer
'}'           Literal.String.Interpol
' difficult'  Literal.String.Double
'"'           Literal.String.Double
'\n\n'        Text.Whitespace

'# Identifiers' Comment.Single
'\n'          Text.Whitespace

'abc_123'     Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'1'           Literal.Number.Integer
'\n'          Text.Whitespace

'_018OP'      Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'2'           Literal.Number.Integer
'\n'          Text.Whitespace

'A__0'        Name.Class
' '           Text.Whitespace
'=='          Operator
' '           Text.Whitespace
'3'           Literal.Number.Integer
'\n\n'        Text.Whitespace

'# Modules'   Comment.Single
'\n'          Text.Whitespace

'defmodule'   Keyword.Declaration
' '           Text.Whitespace
'Long.Module.Name' Name.Class
' '           Text.Whitespace
'do'          Keyword
'\n  '        Text.Whitespace
'@moduledoc'  Name.Attribute
' '           Text.Whitespace
'"'           Literal.String.Double
'Simple module docstring' Literal.String.Double
'"'           Literal.String.Double
'\n\n  '      Text.Whitespace
'@doc'        Name.Attribute
' '           Text.Whitespace
'"""'         Literal.String.Heredoc
'\n  '        Text.Whitespace
'Multiline docstring' Literal.String.Heredoc
'\n'          Literal.String.Heredoc

'  "with quotes"' Literal.String.Heredoc
'\n'          Literal.String.Heredoc

'  and '      Literal.String.Heredoc
'#{'          Literal.String.Interpol
' '           Text.Whitespace
'inspect'     Name
' '           Text.Whitespace
'%{'          Punctuation
'"'           Literal.String.Double
'interpolation' Literal.String.Double
'"'           Literal.String.Double
' '           Text.Whitespace
'='           Operator
'>'           Operator
' '           Text.Whitespace
'"'           Literal.String.Double
'in'          Literal.String.Double
'"'           Literal.String.Double
' '           Text.Whitespace
'<>'          Operator
' '           Text.Whitespace
'"'           Literal.String.Double
'action'      Literal.String.Double
'"'           Literal.String.Double
'}'           Punctuation
' '           Text.Whitespace
'}'           Literal.String.Interpol
'\n'          Literal.String.Heredoc

'  now with ' Literal.String.Heredoc
'#{'          Literal.String.Interpol
' '           Text.Whitespace
'{'           Punctuation
':a'          Literal.String.Symbol
','           Punctuation
' '           Text.Whitespace
"'"           Literal.String.Single
'tuple'       Literal.String.Single
"'"           Literal.String.Single
'}'           Punctuation
' '           Text.Whitespace
'}'           Literal.String.Interpol
'\n'          Literal.String.Heredoc

'  and '      Literal.String.Heredoc
'#{'          Literal.String.Interpol
' '           Text.Whitespace
'inspect'     Name
' '           Text.Whitespace
'{'           Punctuation
'\n      '    Text.Whitespace
':tuple'      Literal.String.Symbol
','           Punctuation
'\n      '    Text.Whitespace
'%{'          Punctuation
' '           Text.Whitespace
'with'        Literal.String.Symbol
':'           Punctuation
' '           Text.Whitespace
'"'           Literal.String.Double
'nested '     Literal.String.Double
'#{'          Literal.String.Interpol
' '           Text.Whitespace
'inspect'     Name
' '           Text.Whitespace
'%{'          Punctuation
' '           Text.Whitespace
':interpolation' Literal.String.Symbol
' '           Text.Whitespace
'='           Operator
'>'           Operator
' '           Text.Whitespace
'%{'          Punctuation
'}'           Punctuation
' '           Text.Whitespace
'}'           Punctuation
' '           Text.Whitespace
'}'           Literal.String.Interpol
'"'           Literal.String.Double
' '           Text.Whitespace
'}'           Punctuation
'\n  '        Text.Whitespace
'}'           Punctuation
' '           Text.Whitespace
'}'           Literal.String.Interpol
'\n'          Literal.String.Heredoc

'  '          Text.Whitespace
'"""'         Literal.String.Heredoc
'\n  '        Text.Whitespace
'defstruct'   Keyword.Declaration
' '           Text.Whitespace
'['           Punctuation
':a'          Literal.String.Symbol
','           Punctuation
' '           Text.Whitespace
':name'       Literal.String.Symbol
','           Punctuation
' '           Text.Whitespace
':height'     Literal.String.Symbol
']'           Punctuation
'\n\n  '      Text.Whitespace
'@doc'        Name.Attribute
' '           Text.Whitespace
'~S'          Literal.String.Other
"'''"         Literal.String.Heredoc
'\n'          Text.Whitespace

'  No #{interpolation} of any kind.' Literal.String.Heredoc
'\n'          Text.Whitespace

'  '          Literal.String.Heredoc
'\\0'         Literal.String.Heredoc
'00 '         Literal.String.Heredoc
'\\x'         Literal.String.Heredoc
'{ff}'        Literal.String.Heredoc
'\n\n'        Text.Whitespace

'  '          Literal.String.Heredoc
'\\n'         Literal.String.Heredoc
' #{'         Literal.String.Heredoc
'\\x'         Literal.String.Heredoc
'{ff}}'       Literal.String.Heredoc
'\n'          Text.Whitespace

'  '          Text.Whitespace
"'''"         Literal.String.Heredoc
'\n  '        Text.Whitespace
'def'         Keyword.Declaration
' '           Text.Whitespace
'func'        Name
'('           Punctuation
'a'           Name
','           Punctuation
' '           Text.Whitespace
'b'           Name
' '           Text.Whitespace
'\\\\'        Punctuation
' '           Text.Whitespace
'['           Punctuation
']'           Punctuation
')'           Punctuation
','           Punctuation
' '           Text.Whitespace
'do'          Literal.String.Symbol
':'           Punctuation
' '           Text.Whitespace
':ok'         Literal.String.Symbol
'\n\n  '      Text.Whitespace
'@doc'        Name.Attribute
' '           Text.Whitespace
'false'       Name.Constant
'\n  '        Text.Whitespace
'def'         Keyword.Declaration
' '           Text.Whitespace
'__before_compile__' Name
'('           Punctuation
'_'           Name.Builtin.Pseudo
')'           Punctuation
' '           Text.Whitespace
'do'          Keyword
'\n    '      Text.Whitespace
':ok'         Literal.String.Symbol
'\n  '        Text.Whitespace
'end'         Keyword
'\n'          Text.Whitespace

'end'         Keyword
'\n\n'        Text.Whitespace

'# Structs'   Comment.Single
'\n'          Text.Whitespace

'defmodule'   Keyword.Declaration
' '           Text.Whitespace
'Second.Module' Name.Class
' '           Text.Whitespace
'do'          Keyword
'\n  '        Text.Whitespace
's'           Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'%'           Punctuation
'Long.Module.Name' Name.Class
'{'           Punctuation
'name'        Literal.String.Symbol
':'           Punctuation
' '           Text.Whitespace
'"'           Literal.String.Double
'Silly'       Literal.String.Double
'"'           Literal.String.Double
'}'           Punctuation
'\n  '        Text.Whitespace
'%'           Punctuation
'Long.Module.Name' Name.Class
'{'           Punctuation
's'           Name
' '           Text.Whitespace
'|'           Operator
' '           Text.Whitespace
'height'      Literal.String.Symbol
':'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'192'         Literal.Number.Integer
','           Punctuation
' '           Text.Whitespace
':cm'         Literal.String.Symbol
'}'           Punctuation
'}'           Punctuation
'\n  '        Text.Whitespace
'"'           Literal.String.Double
'.. '         Literal.String.Double
'#{'          Literal.String.Interpol
'%'           Punctuation
'Long.Module.Name' Name.Class
'{'           Punctuation
's'           Name
' '           Text.Whitespace
'|'           Operator
' '           Text.Whitespace
'height'      Literal.String.Symbol
':'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'192'         Literal.Number.Integer
','           Punctuation
' '           Text.Whitespace
':cm'         Literal.String.Symbol
'}'           Punctuation
'}'           Punctuation
'}'           Literal.String.Interpol
' ..'         Literal.String.Double
'"'           Literal.String.Double
'\n'          Text.Whitespace

'end'         Keyword
'\n\n'        Text.Whitespace

'# Types, pseudo-vars, attributes' Comment.Single
'\n'          Text.Whitespace

'defmodule'   Keyword.Declaration
' '           Text.Whitespace
'M'           Name.Class
' '           Text.Whitespace
'do'          Keyword
'\n  '        Text.Whitespace
'@custom_attr' Name.Attribute
' '           Text.Whitespace
':some_constant' Literal.String.Symbol
'\n\n  '      Text.Whitespace
'@before_compile' Name.Attribute
' '           Text.Whitespace
'Long.Module.Name' Name.Class
'\n\n  '      Text.Whitespace
'@typedoc'    Name.Attribute
' '           Text.Whitespace
'"'           Literal.String.Double
'This is a type' Literal.String.Double
'"'           Literal.String.Double
'\n  '        Text.Whitespace
'@type'       Name.Attribute
' '           Text.Whitespace
'typ'         Name
' '           Text.Whitespace
'::'          Operator
' '           Text.Whitespace
'integer'     Name
'\n\n  '      Text.Whitespace
'@typedoc'    Name.Attribute
' '           Text.Whitespace
'"""'         Literal.String.Heredoc
'\n  '        Text.Whitespace
'Another type' Literal.String.Heredoc
'\n'          Literal.String.Heredoc

'  '          Text.Whitespace
'"""'         Literal.String.Heredoc
'\n  '        Text.Whitespace
'@opaque'     Name.Attribute
' '           Text.Whitespace
'typtyp'      Name
' '           Text.Whitespace
'::'          Operator
' '           Text.Whitespace
'1'           Literal.Number.Integer
'.'           Operator
'.'           Operator
'10'          Literal.Number.Integer
'\n\n  '      Text.Whitespace
'@spec'       Name.Attribute
' '           Text.Whitespace
'func'        Name
'('           Punctuation
'typ'         Name
','           Punctuation
' '           Text.Whitespace
'typtyp'      Name
')'           Punctuation
' '           Text.Whitespace
'::'          Operator
' '           Text.Whitespace
':ok'         Literal.String.Symbol
' '           Text.Whitespace
'|'           Operator
' '           Text.Whitespace
':fail'       Literal.String.Symbol
'\n  '        Text.Whitespace
'def'         Keyword.Declaration
' '           Text.Whitespace
'func'        Name
'('           Punctuation
'a'           Name
','           Punctuation
' '           Text.Whitespace
'b'           Name
')'           Punctuation
' '           Text.Whitespace
'do'          Keyword
'\n    '      Text.Whitespace
'a'           Name
' '           Text.Whitespace
'||'          Operator
' '           Text.Whitespace
'b'           Name
' '           Text.Whitespace
'||'          Operator
' '           Text.Whitespace
':ok'         Literal.String.Symbol
' '           Text.Whitespace
'||'          Operator
' '           Text.Whitespace
':fail'       Literal.String.Symbol
'\n    '      Text.Whitespace
'Path'        Name.Class
'.'           Operator
'expand'      Name
'('           Punctuation
'"'           Literal.String.Double
'..'          Literal.String.Double
'"'           Literal.String.Double
','           Punctuation
' '           Text.Whitespace
'__DIR__'     Name.Builtin.Pseudo
')'           Punctuation
'\n    '      Text.Whitespace
'IO'          Name.Class
'.'           Operator
'inspect'     Name
' '           Text.Whitespace
'__ENV__'     Name.Builtin.Pseudo
'\n    '      Text.Whitespace
'__NOTAPSEUDOVAR__' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'11'          Literal.Number.Integer
'\n    '      Text.Whitespace
'__MODULE__'  Name.Builtin.Pseudo
'.'           Operator
'func'        Name
'('           Punctuation
'b'           Name
','           Punctuation
' '           Text.Whitespace
'a'           Name
')'           Punctuation
'\n  '        Text.Whitespace
'end'         Keyword
'\n\n  '      Text.Whitespace
'defmacro'    Keyword.Declaration
' '           Text.Whitespace
'm'           Name
'('           Punctuation
')'           Punctuation
' '           Text.Whitespace
'do'          Keyword
'\n    '      Text.Whitespace
'__CALLER__'  Name.Builtin.Pseudo
'\n  '        Text.Whitespace
'end'         Keyword
'\n'          Text.Whitespace

'end'         Keyword
'\n\n'        Text.Whitespace

'# Functions' Comment.Single
'\n'          Text.Whitespace

'anon'        Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'fn'          Keyword
' '           Text.Whitespace
'x'           Name
','           Punctuation
' '           Text.Whitespace
'y'           Name
','           Punctuation
' '           Text.Whitespace
'z'           Name
' '           Text.Whitespace
'->'          Operator
'\n  '        Text.Whitespace
'fn'          Keyword
'('           Punctuation
'a'           Name
','           Punctuation
' '           Text.Whitespace
'b'           Name
','           Punctuation
' '           Text.Whitespace
'c'           Name
')'           Punctuation
' '           Text.Whitespace
'->'          Operator
'\n    '      Text.Whitespace
'&'           Operator
'('           Punctuation
'x'           Name
' '           Text.Whitespace
'+'           Operator
' '           Text.Whitespace
'y'           Name
' '           Text.Whitespace
'-'           Operator
' '           Text.Whitespace
'z'           Name
' '           Text.Whitespace
'*'           Operator
' '           Text.Whitespace
'a'           Name
' '           Text.Whitespace
'/'           Operator
' '           Text.Whitespace
'&1'          Name.Entity
' '           Text.Whitespace
'+'           Operator
' '           Text.Whitespace
'b'           Name
' '           Text.Whitespace
'+'           Operator
' '           Text.Whitespace
'div'         Name
'('           Punctuation
'&2'          Name.Entity
','           Punctuation
' '           Text.Whitespace
'c'           Name
')'           Punctuation
')'           Punctuation
'\n  '        Text.Whitespace
'end'         Keyword
'\n'          Text.Whitespace

'end'         Keyword
'\n\n'        Text.Whitespace

'&'           Operator
'Set'         Name.Class
'.'           Operator
'put'         Name
'('           Punctuation
'&1'          Name.Entity
','           Punctuation
' '           Text.Whitespace
'&2'          Name.Entity
')'           Punctuation
' '           Text.Whitespace
';'           Punctuation
' '           Text.Whitespace
'&'           Operator
' '           Text.Whitespace
'Set'         Name.Class
'.'           Operator
'put'         Name
'('           Punctuation
'&1'          Name.Entity
','           Punctuation
' '           Text.Whitespace
'&2'          Name.Entity
')'           Punctuation
' '           Text.Whitespace
';'           Punctuation
' '           Text.Whitespace
'&'           Operator
'('           Punctuation
' '           Text.Whitespace
'Set'         Name.Class
'.'           Operator
'put'         Name
'('           Punctuation
'&1'          Name.Entity
','           Punctuation
' '           Text.Whitespace
'&1'          Name.Entity
')'           Punctuation
' '           Text.Whitespace
')'           Punctuation
'\n\n'        Text.Whitespace

'# Function calls' Comment.Single
'\n'          Text.Whitespace

'anon'        Name
'.'           Operator
'('           Punctuation
'1'           Literal.Number.Integer
','           Punctuation
' '           Text.Whitespace
'2'           Literal.Number.Integer
','           Punctuation
' '           Text.Whitespace
'3'           Literal.Number.Integer
')'           Punctuation
';'           Punctuation
' '           Text.Whitespace
'self'        Name
';'           Punctuation
' '           Text.Whitespace
'hd'          Name
'('           Punctuation
'['           Punctuation
'1'           Literal.Number.Integer
','           Punctuation
'2'           Literal.Number.Integer
','           Punctuation
'3'           Literal.Number.Integer
']'           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

'Kernel'      Name.Class
'.'           Operator
'spawn'       Name
'('           Punctuation
'fn'          Keyword
' '           Text.Whitespace
'->'          Operator
' '           Text.Whitespace
':ok'         Literal.String.Symbol
' '           Text.Whitespace
'end'         Keyword
')'           Punctuation
'\n'          Text.Whitespace

'IO.ANSI'     Name.Class
'.'           Operator
'black'       Name
'\n\n'        Text.Whitespace

'# Control flow' Comment.Single
'\n'          Text.Whitespace

'if'          Keyword
' '           Text.Whitespace
':this'       Literal.String.Symbol
' '           Text.Whitespace
'do'          Keyword
'\n  '        Text.Whitespace
':that'       Literal.String.Symbol
'\n'          Text.Whitespace

'else'        Keyword
'\n  '        Text.Whitespace
':otherwise'  Literal.String.Symbol
'\n'          Text.Whitespace

'end'         Keyword
'\n\n'        Text.Whitespace

'pid'         Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'self'        Name
'\n'          Text.Whitespace

'receive'     Keyword
' '           Text.Whitespace
'do'          Keyword
'\n  '        Text.Whitespace
'{'           Punctuation
':EXIT'       Literal.String.Symbol
','           Punctuation
' '           Text.Whitespace
'_'           Name.Builtin.Pseudo
'}'           Punctuation
' '           Text.Whitespace
'->'          Operator
' '           Text.Whitespace
':done'       Literal.String.Symbol
'\n  '        Text.Whitespace
'{'           Punctuation
'^'           Operator
'pid'         Name
','           Punctuation
' '           Text.Whitespace
':_'          Literal.String.Symbol
'}'           Punctuation
' '           Text.Whitespace
'->'          Operator
' '           Text.Whitespace
'nil'         Name.Constant
'\n  '        Text.Whitespace
'after'       Keyword
' '           Text.Whitespace
'100'         Literal.Number.Integer
' '           Text.Whitespace
'->'          Operator
' '           Text.Whitespace
':no_luck'    Literal.String.Symbol
'\n'          Text.Whitespace

'end'         Keyword
'\n\n'        Text.Whitespace

'case'        Keyword
' '           Text.Whitespace
'__ENV__'     Name.Builtin.Pseudo
'.'           Operator
'line'        Name
' '           Text.Whitespace
'do'          Keyword
'\n  '        Text.Whitespace
'x'           Name
' '           Text.Whitespace
'when'        Operator.Word
' '           Text.Whitespace
'is_integer'  Name
'('           Punctuation
'x'           Name
')'           Punctuation
' '           Text.Whitespace
'->'          Operator
' '           Text.Whitespace
'x'           Name
'\n  '        Text.Whitespace
'x'           Name
' '           Text.Whitespace
'when'        Operator.Word
' '           Text.Whitespace
'x'           Name
' '           Text.Whitespace
'in'          Operator.Word
' '           Text.Whitespace
'1'           Literal.Number.Integer
'.'           Operator
'.'           Operator
'12'          Literal.Number.Integer
' '           Text.Whitespace
'->'          Operator
' '           Text.Whitespace
'-'           Operator
'x'           Name
'\n'          Text.Whitespace

'end'         Keyword
'\n\n'        Text.Whitespace

'cond'        Keyword
' '           Text.Whitespace
'do'          Keyword
'\n  '        Text.Whitespace
'false'       Name.Constant
' '           Text.Whitespace
'->'          Operator
' '           Text.Whitespace
'"'           Literal.String.Double
'too bad'     Literal.String.Double
'"'           Literal.String.Double
'\n  '        Text.Whitespace
'4'           Literal.Number.Integer
' '           Text.Whitespace
'>'           Operator
' '           Text.Whitespace
'5'           Literal.Number.Integer
' '           Text.Whitespace
'->'          Operator
' '           Text.Whitespace
'"'           Literal.String.Double
'oops'        Literal.String.Double
'"'           Literal.String.Double
'\n  '        Text.Whitespace
'true'        Name.Constant
' '           Text.Whitespace
'->'          Operator
' '           Text.Whitespace
'nil'         Name.Constant
'\n'          Text.Whitespace

'end'         Keyword
'\n\n'        Text.Whitespace

'# Lexical scope modifiers' Comment.Single
'\n'          Text.Whitespace

'import'      Keyword.Namespace
' '           Text.Whitespace
'Kernel'      Name.Class
','           Punctuation
' '           Text.Whitespace
'except'      Literal.String.Symbol
':'           Punctuation
' '           Text.Whitespace
'['           Punctuation
'spawn'       Literal.String.Symbol
':'           Punctuation
' '           Text.Whitespace
'1'           Literal.Number.Integer
','           Punctuation
' '           Text.Whitespace
'+'           Literal.String.Symbol
':'           Punctuation
' '           Text.Whitespace
'2'           Literal.Number.Integer
','           Punctuation
' '           Text.Whitespace
'/'           Literal.String.Symbol
':'           Punctuation
' '           Text.Whitespace
'2'           Literal.Number.Integer
','           Punctuation
' '           Text.Whitespace
'Unless'      Literal.String.Symbol
':'           Punctuation
' '           Text.Whitespace
'2'           Literal.Number.Integer
']'           Punctuation
'\n'          Text.Whitespace

'alias'       Keyword.Namespace
' '           Text.Whitespace
'Long.Module.Name' Name.Class
','           Punctuation
' '           Text.Whitespace
'as'          Literal.String.Symbol
':'           Punctuation
' '           Text.Whitespace
'N0men123_and4' Name.Class
'\n'          Text.Whitespace

'use'         Keyword.Namespace
' '           Text.Whitespace
'Bitwise'     Name.Class
'\n\n'        Text.Whitespace

'4'           Literal.Number.Integer
' '           Text.Whitespace
'&&&'         Operator
' '           Text.Whitespace
'5'           Literal.Number.Integer
'\n'          Text.Whitespace

'2'           Literal.Number.Integer
' '           Text.Whitespace
'<<<'         Operator
' '           Text.Whitespace
'3'           Literal.Number.Integer
'\n\n'        Text.Whitespace

'# Protocols' Comment.Single
'\n'          Text.Whitespace

'defprotocol' Keyword.Declaration
' '           Text.Whitespace
'Useless'     Name.Class
' '           Text.Whitespace
'do'          Keyword
'\n  '        Text.Whitespace
'def'         Keyword.Declaration
' '           Text.Whitespace
'func1'       Name
'('           Punctuation
'this'        Name
')'           Punctuation
'\n  '        Text.Whitespace
'def'         Keyword.Declaration
' '           Text.Whitespace
'func2'       Name
'('           Punctuation
'that'        Name
')'           Punctuation
'\n'          Text.Whitespace

'end'         Keyword
'\n\n'        Text.Whitespace

'defimpl'     Keyword.Declaration
' '           Text.Whitespace
'Useless'     Name.Class
','           Punctuation
' '           Text.Whitespace
'for'         Literal.String.Symbol
':'           Punctuation
' '           Text.Whitespace
'Atom'        Name.Class
' '           Text.Whitespace
'do'          Keyword
'\n'          Text.Whitespace

'end'         Keyword
'\n\n'        Text.Whitespace

'# Exceptions' Comment.Single
'\n'          Text.Whitespace

'defmodule'   Keyword.Declaration
' '           Text.Whitespace
'NotAnError'  Name.Class
' '           Text.Whitespace
'do'          Keyword
'\n  '        Text.Whitespace
'defexception' Keyword.Declaration
' '           Text.Whitespace
'['           Punctuation
':message'    Literal.String.Symbol
']'           Punctuation
'\n'          Text.Whitespace

'end'         Keyword
'\n\n'        Text.Whitespace

'raise'       Keyword
' '           Text.Whitespace
'NotAnError'  Name.Class
','           Punctuation
' '           Text.Whitespace
'message'     Literal.String.Symbol
':'           Punctuation
' '           Text.Whitespace
'"'           Literal.String.Double
'This is not an error' Literal.String.Double
'"'           Literal.String.Double
'\n'          Text.Whitespace
