'/***************************************************************************\n                    ansigenerator.cpp  -  description\n                             -------------------\n    begin                : Jul 5 2004\n    copyright            : (C) 2004 by André Simon\n    email                : andre.simon1@gmx.de\n ***************************************************************************/' Comment.Multiline
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'/***************************************************************************\n *                                                                         *\n *   This program is free software; you can redistribute it and/or modify  *\n *   it under the terms of the GNU General Public License as published by  *\n *   the Free Software Foundation; either version 2 of the License, or     *\n *   (at your option) any later version.                                   *\n *                                                                         *\n ***************************************************************************/' Comment.Multiline
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'#'           Comment.Preproc
'include'     Comment.Preproc
' '           Text.Whitespace
'"ansigenerator.h"' Comment.PreprocFile
'\n'          Comment.Preproc

'\n'          Text.Whitespace

'using'       Keyword
' '           Text.Whitespace
'namespace'   Keyword
' '           Text.Whitespace
'std'         Name.Namespace
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'namespace'   Keyword
' '           Text.Whitespace
'highlight'   Name.Namespace
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'\n'          Text.Whitespace

'string'      Name
'  '          Text.Whitespace
'AnsiGenerator::getOpenTag' Name.Function
'('           Punctuation
'const'       Keyword
' '           Text.Whitespace
'string'      Name
'&'           Operator
'font'        Name
','           Punctuation
'\n'          Text.Whitespace

'                                  ' Text.Whitespace
'const'       Keyword
' '           Text.Whitespace
'string'      Name
'&'           Operator
'fgCol'       Name
','           Punctuation
' '           Text.Whitespace
'const'       Keyword
' '           Text.Whitespace
'string'      Name
'&'           Operator
'bgCol'       Name
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'ostringstream' Name
' '           Text.Whitespace
's'           Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
's'           Name
'  '          Text.Whitespace
'<'           Operator
'<'           Operator
' '           Text.Whitespace
'"'           Literal.String
'\\033'       Literal.String.Escape
'['           Literal.String
'"'           Literal.String
'<'           Operator
'<'           Operator
'font'        Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'fgCol'       Name
'.'           Punctuation
'empty'       Name
'('           Punctuation
')'           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
's'           Name
'<'           Operator
'<'           Operator
'"'           Literal.String
';'           Literal.String
'"'           Literal.String
'<'           Operator
'<'           Operator
'fgCol'       Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'bgCol'       Name
'.'           Punctuation
'empty'       Name
'('           Punctuation
')'           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
's'           Name
'<'           Operator
'<'           Operator
'"'           Literal.String
';'           Literal.String
'"'           Literal.String
'<'           Operator
'<'           Operator
'bgCol'       Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
's'           Name
' '           Text.Whitespace
'<'           Operator
'<'           Operator
' '           Text.Whitespace
'"'           Literal.String
'm'           Literal.String
'"'           Literal.String
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'return'      Keyword
'  '          Text.Whitespace
's'           Name
'.'           Punctuation
'str'         Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'}'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'\n'          Text.Whitespace

'AnsiGenerator' Name
':'           Operator
':'           Operator
'AnsiGenerator' Name
'('           Punctuation
'const'       Keyword
' '           Text.Whitespace
'string'      Name
' '           Text.Whitespace
'&'           Operator
'colourTheme' Name
')'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
':'           Operator
' '           Text.Whitespace
'CodeGenerator' Name
'('           Punctuation
'colourTheme' Name
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'styleTagOpen' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'"'           Literal.String
'"'           Literal.String
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'styleTagOpen' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'getOpenTag'  Name
'('           Punctuation
'"'           Literal.String
'00'          Literal.String
'"'           Literal.String
','           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'31'          Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
';'           Punctuation
' '           Text.Whitespace
'//str\n'     Comment.Single

'    '        Text.Whitespace
'styleTagOpen' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'getOpenTag'  Name
'('           Punctuation
'"'           Literal.String
'00'          Literal.String
'"'           Literal.String
','           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'34'          Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
';'           Punctuation
'//number\n'  Comment.Single

'    '        Text.Whitespace
'styleTagOpen' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'getOpenTag'  Name
'('           Punctuation
'"'           Literal.String
'00'          Literal.String
'"'           Literal.String
','           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'34'          Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
';'           Punctuation
'//sl comment\n' Comment.Single

'    '        Text.Whitespace
'styleTagOpen' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'getOpenTag'  Name
'('           Punctuation
'"'           Literal.String
'00'          Literal.String
'"'           Literal.String
','           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'34'          Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
';'           Punctuation
'//ml comment\n' Comment.Single

'    '        Text.Whitespace
'styleTagOpen' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'getOpenTag'  Name
'('           Punctuation
'"'           Literal.String
'00'          Literal.String
'"'           Literal.String
','           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'35'          Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
';'           Punctuation
'//escapeChar\n' Comment.Single

'    '        Text.Whitespace
'styleTagOpen' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'getOpenTag'  Name
'('           Punctuation
'"'           Literal.String
'00'          Literal.String
'"'           Literal.String
','           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'35'          Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
';'           Punctuation
'//directive\n' Comment.Single

'    '        Text.Whitespace
'styleTagOpen' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'getOpenTag'  Name
'('           Punctuation
'"'           Literal.String
'01'          Literal.String
'"'           Literal.String
','           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'31'          Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
';'           Punctuation
'//directive string\n' Comment.Single

'    '        Text.Whitespace
'styleTagOpen' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'getOpenTag'  Name
'('           Punctuation
'"'           Literal.String
'00'          Literal.String
'"'           Literal.String
','           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'30'          Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
';'           Punctuation
'//linenum\n' Comment.Single

'    '        Text.Whitespace
'styleTagOpen' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'getOpenTag'  Name
'('           Punctuation
'"'           Literal.String
'01'          Literal.String
'"'           Literal.String
','           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'00'          Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
';'           Punctuation
'//symbol\n'  Comment.Single

'\n'          Text.Whitespace

'    '        Text.Whitespace
'styleTagClose' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'"'           Literal.String
'"'           Literal.String
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'for'         Keyword
' '           Text.Whitespace
'('           Punctuation
'int'         Keyword.Type
' '           Text.Whitespace
'i'           Name
'='           Operator
'1'           Literal.Number.Integer
';'           Punctuation
'i'           Name
'<'           Operator
'NUMBER_BUILTIN_STYLES' Name
';'           Punctuation
' '           Text.Whitespace
'i'           Name
'+'           Operator
'+'           Operator
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'styleTagClose' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'"'           Literal.String
'\\033'       Literal.String.Escape
'[m'          Literal.String
'"'           Literal.String
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

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

'    '        Text.Whitespace
'newLineTag'  Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'"'           Literal.String
'\\n'         Literal.String.Escape
'"'           Literal.String
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'spacer'      Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'"'           Literal.String
' '           Literal.String
'"'           Literal.String
';'           Punctuation
'\n'          Text.Whitespace

'}'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'AnsiGenerator' Name
':'           Operator
':'           Operator
'AnsiGenerator' Name
'('           Punctuation
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'}'           Punctuation
'\n'          Text.Whitespace

'AnsiGenerator' Name
':'           Operator
':'           Operator
'~'           Operator
'AnsiGenerator' Name
'('           Punctuation
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'}'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'string'      Name
' '           Text.Whitespace
'AnsiGenerator' Name
':'           Operator
':'           Operator
'getHeader'   Name
'('           Punctuation
'const'       Keyword
' '           Text.Whitespace
'string'      Name
' '           Text.Whitespace
'&'           Operator
' '           Text.Whitespace
'title'       Name
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'string'      Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'}'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'void'        Keyword.Type
' '           Text.Whitespace
'AnsiGenerator' Name
':'           Operator
':'           Operator
'printBody'   Name
'('           Punctuation
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'processRootState' Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'}'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'string'      Name
' '           Text.Whitespace
'AnsiGenerator' Name
':'           Operator
':'           Operator
'getFooter'   Name
'('           Punctuation
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'string'      Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'}'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'string'      Name
' '           Text.Whitespace
'AnsiGenerator' Name
':'           Operator
':'           Operator
'maskCharacter' Name
'('           Punctuation
'unsigned'    Keyword.Type
' '           Text.Whitespace
'char'        Keyword.Type
' '           Text.Whitespace
'c'           Name
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'string'      Name
' '           Text.Whitespace
'm'           Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'm'           Name
'+'           Operator
'='           Operator
'c'           Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'm'           Name
';'           Punctuation
'\n'          Text.Whitespace

'}'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'string'      Name
' '           Text.Whitespace
'AnsiGenerator' Name
':'           Operator
':'           Operator
'getMatchingOpenTag' Name
'('           Punctuation
'unsigned'    Keyword.Type
' '           Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'styleID'     Name
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'('           Punctuation
'styleID'     Name
')'           Punctuation
'?'           Operator
'getOpenTag'  Name
'('           Punctuation
'"'           Literal.String
'01'          Literal.String
'"'           Literal.String
','           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'32'          Literal.String
'"'           Literal.String
','           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'"'           Literal.String
')'           Punctuation
':'           Operator
'getOpenTag'  Name
'('           Punctuation
'"'           Literal.String
'00'          Literal.String
'"'           Literal.String
','           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'33'          Literal.String
'"'           Literal.String
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'}'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'string'      Name
' '           Text.Whitespace
'AnsiGenerator' Name
':'           Operator
':'           Operator
'getMatchingCloseTag' Name
'('           Punctuation
'unsigned'    Keyword.Type
' '           Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'styleID'     Name
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'"'           Literal.String
'\\033'       Literal.String.Escape
'[m'          Literal.String
'"'           Literal.String
';'           Punctuation
'\n'          Text.Whitespace

'}'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'}'           Punctuation
'\n'          Text.Whitespace

'/***************************************************************************\n                         ansicode.h  -  description\n                             -------------------\n    begin                : Jul 5 2004\n    copyright            : (C) 2004 by Andre Simon\n    email                : andre.simon1@gmx.de\n ***************************************************************************/' Comment.Multiline
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'/***************************************************************************\n *                                                                         *\n *   This program is free software; you can redistribute it and/or modify  *\n *   it under the terms of the GNU General Public License as published by  *\n *   the Free Software Foundation; either version 2 of the License, or     *\n *   (at your option) any later version.                                   *\n *                                                                         *\n ***************************************************************************/' Comment.Multiline
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'#'           Comment.Preproc
'ifndef ANSIGENERATOR_H' Comment.Preproc
'\n'          Comment.Preproc

'#'           Comment.Preproc
'define ANSIGENERATOR_H' Comment.Preproc
'\n'          Comment.Preproc

'\n'          Text.Whitespace

'#'           Comment.Preproc
'include'     Comment.Preproc
' '           Text.Whitespace
'<iostream>'  Comment.PreprocFile
'\n'          Comment.Preproc

'#'           Comment.Preproc
'include'     Comment.Preproc
' '           Text.Whitespace
'<fstream>'   Comment.PreprocFile
'\n'          Comment.Preproc

'#'           Comment.Preproc
'include'     Comment.Preproc
' '           Text.Whitespace
'<string>'    Comment.PreprocFile
'\n'          Comment.Preproc

'#'           Comment.Preproc
'include'     Comment.Preproc
' '           Text.Whitespace
'<sstream>'   Comment.PreprocFile
'\n'          Comment.Preproc

'\n'          Text.Whitespace

'#'           Comment.Preproc
'include'     Comment.Preproc
' '           Text.Whitespace
'"codegenerator.h"' Comment.PreprocFile
'\n'          Comment.Preproc

'#'           Comment.Preproc
'include'     Comment.Preproc
' '           Text.Whitespace
'"charcodes.h"' Comment.PreprocFile
'\n'          Comment.Preproc

'#'           Comment.Preproc
'include'     Comment.Preproc
' '           Text.Whitespace
'"version.h"' Comment.PreprocFile
'\n'          Comment.Preproc

'\n'          Text.Whitespace

'namespace'   Keyword
' '           Text.Whitespace
'highlight'   Name.Namespace
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'/**\n   \\brief This class generates ANSI escape sequences.\n\n   It contains information about the resulting document structure (document\n   header and footer), the colour system, white space handling and text\n   formatting attributes.\n\n* @author Andre Simon\n*/' Comment.Multiline
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'class'       Keyword
' '           Text.Whitespace
'AnsiGenerator' Name.Class
' '           Text.Whitespace
':'           Operator
' '           Text.Whitespace
'public'      Keyword
' '           Text.Whitespace
'highlight'   Name
':'           Operator
':'           Operator
'CodeGenerator' Name
'\n'          Text.Whitespace

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

'  '          Text.Whitespace
'public'      Keyword
':'           Operator
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'   '         Text.Whitespace
'/** Constructor\n     \\param colourTheme Name of Colour theme to use\n    */' Comment.Multiline
'\n'          Text.Whitespace

'    '        Text.Whitespace
'AnsiGenerator' Name
'('           Punctuation
' '           Text.Whitespace
'const'       Keyword
' '           Text.Whitespace
'string'      Name
' '           Text.Whitespace
'&'           Operator
'colourTheme' Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'AnsiGenerator' Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'~'           Operator
'AnsiGenerator' Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'   '         Text.Whitespace
'/** prints document header\n       \\param  title Title of the document\n    */' Comment.Multiline
'\n'          Text.Whitespace

'    '        Text.Whitespace
'string'      Name
' '           Text.Whitespace
'getHeader'   Name.Function
'('           Punctuation
'const'       Keyword
' '           Text.Whitespace
'string'      Name
' '           Text.Whitespace
'&'           Operator
' '           Text.Whitespace
'title'       Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'/** Prints document footer*/' Comment.Multiline
'\n'          Text.Whitespace

'    '        Text.Whitespace
'string'      Name
' '           Text.Whitespace
'getFooter'   Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'/** Prints document body*/' Comment.Multiline
'\n'          Text.Whitespace

'    '        Text.Whitespace
'void'        Keyword.Type
' '           Text.Whitespace
'printBody'   Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'  '          Text.Whitespace
'private'     Keyword
':'           Operator
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'/** \\return escaped character*/' Comment.Multiline
'\n'          Text.Whitespace

'    '        Text.Whitespace
'virtual'     Keyword
' '           Text.Whitespace
'string'      Name
' '           Text.Whitespace
'maskCharacter' Name
'('           Punctuation
'unsigned'    Keyword.Type
' '           Text.Whitespace
'char'        Keyword.Type
' '           Text.Whitespace
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'/** gibt ANSI-"Tags" zurueck (Farbindex+bold+kursiv)*/' Comment.Multiline
'\n'          Text.Whitespace

'    '        Text.Whitespace
'string'      Name
' '           Text.Whitespace
'getOpenTag'  Name
'('           Punctuation
'const'       Keyword
' '           Text.Whitespace
'string'      Name
'&'           Operator
'font'        Name
','           Punctuation
'\n'          Text.Whitespace

'                      ' Text.Whitespace
'const'       Keyword
' '           Text.Whitespace
'string'      Name
'&'           Operator
'fgCol'       Name
','           Punctuation
' '           Text.Whitespace
'const'       Keyword
' '           Text.Whitespace
'string'      Name
'&'           Operator
'bgCol'       Name
'='           Operator
'"'           Literal.String
'"'           Literal.String
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'string'      Name
' '           Text.Whitespace
'getMatchingOpenTag' Name.Function
'('           Punctuation
'unsigned'    Keyword.Type
' '           Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'styleID'     Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'string'      Name
' '           Text.Whitespace
'getMatchingCloseTag' Name.Function
'('           Punctuation
'unsigned'    Keyword.Type
' '           Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'styleID'     Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'}'           Punctuation
'\n'          Text.Whitespace

'#'           Comment.Preproc
'endif'       Comment.Preproc
'\n'          Comment.Preproc

'/*\n * Copyright (c) 1998,1999,2000,2001,2002 Tal Davidson. All rights reserved.\n *\n * ASBeautifier.cpp\n * by Tal Davidson (davidsont@bigfoot.com)\n * This file is a part of "Artistic Style" - an indentater and reformatter\n * of C, C, C# and Java source files.\n *\n * The "Artistic Style" project, including all files needed to compile it,\n * is free software; you can redistribute it and/or use it and/or modify it\n * under the terms of the GNU General Public License as published \n * by the Free Software Foundation; either version 2 of the License, \n * or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n *\n * You should have received a copy of the GNU General Public\n * License along with this program.\n *\n * Patches:\n * 18 March 1999 - Brian Rampel -\n *       Fixed inverse insertion of spaces vs. tabs when in -t mode.\n * 08 may 2004 \n *       applied ASBeautifier.cpp.BITFIELD.patch.bz2\n */' Comment.Multiline
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'#'           Comment.Preproc
'include'     Comment.Preproc
' '           Text.Whitespace
'"compiler_defines.h"' Comment.PreprocFile
'\n'          Comment.Preproc

'#'           Comment.Preproc
'include'     Comment.Preproc
' '           Text.Whitespace
'"ASBeautifier.h"' Comment.PreprocFile
'\n'          Comment.Preproc

'\n'          Text.Whitespace

'#'           Comment.Preproc
'include'     Comment.Preproc
' '           Text.Whitespace
'<vector>'    Comment.PreprocFile
'\n'          Comment.Preproc

'#'           Comment.Preproc
'include'     Comment.Preproc
' '           Text.Whitespace
'<string>'    Comment.PreprocFile
'\n'          Comment.Preproc

'#'           Comment.Preproc
'include'     Comment.Preproc
' '           Text.Whitespace
'<cctype>'    Comment.PreprocFile
'\n'          Comment.Preproc

'#'           Comment.Preproc
'include'     Comment.Preproc
' '           Text.Whitespace
'<algorithm>' Comment.PreprocFile
'\n'          Comment.Preproc

'#'           Comment.Preproc
'include'     Comment.Preproc
' '           Text.Whitespace
'<iostream>'  Comment.PreprocFile
'\n'          Comment.Preproc

'\n'          Text.Whitespace

'\n'          Text.Whitespace

'#'           Comment.Preproc
'define INIT_CONTAINER(container, value)     {if ( (container) != NULL ) delete (container); (container) = (value); }' Comment.Preproc
'\n'          Comment.Preproc

'#'           Comment.Preproc
'define DELETE_CONTAINER(container)          {if ( (container) != NULL ) delete (container) ; }' Comment.Preproc
'\n'          Comment.Preproc

'\n'          Text.Whitespace

'#'           Comment.Preproc
'ifdef USES_NAMESPACE' Comment.Preproc
'\n'          Comment.Preproc

'using'       Keyword
' '           Text.Whitespace
'namespace'   Keyword
' '           Text.Whitespace
'std'         Name.Namespace
';'           Punctuation
'\n'          Text.Whitespace

'#'           Comment.Preproc
'endif'       Comment.Preproc
'\n'          Comment.Preproc

'\n'          Text.Whitespace

'\n'          Text.Whitespace

'\n'          Text.Whitespace

'\n'          Text.Whitespace

'#'           Comment.Preproc
'ifdef USES_NAMESPACE' Comment.Preproc
'\n'          Comment.Preproc

'namespace'   Keyword
' '           Text.Whitespace
'astyle'      Name.Namespace
'\n'          Text.Whitespace

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

'#'           Comment.Preproc
'endif'       Comment.Preproc
'\n'          Comment.Preproc

'\n'          Text.Whitespace

'  '          Text.Whitespace
'bool'        Keyword.Type
' '           Text.Whitespace
'ASBeautifier' Name
':'           Operator
':'           Operator
'calledInitStatic' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'false'       Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'  '          Text.Whitespace
'vector'      Name
'<'           Operator
'const'       Keyword
' '           Text.Whitespace
'string'      Name
'*'           Operator
'>'           Operator
' '           Text.Whitespace
'ASBeautifier' Name
':'           Operator
':'           Operator
'headers'     Name
';'           Punctuation
'\n'          Text.Whitespace

'  '          Text.Whitespace
'vector'      Name
'<'           Operator
'const'       Keyword
' '           Text.Whitespace
'string'      Name
'*'           Operator
'>'           Operator
' '           Text.Whitespace
'ASBeautifier' Name
':'           Operator
':'           Operator
'nonParenHeaders' Name
';'           Punctuation
'\n'          Text.Whitespace

'  '          Text.Whitespace
'vector'      Name
'<'           Operator
'const'       Keyword
' '           Text.Whitespace
'string'      Name
'*'           Operator
'>'           Operator
' '           Text.Whitespace
'ASBeautifier' Name
':'           Operator
':'           Operator
'preBlockStatements' Name
';'           Punctuation
'\n'          Text.Whitespace

'  '          Text.Whitespace
'vector'      Name
'<'           Operator
'const'       Keyword
' '           Text.Whitespace
'string'      Name
'*'           Operator
'>'           Operator
' '           Text.Whitespace
'ASBeautifier' Name
':'           Operator
':'           Operator
'assignmentOperators' Name
';'           Punctuation
'\n'          Text.Whitespace

'  '          Text.Whitespace
'vector'      Name
'<'           Operator
'const'       Keyword
' '           Text.Whitespace
'string'      Name
'*'           Operator
'>'           Operator
' '           Text.Whitespace
'ASBeautifier' Name
':'           Operator
':'           Operator
'nonAssignmentOperators' Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'  '          Text.Whitespace
'/*\n   * initialize the static vars\n   */' Comment.Multiline
'\n'          Text.Whitespace

'  '          Text.Whitespace
'void'        Keyword.Type
' '           Text.Whitespace
'ASBeautifier::initStatic' Name.Function
'('           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

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

'    '        Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'calledInitStatic' Name
')'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'return'      Keyword
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'calledInitStatic' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'true'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'headers'     Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_IF'       Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'headers'     Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_ELSE'     Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'headers'     Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_FOR'      Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'headers'     Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_WHILE'    Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'headers'     Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_DO'       Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'headers'     Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_TRY'      Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'headers'     Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_CATCH'    Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'headers'     Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_FINALLY'  Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'headers'     Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_SYNCHRONIZED' Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'headers'     Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_SWITCH'   Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'headers'     Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_CASE'     Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'headers'     Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_DEFAULT'  Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'headers'     Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_FOREACH'  Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'headers'     Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_LOCK'     Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'headers'     Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_UNSAFE'   Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'headers'     Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_FIXED'    Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'headers'     Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_GET'      Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'headers'     Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_SET'      Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'headers'     Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_ADD'      Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'headers'     Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_REMOVE'   Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'//headers.push_back(&AS_PUBLIC);\n' Comment.Single

'    '        Text.Whitespace
'//headers.push_back(&AS_PRIVATE);\n' Comment.Single

'    '        Text.Whitespace
'//headers.push_back(&AS_PROTECTED);\n' Comment.Single

'\n'          Text.Whitespace

'    '        Text.Whitespace
'//headers.push_back(&AS_OPERATOR);\n' Comment.Single

'    '        Text.Whitespace
'headers'     Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_TEMPLATE' Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'headers'     Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_CONST'    Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'/**/'        Comment.Multiline
'\n'          Text.Whitespace

'    '        Text.Whitespace
'headers'     Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_STATIC'   Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'headers'     Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_EXTERN'   Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'nonParenHeaders' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_ELSE'     Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'nonParenHeaders' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_DO'       Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'nonParenHeaders' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_TRY'      Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'nonParenHeaders' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_FINALLY'  Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'nonParenHeaders' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_STATIC'   Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'nonParenHeaders' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_CONST'    Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'nonParenHeaders' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_EXTERN'   Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'nonParenHeaders' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_CASE'     Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'nonParenHeaders' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_DEFAULT'  Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'nonParenHeaders' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_UNSAFE'   Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'nonParenHeaders' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_GET'      Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'nonParenHeaders' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_SET'      Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'nonParenHeaders' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_ADD'      Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'nonParenHeaders' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_REMOVE'   Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'nonParenHeaders' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_PUBLIC'   Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'nonParenHeaders' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_PRIVATE'  Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'nonParenHeaders' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_PROTECTED' Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'nonParenHeaders' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_TEMPLATE' Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'nonParenHeaders' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_CONST'    Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'///    nonParenHeaders.push_back(&AS_ASM);\n' Comment.Single

'\n'          Text.Whitespace

'    '        Text.Whitespace
'preBlockStatements' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_CLASS'    Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'preBlockStatements' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_STRUCT'   Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'preBlockStatements' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_UNION'    Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'preBlockStatements' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_INTERFACE' Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'preBlockStatements' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_NAMESPACE' Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'preBlockStatements' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_THROWS'   Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'preBlockStatements' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_EXTERN'   Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'assignmentOperators' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_ASSIGN'   Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'assignmentOperators' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_PLUS_ASSIGN' Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'assignmentOperators' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_MINUS_ASSIGN' Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'assignmentOperators' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_MULT_ASSIGN' Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'assignmentOperators' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_DIV_ASSIGN' Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'assignmentOperators' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_MOD_ASSIGN' Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'assignmentOperators' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_OR_ASSIGN' Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'assignmentOperators' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_AND_ASSIGN' Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'assignmentOperators' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_XOR_ASSIGN' Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'assignmentOperators' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_GR_GR_GR_ASSIGN' Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'assignmentOperators' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_GR_GR_ASSIGN' Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'assignmentOperators' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_LS_LS_LS_ASSIGN' Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'assignmentOperators' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_LS_LS_ASSIGN' Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'assignmentOperators' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_RETURN'   Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'nonAssignmentOperators' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_EQUAL'    Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'nonAssignmentOperators' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_PLUS_PLUS' Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'nonAssignmentOperators' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_MINUS_MINUS' Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'nonAssignmentOperators' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_NOT_EQUAL' Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'nonAssignmentOperators' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_GR_EQUAL' Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'nonAssignmentOperators' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_GR_GR_GR' Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'nonAssignmentOperators' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_GR_GR'    Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'nonAssignmentOperators' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_LS_EQUAL' Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'nonAssignmentOperators' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_LS_LS_LS' Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'nonAssignmentOperators' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_LS_LS'    Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'nonAssignmentOperators' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_ARROW'    Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'nonAssignmentOperators' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_AND'      Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'nonAssignmentOperators' Name
'.'           Punctuation
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_OR'       Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'  '          Text.Whitespace
"/**\n   * ASBeautifier's constructor\n   */" Comment.Multiline
'\n'          Text.Whitespace

'  '          Text.Whitespace
'ASBeautifier' Name
':'           Operator
':'           Operator
'ASBeautifier' Name
'('           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

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

'    '        Text.Whitespace
'initStatic'  Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'waitingBeautifierStack' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'activeBeautifierStack' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'waitingBeautifierStackLengthStack' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'activeBeautifierStackLengthStack' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'headerStack' Name
'  '          Text.Whitespace
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'tempStacks'  Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'blockParenDepthStack' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'blockStatementStack' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'parenStatementStack' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'bracketBlockStateStack' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'inStatementIndentStack' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'inStatementIndentStackSizeStack' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'parenIndentStack' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'sourceIterator' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'isMinimalConditinalIndentSet' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'false'       Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'shouldForceTabIndentation' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'false'       Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'setSpaceIndentation' Name
'('           Punctuation
'4'           Literal.Number.Integer
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'setMaxInStatementIndentLength' Name
'('           Punctuation
'40'          Literal.Number.Integer
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'setClassIndent' Name
'('           Punctuation
'false'       Name.Builtin
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'setSwitchIndent' Name
'('           Punctuation
'false'       Name.Builtin
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'setCaseIndent' Name
'('           Punctuation
'false'       Name.Builtin
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'setBlockIndent' Name
'('           Punctuation
'false'       Name.Builtin
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'setBracketIndent' Name
'('           Punctuation
'false'       Name.Builtin
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'setNamespaceIndent' Name
'('           Punctuation
'false'       Name.Builtin
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'setLabelIndent' Name
'('           Punctuation
'false'       Name.Builtin
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'setEmptyLineFill' Name
'('           Punctuation
'false'       Name.Builtin
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'setCStyle'   Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'setPreprocessorIndent' Name
'('           Punctuation
'false'       Name.Builtin
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'  '          Text.Whitespace
'ASBeautifier' Name
':'           Operator
':'           Operator
'ASBeautifier' Name
'('           Punctuation
'const'       Keyword
' '           Text.Whitespace
'ASBeautifier' Name
' '           Text.Whitespace
'&'           Operator
'other'       Name
')'           Punctuation
'\n'          Text.Whitespace

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

'    '        Text.Whitespace
'waitingBeautifierStack' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'activeBeautifierStack' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'waitingBeautifierStackLengthStack' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'activeBeautifierStackLengthStack' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'headerStack' Name
'  '          Text.Whitespace
'='           Operator
' '           Text.Whitespace
'new'         Keyword
' '           Text.Whitespace
'vector'      Name
'<'           Operator
'const'       Keyword
' '           Text.Whitespace
'string'      Name
'*'           Operator
'>'           Operator
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'*'           Operator
'headerStack' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'*'           Operator
'other'       Name
'.'           Punctuation
'headerStack' Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'tempStacks'  Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'new'         Keyword
' '           Text.Whitespace
'vector'      Name
'<'           Operator
' '           Text.Whitespace
'vector'      Name
'<'           Operator
'const'       Keyword
' '           Text.Whitespace
'string'      Name
'*'           Operator
'>'           Operator
'*'           Operator
' '           Text.Whitespace
'>'           Operator
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'vector'      Name
'<'           Operator
' '           Text.Whitespace
'vector'      Name
'<'           Operator
'const'       Keyword
' '           Text.Whitespace
'string'      Name
'*'           Operator
'>'           Operator
'*'           Operator
' '           Text.Whitespace
'>'           Operator
':'           Operator
':'           Operator
'iterator'    Name
' '           Text.Whitespace
'iter'        Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'for'         Keyword
' '           Text.Whitespace
'('           Punctuation
'iter'        Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'other'       Name
'.'           Punctuation
'tempStacks'  Name
'-'           Operator
'>'           Operator
'begin'       Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'         '   Text.Whitespace
'iter'        Name
' '           Text.Whitespace
'!'           Operator
'='           Operator
' '           Text.Whitespace
'other'       Name
'.'           Punctuation
'tempStacks'  Name
'-'           Operator
'>'           Operator
'end'         Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'         '   Text.Whitespace
'+'           Operator
'+'           Operator
'iter'        Name
')'           Punctuation
'\n'          Text.Whitespace

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

