'form'        Keyword
' '           Text.Whitespace
'Highlighter test' Literal.String
'\n  '        Text.Whitespace
'# This is a regular comment' Comment.Single
'\n  '        Text.Whitespace
'sentence'    Keyword
' '           Text.Whitespace
'Blank'       Literal.String
'\n'          Text.Whitespace

'  '          Text.Whitespace
'sentence'    Keyword
' '           Text.Whitespace
'My_sentence' Literal.String
' '           Text.Whitespace
'This should all be a string' Literal.String
'\n'          Text.Whitespace

'  '          Text.Whitespace
'text'        Keyword
' '           Text.Whitespace
'My_text'     Literal.String
' '           Text.Whitespace
'This should also all be a string' Literal.String
'\n'          Text.Whitespace

'  '          Text.Whitespace
'word'        Keyword
' '           Text.Whitespace
'My_word'     Text
' '           Text.Whitespace
'Only'        Text
' '           Text.Whitespace
'the first word is a string, the rest is discarded' Text
'\n  '        Text.Whitespace
'boolean'     Keyword
' Binary '    Text.Whitespace
'1'           Name.Variable
'\n  '        Text.Whitespace
'boolean'     Keyword
' Text '      Text.Whitespace
'no'          Name.Variable
'\n  '        Text.Whitespace
'boolean'     Keyword
' Quoted '    Text.Whitespace
'"yes"'       Name.Variable
'\n  '        Text.Whitespace
'comment'     Keyword
' '           Text.Whitespace
'This should be a string' Literal.String
'\n'          Text.Whitespace

'  '          Text.Whitespace
'optionmenu'  Keyword
' '           Text.Whitespace
'Drop-down'   Text
':'           Punctuation
' '           Text.Whitespace
'1'           Literal.Number
'\n'          Text.Whitespace

'    '        Text.Whitespace
'option'      Keyword
' '           Text.Whitespace
'Foo'         Literal.String
'\n'          Text.Whitespace

'    '        Text.Whitespace
'option'      Keyword
' '           Text.Whitespace
'100'         Literal.String
'\n'          Text.Whitespace

'  '          Text.Whitespace
'choice'      Keyword
' '           Text.Whitespace
'Radio'       Text
':'           Punctuation
' '           Text.Whitespace
'1'           Literal.Number
'\n'          Text.Whitespace

'    '        Text.Whitespace
'option'      Keyword
' '           Text.Whitespace
'Foo'         Literal.String
'\n'          Text.Whitespace

'    '        Text.Whitespace
'option'      Keyword
' '           Text.Whitespace
'100'         Literal.String
'\n'          Text.Whitespace

'  '          Text.Whitespace
'real'        Keyword
' left_Range ' Text.Whitespace
'-'           Operator
'123.6'       Literal.Number
'\n  '        Text.Whitespace
'positive'    Keyword
' right_Range_max ' Text.Whitespace
'3.3'         Literal.Number
'\n  '        Text.Whitespace
'integer'     Keyword
' Int '       Text.Whitespace
'4'           Literal.Number
'\n  '        Text.Whitespace
'natural'     Keyword
' Nat '       Text.Whitespace
'4'           Literal.Number
'\n'          Text.Whitespace

'endform'     Keyword
'\n\n'        Text.Whitespace

'beginPause'  Name.Function
':'           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'Highlighter test' Literal.String
'"'           Literal.String
'\n'          Text.Whitespace

'  '          Text.Whitespace
'sentence'    Name.Function
':'           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'Blank'       Literal.String
'"'           Literal.String
','           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'"'           Literal.String
'\n'          Text.Whitespace

'  '          Text.Whitespace
'sentence'    Name.Function
':'           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'My sentence' Literal.String
'"'           Literal.String
','           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'This should all be a string' Literal.String
'"'           Literal.String
'\n'          Text.Whitespace

'  '          Text.Whitespace
'text'        Name.Function
':'           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'My text'     Literal.String
'"'           Literal.String
','           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'This should also all be a string' Literal.String
'"'           Literal.String
'\n'          Text.Whitespace

'  '          Text.Whitespace
'word'        Name.Function
':'           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'My word'     Literal.String
'"'           Literal.String
','           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'Only the first word is a string, the rest is discarded' Literal.String
'"'           Literal.String
'\n'          Text.Whitespace

'  '          Text.Whitespace
'boolean'     Name.Function
':'           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'Binary'      Literal.String
'"'           Literal.String
','           Punctuation
' '           Text.Whitespace
'1'           Literal.Number
'\n'          Text.Whitespace

'  '          Text.Whitespace
'comment'     Name.Function
':'           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'This should be a string' Literal.String
'"'           Literal.String
'\n'          Text.Whitespace

'  '          Text.Whitespace
'optionMenu'  Name.Function
':'           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'Drop-down'   Literal.String
'"'           Literal.String
','           Punctuation
' '           Text.Whitespace
'1'           Literal.Number
'\n'          Text.Whitespace

'    '        Text.Whitespace
'option'      Name.Function
':'           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'Foo'         Literal.String
'"'           Literal.String
'\n'          Text.Whitespace

'    '        Text.Whitespace
'option'      Name.Function
':'           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'100'         Literal.String
'"'           Literal.String
'\n'          Text.Whitespace

'  '          Text.Whitespace
'choice'      Name.Function
':'           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'Choice'      Literal.String
'"'           Literal.String
','           Punctuation
' '           Text.Whitespace
'1'           Literal.Number
'\n'          Text.Whitespace

'    '        Text.Whitespace
'option'      Name.Function
':'           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'Foo'         Literal.String
'"'           Literal.String
'\n'          Text.Whitespace

'    '        Text.Whitespace
'option'      Name.Function
':'           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'100'         Literal.String
'"'           Literal.String
'\n'          Text.Whitespace

'  '          Text.Whitespace
'real'        Name.Function
':'           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'left Range'  Literal.String
'"'           Literal.String
','           Punctuation
' '           Text.Whitespace
'-'           Operator
'123.6'       Literal.Number
'\n'          Text.Whitespace

'  '          Text.Whitespace
'positive'    Name.Function
':'           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'right Range max' Literal.String
'"'           Literal.String
','           Punctuation
' '           Text.Whitespace
'3.3'         Literal.Number
'\n'          Text.Whitespace

'  '          Text.Whitespace
'integer'     Name.Function
':'           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'Int'         Literal.String
'"'           Literal.String
','           Punctuation
' '           Text.Whitespace
'4'           Literal.Number
'\n'          Text.Whitespace

'  '          Text.Whitespace
'natural'     Name.Function
':'           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'Nat'         Literal.String
'"'           Literal.String
','           Punctuation
' '           Text.Whitespace
'4'           Literal.Number
'\n'          Text.Whitespace

'button'      Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'endPause'    Name.Function
'('           Punctuation
'"'           Literal.String
'Cancel'      Literal.String
'"'           Literal.String
','           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'OK'          Literal.String
'"'           Literal.String
','           Punctuation
' '           Text.Whitespace
'1'           Literal.Number
','           Punctuation
' '           Text.Whitespace
'2'           Literal.Number
')'           Punctuation
'\n\n'        Text.Whitespace

'# Periods do not establish boundaries for keywords' Comment.Single
'\n'          Text.Whitespace

'form.var'    Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'10'          Literal.Number
'\n'          Text.Whitespace

'# Or operators' Comment.Single
'\n'          Text.Whitespace

'not.an.operator$' Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'"'           Literal.String
'Bad variable name' Literal.String
'"'           Literal.String
'\n'          Text.Whitespace

'bad.or.not'  Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'1'           Literal.Number
'\n\n'        Text.Whitespace

'# External scripts' Comment.Single
'\n'          Text.Whitespace

'include'     Keyword
' '           Text.Whitespace
'/path/to/file' Literal.String
'\n'          Text.Whitespace

