" Vim syntax file " Filename: praat.vim " Language: Praat - doing phonetics by computer (www.praat.org) " Maintainer: Pablo Arantes - parantes(at)fastmail(dot)fm " Last Change: 2006 Feb 17 " """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" syntax clear syntax case match " Arguments to form (Manual, section 6.1) syntax keyword praatType boolean button choice comment integer syntax keyword praatType natural option optionmenu positive syntax keyword praattype real sentence word text " Loops and conditionals syntax keyword praatConditional if else elsif elif endif fi syntax keyword praatRepeat for from to endfor repeat until while endwhile " Statements syntax keyword praatStatement call clearinfo echo execute pause nowarn syntax keyword praatStatement plus minus printline printtab Remove syntax keyword praatStatement select yes all filedelete fileappend " Compound statements (like Read from file...) syntax match praatDottedStat "[A-Z]\{1\}[A-Za-z \-]*\.\{3\}" syntax match praatCompStat "\W*\*s[A-Z]\{1\}[A-Za-z \-]*$" " Environments syntax keyword praatEnvironment editor endeditor procedure endproc syntax keyword praatEnvironment form endform " Mathematical Functions (Praat Manual, Formulas, section 4) syntax keyword praatFunction abs arccos arcosh arcsin arcsinh arctan syntax keyword praatFunction arctan2 arctanh barkToHertz binomialP syntax keyword praatFunction ceiling chiSquareP chiSquareQ cos cosh syntax keyword praatFunction differenceLimensToPhon erb erbToHertz syntax keyword praatFunction erf erfc exp fisherP fisherQ floor syntax keyword praatFunction gaussP gaussQ hertzToBark hertzToErb syntax keyword praatFunction hertzToMel hertzToSemitones imax imin syntax keyword praatFunction invBinomialP invBinomialQ invChiSquareQ syntax keyword praatFunction invFisherQ invGaussQ invStudentQ ln syntax keyword praatFunction lnGamma log10 log2 max melToHertz min syntax keyword praatFunction phonToDifferenceLimens randomGauss syntax keyword praatFunction randomInteger randomPoisson randomUniform syntax keyword praatFunction round semitonesToHertz sigmoid sin sinh syntax keyword praatFunction sort sqrt stundentP studentQ tan tanh nSelected " Constants (Praat Manual, Formulas, section 3) syntax keyword praatConstant pi e undefined " String Functions (Praat Manual, Formulas, section 5) syntax keyword praatStrFunc contained left$ right$ mid$ syntax keyword praatStrFunc contained fixed$ date$ tab$ syntax keyword praatStrFunc contained extractWord$ newline$ syntax keyword praatStrFunc contained extractLine$ percent$ syntax keyword praatStrSpec colength index rindex startsWith syntax keyword praatStrSpec coendsWith extractNumber " Attributes of objects (Praat Manual, Formulas, section 7) syntax keyword praatAttribute xmin xmax ncol nrow nx dx ymin ymax ny dy " Types of objects (Praat Manual, Types of objects section) syntax keyword praatObject ArtWord BarkFilter CC Cepstrum Cochleagram syntax keyword praatObject DurationTier Excitation Formant FormantTier syntax keyword praatObject FormantFilter Harmonicity Intensity syntax keyword praatObject IntensityTier LFCC LPC LongSound Ltas MFCC syntax keyword praatObject Manipulation Matrix MelFilter ParamCurve syntax keyword praatObject Pitch PitchTier PointProcess Polygon Sequence syntax keyword praatObject Sequence Sound Speaker Spectrogram Spectrum syntax keyword praatObject SpellingChecker Strings TableOfReal TextGrid syntax keyword praatObject TextTier Wavelet WordList Table " String variables syntax match praatStrVar "\l\w*\$" contains=praatStrFunc " String Assignment syntax region praatString start=+"+ skip=+\\+ end=+"+ syntax region praatString start=+'+ skip=+\\+ end=+'+ " Delimiters syntax match praatDelim "[{}()\\]" syntax match praatDelim "[][]" " Operators (Praat Manual, Formulas section 2) " syntax keyword praatOperator div mod not syntax keyword praatOperator = / * ^ > < " Numbers syntax match praatNumber "\d" " Comments syntax match praatComment "#.*$" syntax match praatComment "!.*$" syntax match praatComment ";.*$" " Define the default highlighting " For version 5.7 and earlier: only when not done already " For version 5.8 and later: only when an item doesn't have " highlighting yet if version >= 508 || !exists("did_praat_syn_inits") if version < 508 let did_praat_syn_inits = 1 command -nargs=+ HiLink hi link else command -nargs=+ HiLink hi def endif highlight link praatType Type highlight link praatConditional Conditional highlight link praatRepeat Repeat highlight link praatStatement Statement highlight link praatEnvironment Repeat highlight link praatFunction Function highlight link praatConstant Constant highlight link praatStrFunc Function highlight link praatStrSpec Function highlight link praatAttribute Statement highlight link praatObject Type highlight link praatString String highlight link praatStrVar Identifier highlight link praatDelim Delimiter highlight link praatComment Comment highlight link praatNumber Number highlight link praatDottedStat Statement highlight link praatCompStat Statement highlight link praatOperator Type delcommand HiLink endif let b:current_syntax = "praat"