class Rouge::Lexers::Praat

def self.detect?(text)

def self.detect?(text)
  return true if text.shebang? 'praat'
end

def self.functions_array

def self.functions_array
  @functions_array ||= %w(
    linear# randomGauss# randomInteger# randomUniform# zero#
  )
end

def self.functions_builtin

def self.functions_builtin
  @functions_builtin ||=
    self.functions_string |
    self.functions_numeric |
    self.functions_array |
    self.functions_matrix |
    self.functions_string_vector
end

def self.functions_matrix

def self.functions_matrix
  @functions_matrix ||= %w(
    linear## mul## mul_fast## mul_metal## mul_nt## mul_tn## mul_tt## outer## peaks##
    randomGamma## randomGauss## randomInteger## randomUniform## softmaxPerRow##
    solve## transpose## zero##
  )
end

def self.functions_numeric

def self.functions_numeric
  @functions_numeric ||= %w(
    abs appendFile appendFileLine appendInfo appendInfoLine arccos arccosh
    arcsin arcsinh arctan arctan2 arctanh barkToHertz beginPause
    beginSendPraat besselI besselK beta beta2 binomialP binomialQ boolean
    ceiling chiSquareP chiSquareQ choice comment cos cosh createDirectory
    deleteFile demoClicked demoClickedIn demoCommandKeyPressed
    demoExtraControlKeyPressed demoInput demoKeyPressed
    demoOptionKeyPressed demoShiftKeyPressed demoShow demoWaitForInput
    demoWindowTitle demoX demoY differenceLimensToPhon do editor endPause
    endSendPraat endsWith erb erbToHertz erf erfc exitScript exp
    extractNumber fileReadable fisherP fisherQ floor gaussP gaussQ hash
    hertzToBark hertzToErb hertzToMel hertzToSemitones imax imin
    incompleteBeta incompleteGammaP index index_regex integer invBinomialP
    invBinomialQ invChiSquareQ invFisherQ invGaussQ invSigmoid invStudentQ
    length ln lnBeta lnGamma log10 log2 max melToHertz min minusObject
    natural number numberOfColumns numberOfRows numberOfSelected
    objectsAreIdentical option optionMenu pauseScript
    phonToDifferenceLimens plusObject positive randomBinomial randomGauss
    randomInteger randomPoisson randomUniform real readFile removeObject
    rindex rindex_regex round runScript runSystem runSystem_nocheck
    selectObject selected semitonesToHertz sentence sentencetext sigmoid
    sin sinc sincpi sinh soundPressureToPhon sqrt startsWith studentP
    studentQ tan tanh text variableExists word writeFile writeFileLine
    writeInfo writeInfoLine
  )
end

def self.functions_string

def self.functions_string
  @functions_string ||= %w(
    backslashTrigraphsToUnicode$ chooseDirectory$ chooseReadFile$
    chooseWriteFile$ date$ demoKey$ do$ environment$ extractLine$ extractWord$
    fixed$ info$ left$ mid$ percent$ readFile$ replace$ replace_regex$ right$
    selected$ string$ unicodeToBackslashTrigraphs$
  )
end

def self.functions_string_vector

def self.functions_string_vector
  @functions_string_vector ||= %w(
    empty$# fileNames$# folderNames$# readLinesFromFile$# splitByWhitespace$#
  )
end

def self.keywords

def self.keywords
  @keywords ||= %w(
    if then else elsif elif endif fi for from to endfor endproc while
    endwhile repeat until select plus minus demo assert stopwatch
    nocheck nowarn noprogress editor endeditor clearinfo
  )
end

def self.object_attributes

def self.object_attributes
  @object_attributes ||= %w(
    ncol nrow xmin ymin xmax ymax nx ny dx dy
  )
end

def self.objects

def self.objects
  @objects ||= %w(
    Activation AffineTransform AmplitudeTier Art Artword Autosegment
    BarkFilter BarkSpectrogram CCA Categories Cepstrogram Cepstrum
    Cepstrumc ChebyshevSeries ClassificationTable Cochleagram Collection
    ComplexSpectrogram Configuration Confusion ContingencyTable Corpus
    Correlation Covariance CrossCorrelationTable CrossCorrelationTableList
    CrossCorrelationTables DTW DataModeler Diagonalizer Discriminant
    Dissimilarity Distance Distributions DurationTier EEG ERP ERPTier
    EditCostsTable EditDistanceTable Eigen Excitation Excitations
    ExperimentMFC FFNet FeatureWeights FileInMemory FilesInMemory Formant
    FormantFilter FormantGrid FormantModeler FormantPoint FormantTier
    GaussianMixture HMM HMM_Observation HMM_ObservationSequence HMM_State
    HMM_StateSequence HMMObservation HMMObservationSequence HMMState
    HMMStateSequence Harmonicity ISpline Index Intensity IntensityTier
    IntervalTier KNN KlattGrid KlattTable LFCC LPC Label LegendreSeries
    LinearRegression LogisticRegression LongSound Ltas MFCC MSpline ManPages
    Manipulation Matrix MelFilter MelSpectrogram MixingMatrix Movie Network
    OTGrammar OTHistory OTMulti PCA PairDistribution ParamCurve Pattern
    Permutation Photo Pitch PitchModeler PitchTier PointProcess Polygon
    Polynomial PowerCepstrogram PowerCepstrum Procrustes RealPoint RealTier
    ResultsMFC Roots SPINET SSCP SVD Salience ScalarProduct Similarity
    SimpleString SortedSetOfString Sound Speaker Spectrogram Spectrum
    SpectrumTier SpeechSynthesizer SpellingChecker Strings StringsIndex
    Table TableOfReal TextGrid TextInterval TextPoint TextTier Tier
    Transition VocalTract VocalTractTier Weight WordList
  )
end

def self.variables_numeric

def self.variables_numeric
  @variables_numeric ||= %w(
    all average e left macintosh mono pi praatVersion right stereo
    undefined unix windows
  )
end

def self.variables_string

def self.variables_string
  @variables_string ||= %w(
    praatVersion$ tab$ shellDirectory$ homeDirectory$
    preferencesDirectory$ newline$ temporaryDirectory$
    defaultDirectory$
  )
end