'runScript'   Name.Function
':'           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'/path/to/file' Literal.String
'"'           Literal.String
'\n'          Text.Whitespace

'execute'     Keyword
' '           Text.Whitespace
'/path/to/file' Literal.String
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'# Predefined variables' Comment.Single
'\n'          Text.Whitespace

'a'           Text
'  '          Text.Whitespace
'='           Operator
' '           Text.Whitespace
'praatVersion' Name.Variable.Global
'\n'          Text.Whitespace

'a'           Text
'  '          Text.Whitespace
'='           Operator
' '           Text.Whitespace
'e'           Name.Variable.Global
' '           Text.Whitespace
'+'           Operator
' '           Text.Whitespace
'pi'          Name.Variable.Global
' '           Text.Whitespace
'*'           Operator
' '           Text.Whitespace
'('           Punctuation
' '           Text.Whitespace
'all'         Text
'+'           Operator
'right'       Text
')'           Punctuation
' '           Text.Whitespace
'/'           Operator
' '           Text.Whitespace
'left'        Text
' '           Text.Whitespace
'mod'         Operator.Word
' '           Text.Whitespace
'average'     Text
' '           Text.Whitespace
'+'           Operator
' '           Text.Whitespace
'('           Punctuation
'mono'        Text
' '           Text.Whitespace
'-'           Operator
' '           Text.Whitespace
'stereo'      Text
')'           Punctuation
'\n'          Text.Whitespace

'a$'          Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'homeDirectory$' Name.Variable.Global
' '           Text.Whitespace
'+'           Operator
' '           Text.Whitespace
'tab$'        Name.Variable.Global
' '           Text.Whitespace
'+'           Operator
' '           Text.Whitespace
'newline$'    Name.Variable.Global
'\n'          Text.Whitespace

'a$'          Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'temporaryDirectory$' Name.Variable.Global
'\n'          Text.Whitespace

'a$'          Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'praatVersion$' Name.Variable.Global
'\n'          Text.Whitespace

'a$'          Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'shellDirectory$' Name.Variable.Global
'\n'          Text.Whitespace

'a$'          Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'homeDirectory$' Name.Variable.Global
'\n'          Text.Whitespace

'a$'          Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'preferencesDirectory$' Name.Variable.Global
'\n'          Text.Whitespace

'a$'          Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'defaultDirectory$' Name.Variable.Global
'\n'          Text.Whitespace

'nocheck'     Keyword
' '           Text.Whitespace
'selectObject' Name.Function
':'           Punctuation
' '           Text.Whitespace
'undefined'   Name.Variable.Global
'\n'          Text.Whitespace

'# Not predefined variables' Comment.Single
'\n'          Text.Whitespace

'a$'          Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'e$'          Text
'\n'          Text.Whitespace

'a$'          Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'pi$'         Text
'\n\n'        Text.Whitespace

'# Arrays are not comments' Comment.Single
'\n'          Text.Whitespace

'a#'          Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'zero#'       Name.Function
' '           Text.Whitespace
'('           Punctuation
'5'           Literal.Number
','           Punctuation
' '           Text.Whitespace
'6'           Literal.Number
')'           Punctuation
'\n'          Text.Whitespace

'a'           Text
' '           Text.Whitespace
'['           Punctuation
'3'           Literal.Number
']'           Punctuation
','           Punctuation
' '           Text.Whitespace
'5'           Literal.Number
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'7'           Literal.Number
'\n'          Text.Whitespace

'printline'   Keyword
' '           Text.Whitespace
"'a[3,5]'"    Literal.String.Interpol
', '          Literal.String
"'a[3]'"      Literal.String.Interpol
'\n'          Text.Whitespace

'a'           Text
' '           Text.Whitespace
'['           Punctuation
'1'           Literal.Number
']'           Punctuation
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'2'           Literal.Number
'\n'          Text.Whitespace

'b'           Text
' '           Text.Whitespace
'['           Punctuation
'a'           Text
' '           Text.Whitespace
'['           Punctuation
'1'           Literal.Number
']'           Punctuation
']'           Punctuation
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'3'           Literal.Number
'\n'          Text.Whitespace

'assert'      Keyword
' '           Text.Whitespace
'b'           Text
' '           Text.Whitespace
'['           Punctuation
'a'           Text
' '           Text.Whitespace
'['           Punctuation
'1'           Literal.Number
']'           Punctuation
']'           Punctuation
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'3'           Literal.Number
'\n'          Text.Whitespace

'printline'   Keyword
' '           Text.Whitespace
"'b[2]'"      Literal.String.Interpol
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'# if-block with built-in variables' Comment.Single
'\n'          Text.Whitespace

'if'          Keyword
' '           Text.Whitespace
'windows'     Name.Variable.Global
'\n  '        Text.Whitespace
'# We are on Windows' Comment.Single
'\n'          Text.Whitespace

'elsif'       Keyword
' '           Text.Whitespace
'unix'        Name.Variable.Global
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'1'           Literal.Number
' '           Text.Whitespace
'or'          Operator.Word
' '           Text.Whitespace
'!'           Operator
'macintosh'   Name.Variable.Global
'\n  '        Text.Whitespace
'exitScript'  Name.Function
':'           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'We are on Linux' Literal.String
'"'           Literal.String
'\n'          Text.Whitespace

'else'        Keyword
' '           Text.Whitespace
'macintosh'   Name.Variable.Global
' '           Text.Whitespace
'=='          Operator
' '           Text.Whitespace
'1'           Literal.Number
'\n  '        Text.Whitespace
'exit'        Keyword
' '           Text.Whitespace
'We are on Mac' Literal.String
'\n'          Text.Whitespace

'endif'       Keyword
'\n\n'        Text.Whitespace

'# Interpolation with precision digits' Comment.Single
'\n'          Text.Whitespace

'echo'        Keyword
' '           Text.Whitespace
'unquoted '   Literal.String
"'a:3'"       Literal.String.Interpol
'\n'          Text.Whitespace

'echo'        Keyword
' '           Text.Whitespace
'unquoted '   Literal.String
"'a.a:3'"     Literal.String.Interpol
'\n'          Text.Whitespace

'echo'        Keyword
' '           Text.Whitespace
'unquoted '   Literal.String
"'a[1]:3'"    Literal.String.Interpol
'\n'          Text.Whitespace

'echo'        Keyword
' '           Text.Whitespace
'unquoted '   Literal.String
"'a1:3'"      Literal.String.Interpol
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'appendInfoLine' Name.Function
':'           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'quoted '     Literal.String
"'a:3'"       Literal.String.Interpol
'"'           Literal.String
'\n'          Text.Whitespace

'appendInfoLine' Name.Function
':'           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'quoted '     Literal.String
"'a.a:3'"     Literal.String.Interpol
'"'           Literal.String
'\n'          Text.Whitespace

'appendInfoLine' Name.Function
':'           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'quoted '     Literal.String
"'a[1]:3'"    Literal.String.Interpol
'"'           Literal.String
'\n'          Text.Whitespace

'appendInfoLine' Name.Function
':'           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'quoted '     Literal.String
"'a1:3'"      Literal.String.Interpol
'"'           Literal.String
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'# Interpolations are not recursive' Comment.Single
'\n'          Text.Whitespace

'echo'        Keyword
' '           Text.Whitespace
'unquoted '   Literal.String
"'a'"         Literal.String.Interpol
'1'           Literal.String
"'"           Literal.String
':3'          Literal.String
"'"           Literal.String
'\n'          Text.Whitespace

'appendInfoLine' Name.Function
':'           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'quoted '     Literal.String
"'a'"         Literal.String.Interpol
'1'           Literal.String
"'"           Literal.String
':3'          Literal.String
"'"           Literal.String
'"'           Literal.String
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'# Interpolation without precision digits' Comment.Single
'\n'          Text.Whitespace

