object SyntAnal19: TLibSyntAnalyzer
  Formats = <
    item
      DisplayName = 'Comment'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clGray
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = [fsItalic]
    end
    item
      DisplayName = 'String'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clTeal
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = []
    end
    item
      DisplayName = 'Number'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clNavy
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = [fsBold]
    end
    item
      DisplayName = 'Symbol'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clMaroon
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = []
    end
    item
      DisplayName = 'Id'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clBlack
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = []
    end
    item
      DisplayName = 'Id reserved'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clNavy
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = []
    end
    item
      DisplayName = 'Id func'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clGreen
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = []
    end
    item
      DisplayName = 'Id standard'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clPurple
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = []
    end
    item
      DisplayName = 'String2'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clOlive
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = []
    end>
  TokenRules = <
    item
      DisplayName = 'CommLongBracket'
      StyleName = 'Comment'
      TokenType = 1
      Expression = '(?s)-- \[\[ .*? (\]\] | \Z)'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'CommLongBracket2'
      StyleName = 'Comment'
      TokenType = 1
      Expression = '(?s)-- \[(=+)\[ .*? (\]\1\] | \Z)'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Comm'
      StyleName = 'Comment'
      TokenType = 1
      Expression = '--.*$'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'StrLongBracket'
      StyleName = 'String2'
      TokenType = 4
      Expression = '(?s)\[\[ .*? (\]\] | \Z)'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'StrLongBracket2'
      StyleName = 'String2'
      TokenType = 4
      Expression = '(?s)\[(=+)\[ .*? (\]\1\] | \Z)'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Str'
      StyleName = 'String'
      TokenType = 4
      Expression = '("|'#39')(\\\\|\\"|\\'#39'|.)*?(\1|$)'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = '_IdFunc1'
      StyleName = 'Id func'
      TokenType = 10
      Expression = '[\w\.:]+(?=\s*=\s*function\s*\()'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = '_IdFunc2'
      StyleName = 'Id func'
      TokenType = 10
      Expression = '(?<=function\x20+)[\w\.:]+'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Id'
      StyleName = 'Id'
      TokenType = 2
      Expression = '[a-zA-Z_][\w\d]*'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Symbol single'
      StyleName = 'Symbol'
      TokenType = 3
      Expression = '[\(\)\[\]\{\}]'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Symbol'
      StyleName = 'Symbol'
      TokenType = 3
      Expression = '[\+\-/\*\<>\.,~!&\|;:=%\^\#]+'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'NumHex'
      StyleName = 'Number'
      TokenType = 7
      Expression = '0x[A-Fa-f0-9]+'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'NumFloat'
      StyleName = 'Number'
      TokenType = 6
      Expression = '\d+(\.\d+)? e[\+\-]?\d+ |'#13#10'\d+\.\d+ '
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Num'
      StyleName = 'Number'
      TokenType = 5
      Expression = '\d+'
      ColumnFrom = 0
      ColumnTo = 0
    end>
  BlockRules = <
    item
      DisplayName = 'Id keyword'
      StyleName = 'Id reserved'
      BlockType = btTagDetect
      ConditionList = <
        item
          TagList.Strings = (
            'and'
            'break'
            'do'
            'else'
            'elseif'
            'end'
            'false'
            'for'
            'function'
            'if'
            'in'
            'local'
            'nil'
            'not'
            'or'
            'repeat'
            'return'
            'then'
            'true'
            'until'
            'while')
          TokenTypes = 4
        end>
      HighlightPos = cpAny
      IgnoreAsParent = False
    end
    item
      DisplayName = 'Id std'
      StyleName = 'Id standard'
      BlockType = btTagDetect
      ConditionList = <
        item
          TagList.Strings = (
            '_ALERT'
            '_ERRORMESSAGE'
            '_G'
            '_INPUT'
            '_OUTPUT'
            '_PROMPT'
            '_STDERR'
            '_STDIN'
            '_STDOUT'
            '_VERSION'
            'abs'
            'acos'
            'appendto'
            'asin'
            'assert'
            'atan'
            'atan2'
            'call'
            'ceil'
            'clock'
            'closefile'
            'collectgarbage'
            'coroutine'
            'cos'
            'date'
            'debug'
            'deg'
            'difftime'
            'dofile'
            'dostring'
            'error'
            'execute'
            'exit'
            'exp'
            'floor'
            'flush'
            'foreach'
            'foreachi'
            'format'
            'frexp'
            'gcinfo'
            'getenv'
            'getfenv'
            'getmetatable'
            'getn'
            'globals'
            'gsub'
            'io'
            'ipairs'
            'ldexp'
            'loadfile'
            'loadlib'
            'loadstring'
            'log'
            'log10'
            'math'
            'max'
            'min'
            'mod'
            'newtype'
            'next'
            'openfile'
            'os'
            'pairs'
            'pcall'
            'print'
            'rad'
            'random'
            'randomseed'
            'rawegal'
            'rawget'
            'rawset'
            'read'
            'readfrom'
            'remove'
            'rename'
            'require'
            'seek'
            'setfenv'
            'setlocale'
            'setmetatable'
            'sin'
            'sort'
            'sqrt'
            'strbyte'
            'strchar'
            'strfind'
            'string'
            'strlen'
            'strlower'
            'strrep'
            'strsub'
            'strupper'
            'table'
            'tan'
            'time'
            'tinsert'
            'tmpfile'
            'tmpname'
            'tonumber'
            'tostring'
            'tremove'
            'type'
            'unpack'
            'write'
            'writeto'
            'xpcall')
          TokenTypes = 4
        end>
      HighlightPos = cpAny
      IgnoreAsParent = False
    end
    item
      DisplayName = 'Block comment'
      BlockName = 'Block comment'
      NotParent = True
      AlwaysEnabled = True
      ConditionList = <
        item
          TokenTypes = 2
        end>
      BlockEnd = 'Block comment end'
      EndOfTextClose = True
      DisplayInTree = False
      HighlightPos = cpBound
      CollapseFmt = '/* ... */'
      IgnoreAsParent = False
    end
    item
      DisplayName = 'Block comment end'
      BlockName = 'Block comment'
      StrictParent = True
      AlwaysEnabled = True
      BlockType = btRangeEnd
      ConditionList = <
        item
          CondType = tcNotEqual
          TokenTypes = 2
        end>
      BlockOffset = 1
      HighlightPos = cpBound
      IgnoreAsParent = False
    end
    item
      DisplayName = 'func'
      ConditionList = <
        item
          TokenTypes = 1024
        end>
      BlockEnd = 'end'
      HighlightPos = cpAny
      CancelNextRules = True
      DrawStaple = True
      NoEndRule = True
      TreeItemImage = 5
      IgnoreAsParent = False
    end
    item
      DisplayName = 'end'
      BlockType = btRangeEnd
      ConditionList = <
        item
          TagList.Strings = (
            'end')
          TokenTypes = 4
        end>
      HighlightPos = cpAny
      IgnoreAsParent = False
    end
    item
      DisplayName = 'begin'
      ConditionList = <
        item
          TagList.Strings = (
            'do'
            'function'
            'if')
          TokenTypes = 4
        end>
      BlockEnd = 'end'
      DisplayInTree = False
      HighlightPos = cpAny
      DrawStaple = True
      CollapseFmt = '%sz0'
      IgnoreAsParent = False
    end
    item
      DisplayName = 'repeat'
      ConditionList = <
        item
          TagList.Strings = (
            'repeat')
          TokenTypes = 4
        end>
      BlockEnd = 'until'
      DisplayInTree = False
      HighlightPos = cpAny
      DrawStaple = True
      CollapseFmt = '%sz0'
      IgnoreAsParent = False
    end
    item
      DisplayName = 'until'
      BlockType = btRangeEnd
      ConditionList = <
        item
          TagList.Strings = (
            'until')
          TokenTypes = 4
        end>
      HighlightPos = cpAny
      IgnoreAsParent = False
    end>
  CodeTemplates = <>
  SubAnalyzers = <>
  SampleText.Strings = (
    '--Str'
    '--test'
    '--test'
    ''
    ' s = '#39'ww\'#39'ww'#39', "ww\"ww", '#39'alo\n123"'#39
    ' a = [[alo'
    '  123]] test'
    ' a = [==['
    '  alo'
    '  123]==] test'
    ''
    ' n = 2 + 2.22 + 22.22e-2 + 0.22E1 '
    ' n = 0xF0'
    ''
    'function Set.mt.__lt (a,b)'
    '  return a <= b and not (b <= a)'
    'end'
    ''
    'function perm:app (a, n)'
    '  if n == 0 then'
    '    coroutine.yield(a)'
    '  else'
    '    for i=1,n do'
    '      -- put i-th element as the last one'
    '      a[n], a[i] = a[i], a[n]'
    ''
    '      -- generate all permutations of the other elements'
    '      permgen(a, n - 1)'
    ''
    '      -- restore i-th element'
    '      a[n], a[i] = a[i], a[n]'
    '    end'
    '  end'
    'end'
    ''
    'function perm (a)'
    '  local n = table.getn(a)'
    '  return coroutine.wrap(function () permgen(a, n) end)'
    'end'
    ''
    'function printResult (a)'
    '  for i,v in ipairs(a) do'
    '    io.write(v, " ")'
    '  end'
    '  io.write("\n")'
    'end'
    'repeat'
    '  print "aa"'
    'until true ')
  TokenTypeNames.Strings = (
    'Unknown'
    'Comment'
    'Identifier'
    'Symbol'
    'String'
    'Integer const'
    'Float const'
    'Hex const'
    'Char const'
    'Preprocessor'
    'Func name')
  Extentions = 'lua'
  LexerName = 'Lua'
  Notes.Strings = (
    'Alex (Synwrite)'
    'Ref: http://www.lua.org/manual/5.1/manual.html')
  LineComment = '--'
  Charset = DEFAULT_CHARSET
end
