" lite_minlines = x to sync at least x lines backwards
" Remove any old syntax stuff hanging around
syn clear
if !exists("main_syntax")
let main_syntax = 'lite'
endif
if main_syntax == 'lite'
if exists("lite_sql_query")
if lite_sql_query == 1
syn include @liteSql <sfile>:p:h/sql.vim
endif
endif
endif
if (main_syntax == 'msql')
if exists("msql_sql_query")
if msql_sql_query == 1
syn include @liteSql <sfile>:p:h/sql.vim
endif
endif
endif
syn cluster liteSql remove=sqlString,sqlComment
syn case match
" Internal Variables
syn keyword liteIntVar ERRMSG contained
" Comment
syn region liteComment start="/\*" end="\*/" contains=liteTodo
" Function names
syn keyword liteFunctions echo printf fprintf open close read
syn keyword liteFunctions readln readtok
syn keyword liteFunctions split strseg chop tr sub substr
syn keyword liteFunctions test unlink umask chmod mkdir chdir rmdir
syn keyword liteFunctions rename truncate link symlink stat
syn keyword liteFunctions sleep system getpid getpidd kill
syn keyword liteFunctions time ctime time2unixtime unixtime2year
syn keyword liteFunctions unixtime2year unixtime2month unixtime2day
syn keyword liteFunctions unixtime2hour unixtime2min unixtime2sec
syn keyword liteFunctions strftime
syn keyword liteFunctions getpwnam getpwuid
syn keyword liteFunctions gethostbyname gethostbyaddress
syn keyword liteFunctions urlEncode setContentType includeFile
syn keyword liteFunctions msqlConnect msqlClose msqlSelectDB
syn keyword liteFunctions msqlQuery msqlStoreResult msqlFreeResult
syn keyword liteFunctions msqlFetchRow msqlDataSeek msqlListDBs
syn keyword liteFunctions msqlListTables msqlInitFieldList msqlListField
syn keyword liteFunctions msqlFieldSeek msqlNumRows msqlEncode
syn keyword liteFunctions exit fatal typeof
" Identifier
syn match liteIdentifier "$[a-zA-Z_][a-zA-Z0-9_]*" contains=liteIntVar
syn match liteGlobalIdentifier "@[a-zA-Z_][a-zA-Z0-9_]*" contains=liteIntVar
" Conditional
syn keyword liteConditional if else
" Repeat
syn keyword liteRepeat while
" Operator
syn keyword liteStatement break return continue
" Operator
syn match liteOperator "[-+=#*]"
syn match liteOperator "/[^*]"me=e-1
syn match liteOperator "/$"
syn match liteRelation "&&"
syn match liteRelation "||"
syn match liteRelation "[!=<>]="
syn match liteRelation "[<>]"
" Include
syn keyword liteInclude load
" Define
syn keyword liteDefine funct
" Type
syn keyword liteType int uint char real
" String
syn region liteString keepend matchgroup=None start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=liteIdentifier,liteSpecialChar,@liteSql
" Number
syn match liteNumber "-\=\<\d\+\>"
" Float
syn match liteFloat "\(-\=\<\d+\|-\=\)\.\d\+\>"
" SpecialChar
syn match liteSpecialChar "\\[abcfnrtv\\]" contained
syn match liteParentError "[)}\]]"
" Todo
syn keyword liteTodo TODO Todo todo contained
" dont syn #!...
syn match liteExec "^#!.*$"
" Parents
syn cluster liteInside contains=liteComment,liteFunctions,liteIdentifier,liteGlobalIdentifier,liteConditional,liteRepeat,liteStatement,liteOperator,liteRelation,liteType,liteString,liteNumber,liteFloat,liteParent
syn region liteParent matchgroup=Delimiter start="(" end=")" contains=@liteInside
syn region liteParent matchgroup=Delimiter start="{" end="}" contains=@liteInside
syn region liteParent matchgroup=Delimiter start="\[" end="\]" contains=@liteInside
" sync
if exists("lite_minlines")
exec "syn sync minlines=" . lite_minlines
endif
if !exists("did_lite_syntax_inits")
let did_lite_syntax_inits = 1
" The default methods for highlighting. Can be overridden later
hi link liteComment Comment
hi link liteString String
hi link liteNumber Number
hi link liteFloat Float
hi liteIdentifier guifg=DarkGrey ctermfg=Brown
hi liteGlobalIdentifier guifg=DarkGrey ctermfg=Brown