'echo'        Keyword
' '           Text.Whitespace
'unquoted '   Literal.String
"'var'"       Literal.String.Interpol
' '           Text.Whitespace
'numeric'     Literal.String
'\n'          Text.Whitespace

'echo'        Keyword
' '           Text.Whitespace
'unquoted '   Literal.String
"'var$'"      Literal.String.Interpol
' '           Text.Whitespace
'string'      Literal.String
'\n'          Text.Whitespace

'echo'        Keyword
' '           Text.Whitespace
'unquoted '   Literal.String
'\'var["a"]\'' Literal.String.Interpol
' '           Text.Whitespace
'numeric hash' Literal.String
'\n'          Text.Whitespace

'echo'        Keyword
' '           Text.Whitespace
'unquoted '   Literal.String
'\'var$["a"]\'' Literal.String.Interpol
' '           Text.Whitespace
'string hash' Literal.String
'\n'          Text.Whitespace

'echo'        Keyword
' '           Text.Whitespace
'unquoted '   Literal.String
"'var[1]'"    Literal.String.Interpol
' '           Text.Whitespace
'numeric indexed variable' Literal.String
'\n'          Text.Whitespace

'echo'        Keyword
' '           Text.Whitespace
'unquoted '   Literal.String
"'var$[1]'"   Literal.String.Interpol
' '           Text.Whitespace
'string indexed variable' Literal.String
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'appendInfoLine' Name.Function
':'           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'quoted '     Literal.String
"'var'"       Literal.String.Interpol
' numeric'    Literal.String
'"'           Literal.String
'\n'          Text.Whitespace

'appendInfoLine' Name.Function
':'           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'quoted '     Literal.String
"'var$'"      Literal.String.Interpol
' string'     Literal.String
'"'           Literal.String
'\n'          Text.Whitespace

'appendInfoLine' Name.Function
':'           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'quoted '     Literal.String
'\'var["a"]\'' Literal.String.Interpol
' numeric hash' Literal.String
'"'           Literal.String
'\n'          Text.Whitespace

'appendInfoLine' Name.Function
':'           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'quoted '     Literal.String
'\'var$["a"]\'' Literal.String.Interpol
' string hash' Literal.String
'"'           Literal.String
'\n'          Text.Whitespace

'appendInfoLine' Name.Function
':'           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'quoted '     Literal.String
"'var[1]'"    Literal.String.Interpol
' numeric indexed variable' Literal.String
'"'           Literal.String
'\n'          Text.Whitespace

'appendInfoLine' Name.Function
':'           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'quoted '     Literal.String
"'var$[1]'"   Literal.String.Interpol
' string indexed variable' Literal.String
'"'           Literal.String
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'# Indeces in interpolations must be literal' Comment.Single
'\n'          Text.Whitespace

'echo'        Keyword
' '           Text.Whitespace
"'"           Literal.String
'var[a]'      Literal.String
"'"           Literal.String
'\n'          Text.Whitespace

'echo'        Keyword
' '           Text.Whitespace
"'"           Literal.String
'var[a$]'     Literal.String
"'"           Literal.String
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'string$'     Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'"'           Literal.String
'But don'     Literal.String
"'"           Literal.String
't interpolate everything!' Literal.String
'"'           Literal.String
'\n'          Text.Whitespace

'string$'     Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'"'           Literal.String
'interpolatin' Literal.String
"'"           Literal.String
' '           Literal.String
'"'           Literal.String
' '           Text.Whitespace
'+'           Operator
' '           Text.Whitespace
'"'           Literal.String
'across'      Literal.String
'"'           Literal.String
' '           Text.Whitespace
'+'           Operator
' '           Text.Whitespace
'"'           Literal.String
' strings ain' Literal.String
"'"           Literal.String
't cool either' Literal.String
'"'           Literal.String
'\n'          Text.Whitespace

'string$'     Name.Function
'('           Punctuation
'10'          Literal.Number
')'           Punctuation
' '           Text.Whitespace
'; This is a function' Comment.Single
'\n\n'        Text.Whitespace

'repeat'      Keyword
'\n  '        Text.Whitespace
'string$'     Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'string$'     Text
' '           Text.Whitespace
'-'           Operator
' '           Text.Whitespace
'right$'      Name.Function
'('           Punctuation
'string$'     Text
')'           Punctuation
'\n'          Text.Whitespace

'until'       Keyword
' '           Text.Whitespace
'!'           Operator
'length'      Name.Function
'('           Punctuation
'string$'     Text
')'           Punctuation
'\n\n'        Text.Whitespace

'T'           Keyword
'ext'         Keyword
'...'         Keyword
' '           Text
'1'           Literal.Number
' '           Text
'R'           Text
'ight'        Text
' '           Text
'0.2'         Literal.Number
' '           Text
'H'           Text
'alf'         Text
' '           Text
'many'        Text
'-'           Operator
'-'           Operator
'-'           Operator
'-'           Operator
'hyphens'     Text
'\n'          Text.Whitespace

'T'           Keyword
'ext'         Keyword
'...'         Keyword
' '           Text
'1'           Literal.Number
' '           Text
'R'           Text
'ight'        Text
' '           Text
'-'           Operator
'0.4'         Literal.Number
' '           Text
'B'           Text
'ottom'       Text
' '           Text
'aحبيبa'      Text
'\n'          Text.Whitespace

'T'           Keyword
'ext'         Keyword
'...'         Keyword
' '           Text
'1'           Literal.Number
' '           Text
'R'           Text
'ight'        Text
' '           Text
'-'           Operator
'0.6'         Literal.Number
' '           Text
'B'           Text
'ottom'       Text
' '           Text
'日'           Text
'本'           Text
'\n'          Text.Whitespace

'D'           Keyword
'raw '        Keyword
'circle '     Keyword
'(mm)'        Keyword
'...'         Keyword
' '           Text
'0.5'         Literal.Number
' '           Text
'0.5'         Literal.Number
' '           Text
'i'           Text
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'rows'        Text
'   '         Text.Whitespace
'='           Operator
' '           Text.Whitespace
'Object'      Name.Builtin
'_'           Name.Builtin
"'table'"     Literal.String.Interpol
'.nrow'       Name.Builtin
'\n'          Text.Whitespace

'value$'      Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'Table'       Name.Builtin
'_'           Name.Builtin
"'table'"     Literal.String.Interpol
'$'           Name.Builtin
'['           Text
'25'          Literal.Number
','           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'f0'          Literal.String
'"'           Literal.String
']'           Punctuation
'\n'          Text.Whitespace

'fixed'       Text
'  '          Text.Whitespace
'='           Operator
' '           Text.Whitespace
'Sound'       Name.Builtin
'_'           Name.Builtin
'10'          Name.Builtin
'.xmin'       Name.Builtin
'\n'          Text.Whitespace

'fixed'       Text
'  '          Text.Whitespace
'='           Operator
' '           Text.Whitespace
'Object'      Name.Builtin
'_'           Name.Builtin
'foo'         Name.Builtin
'.xmin'       Name.Builtin
'\n'          Text.Whitespace

'fixed'       Text
'  '          Text.Whitespace
'='           Operator
' '           Text.Whitespace
'Procrustes'  Name.Builtin
'_'           Name.Builtin
'foo'         Name.Builtin
'.nx'         Name.Builtin
'\n'          Text.Whitespace

'var'         Text
'['           Punctuation
'"'           Literal.String
'vaa'         Literal.String
'"'           Literal.String
']'           Punctuation
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'1'           Literal.Number
' '           Text.Whitespace
'; Hash'      Comment.Single
'\n\n'        Text.Whitespace

'# Special two-word keyword' Comment.Single
'\n'          Text.Whitespace

'select'      Keyword
' '           Text.Whitespace
'all'         Text
'\n'          Text.Whitespace