'        '    Text.Whitespace
'vector'      Name
'<'           Operator
'const'       Keyword
' '           Text.Whitespace
'string'      Name
'*'           Operator
'>'           Operator
' '           Text.Whitespace
'*'           Operator
'newVec'      Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'new'         Keyword
' '           Text.Whitespace
'vector'      Name
'<'           Operator
'const'       Keyword
' '           Text.Whitespace
'string'      Name
'*'           Operator
'>'           Operator
';'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'*'           Operator
'newVec'      Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'*'           Operator
'*'           Operator
'iter'        Name
';'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'tempStacks'  Name
'-'           Operator
'>'           Operator
'push_back'   Name
'('           Punctuation
'newVec'      Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

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

'    '        Text.Whitespace
'blockParenDepthStack' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'new'         Keyword
' '           Text.Whitespace
'vector'      Name
'<'           Operator
'int'         Keyword.Type
'>'           Operator
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'*'           Operator
'blockParenDepthStack' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'*'           Operator
'other'       Name
'.'           Punctuation
'blockParenDepthStack' Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'blockStatementStack' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'new'         Keyword
' '           Text.Whitespace
'vector'      Name
'<'           Operator
'bool'        Keyword.Type
'>'           Operator
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'*'           Operator
'blockStatementStack' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'*'           Operator
'other'       Name
'.'           Punctuation
'blockStatementStack' Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'parenStatementStack' Name
' '           Text.Whitespace
'='           Operator
'  '          Text.Whitespace
'new'         Keyword
' '           Text.Whitespace
'vector'      Name
'<'           Operator
'bool'        Keyword.Type
'>'           Operator
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'*'           Operator
'parenStatementStack' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'*'           Operator
'other'       Name
'.'           Punctuation
'parenStatementStack' Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'bracketBlockStateStack' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'new'         Keyword
' '           Text.Whitespace
'vector'      Name
'<'           Operator
'bool'        Keyword.Type
'>'           Operator
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'*'           Operator
'bracketBlockStateStack' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'*'           Operator
'other'       Name
'.'           Punctuation
'bracketBlockStateStack' Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'inStatementIndentStack' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'new'         Keyword
' '           Text.Whitespace
'vector'      Name
'<'           Operator
'int'         Keyword.Type
'>'           Operator
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'*'           Operator
'inStatementIndentStack' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'*'           Operator
'other'       Name
'.'           Punctuation
'inStatementIndentStack' Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'inStatementIndentStackSizeStack' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'new'         Keyword
' '           Text.Whitespace
'vector'      Name
'<'           Operator
'int'         Keyword.Type
'>'           Operator
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'*'           Operator
'inStatementIndentStackSizeStack' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'*'           Operator
'other'       Name
'.'           Punctuation
'inStatementIndentStackSizeStack' Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'parenIndentStack' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'new'         Keyword
' '           Text.Whitespace
'vector'      Name
'<'           Operator
'int'         Keyword.Type
'>'           Operator
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'*'           Operator
'parenIndentStack' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'*'           Operator
'other'       Name
'.'           Punctuation
'parenIndentStack' Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'sourceIterator' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'other'       Name
'.'           Punctuation
'sourceIterator' Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'indentString' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'other'       Name
'.'           Punctuation
'indentString' Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'currentHeader' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'other'       Name
'.'           Punctuation
'currentHeader' Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'previousLastLineHeader' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'other'       Name
'.'           Punctuation
'previousLastLineHeader' Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'immediatelyPreviousAssignmentOp' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'other'       Name
'.'           Punctuation
'immediatelyPreviousAssignmentOp' Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'isInQuote'   Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'other'       Name
'.'           Punctuation
'isInQuote'   Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'isInComment' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'other'       Name
'.'           Punctuation
'isInComment' Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'isInCase'    Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'other'       Name
'.'           Punctuation
'isInCase'    Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'isInQuestion' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'other'       Name
'.'           Punctuation
'isInQuestion' Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'isInStatement' Name
' '           Text.Whitespace
'='           Operator
'other'       Name
'.'           Punctuation
' '           Text.Whitespace
'isInStatement' Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'isInHeader'  Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'other'       Name
'.'           Punctuation
'isInHeader'  Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'isCStyle'    Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'other'       Name
'.'           Punctuation
'isCStyle'    Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'isInOperator' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'other'       Name
'.'           Punctuation
'isInOperator' Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'isInTemplate' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'other'       Name
'.'           Punctuation
'isInTemplate' Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'isInConst'   Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'other'       Name
'.'           Punctuation
'isInConst'   Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'classIndent' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'other'       Name
'.'           Punctuation
'classIndent' Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'isInClassHeader' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'other'       Name
'.'           Punctuation
'isInClassHeader' Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'isInClassHeaderTab' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'other'       Name
'.'           Punctuation
'isInClassHeaderTab' Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'switchIndent' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'other'       Name
'.'           Punctuation
'switchIndent' Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'caseIndent'  Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'other'       Name
'.'           Punctuation
'caseIndent'  Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'namespaceIndent' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'other'       Name
'.'           Punctuation
'namespaceIndent' Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'bracketIndent' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'other'       Name
'.'           Punctuation
'bracketIndent' Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'blockIndent' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'other'       Name
'.'           Punctuation
'blockIndent' Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'labelIndent' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'other'       Name
'.'           Punctuation
'labelIndent' Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'preprocessorIndent' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'other'       Name
'.'           Punctuation
'preprocessorIndent' Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'parenDepth'  Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'other'       Name
'.'           Punctuation
'parenDepth'  Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'indentLength' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'other'       Name
'.'           Punctuation
'indentLength' Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'blockTabCount' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'other'       Name
'.'           Punctuation
'blockTabCount' Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'leadingWhiteSpaces' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'other'       Name
'.'           Punctuation
'leadingWhiteSpaces' Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'maxInStatementIndent' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'other'       Name
'.'           Punctuation
'maxInStatementIndent' Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'templateDepth' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'other'       Name
'.'           Punctuation
'templateDepth' Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'quoteChar'   Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'other'       Name
'.'           Punctuation
'quoteChar'   Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'prevNonSpaceCh' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'other'       Name
'.'           Punctuation
'prevNonSpaceCh' Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'currentNonSpaceCh' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'other'       Name
'.'           Punctuation
'currentNonSpaceCh' Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'currentNonLegalCh' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'other'       Name
'.'           Punctuation
'currentNonLegalCh' Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'prevNonLegalCh' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'other'       Name
'.'           Punctuation
'prevNonLegalCh' Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'isInConditional' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'other'       Name
'.'           Punctuation
'isInConditional' Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'minConditionalIndent' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'other'       Name
'.'           Punctuation
'minConditionalIndent' Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'prevFinalLineSpaceTabCount' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'other'       Name
'.'           Punctuation
'prevFinalLineSpaceTabCount' Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'prevFinalLineTabCount' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'other'       Name
'.'           Punctuation
'prevFinalLineTabCount' Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'emptyLineFill' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'other'       Name
'.'           Punctuation
'emptyLineFill' Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'probationHeader' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'other'       Name
'.'           Punctuation
'probationHeader' Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'isInDefine'  Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'other'       Name
'.'           Punctuation
'isInDefine'  Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'isInDefineDefinition' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'other'       Name
'.'           Punctuation
'isInDefineDefinition' Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'backslashEndsPrevLine' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'other'       Name
'.'           Punctuation
'backslashEndsPrevLine' Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'defineTabCount' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'other'       Name
'.'           Punctuation
'defineTabCount' Name
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'  '          Text.Whitespace
"/**\n   * ASBeautifier's destructor\n   */" Comment.Multiline
'\n'          Text.Whitespace

'  '          Text.Whitespace
'ASBeautifier' Name
':'           Operator
':'           Operator
'~'           Operator
'ASBeautifier' Name
'('           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

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

'    '        Text.Whitespace
'DELETE_CONTAINER' Name
'('           Punctuation
' '           Text.Whitespace
'headerStack' Name
' '           Text.Whitespace
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'DELETE_CONTAINER' Name
'('           Punctuation
' '           Text.Whitespace
'tempStacks'  Name
' '           Text.Whitespace
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'DELETE_CONTAINER' Name
'('           Punctuation
' '           Text.Whitespace
'blockParenDepthStack' Name
' '           Text.Whitespace
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'DELETE_CONTAINER' Name
'('           Punctuation
' '           Text.Whitespace
'blockStatementStack' Name
' '           Text.Whitespace
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'DELETE_CONTAINER' Name
'('           Punctuation
' '           Text.Whitespace
'parenStatementStack' Name
' '           Text.Whitespace
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'DELETE_CONTAINER' Name
'('           Punctuation
' '           Text.Whitespace
'bracketBlockStateStack' Name
' '           Text.Whitespace
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'DELETE_CONTAINER' Name
'('           Punctuation
' '           Text.Whitespace
'inStatementIndentStack' Name
' '           Text.Whitespace
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'DELETE_CONTAINER' Name
'('           Punctuation
' '           Text.Whitespace
'inStatementIndentStackSizeStack' Name
' '           Text.Whitespace
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'DELETE_CONTAINER' Name
'('           Punctuation
' '           Text.Whitespace
'parenIndentStack' Name
' '           Text.Whitespace
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'// DELETE_CONTAINER( sourceIterator );\n' Comment.Single

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

'\n'          Text.Whitespace

'  '          Text.Whitespace
"/**\n   * initialize the ASBeautifier.\n   *\n   * init() should be called every time a ABeautifier object is to start\n   * beautifying a NEW source file.\n   * init() recieves a pointer to a DYNAMICALLY CREATED ASSourceIterator object\n   * that will be used to iterate through the source code. This object will be\n   * deleted during the ASBeautifier's destruction, and thus should not be\n   * deleted elsewhere.\n   *\n   * @param iter     a pointer to the DYNAMICALLY CREATED ASSourceIterator object.\n   */" Comment.Multiline
'\n'          Text.Whitespace

'  '          Text.Whitespace
'void'        Keyword.Type
' '           Text.Whitespace
'ASBeautifier' Name
':'           Operator
':'           Operator
'init'        Name
'('           Punctuation
'ASSourceIterator' Name
' '           Text.Whitespace
'*'           Operator
'iter'        Name
')'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

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

'    '        Text.Whitespace
'sourceIterator' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'iter'        Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'init'        Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'  '          Text.Whitespace
'/**\n   * initialize the ASBeautifier.\n   */' Comment.Multiline
'\n'          Text.Whitespace

'  '          Text.Whitespace
'void'        Keyword.Type
' '           Text.Whitespace
'ASBeautifier' Name
':'           Operator
':'           Operator
'init'        Name
'('           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

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

'    '        Text.Whitespace
'INIT_CONTAINER' Name
'('           Punctuation
' '           Text.Whitespace
'waitingBeautifierStack' Name
','           Punctuation
'  '          Text.Whitespace
'new'         Keyword
' '           Text.Whitespace
'vector'      Name
'<'           Operator
'ASBeautifier' Name
'*'           Operator
'>'           Operator
' '           Text.Whitespace
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'INIT_CONTAINER' Name
'('           Punctuation
' '           Text.Whitespace
'activeBeautifierStack' Name
','           Punctuation
'  '          Text.Whitespace
'new'         Keyword
' '           Text.Whitespace
'vector'      Name
'<'           Operator
'ASBeautifier' Name
'*'           Operator
'>'           Operator
' '           Text.Whitespace
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'INIT_CONTAINER' Name
'('           Punctuation
' '           Text.Whitespace
'waitingBeautifierStackLengthStack' Name
','           Punctuation
' '           Text.Whitespace
'new'         Keyword
' '           Text.Whitespace
'vector'      Name
'<'           Operator
'int'         Keyword.Type
'>'           Operator
' '           Text.Whitespace
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'INIT_CONTAINER' Name
'('           Punctuation
' '           Text.Whitespace
'activeBeautifierStackLengthStack' Name
','           Punctuation
' '           Text.Whitespace
'new'         Keyword
' '           Text.Whitespace
'vector'      Name
'<'           Operator
'int'         Keyword.Type
'>'           Operator
' '           Text.Whitespace
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'INIT_CONTAINER' Name
'('           Punctuation
' '           Text.Whitespace
'headerStack' Name
','           Punctuation
'  '          Text.Whitespace
'new'         Keyword
' '           Text.Whitespace
'vector'      Name
'<'           Operator
'const'       Keyword
' '           Text.Whitespace
'string'      Name
'*'           Operator
'>'           Operator
' '           Text.Whitespace
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'INIT_CONTAINER' Name
'('           Punctuation
' '           Text.Whitespace
'tempStacks'  Name
','           Punctuation
' '           Text.Whitespace
'new'         Keyword
' '           Text.Whitespace
'vector'      Name
'<'           Operator
' '           Text.Whitespace
'vector'      Name
'<'           Operator
'const'       Keyword
' '           Text.Whitespace
'string'      Name
'*'           Operator
'>'           Operator
'*'           Operator
' '           Text.Whitespace
'>'           Operator
' '           Text.Whitespace
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'tempStacks'  Name
'-'           Operator
'>'           Operator
'push_back'   Name
'('           Punctuation
'new'         Keyword
' '           Text.Whitespace
'vector'      Name
'<'           Operator
'const'       Keyword
' '           Text.Whitespace
'string'      Name
'*'           Operator
'>'           Operator
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'INIT_CONTAINER' Name
'('           Punctuation
' '           Text.Whitespace
'blockParenDepthStack' Name
','           Punctuation
' '           Text.Whitespace
'new'         Keyword
' '           Text.Whitespace
'vector'      Name
'<'           Operator
'int'         Keyword.Type
'>'           Operator
' '           Text.Whitespace
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'INIT_CONTAINER' Name
'('           Punctuation
' '           Text.Whitespace
'blockStatementStack' Name
','           Punctuation
' '           Text.Whitespace
'new'         Keyword
' '           Text.Whitespace
'vector'      Name
'<'           Operator
'bool'        Keyword.Type
'>'           Operator
' '           Text.Whitespace
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'INIT_CONTAINER' Name
'('           Punctuation
' '           Text.Whitespace
'parenStatementStack' Name
','           Punctuation
' '           Text.Whitespace
'new'         Keyword
' '           Text.Whitespace
'vector'      Name
'<'           Operator
'bool'        Keyword.Type
'>'           Operator
' '           Text.Whitespace
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'INIT_CONTAINER' Name
'('           Punctuation
' '           Text.Whitespace
'bracketBlockStateStack' Name
','           Punctuation
' '           Text.Whitespace
'new'         Keyword
' '           Text.Whitespace
'vector'      Name
'<'           Operator
'bool'        Keyword.Type
'>'           Operator
' '           Text.Whitespace
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'bracketBlockStateStack' Name
'-'           Operator
'>'           Operator
'push_back'   Name
'('           Punctuation
'true'        Name.Builtin
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'INIT_CONTAINER' Name
'('           Punctuation
' '           Text.Whitespace
'inStatementIndentStack' Name
','           Punctuation
' '           Text.Whitespace
'new'         Keyword
' '           Text.Whitespace
'vector'      Name
'<'           Operator
'int'         Keyword.Type
'>'           Operator
' '           Text.Whitespace
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'INIT_CONTAINER' Name
'('           Punctuation
' '           Text.Whitespace
'inStatementIndentStackSizeStack' Name
','           Punctuation
' '           Text.Whitespace
'new'         Keyword
' '           Text.Whitespace
'vector'      Name
'<'           Operator
'int'         Keyword.Type
'>'           Operator
' '           Text.Whitespace
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'inStatementIndentStackSizeStack' Name
'-'           Operator
'>'           Operator
'push_back'   Name
'('           Punctuation
'0'           Literal.Number.Integer
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'INIT_CONTAINER' Name
'('           Punctuation
' '           Text.Whitespace
'parenIndentStack' Name
','           Punctuation
' '           Text.Whitespace
'new'         Keyword
' '           Text.Whitespace
'vector'      Name
'<'           Operator
'int'         Keyword.Type
'>'           Operator
' '           Text.Whitespace
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'immediatelyPreviousAssignmentOp' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'previousLastLineHeader' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'isInQuote'   Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'false'       Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'isInComment' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'false'       Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'isInStatement' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'false'       Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'isInCase'    Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'false'       Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'isInQuestion' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'false'       Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'isInClassHeader' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'false'       Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'isInClassHeaderTab' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'false'       Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'isInHeader'  Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'false'       Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'isInOperator' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'false'       Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'isInTemplate' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'false'       Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'isInConst'   Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'false'       Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'isInConditional' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'false'       Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'templateDepth' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'parenDepth'  Name
'='           Operator
'0'           Literal.Number.Integer
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'blockTabCount' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'leadingWhiteSpaces' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'prevNonSpaceCh' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
'{'           Literal.String.Char
"'"           Literal.String.Char
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'currentNonSpaceCh' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
'{'           Literal.String.Char
"'"           Literal.String.Char
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'prevNonLegalCh' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
'{'           Literal.String.Char
"'"           Literal.String.Char
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'currentNonLegalCh' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
'{'           Literal.String.Char
"'"           Literal.String.Char
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'prevFinalLineSpaceTabCount' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'prevFinalLineTabCount' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'probationHeader' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'backslashEndsPrevLine' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'false'       Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'isInDefine'  Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'false'       Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'isInDefineDefinition' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'false'       Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'defineTabCount' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'  '          Text.Whitespace
'/**\n   * set indentation style to ANSI C/C++.  \n   */' Comment.Multiline
'\n'          Text.Whitespace

'  '          Text.Whitespace
'void'        Keyword.Type
' '           Text.Whitespace
'ASBeautifier' Name
':'           Operator
':'           Operator
'setCStyle'   Name
'('           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

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

'    '        Text.Whitespace
'isCStyle'    Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'true'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'  '          Text.Whitespace
'/**\n   * set indentation style to Java / K&R.  \n   */' Comment.Multiline
'\n'          Text.Whitespace

'  '          Text.Whitespace
'void'        Keyword.Type
' '           Text.Whitespace
'ASBeautifier' Name
':'           Operator
':'           Operator
'setJavaStyle' Name
'('           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

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

'    '        Text.Whitespace
'isCStyle'    Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'false'       Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'  '          Text.Whitespace
'/**\n   * indent using one tab per indentation\n   */' Comment.Multiline
'\n'          Text.Whitespace

'  '          Text.Whitespace
'void'        Keyword.Type
' '           Text.Whitespace
'ASBeautifier' Name
':'           Operator
':'           Operator
'setTabIndentation' Name
'('           Punctuation
'int'         Keyword.Type
' '           Text.Whitespace
'length'      Name
','           Punctuation
' '           Text.Whitespace
'bool'        Keyword.Type
' '           Text.Whitespace
'forceTabs'   Name
')'           Punctuation
'\n'          Text.Whitespace

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

'    '        Text.Whitespace
'indentString' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'"'           Literal.String
'\\t'         Literal.String.Escape
'"'           Literal.String
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'indentLength' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'length'      Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'shouldForceTabIndentation' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'forceTabs'   Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'isMinimalConditinalIndentSet' Name
')'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'minConditionalIndent' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'indentLength' Name
' '           Text.Whitespace
'*'           Operator
' '           Text.Whitespace
'2'           Literal.Number.Integer
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'  '          Text.Whitespace
'/**\n   \n   * indent using a number of spaces per indentation.\n   *\n   * @param   length     number of spaces per indent.\n   */' Comment.Multiline
'\n'          Text.Whitespace

'  '          Text.Whitespace
'void'        Keyword.Type
' '           Text.Whitespace
'ASBeautifier' Name
':'           Operator
':'           Operator
'setSpaceIndentation' Name
'('           Punctuation
'int'         Keyword.Type
' '           Text.Whitespace
'length'      Name
')'           Punctuation
'\n'          Text.Whitespace

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

'    '        Text.Whitespace
'indentString' Name
'='           Operator
'string'      Name
'('           Punctuation
'length'      Name
','           Punctuation
' '           Text.Whitespace
"'"           Literal.String.Char
' '           Literal.String.Char
"'"           Literal.String.Char
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'indentLength' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'length'      Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'isMinimalConditinalIndentSet' Name
')'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'minConditionalIndent' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'indentLength' Name
' '           Text.Whitespace
'*'           Operator
' '           Text.Whitespace
'2'           Literal.Number.Integer
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'  '          Text.Whitespace
'/**\n   * set the maximum indentation between two lines in a multi-line statement.\n   *\n   * @param   max     maximum indentation length.\n   */' Comment.Multiline
'\n'          Text.Whitespace

'  '          Text.Whitespace
'void'        Keyword.Type
' '           Text.Whitespace
'ASBeautifier' Name
':'           Operator
':'           Operator
'setMaxInStatementIndentLength' Name
'('           Punctuation
'int'         Keyword.Type
' '           Text.Whitespace
'max'         Name
')'           Punctuation
'\n'          Text.Whitespace

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

'    '        Text.Whitespace
'maxInStatementIndent' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'max'         Name
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'  '          Text.Whitespace
'/**\n   * set the minimum indentation between two lines in a multi-line condition.\n   *\n   * @param   min     minimal indentation length.\n   */' Comment.Multiline
'\n'          Text.Whitespace

'  '          Text.Whitespace
'void'        Keyword.Type
' '           Text.Whitespace
'ASBeautifier' Name
':'           Operator
':'           Operator
'setMinConditionalIndentLength' Name
'('           Punctuation
'int'         Keyword.Type
' '           Text.Whitespace
'min'         Name
')'           Punctuation
'\n'          Text.Whitespace

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

'    '        Text.Whitespace
'minConditionalIndent' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'min'         Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'isMinimalConditinalIndentSet' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'true'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'  '          Text.Whitespace
'/**\n   * set the state of the bracket indentation option. If true, brackets will \n   * be indented one additional indent.\n   *\n   * @param   state             state of option.\n   */' Comment.Multiline
'\n'          Text.Whitespace

'  '          Text.Whitespace
'void'        Keyword.Type
' '           Text.Whitespace
'ASBeautifier' Name
':'           Operator
':'           Operator
'setBracketIndent' Name
'('           Punctuation
'bool'        Keyword.Type
' '           Text.Whitespace
'state'       Name
')'           Punctuation
'\n'          Text.Whitespace

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

'    '        Text.Whitespace
'bracketIndent' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'state'       Name
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'  '          Text.Whitespace
'/**\n   * set the state of the block indentation option. If true, entire blocks \n   * will be indented one additional indent, similar to the GNU indent style.\n   *\n   * @param   state             state of option.\n   */' Comment.Multiline
'\n'          Text.Whitespace

'  '          Text.Whitespace
'void'        Keyword.Type
' '           Text.Whitespace
'ASBeautifier' Name
':'           Operator
':'           Operator
'setBlockIndent' Name
'('           Punctuation
'bool'        Keyword.Type
' '           Text.Whitespace
'state'       Name
')'           Punctuation
'\n'          Text.Whitespace

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

'    '        Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'state'       Name
')'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'setBracketIndent' Name
'('           Punctuation
'false'       Name.Builtin
')'           Punctuation
';'           Punctuation
' '           Text.Whitespace
"// so that we don't have both bracket and block indent\n" Comment.Single

'    '        Text.Whitespace
'blockIndent' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'state'       Name
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'  '          Text.Whitespace
'/**\n   * set the state of the class indentation option. If true, C++ class\n   * definitions will be indented one additional indent.\n   *\n   * @param   state             state of option.\n   */' Comment.Multiline
'\n'          Text.Whitespace

'  '          Text.Whitespace
'void'        Keyword.Type
' '           Text.Whitespace
'ASBeautifier' Name
':'           Operator
':'           Operator
'setClassIndent' Name
'('           Punctuation
'bool'        Keyword.Type
' '           Text.Whitespace
'state'       Name
')'           Punctuation
'\n'          Text.Whitespace

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

'    '        Text.Whitespace
'classIndent' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'state'       Name
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'  '          Text.Whitespace
"/**\n   * set the state of the switch indentation option. If true, blocks of 'switch' \n   * statements will be indented one additional indent.\n   *\n   * @param   state             state of option.\n   */" Comment.Multiline
'\n'          Text.Whitespace

'  '          Text.Whitespace
'void'        Keyword.Type
' '           Text.Whitespace
'ASBeautifier' Name
':'           Operator
':'           Operator
'setSwitchIndent' Name
'('           Punctuation
'bool'        Keyword.Type
' '           Text.Whitespace
'state'       Name
')'           Punctuation
'\n'          Text.Whitespace

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

'    '        Text.Whitespace
'switchIndent' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'state'       Name
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'  '          Text.Whitespace
"/**\n   * set the state of the case indentation option. If true, lines of 'case' \n   * statements will be indented one additional indent.\n   *\n   * @param   state             state of option.\n   */" Comment.Multiline
'\n'          Text.Whitespace

'  '          Text.Whitespace
'void'        Keyword.Type
' '           Text.Whitespace
'ASBeautifier' Name
':'           Operator
':'           Operator
'setCaseIndent' Name
'('           Punctuation
'bool'        Keyword.Type
' '           Text.Whitespace
'state'       Name
')'           Punctuation
'\n'          Text.Whitespace

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

'    '        Text.Whitespace
'caseIndent'  Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'state'       Name
';'           Punctuation
'\n'          Text.Whitespace

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

'  '          Text.Whitespace
"/**\n   * set the state of the namespace indentation option. \n   * If true, blocks of 'namespace' statements will be indented one \n   * additional indent. Otherwise, NO indentation will be added.\n   *\n   * @param   state             state of option.\n   */" Comment.Multiline
'\n'          Text.Whitespace

'  '          Text.Whitespace
'void'        Keyword.Type
' '           Text.Whitespace
'ASBeautifier' Name
':'           Operator
':'           Operator
'setNamespaceIndent' Name
'('           Punctuation
'bool'        Keyword.Type
' '           Text.Whitespace
'state'       Name
')'           Punctuation
'\n'          Text.Whitespace

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

'    '        Text.Whitespace
'namespaceIndent' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'state'       Name
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'  '          Text.Whitespace
'/**\n   * set the state of the label indentation option. \n   * If true, labels will be indented one indent LESS than the\n   * current indentation level.\n   * If false, labels will be flushed to the left with NO\n   * indent at all.\n   *\n   * @param   state             state of option.\n   */' Comment.Multiline
'\n'          Text.Whitespace

'  '          Text.Whitespace
'void'        Keyword.Type
' '           Text.Whitespace
'ASBeautifier' Name
':'           Operator
':'           Operator
'setLabelIndent' Name
'('           Punctuation
'bool'        Keyword.Type
' '           Text.Whitespace
'state'       Name
')'           Punctuation
'\n'          Text.Whitespace

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

'    '        Text.Whitespace
'labelIndent' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'state'       Name
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'  '          Text.Whitespace
'/**\n   * set the state of the preprocessor indentation option. \n   * If true, multiline #define statements will be indented.\n   *\n   * @param   state             state of option.\n   */' Comment.Multiline
'\n'          Text.Whitespace

'  '          Text.Whitespace
'void'        Keyword.Type
' '           Text.Whitespace
'ASBeautifier' Name
':'           Operator
':'           Operator
'setPreprocessorIndent' Name
'('           Punctuation
'bool'        Keyword.Type
' '           Text.Whitespace
'state'       Name
')'           Punctuation
'\n'          Text.Whitespace

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

'    '        Text.Whitespace
'preprocessorIndent' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'state'       Name
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'  '          Text.Whitespace
'/**\n   * set the state of the empty line fill option. \n   * If true, empty lines will be filled with the whitespace.\n   * of their previous lines.\n   * If false, these lines will remain empty.\n   *\n   * @param   state             state of option.\n   */' Comment.Multiline
'\n'          Text.Whitespace

'  '          Text.Whitespace
'void'        Keyword.Type
' '           Text.Whitespace
'ASBeautifier' Name
':'           Operator
':'           Operator
'setEmptyLineFill' Name
'('           Punctuation
'bool'        Keyword.Type
' '           Text.Whitespace
'state'       Name
')'           Punctuation
'\n'          Text.Whitespace

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

'    '        Text.Whitespace
'emptyLineFill' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'state'       Name
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'  '          Text.Whitespace
'/**\n   * check if there are any indented lines ready to be read by nextLine()\n   *\n   * @return    are there any indented lines ready?\n   */' Comment.Multiline
'\n'          Text.Whitespace

