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,135 @@
1
+ # -*- coding: utf-8 -*- #
2
+
3
+ module Rouge
4
+ module Lexers
5
+ load_lexer 'c.rb'
6
+
7
+ # This file defines the GLSL language lexer to the Rouge
8
+ # syntax highlighter.
9
+ #
10
+ # Author: Sri Harsha Chilakapati
11
+ class Glsl < C
12
+ tag 'glsl'
13
+ filenames '*.glsl', '*.frag', '*.vert', '*.geom', '*.vs', '*.gs', '*.shader'
14
+ mimetypes 'x-shader/x-vertex', 'x-shader/x-fragment', 'x-shader/x-geometry'
15
+
16
+ title "GLSL"
17
+ desc "The GLSL shader language"
18
+
19
+ # optional comment or whitespace
20
+ ws = %r((?:\s|//.*?\n|/[*].*?[*]/)+)
21
+ id = /[a-zA-Z_][a-zA-Z0-9_]*/
22
+
23
+ def self.keywords
24
+ @keywords ||= Set.new %w(
25
+ attribute const uniform varying
26
+ layout
27
+ centroid flat smooth noperspective
28
+ patch sample
29
+ break continue do for while switch case default
30
+ if else
31
+ subroutine
32
+ in out inout
33
+ invariant
34
+ discard return struct precision
35
+ )
36
+ end
37
+
38
+ def self.keywords_type
39
+ @keywords_type ||= Set.new %w(
40
+ float double int void bool true false
41
+ lowp mediump highp
42
+ mat2 mat3 mat4 dmat2 dmat3 dmat4
43
+ mat2x2 mat2x3 mat2x4 dmat2x2 dmat2x3 dmat2x4
44
+ mat3x2 mat3x3 mat3x4 dmat3x2 dmat3x3 dmat3x4
45
+ mat4x2 mat4x3 mat4x4 dmat4x2 dmat4x3 dmat4x4
46
+ vec2 vec3 vec4 ivec2 ivec3 ivec4 bvec2 bvec3 bvec4 dvec2 dvec3 dvec4
47
+ uint uvec2 uvec3 uvec4
48
+ sampler1D sampler2D sampler3D samplerCube
49
+ sampler1DShadow sampler2DShadow samplerCubeShadow
50
+ sampler1DArray sampler2DArray
51
+ sampler1DArrayShadow sampler2DArrayShadow
52
+ isampler1D isampler2D isampler3D isamplerCube
53
+ isampler1DArray isampler2DArray
54
+ usampler1D usampler2D usampler3D usamplerCube
55
+ usampler1DArray usampler2DArray
56
+ sampler2DRect sampler2DRectShadow isampler2DRect usampler2DRect
57
+ samplerBuffer isamplerBuffer usamplerBuffer
58
+ sampler2DMS isampler2DMS usampler2DMS
59
+ sampler2DMSArray isampler2DMSArray usampler2DMSArray
60
+ samplerCubeArray samplerCubeArrayShadow isamplerCubeArray usamplerCubeArray
61
+ )
62
+ end
63
+
64
+ def self.reserved
65
+ @reserved ||= Set.new %w(
66
+ common partition active
67
+ asm
68
+ class union enum typedef template this packed
69
+ goto
70
+ inline noinline volatile public static extern external interface
71
+ long short half fixed unsigned superp
72
+ input output
73
+ hvec2 hvec3 hvec4 fvec2 fvec3 fvec4
74
+ sampler3DRect
75
+ filter
76
+ image1D image2D image3D imageCube
77
+ iimage1D iimage2D iimage3D iimageCube
78
+ uimage1D uimage2D uimage3D uimageCube
79
+ image1DArray image2DArray
80
+ iimage1DArray iimage2DArray uimage1DArray uimage2DArray
81
+ image1DShadow image2DShadow
82
+ image1DArrayShadow image2DArrayShadow
83
+ imageBuffer iimageBuffer uimageBuffer
84
+ sizeof cast
85
+ namespace using
86
+ row_major
87
+ )
88
+ end
89
+
90
+ def self.builtins
91
+ @builtins ||= Set.new %w(
92
+ gl_VertexID gl_InstanceID gl_PerVertex gl_Position gl_PointSize gl_ClipDistance
93
+ gl_PrimitiveIDIn gl_InvocationID gl_PrimitiveID gl_Layer gl_ViewportIndex
94
+ gl_MaxPatchVertices gl_PatchVerticesIn gl_TessLevelOuter gl_TessLevelInner
95
+ gl_TessCoord gl_FragCoord gl_FrontFacing gl_PointCoord gl_SampleID gl_SamplePosition
96
+ gl_FragColor gl_FragData gl_MaxDrawBuffers gl_FragDepth gl_SampleMask
97
+ gl_ClipVertex gl_FrontColor gl_BackColor gl_FrontSecondaryColor gl_BackSecondaryColor
98
+ gl_TexCoord gl_FogFragCoord gl_Color gl_SecondaryColor gl_Normal gl_VertexID
99
+ gl_MultiTexCord0 gl_MultiTexCord1 gl_MultiTexCord2 gl_MultiTexCord3
100
+ gl_MultiTexCord4 gl_MultiTexCord5 gl_MultiTexCord6 gl_MultiTexCord7
101
+ gl_FogCoord gl_MaxVertexAttribs gl_MaxVertexUniformComponents
102
+ gl_MaxVaryingFloats gl_MaxVaryingComponents gl_MaxVertexOutputComponents
103
+ gl_MaxGeometryInputComponents gl_MaxGeometryOutputComponents
104
+ gl_MaxFragmentInputComponents gl_MaxVertexTextureImageUnits
105
+ gl_MaxCombinedTextureImageUnits gl_MaxTextureImageUnits
106
+ gl_MaxFragmentUniformComponents gl_MaxClipDistances
107
+ gl_MaxGeometryTextureImageUnits gl_MaxGeometryUniformComponents
108
+ gl_MaxGeometryVaryingComponents gl_MaxTessControlInputComponents
109
+ gl_MaxTessControlOutputComponents gl_MaxTessControlTextureImageUnits
110
+ gl_MaxTessControlUniformComponents gl_MaxTessControlTotalOutputComponents
111
+ gl_MaxTessEvaluationInputComponents gl_MaxTessEvaluationOutputComponents
112
+ gl_MaxTessEvaluationTextureImageUnits gl_MaxTessEvaluationUniformComponents
113
+ gl_MaxTessPatchComponents gl_MaxTessGenLevel gl_MaxViewports
114
+ gl_MaxVertexUniformVectors gl_MaxFragmentUniformVectors gl_MaxVaryingVectors
115
+ gl_MaxTextureUnits gl_MaxTextureCoords gl_MaxClipPlanes gl_DepthRange
116
+ gl_DepthRangeParameters gl_ModelViewMatrix gl_ProjectionMatrix
117
+ gl_ModelViewProjectionMatrix gl_TextureMatrix gl_NormalMatrix
118
+ gl_ModelViewMatrixInverse gl_ProjectionMatrixInverse gl_ModelViewProjectionMatrixInverse
119
+ gl_TextureMatrixInverse gl_ModelViewMatrixTranspose
120
+ gl_ModelViewProjectionMatrixTranspose gl_TextureMatrixTranspose
121
+ gl_ModelViewMatrixInverseTranspose gl_ProjectionMatrixInverseTranspose
122
+ gl_ModelViewProjectionMatrixInverseTranspose
123
+ gl_TextureMatrixInverseTranspose gl_NormalScale gl_ClipPlane gl_PointParameters
124
+ gl_Point gl_MaterialParameters gl_FrontMaterial gl_BackMaterial
125
+ gl_LightSourceParameters gl_LightSource gl_MaxLights gl_LightModelParameters
126
+ gl_LightModel gl_LightModelProducts gl_FrontLightModelProduct
127
+ gl_BackLightModelProduct gl_LightProducts gl_FrontLightProduct
128
+ gl_BackLightProduct gl_TextureEnvColor gl_EyePlaneS gl_EyePlaneT gl_EyePlaneR
129
+ gl_EyePlaneQ gl_ObjectPlaneS gl_ObjectPlaneT gl_ObjectPlaneR gl_ObjectPlaneQ
130
+ gl_FogParameters gl_Fog
131
+ )
132
+ end
133
+ end
134
+ end
135
+ end
@@ -0,0 +1,174 @@
1
+ # -*- coding: utf-8 -*- #
2
+
3
+ module Rouge
4
+ module Lexers
5
+ class Go < RegexLexer
6
+ title "Go"
7
+ desc 'The Go programming language (http://golang.org)'
8
+ tag 'go'
9
+ aliases 'go', 'golang'
10
+ filenames '*.go'
11
+
12
+ mimetypes 'text/x-go', 'application/x-go'
13
+
14
+ # Characters
15
+
16
+ WHITE_SPACE = /[\s\t\r\n]+/
17
+
18
+ NEWLINE = /\n/
19
+ UNICODE_CHAR = /[^\n]/
20
+ UNICODE_LETTER = /[[:alpha:]]/
21
+ UNICODE_DIGIT = /[[:digit:]]/
22
+
23
+ # Letters and digits
24
+
25
+ LETTER = /#{UNICODE_LETTER}|_/
26
+ DECIMAL_DIGIT = /[0-9]/
27
+ OCTAL_DIGIT = /[0-7]/
28
+ HEX_DIGIT = /[0-9A-Fa-f]/
29
+
30
+ # Comments
31
+
32
+ LINE_COMMENT = /\/\/(?:(?!#{NEWLINE}).)*/
33
+ GENERAL_COMMENT = /\/\*(?:(?!\*\/).)*\*\//m
34
+ COMMENT = /#{LINE_COMMENT}|#{GENERAL_COMMENT}/
35
+
36
+ # Keywords
37
+
38
+ KEYWORD = /\b(?:
39
+ break | default | func
40
+ | interface | select | case
41
+ | defer | go | map
42
+ | struct | chan | else
43
+ | goto | package | switch
44
+ | const | fallthrough | if
45
+ | range | type | continue
46
+ | for | import | return
47
+ | var
48
+ )\b/x
49
+
50
+ # Identifiers
51
+
52
+ IDENTIFIER = / (?!#{KEYWORD})
53
+ #{LETTER}(?:#{LETTER}|#{UNICODE_DIGIT})* /x
54
+
55
+ # Operators and delimiters
56
+
57
+ OPERATOR = / \+= | \+\+ | \+ | &\^= | &\^
58
+ | &= | && | & | == | =
59
+ | \!= | \! | -= | -- | -
60
+ | \|= | \|\| | \| | <= | <-
61
+ | <<= | << | < | \*= | \*
62
+ | \^= | \^ | >>= | >> | >=
63
+ | > | \/ | \/= | := | %
64
+ | %= | \.\.\. | \. | :
65
+ /x
66
+
67
+ SEPARATOR = / \( | \) | \[ | \] | \{
68
+ | \} | , | ;
69
+ /x
70
+
71
+ # Integer literals
72
+
73
+ DECIMAL_LIT = /[0-9]#{DECIMAL_DIGIT}*/
74
+ OCTAL_LIT = /0#{OCTAL_DIGIT}*/
75
+ HEX_LIT = /0[xX]#{HEX_DIGIT}+/
76
+ INT_LIT = /#{HEX_LIT}|#{DECIMAL_LIT}|#{OCTAL_LIT}/
77
+
78
+ # Floating-point literals
79
+
80
+ DECIMALS = /#{DECIMAL_DIGIT}+/
81
+ EXPONENT = /[eE][+\-]?#{DECIMALS}/
82
+ FLOAT_LIT = / #{DECIMALS} \. #{DECIMALS}? #{EXPONENT}?
83
+ | #{DECIMALS} #{EXPONENT}
84
+ | \. #{DECIMALS} #{EXPONENT}?
85
+ /x
86
+
87
+ # Imaginary literals
88
+
89
+ IMAGINARY_LIT = /(?:#{DECIMALS}|#{FLOAT_LIT})i/
90
+
91
+ # Rune literals
92
+
93
+ ESCAPED_CHAR = /\\[abfnrtv\\'"]/
94
+ LITTLE_U_VALUE = /\\u#{HEX_DIGIT}{4}/
95
+ BIG_U_VALUE = /\\U#{HEX_DIGIT}{8}/
96
+ UNICODE_VALUE = / #{UNICODE_CHAR} | #{LITTLE_U_VALUE}
97
+ | #{BIG_U_VALUE} | #{ESCAPED_CHAR}
98
+ /x
99
+ OCTAL_BYTE_VALUE = /\\#{OCTAL_DIGIT}{3}/
100
+ HEX_BYTE_VALUE = /\\x#{HEX_DIGIT}{2}/
101
+ BYTE_VALUE = /#{OCTAL_BYTE_VALUE}|#{HEX_BYTE_VALUE}/
102
+ CHAR_LIT = /'(?:#{UNICODE_VALUE}|#{BYTE_VALUE})'/
103
+ ESCAPE_SEQUENCE = / #{ESCAPED_CHAR}
104
+ | #{LITTLE_U_VALUE}
105
+ | #{BIG_U_VALUE}
106
+ | #{HEX_BYTE_VALUE}
107
+ /x
108
+
109
+ # String literals
110
+
111
+ RAW_STRING_LIT = /`(?:#{UNICODE_CHAR}|#{NEWLINE})*`/
112
+ INTERPRETED_STRING_LIT = / "(?: (?!")
113
+ (?: #{UNICODE_VALUE} | #{BYTE_VALUE} )
114
+ )*" /x
115
+ STRING_LIT = /#{RAW_STRING_LIT}|#{INTERPRETED_STRING_LIT}/
116
+
117
+ # Predeclared identifiers
118
+
119
+ PREDECLARED_TYPES = /\b(?:
120
+ bool | byte | complex64
121
+ | complex128 | error | float32
122
+ | float64 | int8 | int16
123
+ | int32 | int64 | int
124
+ | rune | string | uint8
125
+ | uint16 | uint32 | uint64
126
+ | uintptr | uint
127
+ )\b/x
128
+
129
+ PREDECLARED_CONSTANTS = /\b(?:true|false|iota|nil)\b/
130
+
131
+ PREDECLARED_FUNCTIONS = /\b(?:
132
+ append | cap | close | complex
133
+ | copy | delete | imag | len
134
+ | make | new | panic | print
135
+ | println | real | recover
136
+ )\b/x
137
+
138
+ state :simple_tokens do
139
+ rule(COMMENT, Comment)
140
+ rule(KEYWORD, Keyword)
141
+ rule(PREDECLARED_TYPES, Keyword::Type)
142
+ rule(PREDECLARED_FUNCTIONS, Name::Builtin)
143
+ rule(PREDECLARED_CONSTANTS, Name::Constant)
144
+ rule(IMAGINARY_LIT, Num)
145
+ rule(FLOAT_LIT, Num)
146
+ rule(INT_LIT, Num)
147
+ rule(CHAR_LIT, Str::Char)
148
+ rule(OPERATOR, Operator)
149
+ rule(SEPARATOR, Punctuation)
150
+ rule(IDENTIFIER, Name)
151
+ rule(WHITE_SPACE, Other)
152
+ end
153
+
154
+ state :root do
155
+ mixin :simple_tokens
156
+
157
+ rule(/`/, Str, :raw_string)
158
+ rule(/"/, Str, :interpreted_string)
159
+ end
160
+
161
+ state :interpreted_string do
162
+ rule(ESCAPE_SEQUENCE, Str::Escape)
163
+ rule(/\\./, Error)
164
+ rule(/"/, Str, :pop!)
165
+ rule(/[^"\\]+/, Str)
166
+ end
167
+
168
+ state :raw_string do
169
+ rule(/`/, Str, :pop!)
170
+ rule(/[^`]+/m, Str)
171
+ end
172
+ end
173
+ end
174
+ end
@@ -0,0 +1,37 @@
1
+ # -*- coding: utf-8 -*- #
2
+
3
+ module Rouge
4
+ module Lexers
5
+ load_lexer 'groovy.rb'
6
+
7
+ class Gradle < Groovy
8
+ title "Gradle"
9
+ desc "A powerful build system for the JVM"
10
+
11
+ tag 'gradle'
12
+ filenames '*.gradle'
13
+ mimetypes 'text/x-gradle'
14
+
15
+ def self.keywords
16
+ @keywords ||= super + Set.new(%w(
17
+ allprojects artifacts buildscript configuration dependencies
18
+ repositories sourceSets subprojects publishing
19
+ ))
20
+ end
21
+
22
+ def self.types
23
+ @types ||= super + Set.new(%w(
24
+ Project Task Gradle Settings Script JavaToolChain SourceSet
25
+ SourceSetOutput IncrementalTaskInputs Configuration
26
+ ResolutionStrategy ArtifactResolutionQuery ComponentSelection
27
+ ComponentSelectionRules ConventionProperty ExtensionAware
28
+ ExtraPropertiesExtension PublishingExtension IvyPublication
29
+ IvyArtifact IvyArtifactSet IvyModuleDescriptorSpec
30
+ MavenPublication MavenArtifact MavenArtifactSet MavenPom
31
+ PluginDependenciesSpec PluginDependencySpec ResourceHandler
32
+ TextResourceFactory
33
+ ))
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,243 @@
1
+ # -*- coding: utf-8 -*- #
2
+
3
+ module Rouge
4
+ module Lexers
5
+ class GraphQL < RegexLexer
6
+ desc 'GraphQL'
7
+ tag 'graphql'
8
+ filenames '*.graphql', '*.gql'
9
+ mimetypes 'application/graphql'
10
+
11
+ name = /[_A-Za-z][_0-9A-Za-z]*/
12
+
13
+ state :root do
14
+ rule /\b(?:query|mutation|subscription)\b/, Keyword, :query_definition
15
+ rule /\{/ do
16
+ token Punctuation
17
+ push :query_definition
18
+ push :selection_set
19
+ end
20
+
21
+ rule /\bfragment\b/, Keyword, :fragment_definition
22
+
23
+ rule /\b(?:type|interface|enum)\b/, Keyword, :type_definition
24
+ rule /\b(?:input|schema)\b/, Keyword, :type_definition
25
+
26
+ rule /\bunion\b/, Keyword, :union_definition
27
+
28
+ mixin :basic
29
+ end
30
+
31
+ state :basic do
32
+ rule /\s+/m, Text::Whitespace
33
+ rule /#.*$/, Comment
34
+
35
+ rule /[!,]/, Punctuation
36
+ end
37
+
38
+ state :has_directives do
39
+ rule /(@#{name})(\s*)(\()/ do
40
+ groups Keyword, Text::Whitespace, Punctuation
41
+ push :arguments
42
+ end
43
+ rule /@#{name}\b/, Keyword
44
+ end
45
+
46
+ state :fragment_definition do
47
+ rule /\bon\b/, Keyword
48
+
49
+ mixin :query_definition
50
+ end
51
+
52
+ state :query_definition do
53
+ mixin :has_directives
54
+
55
+ rule /\b#{name}\b/, Name
56
+ rule /\(/, Punctuation, :variable_definitions
57
+ rule /\{/, Punctuation, :selection_set
58
+
59
+ mixin :basic
60
+ end
61
+
62
+ state :type_definition do
63
+ rule /\bimplements\b/, Keyword
64
+ rule /\b#{name}\b/, Name
65
+ rule /\(/, Punctuation, :variable_definitions
66
+ rule /\{/, Punctuation, :type_definition_set
67
+
68
+ mixin :basic
69
+ end
70
+
71
+ state :union_definition do
72
+ rule /\b#{name}\b/, Name
73
+ rule /\=/, Punctuation, :union_definition_variant
74
+
75
+ mixin :basic
76
+ end
77
+
78
+ state :union_definition_variant do
79
+ rule /\b#{name}\b/ do
80
+ token Name
81
+ pop!
82
+ push :union_definition_pipe
83
+ end
84
+
85
+ mixin :basic
86
+ end
87
+
88
+ state :union_definition_pipe do
89
+ rule /\|/ do
90
+ token Punctuation
91
+ pop!
92
+ push :union_definition_variant
93
+ end
94
+
95
+ rule /(?!\||\s+|#[^\n]*)/ do
96
+ pop! 2
97
+ end
98
+
99
+ mixin :basic
100
+ end
101
+
102
+ state :type_definition_set do
103
+ rule /\}/ do
104
+ token Punctuation
105
+ pop! 2
106
+ end
107
+
108
+ rule /\b(#{name})(\s*)(\()/ do
109
+ groups Name, Text::Whitespace, Punctuation
110
+ push :variable_definitions
111
+ end
112
+ rule /\b#{name}\b/, Name
113
+
114
+ rule /:/, Punctuation, :type_names
115
+
116
+ mixin :basic
117
+ end
118
+
119
+ state :arguments do
120
+ rule /\)/ do
121
+ token Punctuation
122
+ pop!
123
+ end
124
+
125
+ rule /\b#{name}\b/, Name
126
+ rule /:/, Punctuation, :value
127
+
128
+ mixin :basic
129
+ end
130
+
131
+ state :variable_definitions do
132
+ rule /\)/ do
133
+ token Punctuation
134
+ pop!
135
+ end
136
+
137
+ rule /\$#{name}\b/, Name::Variable
138
+ rule /\b#{name}\b/, Name
139
+ rule /:/, Punctuation, :type_names
140
+ rule /\=/, Punctuation, :value
141
+
142
+ mixin :basic
143
+ end
144
+
145
+ state :type_names do
146
+ rule /\b(?:Int|Float|String|Boolean|ID)\b/, Name::Builtin, :pop!
147
+ rule /\b#{name}\b/, Name, :pop!
148
+
149
+ rule /\[/, Punctuation, :type_name_list
150
+
151
+ mixin :basic
152
+ end
153
+
154
+ state :type_name_list do
155
+ rule /\b(?:Int|Float|String|Boolean|ID)\b/, Name::Builtin
156
+ rule /\b#{name}\b/, Name
157
+
158
+ rule /\]/ do
159
+ token Punctuation
160
+ pop! 2
161
+ end
162
+
163
+ mixin :basic
164
+ end
165
+
166
+ state :selection_set do
167
+ mixin :has_directives
168
+
169
+ rule /\}/ do
170
+ token Punctuation
171
+ pop!
172
+ pop! if state?(:query_definition) || state?(:fragment_definition)
173
+ end
174
+
175
+ rule /\b(#{name})(\s*)(\()/ do
176
+ groups Name, Text::Whitespace, Punctuation
177
+ push :arguments
178
+ end
179
+
180
+ rule /\b(#{name})(\s*)(:)/ do
181
+ groups Name, Text::Whitespace, Punctuation
182
+ end
183
+
184
+ rule /\b#{name}\b/, Name
185
+
186
+ rule /(\.\.\.)(\s+)(on)\b/ do
187
+ groups Punctuation, Text::Whitespace, Keyword
188
+ end
189
+ rule /\.\.\./, Punctuation
190
+
191
+ rule /\{/, Punctuation, :selection_set
192
+
193
+ mixin :basic
194
+ end
195
+
196
+ state :list do
197
+ rule /\]/ do
198
+ token Punctuation
199
+ pop!
200
+ pop! if state?(:value)
201
+ end
202
+
203
+ mixin :value
204
+ end
205
+
206
+ state :object do
207
+ rule /\}/ do
208
+ token Punctuation
209
+ pop!
210
+ pop! if state?(:value)
211
+ end
212
+
213
+ rule /\b(#{name})(\s*)(:)/ do
214
+ groups Name, Text::Whitespace, Punctuation
215
+ push :value
216
+ end
217
+
218
+ mixin :basic
219
+ end
220
+
221
+ state :value do
222
+ pop_unless_list = ->(t) {
223
+ ->(m) {
224
+ token t
225
+ pop! unless state?(:list)
226
+ }
227
+ }
228
+
229
+ rule /\$#{name}\b/, &pop_unless_list[Name::Variable]
230
+ rule /\b(?:true|false|null)\b/, &pop_unless_list[Keyword::Constant]
231
+ rule /[+-]?[0-9]+\.[0-9]+(?:[eE][+-]?[0-9]+)?/, &pop_unless_list[Num::Float]
232
+ rule /[+-]?[1-9][0-9]*(?:[eE][+-]?[0-9]+)?/, &pop_unless_list[Num::Integer]
233
+ rule /"(\\[\\"]|[^"])*"/, &pop_unless_list[Str::Double]
234
+ rule /\b#{name}\b/, &pop_unless_list[Name]
235
+
236
+ rule /\{/, Punctuation, :object
237
+ rule /\[/, Punctuation, :list
238
+
239
+ mixin :basic
240
+ end
241
+ end
242
+ end
243
+ end