'# Keyword with a predefined variable' Comment.Single
'\n'          Text.Whitespace

'select'      Keyword
'  '          Text.Whitespace
'all'         Text
'\n\n'        Text.Whitespace

'# old-style procedure call' Comment.Single
'\n'          Text.Whitespace

'call'        Keyword
' '           Text.Whitespace
'oldStyle'    Name.Function
' '           Text
'"'           Literal.String
'quoted'      Literal.String
'"'           Literal.String
' '           Text
'2'           Literal.Number
' '           Text
'unquoted'    Text
' '           Text
'string'      Text
'\n'          Text.Whitespace

'assert'      Keyword
' '           Text.Whitespace
'oldStyle.local' Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'1'           Literal.Number
'\n\n'        Text.Whitespace

'# New-style procedure call with parens' Comment.Single
'\n'          Text.Whitespace

'@'           Name.Function
'newStyle'    Name.Function
'('           Punctuation
'"'           Literal.String
'quoted'      Literal.String
'"'           Literal.String
','           Punctuation
' '           Text.Whitespace
'2'           Literal.Number
','           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'quoted string' Literal.String
'"'           Literal.String
')'           Punctuation
'\n'          Text.Whitespace

'if'          Keyword
' '           Text.Whitespace
'praatVersion' Name.Variable.Global
' '           Text.Whitespace
'>='          Operator
' '           Text.Whitespace
'5364'        Literal.Number
'\n  '        Text.Whitespace
'# New-style procedure call with colon' Comment.Single
'\n  '        Text.Whitespace
'@'           Name.Function
'newStyle'    Name.Function
':'           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'quoted'      Literal.String
'"'           Literal.String
','           Punctuation
' '           Text.Whitespace
'2'           Literal.Number
','           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'quoted string' Literal.String
'"'           Literal.String
'\n'          Text.Whitespace

'endif'       Keyword
'\n\n'        Text.Whitespace

'# inline if with inline comment' Comment.Single
'\n'          Text.Whitespace

'var'         Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'macintosh'   Name.Variable.Global
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'1'           Literal.Number
' '           Text.Whitespace
'then'        Keyword
' '           Text.Whitespace
'0'           Literal.Number
' '           Text.Whitespace
'else'        Keyword
' '           Text.Whitespace
'1'           Literal.Number
' '           Text.Whitespace
'fi'          Keyword
' '           Text.Whitespace
'; This is an inline comment' Comment.Single
'\n\n'        Text.Whitespace

'# for-loop with explicit from using local variable' Comment.Single
'\n'          Text.Whitespace

'# and paren-style function calls and variable interpolation' Comment.Single
'\n'          Text.Whitespace

'n'           Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'numberOfSelected' Name.Function
'('           Punctuation
'"'           Literal.String
'Sound'       Literal.String
'"'           Literal.String
')'           Punctuation
'\n'          Text.Whitespace

'for'         Keyword
' '           Text.Whitespace
'i'           Text
' '           Text.Whitespace
'from'        Keyword
' '           Text.Whitespace
'newStyle.local' Text
' '           Text.Whitespace
'to'          Keyword
' '           Text.Whitespace
'n'           Text
'\n  '        Text.Whitespace
'name'        Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'selected$'   Name.Function
'('           Punctuation
'extractWord$' Name.Function
'('           Punctuation
'selected$'   Name.Function
'('           Punctuation
')'           Punctuation
','           Punctuation
' '           Text.Whitespace
'"'           Literal.String
' '           Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
'\n  '        Text.Whitespace
'sound'       Text
"'i'"         Literal.String.Interpol
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'selected'    Name.Function
'('           Punctuation
'"'           Literal.String
'Sound'       Literal.String
'"'           Literal.String
','           Punctuation
' '           Text.Whitespace
'i'           Text
'+'           Operator
'('           Text
'a'           Text
'*'           Operator
'b'           Text
')'           Punctuation
')'           Punctuation
'\n  '        Text.Whitespace
'sound'       Text
'['           Punctuation
'i'           Text
']'           Punctuation
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'sound'       Text
"'i'"         Literal.String.Interpol
'\n'          Text.Whitespace

'endfor'      Keyword
'\n\n'        Text.Whitespace

'i'           Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'1'           Literal.Number
'\n'          Text.Whitespace

'while'       Keyword
' '           Text.Whitespace
'i'           Text
' '           Text.Whitespace
'<'           Operator
' '           Text.Whitespace
'n'           Text
'\n  '        Text.Whitespace
'i'           Text
' '           Text.Whitespace
'+='          Operator
' '           Text.Whitespace
'1'           Literal.Number
'\n  '        Text.Whitespace
'# Different styles of object selection' Comment.Single
'\n  '        Text.Whitespace
'select'      Keyword
' '           Text.Whitespace
'sound'       Text
"'i'"         Literal.String.Interpol
'\n  '        Text.Whitespace
'sound'       Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'selected'    Name.Function
'('           Punctuation
')'           Punctuation
'\n  '        Text.Whitespace
'sound$'      Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'selected$'   Name.Function
'('           Punctuation
'"'           Literal.String
'Sound'       Literal.String
'"'           Literal.String
')'           Punctuation
'\n  '        Text.Whitespace
'select'      Keyword
' '           Text.Whitespace
'Sound'       Name.Class
' '           Text.Whitespace
"'sound$'"    Literal.String.Interpol
'\n'          Text.Whitespace

'  '          Text.Whitespace
'selectObject' Name.Function
'('           Punctuation
' '           Text.Whitespace
'sound'       Text
'['           Punctuation
'i'           Text
']'           Punctuation
')'           Punctuation
'\n  '        Text.Whitespace
'selectObject' Name.Function
':'           Punctuation
' '           Text.Whitespace
'sound'       Text
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'  '          Text.Whitespace
'# Pause commands' Comment.Single
'\n  '        Text.Whitespace
'beginPause'  Name.Function
'('           Punctuation
'"'           Literal.String
'Viewing '    Literal.String
'"'           Literal.String
' '           Text.Whitespace
'+'           Operator
' '           Text.Whitespace
'sound$'      Text
')'           Punctuation
'\n  '        Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'i'           Text
' '           Text.Whitespace
'>'           Operator
' '           Text.Whitespace
'1'           Literal.Number
'\n    '      Text.Whitespace
'button'      Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'endPause'    Name.Function
'('           Punctuation
'"'           Literal.String
'Stop'        Literal.String
'"'           Literal.String
','           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'Previous'    Literal.String
'"'           Literal.String
','           Punctuation
'\n      '    Text.Whitespace
'...'         Punctuation
'if'          Keyword
' '           Text.Whitespace
'i'           Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'total_sounds' Text
' '           Text.Whitespace
'then'        Keyword
' '           Text.Whitespace
'"'           Literal.String
'Finish'      Literal.String
'"'           Literal.String
' '           Text.Whitespace
'else'        Keyword
' '           Text.Whitespace
'"'           Literal.String
'Next'        Literal.String
'"'           Literal.String
' '           Text.Whitespace
'fi'          Keyword
','           Punctuation
'\n      '    Text.Whitespace
'...'         Punctuation
'3'           Literal.Number
','           Punctuation
' '           Text.Whitespace
'1'           Literal.Number
')'           Punctuation
'\n  '        Text.Whitespace
'else'        Keyword
'\n    '      Text.Whitespace
'button'      Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'endPause'    Name.Function
'('           Punctuation
'"'           Literal.String
'Stop'        Literal.String
'"'           Literal.String
','           Punctuation
'\n      '    Text.Whitespace
'...'         Punctuation
'if'          Keyword
' '           Text.Whitespace
'i'           Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'total_sounds' Text
' '           Text.Whitespace
'then'        Keyword
' '           Text.Whitespace
'"'           Literal.String
'Finish'      Literal.String
'"'           Literal.String
' '           Text.Whitespace
'else'        Keyword
' '           Text.Whitespace
'"'           Literal.String
'Next'        Literal.String
'"'           Literal.String
' '           Text.Whitespace
'fi'          Keyword
','           Punctuation
'\n      '    Text.Whitespace
'...'         Punctuation
'2'           Literal.Number
','           Punctuation
' '           Text.Whitespace
'1'           Literal.Number
')'           Punctuation
'\n  '        Text.Whitespace
'endif'       Keyword
'\n  '        Text.Whitespace
'editor_name$' Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'total_textgrids' Text
' '           Text.Whitespace
'then'        Keyword
' '           Text.Whitespace
'"'           Literal.String
'TextGrid '   Literal.String
'"'           Literal.String
' '           Text.Whitespace
'else'        Keyword
' '           Text.Whitespace
'"'           Literal.String
'Sound '      Literal.String
'"'           Literal.String
' '           Text.Whitespace
'fi'          Keyword
' '           Text.Whitespace
'+'           Operator
' '           Text.Whitespace
'name$'       Text
'\n  '        Text.Whitespace
'nocheck'     Keyword
' '           Text.Whitespace
'editor'      Keyword
' '           Text.Whitespace
'Sound'       Name.Class
' '           Text.Whitespace
"'editor_name$'" Literal.String.Interpol
'\n'          Text.Whitespace