'  '          Text.Whitespace
'bool'        Keyword.Type
' '           Text.Whitespace
'ASBeautifier' Name
':'           Operator
':'           Operator
'hasMoreLines' Name
'('           Punctuation
')'           Punctuation
' '           Text.Whitespace
'const'       Keyword
'\n'          Text.Whitespace

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

'      '      Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'sourceIterator' Name
'-'           Operator
'>'           Operator
'hasMoreLines' Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'  '          Text.Whitespace
'/**\n   * get the next indented line.\n   *\n   * @return    indented line.\n   */' Comment.Multiline
'\n'          Text.Whitespace

'  '          Text.Whitespace
'string'      Name
' '           Text.Whitespace
'ASBeautifier' Name
':'           Operator
':'           Operator
'nextLine'    Name
'('           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

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

'    '        Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'beautify'    Name
'('           Punctuation
'sourceIterator' Name
'-'           Operator
'>'           Operator
'nextLine'    Name
'('           Punctuation
')'           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'  '          Text.Whitespace
'/**\n   * beautify a line of source code.\n   * every line of source code in a source code file should be sent\n   * one after the other to the beautify method.\n   *\n   * @return      the indented line.\n   * @param originalLine       the original unindented line.\n   */' Comment.Multiline
'\n'          Text.Whitespace

'  '          Text.Whitespace
'string'      Name
' '           Text.Whitespace
'ASBeautifier' Name
':'           Operator
':'           Operator
'beautify'    Name
'('           Punctuation
'const'       Keyword
' '           Text.Whitespace
'string'      Name
' '           Text.Whitespace
'&'           Operator
'originalLine' Name
')'           Punctuation
'\n'          Text.Whitespace

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

'    '        Text.Whitespace
'string'      Name
' '           Text.Whitespace
'line'        Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'bool'        Keyword.Type
' '           Text.Whitespace
'isInLineComment' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'false'       Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'bool'        Keyword.Type
' '           Text.Whitespace
'lineStartsInComment' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'false'       Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'bool'        Keyword.Type
' '           Text.Whitespace
'isInClass'   Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'false'       Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'bool'        Keyword.Type
' '           Text.Whitespace
'isInSwitch'  Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'false'       Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'bool'        Keyword.Type
' '           Text.Whitespace
'isImmediatelyAfterConst' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'false'       Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'bool'        Keyword.Type
' '           Text.Whitespace
'isSpecialChar' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'false'       Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'char'        Keyword.Type
' '           Text.Whitespace
'ch'          Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
' '           Literal.String.Char
"'"           Literal.String.Char
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'char'        Keyword.Type
' '           Text.Whitespace
'prevCh'      Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'string'      Name
' '           Text.Whitespace
'outBuffer'   Name
';'           Punctuation
' '           Text.Whitespace
'// the newly idented line is bufferd here\n' Comment.Single

'    '        Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'tabCount'    Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'const'       Keyword
' '           Text.Whitespace
'string'      Name
' '           Text.Whitespace
'*'           Operator
'lastLineHeader' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'bool'        Keyword.Type
' '           Text.Whitespace
'closingBracketReached' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'false'       Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'spaceTabCount' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'char'        Keyword.Type
' '           Text.Whitespace
'tempCh'      Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'unsigned'    Keyword.Type
' '           Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'headerStackSize' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'headerStack' Name
'-'           Operator
'>'           Operator
'size'        Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'//bool isLineInStatement = isInStatement;\n' Comment.Single

'    '        Text.Whitespace
'bool'        Keyword.Type
' '           Text.Whitespace
'shouldIndentBrackettedLine' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'true'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'lineOpeningBlocksNum' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'lineClosingBlocksNum' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'bool'        Keyword.Type
' '           Text.Whitespace
'previousLineProbation' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'('           Punctuation
'probationHeader' Name
' '           Text.Whitespace
'!'           Operator
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'unsigned'    Keyword.Type
' '           Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'i'           Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'currentHeader' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'lineStartsInComment' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'isInComment' Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'// handle and remove white spaces around the line:\n' Comment.Single

'    '        Text.Whitespace
'// If not in comment, first find out size of white space before line,\n' Comment.Single

'    '        Text.Whitespace
'// so that possible comments starting in the line continue in\n' Comment.Single

'    '        Text.Whitespace
'// relation to the preliminary white-space.\n' Comment.Single

'    '        Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'isInComment' Name
')'           Punctuation
'\n'          Text.Whitespace

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

'        '    Text.Whitespace
'leadingWhiteSpaces' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
';'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'while'       Keyword
' '           Text.Whitespace
'('           Punctuation
'leadingWhiteSpaces' Name
'<'           Operator
'originalLine' Name
'.'           Punctuation
'length'      Name
'('           Punctuation
')'           Punctuation
' '           Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'originalLine' Name
'['           Punctuation
'leadingWhiteSpaces' Name
']'           Punctuation
' '           Text.Whitespace
'<'           Operator
'='           Operator
' '           Text.Whitespace
'0x20'        Literal.Number.Hex
')'           Punctuation
'\n'          Text.Whitespace

'          '  Text.Whitespace
'leadingWhiteSpaces' Name
'+'           Operator
'+'           Operator
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'        '    Text.Whitespace
'line'        Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'trim'        Name
'('           Punctuation
'originalLine' Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

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

'    '        Text.Whitespace
'else'        Keyword
'\n'          Text.Whitespace

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

'        '    Text.Whitespace
'unsigned'    Keyword.Type
' '           Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'trimSize'    Name
';'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'for'         Keyword
' '           Text.Whitespace
'('           Punctuation
'trimSize'    Name
'='           Operator
'0'           Literal.Number.Integer
';'           Punctuation
'\n'          Text.Whitespace

'             ' Text.Whitespace
'trimSize'    Name
' '           Text.Whitespace
'<'           Operator
' '           Text.Whitespace
'originalLine' Name
'.'           Punctuation
'length'      Name
'('           Punctuation
')'           Punctuation
' '           Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'trimSize'    Name
'<'           Operator
'leadingWhiteSpaces' Name
' '           Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'originalLine' Name
'['           Punctuation
'trimSize'    Name
']'           Punctuation
' '           Text.Whitespace
'<'           Operator
'='           Operator
' '           Text.Whitespace
'0x20'        Literal.Number.Hex
' '           Text.Whitespace
';'           Punctuation
'\n'          Text.Whitespace

'             ' Text.Whitespace
'trimSize'    Name
'+'           Operator
'+'           Operator
')'           Punctuation
'\n'          Text.Whitespace

'          '  Text.Whitespace
';'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'line'        Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'originalLine' Name
'.'           Punctuation
'substr'      Name
'('           Punctuation
'trimSize'    Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'line'        Name
'.'           Punctuation
'length'      Name
'('           Punctuation
')'           Punctuation
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
'\n'          Text.Whitespace

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

'        '    Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'emptyLineFill' Name
')'           Punctuation
'\n'          Text.Whitespace

'          '  Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'preLineWS'   Name
'('           Punctuation
'prevFinalLineSpaceTabCount' Name
','           Punctuation
' '           Text.Whitespace
'prevFinalLineTabCount' Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'else'        Keyword
'\n'          Text.Whitespace

'          '  Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'line'        Name
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'    '        Text.Whitespace
'// handle preprocessor commands\n' Comment.Single

'\n'          Text.Whitespace

'    '        Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'isCStyle'    Name
' '           Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'!'           Operator
'isInComment' Name
' '           Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'('           Punctuation
'line'        Name
'['           Punctuation
'0'           Literal.Number.Integer
']'           Punctuation
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
'#'           Literal.String.Char
"'"           Literal.String.Char
' '           Text.Whitespace
'|'           Operator
'|'           Operator
' '           Text.Whitespace
'backslashEndsPrevLine' Name
')'           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

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

'        '    Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'line'        Name
'['           Punctuation
'0'           Literal.Number.Integer
']'           Punctuation
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
'#'           Literal.String.Char
"'"           Literal.String.Char
')'           Punctuation
'\n'          Text.Whitespace

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

'            ' Text.Whitespace
'string'      Name
' '           Text.Whitespace
'preproc'     Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'trim'        Name
'('           Punctuation
'string'      Name
'('           Punctuation
'line'        Name
'.'           Punctuation
'c_str'       Name
'('           Punctuation
')'           Punctuation
' '           Text.Whitespace
'+'           Operator
' '           Text.Whitespace
'1'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'\n'          Text.Whitespace

'            ' Text.Whitespace
'// When finding a multi-lined #define statement, the original beautifier\n' Comment.Single

'            ' Text.Whitespace
'// 1. sets its isInDefineDefinition flag\n' Comment.Single

'            ' Text.Whitespace
'// 2. clones a new beautifier that will be used for the actual indentation\n' Comment.Single

'            ' Text.Whitespace
'//    of the #define. This clone is put into the activeBeautifierStack in order\n' Comment.Single

'            ' Text.Whitespace
'//    to be called for the actual indentation.\n' Comment.Single

'            ' Text.Whitespace
'// The original beautifier will have isInDefineDefinition = true, isInDefine = false\n' Comment.Single

'            ' Text.Whitespace
'// The cloned beautifier will have   isInDefineDefinition = true, isInDefine = true\n' Comment.Single

'            ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'preprocessorIndent' Name
' '           Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'preproc'     Name
'.'           Punctuation
'COMPARE'     Name
'('           Punctuation
'0'           Literal.Number.Integer
','           Punctuation
' '           Text.Whitespace
'6'           Literal.Number.Integer
','           Punctuation
' '           Text.Whitespace
'string'      Name
'('           Punctuation
'"'           Literal.String
'define'      Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
' '           Text.Whitespace
'&'           Operator
'&'           Operator
'  '          Text.Whitespace
'line'        Name
'['           Punctuation
'line'        Name
'.'           Punctuation
'length'      Name
'('           Punctuation
')'           Punctuation
' '           Text.Whitespace
'-'           Operator
' '           Text.Whitespace
'1'           Literal.Number.Integer
']'           Punctuation
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
'\\\\'        Literal.String.Char
"'"           Literal.String.Char
')'           Punctuation
'\n'          Text.Whitespace

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

'                ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'isInDefineDefinition' Name
')'           Punctuation
'\n'          Text.Whitespace

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

'                    ' Text.Whitespace
'ASBeautifier' Name
' '           Text.Whitespace
'*'           Operator
'defineBeautifier' Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'                    ' Text.Whitespace
'// this is the original beautifier\n' Comment.Single

'                    ' Text.Whitespace
'isInDefineDefinition' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'true'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'                    ' Text.Whitespace
'// push a new beautifier into the active stack\n' Comment.Single

'                    ' Text.Whitespace
'// this breautifier will be used for the indentation of this define\n' Comment.Single

'                    ' Text.Whitespace
'defineBeautifier' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'new'         Keyword
' '           Text.Whitespace
'ASBeautifier' Name
'('           Punctuation
'*'           Operator
'this'        Keyword
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'                    ' Text.Whitespace
'//defineBeautifier->init();\n' Comment.Single

'                    ' Text.Whitespace
'//defineBeautifier->isInDefineDefinition = true;\n' Comment.Single

'                    ' Text.Whitespace
'//defineBeautifier->beautify("");\n' Comment.Single

'                    ' Text.Whitespace
'activeBeautifierStack' Name
'-'           Operator
'>'           Operator
'push_back'   Name
'('           Punctuation
'defineBeautifier' Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

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

'                ' Text.Whitespace
'else'        Keyword
'\n'          Text.Whitespace

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

'                    ' Text.Whitespace
'// the is the cloned beautifier that is in charge of indenting the #define.\n' Comment.Single

'                    ' Text.Whitespace
'isInDefine'  Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'true'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

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

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

'            ' Text.Whitespace
'else'        Keyword
' '           Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'preproc'     Name
'.'           Punctuation
'COMPARE'     Name
'('           Punctuation
'0'           Literal.Number.Integer
','           Punctuation
' '           Text.Whitespace
'2'           Literal.Number.Integer
','           Punctuation
' '           Text.Whitespace
'string'      Name
'('           Punctuation
'"'           Literal.String
'if'          Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
'\n'          Text.Whitespace

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

'                ' Text.Whitespace
'// push a new beautifier into the stack\n' Comment.Single

'                ' Text.Whitespace
'waitingBeautifierStackLengthStack' Name
'-'           Operator
'>'           Operator
'push_back'   Name
'('           Punctuation
'waitingBeautifierStack' Name
'-'           Operator
'>'           Operator
'size'        Name
'('           Punctuation
')'           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'                ' Text.Whitespace
'activeBeautifierStackLengthStack' Name
'-'           Operator
'>'           Operator
'push_back'   Name
'('           Punctuation
'activeBeautifierStack' Name
'-'           Operator
'>'           Operator
'size'        Name
'('           Punctuation
')'           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'                ' Text.Whitespace
'waitingBeautifierStack' Name
'-'           Operator
'>'           Operator
'push_back'   Name
'('           Punctuation
'new'         Keyword
' '           Text.Whitespace
'ASBeautifier' Name
'('           Punctuation
'*'           Operator
'this'        Keyword
')'           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

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

'            ' Text.Whitespace
'else'        Keyword
' '           Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'preproc'     Name
'.'           Punctuation
'COMPARE'     Name
'('           Punctuation
'0'           Literal.Number.Integer
','           Punctuation
' '           Text.Whitespace
'4'           Literal.Number.Integer
'/*2*/'       Comment.Multiline
','           Punctuation
' '           Text.Whitespace
'string'      Name
'('           Punctuation
'"'           Literal.String
'else'        Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
'\n'          Text.Whitespace

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

'                ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'waitingBeautifierStack' Name
'-'           Operator
'>'           Operator
'empty'       Name
'('           Punctuation
')'           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

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

'                    ' Text.Whitespace
'// MOVE current waiting beautifier to active stack.\n' Comment.Single

'                    ' Text.Whitespace
'activeBeautifierStack' Name
'-'           Operator
'>'           Operator
'push_back'   Name
'('           Punctuation
'waitingBeautifierStack' Name
'-'           Operator
'>'           Operator
'back'        Name
'('           Punctuation
')'           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'                    ' Text.Whitespace
'waitingBeautifierStack' Name
'-'           Operator
'>'           Operator
'pop_back'    Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

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

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

'            ' Text.Whitespace
'else'        Keyword
' '           Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'preproc'     Name
'.'           Punctuation
'COMPARE'     Name
'('           Punctuation
'0'           Literal.Number.Integer
','           Punctuation
' '           Text.Whitespace
'4'           Literal.Number.Integer
','           Punctuation
' '           Text.Whitespace
'string'      Name
'('           Punctuation
'"'           Literal.String
'elif'        Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
'\n'          Text.Whitespace

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

'                ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'waitingBeautifierStack' Name
'-'           Operator
'>'           Operator
'empty'       Name
'('           Punctuation
')'           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

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

'                    ' Text.Whitespace
'// append a COPY current waiting beautifier to active stack, WITHOUT deleting the original.\n' Comment.Single

'                    ' Text.Whitespace
'activeBeautifierStack' Name
'-'           Operator
'>'           Operator
'push_back'   Name
'('           Punctuation
' '           Text.Whitespace
'new'         Keyword
' '           Text.Whitespace
'ASBeautifier' Name
'('           Punctuation
' '           Text.Whitespace
'*'           Operator
'('           Punctuation
'waitingBeautifierStack' Name
'-'           Operator
'>'           Operator
'back'        Name
'('           Punctuation
')'           Punctuation
')'           Punctuation
' '           Text.Whitespace
')'           Punctuation
' '           Text.Whitespace
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

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

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

'            ' Text.Whitespace
'else'        Keyword
' '           Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'preproc'     Name
'.'           Punctuation
'COMPARE'     Name
'('           Punctuation
'0'           Literal.Number.Integer
','           Punctuation
' '           Text.Whitespace
'5'           Literal.Number.Integer
','           Punctuation
' '           Text.Whitespace
'string'      Name
'('           Punctuation
'"'           Literal.String
'endif'       Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
'\n'          Text.Whitespace

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

'                ' Text.Whitespace
'unsigned'    Keyword.Type
' '           Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'stackLength' Name
';'           Punctuation
'\n'          Text.Whitespace

'                ' Text.Whitespace
'ASBeautifier' Name
' '           Text.Whitespace
'*'           Operator
'beautifier'  Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'                ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'waitingBeautifierStackLengthStack' Name
'-'           Operator
'>'           Operator
'empty'       Name
'('           Punctuation
')'           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

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

'                    ' Text.Whitespace
'stackLength' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'waitingBeautifierStackLengthStack' Name
'-'           Operator
'>'           Operator
'back'        Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'                    ' Text.Whitespace
'waitingBeautifierStackLengthStack' Name
'-'           Operator
'>'           Operator
'pop_back'    Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'                    ' Text.Whitespace
'while'       Keyword
' '           Text.Whitespace
'('           Punctuation
'waitingBeautifierStack' Name
'-'           Operator
'>'           Operator
'size'        Name
'('           Punctuation
')'           Punctuation
' '           Text.Whitespace
'>'           Operator
' '           Text.Whitespace
'stackLength' Name
')'           Punctuation
'\n'          Text.Whitespace

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

'                        ' Text.Whitespace
'beautifier'  Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'waitingBeautifierStack' Name
'-'           Operator
'>'           Operator
'back'        Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'                        ' Text.Whitespace
'waitingBeautifierStack' Name
'-'           Operator
'>'           Operator
'pop_back'    Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'                        ' Text.Whitespace
'delete'      Keyword
' '           Text.Whitespace
'beautifier'  Name
';'           Punctuation
'\n'          Text.Whitespace

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

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

'\n'          Text.Whitespace

'                ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'activeBeautifierStackLengthStack' Name
'-'           Operator
'>'           Operator
'empty'       Name
'('           Punctuation
')'           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

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

'                    ' Text.Whitespace
'stackLength' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'activeBeautifierStackLengthStack' Name
'-'           Operator
'>'           Operator
'back'        Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'                    ' Text.Whitespace
'activeBeautifierStackLengthStack' Name
'-'           Operator
'>'           Operator
'pop_back'    Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'                    ' Text.Whitespace
'while'       Keyword
' '           Text.Whitespace
'('           Punctuation
'activeBeautifierStack' Name
'-'           Operator
'>'           Operator
'size'        Name
'('           Punctuation
')'           Punctuation
' '           Text.Whitespace
'>'           Operator
' '           Text.Whitespace
'stackLength' Name
')'           Punctuation
'\n'          Text.Whitespace

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

'                        ' Text.Whitespace
'beautifier'  Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'activeBeautifierStack' Name
'-'           Operator
'>'           Operator
'back'        Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'                        ' Text.Whitespace
'activeBeautifierStack' Name
'-'           Operator
'>'           Operator
'pop_back'    Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'                        ' Text.Whitespace
'delete'      Keyword
' '           Text.Whitespace
'beautifier'  Name
';'           Punctuation
'\n'          Text.Whitespace

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

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

'\n'          Text.Whitespace

'\n'          Text.Whitespace

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

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

'\n'          Text.Whitespace

'        '    Text.Whitespace
'// check if the last char is a backslash\n' Comment.Single

'        '    Text.Whitespace
'if'          Keyword
'('           Punctuation
'line'        Name
'.'           Punctuation
'length'      Name
'('           Punctuation
')'           Punctuation
' '           Text.Whitespace
'>'           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
'\n'          Text.Whitespace

'          '  Text.Whitespace
'backslashEndsPrevLine' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'('           Punctuation
'line'        Name
'['           Punctuation
'line'        Name
'.'           Punctuation
'length'      Name
'('           Punctuation
')'           Punctuation
' '           Text.Whitespace
'-'           Operator
' '           Text.Whitespace
'1'           Literal.Number.Integer
']'           Punctuation
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
'\\\\'        Literal.String.Char
"'"           Literal.String.Char
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'else'        Keyword
'\n'          Text.Whitespace

'          '  Text.Whitespace
'backslashEndsPrevLine' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'false'       Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'        '    Text.Whitespace
'// check if this line ends a multi-line #define\n' Comment.Single

'        '    Text.Whitespace
"// if so, use the #define's cloned beautifier for the line's indentation\n" Comment.Single

'        '    Text.Whitespace
'// and then remove it from the active beautifier stack and delete it.\n' Comment.Single

'        '    Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'backslashEndsPrevLine' Name
' '           Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'isInDefineDefinition' Name
' '           Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'!'           Operator
'isInDefine'  Name
')'           Punctuation
'\n'          Text.Whitespace

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

'            ' Text.Whitespace
'string'      Name
' '           Text.Whitespace
'beautifiedLine' Name
';'           Punctuation
'\n'          Text.Whitespace

'            ' Text.Whitespace
'ASBeautifier' Name
' '           Text.Whitespace
'*'           Operator
'defineBeautifier' Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'            ' Text.Whitespace
'isInDefineDefinition' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'false'       Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'            ' Text.Whitespace
'defineBeautifier' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'activeBeautifierStack' Name
'-'           Operator
'>'           Operator
'back'        Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'            ' Text.Whitespace
'activeBeautifierStack' Name
'-'           Operator
'>'           Operator
'pop_back'    Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'            ' Text.Whitespace
'beautifiedLine' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'defineBeautifier' Name
'-'           Operator
'>'           Operator
'beautify'    Name
'('           Punctuation
'line'        Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'            ' Text.Whitespace
'delete'      Keyword
' '           Text.Whitespace
'defineBeautifier' Name
';'           Punctuation
'\n'          Text.Whitespace

'            ' Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'beautifiedLine' Name
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'        '    Text.Whitespace
'// unless this is a multi-line #define, return this precompiler line as is.\n' Comment.Single

'        '    Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'isInDefine'  Name
' '           Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'!'           Operator
'isInDefineDefinition' Name
')'           Punctuation
'\n'          Text.Whitespace

'          '  Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'originalLine' Name
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'    '        Text.Whitespace
'// if there exists any worker beautifier in the activeBeautifierStack,\n' Comment.Single

'    '        Text.Whitespace
'// then use it instead of me to indent the current line.\n' Comment.Single

'    '        Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'isInDefine'  Name
' '           Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'activeBeautifierStack' Name
' '           Text.Whitespace
'!'           Operator
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
' '           Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'!'           Operator
'activeBeautifierStack' Name
'-'           Operator
'>'           Operator
'empty'       Name
'('           Punctuation
')'           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

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

'        '    Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'activeBeautifierStack' Name
'-'           Operator
'>'           Operator
'back'        Name
'('           Punctuation
')'           Punctuation
'-'           Operator
'>'           Operator
'beautify'    Name
'('           Punctuation
'line'        Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'    '        Text.Whitespace
'// calculate preliminary indentation based on data from past lines\n' Comment.Single

'    '        Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'inStatementIndentStack' Name
'-'           Operator
'>'           Operator
'empty'       Name
'('           Punctuation
')'           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'spaceTabCount' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'inStatementIndentStack' Name
'-'           Operator
'>'           Operator
'back'        Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'for'         Keyword
' '           Text.Whitespace
'('           Punctuation
'i'           Name
'='           Operator
'0'           Literal.Number.Integer
';'           Punctuation
' '           Text.Whitespace
'i'           Name
'<'           Operator
'headerStackSize' Name
';'           Punctuation
' '           Text.Whitespace
'i'           Name
'+'           Operator
'+'           Operator
')'           Punctuation
'\n'          Text.Whitespace

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

'        '    Text.Whitespace
'isInClass'   Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'false'       Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'        '    Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'blockIndent' Name
' '           Text.Whitespace
'|'           Operator
'|'           Operator
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'('           Punctuation
'i'           Name
'>'           Operator
'0'           Literal.Number.Integer
' '           Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'('           Punctuation
'*'           Operator
'headerStack' Name
')'           Punctuation
'['           Punctuation
'i'           Name
'-1'          Literal.Number.Integer
']'           Punctuation
' '           Text.Whitespace
'!'           Operator
'='           Operator
' '           Text.Whitespace
'&'           Operator
'AS_OPEN_BRACKET' Name
'\n'          Text.Whitespace

'                              ' Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'('           Punctuation
'*'           Operator
'headerStack' Name
')'           Punctuation
'['           Punctuation
'i'           Name
']'           Punctuation
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'&'           Operator
'AS_OPEN_BRACKET' Name
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

'          '  Text.Whitespace
'+'           Operator
'+'           Operator
'tabCount'    Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'        '    Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'isCStyle'    Name
' '           Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'!'           Operator
'namespaceIndent' Name
' '           Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'i'           Name
' '           Text.Whitespace
'>'           Operator
'='           Operator
' '           Text.Whitespace
'1'           Literal.Number.Integer
'\n'          Text.Whitespace

'            ' Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'('           Punctuation
'*'           Operator
'headerStack' Name
')'           Punctuation
'['           Punctuation
'i'           Name
'-1'          Literal.Number.Integer
']'           Punctuation
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'&'           Operator
'AS_NAMESPACE' Name
'\n'          Text.Whitespace

'            ' Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'('           Punctuation
'*'           Operator
'headerStack' Name
')'           Punctuation
'['           Punctuation
'i'           Name
']'           Punctuation
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'&'           Operator
'AS_OPEN_BRACKET' Name
')'           Punctuation
'\n'          Text.Whitespace

'          '  Text.Whitespace
'-'           Operator
'-'           Operator
'tabCount'    Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'        '    Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'isCStyle'    Name
' '           Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'i'           Name
' '           Text.Whitespace
'>'           Operator
'='           Operator
' '           Text.Whitespace
'1'           Literal.Number.Integer
'\n'          Text.Whitespace

'            ' Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'('           Punctuation
'*'           Operator
'headerStack' Name
')'           Punctuation
'['           Punctuation
'i'           Name
'-1'          Literal.Number.Integer
']'           Punctuation
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'&'           Operator
'AS_CLASS'    Name
'\n'          Text.Whitespace

'            ' Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'('           Punctuation
'*'           Operator
'headerStack' Name
')'           Punctuation
'['           Punctuation
'i'           Name
']'           Punctuation
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'&'           Operator
'AS_OPEN_BRACKET' Name
' '           Text.Whitespace
')'           Punctuation
'\n'          Text.Whitespace

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

'            ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'classIndent' Name
')'           Punctuation
'\n'          Text.Whitespace

'              ' Text.Whitespace
'+'           Operator
'+'           Operator
'tabCount'    Name
';'           Punctuation
'\n'          Text.Whitespace

'            ' Text.Whitespace
'isInClass'   Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'true'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'        '    Text.Whitespace
'// is the switchIndent option is on, indent switch statements an additional indent.\n' Comment.Single

'        '    Text.Whitespace
'else'        Keyword
' '           Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'switchIndent' Name
' '           Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'i'           Name
' '           Text.Whitespace
'>'           Operator
' '           Text.Whitespace
'1'           Literal.Number.Integer
' '           Text.Whitespace
'&'           Operator
'&'           Operator
'\n'          Text.Whitespace

'                 ' Text.Whitespace
'('           Punctuation
'*'           Operator
'headerStack' Name
')'           Punctuation
'['           Punctuation
'i'           Name
'-1'          Literal.Number.Integer
']'           Punctuation
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'&'           Operator
'AS_SWITCH'   Name
' '           Text.Whitespace
'&'           Operator
'&'           Operator
'\n'          Text.Whitespace

'                 ' Text.Whitespace
'('           Punctuation
'*'           Operator
'headerStack' Name
')'           Punctuation
'['           Punctuation
'i'           Name
']'           Punctuation
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'&'           Operator
'AS_OPEN_BRACKET' Name
'\n'          Text.Whitespace

'                ' Text.Whitespace
')'           Punctuation
'\n'          Text.Whitespace

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

'            ' Text.Whitespace
'+'           Operator
'+'           Operator
'tabCount'    Name
';'           Punctuation
'\n'          Text.Whitespace

'            ' Text.Whitespace
'isInSwitch'  Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'true'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'    '        Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'lineStartsInComment' Name
'\n'          Text.Whitespace

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

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

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

'        '    Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'headerStackSize' Name
' '           Text.Whitespace
'>'           Operator
'='           Operator
' '           Text.Whitespace
'2'           Literal.Number.Integer
'\n'          Text.Whitespace

'        '    Text.Whitespace
'&'           Operator
'&'           Operator
'('           Punctuation
'*'           Operator
'headerStack' Name
')'           Punctuation
'['           Punctuation
'headerStackSize' Name
'-2'          Literal.Number.Integer
']'           Punctuation
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'&'           Operator
'AS_CLASS'    Name
'\n'          Text.Whitespace

'        '    Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'('           Punctuation
'*'           Operator
'headerStack' Name
')'           Punctuation
'['           Punctuation
'headerStackSize' Name
'-1'          Literal.Number.Integer
']'           Punctuation
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'&'           Operator
'AS_OPEN_BRACKET' Name
'\n'          Text.Whitespace

'        '    Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'line'        Name
'['           Punctuation
'0'           Literal.Number.Integer
']'           Punctuation
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
'}'           Literal.String.Char
"'"           Literal.String.Char
')'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'-'           Operator
'-'           Operator
'tabCount'    Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'else'        Keyword
' '           Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'lineStartsInComment' Name
'\n'          Text.Whitespace

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

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

'             ' Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'headerStackSize' Name
' '           Text.Whitespace
'>'           Operator
'='           Operator
' '           Text.Whitespace
'2'           Literal.Number.Integer
'\n'          Text.Whitespace

