rouge_ecl 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (319) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +26 -0
  3. data/LICENSE +186 -0
  4. data/bin/rougify +17 -0
  5. data/lib/rouge.rb +82 -0
  6. data/lib/rouge/cli.rb +429 -0
  7. data/lib/rouge/demos/abap +6 -0
  8. data/lib/rouge/demos/actionscript +4 -0
  9. data/lib/rouge/demos/apache +21 -0
  10. data/lib/rouge/demos/apiblueprint +33 -0
  11. data/lib/rouge/demos/applescript +2 -0
  12. data/lib/rouge/demos/awk +4 -0
  13. data/lib/rouge/demos/biml +38 -0
  14. data/lib/rouge/demos/bsl +7 -0
  15. data/lib/rouge/demos/c +8 -0
  16. data/lib/rouge/demos/ceylon +7 -0
  17. data/lib/rouge/demos/cfscript +18 -0
  18. data/lib/rouge/demos/clojure +5 -0
  19. data/lib/rouge/demos/cmake +7 -0
  20. data/lib/rouge/demos/coffeescript +5 -0
  21. data/lib/rouge/demos/common_lisp +1 -0
  22. data/lib/rouge/demos/conf +4 -0
  23. data/lib/rouge/demos/console +6 -0
  24. data/lib/rouge/demos/coq +13 -0
  25. data/lib/rouge/demos/cpp +8 -0
  26. data/lib/rouge/demos/csharp +5 -0
  27. data/lib/rouge/demos/css +4 -0
  28. data/lib/rouge/demos/d +16 -0
  29. data/lib/rouge/demos/dart +6 -0
  30. data/lib/rouge/demos/diff +7 -0
  31. data/lib/rouge/demos/digdag +19 -0
  32. data/lib/rouge/demos/docker +9 -0
  33. data/lib/rouge/demos/dot +5 -0
  34. data/lib/rouge/demos/ecl +1 -0
  35. data/lib/rouge/demos/eiffel +30 -0
  36. data/lib/rouge/demos/elixir +1 -0
  37. data/lib/rouge/demos/elm +4 -0
  38. data/lib/rouge/demos/erb +1 -0
  39. data/lib/rouge/demos/erlang +7 -0
  40. data/lib/rouge/demos/factor +5 -0
  41. data/lib/rouge/demos/fortran +22 -0
  42. data/lib/rouge/demos/fsharp +12 -0
  43. data/lib/rouge/demos/gherkin +17 -0
  44. data/lib/rouge/demos/glsl +14 -0
  45. data/lib/rouge/demos/go +7 -0
  46. data/lib/rouge/demos/gradle +10 -0
  47. data/lib/rouge/demos/graphql +17 -0
  48. data/lib/rouge/demos/groovy +9 -0
  49. data/lib/rouge/demos/hack +5 -0
  50. data/lib/rouge/demos/haml +5 -0
  51. data/lib/rouge/demos/handlebars +7 -0
  52. data/lib/rouge/demos/haskell +6 -0
  53. data/lib/rouge/demos/html +8 -0
  54. data/lib/rouge/demos/http +14 -0
  55. data/lib/rouge/demos/hylang +10 -0
  56. data/lib/rouge/demos/idlang +8 -0
  57. data/lib/rouge/demos/igorpro +9 -0
  58. data/lib/rouge/demos/ini +4 -0
  59. data/lib/rouge/demos/io +11 -0
  60. data/lib/rouge/demos/irb +4 -0
  61. data/lib/rouge/demos/irb_output +2 -0
  62. data/lib/rouge/demos/java +5 -0
  63. data/lib/rouge/demos/javascript +1 -0
  64. data/lib/rouge/demos/jinja +9 -0
  65. data/lib/rouge/demos/json +1 -0
  66. data/lib/rouge/demos/json-doc +1 -0
  67. data/lib/rouge/demos/jsonnet +28 -0
  68. data/lib/rouge/demos/jsx +17 -0
  69. data/lib/rouge/demos/julia +11 -0
  70. data/lib/rouge/demos/kotlin +3 -0
  71. data/lib/rouge/demos/lasso +12 -0
  72. data/lib/rouge/demos/liquid +11 -0
  73. data/lib/rouge/demos/literate_coffeescript +3 -0
  74. data/lib/rouge/demos/literate_haskell +7 -0
  75. data/lib/rouge/demos/llvm +20 -0
  76. data/lib/rouge/demos/lua +12 -0
  77. data/lib/rouge/demos/make +6 -0
  78. data/lib/rouge/demos/markdown +4 -0
  79. data/lib/rouge/demos/matlab +6 -0
  80. data/lib/rouge/demos/moonscript +16 -0
  81. data/lib/rouge/demos/mosel +10 -0
  82. data/lib/rouge/demos/mxml +22 -0
  83. data/lib/rouge/demos/nasm +26 -0
  84. data/lib/rouge/demos/nginx +5 -0
  85. data/lib/rouge/demos/nim +27 -0
  86. data/lib/rouge/demos/nix +19 -0
  87. data/lib/rouge/demos/objective_c +18 -0
  88. data/lib/rouge/demos/ocaml +12 -0
  89. data/lib/rouge/demos/pascal +14 -0
  90. data/lib/rouge/demos/perl +5 -0
  91. data/lib/rouge/demos/php +3 -0
  92. data/lib/rouge/demos/plaintext +1 -0
  93. data/lib/rouge/demos/plist +142 -0
  94. data/lib/rouge/demos/pony +17 -0
  95. data/lib/rouge/demos/powershell +49 -0
  96. data/lib/rouge/demos/praat +26 -0
  97. data/lib/rouge/demos/prolog +9 -0
  98. data/lib/rouge/demos/prometheus +9 -0
  99. data/lib/rouge/demos/properties +7 -0
  100. data/lib/rouge/demos/protobuf +5 -0
  101. data/lib/rouge/demos/puppet +6 -0
  102. data/lib/rouge/demos/python +6 -0
  103. data/lib/rouge/demos/q +2 -0
  104. data/lib/rouge/demos/qml +9 -0
  105. data/lib/rouge/demos/r +8 -0
  106. data/lib/rouge/demos/racket +24 -0
  107. data/lib/rouge/demos/ruby +9 -0
  108. data/lib/rouge/demos/rust +12 -0
  109. data/lib/rouge/demos/sass +3 -0
  110. data/lib/rouge/demos/scala +3 -0
  111. data/lib/rouge/demos/scheme +4 -0
  112. data/lib/rouge/demos/scss +5 -0
  113. data/lib/rouge/demos/sed +4 -0
  114. data/lib/rouge/demos/shell +2 -0
  115. data/lib/rouge/demos/sieve +10 -0
  116. data/lib/rouge/demos/slim +17 -0
  117. data/lib/rouge/demos/smalltalk +6 -0
  118. data/lib/rouge/demos/smarty +12 -0
  119. data/lib/rouge/demos/sml +4 -0
  120. data/lib/rouge/demos/sql +1 -0
  121. data/lib/rouge/demos/swift +5 -0
  122. data/lib/rouge/demos/tap +5 -0
  123. data/lib/rouge/demos/tcl +1 -0
  124. data/lib/rouge/demos/tex +1 -0
  125. data/lib/rouge/demos/toml +9 -0
  126. data/lib/rouge/demos/tsx +17 -0
  127. data/lib/rouge/demos/tulip +13 -0
  128. data/lib/rouge/demos/turtle +26 -0
  129. data/lib/rouge/demos/twig +9 -0
  130. data/lib/rouge/demos/typescript +1 -0
  131. data/lib/rouge/demos/vala +8 -0
  132. data/lib/rouge/demos/vb +4 -0
  133. data/lib/rouge/demos/verilog +27 -0
  134. data/lib/rouge/demos/vhdl +23 -0
  135. data/lib/rouge/demos/viml +14 -0
  136. data/lib/rouge/demos/vue +11 -0
  137. data/lib/rouge/demos/wollok +11 -0
  138. data/lib/rouge/demos/xml +2 -0
  139. data/lib/rouge/demos/yaml +4 -0
  140. data/lib/rouge/formatter.rb +75 -0
  141. data/lib/rouge/formatters/html.rb +37 -0
  142. data/lib/rouge/formatters/html_inline.rb +30 -0
  143. data/lib/rouge/formatters/html_legacy.rb +44 -0
  144. data/lib/rouge/formatters/html_linewise.rb +27 -0
  145. data/lib/rouge/formatters/html_pygments.rb +16 -0
  146. data/lib/rouge/formatters/html_table.rb +61 -0
  147. data/lib/rouge/formatters/null.rb +19 -0
  148. data/lib/rouge/formatters/terminal256.rb +180 -0
  149. data/lib/rouge/guesser.rb +55 -0
  150. data/lib/rouge/guessers/disambiguation.rb +101 -0
  151. data/lib/rouge/guessers/filename.rb +25 -0
  152. data/lib/rouge/guessers/glob_mapping.rb +43 -0
  153. data/lib/rouge/guessers/mimetype.rb +14 -0
  154. data/lib/rouge/guessers/modeline.rb +44 -0
  155. data/lib/rouge/guessers/source.rb +29 -0
  156. data/lib/rouge/guessers/util.rb +32 -0
  157. data/lib/rouge/lexer.rb +461 -0
  158. data/lib/rouge/lexers/abap.rb +238 -0
  159. data/lib/rouge/lexers/actionscript.rb +195 -0
  160. data/lib/rouge/lexers/apache.rb +71 -0
  161. data/lib/rouge/lexers/apache/keywords.yml +764 -0
  162. data/lib/rouge/lexers/apiblueprint.rb +47 -0
  163. data/lib/rouge/lexers/apple_script.rb +367 -0
  164. data/lib/rouge/lexers/awk.rb +161 -0
  165. data/lib/rouge/lexers/biml.rb +41 -0
  166. data/lib/rouge/lexers/bsl.rb +81 -0
  167. data/lib/rouge/lexers/c.rb +212 -0
  168. data/lib/rouge/lexers/ceylon.rb +123 -0
  169. data/lib/rouge/lexers/cfscript.rb +153 -0
  170. data/lib/rouge/lexers/clojure.rb +112 -0
  171. data/lib/rouge/lexers/cmake.rb +206 -0
  172. data/lib/rouge/lexers/coffeescript.rb +174 -0
  173. data/lib/rouge/lexers/common_lisp.rb +345 -0
  174. data/lib/rouge/lexers/conf.rb +24 -0
  175. data/lib/rouge/lexers/console.rb +136 -0
  176. data/lib/rouge/lexers/coq.rb +187 -0
  177. data/lib/rouge/lexers/cpp.rb +78 -0
  178. data/lib/rouge/lexers/csharp.rb +114 -0
  179. data/lib/rouge/lexers/css.rb +273 -0
  180. data/lib/rouge/lexers/d.rb +176 -0
  181. data/lib/rouge/lexers/dart.rb +104 -0
  182. data/lib/rouge/lexers/diff.rb +31 -0
  183. data/lib/rouge/lexers/digdag.rb +68 -0
  184. data/lib/rouge/lexers/docker.rb +50 -0
  185. data/lib/rouge/lexers/dot.rb +68 -0
  186. data/lib/rouge/lexers/ecl.rb +138 -0
  187. data/lib/rouge/lexers/eiffel.rb +65 -0
  188. data/lib/rouge/lexers/elixir.rb +133 -0
  189. data/lib/rouge/lexers/elm.rb +89 -0
  190. data/lib/rouge/lexers/erb.rb +52 -0
  191. data/lib/rouge/lexers/erlang.rb +114 -0
  192. data/lib/rouge/lexers/factor.rb +302 -0
  193. data/lib/rouge/lexers/fortran.rb +176 -0
  194. data/lib/rouge/lexers/fsharp.rb +118 -0
  195. data/lib/rouge/lexers/gherkin.rb +137 -0
  196. data/lib/rouge/lexers/gherkin/keywords.rb +14 -0
  197. data/lib/rouge/lexers/glsl.rb +135 -0
  198. data/lib/rouge/lexers/go.rb +174 -0
  199. data/lib/rouge/lexers/gradle.rb +37 -0
  200. data/lib/rouge/lexers/graphql.rb +243 -0
  201. data/lib/rouge/lexers/groovy.rb +112 -0
  202. data/lib/rouge/lexers/hack.rb +48 -0
  203. data/lib/rouge/lexers/haml.rb +229 -0
  204. data/lib/rouge/lexers/handlebars.rb +79 -0
  205. data/lib/rouge/lexers/haskell.rb +182 -0
  206. data/lib/rouge/lexers/html.rb +139 -0
  207. data/lib/rouge/lexers/http.rb +80 -0
  208. data/lib/rouge/lexers/hylang.rb +93 -0
  209. data/lib/rouge/lexers/idlang.rb +310 -0
  210. data/lib/rouge/lexers/igorpro.rb +408 -0
  211. data/lib/rouge/lexers/ini.rb +53 -0
  212. data/lib/rouge/lexers/io.rb +68 -0
  213. data/lib/rouge/lexers/irb.rb +66 -0
  214. data/lib/rouge/lexers/java.rb +87 -0
  215. data/lib/rouge/lexers/javascript.rb +281 -0
  216. data/lib/rouge/lexers/jinja.rb +137 -0
  217. data/lib/rouge/lexers/json.rb +29 -0
  218. data/lib/rouge/lexers/json_doc.rb +23 -0
  219. data/lib/rouge/lexers/jsonnet.rb +151 -0
  220. data/lib/rouge/lexers/jsx.rb +102 -0
  221. data/lib/rouge/lexers/julia.rb +172 -0
  222. data/lib/rouge/lexers/kotlin.rb +79 -0
  223. data/lib/rouge/lexers/lasso.rb +214 -0
  224. data/lib/rouge/lexers/lasso/keywords.yml +446 -0
  225. data/lib/rouge/lexers/liquid.rb +287 -0
  226. data/lib/rouge/lexers/literate_coffeescript.rb +33 -0
  227. data/lib/rouge/lexers/literate_haskell.rb +36 -0
  228. data/lib/rouge/lexers/llvm.rb +80 -0
  229. data/lib/rouge/lexers/lua.rb +125 -0
  230. data/lib/rouge/lexers/lua/builtins.rb +22 -0
  231. data/lib/rouge/lexers/make.rb +112 -0
  232. data/lib/rouge/lexers/markdown.rb +154 -0
  233. data/lib/rouge/lexers/matlab.rb +71 -0
  234. data/lib/rouge/lexers/matlab/builtins.rb +11 -0
  235. data/lib/rouge/lexers/moonscript.rb +114 -0
  236. data/lib/rouge/lexers/mosel.rb +231 -0
  237. data/lib/rouge/lexers/mxml.rb +68 -0
  238. data/lib/rouge/lexers/nasm.rb +198 -0
  239. data/lib/rouge/lexers/nginx.rb +71 -0
  240. data/lib/rouge/lexers/nim.rb +152 -0
  241. data/lib/rouge/lexers/nix.rb +205 -0
  242. data/lib/rouge/lexers/objective_c.rb +194 -0
  243. data/lib/rouge/lexers/ocaml.rb +100 -0
  244. data/lib/rouge/lexers/pascal.rb +66 -0
  245. data/lib/rouge/lexers/perl.rb +196 -0
  246. data/lib/rouge/lexers/php.rb +193 -0
  247. data/lib/rouge/lexers/php/builtins.rb +194 -0
  248. data/lib/rouge/lexers/plain_text.rb +26 -0
  249. data/lib/rouge/lexers/plist.rb +45 -0
  250. data/lib/rouge/lexers/pony.rb +93 -0
  251. data/lib/rouge/lexers/powershell.rb +678 -0
  252. data/lib/rouge/lexers/praat.rb +350 -0
  253. data/lib/rouge/lexers/prolog.rb +59 -0
  254. data/lib/rouge/lexers/prometheus.rb +121 -0
  255. data/lib/rouge/lexers/properties.rb +51 -0
  256. data/lib/rouge/lexers/protobuf.rb +70 -0
  257. data/lib/rouge/lexers/puppet.rb +128 -0
  258. data/lib/rouge/lexers/python.rb +232 -0
  259. data/lib/rouge/lexers/q.rb +123 -0
  260. data/lib/rouge/lexers/qml.rb +73 -0
  261. data/lib/rouge/lexers/r.rb +89 -0
  262. data/lib/rouge/lexers/racket.rb +543 -0
  263. data/lib/rouge/lexers/ruby.rb +437 -0
  264. data/lib/rouge/lexers/rust.rb +192 -0
  265. data/lib/rouge/lexers/sass.rb +74 -0
  266. data/lib/rouge/lexers/sass/common.rb +180 -0
  267. data/lib/rouge/lexers/scala.rb +142 -0
  268. data/lib/rouge/lexers/scheme.rb +112 -0
  269. data/lib/rouge/lexers/scss.rb +34 -0
  270. data/lib/rouge/lexers/sed.rb +172 -0
  271. data/lib/rouge/lexers/shell.rb +189 -0
  272. data/lib/rouge/lexers/sieve.rb +96 -0
  273. data/lib/rouge/lexers/slim.rb +228 -0
  274. data/lib/rouge/lexers/smalltalk.rb +116 -0
  275. data/lib/rouge/lexers/smarty.rb +80 -0
  276. data/lib/rouge/lexers/sml.rb +344 -0
  277. data/lib/rouge/lexers/sql.rb +140 -0
  278. data/lib/rouge/lexers/swift.rb +181 -0
  279. data/lib/rouge/lexers/tap.rb +87 -0
  280. data/lib/rouge/lexers/tcl.rb +192 -0
  281. data/lib/rouge/lexers/tex.rb +69 -0
  282. data/lib/rouge/lexers/toml.rb +67 -0
  283. data/lib/rouge/lexers/tsx.rb +19 -0
  284. data/lib/rouge/lexers/tulip.rb +106 -0
  285. data/lib/rouge/lexers/turtle.rb +63 -0
  286. data/lib/rouge/lexers/twig.rb +39 -0
  287. data/lib/rouge/lexers/typescript.rb +22 -0
  288. data/lib/rouge/lexers/typescript/common.rb +33 -0
  289. data/lib/rouge/lexers/vala.rb +77 -0
  290. data/lib/rouge/lexers/vb.rb +164 -0
  291. data/lib/rouge/lexers/verilog.rb +164 -0
  292. data/lib/rouge/lexers/vhdl.rb +97 -0
  293. data/lib/rouge/lexers/viml.rb +101 -0
  294. data/lib/rouge/lexers/viml/keywords.rb +12 -0
  295. data/lib/rouge/lexers/vue.rb +122 -0
  296. data/lib/rouge/lexers/wollok.rb +103 -0
  297. data/lib/rouge/lexers/xml.rb +57 -0
  298. data/lib/rouge/lexers/yaml.rb +373 -0
  299. data/lib/rouge/plugins/redcarpet.rb +30 -0
  300. data/lib/rouge/regex_lexer.rb +441 -0
  301. data/lib/rouge/template_lexer.rb +20 -0
  302. data/lib/rouge/text_analyzer.rb +49 -0
  303. data/lib/rouge/theme.rb +213 -0
  304. data/lib/rouge/themes/base16.rb +130 -0
  305. data/lib/rouge/themes/colorful.rb +67 -0
  306. data/lib/rouge/themes/github.rb +71 -0
  307. data/lib/rouge/themes/gruvbox.rb +167 -0
  308. data/lib/rouge/themes/igor_pro.rb +20 -0
  309. data/lib/rouge/themes/molokai.rb +82 -0
  310. data/lib/rouge/themes/monokai.rb +92 -0
  311. data/lib/rouge/themes/monokai_sublime.rb +90 -0
  312. data/lib/rouge/themes/pastie.rb +69 -0
  313. data/lib/rouge/themes/thankful_eyes.rb +74 -0
  314. data/lib/rouge/themes/tulip.rb +69 -0
  315. data/lib/rouge/token.rb +182 -0
  316. data/lib/rouge/util.rb +101 -0
  317. data/lib/rouge/version.rb +7 -0
  318. data/rouge.gemspec +23 -0
  319. metadata +365 -0