'    '        Text.Whitespace
'nocheck'     Keyword
' '           Text.Whitespace
'C'           Keyword
'lose'        Keyword
'\n'          Text.Whitespace

'  '          Text.Whitespace
'nocheck'     Keyword
' '           Text.Whitespace
'endeditor'   Keyword
'\n  '        Text.Whitespace
'editor_id'   Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'editor'      Name.Function
':'           Punctuation
' '           Text.Whitespace
'editor_name$' Text
'\n'          Text.Whitespace

'    '        Text.Whitespace
'C'           Keyword
'lose'        Keyword
'\n'          Text.Whitespace

'  '          Text.Whitespace
'endeditor'   Keyword
'\n\n  '      Text.Whitespace
'# New-style standalone command call' Comment.Single
'\n  '        Text.Whitespace
'R'           Keyword
'ename'       Keyword
':'           Keyword
' '           Text.Whitespace
'"'           Literal.String
'SomeName'    Literal.String
'"'           Literal.String
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'  '          Text.Whitespace
'# Command call with assignment' Comment.Single
'\n  '        Text.Whitespace
'duration'    Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'G'           Keyword
'et '         Keyword
'total '      Keyword
'duration'    Keyword
'\n'          Text.Whitespace

'\n  '        Text.Whitespace
'# Multi-line command with modifier' Comment.Single
'\n  '        Text.Whitespace
'pitch'       Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'noprogress'  Keyword
' '           Text.Whitespace
'T'           Keyword
'o '          Keyword
'Pitch '      Keyword
'(ac)'        Keyword
':'           Keyword
' '           Text.Whitespace
'0'           Literal.Number
','           Punctuation
' '           Text.Whitespace
'75'          Literal.Number
','           Punctuation
' '           Text.Whitespace
'15'          Literal.Number
','           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'no'          Literal.String
'"'           Literal.String
','           Punctuation
'\n    '      Text.Whitespace
'...'         Punctuation
'0.03'        Literal.Number
','           Punctuation
' '           Text.Whitespace
'0.45'        Literal.Number
','           Punctuation
' '           Text.Whitespace
'0.01'        Literal.Number
','           Punctuation
' '           Text.Whitespace
'0.35'        Literal.Number
','           Punctuation
' '           Text.Whitespace
'0.14'        Literal.Number
','           Punctuation
' '           Text.Whitespace
'600'         Literal.Number
'\n'          Text.Whitespace

'  '          Text.Whitespace
'# Formulas are strings' Comment.Single
'\n  '        Text.Whitespace
'F'           Keyword
'ormula'      Keyword
':'           Keyword
' '           Text.Whitespace
'"'           Literal.String
'if col = 1 then row * Object_' Literal.String
"'pitch'"     Literal.String.Interpol
'.dx + '      Literal.String
"'first'"     Literal.String.Interpol
' else self fi' Literal.String
'"'           Literal.String
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'  '          Text.Whitespace
'# do-style command with assignment' Comment.Single
'\n  '        Text.Whitespace
'minimum'     Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'do'          Name.Function
'('           Punctuation
'"'           Literal.String
'Get minimum...' Literal.String
'"'           Literal.String
','           Punctuation
' '           Text.Whitespace
'0'           Literal.Number
','           Punctuation
' '           Text.Whitespace
'0'           Literal.Number
','           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'Hertz'       Literal.String
'"'           Literal.String
','           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'Parabolic'   Literal.String
'"'           Literal.String
')'           Punctuation
'\n\n  '      Text.Whitespace
'# New-style multi-line command call with broken strings' Comment.Single
'\n  '        Text.Whitespace
'table'       Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'C'           Keyword
'reate '      Keyword
'Table '      Keyword
'with '       Keyword
'column '     Keyword
'names'       Keyword
':'           Keyword
' '           Text.Whitespace
'"'           Literal.String
'table'       Literal.String
'"'           Literal.String
','           Punctuation
' '           Text.Whitespace
'0'           Literal.Number
','           Punctuation
'\n    '      Text.Whitespace
'...'         Punctuation
'"'           Literal.String
'file subject speaker' Literal.String
'\n    '      Text.Whitespace
'...'         Punctuation
' f0 f1 f2 f' Literal.String
'"'           Literal.String
' '           Text.Whitespace
'+'           Operator
' '           Text.Whitespace
'string$'     Name.Function
'('           Punctuation
'3'           Literal.Number
')'           Punctuation
' '           Text.Whitespace
'+'           Operator
' '           Text.Whitespace
'"'           Literal.String
' '           Literal.String
'"'           Literal.String
' '           Text.Whitespace
'+'           Operator
'\n    '      Text.Whitespace
'...'         Punctuation
'"'           Literal.String
'duration response' Literal.String
'"'           Literal.String
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'  '          Text.Whitespace
'# Function call with trailing space' Comment.Single
'\n  '        Text.Whitespace
'removeObject' Name.Function
':'           Punctuation
' '           Text.Whitespace
'pitch'       Text
','           Punctuation
' '           Text.Whitespace
'table'       Text
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'  '          Text.Whitespace
'# Picture window commands' Comment.Single
'\n  '        Text.Whitespace
'selectObject' Name.Function
':'           Punctuation
' '           Text.Whitespace
'sound'       Text
'\n'          Text.Whitespace

'  '          Text.Whitespace
'# do-style command' Comment.Single
'\n  '        Text.Whitespace
'do'          Name.Function
'('           Punctuation
'"'           Literal.String
'Select inner viewport...' Literal.String
'"'           Literal.String
','           Punctuation
' '           Text.Whitespace
'1'           Literal.Number
','           Punctuation
' '           Text.Whitespace
'6'           Literal.Number
','           Punctuation
' '           Text.Whitespace
'0.5'         Literal.Number
','           Punctuation
' '           Text.Whitespace
'1.5'         Literal.Number
')'           Punctuation
'\n  '        Text.Whitespace
'B'           Keyword
'lack'        Keyword
'\n'          Text.Whitespace

'  '          Text.Whitespace
'D'           Keyword
'raw'         Keyword
'...'         Keyword
' '           Text
'0'           Literal.Number
' '           Text
'0'           Literal.Number
' '           Text
'0'           Literal.Number
' '           Text
'0'           Literal.Number
' '           Text
'"'           Literal.String
'no'          Literal.String
'"'           Literal.String
' '           Text
'C'           Text
'urve'        Text
'\n'          Text.Whitespace