'             ' Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'('           Punctuation
'*'           Operator
'headerStack' Name
')'           Punctuation
'['           Punctuation
'headerStackSize' Name
'-2'          Literal.Number.Integer
']'           Punctuation
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'&'           Operator
'AS_SWITCH'   Name
'\n'          Text.Whitespace

'             ' Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'('           Punctuation
'*'           Operator
'headerStack' Name
')'           Punctuation
'['           Punctuation
'headerStackSize' Name
'-1'          Literal.Number.Integer
']'           Punctuation
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'&'           Operator
'AS_OPEN_BRACKET' Name
'\n'          Text.Whitespace

'             ' Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'line'        Name
'['           Punctuation
'0'           Literal.Number.Integer
']'           Punctuation
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
'}'           Literal.String.Char
"'"           Literal.String.Char
')'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'-'           Operator
'-'           Operator
'tabCount'    Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'isInClassHeader' Name
')'           Punctuation
'\n'          Text.Whitespace

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

'        '    Text.Whitespace
'isInClassHeaderTab' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'true'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'tabCount'    Name
' '           Text.Whitespace
'+'           Operator
'='           Operator
' '           Text.Whitespace
'2'           Literal.Number.Integer
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'    '        Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'isInConditional' Name
')'           Punctuation
'\n'          Text.Whitespace

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

'        '    Text.Whitespace
'-'           Operator
'-'           Operator
'tabCount'    Name
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'// parse characters in the current line.\n' Comment.Single

'\n'          Text.Whitespace

'    '        Text.Whitespace
'for'         Keyword
' '           Text.Whitespace
'('           Punctuation
'i'           Name
'='           Operator
'0'           Literal.Number.Integer
';'           Punctuation
' '           Text.Whitespace
'i'           Name
'<'           Operator
'line'        Name
'.'           Punctuation
'length'      Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
' '           Text.Whitespace
'i'           Name
'+'           Operator
'+'           Operator
')'           Punctuation
'\n'          Text.Whitespace

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

'        '    Text.Whitespace
'tempCh'      Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'line'        Name
'['           Punctuation
'i'           Name
']'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'        '    Text.Whitespace
'prevCh'      Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'ch'          Name
';'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'ch'          Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'tempCh'      Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'        '    Text.Whitespace
'outBuffer'   Name
'.'           Punctuation
'append'      Name
'('           Punctuation
'1'           Literal.Number.Integer
','           Punctuation
' '           Text.Whitespace
'ch'          Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'        '    Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'isWhiteSpace' Name
'('           Punctuation
'ch'          Name
')'           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

'          '  Text.Whitespace
'continue'    Keyword
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'\n'          Text.Whitespace

'        '    Text.Whitespace
'// handle special characters (i.e. backslash+character such as \\n, \\t, ...)\n' Comment.Single

'        '    Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'isSpecialChar' Name
')'           Punctuation
'\n'          Text.Whitespace

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

'            ' Text.Whitespace
'isSpecialChar' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'false'       Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'            ' Text.Whitespace
'continue'    Keyword
';'           Punctuation
'\n'          Text.Whitespace

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

'        '    Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'('           Punctuation
'isInComment' Name
' '           Text.Whitespace
'|'           Operator
'|'           Operator
' '           Text.Whitespace
'isInLineComment' Name
')'           Punctuation
' '           Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'line'        Name
'.'           Punctuation
'COMPARE'     Name
'('           Punctuation
'i'           Name
','           Punctuation
' '           Text.Whitespace
'2'           Literal.Number.Integer
','           Punctuation
' '           Text.Whitespace
'string'      Name
'('           Punctuation
'"'           Literal.String
'\\\\'        Literal.String.Escape
'\\\\'        Literal.String.Escape
'"'           Literal.String
')'           Punctuation
')'           Punctuation
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
'\n'          Text.Whitespace

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

'            ' Text.Whitespace
'outBuffer'   Name
'.'           Punctuation
'append'      Name
'('           Punctuation
'1'           Literal.Number.Integer
','           Punctuation
' '           Text.Whitespace
"'"           Literal.String.Char
'\\\\'        Literal.String.Char
"'"           Literal.String.Char
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'            ' Text.Whitespace
'i'           Name
'+'           Operator
'+'           Operator
';'           Punctuation
'\n'          Text.Whitespace

'            ' Text.Whitespace
'continue'    Keyword
';'           Punctuation
'\n'          Text.Whitespace

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

'        '    Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'('           Punctuation
'isInComment' Name
' '           Text.Whitespace
'|'           Operator
'|'           Operator
' '           Text.Whitespace
'isInLineComment' Name
')'           Punctuation
' '           Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'ch'          Name
'='           Operator
'='           Operator
"'"           Literal.String.Char
'\\\\'        Literal.String.Char
"'"           Literal.String.Char
')'           Punctuation
'\n'          Text.Whitespace

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

'            ' Text.Whitespace
'isSpecialChar' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'true'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'            ' Text.Whitespace
'continue'    Keyword
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'        '    Text.Whitespace
'// handle quotes (such as \'x\' and "Hello Dolly")\n' Comment.Single

'        '    Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'('           Punctuation
'isInComment' Name
' '           Text.Whitespace
'|'           Operator
'|'           Operator
' '           Text.Whitespace
'isInLineComment' Name
')'           Punctuation
' '           Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'('           Punctuation
'ch'          Name
'='           Operator
'='           Operator
"'"           Literal.String.Char
'"'           Literal.String.Char
"'"           Literal.String.Char
' '           Text.Whitespace
'|'           Operator
'|'           Operator
' '           Text.Whitespace
'ch'          Name
'='           Operator
'='           Operator
"'"           Literal.String.Char
"\\'"         Literal.String.Char
"'"           Literal.String.Char
')'           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

'          '  Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'isInQuote'   Name
')'           Punctuation
'\n'          Text.Whitespace

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

'              ' Text.Whitespace
'quoteChar'   Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'ch'          Name
';'           Punctuation
'\n'          Text.Whitespace

'              ' Text.Whitespace
'isInQuote'   Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'true'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

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

'          '  Text.Whitespace
'else'        Keyword
' '           Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'quoteChar'   Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'ch'          Name
')'           Punctuation
'\n'          Text.Whitespace

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

'              ' Text.Whitespace
'isInQuote'   Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'false'       Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'              ' Text.Whitespace
'isInStatement' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'true'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'              ' Text.Whitespace
'continue'    Keyword
';'           Punctuation
'\n'          Text.Whitespace

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

'        '    Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'isInQuote'   Name
')'           Punctuation
'\n'          Text.Whitespace

'          '  Text.Whitespace
'continue'    Keyword
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'        '    Text.Whitespace
'// handle comments\n' Comment.Single

'\n'          Text.Whitespace

'        '    Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
' '           Text.Whitespace
'!'           Operator
'('           Punctuation
'isInComment' Name
' '           Text.Whitespace
'|'           Operator
'|'           Operator
' '           Text.Whitespace
'isInLineComment' Name
')'           Punctuation
' '           Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'line'        Name
'.'           Punctuation
'COMPARE'     Name
'('           Punctuation
'i'           Name
','           Punctuation
' '           Text.Whitespace
'2'           Literal.Number.Integer
','           Punctuation
' '           Text.Whitespace
'AS_OPEN_LINE_COMMENT' Name
')'           Punctuation
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
' '           Text.Whitespace
')'           Punctuation
'\n'          Text.Whitespace

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

'            ' Text.Whitespace
'isInLineComment' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'true'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'            ' Text.Whitespace
'outBuffer'   Name
'.'           Punctuation
'append'      Name
'('           Punctuation
'1'           Literal.Number.Integer
','           Punctuation
' '           Text.Whitespace
"'"           Literal.String.Char
'/'           Literal.String.Char
"'"           Literal.String.Char
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'            ' Text.Whitespace
'i'           Name
'+'           Operator
'+'           Operator
';'           Punctuation
'\n'          Text.Whitespace

'            ' Text.Whitespace
'continue'    Keyword
';'           Punctuation
'\n'          Text.Whitespace

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

'        '    Text.Whitespace
'else'        Keyword
' '           Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
' '           Text.Whitespace
'!'           Operator
'('           Punctuation
'isInComment' Name
' '           Text.Whitespace
'|'           Operator
'|'           Operator
' '           Text.Whitespace
'isInLineComment' Name
')'           Punctuation
' '           Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'line'        Name
'.'           Punctuation
'COMPARE'     Name
'('           Punctuation
'i'           Name
','           Punctuation
' '           Text.Whitespace
'2'           Literal.Number.Integer
','           Punctuation
' '           Text.Whitespace
'AS_OPEN_COMMENT' Name
')'           Punctuation
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
' '           Text.Whitespace
')'           Punctuation
'\n'          Text.Whitespace

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

'            ' Text.Whitespace
'isInComment' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'true'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'            ' Text.Whitespace
'outBuffer'   Name
'.'           Punctuation
'append'      Name
'('           Punctuation
'1'           Literal.Number.Integer
','           Punctuation
' '           Text.Whitespace
"'"           Literal.String.Char
'*'           Literal.String.Char
"'"           Literal.String.Char
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'            ' Text.Whitespace
'i'           Name
'+'           Operator
'+'           Operator
';'           Punctuation
'\n'          Text.Whitespace

'            ' Text.Whitespace
'continue'    Keyword
';'           Punctuation
'\n'          Text.Whitespace

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

'        '    Text.Whitespace
'else'        Keyword
' '           Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
' '           Text.Whitespace
'('           Punctuation
'isInComment' Name
' '           Text.Whitespace
'|'           Operator
'|'           Operator
' '           Text.Whitespace
'isInLineComment' Name
')'           Punctuation
' '           Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'line'        Name
'.'           Punctuation
'COMPARE'     Name
'('           Punctuation
'i'           Name
','           Punctuation
' '           Text.Whitespace
'2'           Literal.Number.Integer
','           Punctuation
' '           Text.Whitespace
'AS_CLOSE_COMMENT' Name
')'           Punctuation
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
' '           Text.Whitespace
')'           Punctuation
'\n'          Text.Whitespace

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

'            ' Text.Whitespace
'isInComment' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'false'       Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'            ' Text.Whitespace
'outBuffer'   Name
'.'           Punctuation
'append'      Name
'('           Punctuation
'1'           Literal.Number.Integer
','           Punctuation
' '           Text.Whitespace
"'"           Literal.String.Char
'/'           Literal.String.Char
"'"           Literal.String.Char
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'            ' Text.Whitespace
'i'           Name
'+'           Operator
'+'           Operator
';'           Punctuation
'\n'          Text.Whitespace

'            ' Text.Whitespace
'continue'    Keyword
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'        '    Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'isInComment' Name
'|'           Operator
'|'           Operator
'isInLineComment' Name
')'           Punctuation
'\n'          Text.Whitespace

'          '  Text.Whitespace
'continue'    Keyword
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'        '    Text.Whitespace
'// if we have reached this far then we are NOT in a comment or string of special character...\n' Comment.Single

'\n'          Text.Whitespace

'        '    Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'probationHeader' Name
' '           Text.Whitespace
'!'           Operator
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
')'           Punctuation
'\n'          Text.Whitespace

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

'            ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'probationHeader' Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'&'           Operator
'AS_STATIC'   Name
' '           Text.Whitespace
'|'           Operator
'|'           Operator
' '           Text.Whitespace
'probationHeader' Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'&'           Operator
'AS_CONST'    Name
')'           Punctuation
' '           Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'ch'          Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
'{'           Literal.String.Char
"'"           Literal.String.Char
')'           Punctuation
'\n'          Text.Whitespace

'                 ' Text.Whitespace
'|'           Operator
'|'           Operator
' '           Text.Whitespace
'('           Punctuation
'probationHeader' Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'&'           Operator
'AS_SYNCHRONIZED' Name
' '           Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'ch'          Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
'('           Literal.String.Char
"'"           Literal.String.Char
')'           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

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

'                ' Text.Whitespace
'// insert the probation header as a new header\n' Comment.Single

'                ' Text.Whitespace
'isInHeader'  Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'true'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'                ' Text.Whitespace
'headerStack' Name
'-'           Operator
'>'           Operator
'push_back'   Name
'('           Punctuation
'probationHeader' Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'                ' Text.Whitespace
'// handle the specific probation header\n' Comment.Single

'                ' Text.Whitespace
'isInConditional' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'('           Punctuation
'probationHeader' Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'&'           Operator
'AS_SYNCHRONIZED' Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'                ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'probationHeader' Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'&'           Operator
'AS_CONST'    Name
')'           Punctuation
'\n'          Text.Whitespace

'                  ' Text.Whitespace
'isImmediatelyAfterConst' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'true'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'                ' Text.Whitespace
'//  isInConst = true;\n' Comment.Single

'                ' Text.Whitespace
'/* TODO:\n                 * There is actually no more need for the global isInConst variable.\n                               * The only reason for checking const is to see if there is a const\n                 * immediately before an open-bracket.\n                 * Since CONST is now put into probation and is checked during itspost-char,\n                 * isImmediatelyAfterConst can be set by its own...\n                 */' Comment.Multiline
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'                ' Text.Whitespace
'isInStatement' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'false'       Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'                ' Text.Whitespace
'// if the probation comes from the previous line, then indent by 1 tab count.\n' Comment.Single

'                ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'previousLineProbation' Name
' '           Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'ch'          Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
'{'           Literal.String.Char
"'"           Literal.String.Char
')'           Punctuation
'\n'          Text.Whitespace

'                  ' Text.Whitespace
'tabCount'    Name
'+'           Operator
'+'           Operator
';'           Punctuation
'\n'          Text.Whitespace

'                ' Text.Whitespace
'previousLineProbation' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'false'       Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'            ' Text.Whitespace
'// dismiss the probation header\n' Comment.Single

'            ' Text.Whitespace
'probationHeader' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'        '    Text.Whitespace
'prevNonSpaceCh' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'currentNonSpaceCh' Name
';'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'currentNonSpaceCh' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'ch'          Name
';'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'isLegalNameChar' Name
'('           Punctuation
'ch'          Name
')'           Punctuation
' '           Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'ch'          Name
' '           Text.Whitespace
'!'           Operator
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
','           Literal.String.Char
"'"           Literal.String.Char
' '           Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'ch'          Name
' '           Text.Whitespace
'!'           Operator
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
';'           Literal.String.Char
"'"           Literal.String.Char
' '           Text.Whitespace
')'           Punctuation
'\n'          Text.Whitespace

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

'            ' Text.Whitespace
'prevNonLegalCh' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'currentNonLegalCh' Name
';'           Punctuation
'\n'          Text.Whitespace

'            ' Text.Whitespace
'currentNonLegalCh' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'ch'          Name
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'        '    Text.Whitespace
'//if (isInConst)\n' Comment.Single

'        '    Text.Whitespace
'//{\n'       Comment.Single

'        '    Text.Whitespace
'//    isInConst = false;\n' Comment.Single

'        '    Text.Whitespace
'//    isImmediatelyAfterConst = true;\n' Comment.Single

'        '    Text.Whitespace
'//}\n'       Comment.Single

'\n'          Text.Whitespace

'        '    Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'isInHeader'  Name
')'           Punctuation
'\n'          Text.Whitespace

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

'            ' Text.Whitespace
'isInHeader'  Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'false'       Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'            ' Text.Whitespace
'currentHeader' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'headerStack' Name
'-'           Operator
'>'           Operator
'back'        Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

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

'        '    Text.Whitespace
'else'        Keyword
'\n'          Text.Whitespace

'          '  Text.Whitespace
'currentHeader' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'        '    Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'isCStyle'    Name
' '           Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'isInTemplate' Name
'\n'          Text.Whitespace

'            ' Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'('           Punctuation
'ch'          Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
'<'           Literal.String.Char
"'"           Literal.String.Char
' '           Text.Whitespace
'|'           Operator
'|'           Operator
' '           Text.Whitespace
'ch'          Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
'>'           Literal.String.Char
"'"           Literal.String.Char
')'           Punctuation
'\n'          Text.Whitespace

'            ' Text.Whitespace
'&'           Operator
'&'           Operator
'  '          Text.Whitespace
'findHeader'  Name
'('           Punctuation
'line'        Name
','           Punctuation
' '           Text.Whitespace
'i'           Name
','           Punctuation
' '           Text.Whitespace
'nonAssignmentOperators' Name
')'           Punctuation
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
')'           Punctuation
' '           Text.Whitespace
'//;\n'       Comment.Single

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

'            ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'ch'          Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
'<'           Literal.String.Char
"'"           Literal.String.Char
')'           Punctuation
'\n'          Text.Whitespace

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

'                ' Text.Whitespace
'+'           Operator
'+'           Operator
'templateDepth' Name
';'           Punctuation
'\n'          Text.Whitespace

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

'            ' Text.Whitespace
'else'        Keyword
' '           Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'ch'          Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
'>'           Literal.String.Char
"'"           Literal.String.Char
')'           Punctuation
'\n'          Text.Whitespace

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

'                ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'-'           Operator
'-'           Operator
'templateDepth' Name
' '           Text.Whitespace
'<'           Operator
'='           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
'\n'          Text.Whitespace

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

'                    ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'isInTemplate' Name
')'           Punctuation
'\n'          Text.Whitespace

'                      ' Text.Whitespace
'ch'          Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
';'           Literal.String.Char
"'"           Literal.String.Char
';'           Punctuation
'\n'          Text.Whitespace

'                    ' Text.Whitespace
'else'        Keyword
'\n'          Text.Whitespace

'                      ' Text.Whitespace
'ch'          Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
't'           Literal.String.Char
"'"           Literal.String.Char
';'           Punctuation
'\n'          Text.Whitespace

'                    ' Text.Whitespace
'isInTemplate' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'false'       Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'                    ' Text.Whitespace
'templateDepth' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

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

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

'\n'          Text.Whitespace

'        '    Text.Whitespace
'// handle parenthesies\n' Comment.Single

'        '    Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'ch'          Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
'('           Literal.String.Char
"'"           Literal.String.Char
' '           Text.Whitespace
'|'           Operator
'|'           Operator
' '           Text.Whitespace
'ch'          Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
'['           Literal.String.Char
"'"           Literal.String.Char
' '           Text.Whitespace
'|'           Operator
'|'           Operator
' '           Text.Whitespace
'ch'          Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
')'           Literal.String.Char
"'"           Literal.String.Char
' '           Text.Whitespace
'|'           Operator
'|'           Operator
' '           Text.Whitespace
'ch'          Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
']'           Literal.String.Char
"'"           Literal.String.Char
')'           Punctuation
'\n'          Text.Whitespace

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

'            ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'ch'          Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
'('           Literal.String.Char
"'"           Literal.String.Char
' '           Text.Whitespace
'|'           Operator
'|'           Operator
' '           Text.Whitespace
'ch'          Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
'['           Literal.String.Char
"'"           Literal.String.Char
')'           Punctuation
'\n'          Text.Whitespace

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

'                ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'parenDepth'  Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
'\n'          Text.Whitespace

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

'                    ' Text.Whitespace
'parenStatementStack' Name
'-'           Operator
'>'           Operator
'push_back'   Name
'('           Punctuation
'isInStatement' Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'                    ' Text.Whitespace
'isInStatement' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'true'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

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

'                ' Text.Whitespace
'parenDepth'  Name
'+'           Operator
'+'           Operator
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'                ' Text.Whitespace
'inStatementIndentStackSizeStack' Name
'-'           Operator
'>'           Operator
'push_back'   Name
'('           Punctuation
'inStatementIndentStack' Name
'-'           Operator
'>'           Operator
'size'        Name
'('           Punctuation
')'           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'                ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'currentHeader' Name
' '           Text.Whitespace
'!'           Operator
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
')'           Punctuation
'\n'          Text.Whitespace

'                  ' Text.Whitespace
'registerInStatementIndent' Name
'('           Punctuation
'line'        Name
','           Punctuation
' '           Text.Whitespace
'i'           Name
','           Punctuation
' '           Text.Whitespace
'spaceTabCount' Name
','           Punctuation
' '           Text.Whitespace
'minConditionalIndent' Name
'/*indentLength*2*/' Comment.Multiline
','           Punctuation
' '           Text.Whitespace
'true'        Name.Builtin
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'                ' Text.Whitespace
'else'        Keyword
'\n'          Text.Whitespace

'                  ' Text.Whitespace
'registerInStatementIndent' Name
'('           Punctuation
'line'        Name
','           Punctuation
' '           Text.Whitespace
'i'           Name
','           Punctuation
' '           Text.Whitespace
'spaceTabCount' Name
','           Punctuation
' '           Text.Whitespace
'0'           Literal.Number.Integer
','           Punctuation
' '           Text.Whitespace
'true'        Name.Builtin
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

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

'            ' Text.Whitespace
'else'        Keyword
' '           Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'ch'          Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
')'           Literal.String.Char
"'"           Literal.String.Char
' '           Text.Whitespace
'|'           Operator
'|'           Operator
' '           Text.Whitespace
'ch'          Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
']'           Literal.String.Char
"'"           Literal.String.Char
')'           Punctuation
'\n'          Text.Whitespace

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

'                ' Text.Whitespace
'parenDepth'  Name
'-'           Operator
'-'           Operator
';'           Punctuation
'\n'          Text.Whitespace

'                ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'parenDepth'  Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
'\n'          Text.Whitespace

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

'                    ' Text.Whitespace
'isInStatement' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'parenStatementStack' Name
'-'           Operator
'>'           Operator
'back'        Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'                    ' Text.Whitespace
'parenStatementStack' Name
'-'           Operator
'>'           Operator
'pop_back'    Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'                    ' Text.Whitespace
'ch'          Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
' '           Literal.String.Char
"'"           Literal.String.Char
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'                    ' Text.Whitespace
'isInConditional' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'false'       Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'                ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'inStatementIndentStackSizeStack' Name
'-'           Operator
'>'           Operator
'empty'       Name
'('           Punctuation
')'           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

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

'                    ' Text.Whitespace
'unsigned'    Keyword.Type
' '           Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'previousIndentStackSize' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'inStatementIndentStackSizeStack' Name
'-'           Operator
'>'           Operator
'back'        Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'                    ' Text.Whitespace
'inStatementIndentStackSizeStack' Name
'-'           Operator
'>'           Operator
'pop_back'    Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'                    ' Text.Whitespace
'while'       Keyword
' '           Text.Whitespace
'('           Punctuation
'previousIndentStackSize' Name
' '           Text.Whitespace
'<'           Operator
' '           Text.Whitespace
'inStatementIndentStack' Name
'-'           Operator
'>'           Operator
'size'        Name
'('           Punctuation
')'           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

'                      ' Text.Whitespace
'inStatementIndentStack' Name
'-'           Operator
'>'           Operator
'pop_back'    Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'                    ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'parenIndentStack' Name
'-'           Operator
'>'           Operator
'empty'       Name
'('           Punctuation
')'           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

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

'                        ' Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'poppedIndent' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'parenIndentStack' Name
'-'           Operator
'>'           Operator
'back'        Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'                        ' Text.Whitespace
'parenIndentStack' Name
'-'           Operator
'>'           Operator
'pop_back'    Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'                        ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'i'           Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
'\n'          Text.Whitespace

'                          ' Text.Whitespace
'spaceTabCount' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'poppedIndent' Name
';'           Punctuation
'\n'          Text.Whitespace

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

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

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

'\n'          Text.Whitespace

'            ' Text.Whitespace
'continue'    Keyword
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'\n'          Text.Whitespace

'        '    Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'ch'          Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
'{'           Literal.String.Char
"'"           Literal.String.Char
')'           Punctuation
'\n'          Text.Whitespace

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

'            ' Text.Whitespace
'bool'        Keyword.Type
' '           Text.Whitespace
'isBlockOpener' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'false'       Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'            ' Text.Whitespace
"// first, check if '{' is a block-opener or an static-array opener\n" Comment.Single

'            ' Text.Whitespace
'isBlockOpener' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'('           Punctuation
' '           Text.Whitespace
'('           Punctuation
'prevNonSpaceCh' Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
'{'           Literal.String.Char
"'"           Literal.String.Char
' '           Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'bracketBlockStateStack' Name
'-'           Operator
'>'           Operator
'back'        Name
'('           Punctuation
')'           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

'                              ' Text.Whitespace
'|'           Operator
'|'           Operator
' '           Text.Whitespace
'prevNonSpaceCh' Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
'}'           Literal.String.Char
"'"           Literal.String.Char
'\n'          Text.Whitespace

'                              ' Text.Whitespace
'|'           Operator
'|'           Operator
' '           Text.Whitespace
'prevNonSpaceCh' Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
')'           Literal.String.Char
"'"           Literal.String.Char
'\n'          Text.Whitespace

'                              ' Text.Whitespace
'|'           Operator
'|'           Operator
' '           Text.Whitespace
'prevNonSpaceCh' Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
';'           Literal.String.Char
"'"           Literal.String.Char
'\n'          Text.Whitespace

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

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

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

'                              ' Text.Whitespace
'|'           Operator
'|'           Operator
' '           Text.Whitespace
'('           Punctuation
'isInDefine'  Name
' '           Text.Whitespace
'&'           Operator
'&'           Operator
'\n'          Text.Whitespace

'                                  ' Text.Whitespace
'('           Punctuation
'prevNonSpaceCh' Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
'('           Literal.String.Char
"'"           Literal.String.Char
'\n'          Text.Whitespace

'                                   ' Text.Whitespace
'|'           Operator
'|'           Operator
' '           Text.Whitespace
'prevNonSpaceCh' Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
'_'           Literal.String.Char
"'"           Literal.String.Char
'\n'          Text.Whitespace

'                                   ' Text.Whitespace
'|'           Operator
'|'           Operator
' '           Text.Whitespace
'isalnum'     Name
'('           Punctuation
'prevNonSpaceCh' Name
')'           Punctuation
')'           Punctuation
')'           Punctuation
' '           Text.Whitespace
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'            ' Text.Whitespace
'isInClassHeader' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'false'       Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'            ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'isBlockOpener' Name
' '           Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'currentHeader' Name
' '           Text.Whitespace
'!'           Operator
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
')'           Punctuation
'\n'          Text.Whitespace

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

'                ' Text.Whitespace
'for'         Keyword
' '           Text.Whitespace
'('           Punctuation
'unsigned'    Keyword.Type
' '           Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'n'           Name
'='           Operator
'0'           Literal.Number.Integer
';'           Punctuation
' '           Text.Whitespace
'n'           Name
' '           Text.Whitespace
'<'           Operator
' '           Text.Whitespace
'nonParenHeaders' Name
'.'           Punctuation
'size'        Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
' '           Text.Whitespace
'n'           Name
'+'           Operator
'+'           Operator
')'           Punctuation
'\n'          Text.Whitespace

'                  ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'currentHeader' Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'nonParenHeaders' Name
'['           Punctuation
'n'           Name
']'           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

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

'                      ' Text.Whitespace
'isBlockOpener' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'true'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'                      ' Text.Whitespace
'break'       Keyword
';'           Punctuation
'\n'          Text.Whitespace

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

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

'            ' Text.Whitespace
'bracketBlockStateStack' Name
'-'           Operator
'>'           Operator
'push_back'   Name
'('           Punctuation
'isBlockOpener' Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'            ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'isBlockOpener' Name
')'           Punctuation
'\n'          Text.Whitespace

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

'                ' Text.Whitespace
'inStatementIndentStackSizeStack' Name
'-'           Operator
'>'           Operator
'push_back'   Name
'('           Punctuation
'inStatementIndentStack' Name
'-'           Operator
'>'           Operator
'size'        Name
'('           Punctuation
')'           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'                ' Text.Whitespace
'registerInStatementIndent' Name
'('           Punctuation
'line'        Name
','           Punctuation
' '           Text.Whitespace
'i'           Name
','           Punctuation
' '           Text.Whitespace
'spaceTabCount' Name
','           Punctuation
' '           Text.Whitespace
'0'           Literal.Number.Integer
','           Punctuation
' '           Text.Whitespace
'true'        Name.Builtin
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'                ' Text.Whitespace
'parenDepth'  Name
'+'           Operator
'+'           Operator
';'           Punctuation
'\n'          Text.Whitespace

'                ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'i'           Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
'\n'          Text.Whitespace

'                  ' Text.Whitespace
'shouldIndentBrackettedLine' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'false'       Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'                ' Text.Whitespace
'continue'    Keyword
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'            ' Text.Whitespace
'// this bracket is a block opener...\n' Comment.Single

'\n'          Text.Whitespace

'            ' Text.Whitespace
'+'           Operator
'+'           Operator
'lineOpeningBlocksNum' Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'            ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'isInClassHeader' Name
')'           Punctuation
'\n'          Text.Whitespace

'              ' Text.Whitespace
'isInClassHeader' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'false'       Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'            ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'isInClassHeaderTab' Name
')'           Punctuation
'\n'          Text.Whitespace

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

