object SyntAnal16: TLibSyntAnalyzer
  Formats = <
    item
      DisplayName = 'Symbol'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clMaroon
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = [fsBold]
    end
    item
      DisplayName = 'Number'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clNavy
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = [fsBold]
    end
    item
      DisplayName = 'String'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clTeal
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = []
    end
    item
      DisplayName = 'String here'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clOlive
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = []
    end
    item
      DisplayName = 'Comment'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clGray
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = [fsItalic]
    end
    item
      DisplayName = 'Id'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clBlack
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = []
    end
    item
      DisplayName = 'Id keyword'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clBlack
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = [fsBold]
    end
    item
      DisplayName = 'Id type'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clPurple
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = []
    end
    item
      DisplayName = 'Variable'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clGreen
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = []
    end
    item
      DisplayName = 'Cmd'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clNavy
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = []
    end
    item
      DisplayName = 'Operator'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clRed
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = []
    end
    item
      DisplayName = 'Variable std'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clFuchsia
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = []
    end
    item
      DisplayName = 'Preprocessor'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clLime
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = []
    end>
  TokenRules = <
    item
      DisplayName = 'Req'
      StyleName = 'Preprocessor'
      Expression = '\#Requires\b.+'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Comment'
      StyleName = 'Comment'
      TokenType = 1
      Expression = '\#.*'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Comment 2'
      StyleName = 'Comment'
      TokenType = 1
      Expression = '(?s) <\# .*? (\#>|\Z)'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'String'
      StyleName = 'String'
      TokenType = 4
      Expression = '" (`"|""|.)*? ("|$)'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'String2'
      StyleName = 'String'
      TokenType = 4
      Expression = #39' .*? ('#39'|$)'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'StringHere'
      StyleName = 'String here'
      TokenType = 6
      Expression = '(?s) @(["'#39'])$ .+? ^\1@'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Var'
      StyleName = 'Variable'
      TokenType = 8
      Expression = '\$[\$\?\^] | \$(global:|local:|script:|private:|\d+:)?\w+'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Var2'
      StyleName = 'Variable'
      TokenType = 8
      Expression = '\$\{(`.|.)+?\}'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Id type'
      StyleName = 'Id type'
      TokenType = 9
      Expression = '(?<=[^\w]\[)\w[\w\-\.]*(?=[\[\]])'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Id'
      StyleName = 'Id'
      TokenType = 2
      Expression = '(?<!\-)[a-z_][\w-]*'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Number hex'
      StyleName = 'Number'
      TokenType = 5
      Expression = '(0x[\da-f]+|0b[01]+) (y|uy|s|us|l|u|ul|n)?(kb|mb|gb|tb|pb)?\b'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Number float'
      StyleName = 'Number'
      TokenType = 5
      Expression = 
        '\d+\.?\d* e[\+\-]?\d+ [DL]?(kb|mb|gb|tb|pb)?\b |'#13#10'\d+\.\d+ [DL]?' +
        '(kb|mb|gb|tb|pb)?\b'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Number int'
      StyleName = 'Number'
      TokenType = 5
      Expression = '\d+ (d|y|uy|s|us|l|u|ul|n)?(kb|mb|gb|tb|pb)?\b'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Operator text'
      StyleName = 'Operator'
      TokenType = 7
      Expression = 
        '-(f|eq|ne|gt|lt|le|ge|ceq|cne|cgt|clt|cle|cge|ieq|ine|igt|ilt|il' +
        'e|ige|match|imatch|cmatch|notmatch|inotmatch|cnotmatch|replace|i' +
        'replace|creplace|like|ilike|clike|notlike|inotlike|cnotlike|in|i' +
        'in|cin|notin|inotin|cnotin|contains|icontains|ccontains|notconta' +
        'ins|inotcontains|cnotcontains|and|or|xor|not|bAND|bOR|bXOR|bNOT|' +
        'split|isplit|csplit|join|is|isnot|as|regex|wildcard|exact|casese' +
        'nsitive)\b'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Operator symbol'
      StyleName = 'Operator'
      TokenType = 3
      Expression = '(&|--%|--|\+\+|::|[\+\-\*/%]=|=)'
      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>
  BlockRules = <
    item
      DisplayName = 'Keywords'
      StyleName = 'Id keyword'
      BlockType = btTagDetect
      ConditionList = <
        item
          TagList.Strings = (
            'Begin'
            'Break'
            'Catch'
            'Continue'
            'Data'
            'Do'
            'Dynamicparam'
            'Else'
            'Elseif'
            'End'
            'Exit'
            'Filter'
            'Finally'
            'For'
            'Foreach'
            'From'
            'Function'
            'If'
            'In'
            'Local'
            'Param'
            'Private'
            'Process'
            'Return'
            'switch'
            'Throw'
            'Trap'
            'Try'
            'Until'
            'Where'
            'While')
          TokenTypes = 4
          IgnoreCase = True
        end>
      HighlightPos = cpAny
      IgnoreAsParent = False
    end
    item
      DisplayName = 'Commands'
      StyleName = 'Cmd'
      BlockType = btTagDetect
      ConditionList = <
        item
          TagList.Strings = (
            'add-content'
            'add-history'
            'add-member'
            'add-pssnapin'
            'clear-content'
            'clear-item'
            'clear-itemproperty'
            'clear-variable'
            'compare-object'
            'convertfrom-securestring'
            'convert-path'
            'convertto-html'
            'convertto-securestring'
            'copy-item'
            'copy-itemproperty'
            'export-alias'
            'export-clixml'
            'export-console'
            'export-csv'
            'foreach-object'
            'format-custom'
            'format-list'
            'format-table'
            'format-wide'
            'get-acl'
            'get-alias'
            'get-authenticodesignature'
            'get-childitem'
            'get-command'
            'get-content'
            'get-credential'
            'get-culture'
            'get-date'
            'get-eventlog'
            'get-executionpolicy'
            'get-help'
            'get-history'
            'get-host'
            'get-item'
            'get-itemproperty'
            'get-location'
            'get-member'
            'get-pfxcertificate'
            'get-process'
            'get-psdrive'
            'get-psprovider'
            'get-pssnapin'
            'get-service'
            'get-tracesource'
            'get-uiculture'
            'get-unique'
            'get-variable'
            'get-wmiobject'
            'group-object'
            'import-alias'
            'import-clixml'
            'import-csv'
            'invoke-expression'
            'invoke-history'
            'invoke-item'
            'join-path'
            'measure-command'
            'measure-object'
            'move-item'
            'move-itemproperty'
            'new-alias'
            'new-item'
            'new-itemproperty'
            'new-object'
            'new-psdrive'
            'new-service'
            'new-timespan'
            'new-variable'
            'out-default'
            'out-file'
            'out-host'
            'out-null'
            'out-printer'
            'out-string'
            'pop-location'
            'push-location'
            'read-host'
            'remove-item'
            'remove-itemproperty'
            'remove-psdrive'
            'remove-pssnapin'
            'remove-variable'
            'rename-item'
            'rename-itemproperty'
            'resolve-path'
            'restart-service'
            'resume-service'
            'select-object'
            'select-string'
            'set-acl'
            'set-alias'
            'set-authenticodesignature'
            'set-content'
            'set-date'
            'set-executionpolicy'
            'set-item'
            'set-itemproperty'
            'set-location'
            'set-psdebug'
            'set-service'
            'set-tracesource'
            'set-variable'
            'sort-object'
            'split-path'
            'start-service'
            'start-sleep'
            'start-transcript'
            'stop-process'
            'stop-service'
            'stop-transcript'
            'suspend-service'
            'tee-object'
            'test-path'
            'trace-command'
            'update-formatdata'
            'update-typedata'
            'where-object'
            'write-debug'
            'write-error'
            'write-host'
            'write-output'
            'write-progress'
            'write-verbose'
            'write-warning')
          TokenTypes = 4
        end>
      HighlightPos = cpAny
      IgnoreAsParent = False
    end
    item
      DisplayName = 'Types'
      Enabled = False
      StyleName = 'Id type'
      BlockType = btTagDetect
      ConditionList = <
        item
          TagList.Strings = (
            'bigint'
            'bool'
            'byte'
            'datetime'
            'decimal'
            'double'
            'float'
            'hashtable'
            'int'
            'int16'
            'int32'
            'int64'
            'long'
            'sbyte'
            'short'
            'single'
            'string'
            'uint'
            'uint16'
            'uint32'
            'uint64'
            'ulong'
            'ushort')
          TokenTypes = 4
          IgnoreCase = True
        end>
      HighlightPos = cpAny
      IgnoreAsParent = False
    end
    item
      DisplayName = 'StdVars'
      StyleName = 'Variable std'
      BlockType = btTagDetect
      ConditionList = <
        item
          TagList.Strings = (
            '$^'
            '$_'
            '$?'
            '$$'
            '$args'
            '$ConfirmPreference'
            '$ConsoleFileName'
            '$DebugPreference'
            '$Error'
            '$ErrorActionPreference'
            '$ErrorView'
            '$Event'
            '$EventArgs'
            '$EventSubscriber'
            '$ExecutionContext'
            '$false'
            '$foreach'
            '$FormatEnumerationLimit'
            '$HOME'
            '$Host'
            '$InformationPreference'
            '$input'
            '$IsCoreCLR'
            '$IsLinux'
            '$IsMacOS'
            '$IsWindows'
            '$LastExitCode'
            '$Matches'
            '$MaximumAliasCount'
            '$MaximumDriveCount'
            '$MaximumErrorCount'
            '$MaximumFunctionCount'
            '$MaximumHistoryCount'
            '$MaximumVariableCount'
            '$MyInvocation'
            '$NestedPromptLevel'
            '$null'
            '$OFS'
            '$OutputEncoding'
            '$PID'
            '$PROFILE'
            '$ProgressPreference'
            '$PSBoundParameters'
            '$PSCmdlet'
            '$PSCommandPath'
            '$PSCulture'
            '$PSDebugContext'
            '$PSDefaultParameterValues'
            '$PSEmailServer'
            '$PSHOME'
            '$PSItem'
            '$PSModuleAutoLoadingPreference'
            '$PSScriptRoot'
            '$PSSenderInfo'
            '$PSSessionApplicationName'
            '$PSSessionConfigurationName'
            '$PSSessionOption'
            '$PSUICulture'
            '$PSVersionTable'
            '$PWD'
            '$Sender'
            '$ShellId'
            '$StackTrace'
            '$switch'
            '$this'
            '$true'
            '$VerbosePreference'
            '$WarningPreference'
            '$WhatIfPreference')
          TokenTypes = 256
          IgnoreCase = True
        end>
      HighlightPos = cpAny
      IgnoreAsParent = False
    end
    item
      DisplayName = '{'
      ConditionList = <
        item
          TagList.Strings = (
            '{')
          TokenTypes = 8
        end>
      BlockEnd = '}'
      DisplayInTree = False
      RefToCondEnd = True
      HighlightPos = cpAny
      CollapseFmt = '{ ... }'
      IgnoreAsParent = False
    end
    item
      DisplayName = '}'
      BlockType = btRangeEnd
      ConditionList = <
        item
          TagList.Strings = (
            '}')
          TokenTypes = 8
        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'
      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
        item
          TokenTypes = 2
        end>
      BlockOffset = 1
      HighlightPos = cpBound
      IgnoreAsParent = False
    end
    item
      DisplayName = 'Func'
      ConditionList = <
        item
          TokenTypes = 4
        end
        item
          TagList.Strings = (
            'function')
          TokenTypes = 4
          IgnoreCase = True
        end>
      NameFmt = 'func %s-1'
      HighlightPos = cpAny
      NoEndRule = True
      IgnoreAsParent = False
    end>
  CodeTemplates = <>
  SubAnalyzers = <>
  SampleText.Strings = (
    '# Comment'
    '#Requires -Modules @{Name}'
    'param( [string] $infile = $(throw "Enter filename") )'
    '$myname = "$infile.utf8"'
    'get-content -Path $infile | out-file $outfile -encoding utf8'
    '$null, $IsWindows, $event,  -ne, -lt, -ge, int32, datetime'
    '$private:myname = "My name is `"Joe"", hi" + '#39'Joe'#39#39'test'#39
    '$2:string = @"'
    'one'
    '"@'
    '<# Block comment'
    '#>'
    '0xBEEF, 0b010, 10, 20kb, 1tb + 2n, 1.2e-3, 1.2tb '
    '100u, 100D, 100l, 100uL, 100us, 100uy, 100y'
    '1e2, 1.e2, 0x1e2, 0x1e2L, 0x1e2D, 482D'
    '482gb, 482ngb, 0x1e2lgb, 0b1011011, 0xFFFFFFFF, 0xFFFFFFFFu'
    ''
    '${ugly variable name `{`} ...} = "12"'
    'function Do-Something {'
    '    Write-Host '#39'I did something!'#39
    '}')
  TokenTypeNames.Strings = (
    'Unknown'
    'Comment'
    'Id'
    'Symbol'
    'String'
    'Number'
    'String here'
    'Operator'
    'Var'
    'Id type')
  Extentions = 'ps1'
  LexerName = 'PowerShell'
  Notes.Strings = (
    'Alexey (CudaText)'
    'Tests: http://www.robvanderwoude.com/powershellexamples.php'
    
      'Numbers: https://docs.microsoft.com/en-us/powershell/module/micr' +
      'osoft.powershell.core/about/about_numeric_literals')
  LineComment = '# '
  Charset = DEFAULT_CHARSET
end