'  '          Text.Whitespace
'D'           Keyword
'raw '        Keyword
'inner '      Keyword
'box'         Keyword
'\n'          Text.Whitespace

'  '          Text.Whitespace
'T'           Keyword
'ext '        Keyword
'bottom'      Keyword
':'           Keyword
' '           Text.Whitespace
'"'           Literal.String
'yes'         Literal.String
'"'           Literal.String
','           Punctuation
' '           Text.Whitespace
'sound$'      Text
'\n'          Text.Whitespace

'  '          Text.Whitespace
'E'           Keyword
'rase '       Keyword
'all'         Keyword
'\n'          Text.Whitespace

'\n  '        Text.Whitespace
'# Demo window commands' Comment.Single
'\n  '        Text.Whitespace
'demo'        Keyword
' '           Text.Whitespace
'E'           Keyword
'rase '       Keyword
'all'         Keyword
'\n'          Text.Whitespace

'  '          Text.Whitespace
'demo'        Keyword
' '           Text.Whitespace
'S'           Keyword
'elect '      Keyword
'inner '      Keyword
'viewport'    Keyword
'...'         Keyword
' '           Text
'0'           Literal.Number
' '           Text
'100'         Literal.Number
' '           Text
'0'           Literal.Number
' '           Text
'100'         Literal.Number
'\n'          Text.Whitespace

'  '          Text.Whitespace
'demo'        Keyword
' '           Text.Whitespace
'A'           Keyword
'xes'         Keyword
'...'         Keyword
' '           Text
'0'           Literal.Number
' '           Text
'100'         Literal.Number
' '           Text
'0'           Literal.Number
' '           Text
'100'         Literal.Number
'\n'          Text.Whitespace

'  '          Text.Whitespace
'demo'        Keyword
' '           Text.Whitespace
'P'           Keyword
'aint '       Keyword
'rectangle'   Keyword
'...'         Keyword
' '           Text
'white'       Text
' '           Text
'0'           Literal.Number
' '           Text
'100'         Literal.Number
' '           Text
'0'           Literal.Number
' '           Text
'100'         Literal.Number
'\n'          Text.Whitespace

'  '          Text.Whitespace
'demo'        Keyword
' '           Text.Whitespace
'T'           Keyword
'ext'         Keyword
'...'         Keyword
' '           Text
'50'          Literal.Number
' '           Text
'centre'      Text
' '           Text
'50'          Literal.Number
' '           Text
'half'        Text
' '           Text
'C'           Text
'lick'        Text
' '           Text
'to'          Text
' '           Text
'finish'      Text
'\n'          Text.Whitespace

'  '          Text.Whitespace
'demoWaitForInput' Name.Function
' '           Text.Whitespace
'('           Punctuation
' '           Text.Whitespace
')'           Punctuation
'\n  '        Text.Whitespace
'demo'        Keyword
' '           Text.Whitespace
'E'           Keyword
'rase '       Keyword
'all'         Keyword
'\n'          Text.Whitespace

'  '          Text.Whitespace
'demo'        Keyword
' '           Text.Whitespace
'T'           Keyword
'ext'         Keyword
':'           Keyword
' '           Text.Whitespace
'50'          Literal.Number
','           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'centre'      Literal.String
'"'           Literal.String
','           Punctuation
' '           Text.Whitespace
'50'          Literal.Number
','           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'half'        Literal.String
'"'           Literal.String
','           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'Finished'    Literal.String
'"'           Literal.String
'\n'          Text.Whitespace

'endwhile'    Keyword
'\n\n'        Text.Whitespace

'switch$'     Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'switch'      Text
' '           Text.Whitespace
'=='          Operator
' '           Text.Whitespace
'1'           Literal.Number
' '           Text.Whitespace
'then'        Keyword
' '           Text.Whitespace
'"'           Literal.String
'a'           Literal.String
'"'           Literal.String
' '           Text.Whitespace
'else'        Keyword
'\n  '        Text.Whitespace
'...'         Punctuation
'     '       Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'switch'      Text
' '           Text.Whitespace
'=='          Operator
' '           Text.Whitespace
'2'           Literal.Number
' '           Text.Whitespace
'then'        Keyword
' '           Text.Whitespace
'"'           Literal.String
'b'           Literal.String
'"'           Literal.String
' '           Text.Whitespace
'else'        Keyword
'\n  '        Text.Whitespace
'...'         Punctuation
'     '       Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'switch'      Text
' '           Text.Whitespace
'=='          Operator
' '           Text.Whitespace
'3'           Literal.Number
' '           Text.Whitespace
'then'        Keyword
' '           Text.Whitespace
'"'           Literal.String
'c'           Literal.String
'"'           Literal.String
' '           Text.Whitespace
'else'        Keyword
'\n  '        Text.Whitespace
'...'         Punctuation
'     '       Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'switch'      Text
' '           Text.Whitespace
'=='          Operator
' '           Text.Whitespace
'4'           Literal.Number
' '           Text.Whitespace
'then'        Keyword
' '           Text.Whitespace
'"'           Literal.String
'd'           Literal.String
'"'           Literal.String
' '           Text.Whitespace
'else'        Keyword
'\n  '        Text.Whitespace
'...'         Punctuation
'     '       Text.Whitespace
'"'           Literal.String
'default'     Literal.String
'"'           Literal.String
' '           Text.Whitespace
'fi'          Keyword
' '           Text.Whitespace
'fi'          Keyword
' '           Text.Whitespace
'fi'          Keyword
' '           Text.Whitespace
'fi'          Keyword
'\n\n'        Text.Whitespace

'# An old-style sendpraat block' Comment.Single
'\n'          Text.Whitespace

'# All these lines should be a string!' Comment.Single
'\n'          Text.Whitespace

'sendpraat'   Keyword
' '           Text.Whitespace
'Praat'       Literal.String
'\n  '        Text.Whitespace
'...'         Punctuation
"'newline$'"  Literal.String.Interpol
' '           Text.Whitespace
'Create Sound as pure tone... "tone" 1 0 0.4 44100 440 0.2 0.01 0.01' Literal.String
'\n  '        Text.Whitespace
'...'         Punctuation
"'newline$'"  Literal.String.Interpol
' '           Text.Whitespace
'Play'        Literal.String
'\n  '        Text.Whitespace
'...'         Punctuation
"'newline$'"  Literal.String.Interpol
' '           Text.Whitespace
'Remove'      Literal.String
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'# A new-style sendpraat block' Comment.Single
'\n'          Text.Whitespace

'beginSendPraat' Name.Function
':'           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'Praat'       Literal.String
'"'           Literal.String
'\n'          Text.Whitespace

'  '          Text.Whitespace
'C'           Keyword
'reate '      Keyword
'Sound '      Keyword
'as '         Keyword
'pure '       Keyword
'tone'        Keyword
':'           Keyword
' '           Text.Whitespace
'"'           Literal.String
'tone'        Literal.String
'"'           Literal.String
','           Punctuation
' '           Text.Whitespace
'1'           Literal.Number
','           Punctuation
' '           Text.Whitespace
'0'           Literal.Number
','           Punctuation
' '           Text.Whitespace
'0.4'         Literal.Number
','           Punctuation
' '           Text.Whitespace
'44100'       Literal.Number
','           Punctuation
' '           Text.Whitespace
'440'         Literal.Number
','           Punctuation
' '           Text.Whitespace
'0.2'         Literal.Number
','           Punctuation
' '           Text.Whitespace
'0.01'        Literal.Number
','           Punctuation
' '           Text.Whitespace
'0.01'        Literal.Number
'\n'          Text.Whitespace

'  '          Text.Whitespace
'duration'    Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'G'           Keyword
'et '         Keyword
'total '      Keyword
'duration'    Keyword
'\n'          Text.Whitespace

'  '          Text.Whitespace
'R'           Keyword
'emove'       Keyword
'\n'          Text.Whitespace