'                ' Text.Whitespace
'isInClassHeaderTab' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'false'       Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'                ' Text.Whitespace
'tabCount'    Name
' '           Text.Whitespace
'-'           Operator
'='           Operator
' '           Text.Whitespace
'2'           Literal.Number.Integer
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'            ' Text.Whitespace
'blockParenDepthStack' Name
'-'           Operator
'>'           Operator
'push_back'   Name
'('           Punctuation
'parenDepth'  Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'            ' Text.Whitespace
'blockStatementStack' Name
'-'           Operator
'>'           Operator
'push_back'   Name
'('           Punctuation
'isInStatement' Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'            ' Text.Whitespace
'inStatementIndentStackSizeStack' Name
'-'           Operator
'>'           Operator
'push_back'   Name
'('           Punctuation
'inStatementIndentStack' Name
'-'           Operator
'>'           Operator
'size'        Name
'('           Punctuation
')'           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'            ' Text.Whitespace
'blockTabCount' Name
' '           Text.Whitespace
'+'           Operator
'='           Operator
' '           Text.Whitespace
'isInStatement' Name
'?'           Operator
' '           Text.Whitespace
'1'           Literal.Number.Integer
' '           Text.Whitespace
':'           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
';'           Punctuation
'\n'          Text.Whitespace

'            ' Text.Whitespace
'parenDepth'  Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
';'           Punctuation
'\n'          Text.Whitespace

'            ' Text.Whitespace
'isInStatement' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'false'       Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'            ' Text.Whitespace
'tempStacks'  Name
'-'           Operator
'>'           Operator
'push_back'   Name
'('           Punctuation
'new'         Keyword
' '           Text.Whitespace
'vector'      Name
'<'           Operator
'const'       Keyword
' '           Text.Whitespace
'string'      Name
'*'           Operator
'>'           Operator
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'            ' Text.Whitespace
'headerStack' Name
'-'           Operator
'>'           Operator
'push_back'   Name
'('           Punctuation
'&'           Operator
'AS_OPEN_BRACKET' Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'            ' Text.Whitespace
'lastLineHeader' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'&'           Operator
'AS_OPEN_BRACKET' Name
';'           Punctuation
' '           Text.Whitespace
'// <------\n' Comment.Single

'\n'          Text.Whitespace

'            ' Text.Whitespace
'continue'    Keyword
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'        '    Text.Whitespace
'//check if a header has been reached\n' Comment.Single

'        '    Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'prevCh'      Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
' '           Literal.String.Char
"'"           Literal.String.Char
')'           Punctuation
'\n'          Text.Whitespace

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

'            ' Text.Whitespace
'bool'        Keyword.Type
' '           Text.Whitespace
'isIndentableHeader' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'true'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'            ' Text.Whitespace
'const'       Keyword
' '           Text.Whitespace
'string'      Name
' '           Text.Whitespace
'*'           Operator
'newHeader'   Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'findHeader'  Name
'('           Punctuation
'line'        Name
','           Punctuation
' '           Text.Whitespace
'i'           Name
','           Punctuation
' '           Text.Whitespace
'headers'     Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'            ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'newHeader'   Name
' '           Text.Whitespace
'!'           Operator
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
')'           Punctuation
'\n'          Text.Whitespace

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

'                ' Text.Whitespace
'// if we reached here, then this is a header...\n' Comment.Single

'                ' Text.Whitespace
'isInHeader'  Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'true'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'                ' Text.Whitespace
'vector'      Name
'<'           Operator
'const'       Keyword
' '           Text.Whitespace
'string'      Name
'*'           Operator
'>'           Operator
' '           Text.Whitespace
'*'           Operator
'lastTempStack' Name
';'           Punctuation
'\n'          Text.Whitespace

'                ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'tempStacks'  Name
'-'           Operator
'>'           Operator
'empty'       Name
'('           Punctuation
')'           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

'                  ' Text.Whitespace
'lastTempStack' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'                ' Text.Whitespace
'else'        Keyword
'\n'          Text.Whitespace

'                  ' Text.Whitespace
'lastTempStack' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'tempStacks'  Name
'-'           Operator
'>'           Operator
'back'        Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'                ' Text.Whitespace
'// if a new block is opened, push a new stack into tempStacks to hold the\n' Comment.Single

'                ' Text.Whitespace
'// future list of headers in the new block.\n' Comment.Single

'\n'          Text.Whitespace

'                ' Text.Whitespace
"// take care of the special case: 'else if (...)'\n" Comment.Single

'                ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'newHeader'   Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'&'           Operator
'AS_IF'       Name
' '           Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'lastLineHeader' Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'&'           Operator
'AS_ELSE'     Name
')'           Punctuation
'\n'          Text.Whitespace

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

'                    ' Text.Whitespace
"//spaceTabCount += indentLength; // to counter the opposite addition that occurs when the 'if' is registered below...\n" Comment.Single

'                    ' Text.Whitespace
'headerStack' Name
'-'           Operator
'>'           Operator
'pop_back'    Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'                ' Text.Whitespace
"// take care of 'else'\n" Comment.Single

'                ' Text.Whitespace
'else'        Keyword
' '           Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'newHeader'   Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'&'           Operator
'AS_ELSE'     Name
')'           Punctuation
'\n'          Text.Whitespace

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

'                    ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'lastTempStack' Name
' '           Text.Whitespace
'!'           Operator
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
')'           Punctuation
'\n'          Text.Whitespace

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

'                        ' Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'indexOfIf'   Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'indexOf'     Name
'('           Punctuation
'*'           Operator
'lastTempStack' Name
','           Punctuation
' '           Text.Whitespace
'&'           Operator
'AS_IF'       Name
')'           Punctuation
';'           Punctuation
' '           Text.Whitespace
'// <---\n'   Comment.Single

'                        ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'indexOfIf'   Name
' '           Text.Whitespace
'!'           Operator
'='           Operator
' '           Text.Whitespace
'-1'          Literal.Number.Integer
')'           Punctuation
'\n'          Text.Whitespace

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

'                            ' Text.Whitespace
"// recreate the header list in headerStack up to the previous 'if'\n" Comment.Single

'                            ' Text.Whitespace
'// from the temporary snapshot stored in lastTempStack.\n' Comment.Single

'                            ' Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'restackSize' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'lastTempStack' Name
'-'           Operator
'>'           Operator
'size'        Name
'('           Punctuation
')'           Punctuation
' '           Text.Whitespace
'-'           Operator
' '           Text.Whitespace
'indexOfIf'   Name
' '           Text.Whitespace
'-'           Operator
' '           Text.Whitespace
'1'           Literal.Number.Integer
';'           Punctuation
'\n'          Text.Whitespace

'                            ' Text.Whitespace
'for'         Keyword
' '           Text.Whitespace
'('           Punctuation
'int'         Keyword.Type
' '           Text.Whitespace
'r'           Name
'='           Operator
'0'           Literal.Number.Integer
';'           Punctuation
' '           Text.Whitespace
'r'           Name
'<'           Operator
'restackSize' Name
';'           Punctuation
' '           Text.Whitespace
'r'           Name
'+'           Operator
'+'           Operator
')'           Punctuation
'\n'          Text.Whitespace

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

'                                ' Text.Whitespace
'headerStack' Name
'-'           Operator
'>'           Operator
'push_back'   Name
'('           Punctuation
'lastTempStack' Name
'-'           Operator
'>'           Operator
'back'        Name
'('           Punctuation
')'           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'                                ' Text.Whitespace
'lastTempStack' Name
'-'           Operator
'>'           Operator
'pop_back'    Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

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

'                            ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'closingBracketReached' Name
')'           Punctuation
'\n'          Text.Whitespace

'                              ' Text.Whitespace
'tabCount'    Name
' '           Text.Whitespace
'+'           Operator
'='           Operator
' '           Text.Whitespace
'restackSize' Name
';'           Punctuation
'\n'          Text.Whitespace

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

'                        ' Text.Whitespace
"/*\n                         * If the above if is not true, i.e. no 'if' before the 'else',\n                         * then nothing beautiful will come out of this...\n                         * I should think about inserting an Exception here to notify the caller of this...\n                         */" Comment.Multiline
'\n'          Text.Whitespace

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

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

'\n'          Text.Whitespace

'                ' Text.Whitespace
"// check if 'while' closes a previous 'do'\n" Comment.Single

'                ' Text.Whitespace
'else'        Keyword
' '           Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'newHeader'   Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'&'           Operator
'AS_WHILE'    Name
')'           Punctuation
'\n'          Text.Whitespace

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

'                    ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'lastTempStack' Name
' '           Text.Whitespace
'!'           Operator
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
')'           Punctuation
'\n'          Text.Whitespace

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

'                        ' Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'indexOfDo'   Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'indexOf'     Name
'('           Punctuation
'*'           Operator
'lastTempStack' Name
','           Punctuation
' '           Text.Whitespace
'&'           Operator
'AS_DO'       Name
')'           Punctuation
';'           Punctuation
' '           Text.Whitespace
'// <---\n'   Comment.Single

'                        ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'indexOfDo'   Name
' '           Text.Whitespace
'!'           Operator
'='           Operator
' '           Text.Whitespace
'-1'          Literal.Number.Integer
')'           Punctuation
'\n'          Text.Whitespace

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

'                            ' Text.Whitespace
"// recreate the header list in headerStack up to the previous 'do'\n" Comment.Single

'                            ' Text.Whitespace
'// from the temporary snapshot stored in lastTempStack.\n' Comment.Single

'                            ' Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'restackSize' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'lastTempStack' Name
'-'           Operator
'>'           Operator
'size'        Name
'('           Punctuation
')'           Punctuation
' '           Text.Whitespace
'-'           Operator
' '           Text.Whitespace
'indexOfDo'   Name
' '           Text.Whitespace
'-'           Operator
' '           Text.Whitespace
'1'           Literal.Number.Integer
';'           Punctuation
'\n'          Text.Whitespace

'                            ' Text.Whitespace
'for'         Keyword
' '           Text.Whitespace
'('           Punctuation
'int'         Keyword.Type
' '           Text.Whitespace
'r'           Name
'='           Operator
'0'           Literal.Number.Integer
';'           Punctuation
' '           Text.Whitespace
'r'           Name
'<'           Operator
'restackSize' Name
';'           Punctuation
' '           Text.Whitespace
'r'           Name
'+'           Operator
'+'           Operator
')'           Punctuation
'\n'          Text.Whitespace

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

'                                ' Text.Whitespace
'headerStack' Name
'-'           Operator
'>'           Operator
'push_back'   Name
'('           Punctuation
'lastTempStack' Name
'-'           Operator
'>'           Operator
'back'        Name
'('           Punctuation
')'           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'                                ' Text.Whitespace
'lastTempStack' Name
'-'           Operator
'>'           Operator
'pop_back'    Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

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

'                            ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'closingBracketReached' Name
')'           Punctuation
'\n'          Text.Whitespace

'                              ' Text.Whitespace
'tabCount'    Name
' '           Text.Whitespace
'+'           Operator
'='           Operator
' '           Text.Whitespace
'restackSize' Name
';'           Punctuation
'\n'          Text.Whitespace

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

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

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

'                ' Text.Whitespace
"// check if 'catch' closes a previous 'try' or 'catch'\n" Comment.Single

'                ' Text.Whitespace
'else'        Keyword
' '           Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'newHeader'   Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'&'           Operator
'AS_CATCH'    Name
' '           Text.Whitespace
'|'           Operator
'|'           Operator
' '           Text.Whitespace
'newHeader'   Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'&'           Operator
'AS_FINALLY'  Name
')'           Punctuation
'\n'          Text.Whitespace

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

'                    ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'lastTempStack' Name
' '           Text.Whitespace
'!'           Operator
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
')'           Punctuation
'\n'          Text.Whitespace

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

'                        ' Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'indexOfTry'  Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'indexOf'     Name
'('           Punctuation
'*'           Operator
'lastTempStack' Name
','           Punctuation
' '           Text.Whitespace
'&'           Operator
'AS_TRY'      Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'                        ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'indexOfTry'  Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'-1'          Literal.Number.Integer
')'           Punctuation
'\n'          Text.Whitespace

'                          ' Text.Whitespace
'indexOfTry'  Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'indexOf'     Name
'('           Punctuation
'*'           Operator
'lastTempStack' Name
','           Punctuation
' '           Text.Whitespace
'&'           Operator
'AS_CATCH'    Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'                        ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'indexOfTry'  Name
' '           Text.Whitespace
'!'           Operator
'='           Operator
' '           Text.Whitespace
'-1'          Literal.Number.Integer
')'           Punctuation
'\n'          Text.Whitespace

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

'                            ' Text.Whitespace
"// recreate the header list in headerStack up to the previous 'try'\n" Comment.Single

'                            ' Text.Whitespace
'// from the temporary snapshot stored in lastTempStack.\n' Comment.Single

'                            ' Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'restackSize' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'lastTempStack' Name
'-'           Operator
'>'           Operator
'size'        Name
'('           Punctuation
')'           Punctuation
' '           Text.Whitespace
'-'           Operator
' '           Text.Whitespace
'indexOfTry'  Name
' '           Text.Whitespace
'-'           Operator
' '           Text.Whitespace
'1'           Literal.Number.Integer
';'           Punctuation
'\n'          Text.Whitespace

'                            ' Text.Whitespace
'for'         Keyword
' '           Text.Whitespace
'('           Punctuation
'int'         Keyword.Type
' '           Text.Whitespace
'r'           Name
'='           Operator
'0'           Literal.Number.Integer
';'           Punctuation
' '           Text.Whitespace
'r'           Name
'<'           Operator
'restackSize' Name
';'           Punctuation
' '           Text.Whitespace
'r'           Name
'+'           Operator
'+'           Operator
')'           Punctuation
'\n'          Text.Whitespace

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

'                                ' Text.Whitespace
'headerStack' Name
'-'           Operator
'>'           Operator
'push_back'   Name
'('           Punctuation
'lastTempStack' Name
'-'           Operator
'>'           Operator
'back'        Name
'('           Punctuation
')'           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'                                ' Text.Whitespace
'lastTempStack' Name
'-'           Operator
'>'           Operator
'pop_back'    Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'                            ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'closingBracketReached' Name
')'           Punctuation
'\n'          Text.Whitespace

'                              ' Text.Whitespace
'tabCount'    Name
' '           Text.Whitespace
'+'           Operator
'='           Operator
' '           Text.Whitespace
'restackSize' Name
';'           Punctuation
'\n'          Text.Whitespace

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

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

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

'                ' Text.Whitespace
'else'        Keyword
' '           Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'newHeader'   Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'&'           Operator
'AS_CASE'     Name
')'           Punctuation
'\n'          Text.Whitespace

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

'                    ' Text.Whitespace
'isInCase'    Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'true'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'                    ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'caseIndent'  Name
')'           Punctuation
'\n'          Text.Whitespace

'                      ' Text.Whitespace
'-'           Operator
'-'           Operator
'tabCount'    Name
';'           Punctuation
'\n'          Text.Whitespace

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

'                ' Text.Whitespace
'else'        Keyword
' '           Text.Whitespace
'if'          Keyword
'('           Punctuation
'newHeader'   Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'&'           Operator
'AS_DEFAULT'  Name
')'           Punctuation
'\n'          Text.Whitespace

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

'                    ' Text.Whitespace
'isInCase'    Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'true'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'                    ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'caseIndent'  Name
')'           Punctuation
'\n'          Text.Whitespace

'                      ' Text.Whitespace
'-'           Operator
'-'           Operator
'tabCount'    Name
';'           Punctuation
'\n'          Text.Whitespace

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

'                ' Text.Whitespace
'else'        Keyword
' '           Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'newHeader'   Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'&'           Operator
'AS_PUBLIC'   Name
' '           Text.Whitespace
'|'           Operator
'|'           Operator
' '           Text.Whitespace
'newHeader'   Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'&'           Operator
'AS_PROTECTED' Name
' '           Text.Whitespace
'|'           Operator
'|'           Operator
' '           Text.Whitespace
'newHeader'   Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'&'           Operator
'AS_PRIVATE'  Name
')'           Punctuation
'\n'          Text.Whitespace

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

'                    ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'isCStyle'    Name
' '           Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'!'           Operator
'isInClassHeader' Name
')'           Punctuation
'\n'          Text.Whitespace

'                      ' Text.Whitespace
'-'           Operator
'-'           Operator
'tabCount'    Name
';'           Punctuation
'\n'          Text.Whitespace

'                    ' Text.Whitespace
'isIndentableHeader' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'false'       Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

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

'                ' Text.Whitespace
'//else if ((newHeader == &STATIC || newHeader == &SYNCHRONIZED) &&\n' Comment.Single

'                ' Text.Whitespace
'//         !headerStack->empty() &&\n' Comment.Single

'                ' Text.Whitespace
'//         (headerStack->back() == &STATIC || headerStack->back() == &SYNCHRONIZED))\n' Comment.Single

'                ' Text.Whitespace
'//{\n'       Comment.Single

'                ' Text.Whitespace
'//    isIndentableHeader = false;\n' Comment.Single

'                ' Text.Whitespace
'//}\n'       Comment.Single

'                ' Text.Whitespace
'else'        Keyword
' '           Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'newHeader'   Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'&'           Operator
'AS_STATIC'   Name
'\n'          Text.Whitespace

'                         ' Text.Whitespace
'|'           Operator
'|'           Operator
' '           Text.Whitespace
'newHeader'   Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'&'           Operator
'AS_SYNCHRONIZED' Name
'\n'          Text.Whitespace

'                         ' Text.Whitespace
'|'           Operator
'|'           Operator
' '           Text.Whitespace
'('           Punctuation
'newHeader'   Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'&'           Operator
'AS_CONST'    Name
' '           Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'isCStyle'    Name
')'           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

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

'                    ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'headerStack' Name
'-'           Operator
'>'           Operator
'empty'       Name
'('           Punctuation
')'           Punctuation
' '           Text.Whitespace
'&'           Operator
'&'           Operator
'\n'          Text.Whitespace

'                        ' Text.Whitespace
'('           Punctuation
'headerStack' Name
'-'           Operator
'>'           Operator
'back'        Name
'('           Punctuation
')'           Punctuation
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'&'           Operator
'AS_STATIC'   Name
'\n'          Text.Whitespace

'                         ' Text.Whitespace
'|'           Operator
'|'           Operator
' '           Text.Whitespace
'headerStack' Name
'-'           Operator
'>'           Operator
'back'        Name
'('           Punctuation
')'           Punctuation
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'&'           Operator
'AS_SYNCHRONIZED' Name
'\n'          Text.Whitespace

'                         ' Text.Whitespace
'|'           Operator
'|'           Operator
' '           Text.Whitespace
'headerStack' Name
'-'           Operator
'>'           Operator
'back'        Name
'('           Punctuation
')'           Punctuation
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'&'           Operator
'AS_CONST'    Name
')'           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

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

'                        ' Text.Whitespace
'isIndentableHeader' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'false'       Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

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

'                    ' Text.Whitespace
'else'        Keyword
'\n'          Text.Whitespace

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

'                        ' Text.Whitespace
'isIndentableHeader' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'false'       Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'                        ' Text.Whitespace
'probationHeader' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'newHeader'   Name
';'           Punctuation
'\n'          Text.Whitespace

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

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

'                ' Text.Whitespace
'else'        Keyword
' '           Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'newHeader'   Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'&'           Operator
'AS_CONST'    Name
')'           Punctuation
'\n'          Text.Whitespace

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

'                    ' Text.Whitespace
'// this will be entered only if NOT in C style\n' Comment.Single

'                    ' Text.Whitespace
'// since otherwise the CONST would be found to be a probstion header...\n' Comment.Single

'\n'          Text.Whitespace

'                    ' Text.Whitespace
'//if (isCStyle)\n' Comment.Single

'                    ' Text.Whitespace
'//  isInConst = true;\n' Comment.Single

'                    ' Text.Whitespace
'isIndentableHeader' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'false'       Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

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

'                ' Text.Whitespace
'/*\n                              else if (newHeader == &OPERATOR)\n                              {\n                                  if (isCStyle)\n                                      isInOperator = true;\n                                  isIndentableHeader = false;\n                              }\n                */' Comment.Multiline
'\n'          Text.Whitespace

'                ' Text.Whitespace
'else'        Keyword
' '           Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'newHeader'   Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'&'           Operator
'AS_TEMPLATE' Name
')'           Punctuation
'\n'          Text.Whitespace

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

'                    ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'isCStyle'    Name
')'           Punctuation
'\n'          Text.Whitespace

'                      ' Text.Whitespace
'isInTemplate' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'true'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'                    ' Text.Whitespace
'isIndentableHeader' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'false'       Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'\n'          Text.Whitespace

'                ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'isIndentableHeader' Name
')'           Punctuation
'\n'          Text.Whitespace

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

'                    ' Text.Whitespace
'// 3.2.99\n' Comment.Single

'                    ' Text.Whitespace
'//spaceTabCount-=indentLength;\n' Comment.Single

'                    ' Text.Whitespace
'headerStack' Name
'-'           Operator
'>'           Operator
'push_back'   Name
'('           Punctuation
'newHeader'   Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'                    ' Text.Whitespace
'isInStatement' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'false'       Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'                    ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'indexOf'     Name
'('           Punctuation
'nonParenHeaders' Name
','           Punctuation
' '           Text.Whitespace
'newHeader'   Name
')'           Punctuation
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'-1'          Literal.Number.Integer
')'           Punctuation
'\n'          Text.Whitespace

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

'                        ' Text.Whitespace
'isInConditional' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'true'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

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

'                    ' Text.Whitespace
'lastLineHeader' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'newHeader'   Name
';'           Punctuation
'\n'          Text.Whitespace

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

'                ' Text.Whitespace
'else'        Keyword
'\n'          Text.Whitespace

'                  ' Text.Whitespace
'isInHeader'  Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'false'       Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'                ' Text.Whitespace
'//lastLineHeader = newHeader;\n' Comment.Single

'\n'          Text.Whitespace

'                ' Text.Whitespace
'outBuffer'   Name
'.'           Punctuation
'append'      Name
'('           Punctuation
'newHeader'   Name
'-'           Operator
'>'           Operator
'substr'      Name
'('           Punctuation
'1'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'                ' Text.Whitespace
'i'           Name
' '           Text.Whitespace
'+'           Operator
'='           Operator
' '           Text.Whitespace
'newHeader'   Name
'-'           Operator
'>'           Operator
'length'      Name
'('           Punctuation
')'           Punctuation
' '           Text.Whitespace
'-'           Operator
' '           Text.Whitespace
'1'           Literal.Number.Integer
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'                ' Text.Whitespace
'continue'    Keyword
';'           Punctuation
'\n'          Text.Whitespace

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

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

'\n'          Text.Whitespace

'        '    Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'isCStyle'    Name
' '           Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'!'           Operator
'isalpha'     Name
'('           Punctuation
'prevCh'      Name
')'           Punctuation
'\n'          Text.Whitespace

'            ' Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'line'        Name
'.'           Punctuation
'COMPARE'     Name
'('           Punctuation
'i'           Name
','           Punctuation
' '           Text.Whitespace
'8'           Literal.Number.Integer
','           Punctuation
' '           Text.Whitespace
'AS_OPERATOR' Name
')'           Punctuation
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
' '           Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'!'           Operator
'isalnum'     Name
'('           Punctuation
'line'        Name
'['           Punctuation
'i'           Name
'+'           Operator
'8'           Literal.Number.Integer
']'           Punctuation
')'           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

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

'            ' Text.Whitespace
'isInOperator' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'true'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'            ' Text.Whitespace
'outBuffer'   Name
'.'           Punctuation
'append'      Name
'('           Punctuation
'AS_OPERATOR' Name
'.'           Punctuation
'substr'      Name
'('           Punctuation
'1'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'            ' Text.Whitespace
'i'           Name
' '           Text.Whitespace
'+'           Operator
'='           Operator
' '           Text.Whitespace
'7'           Literal.Number.Integer
';'           Punctuation
'\n'          Text.Whitespace

'            ' Text.Whitespace
'continue'    Keyword
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'        '    Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'ch'          Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
'?'           Literal.String.Char
"'"           Literal.String.Char
')'           Punctuation
'\n'          Text.Whitespace

'          '  Text.Whitespace
'isInQuestion' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'true'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'\n'          Text.Whitespace

'        '    Text.Whitespace
"// special handling of 'case' statements\n" Comment.Single

'        '    Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'ch'          Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
':'           Literal.String.Char
"'"           Literal.String.Char
')'           Punctuation
'\n'          Text.Whitespace

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

'            ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'line'        Name
'.'           Punctuation
'length'      Name
'('           Punctuation
')'           Punctuation
' '           Text.Whitespace
'>'           Operator
' '           Text.Whitespace
'i'           Name
'+'           Operator
'1'           Literal.Number.Integer
' '           Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'line'        Name
'['           Punctuation
'i'           Name
'+'           Operator
'1'           Literal.Number.Integer
']'           Punctuation
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
':'           Literal.String.Char
"'"           Literal.String.Char
')'           Punctuation
' '           Text.Whitespace
'// look for ::\n' Comment.Single

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

'                ' Text.Whitespace
'+'           Operator
'+'           Operator
'i'           Name
';'           Punctuation
'\n'          Text.Whitespace

'                ' Text.Whitespace
'outBuffer'   Name
'.'           Punctuation
'append'      Name
'('           Punctuation
'1'           Literal.Number.Integer
','           Punctuation
' '           Text.Whitespace
"'"           Literal.String.Char
':'           Literal.String.Char
"'"           Literal.String.Char
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'                ' Text.Whitespace
'ch'          Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
' '           Literal.String.Char
"'"           Literal.String.Char
';'           Punctuation
'\n'          Text.Whitespace

'                ' Text.Whitespace
'continue'    Keyword
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'            ' Text.Whitespace
'else'        Keyword
' '           Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'isCStyle'    Name
' '           Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'isInClass'   Name
' '           Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'prevNonSpaceCh' Name
' '           Text.Whitespace
'!'           Operator
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
')'           Literal.String.Char
"'"           Literal.String.Char
')'           Punctuation
'\n'          Text.Whitespace

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

'              ' Text.Whitespace
'// BEGIN Content of ASBeautifier.cpp.BITFIELD.patch:\n' Comment.Single

'              ' Text.Whitespace
'\n'          Text.Whitespace

'                ' Text.Whitespace
'unsigned'    Keyword.Type
' '           Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'chIndex'     Name
';'           Punctuation
'\n'          Text.Whitespace

'   \t\t\t    ' Text.Whitespace
'char'        Keyword.Type
' '           Text.Whitespace
'nextCh'      Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
';'           Punctuation
'\n'          Text.Whitespace

'                ' Text.Whitespace
'for'         Keyword
' '           Text.Whitespace
'('           Punctuation
'chIndex'     Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'i'           Name
'+'           Operator
'1'           Literal.Number.Integer
';'           Punctuation
' '           Text.Whitespace
'chIndex'     Name
' '           Text.Whitespace
'<'           Operator
' '           Text.Whitespace
'line'        Name
'.'           Punctuation
'length'      Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
' '           Text.Whitespace
'chIndex'     Name
'+'           Operator
'+'           Operator
')'           Punctuation
'\n'          Text.Whitespace

'            \t\t' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'isWhiteSpace' Name
'('           Punctuation
'line'        Name
'['           Punctuation
'chIndex'     Name
']'           Punctuation
')'           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

'\t\t\t\t\t\t' Text.Whitespace
'break'       Keyword
';'           Punctuation
'\n'          Text.Whitespace

'\t\t\t\t\t'  Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'chIndex'     Name
'<'           Operator
' '           Text.Whitespace
'line'        Name
'.'           Punctuation
'length'      Name
'('           Punctuation
')'           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

'       \t\t\t\t\t' Text.Whitespace
'nextCh'      Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'line'        Name
'['           Punctuation
'chIndex'     Name
']'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\t\t\t\t'    Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'nWord'       Name
' '           Text.Whitespace
'='           Operator
'0'           Literal.Number.Integer
';'           Punctuation
'\n'          Text.Whitespace

'    \t\t\t'  Text.Whitespace
'for'         Keyword
' '           Text.Whitespace
'('           Punctuation
'chIndex'     Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
';'           Punctuation
' '           Text.Whitespace
'chIndex'     Name
' '           Text.Whitespace
'<'           Operator
' '           Text.Whitespace
'i'           Name
';'           Punctuation
' '           Text.Whitespace
'chIndex'     Name
'+'           Operator
'+'           Operator
')'           Punctuation
'\n'          Text.Whitespace

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

'\t\t\t\t\t'  Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'isWhiteSpace' Name
'('           Punctuation
'line'        Name
'['           Punctuation
'chIndex'     Name
']'           Punctuation
')'           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

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

'\t\t\t\t\t\t' Text.Whitespace
'nWord'       Name
' '           Text.Whitespace
'+'           Operator
'+'           Operator
';'           Punctuation
'\n'          Text.Whitespace

'\t\t\t\t\t\t' Text.Whitespace
'while'       Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'isWhiteSpace' Name
'('           Punctuation
'line'        Name
'['           Punctuation
'+'           Operator
'+'           Operator
'chIndex'     Name
']'           Punctuation
')'           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

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

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

'\t\t\t\t'    Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'nextCh'      Name
' '           Text.Whitespace
'>'           Operator
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
'0'           Literal.String.Char
"'"           Literal.String.Char
' '           Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'nextCh'      Name
' '           Text.Whitespace
'<'           Operator
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
'9'           Literal.String.Char
"'"           Literal.String.Char
')'           Punctuation
' '           Text.Whitespace
'|'           Operator
'|'           Operator
' '           Text.Whitespace
'('           Punctuation
'nWord'       Name
' '           Text.Whitespace
'>'           Operator
'1'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

'\t\t\t\t\t'  Text.Whitespace
'continue'    Keyword
';'           Punctuation
'\n'          Text.Whitespace

