vim-polyglot/syntax/tsalt.vim
2017-09-27 20:43:42 +02:00

211 lines
8.2 KiB
VimL

if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1
" Vim syntax file
" Language: Telix (Modem Comm Program) SALT Script
" Maintainer: Sean M. McKee <mckee@misslink.net>
" Last Change: 2012 Feb 03 by Thilo Six
" Version Info: @(#)tsalt.vim 1.5 97/12/16 08:11:15
" quit when a syntax file was already loaded
if exists("b:current_syntax")
finish
endif
let s:cpo_save = &cpo
set cpo&vim
" turn case matching off
syn case ignore
"FUNCTIONS
" Character Handling Functions
syn keyword tsaltFunction IsAscii IsAlNum IsAlpha IsCntrl IsDigit
syn keyword tsaltFunction IsLower IsUpper ToLower ToUpper
" Connect Device Operations
syn keyword tsaltFunction Carrier cInp_Cnt cGetC cGetCT cPutC cPutN
syn keyword tsaltFunction cPutS cPutS_TR FlushBuf Get_Baud
syn keyword tsaltFunction Get_DataB Get_Port Get_StopB Hangup
syn keyword tsaltFunction KillConnectDevice MakeConnectDevice
syn keyword tsaltFunction Send_Brk Set_ConnectDevice Set_Port
" File Input/Output Operations
syn keyword tsaltFunction fClearErr fClose fDelete fError fEOF fFlush
syn keyword tsaltFunction fGetC fGetS FileAttr FileFind FileSize
syn keyword tsaltFunction FileTime fnStrip fOpen fPutC fPutS fRead
syn keyword tsaltFunction fRename fSeek fTell fWrite
" File Transfers and Logs
syn keyword tsaltFunction Capture Capture_Stat Printer Receive Send
syn keyword tsaltFunction Set_DefProt UsageLog Usage_Stat UStamp
" Input String Matching
syn keyword tsaltFunction Track Track_AddChr Track_Free Track_Hit
syn keyword tsaltFunction WaitFor
" Keyboard Operations
syn keyword tsaltFunction InKey InKeyW KeyGet KeyLoad KeySave KeySet
" Miscellaneous Functions
syn keyword tsaltFunction ChatMode Dos Dial DosFunction ExitTelix
syn keyword tsaltFunction GetEnv GetFon HelpScreen LoadFon NewDir
syn keyword tsaltFunction Randon Redial RedirectDOS Run
syn keyword tsaltFunction Set_Terminal Show_Directory TelixVersion
syn keyword tsaltFunction Terminal TransTab Update_Term
" Script Management
syn keyword tsaltFunction ArgCount Call CallD CompileScript GetRunPath
syn keyword tsaltFunction Is_Loaded Load_Scr ScriptVersion
syn keyword tsaltFunction TelixForWindows Unload_Scr
" Sound Functions
syn keyword tsaltFunction Alarm PlayWave Tone
" String Handling
syn keyword tsaltFunction CopyChrs CopyStr DelChrs GetS GetSXY
syn keyword tsaltFunction InputBox InsChrs ItoS SetChr StoI StrCat
syn keyword tsaltFunction StrChr StrCompI StrLen StrLower StrMaxLen
syn keyword tsaltFunction StrPos StrPosI StrUpper SubChr SubChrs
syn keyword tsaltFunction SubStr
" Time, Date, and Timer Operations
syn keyword tsaltFunction CurTime Date Delay Delay_Scr Get_OnlineTime
syn keyword tsaltFunction tDay tHour tMin tMonth tSec tYear Time
syn keyword tsaltFunction Time_Up Timer_Free Time_Restart
syn keyword tsaltFunction Time_Start Time_Total
" Video Operations
syn keyword tsaltFunction Box CNewLine Cursor_OnOff Clear_Scr
syn keyword tsaltFunction GetTermHeight GetTermWidth GetX GetY
syn keyword tsaltFunction GotoXY MsgBox NewLine PrintC PrintC_Trm
syn keyword tsaltFunction PrintN PrintN_Trm PrintS PrintS_Trm
syn keyword tsaltFunction PrintSC PRintSC_Trm
syn keyword tsaltFunction PStrA PStrAXY Scroll Status_Wind vGetChr
syn keyword tsaltFunction vGetChrs vGetChrsA vPutChr vPutChrs
syn keyword tsaltFunction vPutChrsA vRstrArea vSaveArea
" Dynamic Data Exchange (DDE) Operations
syn keyword tsaltFunction DDEExecute DDEInitate DDEPoke DDERequest
syn keyword tsaltFunction DDETerminate DDETerminateAll
"END FUNCTIONS
"PREDEFINED VARAIABLES
syn keyword tsaltSysVar _add_lf _alarm_on _answerback_str _asc_rcrtrans
syn keyword tsaltSysVar _asc_remabort _asc_rlftrans _asc_scpacing
syn keyword tsaltSysVar _asc_scrtrans _asc_secho _asc_slpacing
syn keyword tsaltSysVar _asc_spacechr _asc_striph _back_color
syn keyword tsaltSysVar _capture_fname _connect_str _dest_bs
syn keyword tsaltSysVar _dial_pause _dial_time _dial_post
syn keyword tsaltSysVar _dial_pref1 _dial_pref2 _dial_pref3
syn keyword tsaltSysVar _dial_pref4 _dir_prog _down_dir
syn keyword tsaltSysVar _entry_bbstype _entry_comment _entry_enum
syn keyword tsaltSysVar _entry_name _entry_num _entry_logonname
syn keyword tsaltSysVar _entry_pass _fore_color _image_file
syn keyword tsaltSysVar _local_echo _mdm_hang_str _mdm_init_str
syn keyword tsaltSysVar _no_connect1 _no_connect2 _no_connect3
syn keyword tsaltSysVar _no_connect4 _no_connect5 _redial_stop
syn keyword tsaltSysVar _scr_chk_key _script_dir _sound_on
syn keyword tsaltSysVar _strip_high _swap_bs _telix_dir _up_dir
syn keyword tsaltSysVar _usage_fname _zmodauto _zmod_rcrash
syn keyword tsaltSysVar _zmod_scrash
"END PREDEFINED VARAIABLES
"TYPE
syn keyword tsaltType str int
"END TYPE
"KEYWORDS
syn keyword tsaltStatement goto break return continue
syn keyword tsaltConditional if then else
syn keyword tsaltRepeat while for do
"END KEYWORDS
syn keyword tsaltTodo contained TODO
" the rest is pretty close to C -----------------------------------------
" String and Character constants
" Highlight special characters (those which have a backslash) differently
syn match tsaltSpecial contained "\^\d\d\d\|\^."
syn region tsaltString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=tsaltSpecial
syn match tsaltCharacter "'[^\\]'"
syn match tsaltSpecialCharacter "'\\.'"
"catch errors caused by wrong parenthesis
syn region tsaltParen transparent start='(' end=')' contains=ALLBUT,tsaltParenError,tsaltIncluded,tsaltSpecial,tsaltTodo
syn match tsaltParenError ")"
syn match tsaltInParen contained "[{}]"
hi link tsaltParenError tsaltError
hi link tsaltInParen tsaltError
"integer number, or floating point number without a dot and with "f".
syn match tsaltNumber "\<\d\+\(u\=l\=\|lu\|f\)\>"
"floating point number, with dot, optional exponent
syn match tsaltFloat "\<\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=\>"
"floating point number, starting with a dot, optional exponent
syn match tsaltFloat "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
"floating point number, without dot, with exponent
syn match tsaltFloat "\<\d\+e[-+]\=\d\+[fl]\=\>"
"hex number
syn match tsaltNumber "0x[0-9a-f]\+\(u\=l\=\|lu\)\>"
"syn match cIdentifier "\<[a-z_][a-z0-9_]*\>"
syn region tsaltComment start="/\*" end="\*/" contains=cTodo
syn match tsaltComment "//.*" contains=cTodo
syn match tsaltCommentError "\*/"
syn region tsaltPreCondit start="^[ \t]*#[ \t]*\(if\>\|ifdef\>\|ifndef\>\|elif\>\|else\>\|endif\>\)" skip="\\$" end="$" contains=tsaltComment,tsaltString,tsaltCharacter,tsaltNumber,tsaltCommentError
syn region tsaltIncluded contained start=+"+ skip=+\\\\\|\\"+ end=+"+
syn match tsaltIncluded contained "<[^>]*>"
syn match tsaltInclude "^[ \t]*#[ \t]*include\>[ \t]*["<]" contains=tsaltIncluded
"syn match TelixSalyLineSkip "\\$"
syn region tsaltDefine start="^[ \t]*#[ \t]*\(define\>\|undef\>\)" skip="\\$" end="$" contains=ALLBUT,tsaltPreCondit,tsaltIncluded,tsaltInclude,tsaltDefine,tsaltInParen
syn region tsaltPreProc start="^[ \t]*#[ \t]*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" contains=ALLBUT,tsaltPreCondit,tsaltIncluded,tsaltInclude,tsaltDefine,tsaltInParen
" Highlight User Labels
syn region tsaltMulti transparent start='?' end=':' contains=ALLBUT,tsaltIncluded,tsaltSpecial,tsaltTodo
syn sync ccomment tsaltComment
" Define the default highlighting.
" Only when an item doesn't have highlighting yet
hi def link tsaltFunction Statement
hi def link tsaltSysVar Type
"hi def link tsaltLibFunc UserDefFunc
"hi def link tsaltConstants Type
"hi def link tsaltFuncArg Type
"hi def link tsaltOperator Operator
"hi def link tsaltLabel Label
"hi def link tsaltUserLabel Label
hi def link tsaltConditional Conditional
hi def link tsaltRepeat Repeat
hi def link tsaltCharacter SpecialChar
hi def link tsaltSpecialCharacter SpecialChar
hi def link tsaltNumber Number
hi def link tsaltFloat Float
hi def link tsaltCommentError tsaltError
hi def link tsaltInclude Include
hi def link tsaltPreProc PreProc
hi def link tsaltDefine Macro
hi def link tsaltIncluded tsaltString
hi def link tsaltError Error
hi def link tsaltStatement Statement
hi def link tsaltPreCondit PreCondit
hi def link tsaltType Type
hi def link tsaltString String
hi def link tsaltComment Comment
hi def link tsaltSpecial Special
hi def link tsaltTodo Todo
let b:current_syntax = "tsalt"
let &cpo = s:cpo_save
unlet s:cpo_save
" vim: ts=8
endif