'endSendPraat' Name.Function
':'           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'duration'    Literal.String
'"'           Literal.String
'\n'          Text.Whitespace

'appendInfoLine' Name.Function
':'           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'The generated sound lasted for ' Literal.String
'"'           Literal.String
','           Punctuation
' '           Text.Whitespace
'duration'    Text
','           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'seconds'     Literal.String
'"'           Literal.String
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'# Number types' Comment.Single
'\n'          Text.Whitespace

'a'           Text
' '           Text.Whitespace
'='           Operator
'   '         Text.Whitespace
'10%'         Literal.Number
'\n'          Text.Whitespace

'a'           Text
' '           Text.Whitespace
'='           Operator
'  '          Text.Whitespace
'-'           Operator
'10'          Literal.Number
'\n'          Text.Whitespace

'a'           Text
' '           Text.Whitespace
'='           Operator
'  '          Text.Whitespace
'+'           Operator
'10'          Literal.Number
'\n'          Text.Whitespace

'a'           Text
' '           Text.Whitespace
'='           Operator
'   '         Text.Whitespace
'10.4'        Literal.Number
'\n'          Text.Whitespace

'a'           Text
' '           Text.Whitespace
'='           Operator
'  '          Text.Whitespace
'294e12'      Literal.Number
'\n'          Text.Whitespace

'a'           Text
' '           Text.Whitespace
'='           Operator
'    '        Text.Whitespace
'2.94e12'     Literal.Number
'\n\n'        Text.Whitespace

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

'a'           Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'2'           Literal.Number
' '           Text.Whitespace
'^'           Operator
' '           Text.Whitespace
'-'           Operator
'6'           Literal.Number
'\n'          Text.Whitespace

'a'           Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'-'           Operator
'('           Punctuation
'1'           Literal.Number
'+'           Operator
'1'           Literal.Number
')'           Punctuation
'^'           Operator
'6'           Literal.Number
'\n'          Text.Whitespace

'a'           Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'4'           Literal.Number
'^'           Operator
'3'           Literal.Number
' '           Text.Whitespace
'^'           Operator
' '           Text.Whitespace
'2'           Literal.Number
'\n'          Text.Whitespace

'a'           Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'54'          Literal.Number
' '           Text.Whitespace
'div'         Operator.Word
' '           Text.Whitespace
'5.1'         Literal.Number
'\n'          Text.Whitespace

'a'           Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'54.3'        Literal.Number
' '           Text.Whitespace
'mod'         Operator.Word
' '           Text.Whitespace
'5'           Literal.Number
'\n'          Text.Whitespace

'a'           Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'3'           Literal.Number
' '           Text.Whitespace
'*'           Operator
'*'           Operator
' '           Text.Whitespace
'8'           Literal.Number
' '           Text.Whitespace
'-'           Operator
' '           Text.Whitespace
'7'           Literal.Number
'\n'          Text.Whitespace

'a'           Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'3'           Literal.Number
' '           Text.Whitespace
'/'           Operator
' '           Text.Whitespace
'('           Punctuation
'8'           Literal.Number
' '           Text.Whitespace
'+'           Operator
' '           Text.Whitespace
'7'           Literal.Number
')'           Punctuation
'\n'          Text.Whitespace

'a'           Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'('           Punctuation
'7'           Literal.Number
' '           Text.Whitespace
'*'           Operator
' '           Text.Whitespace
'('           Punctuation
'3'           Literal.Number
' '           Text.Whitespace
'+'           Operator
' '           Text.Whitespace
'5'           Literal.Number
')'           Punctuation
')'           Punctuation
' '           Text.Whitespace
'/'           Operator
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'2'           Literal.Number
' '           Text.Whitespace
'+'           Operator
' '           Text.Whitespace
'3'           Literal.Number
')'           Punctuation
' '           Text.Whitespace
'-'           Operator
' '           Text.Whitespace
'1'           Literal.Number
')'           Punctuation
'\n\n'        Text.Whitespace

'# Logical operators' Comment.Single
'\n'          Text.Whitespace

'assert'      Keyword
' '           Text.Whitespace
'('           Punctuation
'a'           Text
' '           Text.Whitespace
'='           Operator
'   '         Text.Whitespace
'b'           Text
')'           Punctuation
' '           Text.Whitespace
'and'         Operator.Word
' '           Text.Whitespace
'c'           Text
'\n'          Text.Whitespace

'assert'      Keyword
'  '          Text.Whitespace
'a'           Text
' '           Text.Whitespace
'=='          Operator
' '           Text.Whitespace
'('           Punctuation
'b'           Text
'  '          Text.Whitespace
'or'          Operator.Word
'  '          Text.Whitespace
'c'           Text
')'           Punctuation
'\n'          Text.Whitespace

'assert'      Keyword
'  '          Text.Whitespace
'a'           Text
' '           Text.Whitespace
'<='          Operator
'  '          Text.Whitespace
'b'           Text
'  '          Text.Whitespace
'not'         Operator.Word
' '           Text.Whitespace
'c'           Text
'\n'          Text.Whitespace

'assert'      Keyword
'  '          Text.Whitespace
'a'           Text
' '           Text.Whitespace
'>='          Operator
'  '          Text.Whitespace
'b'           Text
'     '       Text.Whitespace
'!'           Operator
'c'           Text
'\n'          Text.Whitespace

'assert'      Keyword
'  '          Text.Whitespace
'a'           Text
' '           Text.Whitespace
'!='          Operator
'  '          Text.Whitespace
'b'           Text
'  '          Text.Whitespace
'&'           Operator
'   '         Text.Whitespace
'c'           Text
'\n'          Text.Whitespace

'assert'      Keyword
'  '          Text.Whitespace
'a'           Text
' '           Text.Whitespace
'!='          Operator
'  '          Text.Whitespace
'b'           Text
'  '          Text.Whitespace
'&&'          Operator
'  '          Text.Whitespace
'c'           Text
'\n'          Text.Whitespace

'assert'      Keyword
'  '          Text.Whitespace
'a'           Text
' '           Text.Whitespace
'<'           Operator
'>'           Operator
'  '          Text.Whitespace
'b'           Text
'  '          Text.Whitespace
'||'          Operator
'  '          Text.Whitespace
'c'           Text
'\n'          Text.Whitespace

'assert'      Keyword
'  '          Text.Whitespace
'a'           Text
' '           Text.Whitespace
'<'           Operator
'   '         Text.Whitespace
'b'           Text
'  '          Text.Whitespace
'|'           Operator
'   '         Text.Whitespace
'c'           Text
'\n'          Text.Whitespace

'assert'      Keyword
'  '          Text.Whitespace
'a'           Text
' '           Text.Whitespace
'>'           Operator
'   '         Text.Whitespace
'b'           Text
'\n\n'        Text.Whitespace

'assert'      Keyword
' '           Text.Whitespace
'('           Punctuation
'a'           Text
')'           Punctuation
'or'          Operator.Word
' '           Text.Whitespace
'('           Punctuation
'b'           Text
')'           Punctuation
'\n'          Text.Whitespace

'assert'      Keyword
' '           Text.Whitespace
'('           Punctuation
'a'           Text
')'           Punctuation
' '           Text.Whitespace
'or'          Operator.Word
'('           Punctuation
'b'           Text
')'           Punctuation
'\n'          Text.Whitespace

'assert'      Keyword
' '           Text.Whitespace
'('           Punctuation
'a'           Text
')'           Punctuation
'and'         Operator.Word
'('           Punctuation
'b'           Text
')'           Punctuation
'\n\n'        Text.Whitespace