'              ' Text.Whitespace
'// END Content of ASBeautifier.cpp.BITFIELD.patch:\n' Comment.Single

'                ' Text.Whitespace
'\n'          Text.Whitespace

'                ' Text.Whitespace
'-'           Operator
'-'           Operator
'tabCount'    Name
';'           Punctuation
'\n'          Text.Whitespace

'                ' Text.Whitespace
"// found a 'private:' or 'public:' inside a class definition\n" Comment.Single

'                ' Text.Whitespace
'// so do nothing special\n' Comment.Single

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

'\n'          Text.Whitespace

'            ' Text.Whitespace
'else'        Keyword
' '           Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'isCStyle'    Name
' '           Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'isInClassHeader' Name
')'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'                ' Text.Whitespace
"// found a 'class A : public B' definition\n" Comment.Single

'                ' Text.Whitespace
'// so do nothing special\n' Comment.Single

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

'\n'          Text.Whitespace

'            ' Text.Whitespace
'else'        Keyword
' '           Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'isInQuestion' Name
')'           Punctuation
'\n'          Text.Whitespace

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

'                ' Text.Whitespace
'isInQuestion' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'false'       Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

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

'            ' Text.Whitespace
'else'        Keyword
' '           Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'isCStyle'    Name
' '           Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'prevNonSpaceCh' Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
')'           Literal.String.Char
"'"           Literal.String.Char
')'           Punctuation
'\n'          Text.Whitespace

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

'                ' Text.Whitespace
'isInClassHeader' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'true'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'                ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'i'           Name
'='           Operator
'='           Operator
'0'           Literal.Number.Integer
')'           Punctuation
'\n'          Text.Whitespace

'                  ' Text.Whitespace
'tabCount'    Name
' '           Text.Whitespace
'+'           Operator
'='           Operator
' '           Text.Whitespace
'2'           Literal.Number.Integer
';'           Punctuation
'\n'          Text.Whitespace

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

'            ' Text.Whitespace
'else'        Keyword
'\n'          Text.Whitespace

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

'                ' Text.Whitespace
'currentNonSpaceCh' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
';'           Literal.String.Char
"'"           Literal.String.Char
';'           Punctuation
' '           Text.Whitespace
"// so that brackets after the ':' will appear as block-openers\n" Comment.Single

'                ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'isInCase'    Name
')'           Punctuation
'\n'          Text.Whitespace

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

'                    ' Text.Whitespace
'isInCase'    Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'false'       Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'                    ' Text.Whitespace
'ch'          Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
';'           Literal.String.Char
"'"           Literal.String.Char
';'           Punctuation
' '           Text.Whitespace
"// from here on, treat char as ';'\n" Comment.Single

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

'              ' Text.Whitespace
'// BEGIN content of ASBeautifier.cpp.BITFIELD.patch.bz2\n' Comment.Single

'              ' Text.Whitespace
'else'        Keyword
' '           Text.Whitespace
'// bitfield or labels\n' Comment.Single

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

'\t\t\t\t'    Text.Whitespace
'unsigned'    Keyword.Type
' '           Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'chIndex'     Name
';'           Punctuation
'\n'          Text.Whitespace

'\t\t\t\t'    Text.Whitespace
'char'        Keyword.Type
' '           Text.Whitespace
'nextCh'      Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
';'           Punctuation
'\n'          Text.Whitespace

'\t\t\t\t'    Text.Whitespace
'for'         Keyword
' '           Text.Whitespace
'('           Punctuation
'chIndex'     Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'i'           Name
'+'           Operator
'1'           Literal.Number.Integer
';'           Punctuation
' '           Text.Whitespace
'('           Punctuation
'isCStyle'    Name
' '           Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'chIndex'     Name
' '           Text.Whitespace
'<'           Operator
' '           Text.Whitespace
'line'        Name
'.'           Punctuation
'length'      Name
'('           Punctuation
')'           Punctuation
')'           Punctuation
';'           Punctuation
' '           Text.Whitespace
'chIndex'     Name
'+'           Operator
'+'           Operator
')'           Punctuation
'\n'          Text.Whitespace

'\t\t\t\t\t'  Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'isWhiteSpace' Name
'('           Punctuation
'line'        Name
'['           Punctuation
'chIndex'     Name
']'           Punctuation
')'           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

'\t\t\t\t\t\t' Text.Whitespace
'break'       Keyword
';'           Punctuation
'\n'          Text.Whitespace

'\t\t\t\t'    Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'chIndex'     Name
'<'           Operator
' '           Text.Whitespace
'line'        Name
'.'           Punctuation
'length'      Name
'('           Punctuation
')'           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

'\t\t\t\t\t'  Text.Whitespace
'nextCh'      Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'line'        Name
'['           Punctuation
'chIndex'     Name
']'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'     \t\t\t' Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'nWord'       Name
' '           Text.Whitespace
'='           Operator
'0'           Literal.Number.Integer
';'           Punctuation
'\n'          Text.Whitespace

' \t\t\t\t'   Text.Whitespace
'for'         Keyword
' '           Text.Whitespace
'('           Punctuation
'chIndex'     Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
';'           Punctuation
' '           Text.Whitespace
'chIndex'     Name
' '           Text.Whitespace
'<'           Operator
' '           Text.Whitespace
'i'           Name
';'           Punctuation
' '           Text.Whitespace
'chIndex'     Name
'+'           Operator
'+'           Operator
')'           Punctuation
'\n'          Text.Whitespace

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

'\t\t\t\t\t'  Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'isWhiteSpace' Name
'('           Punctuation
'line'        Name
'['           Punctuation
'chIndex'     Name
']'           Punctuation
')'           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

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

'\t\t\t\t\t\t' Text.Whitespace
'nWord'       Name
' '           Text.Whitespace
'+'           Operator
'+'           Operator
';'           Punctuation
'\n'          Text.Whitespace

'\t\t\t\t\t\t' Text.Whitespace
'while'       Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'isWhiteSpace' Name
'('           Punctuation
'line'        Name
'['           Punctuation
'+'           Operator
'+'           Operator
'chIndex'     Name
']'           Punctuation
')'           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

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

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

'         \t\t' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'isCStyle'    Name
' '           Text.Whitespace
'&'           Operator
'&'           Operator
'  '          Text.Whitespace
'('           Punctuation
'nextCh'      Name
' '           Text.Whitespace
'>'           Operator
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
'0'           Literal.String.Char
"'"           Literal.String.Char
' '           Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'nextCh'      Name
' '           Text.Whitespace
'<'           Operator
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
'9'           Literal.String.Char
"'"           Literal.String.Char
')'           Punctuation
' '           Text.Whitespace
'|'           Operator
'|'           Operator
' '           Text.Whitespace
'('           Punctuation
'nWord'       Name
' '           Text.Whitespace
'>'           Operator
'1'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

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

'\t\t\t\t\t'  Text.Whitespace
'continue'    Keyword
';'           Punctuation
'\n'          Text.Whitespace

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

'                ' Text.Whitespace
'// END content of ASASBeautifier.cpp.BITFIELD.patch.bz2\n' Comment.Single

'\n'          Text.Whitespace

'                ' Text.Whitespace
'else'        Keyword
' '           Text.Whitespace
"// is in a label (e.g. 'label1:')\n" Comment.Single

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

'                    ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'labelIndent' Name
')'           Punctuation
'\n'          Text.Whitespace

'                      ' Text.Whitespace
'-'           Operator
'-'           Operator
'tabCount'    Name
';'           Punctuation
' '           Text.Whitespace
'// unindent label by one indent\n' Comment.Single

'                    ' Text.Whitespace
'else'        Keyword
'\n'          Text.Whitespace

'                      ' Text.Whitespace
'tabCount'    Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
';'           Punctuation
' '           Text.Whitespace
'// completely flush indent to left\n' Comment.Single

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

'\n'          Text.Whitespace

'              ' Text.Whitespace
'// BEGIN content of ASASBeautifier.cpp.BITFIELD.patch.bz2\n' Comment.Single

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

'            ' Text.Whitespace
'// END content of ASASBeautifier.cpp.BITFIELD.patch.bz2\n' Comment.Single

'\n'          Text.Whitespace

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

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

'\n'          Text.Whitespace

'        '    Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'ch'          Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
';'           Literal.String.Char
"'"           Literal.String.Char
'  '          Text.Whitespace
'|'           Operator
'|'           Operator
' '           Text.Whitespace
'('           Punctuation
'parenDepth'  Name
'>'           Operator
'0'           Literal.Number.Integer
' '           Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'ch'          Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
','           Literal.String.Char
"'"           Literal.String.Char
')'           Punctuation
')'           Punctuation
'  '          Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'!'           Operator
'inStatementIndentStackSizeStack' Name
'-'           Operator
'>'           Operator
'empty'       Name
'('           Punctuation
')'           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

'          '  Text.Whitespace
'while'       Keyword
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'unsigned'    Keyword.Type
' '           Text.Whitespace
'int'         Keyword.Type
')'           Punctuation
'inStatementIndentStackSizeStack' Name
'-'           Operator
'>'           Operator
'back'        Name
'('           Punctuation
')'           Punctuation
' '           Text.Whitespace
'+'           Operator
' '           Text.Whitespace
'('           Punctuation
'parenDepth'  Name
'>'           Operator
'0'           Literal.Number.Integer
' '           Text.Whitespace
'?'           Operator
' '           Text.Whitespace
'1'           Literal.Number.Integer
' '           Text.Whitespace
':'           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
'  '          Text.Whitespace
'<'           Operator
' '           Text.Whitespace
'inStatementIndentStack' Name
'-'           Operator
'>'           Operator
'size'        Name
'('           Punctuation
')'           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

'            ' Text.Whitespace
'inStatementIndentStack' Name
'-'           Operator
'>'           Operator
'pop_back'    Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'\n'          Text.Whitespace

'        '    Text.Whitespace
'// handle ends of statements\n' Comment.Single

'        '    Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
' '           Text.Whitespace
'('           Punctuation
'ch'          Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
';'           Literal.String.Char
"'"           Literal.String.Char
' '           Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'parenDepth'  Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
' '           Text.Whitespace
'|'           Operator
'|'           Operator
' '           Text.Whitespace
'ch'          Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
'}'           Literal.String.Char
"'"           Literal.String.Char
"/* || (ch == ',' && parenDepth == 0)*/" Comment.Multiline
')'           Punctuation
'\n'          Text.Whitespace

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

'            ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'ch'          Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
'}'           Literal.String.Char
"'"           Literal.String.Char
')'           Punctuation
'\n'          Text.Whitespace

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

'                ' Text.Whitespace
"// first check if this '}' closes a previous block, or a static array...\n" Comment.Single

'                ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'bracketBlockStateStack' Name
'-'           Operator
'>'           Operator
'empty'       Name
'('           Punctuation
')'           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

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

'                    ' Text.Whitespace
'bool'        Keyword.Type
' '           Text.Whitespace
'bracketBlockState' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'bracketBlockStateStack' Name
'-'           Operator
'>'           Operator
'back'        Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'                    ' Text.Whitespace
'bracketBlockStateStack' Name
'-'           Operator
'>'           Operator
'pop_back'    Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'                    ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'bracketBlockState' Name
')'           Punctuation
'\n'          Text.Whitespace

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

'                        ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'inStatementIndentStackSizeStack' Name
'-'           Operator
'>'           Operator
'empty'       Name
'('           Punctuation
')'           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

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

'                            ' Text.Whitespace
'// this bracket is a static array\n' Comment.Single

'\n'          Text.Whitespace

'                            ' Text.Whitespace
'unsigned'    Keyword.Type
' '           Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'previousIndentStackSize' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'inStatementIndentStackSizeStack' Name
'-'           Operator
'>'           Operator
'back'        Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'                            ' Text.Whitespace
'inStatementIndentStackSizeStack' Name
'-'           Operator
'>'           Operator
'pop_back'    Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'                            ' Text.Whitespace
'while'       Keyword
' '           Text.Whitespace
'('           Punctuation
'previousIndentStackSize' Name
' '           Text.Whitespace
'<'           Operator
' '           Text.Whitespace
'inStatementIndentStack' Name
'-'           Operator
'>'           Operator
'size'        Name
'('           Punctuation
')'           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

'                              ' Text.Whitespace
'inStatementIndentStack' Name
'-'           Operator
'>'           Operator
'pop_back'    Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'                            ' Text.Whitespace
'parenDepth'  Name
'-'           Operator
'-'           Operator
';'           Punctuation
'\n'          Text.Whitespace

'                            ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'i'           Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
'\n'          Text.Whitespace

'                              ' Text.Whitespace
'shouldIndentBrackettedLine' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'false'       Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'                            ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'parenIndentStack' Name
'-'           Operator
'>'           Operator
'empty'       Name
'('           Punctuation
')'           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

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

'                                ' Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'poppedIndent' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'parenIndentStack' Name
'-'           Operator
'>'           Operator
'back'        Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'                                ' Text.Whitespace
'parenIndentStack' Name
'-'           Operator
'>'           Operator
'pop_back'    Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'                                ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'i'           Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
'\n'          Text.Whitespace

'                                  ' Text.Whitespace
'spaceTabCount' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'poppedIndent' Name
';'           Punctuation
'\n'          Text.Whitespace

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

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

'                        ' Text.Whitespace
'continue'    Keyword
';'           Punctuation
'\n'          Text.Whitespace

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

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

'\n'          Text.Whitespace

'                ' Text.Whitespace
'// this bracket is block closer...\n' Comment.Single

'\n'          Text.Whitespace

'                ' Text.Whitespace
'+'           Operator
'+'           Operator
'lineClosingBlocksNum' Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'                ' Text.Whitespace
'if'          Keyword
'('           Punctuation
'!'           Operator
'inStatementIndentStackSizeStack' Name
'-'           Operator
'>'           Operator
'empty'       Name
'('           Punctuation
')'           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

'                  ' Text.Whitespace
'inStatementIndentStackSizeStack' Name
'-'           Operator
'>'           Operator
'pop_back'    Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'                ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'blockParenDepthStack' Name
'-'           Operator
'>'           Operator
'empty'       Name
'('           Punctuation
')'           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

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

'                    ' Text.Whitespace
'parenDepth'  Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'blockParenDepthStack' Name
'-'           Operator
'>'           Operator
'back'        Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'                    ' Text.Whitespace
'blockParenDepthStack' Name
'-'           Operator
'>'           Operator
'pop_back'    Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'                    ' Text.Whitespace
'isInStatement' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'blockStatementStack' Name
'-'           Operator
'>'           Operator
'back'        Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'                    ' Text.Whitespace
'blockStatementStack' Name
'-'           Operator
'>'           Operator
'pop_back'    Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'                    ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'isInStatement' Name
')'           Punctuation
'\n'          Text.Whitespace

'                      ' Text.Whitespace
'blockTabCount' Name
'-'           Operator
'-'           Operator
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'                ' Text.Whitespace
'closingBracketReached' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'true'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'                ' Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'headerPlace' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'indexOf'     Name
'('           Punctuation
'*'           Operator
'headerStack' Name
','           Punctuation
' '           Text.Whitespace
'&'           Operator
'AS_OPEN_BRACKET' Name
')'           Punctuation
';'           Punctuation
' '           Text.Whitespace
'// <---\n'   Comment.Single

'                ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'headerPlace' Name
' '           Text.Whitespace
'!'           Operator
'='           Operator
' '           Text.Whitespace
'-1'          Literal.Number.Integer
')'           Punctuation
'\n'          Text.Whitespace

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

'                    ' Text.Whitespace
'const'       Keyword
' '           Text.Whitespace
'string'      Name
' '           Text.Whitespace
'*'           Operator
'popped'      Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'headerStack' Name
'-'           Operator
'>'           Operator
'back'        Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'                    ' Text.Whitespace
'while'       Keyword
' '           Text.Whitespace
'('           Punctuation
'popped'      Name
' '           Text.Whitespace
'!'           Operator
'='           Operator
' '           Text.Whitespace
'&'           Operator
'AS_OPEN_BRACKET' Name
')'           Punctuation
'\n'          Text.Whitespace

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

'                        ' Text.Whitespace
'headerStack' Name
'-'           Operator
'>'           Operator
'pop_back'    Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'                        ' Text.Whitespace
'popped'      Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'headerStack' Name
'-'           Operator
'>'           Operator
'back'        Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

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

'                    ' Text.Whitespace
'headerStack' Name
'-'           Operator
'>'           Operator
'pop_back'    Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'                    ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'tempStacks'  Name
'-'           Operator
'>'           Operator
'empty'       Name
'('           Punctuation
')'           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

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

'                        ' Text.Whitespace
'vector'      Name
'<'           Operator
'const'       Keyword
' '           Text.Whitespace
'string'      Name
'*'           Operator
'>'           Operator
' '           Text.Whitespace
'*'           Operator
'temp'        Name
' '           Text.Whitespace
'='           Operator
'  '          Text.Whitespace
'tempStacks'  Name
'-'           Operator
'>'           Operator
'back'        Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'                        ' Text.Whitespace
'tempStacks'  Name
'-'           Operator
'>'           Operator
'pop_back'    Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'                        ' Text.Whitespace
'delete'      Keyword
' '           Text.Whitespace
'temp'        Name
';'           Punctuation
'\n'          Text.Whitespace

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

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

'\n'          Text.Whitespace

'\n'          Text.Whitespace

'                ' Text.Whitespace
'ch'          Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
' '           Literal.String.Char
"'"           Literal.String.Char
';'           Punctuation
' '           Text.Whitespace
"// needed due to cases such as '}else{', so that headers ('else' tn tih case) will be identified...\n" Comment.Single

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

'\n'          Text.Whitespace

'            ' Text.Whitespace
"/*\n             * Create a temporary snapshot of the current block's header-list in the\n             * uppermost inner stack in tempStacks, and clear the headerStack up to\n             * the begining of the block.\n             * Thus, the next future statement will think it comes one indent past\n             * the block's '{' unless it specifically checks for a companion-header\n             * (such as a previous 'if' for an 'else' header) within the tempStacks,\n             * and recreates the temporary snapshot by manipulating the tempStacks.\n             */" Comment.Multiline
'\n'          Text.Whitespace

'            ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'tempStacks'  Name
'-'           Operator
'>'           Operator
'back'        Name
'('           Punctuation
')'           Punctuation
'-'           Operator
'>'           Operator
'empty'       Name
'('           Punctuation
')'           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

'              ' Text.Whitespace
'while'       Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'tempStacks'  Name
'-'           Operator
'>'           Operator
'back'        Name
'('           Punctuation
')'           Punctuation
'-'           Operator
'>'           Operator
'empty'       Name
'('           Punctuation
')'           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

'                ' Text.Whitespace
'tempStacks'  Name
'-'           Operator
'>'           Operator
'back'        Name
'('           Punctuation
')'           Punctuation
'-'           Operator
'>'           Operator
'pop_back'    Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'            ' Text.Whitespace
'while'       Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'headerStack' Name
'-'           Operator
'>'           Operator
'empty'       Name
'('           Punctuation
')'           Punctuation
' '           Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'headerStack' Name
'-'           Operator
'>'           Operator
'back'        Name
'('           Punctuation
')'           Punctuation
' '           Text.Whitespace
'!'           Operator
'='           Operator
' '           Text.Whitespace
'&'           Operator
'AS_OPEN_BRACKET' Name
')'           Punctuation
'\n'          Text.Whitespace

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

'                ' Text.Whitespace
'tempStacks'  Name
'-'           Operator
'>'           Operator
'back'        Name
'('           Punctuation
')'           Punctuation
'-'           Operator
'>'           Operator
'push_back'   Name
'('           Punctuation
'headerStack' Name
'-'           Operator
'>'           Operator
'back'        Name
'('           Punctuation
')'           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'                ' Text.Whitespace
'headerStack' Name
'-'           Operator
'>'           Operator
'pop_back'    Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'            ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'parenDepth'  Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
' '           Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'ch'          Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
';'           Literal.String.Char
"'"           Literal.String.Char
')'           Punctuation
'\n'          Text.Whitespace

'              ' Text.Whitespace
'isInStatement' Name
'='           Operator
'false'       Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'            ' Text.Whitespace
'isInClassHeader' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'false'       Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'            ' Text.Whitespace
'continue'    Keyword
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'\n'          Text.Whitespace

'        '    Text.Whitespace
'// check for preBlockStatements ONLY if not within parenthesies\n' Comment.Single

'        '    Text.Whitespace
"// (otherwise 'struct XXX' statements would be wrongly interpreted...)\n" Comment.Single

'        '    Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'prevCh'      Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
' '           Literal.String.Char
"'"           Literal.String.Char
' '           Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'!'           Operator
'isInTemplate' Name
' '           Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'parenDepth'  Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
'\n'          Text.Whitespace

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

'            ' Text.Whitespace
'const'       Keyword
' '           Text.Whitespace
'string'      Name
' '           Text.Whitespace
'*'           Operator
'newHeader'   Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'findHeader'  Name
'('           Punctuation
'line'        Name
','           Punctuation
' '           Text.Whitespace
'i'           Name
','           Punctuation
' '           Text.Whitespace
'preBlockStatements' Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'            ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'newHeader'   Name
' '           Text.Whitespace
'!'           Operator
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
')'           Punctuation
'\n'          Text.Whitespace

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

'                ' Text.Whitespace
'isInClassHeader' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'true'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'                ' Text.Whitespace
'outBuffer'   Name
'.'           Punctuation
'append'      Name
'('           Punctuation
'newHeader'   Name
'-'           Operator
'>'           Operator
'substr'      Name
'('           Punctuation
'1'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'                ' Text.Whitespace
'i'           Name
' '           Text.Whitespace
'+'           Operator
'='           Operator
' '           Text.Whitespace
'newHeader'   Name
'-'           Operator
'>'           Operator
'length'      Name
'('           Punctuation
')'           Punctuation
' '           Text.Whitespace
'-'           Operator
' '           Text.Whitespace
'1'           Literal.Number.Integer
';'           Punctuation
'\n'          Text.Whitespace

'                ' Text.Whitespace
'//if (isCStyle)\n' Comment.Single

'                ' Text.Whitespace
'headerStack' Name
'-'           Operator
'>'           Operator
'push_back'   Name
'('           Punctuation
'newHeader'   Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

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

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

'\n'          Text.Whitespace

'        '    Text.Whitespace
'// Handle operators\n' Comment.Single

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

'\n'          Text.Whitespace

'        '    Text.Whitespace
"////        // PRECHECK if a '==' or '--' or '++' operator was reached.\n" Comment.Single

'        '    Text.Whitespace
'////        // If not, then register an indent IF an assignment operator was reached.\n' Comment.Single

'        '    Text.Whitespace
"////        // The precheck is important, so that statements such as 'i--==2' are not recognized\n" Comment.Single

'        '    Text.Whitespace
"////        // to have assignment operators (here, '-=') in them . . .\n" Comment.Single

'\n'          Text.Whitespace

'        '    Text.Whitespace
'const'       Keyword
' '           Text.Whitespace
'string'      Name
' '           Text.Whitespace
'*'           Operator
'foundAssignmentOp' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'const'       Keyword
' '           Text.Whitespace
'string'      Name
' '           Text.Whitespace
'*'           Operator
'foundNonAssignmentOp' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'        '    Text.Whitespace
'immediatelyPreviousAssignmentOp' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'        '    Text.Whitespace
'// Check if an operator has been reached.\n' Comment.Single

'        '    Text.Whitespace
'foundAssignmentOp' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'findHeader'  Name
'('           Punctuation
'line'        Name
','           Punctuation
' '           Text.Whitespace
'i'           Name
','           Punctuation
' '           Text.Whitespace
'assignmentOperators' Name
','           Punctuation
' '           Text.Whitespace
'false'       Name.Builtin
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'foundNonAssignmentOp' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'findHeader'  Name
'('           Punctuation
'line'        Name
','           Punctuation
' '           Text.Whitespace
'i'           Name
','           Punctuation
' '           Text.Whitespace
'nonAssignmentOperators' Name
','           Punctuation
' '           Text.Whitespace
'false'       Name.Builtin
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'        '    Text.Whitespace
"// Since findHeader's boundry checking was not used above, it is possible\n" Comment.Single

'        '    Text.Whitespace
'// that both an assignment op and a non-assignment op where found,\n' Comment.Single

'        '    Text.Whitespace
"// e.g. '>>' and '>>='. If this is the case, treat the LONGER one as the\n" Comment.Single

'        '    Text.Whitespace
'// found operator.\n' Comment.Single

'        '    Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'foundAssignmentOp' Name
' '           Text.Whitespace
'!'           Operator
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
' '           Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'foundNonAssignmentOp' Name
' '           Text.Whitespace
'!'           Operator
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
')'           Punctuation
'\n'          Text.Whitespace

'          '  Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'foundAssignmentOp' Name
'-'           Operator
'>'           Operator
'length'      Name
'('           Punctuation
')'           Punctuation
' '           Text.Whitespace
'<'           Operator
' '           Text.Whitespace
'foundNonAssignmentOp' Name
'-'           Operator
'>'           Operator
'length'      Name
'('           Punctuation
')'           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

'            ' Text.Whitespace
'foundAssignmentOp' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'          '  Text.Whitespace
'else'        Keyword
'\n'          Text.Whitespace

'            ' Text.Whitespace
'foundNonAssignmentOp' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'        '    Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'foundNonAssignmentOp' Name
' '           Text.Whitespace
'!'           Operator
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
')'           Punctuation
'\n'          Text.Whitespace

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

'            ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'foundNonAssignmentOp' Name
'-'           Operator
'>'           Operator
'length'      Name
'('           Punctuation
')'           Punctuation
' '           Text.Whitespace
'>'           Operator
' '           Text.Whitespace
'1'           Literal.Number.Integer
')'           Punctuation
'\n'          Text.Whitespace

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

'                ' Text.Whitespace
'outBuffer'   Name
'.'           Punctuation
'append'      Name
'('           Punctuation
'foundNonAssignmentOp' Name
'-'           Operator
'>'           Operator
'substr'      Name
'('           Punctuation
'1'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'                ' Text.Whitespace
'i'           Name
' '           Text.Whitespace
'+'           Operator
'='           Operator
' '           Text.Whitespace
'foundNonAssignmentOp' Name
'-'           Operator
'>'           Operator
'length'      Name
'('           Punctuation
')'           Punctuation
' '           Text.Whitespace
'-'           Operator
' '           Text.Whitespace
'1'           Literal.Number.Integer
';'           Punctuation
'\n'          Text.Whitespace

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

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

'\n'          Text.Whitespace

'        '    Text.Whitespace
'else'        Keyword
' '           Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'foundAssignmentOp' Name
' '           Text.Whitespace
'!'           Operator
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
')'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

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

'            ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'foundAssignmentOp' Name
'-'           Operator
'>'           Operator
'length'      Name
'('           Punctuation
')'           Punctuation
' '           Text.Whitespace
'>'           Operator
' '           Text.Whitespace
'1'           Literal.Number.Integer
')'           Punctuation
'\n'          Text.Whitespace

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

'                ' Text.Whitespace
'outBuffer'   Name
'.'           Punctuation
'append'      Name
'('           Punctuation
'foundAssignmentOp' Name
'-'           Operator
'>'           Operator
'substr'      Name
'('           Punctuation
'1'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'                ' Text.Whitespace
'i'           Name
' '           Text.Whitespace
'+'           Operator
'='           Operator
' '           Text.Whitespace
'foundAssignmentOp' Name
'-'           Operator
'>'           Operator
'length'      Name
'('           Punctuation
')'           Punctuation
' '           Text.Whitespace
'-'           Operator
' '           Text.Whitespace
'1'           Literal.Number.Integer
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'            ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'isInOperator' Name
' '           Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'!'           Operator
'isInTemplate' Name
')'           Punctuation
'\n'          Text.Whitespace

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

'                ' Text.Whitespace
'registerInStatementIndent' Name
'('           Punctuation
'line'        Name
','           Punctuation
' '           Text.Whitespace
'i'           Name
','           Punctuation
' '           Text.Whitespace
'spaceTabCount' Name
','           Punctuation
' '           Text.Whitespace
'0'           Literal.Number.Integer
','           Punctuation
' '           Text.Whitespace
'false'       Name.Builtin
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'                ' Text.Whitespace
'immediatelyPreviousAssignmentOp' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'foundAssignmentOp' Name
';'           Punctuation
'\n'          Text.Whitespace

'                ' Text.Whitespace
'isInStatement' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'true'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

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

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

'\n'          Text.Whitespace

'        '    Text.Whitespace
'/*\n                immediatelyPreviousAssignmentOp = NULL;\n                bool isNonAssingmentOperator = false;\n                for (int n = 0; n < nonAssignmentOperators.size(); n++)\n                    if (line.COMPARE(i, nonAssignmentOperators[n]->length(), *(nonAssignmentOperators[n])) == 0)\n                    {\n                        if (nonAssignmentOperators[n]->length() > 1)\n                        {\n                            outBuffer.append(nonAssignmentOperators[n]->substr(1));\n                            i += nonAssignmentOperators[n]->length() - 1;\n                        }\n                        isNonAssingmentOperator = true;\n                        break;\n                    }\n                if (!isNonAssingmentOperator)\n                {\n                    for (int a = 0; a < assignmentOperators.size(); a++)\n                        if (line.COMPARE(i, assignmentOperators[a]->length(), *(assignmentOperators[a])) == 0)\n                        {\n                            if (assignmentOperators[a]->length() > 1)\n                            {\n                                outBuffer.append(assignmentOperators[a]->substr(1));\n                                i += assignmentOperators[a]->length() - 1;\n                            }\n         \n                            if (!isInOperator && !isInTemplate)\n                            {\n                                registerInStatementIndent(line, i, spaceTabCount, 0, false);\n                                immediatelyPreviousAssignmentOp = assignmentOperators[a];\n                                isInStatement = true;\n                            }\n                            break;\n                        }\n                }\n        */' Comment.Multiline
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'        '    Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'isInOperator' Name
')'           Punctuation
'\n'          Text.Whitespace