@@ -0,0 +1,350 @@
1
+ # -*- coding: utf-8 -*- #
2
+
3
+ module Rouge
4
+ module Lexers
5
+ class Praat < RegexLexer
6
+ title "Praat"
7
+ desc "The Praat scripting language (praat.org)"
8
+
9
+ tag 'praat'
10
+
11
+ filenames '*.praat', '*.proc', '*.psc'
12
+
13
+ def self.detect?(text)
14
+ return true if text.shebang? 'praat'
15
+ end
16
+
17
+ keywords = %w(
18
+ if then else elsif elif endif fi for from to endfor endproc while
19
+ endwhile repeat until select plus minus demo assert stopwatch
20
+ nocheck nowarn noprogress editor endeditor clearinfo
21
+ )
22
+
23
+ functions_string = %w(
24
+ backslashTrigraphsToUnicode chooseDirectory chooseReadFile
25
+ chooseWriteFile date demoKey do environment extractLine extractWord
26
+ fixed info left mid percent readFile replace replace_regex right
27
+ selected string unicodeToBackslashTrigraphs
28
+ )
29
+
30
+ functions_numeric = %w(
31
+ abs appendFile appendFileLine appendInfo appendInfoLine arccos arccosh
32
+ arcsin arcsinh arctan arctan2 arctanh barkToHertz beginPause
33
+ beginSendPraat besselI besselK beta beta2 binomialP binomialQ boolean
34
+ ceiling chiSquareP chiSquareQ choice comment cos cosh createDirectory
35
+ deleteFile demoClicked demoClickedIn demoCommandKeyPressed
36
+ demoExtraControlKeyPressed demoInput demoKeyPressed
37
+ demoOptionKeyPressed demoShiftKeyPressed demoShow demoWaitForInput
38
+ demoWindowTitle demoX demoY differenceLimensToPhon do editor endPause
39
+ endSendPraat endsWith erb erbToHertz erf erfc exitScript exp
40
+ extractNumber fileReadable fisherP fisherQ floor gaussP gaussQ hash
41
+ hertzToBark hertzToErb hertzToMel hertzToSemitones imax imin
42
+ incompleteBeta incompleteGammaP index index_regex integer invBinomialP
43
+ invBinomialQ invChiSquareQ invFisherQ invGaussQ invSigmoid invStudentQ
44
+ length ln lnBeta lnGamma log10 log2 max melToHertz min minusObject
45
+ natural number numberOfColumns numberOfRows numberOfSelected
46
+ objectsAreIdentical option optionMenu pauseScript
47
+ phonToDifferenceLimens plusObject positive randomBinomial randomGauss
48
+ randomInteger randomPoisson randomUniform real readFile removeObject
49
+ rindex rindex_regex round runScript runSystem runSystem_nocheck
50
+ selectObject selected semitonesToHertz sentence sentencetext sigmoid
51
+ sin sinc sincpi sinh soundPressureToPhon sqrt startsWith studentP
52
+ studentQ tan tanh text variableExists word writeFile writeFileLine
53
+ writeInfo writeInfoLine
54
+ )
55
+
56
+ functions_array = %w(
57
+ linear randomGauss randomInteger randomUniform zero
58
+ )
59
+
60
+ objects = %w(
61
+ Activation AffineTransform AmplitudeTier Art Artword Autosegment
62
+ BarkFilter BarkSpectrogram CCA Categories Cepstrogram Cepstrum
63
+ Cepstrumc ChebyshevSeries ClassificationTable Cochleagram Collection
64
+ ComplexSpectrogram Configuration Confusion ContingencyTable Corpus
65
+ Correlation Covariance CrossCorrelationTable CrossCorrelationTableList
66
+ CrossCorrelationTables DTW DataModeler Diagonalizer Discriminant
67
+ Dissimilarity Distance Distributions DurationTier EEG ERP ERPTier
68
+ EditCostsTable EditDistanceTable Eigen Excitation Excitations
69
+ ExperimentMFC FFNet FeatureWeights FileInMemory FilesInMemory Formant
70
+ FormantFilter FormantGrid FormantModeler FormantPoint FormantTier
71
+ GaussianMixture HMM HMM_Observation HMM_ObservationSequence HMM_State
72
+ HMM_StateSequence HMMObservation HMMObservationSequence HMMState
73
+ HMMStateSequence Harmonicity ISpline Index Intensity IntensityTier
74
+ IntervalTier KNN KlattGrid KlattTable LFCC LPC Label LegendreSeries
75
+ LinearRegression LogisticRegression LongSound Ltas MFCC MSpline ManPages
76
+ Manipulation Matrix MelFilter MelSpectrogram MixingMatrix Movie Network
77
+ OTGrammar OTHistory OTMulti PCA PairDistribution ParamCurve Pattern
78
+ Permutation Photo Pitch PitchModeler PitchTier PointProcess Polygon
79
+ Polynomial PowerCepstrogram PowerCepstrum Procrustes RealPoint RealTier
80
+ ResultsMFC Roots SPINET SSCP SVD Salience ScalarProduct Similarity
81
+ SimpleString SortedSetOfString Sound Speaker Spectrogram Spectrum
82
+ SpectrumTier SpeechSynthesizer SpellingChecker Strings StringsIndex
83
+ Table TableOfReal TextGrid TextInterval TextPoint TextTier Tier
84
+ Transition VocalTract VocalTractTier Weight WordList
85
+ )
86
+
87
+ variables_numeric = %w(
88
+ all average e left macintosh mono pi praatVersion right stereo
89
+ undefined unix windows
90
+ )
91
+
92
+ variables_string = %w(
93
+ praatVersion tab shellDirectory homeDirectory
94
+ preferencesDirectory newline temporaryDirectory
95
+ defaultDirectory
96
+ )
97
+
98
+ object_attributes = %w(
99
+ ncol nrow xmin ymin xmax ymax nx ny dx dy
100
+ )
101
+
102
+ state :root do
103
+ rule /(\s+)(#.*?$)/ do
104
+ groups Text, Comment::Single
105
+ end
106
+
107
+ rule /^#.*?$/, Comment::Single
108
+ rule /;[^\n]*/, Comment::Single
109
+ rule /\s+/, Text
110
+
111
+ rule /(\bprocedure)(\s+)/ do
112
+ groups Keyword, Text
113
+ push :procedure_definition
114
+ end
115
+
116
+ rule /(\bcall)(\s+)/ do
117
+ groups Keyword, Text
118
+ push :procedure_call
119
+ end
120
+
121
+ rule /@/, Name::Function, :procedure_call
122
+
123
+ mixin :function_call
124
+
125
+ rule /\b(?:select all)\b/, Keyword
126
+ rule /\b(?:#{keywords.join('|')})\b/, Keyword
127
+
128
+ rule /(\bform\b)(\s+)([^\n]+)/ do
129
+ groups Keyword, Text, Literal::String
130
+ push :old_form
131
+ end
132
+
133
+ rule /(print(?:line|tab)?|echo|exit|asserterror|pause|send(?:praat|socket)|include|execute|system(?:_nocheck)?)(\s+)/ do
134
+ groups Keyword, Text
135
+ push :string_unquoted
136
+ end
137
+
138
+ rule /(goto|label)(\s+)(\w+)/ do
139
+ groups Keyword, Text, Name::Label
140
+ end
141
+
142
+ mixin :variable_name
143
+ mixin :number
144
+
145
+ rule /"/, Literal::String, :string
146
+
147
+ rule /\b(?:#{objects.join('|')})(?=\s+\S+\n)/, Name::Class, :string_unquoted
148
+
149
+ rule /\b(?=[A-Z])/, Text, :command
150
+ rule /(\.{3}|[)(,\$])/, Punctuation
151
+ end
152
+
153
+ state :command do
154
+ rule /( ?([^\s:\.'])+ ?)/, Keyword
155
+ mixin :string_interpolated
156
+
157
+ rule /\.{3}/ do
158
+ token Keyword
159
+ pop!
160
+ push :old_arguments
161
+ end
162
+
163
+ rule /:/ do
164
+ token Keyword
165
+ pop!
166
+ push :comma_list
167
+ end
168
+
169
+ rule /[\s]/, Text, :pop!
170
+ end
171
+
172
+ state :procedure_call do
173
+ mixin :string_interpolated
174
+
175
+ rule /(:|\s*\()/, Punctuation, :pop!
176
+
177
+ rule /'/, Name::Function
178
+ rule /[^:\('\s]+/, Name::Function
179
+
180
+ rule /(?=\s+)/ do
181
+ token Text
182
+ pop!
183
+ push :old_arguments
184
+ end
185
+ end
186
+
187
+ state :procedure_definition do
188
+ rule /(:|\s*\()/, Punctuation, :pop!
189
+
190
+ rule /[^:\(\s]+/, Name::Function
191
+
192
+ rule /(\s+)/, Text, :pop!
193
+ end
194
+
195
+ state :function_call do
196
+ rule /\b(#{functions_string.join('|')})\$(?=\s*[:(])/, Name::Function, :function
197
+ rule /\b(#{functions_array.join('|')})#(?=\s*[:(])/, Name::Function, :function
198
+ rule /\b(#{functions_numeric.join('|')})(?=\s*[:(])/, Name::Function, :function
199
+ end
200
+
201
+ state :function do
202
+ rule /\s+/, Text
203
+
204
+ rule /(?::|\s*\()/ do
205
+ token Text
206
+ pop!
207
+ push :comma_list
208
+ end
209
+ end
210
+
211
+ state :comma_list do
212
+ rule /(\s*\n\s*)(\.{3})/ do
213
+ groups Text, Punctuation
214
+ end
215
+
216
+ rule /\s*[\])\n]/, Text, :pop!
217
+
218
+ rule /\s+/, Text
219
+ rule /"/, Literal::String, :string
220
+ rule /\b(if|then|else|fi|endif)\b/, Keyword
221
+
222
+ mixin :function_call
223
+ mixin :variable_name
224
+ mixin :operator
225
+ mixin :number
226
+
227
+ rule /[()]/, Text
228
+ rule /,/, Punctuation
229
+ end
230
+
231
+ state :old_arguments do
232
+ rule /\n/, Text, :pop!
233
+
234
+ mixin :variable_name
235
+ mixin :operator
236
+ mixin :number
237
+
238
+ rule /"/, Literal::String, :string
239
+ rule /[^\n]/, Text
240
+ end
241
+
242
+ state :number do
243
+ rule /\n/, Text, :pop!
244
+ rule /\b\d+(\.\d*)?([eE][-+]?\d+)?%?/, Literal::Number
245
+ end
246
+
247
+ state :variable_name do
248
+ mixin :operator
249
+ mixin :number
250
+
251
+ rule /\b(?:#{variables_string.join('|')})\$/, Name::Builtin
252
+ rule /\b(?:#{variables_numeric.join('|')})(?!\$)\b/, Name::Builtin
253
+
254
+ rule /\b(Object|#{objects.join('|')})_/ do
255
+ token Name::Builtin
256
+ push :object_reference
257
+ end
258
+
259
+ rule /\.?[a-z][a-zA-Z0-9_.]*(\$|#)?/, Text
260
+ rule /[\[\]]/, Text, :comma_list
261
+ mixin :string_interpolated
262
+ end
263
+
264
+ state :object_reference do
265
+ mixin :string_interpolated
266
+ rule /([a-z][a-zA-Z0-9_]*|\d+)/, Name::Builtin
267
+
268
+ rule /\.(#{object_attributes.join('|')})\b/, Name::Builtin, :pop!
269
+
270
+ rule /\$/, Name::Builtin
271
+ rule /\[/, Text, :pop!
272
+ end
273
+
274
+ state :operator do
275
+ # This rule incorrectly matches === or +++++, which are not operators
276
+ rule /([+\/*<>=!-]=?|[&*|][&*|]?|\^|<>)/, Operator
277
+ rule /(?<![\w.])(and|or|not|div|mod)(?![\w.])/, Operator::Word
278
+ end
279
+
280
+ state :string_interpolated do
281
+ rule /'[\._a-z][^\[\]'":]*(\[([\d,]+|"[\w\d,]+")\])?(:[0-9]+)?'/, Literal::String::Interpol
282
+ end
283
+
284
+ state :string_unquoted do
285
+ rule /\n\s*\.{3}/, Punctuation
286
+ rule /\n/, Text, :pop!
287
+ rule /\s/, Text
288
+
289
+ mixin :string_interpolated
290
+
291
+ rule /'/, Literal::String
292
+ rule /[^'\n]+/, Literal::String
293
+ end
294
+
295
+ state :string do
296
+ rule /\n\s*\.{3}/, Punctuation
297
+ rule /"/, Literal::String, :pop!
298
+
299
+ mixin :string_interpolated
300
+
301
+ rule /'/, Literal::String
302
+ rule /[^'"\n]+/, Literal::String
303
+ end
304
+
305
+ state :old_form do
306
+ rule /(\s+)(#.*?$)/ do
307
+ groups Text, Comment::Single
308
+ end
309
+
310
+ rule /\s+/, Text
311
+
312
+ rule /(optionmenu|choice)([ \t]+\S+:[ \t]+)/ do
313
+ groups Keyword, Text
314
+ push :number
315
+ end
316
+
317
+ rule /(option|button)([ \t]+)/ do
318
+ groups Keyword, Text
319
+ push :string_unquoted
320
+ end
321
+
322
+ rule /(sentence|text)([ \t]+\S+)/ do
323
+ groups Keyword, Text
324
+ push :string_unquoted
325
+ end
326
+
327
+ rule /(word)([ \t]+\S+[ \t]*)(\S+)?([ \t]+.*)?/ do
328
+ groups Keyword, Text, Literal::String, Text
329
+ end
330
+
331
+ rule /(boolean)(\s+\S+\s*)(0|1|"?(?:yes|no)"?)/ do
332
+ groups Keyword, Text, Name::Variable
333
+ end
334
+
335
+ rule /(real|natural|positive|integer)([ \t]+\S+[ \t]*)([+-]?)/ do
336
+ groups Keyword, Text, Operator
337
+ push :number
338
+ end
339
+
340
+ rule /(comment)(\s+)/ do
341
+ groups Keyword, Text
342
+ push :string_unquoted
343
+ end
344
+
345
+ rule /\bendform\b/, Keyword, :pop!
346
+ end
347
+
348
+ end
349
+ end
350
+ end
@@ -0,0 +1,59 @@
1
+ # -*- coding: utf-8 -*- #
2
+
3
+ module Rouge
4
+ module Lexers
5
+ class Prolog < RegexLexer
6
+ title "Prolog"
7
+ desc "The Prolog programming language (http://en.wikipedia.org/wiki/Prolog)"
8
+ tag 'prolog'
9
+ aliases 'prolog'
10
+ filenames '*.pro', '*.P', '*.prolog', '*.pl'
11
+ mimetypes 'text/x-prolog'
12
+
13
+ state :basic do
14
+ rule /\s+/, Text
15
+ rule /^#.*/, Comment::Single
16
+ rule /\/\*/, Comment::Multiline, :nested_comment
17
+
18
+ rule /[\[\](){}|.,;!]/, Punctuation
19
+ rule /:-|-->/, Punctuation
20
+
21
+ rule /"[^"]*"/, Str::Double
22
+
23
+ rule /\d+\.\d+/, Num::Float
24
+ rule /\d+/, Num
25
+ end
26
+
27
+ state :atoms do
28
+ rule /[[:lower:]]([_[:word:][:digit:]])*/, Str::Symbol
29
+ rule /'[^']*'/, Str::Symbol
30
+ end
31
+
32
+ state :operators do
33
+ rule /(<|>|=<|>=|==|=:=|=|\/|\/\/|\*|\+|-)(?=\s|[a-zA-Z0-9\[])/,
34
+ Operator
35
+ rule /is/, Operator
36
+ rule /(mod|div|not)/, Operator
37
+ rule /[#&*+-.\/:<=>?@^~]+/, Operator
38
+ end
39
+
40
+ state :variables do
41
+ rule /[A-Z]+\w*/, Name::Variable
42
+ rule /_[[:word:]]*/, Name::Variable
43
+ end
44
+
45
+ state :root do
46
+ mixin :basic
47
+ mixin :atoms
48
+ mixin :variables
49
+ mixin :operators
50
+ end
51
+
52
+ state :nested_comment do
53
+ rule /\/\*/, Comment::Multiline, :push
54
+ rule /\s*\*[^*\/]+/, Comment::Multiline
55
+ rule /\*\//, Comment::Multiline, :pop!
56
+ end
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,121 @@
1
+ module Rouge
2
+ module Lexers
3
+ class Prometheus < RegexLexer
4
+ desc 'prometheus'
5
+ tag 'prometheus'
6
+ aliases 'prometheus'
7
+ filenames '*.prometheus'
8
+
9
+ mimetypes 'text/x-prometheus', 'application/x-prometheus'
10
+
11
+ def self.functions
12
+ @functions ||= Set.new %w(
13
+ abs absent ceil changes clamp_max clamp_min count_scalar day_of_month
14
+ day_of_week days_in_month delta deriv drop_common_labels exp floor
15
+ histogram_quantile holt_winters hour idelta increase irate label_replace
16
+ ln log2 log10 month predict_linear rate resets round scalar sort
17
+ sort_desc sqrt time vector year avg_over_time min_over_time
18
+ max_over_time sum_over_time count_over_time quantile_over_time
19
+ stddev_over_time stdvar_over_time
20
+ )
21
+ end
22
+
23
+ state :root do
24
+ mixin :strings
25
+ mixin :whitespace
26
+
27
+ rule /-?\d+\.\d+/, Num::Float
28
+ rule /-?\d+[smhdwy]?/, Num::Integer
29
+
30
+ mixin :operators
31
+
32
+ rule /(ignoring|on)(\()/ do
33
+ groups Keyword::Pseudo, Punctuation
34
+ push :label_list
35
+ end
36
+ rule /(group_left|group_right)(\()/ do
37
+ groups Keyword::Type, Punctuation
38
+ end
39
+ rule /(bool|offset)\b/, Keyword
40
+ rule /(without|by)\b/, Keyword, :label_list
41
+ rule /[\w:]+/ do |m|
42
+ if self.class.functions.include?(m[0])
43
+ token Name::Builtin
44
+ else
45
+ token Name
46
+ end
47
+ end
48
+
49
+ mixin :metrics
50
+ end
51
+
52
+ state :metrics do
53
+ rule /[a-zA-Z0-9_-]+/, Name
54
+
55
+ rule /[\(\)\]:.,]/, Punctuation
56
+ rule /\{/, Punctuation, :filters
57
+ rule /\[/, Punctuation
58
+ end
59
+
60
+ state :strings do
61
+ rule /"/, Str::Double, :double_string_escaped
62
+ rule /'/, Str::Single, :single_string_escaped
63
+ rule /`.*`/, Str::Backtick
64
+ end
65
+
66
+ [
67
+ [:double, Str::Double, '"'],
68
+ [:single, Str::Single, "'"]
69
+ ].each do |name, tok, fin|
70
+ state :"#{name}_string_escaped" do
71
+ rule /\\[\\abfnrtv#{fin}]/, Str::Escape
72
+ rule /[^\\#{fin}]+/m, tok
73
+ rule /#{fin}/, tok, :pop!
74
+ end
75
+ end
76
+
77
+ state :filters do
78
+ mixin :inline_whitespace
79
+ rule /,/, Punctuation
80
+ mixin :labels
81
+ mixin :filter_matching_operators
82
+ mixin :strings
83
+ rule /}/, Punctuation, :pop!
84
+ end
85
+
86
+ state :label_list do
87
+ rule /\(/, Punctuation
88
+ rule /[a-zA-Z0-9_:-]+/, Name::Attribute
89
+ rule /,/, Punctuation
90
+ mixin :whitespace
91
+ rule /\)/, Punctuation, :pop!
92
+ end
93
+
94
+ state :labels do
95
+ rule /[a-zA-Z0-9_:-]+/, Name::Attribute
96
+ end
97
+
98
+ state :operators do
99
+ rule %r([+\-\*/%\^]), Operator # Arithmetic
100
+ rule %r(=|==|!=|<|>|<=|>=), Operator # Comparison
101
+ rule /and|or|unless/, Operator # Logical/Set
102
+ rule /(sum|min|max|avg|stddev|stdvar|count|count_values|bottomk|topk)\b/, Name::Function
103
+ end
104
+
105
+ state :filter_matching_operators do
106
+ rule /!(=|~)|=~?/, Operator
107
+ end
108
+
109
+ state :inline_whitespace do
110
+ rule /[ \t\r]+/, Text
111
+ end
112
+
113
+ state :whitespace do
114
+ mixin :inline_whitespace
115
+ rule /\n\s*/m, Text
116
+ rule /#.*?$/, Comment
117
+ end
118
+ end
119
+ end
120
+ end
121
+