'assert'      Keyword
' '           Text.Whitespace
'"'           Literal.String
'hello'       Literal.String
'"'           Literal.String
' '           Text.Whitespace
'='           Operator
'  '          Text.Whitespace
'"'           Literal.String
'he'          Literal.String
'"'           Literal.String
' '           Text.Whitespace
'+'           Operator
' '           Text.Whitespace
'"'           Literal.String
'llo'         Literal.String
'"'           Literal.String
'\n'          Text.Whitespace

'assert'      Keyword
' '           Text.Whitespace
'"'           Literal.String
'hello'       Literal.String
'"'           Literal.String
' '           Text.Whitespace
'=='          Operator
' '           Text.Whitespace
'"'           Literal.String
'hello world' Literal.String
'"'           Literal.String
' '           Text.Whitespace
'-'           Operator
' '           Text.Whitespace
'"'           Literal.String
' world'      Literal.String
'"'           Literal.String
'\n\n'        Text.Whitespace

'stopwatch'   Keyword
'\n'          Text.Whitespace

'time'        Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'stopwatch'   Keyword
'\n'          Text.Whitespace

'clearinfo'   Keyword
'\n'          Text.Whitespace

'echo'        Keyword
' '           Text.Whitespace
'This script took' Literal.String
'\n'          Text.Whitespace

'print'       Keyword
' '           Text.Whitespace
"'time'"      Literal.String.Interpol
' '           Text.Whitespace
'seconds to'  Literal.String
'\n'          Text.Whitespace

'printline'   Keyword
' '           Text.Whitespace
'execute.'    Literal.String
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'# Old-style procedure declaration' Comment.Single
'\n'          Text.Whitespace

'procedure'   Keyword
' '           Text.Whitespace
'oldStyle'    Name.Function
' .str1$ .num .str2$' Text
'\n  '        Text.Whitespace
'.local'      Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'1'           Literal.Number
'\n'          Text.Whitespace

'endproc'     Keyword
'\n\n'        Text.Whitespace

'# New-style procedure declaration with parentheses' Comment.Single
'\n'          Text.Whitespace

'procedure'   Keyword
' '           Text.Whitespace
'newStyle'    Name.Function
' ('          Text.Whitespace
'.str1$'      Text
','           Punctuation
' '           Text.Whitespace
'.num'        Text
','           Punctuation
' '           Text.Whitespace
'.str2$'      Text
')'           Punctuation
'\n  '        Text.Whitespace
'# Command with "local" variable' Comment.Single
'\n  '        Text.Whitespace
'.local'      Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'G'           Keyword
'et '         Keyword
'total '      Keyword
'duration'    Keyword
'\n'          Text.Whitespace

'  '          Text.Whitespace
'.local'      Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'G'           Keyword
'et '         Keyword
"'some'"      Literal.String.Interpol
' duration'   Keyword
'\n'          Text.Whitespace

'  '          Text.Whitespace
'.local'      Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'G'           Keyword
'et '         Keyword
"'some[1]'"   Literal.String.Interpol
' value'      Keyword
'...'         Keyword
' '           Text
'hello'       Text
' '           Text
'10'          Literal.Number
' '           Text
'p'           Text
'['           Punctuation
'i'           Text
']'           Punctuation
'\n'          Text.Whitespace

'  '          Text.Whitespace
'.local'      Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'G'           Keyword
'et '         Keyword
"'some[1,3]'" Literal.String.Interpol
' value'      Keyword
':'           Keyword
' '           Text.Whitespace
'"'           Literal.String
'hello'       Literal.String
'"'           Literal.String
','           Punctuation
' '           Text.Whitespace
'10'          Literal.Number
','           Punctuation
' '           Text.Whitespace
'p'           Text
'['           Punctuation
'i'           Text
']'           Punctuation
'\n'          Text.Whitespace

'  '          Text.Whitespace
'.local'      Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'G'           Keyword
'et '         Keyword
"'some$'"     Literal.String.Interpol
' duration'   Keyword
'\n'          Text.Whitespace

'  '          Text.Whitespace
'.local'      Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'G'           Keyword
'et '         Keyword
"'some$[1]'"  Literal.String.Interpol
' duration'   Keyword
'\n'          Text.Whitespace

'endproc'     Keyword
'\n\n'        Text.Whitespace

'# New-style procedure declaration with colon' Comment.Single
'\n'          Text.Whitespace

'procedure'   Keyword
' '           Text.Whitespace
'_new_style'  Name.Function
':'           Text.Whitespace
' '           Text.Whitespace
'.str1$'      Text
','           Punctuation
' '           Text.Whitespace
'.num'        Text
','           Punctuation
' '           Text.Whitespace
'.str2$'      Text
'\n  '        Text.Whitespace
'# Command with "local" variable' Comment.Single
'\n  '        Text.Whitespace
'# Initial underscores in variables not allowed (unless interpolated)' Comment.Single
'\n  '        Text.Whitespace
'_new_style.local' Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'G'           Keyword
'et '         Keyword
'total '      Keyword
'duration'    Keyword
'\n'          Text.Whitespace

'endproc'     Keyword
'\n\n'        Text.Whitespace

'asserterror' Keyword
' '           Text.Whitespace
'Unknown symbol:' Literal.String
"'newline$'"  Literal.String.Interpol
'« _'         Literal.String
'\n'          Text.Whitespace

'assert'      Keyword
' '           Text.Whitespace
"'_new_style.local'" Literal.String.Interpol
'\n\n'        Text.Whitespace

'@'           Name.Function
'proc'        Name.Function
':'           Punctuation
' '           Text.Whitespace
'a'           Text
','           Punctuation
' '           Text.Whitespace
'selected'    Name.Function
'('           Punctuation
'"'           Literal.String
'string'      Literal.String
'"'           Literal.String
')'           Punctuation
','           Punctuation
' '           Text.Whitespace
'b'           Text
'\n'          Text.Whitespace

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

'for'         Keyword
' '           Text.Whitespace
'i'           Text
' '           Text.Whitespace
'to'          Keyword
' '           Text.Whitespace
'saveSelection.n' Text
'\n  '        Text.Whitespace
'selectObject' Name.Function
':'           Punctuation
' '           Text.Whitespace
'saveSelection.id' Text
'['           Punctuation
'i'           Text
']'           Punctuation
'\n'          Text.Whitespace

'  '          Text.Whitespace
'appendInfoLine' Name.Function
':'           Punctuation
' '           Text.Whitespace
'selected$'   Name.Function
'('           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

'endfor'      Keyword
'\n\n'        Text.Whitespace

'@'           Name.Function
'ok'          Name.Function
'('           Punctuation
'if'          Keyword
' '           Text.Whitespace
'selected$'   Name.Function
'('           Punctuation
'"'           Literal.String
'Sound'       Literal.String
'"'           Literal.String
')'           Punctuation
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'"'           Literal.String
'tone'        Literal.String
'"'           Literal.String
' '           Text.Whitespace
'then'        Keyword
' '           Text.Whitespace
'1'           Literal.Number
' '           Text.Whitespace
'else'        Keyword
' '           Text.Whitespace
'0'           Literal.Number
' '           Text.Whitespace
'fi'          Keyword
','           Punctuation
'\n  '        Text.Whitespace
'...'         Punctuation
' '           Text.Whitespace
'"'           Literal.String
'selected sound is tone' Literal.String
'"'           Literal.String
')'           Punctuation
'\n\n'        Text.Whitespace

'@'           Name.Function
'ok_formula'  Name.Function
'('           Punctuation
'"'           Literal.String
'selected$('  Literal.String
'"'           Literal.String
'"'           Literal.String
'Sound'       Literal.String
'"'           Literal.String
'"'           Literal.String
') = '        Literal.String
'"'           Literal.String
'"'           Literal.String
'tone'        Literal.String
'"'           Literal.String
'"'           Literal.String
'"'           Literal.String
','           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'selected sound is tone' Literal.String
'"'           Literal.String
')'           Punctuation
'\n'          Text.Whitespace