'          '  Text.Whitespace
'isInOperator' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'false'       Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'    '        Text.Whitespace
'// handle special cases of unindentation:\n' Comment.Single

'\n'          Text.Whitespace

'    '        Text.Whitespace
'/*\n     * if \'{\' doesn\'t follow an immediately previous \'{\' in the headerStack\n     * (but rather another header such as "for" or "if", then unindent it\n     * by one indentation relative to its block.\n     */' Comment.Multiline
'\n'          Text.Whitespace

'    '        Text.Whitespace
'//    cerr << endl << lineOpeningBlocksNum << " " <<  lineClosingBlocksNum << " " <<  previousLastLineHeader << endl;\n' Comment.Single

'\n'          Text.Whitespace

'    '        Text.Whitespace
'// indent #define lines with one less tab\n' Comment.Single

'    '        Text.Whitespace
'//if (isInDefine)\n' Comment.Single

'    '        Text.Whitespace
'//    tabCount -= defineTabCount-1;\n' Comment.Single

'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'lineStartsInComment' Name
'\n'          Text.Whitespace

'        '    Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'!'           Operator
'blockIndent' Name
'\n'          Text.Whitespace

'        '    Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'outBuffer'   Name
'.'           Punctuation
'length'      Name
'('           Punctuation
')'           Punctuation
'>'           Operator
'0'           Literal.Number.Integer
'\n'          Text.Whitespace

'        '    Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'outBuffer'   Name
'['           Punctuation
'0'           Literal.Number.Integer
']'           Punctuation
'='           Operator
'='           Operator
"'"           Literal.String.Char
'{'           Literal.String.Char
"'"           Literal.String.Char
'\n'          Text.Whitespace

'        '    Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'!'           Operator
'('           Punctuation
'lineOpeningBlocksNum' Name
' '           Text.Whitespace
'>'           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
' '           Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'lineOpeningBlocksNum' Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'lineClosingBlocksNum' Name
')'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'!'           Operator
'('           Punctuation
'headerStack' Name
'-'           Operator
'>'           Operator
'size'        Name
'('           Punctuation
')'           Punctuation
' '           Text.Whitespace
'>'           Operator
' '           Text.Whitespace
'1'           Literal.Number.Integer
' '           Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'('           Punctuation
'*'           Operator
'headerStack' Name
')'           Punctuation
'['           Punctuation
'headerStack' Name
'-'           Operator
'>'           Operator
'size'        Name
'('           Punctuation
')'           Punctuation
'-2'          Literal.Number.Integer
']'           Punctuation
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'&'           Operator
'AS_OPEN_BRACKET' Name
')'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'shouldIndentBrackettedLine' Name
')'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'-'           Operator
'-'           Operator
'tabCount'    Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'else'        Keyword
' '           Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'lineStartsInComment' Name
'\n'          Text.Whitespace

'             ' Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'outBuffer'   Name
'.'           Punctuation
'length'      Name
'('           Punctuation
')'           Punctuation
'>'           Operator
'0'           Literal.Number.Integer
'\n'          Text.Whitespace

'             ' Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'outBuffer'   Name
'['           Punctuation
'0'           Literal.Number.Integer
']'           Punctuation
'='           Operator
'='           Operator
"'"           Literal.String.Char
'}'           Literal.String.Char
"'"           Literal.String.Char
'\n'          Text.Whitespace

'             ' Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'shouldIndentBrackettedLine' Name
' '           Text.Whitespace
')'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'-'           Operator
'-'           Operator
'tabCount'    Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'// correctly indent one-line-blocks...\n' Comment.Single

'    '        Text.Whitespace
'else'        Keyword
' '           Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'lineStartsInComment' Name
'\n'          Text.Whitespace

'             ' Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'outBuffer'   Name
'.'           Punctuation
'length'      Name
'('           Punctuation
')'           Punctuation
'>'           Operator
'0'           Literal.Number.Integer
'\n'          Text.Whitespace

'             ' Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'lineOpeningBlocksNum' Name
' '           Text.Whitespace
'>'           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
'\n'          Text.Whitespace

'             ' Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'lineOpeningBlocksNum' Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'lineClosingBlocksNum' Name
'\n'          Text.Whitespace

'             ' Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'previousLastLineHeader' Name
' '           Text.Whitespace
'!'           Operator
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
'\n'          Text.Whitespace

'             ' Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'previousLastLineHeader' Name
' '           Text.Whitespace
'!'           Operator
'='           Operator
' '           Text.Whitespace
'&'           Operator
'AS_OPEN_BRACKET' Name
')'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'tabCount'    Name
' '           Text.Whitespace
'-'           Operator
'='           Operator
' '           Text.Whitespace
'1'           Literal.Number.Integer
';'           Punctuation
' '           Text.Whitespace
'//lineOpeningBlocksNum - (blockIndent ? 1 : 0);\n' Comment.Single

'\n'          Text.Whitespace

'    '        Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'tabCount'    Name
' '           Text.Whitespace
'<'           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'tabCount'    Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'// take care of extra bracket indentatation option...\n' Comment.Single

'    '        Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'bracketIndent' Name
' '           Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'outBuffer'   Name
'.'           Punctuation
'length'      Name
'('           Punctuation
')'           Punctuation
'>'           Operator
'0'           Literal.Number.Integer
' '           Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'shouldIndentBrackettedLine' Name
')'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'outBuffer'   Name
'['           Punctuation
'0'           Literal.Number.Integer
']'           Punctuation
'='           Operator
'='           Operator
"'"           Literal.String.Char
'{'           Literal.String.Char
"'"           Literal.String.Char
' '           Text.Whitespace
'|'           Operator
'|'           Operator
' '           Text.Whitespace
'outBuffer'   Name
'['           Punctuation
'0'           Literal.Number.Integer
']'           Punctuation
'='           Operator
'='           Operator
"'"           Literal.String.Char
'}'           Literal.String.Char
"'"           Literal.String.Char
')'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'tabCount'    Name
'+'           Operator
'+'           Operator
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'isInDefine'  Name
')'           Punctuation
'\n'          Text.Whitespace

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

'        '    Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'outBuffer'   Name
'['           Punctuation
'0'           Literal.Number.Integer
']'           Punctuation
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
'#'           Literal.String.Char
"'"           Literal.String.Char
')'           Punctuation
'\n'          Text.Whitespace

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

'            ' Text.Whitespace
'string'      Name
' '           Text.Whitespace
'preproc'     Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'trim'        Name
'('           Punctuation
'string'      Name
'('           Punctuation
'outBuffer'   Name
'.'           Punctuation
'c_str'       Name
'('           Punctuation
')'           Punctuation
' '           Text.Whitespace
'+'           Operator
' '           Text.Whitespace
'1'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'            ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'preproc'     Name
'.'           Punctuation
'COMPARE'     Name
'('           Punctuation
'0'           Literal.Number.Integer
','           Punctuation
' '           Text.Whitespace
'6'           Literal.Number.Integer
','           Punctuation
' '           Text.Whitespace
'string'      Name
'('           Punctuation
'"'           Literal.String
'define'      Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
'\n'          Text.Whitespace

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

'                ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'inStatementIndentStack' Name
'-'           Operator
'>'           Operator
'empty'       Name
'('           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

'                    ' Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'inStatementIndentStack' Name
'-'           Operator
'>'           Operator
'back'        Name
'('           Punctuation
')'           Punctuation
' '           Text.Whitespace
'>'           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
'\n'          Text.Whitespace

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

'                    ' Text.Whitespace
'defineTabCount' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'tabCount'    Name
';'           Punctuation
'\n'          Text.Whitespace

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

'                ' Text.Whitespace
'else'        Keyword
'\n'          Text.Whitespace

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

'                    ' Text.Whitespace
'defineTabCount' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'tabCount'    Name
' '           Text.Whitespace
'-'           Operator
' '           Text.Whitespace
'1'           Literal.Number.Integer
';'           Punctuation
'\n'          Text.Whitespace

'                    ' Text.Whitespace
'tabCount'    Name
'-'           Operator
'-'           Operator
';'           Punctuation
'\n'          Text.Whitespace

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

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

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

'\n'          Text.Whitespace

'        '    Text.Whitespace
'tabCount'    Name
' '           Text.Whitespace
'-'           Operator
'='           Operator
' '           Text.Whitespace
'defineTabCount' Name
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'    '        Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'tabCount'    Name
' '           Text.Whitespace
'<'           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'tabCount'    Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'// finally, insert indentations into begining of line\n' Comment.Single

'\n'          Text.Whitespace

'    '        Text.Whitespace
'prevFinalLineSpaceTabCount' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'spaceTabCount' Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'prevFinalLineTabCount' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'tabCount'    Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'shouldForceTabIndentation' Name
')'           Punctuation
'\n'          Text.Whitespace

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

'        '    Text.Whitespace
'tabCount'    Name
' '           Text.Whitespace
'+'           Operator
'='           Operator
' '           Text.Whitespace
'spaceTabCount' Name
' '           Text.Whitespace
'/'           Operator
' '           Text.Whitespace
'indentLength' Name
';'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'spaceTabCount' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'spaceTabCount' Name
' '           Text.Whitespace
'%'           Operator
' '           Text.Whitespace
'indentLength' Name
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'    '        Text.Whitespace
'outBuffer'   Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'preLineWS'   Name
'('           Punctuation
'spaceTabCount' Name
','           Punctuation
'tabCount'    Name
')'           Punctuation
' '           Text.Whitespace
'+'           Operator
' '           Text.Whitespace
'outBuffer'   Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'lastLineHeader' Name
' '           Text.Whitespace
'!'           Operator
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
')'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'previousLastLineHeader' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'lastLineHeader' Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'outBuffer'   Name
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'\n'          Text.Whitespace

'  '          Text.Whitespace
'string'      Name
' '           Text.Whitespace
'ASBeautifier' Name
':'           Operator
':'           Operator
'preLineWS'   Name
'('           Punctuation
'int'         Keyword.Type
' '           Text.Whitespace
'spaceTabCount' Name
','           Punctuation
' '           Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'tabCount'    Name
')'           Punctuation
'\n'          Text.Whitespace

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

'    '        Text.Whitespace
'string'      Name
' '           Text.Whitespace
'ws'          Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'for'         Keyword
' '           Text.Whitespace
'('           Punctuation
'int'         Keyword.Type
' '           Text.Whitespace
'i'           Name
'='           Operator
'0'           Literal.Number.Integer
';'           Punctuation
' '           Text.Whitespace
'i'           Name
'<'           Operator
'tabCount'    Name
';'           Punctuation
' '           Text.Whitespace
'i'           Name
'+'           Operator
'+'           Operator
')'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'ws'          Name
' '           Text.Whitespace
'+'           Operator
'='           Operator
' '           Text.Whitespace
'indentString' Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'while'       Keyword
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'spaceTabCount' Name
'-'           Operator
'-'           Operator
')'           Punctuation
' '           Text.Whitespace
'>'           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'ws'          Name
' '           Text.Whitespace
'+'           Operator
'='           Operator
' '           Text.Whitespace
'string'      Name
'('           Punctuation
'"'           Literal.String
' '           Literal.String
'"'           Literal.String
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'ws'          Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'  '          Text.Whitespace
'/**\n   * register an in-statement indent.\n   */' Comment.Multiline
'\n'          Text.Whitespace

'  '          Text.Whitespace
'void'        Keyword.Type
' '           Text.Whitespace
'ASBeautifier' Name
':'           Operator
':'           Operator
'registerInStatementIndent' Name
'('           Punctuation
'const'       Keyword
' '           Text.Whitespace
'string'      Name
' '           Text.Whitespace
'&'           Operator
'line'        Name
','           Punctuation
' '           Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'i'           Name
','           Punctuation
' '           Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'spaceTabCount' Name
','           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'minIndent'   Name
','           Punctuation
' '           Text.Whitespace
'bool'        Keyword.Type
' '           Text.Whitespace
'updateParenStack' Name
')'           Punctuation
'\n'          Text.Whitespace

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

'    '        Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'inStatementIndent' Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'remainingCharNum' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'line'        Name
'.'           Punctuation
'length'      Name
'('           Punctuation
')'           Punctuation
' '           Text.Whitespace
'-'           Operator
' '           Text.Whitespace
'i'           Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'nextNonWSChar' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'1'           Literal.Number.Integer
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'nextNonWSChar' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'getNextProgramCharDistance' Name
'('           Punctuation
'line'        Name
','           Punctuation
' '           Text.Whitespace
'i'           Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'// if indent is around the last char in the line, indent instead 2 spaces from the previous indent\n' Comment.Single

'    '        Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'nextNonWSChar' Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'remainingCharNum' Name
')'           Punctuation
'\n'          Text.Whitespace

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

'        '    Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'previousIndent' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'spaceTabCount' Name
';'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'inStatementIndentStack' Name
'-'           Operator
'>'           Operator
'empty'       Name
'('           Punctuation
')'           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

'          '  Text.Whitespace
'previousIndent' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'inStatementIndentStack' Name
'-'           Operator
'>'           Operator
'back'        Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'        '    Text.Whitespace
'inStatementIndentStack' Name
'-'           Operator
'>'           Operator
'push_back'   Name
'('           Punctuation
'/*2*/'       Comment.Multiline
' '           Text.Whitespace
'indentLength' Name
' '           Text.Whitespace
'+'           Operator
' '           Text.Whitespace
'previousIndent' Name
' '           Text.Whitespace
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'updateParenStack' Name
')'           Punctuation
'\n'          Text.Whitespace

'          '  Text.Whitespace
'parenIndentStack' Name
'-'           Operator
'>'           Operator
'push_back'   Name
'('           Punctuation
' '           Text.Whitespace
'previousIndent' Name
' '           Text.Whitespace
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'return'      Keyword
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'    '        Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'updateParenStack' Name
')'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'parenIndentStack' Name
'-'           Operator
'>'           Operator
'push_back'   Name
'('           Punctuation
'i'           Name
'+'           Operator
'spaceTabCount' Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'inStatementIndent' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'i'           Name
' '           Text.Whitespace
'+'           Operator
' '           Text.Whitespace
'nextNonWSChar' Name
' '           Text.Whitespace
'+'           Operator
' '           Text.Whitespace
'spaceTabCount' Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'i'           Name
' '           Text.Whitespace
'+'           Operator
' '           Text.Whitespace
'nextNonWSChar' Name
' '           Text.Whitespace
'<'           Operator
' '           Text.Whitespace
'minIndent'   Name
')'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'inStatementIndent' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'minIndent'   Name
' '           Text.Whitespace
'+'           Operator
' '           Text.Whitespace
'spaceTabCount' Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'i'           Name
' '           Text.Whitespace
'+'           Operator
' '           Text.Whitespace
'nextNonWSChar' Name
' '           Text.Whitespace
'>'           Operator
' '           Text.Whitespace
'maxInStatementIndent' Name
')'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'inStatementIndent' Name
' '           Text.Whitespace
'='           Operator
'  '          Text.Whitespace
'indentLength' Name
'*'           Operator
'2'           Literal.Number.Integer
' '           Text.Whitespace
'+'           Operator
' '           Text.Whitespace
'spaceTabCount' Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'inStatementIndentStack' Name
'-'           Operator
'>'           Operator
'empty'       Name
'('           Punctuation
')'           Punctuation
' '           Text.Whitespace
'&'           Operator
'&'           Operator
'\n'          Text.Whitespace

'        '    Text.Whitespace
'inStatementIndent' Name
' '           Text.Whitespace
'<'           Operator
' '           Text.Whitespace
'inStatementIndentStack' Name
'-'           Operator
'>'           Operator
'back'        Name
'('           Punctuation
')'           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'inStatementIndent' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'inStatementIndentStack' Name
'-'           Operator
'>'           Operator
'back'        Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'inStatementIndentStack' Name
'-'           Operator
'>'           Operator
'push_back'   Name
'('           Punctuation
'inStatementIndent' Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'  '          Text.Whitespace
'/**\n   * get distance to the next non-white sspace, non-comment character in the line.\n   * if no such character exists, return the length remaining to the end of the line.\n   */' Comment.Multiline
'\n'          Text.Whitespace

'  '          Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'ASBeautifier' Name
':'           Operator
':'           Operator
'getNextProgramCharDistance' Name
'('           Punctuation
'const'       Keyword
' '           Text.Whitespace
'string'      Name
' '           Text.Whitespace
'&'           Operator
'line'        Name
','           Punctuation
' '           Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'i'           Name
')'           Punctuation
'\n'          Text.Whitespace

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

'    '        Text.Whitespace
'bool'        Keyword.Type
' '           Text.Whitespace
'inComment'   Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'false'       Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'remainingCharNum' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'line'        Name
'.'           Punctuation
'length'      Name
'('           Punctuation
')'           Punctuation
' '           Text.Whitespace
'-'           Operator
' '           Text.Whitespace
'i'           Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'charDistance' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'1'           Literal.Number.Integer
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'ch'          Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'for'         Keyword
' '           Text.Whitespace
'('           Punctuation
'charDistance' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'1'           Literal.Number.Integer
';'           Punctuation
' '           Text.Whitespace
'charDistance' Name
' '           Text.Whitespace
'<'           Operator
' '           Text.Whitespace
'remainingCharNum' Name
';'           Punctuation
' '           Text.Whitespace
'charDistance' Name
'+'           Operator
'+'           Operator
')'           Punctuation
'\n'          Text.Whitespace

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

'        '    Text.Whitespace
'ch'          Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'line'        Name
'['           Punctuation
'i'           Name
' '           Text.Whitespace
'+'           Operator
' '           Text.Whitespace
'charDistance' Name
']'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'inComment'   Name
')'           Punctuation
'\n'          Text.Whitespace

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

'            ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'line'        Name
'.'           Punctuation
'COMPARE'     Name
'('           Punctuation
'i'           Name
' '           Text.Whitespace
'+'           Operator
' '           Text.Whitespace
'charDistance' Name
','           Punctuation
' '           Text.Whitespace
'2'           Literal.Number.Integer
','           Punctuation
' '           Text.Whitespace
'AS_CLOSE_COMMENT' Name
')'           Punctuation
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
'\n'          Text.Whitespace

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

'                ' Text.Whitespace
'charDistance' Name
'+'           Operator
'+'           Operator
';'           Punctuation
'\n'          Text.Whitespace

'                ' Text.Whitespace
'inComment'   Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'false'       Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

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

'            ' Text.Whitespace
'continue'    Keyword
';'           Punctuation
'\n'          Text.Whitespace

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

'        '    Text.Whitespace
'else'        Keyword
' '           Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'isWhiteSpace' Name
'('           Punctuation
'ch'          Name
')'           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

'          '  Text.Whitespace
'continue'    Keyword
';'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'else'        Keyword
' '           Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'ch'          Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
'/'           Literal.String.Char
"'"           Literal.String.Char
')'           Punctuation
'\n'          Text.Whitespace

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

'            ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'line'        Name
'.'           Punctuation
'COMPARE'     Name
'('           Punctuation
'i'           Name
' '           Text.Whitespace
'+'           Operator
' '           Text.Whitespace
'charDistance' Name
','           Punctuation
' '           Text.Whitespace
'2'           Literal.Number.Integer
','           Punctuation
' '           Text.Whitespace
'AS_OPEN_LINE_COMMENT' Name
')'           Punctuation
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
'\n'          Text.Whitespace

'              ' Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'remainingCharNum' Name
';'           Punctuation
'\n'          Text.Whitespace

'            ' Text.Whitespace
'else'        Keyword
' '           Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'line'        Name
'.'           Punctuation
'COMPARE'     Name
'('           Punctuation
'i'           Name
' '           Text.Whitespace
'+'           Operator
' '           Text.Whitespace
'charDistance' Name
','           Punctuation
' '           Text.Whitespace
'2'           Literal.Number.Integer
','           Punctuation
' '           Text.Whitespace
'AS_OPEN_COMMENT' Name
')'           Punctuation
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
'\n'          Text.Whitespace

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

'                ' Text.Whitespace
'charDistance' Name
'+'           Operator
'+'           Operator
';'           Punctuation
'\n'          Text.Whitespace

'                ' Text.Whitespace
'inComment'   Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'true'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

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

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

'        '    Text.Whitespace
'else'        Keyword
'\n'          Text.Whitespace

'          '  Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'charDistance' Name
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'    '        Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'charDistance' Name
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'\n'          Text.Whitespace

'  '          Text.Whitespace
'/**\n   * check if a specific character can be used in a legal variable/method/class name\n   *\n   * @return          legality of the char.\n   * @param ch        the character to be checked.\n   */' Comment.Multiline
'\n'          Text.Whitespace

'  '          Text.Whitespace
'bool'        Keyword.Type
' '           Text.Whitespace
'ASBeautifier' Name
':'           Operator
':'           Operator
'isLegalNameChar' Name
'('           Punctuation
'char'        Keyword.Type
' '           Text.Whitespace
'ch'          Name
')'           Punctuation
' '           Text.Whitespace
'const'       Keyword
'\n'          Text.Whitespace

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

'      '      Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'('           Punctuation
'isalnum'     Name
'('           Punctuation
'ch'          Name
')'           Punctuation
' '           Text.Whitespace
"//(ch>='a' && ch<='z') || (ch>='A' && ch<='Z') || (ch>='0' && ch<='9') ||\n" Comment.Single

'              ' Text.Whitespace
'|'           Operator
'|'           Operator
' '           Text.Whitespace
'ch'          Name
'='           Operator
'='           Operator
"'"           Literal.String.Char
'.'           Literal.String.Char
"'"           Literal.String.Char
' '           Text.Whitespace
'|'           Operator
'|'           Operator
' '           Text.Whitespace
'ch'          Name
'='           Operator
'='           Operator
"'"           Literal.String.Char
'_'           Literal.String.Char
"'"           Literal.String.Char
' '           Text.Whitespace
'|'           Operator
'|'           Operator
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'isCStyle'    Name
' '           Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'ch'          Name
'='           Operator
'='           Operator
"'"           Literal.String.Char
'$'           Literal.String.Char
"'"           Literal.String.Char
')'           Punctuation
' '           Text.Whitespace
'|'           Operator
'|'           Operator
' '           Text.Whitespace
'('           Punctuation
'isCStyle'    Name
' '           Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'ch'          Name
'='           Operator
'='           Operator
"'"           Literal.String.Char
'~'           Literal.String.Char
"'"           Literal.String.Char
')'           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'\n'          Text.Whitespace

'  '          Text.Whitespace
'/**\n   * check if a specific line position contains a header, out of several possible headers.\n   *\n   * @return    a pointer to the found header. if no header was found then return NULL.\n   */' Comment.Multiline
'\n'          Text.Whitespace

'  '          Text.Whitespace
'const'       Keyword
' '           Text.Whitespace
'string'      Name
' '           Text.Whitespace
'*'           Operator
'ASBeautifier' Name
':'           Operator
':'           Operator
'findHeader'  Name
'('           Punctuation
'const'       Keyword
' '           Text.Whitespace
'string'      Name
' '           Text.Whitespace
'&'           Operator
'line'        Name
','           Punctuation
' '           Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'i'           Name
','           Punctuation
' '           Text.Whitespace
'const'       Keyword
' '           Text.Whitespace
'vector'      Name
'<'           Operator
'const'       Keyword
' '           Text.Whitespace
'string'      Name
'*'           Operator
'>'           Operator
' '           Text.Whitespace
'&'           Operator
'possibleHeaders' Name
','           Punctuation
' '           Text.Whitespace
'bool'        Keyword.Type
' '           Text.Whitespace
'checkBoundry' Name
')'           Punctuation
'\n'          Text.Whitespace

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

'    '        Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'maxHeaders'  Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'possibleHeaders' Name
'.'           Punctuation
'size'        Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'const'       Keyword
' '           Text.Whitespace
'string'      Name
' '           Text.Whitespace
'*'           Operator
'header'      Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'p'           Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'for'         Keyword
' '           Text.Whitespace
'('           Punctuation
'p'           Name
'='           Operator
'0'           Literal.Number.Integer
';'           Punctuation
' '           Text.Whitespace
'p'           Name
' '           Text.Whitespace
'<'           Operator
' '           Text.Whitespace
'maxHeaders'  Name
';'           Punctuation
' '           Text.Whitespace
'p'           Name
'+'           Operator
'+'           Operator
')'           Punctuation
'\n'          Text.Whitespace

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

'        '    Text.Whitespace
'header'      Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'possibleHeaders' Name
'['           Punctuation
'p'           Name
']'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'        '    Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'line'        Name
'.'           Punctuation
'COMPARE'     Name
'('           Punctuation
'i'           Name
','           Punctuation
' '           Text.Whitespace
'header'      Name
'-'           Operator
'>'           Operator
'length'      Name
'('           Punctuation
')'           Punctuation
','           Punctuation
' '           Text.Whitespace
'*'           Operator
'header'      Name
')'           Punctuation
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
'\n'          Text.Whitespace

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

'            ' Text.Whitespace
'// check that this is a header and not a part of a longer word\n' Comment.Single

'            ' Text.Whitespace
'// (e.g. not at its begining, not at its middle...)\n' Comment.Single

'\n'          Text.Whitespace

'            ' Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'lineLength'  Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'line'        Name
'.'           Punctuation
'length'      Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'            ' Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'headerEnd'   Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'i'           Name
' '           Text.Whitespace
'+'           Operator
' '           Text.Whitespace
'header'      Name
'-'           Operator
'>'           Operator
'length'      Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'            ' Text.Whitespace
'char'        Keyword.Type
' '           Text.Whitespace
'startCh'     Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'('           Punctuation
'*'           Operator
'header'      Name
')'           Punctuation
'['           Punctuation
'0'           Literal.Number.Integer
']'           Punctuation
';'           Punctuation
'   '         Text.Whitespace
'// first char of header\n' Comment.Single

'            ' Text.Whitespace
'char'        Keyword.Type
' '           Text.Whitespace
'endCh'       Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
';'           Punctuation
'                ' Text.Whitespace
'// char just after header\n' Comment.Single

'            ' Text.Whitespace
'char'        Keyword.Type
' '           Text.Whitespace
'prevCh'      Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
';'           Punctuation
'               ' Text.Whitespace
'// char just before header\n' Comment.Single

'\n'          Text.Whitespace

'            ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'headerEnd'   Name
' '           Text.Whitespace
'<'           Operator
' '           Text.Whitespace
'lineLength'  Name
')'           Punctuation
'\n'          Text.Whitespace

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

'                ' Text.Whitespace
'endCh'       Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'line'        Name
'['           Punctuation
'headerEnd'   Name
']'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

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

'            ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'i'           Name
' '           Text.Whitespace
'>'           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
'\n'          Text.Whitespace

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

'                ' Text.Whitespace
'prevCh'      Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'line'        Name
'['           Punctuation
'i'           Name
'-1'          Literal.Number.Integer
']'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'            ' Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'checkBoundry' Name
')'           Punctuation
'\n'          Text.Whitespace

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

'                ' Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'header'      Name
';'           Punctuation
'\n'          Text.Whitespace

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

'            ' Text.Whitespace
'else'        Keyword
' '           Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'prevCh'      Name
' '           Text.Whitespace
'!'           Operator
'='           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
'\n'          Text.Whitespace

'                     ' Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'isLegalNameChar' Name
'('           Punctuation
'startCh'     Name
')'           Punctuation
'\n'          Text.Whitespace

'                     ' Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'isLegalNameChar' Name
'('           Punctuation
'prevCh'      Name
')'           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

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

'                ' Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'NULL'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

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

'            ' Text.Whitespace
'else'        Keyword
' '           Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'headerEnd'   Name
' '           Text.Whitespace
'>'           Operator
'='           Operator
' '           Text.Whitespace
'lineLength'  Name
'\n'          Text.Whitespace

'                     ' Text.Whitespace
'|'           Operator
'|'           Operator
' '           Text.Whitespace
'!'           Operator
'isLegalNameChar' Name
'('           Punctuation
'startCh'     Name
')'           Punctuation
'\n'          Text.Whitespace

'                     ' Text.Whitespace
'|'           Operator
'|'           Operator
' '           Text.Whitespace
'!'           Operator
'isLegalNameChar' Name
'('           Punctuation
'endCh'       Name
')'           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

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

'                ' Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'header'      Name
';'           Punctuation
'\n'          Text.Whitespace

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

'            ' Text.Whitespace
'else'        Keyword
'\n'          Text.Whitespace

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

'                ' Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'NULL'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

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

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

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

'\n'          Text.Whitespace

'    '        Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'NULL'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'\n'          Text.Whitespace

'  '          Text.Whitespace
'/**\n   * check if a specific character can be used in a legal variable/method/class name\n   *\n   * @return          legality of the char.\n   * @param ch        the character to be checked.\n   */' Comment.Multiline
'\n'          Text.Whitespace

'  '          Text.Whitespace
'bool'        Keyword.Type
' '           Text.Whitespace
'ASBeautifier' Name
':'           Operator
':'           Operator
'isWhiteSpace' Name
'('           Punctuation
'char'        Keyword.Type
' '           Text.Whitespace
'ch'          Name
')'           Punctuation
' '           Text.Whitespace
'const'       Keyword
'\n'          Text.Whitespace

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

'      '      Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'('           Punctuation
'ch'          Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
' '           Literal.String.Char
"'"           Literal.String.Char
' '           Text.Whitespace
'|'           Operator
'|'           Operator
' '           Text.Whitespace
'ch'          Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
"'"           Literal.String.Char
'\\t'         Literal.String.Char
"'"           Literal.String.Char
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'  '          Text.Whitespace
'/**\n   * find the index number of a string element in a container of strings\n   *\n   * @return              the index number of element in the ocntainer. -1 if element not found.\n   * @param container     a vector of strings.\n   * @param element       the element to find .\n   */' Comment.Multiline
'\n'          Text.Whitespace

'  '          Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'ASBeautifier' Name
':'           Operator
':'           Operator
'indexOf'     Name
'('           Punctuation
'vector'      Name
'<'           Operator
'const'       Keyword
' '           Text.Whitespace
'string'      Name
'*'           Operator
'>'           Operator
' '           Text.Whitespace
'&'           Operator
'container'   Name
','           Punctuation
' '           Text.Whitespace
'const'       Keyword
' '           Text.Whitespace
'string'      Name
' '           Text.Whitespace
'*'           Operator
'element'     Name
')'           Punctuation
'\n'          Text.Whitespace

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

'    '        Text.Whitespace
'vector'      Name
'<'           Operator
'const'       Keyword
' '           Text.Whitespace
'string'      Name
'*'           Operator
'>'           Operator
':'           Operator
':'           Operator
'const_iterator' Name
' '           Text.Whitespace
'where'       Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'where'       Name
'='           Operator
' '           Text.Whitespace
'find'        Name
'('           Punctuation
'container'   Name
'.'           Punctuation
'begin'       Name
'('           Punctuation
')'           Punctuation
','           Punctuation
' '           Text.Whitespace
'container'   Name
'.'           Punctuation
'end'         Name
'('           Punctuation
')'           Punctuation
','           Punctuation
' '           Text.Whitespace
'element'     Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'where'       Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'container'   Name
'.'           Punctuation
'end'         Name
'('           Punctuation
')'           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'-1'          Literal.Number.Integer
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'else'        Keyword
'\n'          Text.Whitespace

'      '      Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'where'       Name
' '           Text.Whitespace
'-'           Operator
' '           Text.Whitespace
'container'   Name
'.'           Punctuation
'begin'       Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'  '          Text.Whitespace
'/**\n   * trim removes the white space surrounding a line.\n   *\n   * @return          the trimmed line.\n   * @param str       the line to trim.\n   */' Comment.Multiline
'\n'          Text.Whitespace

'  '          Text.Whitespace
'string'      Name
' '           Text.Whitespace
'ASBeautifier' Name
':'           Operator
':'           Operator
'trim'        Name
'('           Punctuation
'const'       Keyword
' '           Text.Whitespace
'string'      Name
' '           Text.Whitespace
'&'           Operator
'str'         Name
')'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'    '        Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'start'       Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'end'         Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'str'         Name
'.'           Punctuation
'length'      Name
'('           Punctuation
')'           Punctuation
' '           Text.Whitespace
'-'           Operator
' '           Text.Whitespace
'1'           Literal.Number.Integer
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'while'       Keyword
' '           Text.Whitespace
'('           Punctuation
'start'       Name
' '           Text.Whitespace
'<'           Operator
' '           Text.Whitespace
'end'         Name
' '           Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'isWhiteSpace' Name
'('           Punctuation
'str'         Name
'['           Punctuation
'start'       Name
']'           Punctuation
')'           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'start'       Name
'+'           Operator
'+'           Operator
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'while'       Keyword
' '           Text.Whitespace
'('           Punctuation
'start'       Name
' '           Text.Whitespace
'<'           Operator
'='           Operator
' '           Text.Whitespace
'end'         Name
' '           Text.Whitespace
'&'           Operator
'&'           Operator
' '           Text.Whitespace
'isWhiteSpace' Name
'('           Punctuation
'str'         Name
'['           Punctuation
'end'         Name
']'           Punctuation
')'           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'end'         Name
'-'           Operator
'-'           Operator
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'string'      Name
' '           Text.Whitespace
'returnStr'   Name.Function
'('           Punctuation
'str'         Name
','           Punctuation
' '           Text.Whitespace
'start'       Name
','           Punctuation
' '           Text.Whitespace
'end'         Name
'+'           Operator
'1'           Literal.Number.Integer
'-'           Operator
'start'       Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'returnStr'   Name
';'           Punctuation
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'#'           Comment.Preproc
'ifdef USES_NAMESPACE' Comment.Preproc
'\n'          Comment.Preproc

'}'           Punctuation
'\n'          Text.Whitespace

'#'           Comment.Preproc
'endif'       Comment.Preproc
'\n'          Comment.Preproc

'/*\n * Copyright (c) 1998,1999,2000,2001,2002 Tal Davidson. All rights reserved.\n *\n * compiler_defines.h   (1 January 1999)\n * by Tal Davidson (davidsont@bigfoot.com)\n * This file is a part of "Artistic Style" - an indentater and reformatter\n * of C, C++, C# and Java source files.\n *\n * The "Artistic Style" project, including all files needed to compile it,\n * is free software; you can redistribute it and/or use it and/or modify it\n * under the terms of the GNU General Public License as published \n * by the Free Software Foundation; either version 2 of the License, \n * or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n *\n * You should have received a copy of the GNU General Public\n * License along with this program.\n */' Comment.Multiline
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'\n'          Text.Whitespace

'#'           Comment.Preproc
'ifndef ASBEAUTIFIER_H' Comment.Preproc
'\n'          Comment.Preproc

'#'           Comment.Preproc
'define ASBEAUTIFIER_H' Comment.Preproc
'\n'          Comment.Preproc

'\n'          Text.Whitespace

'#'           Comment.Preproc
'include'     Comment.Preproc
' '           Text.Whitespace
'"ASResource.h"' Comment.PreprocFile
'\n'          Comment.Preproc

'#'           Comment.Preproc
'include'     Comment.Preproc
' '           Text.Whitespace
'"compiler_defines.h"' Comment.PreprocFile
'\n'          Comment.Preproc

'#'           Comment.Preproc
'include'     Comment.Preproc
' '           Text.Whitespace
'"ASSourceIterator.h"' Comment.PreprocFile
'\n'          Comment.Preproc

'\n'          Text.Whitespace

'#'           Comment.Preproc
'include'     Comment.Preproc
' '           Text.Whitespace
'<string>'    Comment.PreprocFile
'\n'          Comment.Preproc

'#'           Comment.Preproc
'include'     Comment.Preproc
' '           Text.Whitespace
'<vector>'    Comment.PreprocFile
'\n'          Comment.Preproc

'\n'          Text.Whitespace

'\n'          Text.Whitespace

'using'       Keyword
' '           Text.Whitespace
'namespace'   Keyword
' '           Text.Whitespace
'std'         Name.Namespace
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'namespace'   Keyword
' '           Text.Whitespace
'astyle'      Name.Namespace
'\n'          Text.Whitespace

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

'\n'          Text.Whitespace

'  '          Text.Whitespace
'enum'        Keyword
' '           Text.Whitespace
'BracketMode' Name.Class
'   '         Text.Whitespace
'{'           Punctuation
' '           Text.Whitespace
'NONE_MODE'   Name
','           Punctuation
' '           Text.Whitespace
'ATTACH_MODE' Name
','           Punctuation
' '           Text.Whitespace
'BREAK_MODE'  Name
','           Punctuation
' '           Text.Whitespace
'BDAC_MODE'   Name
' '           Text.Whitespace
'}'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'  '          Text.Whitespace
'enum'        Keyword
' '           Text.Whitespace
'BracketType' Name.Class
'   '         Text.Whitespace
'{'           Punctuation
' '           Text.Whitespace
'NULL_TYPE'   Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
','           Punctuation
'\n'          Text.Whitespace

'                       ' Text.Whitespace
'DEFINITION_TYPE' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'1'           Literal.Number.Integer
','           Punctuation
'\n'          Text.Whitespace

'                       ' Text.Whitespace
'COMMAND_TYPE' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'2'           Literal.Number.Integer
','           Punctuation
'\n'          Text.Whitespace

'                       ' Text.Whitespace
'ARRAY_TYPE'  Name
'  '          Text.Whitespace
'='           Operator
' '           Text.Whitespace
'4'           Literal.Number.Integer
','           Punctuation
'\n'          Text.Whitespace

'                       ' Text.Whitespace
'SINGLE_LINE_TYPE' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'8'           Literal.Number.Integer
'}'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'\n'          Text.Whitespace

'  '          Text.Whitespace
'class'       Keyword
' '           Text.Whitespace
'ASBeautifier' Name.Class
' '           Text.Whitespace
':'           Operator
' '           Text.Whitespace
'protected'   Keyword
' '           Text.Whitespace
'ASResource'  Name
'\n'          Text.Whitespace

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

'    '        Text.Whitespace
'public'      Keyword
':'           Operator
'\n'          Text.Whitespace

'      '      Text.Whitespace
'ASBeautifier' Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'virtual'     Keyword
' '           Text.Whitespace
'~'           Operator
'ASBeautifier' Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'virtual'     Keyword
' '           Text.Whitespace
'void'        Keyword.Type
' '           Text.Whitespace
'init'        Name.Function
'('           Punctuation
'ASSourceIterator' Name
'*'           Operator
' '           Text.Whitespace
'iter'        Name
')'           Punctuation
';'           Punctuation
' '           Text.Whitespace
'// pointer to dynamically created iterator.\n' Comment.Single

'      '      Text.Whitespace
'virtual'     Keyword
' '           Text.Whitespace
'void'        Keyword.Type
' '           Text.Whitespace
'init'        Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'virtual'     Keyword
' '           Text.Whitespace
'bool'        Keyword.Type
' '           Text.Whitespace
'hasMoreLines' Name.Function
'('           Punctuation
')'           Punctuation
' '           Text.Whitespace
'const'       Keyword
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'virtual'     Keyword
' '           Text.Whitespace
'string'      Name
' '           Text.Whitespace
'nextLine'    Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'virtual'     Keyword
' '           Text.Whitespace
'string'      Name
' '           Text.Whitespace
'beautify'    Name.Function
'('           Punctuation
'const'       Keyword
' '           Text.Whitespace
'string'      Name
' '           Text.Whitespace
'&'           Operator
'line'        Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'void'        Keyword.Type
' '           Text.Whitespace
'setTabIndentation' Name.Function
'('           Punctuation
'int'         Keyword.Type
' '           Text.Whitespace
'length'      Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'4'           Literal.Number.Integer
','           Punctuation
' '           Text.Whitespace
'bool'        Keyword.Type
' '           Text.Whitespace
'forceTabs'   Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'false'       Name.Builtin
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'void'        Keyword.Type
' '           Text.Whitespace
'setSpaceIndentation' Name.Function
'('           Punctuation
'int'         Keyword.Type
' '           Text.Whitespace
'length'      Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'4'           Literal.Number.Integer
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'void'        Keyword.Type
' '           Text.Whitespace
'setMaxInStatementIndentLength' Name.Function
'('           Punctuation
'int'         Keyword.Type
' '           Text.Whitespace
'max'         Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'void'        Keyword.Type
' '           Text.Whitespace
'setMinConditionalIndentLength' Name.Function
'('           Punctuation
'int'         Keyword.Type
' '           Text.Whitespace
'min'         Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'void'        Keyword.Type
' '           Text.Whitespace
'setClassIndent' Name.Function
'('           Punctuation
'bool'        Keyword.Type
' '           Text.Whitespace
'state'       Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'void'        Keyword.Type
' '           Text.Whitespace
'setSwitchIndent' Name.Function
'('           Punctuation
'bool'        Keyword.Type
' '           Text.Whitespace
'state'       Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'void'        Keyword.Type
' '           Text.Whitespace
'setCaseIndent' Name.Function
'('           Punctuation
'bool'        Keyword.Type
' '           Text.Whitespace
'state'       Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'void'        Keyword.Type
' '           Text.Whitespace
'setBracketIndent' Name.Function
'('           Punctuation
'bool'        Keyword.Type
' '           Text.Whitespace
'state'       Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'void'        Keyword.Type
' '           Text.Whitespace
'setBlockIndent' Name.Function
'('           Punctuation
'bool'        Keyword.Type
' '           Text.Whitespace
'state'       Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'void'        Keyword.Type
' '           Text.Whitespace
'setNamespaceIndent' Name.Function
'('           Punctuation
'bool'        Keyword.Type
' '           Text.Whitespace
'state'       Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'void'        Keyword.Type
' '           Text.Whitespace
'setLabelIndent' Name.Function
'('           Punctuation
'bool'        Keyword.Type
' '           Text.Whitespace
'state'       Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'void'        Keyword.Type
' '           Text.Whitespace
'setCStyle'   Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'void'        Keyword.Type
' '           Text.Whitespace
'setJavaStyle' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'void'        Keyword.Type
' '           Text.Whitespace
'setEmptyLineFill' Name.Function
'('           Punctuation
'bool'        Keyword.Type
' '           Text.Whitespace
'state'       Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'void'        Keyword.Type
' '           Text.Whitespace
'setPreprocessorIndent' Name.Function
'('           Punctuation
'bool'        Keyword.Type
' '           Text.Whitespace
'state'       Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'protected'   Keyword
':'           Operator
'\n'          Text.Whitespace

'      '      Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'getNextProgramCharDistance' Name
'('           Punctuation
'const'       Keyword
' '           Text.Whitespace
'string'      Name
' '           Text.Whitespace
'&'           Operator
'line'        Name
','           Punctuation
' '           Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'i'           Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'bool'        Keyword.Type
' '           Text.Whitespace
'isLegalNameChar' Name.Function
'('           Punctuation
'char'        Keyword.Type
' '           Text.Whitespace
'ch'          Name
')'           Punctuation
' '           Text.Whitespace
'const'       Keyword
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'bool'        Keyword.Type
' '           Text.Whitespace
'isWhiteSpace' Name.Function
'('           Punctuation
'char'        Keyword.Type
' '           Text.Whitespace
'ch'          Name
')'           Punctuation
' '           Text.Whitespace
'const'       Keyword
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'const'       Keyword
' '           Text.Whitespace
'string'      Name
' '           Text.Whitespace
'*'           Operator
'findHeader'  Name.Function
'('           Punctuation
'const'       Keyword
' '           Text.Whitespace
'string'      Name
' '           Text.Whitespace
'&'           Operator
'line'        Name
','           Punctuation
' '           Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'i'           Name
','           Punctuation
'\n'          Text.Whitespace

'                               ' Text.Whitespace
'const'       Keyword
' '           Text.Whitespace
'vector'      Name
'<'           Operator
'const'       Keyword
' '           Text.Whitespace
'string'      Name
'*'           Operator
'>'           Operator
' '           Text.Whitespace
'&'           Operator
'possibleHeaders' Name
','           Punctuation
'\n'          Text.Whitespace

'                               ' Text.Whitespace
'bool'        Keyword.Type
' '           Text.Whitespace
'checkBoundry' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'true'        Name.Builtin
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'string'      Name
' '           Text.Whitespace
'trim'        Name.Function
'('           Punctuation
'const'       Keyword
' '           Text.Whitespace
'string'      Name
' '           Text.Whitespace
'&'           Operator
'str'         Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'indexOf'     Name.Function
'('           Punctuation
'vector'      Name
'<'           Operator
'const'       Keyword
' '           Text.Whitespace
'string'      Name
'*'           Operator
'>'           Operator
' '           Text.Whitespace
'&'           Operator
'container'   Name
','           Punctuation
' '           Text.Whitespace
'const'       Keyword
' '           Text.Whitespace
'string'      Name
' '           Text.Whitespace
'*'           Operator
'element'     Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'private'     Keyword
':'           Operator
'\n'          Text.Whitespace

'      '      Text.Whitespace
'ASBeautifier' Name
'('           Punctuation
'const'       Keyword
' '           Text.Whitespace
'ASBeautifier' Name
' '           Text.Whitespace
'&'           Operator
'copy'        Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'void'        Keyword.Type
' '           Text.Whitespace
'operator'    Keyword
'='           Operator
'('           Punctuation
'ASBeautifier' Name
'&'           Operator
')'           Punctuation
';'           Punctuation
' '           Text.Whitespace
'// not to be implemented\n' Comment.Single

'\n'          Text.Whitespace

'      '      Text.Whitespace
'void'        Keyword.Type
' '           Text.Whitespace
'initStatic'  Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'void'        Keyword.Type
' '           Text.Whitespace
'registerInStatementIndent' Name.Function
'('           Punctuation
'const'       Keyword
' '           Text.Whitespace
'string'      Name
' '           Text.Whitespace
'&'           Operator
'line'        Name
','           Punctuation
' '           Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'i'           Name
','           Punctuation
' '           Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'spaceTabCount' Name
','           Punctuation
'\n'          Text.Whitespace

'                                     ' Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'minIndent'   Name
','           Punctuation
' '           Text.Whitespace
'bool'        Keyword.Type
' '           Text.Whitespace
'updateParenStack' Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'string'      Name
' '           Text.Whitespace
'preLineWS'   Name.Function
'('           Punctuation
'int'         Keyword.Type
' '           Text.Whitespace
'spaceTabCount' Name
','           Punctuation
' '           Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'tabCount'    Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'      '      Text.Whitespace
'static'      Keyword
' '           Text.Whitespace
'vector'      Name
'<'           Operator
'const'       Keyword
' '           Text.Whitespace
'string'      Name
'*'           Operator
'>'           Operator
' '           Text.Whitespace
'headers'     Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'static'      Keyword
' '           Text.Whitespace
'vector'      Name
'<'           Operator
'const'       Keyword
' '           Text.Whitespace
'string'      Name
'*'           Operator
'>'           Operator
' '           Text.Whitespace
'nonParenHeaders' Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'static'      Keyword
' '           Text.Whitespace
'vector'      Name
'<'           Operator
'const'       Keyword
' '           Text.Whitespace
'string'      Name
'*'           Operator
'>'           Operator
' '           Text.Whitespace
'preprocessorHeaders' Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'static'      Keyword
' '           Text.Whitespace
'vector'      Name
'<'           Operator
'const'       Keyword
' '           Text.Whitespace
'string'      Name
'*'           Operator
'>'           Operator
' '           Text.Whitespace
'preBlockStatements' Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'static'      Keyword
' '           Text.Whitespace
'vector'      Name
'<'           Operator
'const'       Keyword
' '           Text.Whitespace
'string'      Name
'*'           Operator
'>'           Operator
' '           Text.Whitespace
'assignmentOperators' Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'static'      Keyword
' '           Text.Whitespace
'vector'      Name
'<'           Operator
'const'       Keyword
' '           Text.Whitespace
'string'      Name
'*'           Operator
'>'           Operator
' '           Text.Whitespace
'nonAssignmentOperators' Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'      '      Text.Whitespace
'static'      Keyword
' '           Text.Whitespace
'bool'        Keyword.Type
' '           Text.Whitespace
'calledInitStatic' Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'      '      Text.Whitespace
'ASSourceIterator' Name
' '           Text.Whitespace
'*'           Operator
'sourceIterator' Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'vector'      Name
'<'           Operator
'ASBeautifier' Name
'*'           Operator
'>'           Operator
' '           Text.Whitespace
'*'           Operator
'waitingBeautifierStack' Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'vector'      Name
'<'           Operator
'ASBeautifier' Name
'*'           Operator
'>'           Operator
' '           Text.Whitespace
'*'           Operator
'activeBeautifierStack' Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'vector'      Name
'<'           Operator
'int'         Keyword.Type
'>'           Operator
' '           Text.Whitespace
'*'           Operator
'waitingBeautifierStackLengthStack' Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'vector'      Name
'<'           Operator
'int'         Keyword.Type
'>'           Operator
' '           Text.Whitespace
'*'           Operator
'activeBeautifierStackLengthStack' Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'vector'      Name
'<'           Operator
'const'       Keyword
' '           Text.Whitespace
'string'      Name
'*'           Operator
'>'           Operator
' '           Text.Whitespace
'*'           Operator
'headerStack' Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'vector'      Name
'<'           Operator
' '           Text.Whitespace
'vector'      Name
'<'           Operator
'const'       Keyword
' '           Text.Whitespace
'string'      Name
'*'           Operator
'>'           Operator
'*'           Operator
' '           Text.Whitespace
'>'           Operator
' '           Text.Whitespace
'*'           Operator
'tempStacks'  Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'vector'      Name
'<'           Operator
'int'         Keyword.Type
'>'           Operator
' '           Text.Whitespace
'*'           Operator
'blockParenDepthStack' Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'vector'      Name
'<'           Operator
'bool'        Keyword.Type
'>'           Operator
' '           Text.Whitespace
'*'           Operator
'blockStatementStack' Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'vector'      Name
'<'           Operator
'bool'        Keyword.Type
'>'           Operator
' '           Text.Whitespace
'*'           Operator
'parenStatementStack' Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'vector'      Name
'<'           Operator
'int'         Keyword.Type
'>'           Operator
' '           Text.Whitespace
'*'           Operator
'inStatementIndentStack' Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'vector'      Name
'<'           Operator
'int'         Keyword.Type
'>'           Operator
' '           Text.Whitespace
'*'           Operator
'inStatementIndentStackSizeStack' Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'vector'      Name
'<'           Operator
'int'         Keyword.Type
'>'           Operator
' '           Text.Whitespace
'*'           Operator
'parenIndentStack' Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'vector'      Name
'<'           Operator
'bool'        Keyword.Type
'>'           Operator
' '           Text.Whitespace
'*'           Operator
'bracketBlockStateStack' Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'string'      Name
' '           Text.Whitespace
'indentString' Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'const'       Keyword
' '           Text.Whitespace
'string'      Name
' '           Text.Whitespace
'*'           Operator
'currentHeader' Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'const'       Keyword
' '           Text.Whitespace
'string'      Name
' '           Text.Whitespace
'*'           Operator
'previousLastLineHeader' Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'const'       Keyword
' '           Text.Whitespace
'string'      Name
' '           Text.Whitespace
'*'           Operator
'immediatelyPreviousAssignmentOp' Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'const'       Keyword
' '           Text.Whitespace
'string'      Name
' '           Text.Whitespace
'*'           Operator
'probationHeader' Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'bool'        Keyword.Type
' '           Text.Whitespace
'isInQuote'   Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'bool'        Keyword.Type
' '           Text.Whitespace
'isInComment' Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'bool'        Keyword.Type
' '           Text.Whitespace
'isInCase'    Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'bool'        Keyword.Type
' '           Text.Whitespace
'isInQuestion' Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'bool'        Keyword.Type
' '           Text.Whitespace
'isInStatement' Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'bool'        Keyword.Type
' '           Text.Whitespace
'isInHeader'  Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'bool'        Keyword.Type
' '           Text.Whitespace
'isCStyle'    Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'bool'        Keyword.Type
' '           Text.Whitespace
'isInOperator' Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'bool'        Keyword.Type
' '           Text.Whitespace
'isInTemplate' Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'bool'        Keyword.Type
' '           Text.Whitespace
'isInConst'   Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'bool'        Keyword.Type
' '           Text.Whitespace
'isInDefine'  Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'bool'        Keyword.Type
' '           Text.Whitespace
'isInDefineDefinition' Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'bool'        Keyword.Type
' '           Text.Whitespace
'classIndent' Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'bool'        Keyword.Type
' '           Text.Whitespace
'isInClassHeader' Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'bool'        Keyword.Type
' '           Text.Whitespace
'isInClassHeaderTab' Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'bool'        Keyword.Type
' '           Text.Whitespace
'switchIndent' Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'bool'        Keyword.Type
' '           Text.Whitespace
'caseIndent'  Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'bool'        Keyword.Type
' '           Text.Whitespace
'namespaceIndent' Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'bool'        Keyword.Type
' '           Text.Whitespace
'bracketIndent' Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'bool'        Keyword.Type
' '           Text.Whitespace
'blockIndent' Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'bool'        Keyword.Type
' '           Text.Whitespace
'labelIndent' Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'bool'        Keyword.Type
' '           Text.Whitespace
'preprocessorIndent' Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'bool'        Keyword.Type
' '           Text.Whitespace
'isInConditional' Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'bool'        Keyword.Type
' '           Text.Whitespace
'isMinimalConditinalIndentSet' Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'bool'        Keyword.Type
' '           Text.Whitespace
'shouldForceTabIndentation' Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'minConditionalIndent' Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'parenDepth'  Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'indentLength' Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'blockTabCount' Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'unsigned'    Keyword.Type
' '           Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'leadingWhiteSpaces' Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'maxInStatementIndent' Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'templateDepth' Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'char'        Keyword.Type
' '           Text.Whitespace
'quoteChar'   Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'char'        Keyword.Type
' '           Text.Whitespace
'prevNonSpaceCh' Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'char'        Keyword.Type
' '           Text.Whitespace
'currentNonSpaceCh' Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'char'        Keyword.Type
' '           Text.Whitespace
'currentNonLegalCh' Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'char'        Keyword.Type
' '           Text.Whitespace
'prevNonLegalCh' Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'prevFinalLineSpaceTabCount' Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'prevFinalLineTabCount' Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'bool'        Keyword.Type
' '           Text.Whitespace
'emptyLineFill' Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'bool'        Keyword.Type
' '           Text.Whitespace
'backslashEndsPrevLine' Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'defineTabCount' Name
';'           Punctuation
'\n'          Text.Whitespace

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

'}'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'#'           Comment.Preproc
'endif'       Comment.Preproc
'\n'          Comment.Preproc

'/*\n * Copyright (c) 1998,1999,2000,2001,2002 Tal Davidson. All rights reserved.\n *\n * ASFormatter.cpp\n * by Tal Davidson (davidsont@bigfoot.com)\n * This file is a part of "Artistic Style" - an indentater and reformatter\n * of C, C++, C# and Java source files.\n *\n * The "Artistic Style" project, including all files needed to compile it,\n * is free software; you can redistribute it and/or use it and/or modify it\n * under the terms of the GNU General Public License as published \n * by the Free Software Foundation; either version 2 of the License, \n * or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n *\n * You should have received a copy of the GNU General Public\n * License along with this program.\n *\n *\n * Patches:\n * 26 November 1998 - Richard Bullington -\n *        A correction of line-breaking in headers following \'}\',\n \n *        was created using a variation of a  patch by Richard Bullington.\n * 08 May 2004\n *        applied   ASFormatter450670.patch.bz2, ASFormatter.cpp.patch.bz2,\n *                  patch1_ssvb_patch.tar.gz\n */' Comment.Multiline
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'#'           Comment.Preproc
'include'     Comment.Preproc
' '           Text.Whitespace
'"compiler_defines.h"' Comment.PreprocFile
'\n'          Comment.Preproc

'#'           Comment.Preproc
'include'     Comment.Preproc
' '           Text.Whitespace
'"ASFormatter.h"' Comment.PreprocFile
'\n'          Comment.Preproc

'\n'          Text.Whitespace

'\n'          Text.Whitespace

'#'           Comment.Preproc
'include'     Comment.Preproc
' '           Text.Whitespace
'<string>'    Comment.PreprocFile
'\n'          Comment.Preproc

'#'           Comment.Preproc
'include'     Comment.Preproc
' '           Text.Whitespace
'<cctype>'    Comment.PreprocFile
'\n'          Comment.Preproc

'#'           Comment.Preproc
'include'     Comment.Preproc
' '           Text.Whitespace
'<vector>'    Comment.PreprocFile
'\n'          Comment.Preproc

'#'           Comment.Preproc
'include'     Comment.Preproc
' '           Text.Whitespace
'<algorithm>' Comment.PreprocFile
'\n'          Comment.Preproc

'#'           Comment.Preproc
'include'     Comment.Preproc
' '           Text.Whitespace
'<iostream>'  Comment.PreprocFile
'\n'          Comment.Preproc

'\n'          Text.Whitespace

'\n'          Text.Whitespace

'#'           Comment.Preproc
'define INIT_CONTAINER(container, value)     {if ( (container) != NULL ) delete (container); (container) = (value); }' Comment.Preproc
'\n'          Comment.Preproc

'#'           Comment.Preproc
'define DELETE_CONTAINER(container)          {if ( (container) != NULL ) delete (container) ; }' Comment.Preproc
'\n'          Comment.Preproc

'#'           Comment.Preproc
'define IS_A(a,b)                            ( ((a) & (b)) == (b))' Comment.Preproc
'\n'          Comment.Preproc

'#'           Comment.Preproc
'ifdef USES_NAMESPACE' Comment.Preproc
'\n'          Comment.Preproc

'using'       Keyword
' '           Text.Whitespace
'namespace'   Keyword
' '           Text.Whitespace
'std'         Name.Namespace
';'           Punctuation
'\n'          Text.Whitespace
