rouge 3.17.0
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.
- checksums.yaml +7 -0
- data/Gemfile +40 -0
- data/LICENSE +186 -0
- data/bin/rougify +18 -0
- data/lib/rouge.rb +93 -0
- data/lib/rouge/cli.rb +498 -0
- data/lib/rouge/demos/abap +6 -0
- data/lib/rouge/demos/actionscript +4 -0
- data/lib/rouge/demos/ada +26 -0
- data/lib/rouge/demos/apache +21 -0
- data/lib/rouge/demos/apex +9 -0
- data/lib/rouge/demos/apiblueprint +33 -0
- data/lib/rouge/demos/applescript +2 -0
- data/lib/rouge/demos/armasm +12 -0
- data/lib/rouge/demos/awk +4 -0
- data/lib/rouge/demos/batchfile +3 -0
- data/lib/rouge/demos/bbcbasic +6 -0
- data/lib/rouge/demos/biml +38 -0
- data/lib/rouge/demos/bpf +7 -0
- data/lib/rouge/demos/brainfuck +5 -0
- data/lib/rouge/demos/bsl +7 -0
- data/lib/rouge/demos/c +8 -0
- data/lib/rouge/demos/ceylon +7 -0
- data/lib/rouge/demos/cfscript +18 -0
- data/lib/rouge/demos/clean +6 -0
- data/lib/rouge/demos/clojure +5 -0
- data/lib/rouge/demos/cmake +7 -0
- data/lib/rouge/demos/cmhg +8 -0
- data/lib/rouge/demos/coffeescript +5 -0
- data/lib/rouge/demos/common_lisp +1 -0
- data/lib/rouge/demos/conf +4 -0
- data/lib/rouge/demos/console +6 -0
- data/lib/rouge/demos/coq +13 -0
- data/lib/rouge/demos/cpp +8 -0
- data/lib/rouge/demos/crystal +45 -0
- data/lib/rouge/demos/csharp +5 -0
- data/lib/rouge/demos/css +4 -0
- data/lib/rouge/demos/csvs +8 -0
- data/lib/rouge/demos/cuda +11 -0
- data/lib/rouge/demos/cython +6 -0
- data/lib/rouge/demos/d +16 -0
- data/lib/rouge/demos/dart +6 -0
- data/lib/rouge/demos/diff +7 -0
- data/lib/rouge/demos/digdag +19 -0
- data/lib/rouge/demos/docker +9 -0
- data/lib/rouge/demos/dot +5 -0
- data/lib/rouge/demos/ecl +18 -0
- data/lib/rouge/demos/eex +1 -0
- data/lib/rouge/demos/eiffel +30 -0
- data/lib/rouge/demos/elixir +1 -0
- data/lib/rouge/demos/elm +4 -0
- data/lib/rouge/demos/epp +4 -0
- data/lib/rouge/demos/erb +1 -0
- data/lib/rouge/demos/erlang +7 -0
- data/lib/rouge/demos/escape +3 -0
- data/lib/rouge/demos/factor +5 -0
- data/lib/rouge/demos/fortran +22 -0
- data/lib/rouge/demos/freefem +16 -0
- data/lib/rouge/demos/fsharp +12 -0
- data/lib/rouge/demos/gdscript +18 -0
- data/lib/rouge/demos/ghc-core +26 -0
- data/lib/rouge/demos/gherkin +17 -0
- data/lib/rouge/demos/glsl +14 -0
- data/lib/rouge/demos/go +7 -0
- data/lib/rouge/demos/gradle +10 -0
- data/lib/rouge/demos/graphql +17 -0
- data/lib/rouge/demos/groovy +9 -0
- data/lib/rouge/demos/hack +5 -0
- data/lib/rouge/demos/haml +5 -0
- data/lib/rouge/demos/handlebars +7 -0
- data/lib/rouge/demos/haskell +6 -0
- data/lib/rouge/demos/haxe +5 -0
- data/lib/rouge/demos/hcl +7 -0
- data/lib/rouge/demos/hocon +8 -0
- data/lib/rouge/demos/hql +5 -0
- data/lib/rouge/demos/html +8 -0
- data/lib/rouge/demos/http +14 -0
- data/lib/rouge/demos/hylang +10 -0
- data/lib/rouge/demos/idlang +8 -0
- data/lib/rouge/demos/igorpro +9 -0
- data/lib/rouge/demos/ini +4 -0
- data/lib/rouge/demos/io +11 -0
- data/lib/rouge/demos/irb +4 -0
- data/lib/rouge/demos/irb_output +2 -0
- data/lib/rouge/demos/java +5 -0
- data/lib/rouge/demos/javascript +1 -0
- data/lib/rouge/demos/jinja +9 -0
- data/lib/rouge/demos/jsl +3 -0
- data/lib/rouge/demos/json +1 -0
- data/lib/rouge/demos/json-doc +1 -0
- data/lib/rouge/demos/jsonnet +28 -0
- data/lib/rouge/demos/jsp +29 -0
- data/lib/rouge/demos/jsx +17 -0
- data/lib/rouge/demos/julia +11 -0
- data/lib/rouge/demos/kotlin +3 -0
- data/lib/rouge/demos/lasso +12 -0
- data/lib/rouge/demos/liquid +10 -0
- data/lib/rouge/demos/literate_coffeescript +3 -0
- data/lib/rouge/demos/literate_haskell +7 -0
- data/lib/rouge/demos/llvm +20 -0
- data/lib/rouge/demos/lua +12 -0
- data/lib/rouge/demos/lustre +6 -0
- data/lib/rouge/demos/lutin +18 -0
- data/lib/rouge/demos/m68k +16 -0
- data/lib/rouge/demos/magik +6 -0
- data/lib/rouge/demos/make +6 -0
- data/lib/rouge/demos/markdown +4 -0
- data/lib/rouge/demos/mason +22 -0
- data/lib/rouge/demos/mathematica +8 -0
- data/lib/rouge/demos/matlab +6 -0
- data/lib/rouge/demos/minizinc +23 -0
- data/lib/rouge/demos/moonscript +16 -0
- data/lib/rouge/demos/mosel +10 -0
- data/lib/rouge/demos/msgtrans +4 -0
- data/lib/rouge/demos/mxml +22 -0
- data/lib/rouge/demos/nasm +26 -0
- data/lib/rouge/demos/nesasm +11 -0
- data/lib/rouge/demos/nginx +5 -0
- data/lib/rouge/demos/nim +27 -0
- data/lib/rouge/demos/nix +19 -0
- data/lib/rouge/demos/objective_c +18 -0
- data/lib/rouge/demos/objective_cpp +17 -0
- data/lib/rouge/demos/ocaml +12 -0
- data/lib/rouge/demos/openedge +4 -0
- data/lib/rouge/demos/opentype_feature_file +6 -0
- data/lib/rouge/demos/pascal +14 -0
- data/lib/rouge/demos/perl +5 -0
- data/lib/rouge/demos/php +3 -0
- data/lib/rouge/demos/plaintext +1 -0
- data/lib/rouge/demos/plist +11 -0
- data/lib/rouge/demos/pony +17 -0
- data/lib/rouge/demos/powershell +13 -0
- data/lib/rouge/demos/praat +26 -0
- data/lib/rouge/demos/prolog +9 -0
- data/lib/rouge/demos/prometheus +9 -0
- data/lib/rouge/demos/properties +7 -0
- data/lib/rouge/demos/protobuf +5 -0
- data/lib/rouge/demos/puppet +6 -0
- data/lib/rouge/demos/python +6 -0
- data/lib/rouge/demos/q +8 -0
- data/lib/rouge/demos/qml +9 -0
- data/lib/rouge/demos/r +8 -0
- data/lib/rouge/demos/racket +24 -0
- data/lib/rouge/demos/reasonml +12 -0
- data/lib/rouge/demos/robot_framework +27 -0
- data/lib/rouge/demos/ruby +9 -0
- data/lib/rouge/demos/rust +12 -0
- data/lib/rouge/demos/sas +13 -0
- data/lib/rouge/demos/sass +3 -0
- data/lib/rouge/demos/scala +3 -0
- data/lib/rouge/demos/scheme +4 -0
- data/lib/rouge/demos/scss +5 -0
- data/lib/rouge/demos/sed +4 -0
- data/lib/rouge/demos/shell +2 -0
- data/lib/rouge/demos/sieve +10 -0
- data/lib/rouge/demos/slice +10 -0
- data/lib/rouge/demos/slim +17 -0
- data/lib/rouge/demos/smalltalk +6 -0
- data/lib/rouge/demos/smarty +12 -0
- data/lib/rouge/demos/sml +4 -0
- data/lib/rouge/demos/sparql +6 -0
- data/lib/rouge/demos/sqf +14 -0
- data/lib/rouge/demos/sql +1 -0
- data/lib/rouge/demos/supercollider +11 -0
- data/lib/rouge/demos/swift +5 -0
- data/lib/rouge/demos/tap +5 -0
- data/lib/rouge/demos/tcl +1 -0
- data/lib/rouge/demos/terraform +16 -0
- data/lib/rouge/demos/tex +1 -0
- data/lib/rouge/demos/toml +9 -0
- data/lib/rouge/demos/tsx +17 -0
- data/lib/rouge/demos/ttcn3 +6 -0
- data/lib/rouge/demos/tulip +13 -0
- data/lib/rouge/demos/turtle +26 -0
- data/lib/rouge/demos/twig +9 -0
- data/lib/rouge/demos/typescript +1 -0
- data/lib/rouge/demos/vala +8 -0
- data/lib/rouge/demos/vb +4 -0
- data/lib/rouge/demos/vcl +12 -0
- data/lib/rouge/demos/verilog +27 -0
- data/lib/rouge/demos/vhdl +23 -0
- data/lib/rouge/demos/viml +14 -0
- data/lib/rouge/demos/vue +11 -0
- data/lib/rouge/demos/wollok +11 -0
- data/lib/rouge/demos/xml +2 -0
- data/lib/rouge/demos/xojo +14 -0
- data/lib/rouge/demos/xpath +2 -0
- data/lib/rouge/demos/xquery +22 -0
- data/lib/rouge/demos/yaml +4 -0
- data/lib/rouge/formatter.rb +112 -0
- data/lib/rouge/formatters/html.rb +56 -0
- data/lib/rouge/formatters/html_inline.rb +31 -0
- data/lib/rouge/formatters/html_legacy.rb +45 -0
- data/lib/rouge/formatters/html_line_table.rb +53 -0
- data/lib/rouge/formatters/html_linewise.rb +23 -0
- data/lib/rouge/formatters/html_pygments.rb +18 -0
- data/lib/rouge/formatters/html_table.rb +51 -0
- data/lib/rouge/formatters/null.rb +20 -0
- data/lib/rouge/formatters/terminal256.rb +198 -0
- data/lib/rouge/formatters/terminal_truecolor.rb +37 -0
- data/lib/rouge/formatters/tex.rb +92 -0
- data/lib/rouge/guesser.rb +57 -0
- data/lib/rouge/guessers/disambiguation.rb +136 -0
- data/lib/rouge/guessers/filename.rb +27 -0
- data/lib/rouge/guessers/glob_mapping.rb +45 -0
- data/lib/rouge/guessers/mimetype.rb +16 -0
- data/lib/rouge/guessers/modeline.rb +46 -0
- data/lib/rouge/guessers/source.rb +31 -0
- data/lib/rouge/guessers/util.rb +34 -0
- data/lib/rouge/lexer.rb +516 -0
- data/lib/rouge/lexers/abap.rb +240 -0
- data/lib/rouge/lexers/actionscript.rb +196 -0
- data/lib/rouge/lexers/ada.rb +162 -0
- data/lib/rouge/lexers/apache.rb +73 -0
- data/lib/rouge/lexers/apache/keywords.yml +764 -0
- data/lib/rouge/lexers/apex.rb +126 -0
- data/lib/rouge/lexers/apiblueprint.rb +49 -0
- data/lib/rouge/lexers/apple_script.rb +370 -0
- data/lib/rouge/lexers/armasm.rb +145 -0
- data/lib/rouge/lexers/awk.rb +162 -0
- data/lib/rouge/lexers/batchfile.rb +164 -0
- data/lib/rouge/lexers/bbcbasic.rb +112 -0
- data/lib/rouge/lexers/biml.rb +43 -0
- data/lib/rouge/lexers/bpf.rb +118 -0
- data/lib/rouge/lexers/brainfuck.rb +53 -0
- data/lib/rouge/lexers/bsl.rb +82 -0
- data/lib/rouge/lexers/c.rb +190 -0
- data/lib/rouge/lexers/ceylon.rb +96 -0
- data/lib/rouge/lexers/cfscript.rb +154 -0
- data/lib/rouge/lexers/clean.rb +156 -0
- data/lib/rouge/lexers/clojure.rb +113 -0
- data/lib/rouge/lexers/cmake.rb +207 -0
- data/lib/rouge/lexers/cmhg.rb +34 -0
- data/lib/rouge/lexers/coffeescript.rb +215 -0
- data/lib/rouge/lexers/common_lisp.rb +346 -0
- data/lib/rouge/lexers/conf.rb +25 -0
- data/lib/rouge/lexers/console.rb +174 -0
- data/lib/rouge/lexers/coq.rb +191 -0
- data/lib/rouge/lexers/cpp.rb +82 -0
- data/lib/rouge/lexers/crystal.rb +430 -0
- data/lib/rouge/lexers/csharp.rb +114 -0
- data/lib/rouge/lexers/css.rb +274 -0
- data/lib/rouge/lexers/csvs.rb +44 -0
- data/lib/rouge/lexers/cuda.rb +35 -0
- data/lib/rouge/lexers/cython.rb +151 -0
- data/lib/rouge/lexers/d.rb +177 -0
- data/lib/rouge/lexers/dart.rb +105 -0
- data/lib/rouge/lexers/diff.rb +37 -0
- data/lib/rouge/lexers/digdag.rb +70 -0
- data/lib/rouge/lexers/docker.rb +51 -0
- data/lib/rouge/lexers/dot.rb +69 -0
- data/lib/rouge/lexers/ecl.rb +175 -0
- data/lib/rouge/lexers/eex.rb +52 -0
- data/lib/rouge/lexers/eiffel.rb +66 -0
- data/lib/rouge/lexers/elixir.rb +149 -0
- data/lib/rouge/lexers/elm.rb +90 -0
- data/lib/rouge/lexers/epp.rb +51 -0
- data/lib/rouge/lexers/erb.rb +53 -0
- data/lib/rouge/lexers/erlang.rb +115 -0
- data/lib/rouge/lexers/escape.rb +58 -0
- data/lib/rouge/lexers/factor.rb +303 -0
- data/lib/rouge/lexers/fortran.rb +178 -0
- data/lib/rouge/lexers/freefem.rb +240 -0
- data/lib/rouge/lexers/fsharp.rb +119 -0
- data/lib/rouge/lexers/gdscript.rb +171 -0
- data/lib/rouge/lexers/ghc_core.rb +151 -0
- data/lib/rouge/lexers/gherkin.rb +140 -0
- data/lib/rouge/lexers/gherkin/keywords.rb +16 -0
- data/lib/rouge/lexers/glsl.rb +132 -0
- data/lib/rouge/lexers/go.rb +175 -0
- data/lib/rouge/lexers/gradle.rb +38 -0
- data/lib/rouge/lexers/graphql.rb +261 -0
- data/lib/rouge/lexers/groovy.rb +111 -0
- data/lib/rouge/lexers/hack.rb +49 -0
- data/lib/rouge/lexers/haml.rb +226 -0
- data/lib/rouge/lexers/handlebars.rb +91 -0
- data/lib/rouge/lexers/haskell.rb +199 -0
- data/lib/rouge/lexers/haxe.rb +246 -0
- data/lib/rouge/lexers/hcl.rb +163 -0
- data/lib/rouge/lexers/hocon.rb +86 -0
- data/lib/rouge/lexers/hql.rb +139 -0
- data/lib/rouge/lexers/html.rb +141 -0
- data/lib/rouge/lexers/http.rb +81 -0
- data/lib/rouge/lexers/hylang.rb +94 -0
- data/lib/rouge/lexers/idlang.rb +312 -0
- data/lib/rouge/lexers/igorpro.rb +664 -0
- data/lib/rouge/lexers/ini.rb +54 -0
- data/lib/rouge/lexers/io.rb +69 -0
- data/lib/rouge/lexers/irb.rb +67 -0
- data/lib/rouge/lexers/java.rb +91 -0
- data/lib/rouge/lexers/javascript.rb +279 -0
- data/lib/rouge/lexers/jinja.rb +154 -0
- data/lib/rouge/lexers/jsl.rb +55 -0
- data/lib/rouge/lexers/json.rb +69 -0
- data/lib/rouge/lexers/json_doc.rb +25 -0
- data/lib/rouge/lexers/jsonnet.rb +152 -0
- data/lib/rouge/lexers/jsp.rb +120 -0
- data/lib/rouge/lexers/jsx.rb +104 -0
- data/lib/rouge/lexers/julia.rb +290 -0
- data/lib/rouge/lexers/kotlin.rb +127 -0
- data/lib/rouge/lexers/lasso.rb +215 -0
- data/lib/rouge/lexers/lasso/keywords.yml +446 -0
- data/lib/rouge/lexers/liquid.rb +285 -0
- data/lib/rouge/lexers/literate_coffeescript.rb +34 -0
- data/lib/rouge/lexers/literate_haskell.rb +37 -0
- data/lib/rouge/lexers/llvm.rb +97 -0
- data/lib/rouge/lexers/lua.rb +164 -0
- data/lib/rouge/lexers/lua/builtins.rb +24 -0
- data/lib/rouge/lexers/lustre.rb +79 -0
- data/lib/rouge/lexers/lutin.rb +33 -0
- data/lib/rouge/lexers/m68k.rb +143 -0
- data/lib/rouge/lexers/magik.rb +127 -0
- data/lib/rouge/lexers/make.rb +135 -0
- data/lib/rouge/lexers/markdown.rb +182 -0
- data/lib/rouge/lexers/mason.rb +110 -0
- data/lib/rouge/lexers/mathematica.rb +96 -0
- data/lib/rouge/lexers/mathematica/builtins.rb +13 -0
- data/lib/rouge/lexers/matlab.rb +81 -0
- data/lib/rouge/lexers/matlab/builtins.yml +3515 -0
- data/lib/rouge/lexers/minizinc.rb +87 -0
- data/lib/rouge/lexers/moonscript.rb +115 -0
- data/lib/rouge/lexers/mosel.rb +232 -0
- data/lib/rouge/lexers/msgtrans.rb +26 -0
- data/lib/rouge/lexers/mxml.rb +69 -0
- data/lib/rouge/lexers/nasm.rb +72 -0
- data/lib/rouge/lexers/nesasm.rb +78 -0
- data/lib/rouge/lexers/nginx.rb +72 -0
- data/lib/rouge/lexers/nim.rb +154 -0
- data/lib/rouge/lexers/nix.rb +211 -0
- data/lib/rouge/lexers/objective_c.rb +21 -0
- data/lib/rouge/lexers/objective_c/common.rb +184 -0
- data/lib/rouge/lexers/objective_cpp.rb +31 -0
- data/lib/rouge/lexers/ocaml.rb +65 -0
- data/lib/rouge/lexers/ocaml/common.rb +53 -0
- data/lib/rouge/lexers/openedge.rb +429 -0
- data/lib/rouge/lexers/opentype_feature_file.rb +113 -0
- data/lib/rouge/lexers/pascal.rb +67 -0
- data/lib/rouge/lexers/perl.rb +231 -0
- data/lib/rouge/lexers/php.rb +216 -0
- data/lib/rouge/lexers/php/builtins.rb +203 -0
- data/lib/rouge/lexers/plain_text.rb +27 -0
- data/lib/rouge/lexers/plist.rb +47 -0
- data/lib/rouge/lexers/pony.rb +94 -0
- data/lib/rouge/lexers/powershell.rb +230 -0
- data/lib/rouge/lexers/praat.rb +351 -0
- data/lib/rouge/lexers/prolog.rb +67 -0
- data/lib/rouge/lexers/prometheus.rb +123 -0
- data/lib/rouge/lexers/properties.rb +52 -0
- data/lib/rouge/lexers/protobuf.rb +71 -0
- data/lib/rouge/lexers/puppet.rb +129 -0
- data/lib/rouge/lexers/python.rb +248 -0
- data/lib/rouge/lexers/q.rb +126 -0
- data/lib/rouge/lexers/qml.rb +74 -0
- data/lib/rouge/lexers/r.rb +89 -0
- data/lib/rouge/lexers/racket.rb +545 -0
- data/lib/rouge/lexers/reasonml.rb +65 -0
- data/lib/rouge/lexers/robot_framework.rb +249 -0
- data/lib/rouge/lexers/ruby.rb +444 -0
- data/lib/rouge/lexers/rust.rb +193 -0
- data/lib/rouge/lexers/sas.rb +563 -0
- data/lib/rouge/lexers/sass.rb +75 -0
- data/lib/rouge/lexers/sass/common.rb +181 -0
- data/lib/rouge/lexers/scala.rb +169 -0
- data/lib/rouge/lexers/scheme.rb +113 -0
- data/lib/rouge/lexers/scss.rb +35 -0
- data/lib/rouge/lexers/sed.rb +173 -0
- data/lib/rouge/lexers/shell.rb +201 -0
- data/lib/rouge/lexers/sieve.rb +97 -0
- data/lib/rouge/lexers/slice.rb +32 -0
- data/lib/rouge/lexers/slim.rb +229 -0
- data/lib/rouge/lexers/smalltalk.rb +117 -0
- data/lib/rouge/lexers/smarty.rb +81 -0
- data/lib/rouge/lexers/sml.rb +345 -0
- data/lib/rouge/lexers/sparql.rb +129 -0
- data/lib/rouge/lexers/sqf.rb +109 -0
- data/lib/rouge/lexers/sqf/commands.rb +15 -0
- data/lib/rouge/lexers/sql.rb +161 -0
- data/lib/rouge/lexers/supercollider.rb +116 -0
- data/lib/rouge/lexers/swift.rb +186 -0
- data/lib/rouge/lexers/tap.rb +89 -0
- data/lib/rouge/lexers/tcl.rb +193 -0
- data/lib/rouge/lexers/terraform.rb +113 -0
- data/lib/rouge/lexers/tex.rb +70 -0
- data/lib/rouge/lexers/toml.rb +106 -0
- data/lib/rouge/lexers/tsx.rb +20 -0
- data/lib/rouge/lexers/ttcn3.rb +119 -0
- data/lib/rouge/lexers/tulip.rb +108 -0
- data/lib/rouge/lexers/turtle.rb +61 -0
- data/lib/rouge/lexers/twig.rb +40 -0
- data/lib/rouge/lexers/typescript.rb +30 -0
- data/lib/rouge/lexers/typescript/common.rb +34 -0
- data/lib/rouge/lexers/vala.rb +78 -0
- data/lib/rouge/lexers/varnish.rb +168 -0
- data/lib/rouge/lexers/vb.rb +165 -0
- data/lib/rouge/lexers/verilog.rb +163 -0
- data/lib/rouge/lexers/vhdl.rb +98 -0
- data/lib/rouge/lexers/viml.rb +102 -0
- data/lib/rouge/lexers/viml/keywords.rb +14 -0
- data/lib/rouge/lexers/vue.rb +124 -0
- data/lib/rouge/lexers/wollok.rb +104 -0
- data/lib/rouge/lexers/xml.rb +54 -0
- data/lib/rouge/lexers/xojo.rb +61 -0
- data/lib/rouge/lexers/xpath.rb +332 -0
- data/lib/rouge/lexers/xquery.rb +145 -0
- data/lib/rouge/lexers/yaml.rb +376 -0
- data/lib/rouge/plugins/redcarpet.rb +37 -0
- data/lib/rouge/regex_lexer.rb +443 -0
- data/lib/rouge/template_lexer.rb +21 -0
- data/lib/rouge/tex_theme_renderer.rb +132 -0
- data/lib/rouge/text_analyzer.rb +50 -0
- data/lib/rouge/theme.rb +218 -0
- data/lib/rouge/themes/base16.rb +131 -0
- data/lib/rouge/themes/bw.rb +41 -0
- data/lib/rouge/themes/colorful.rb +68 -0
- data/lib/rouge/themes/github.rb +72 -0
- data/lib/rouge/themes/gruvbox.rb +168 -0
- data/lib/rouge/themes/igor_pro.rb +21 -0
- data/lib/rouge/themes/magritte.rb +78 -0
- data/lib/rouge/themes/molokai.rb +83 -0
- data/lib/rouge/themes/monokai.rb +93 -0
- data/lib/rouge/themes/monokai_sublime.rb +93 -0
- data/lib/rouge/themes/pastie.rb +70 -0
- data/lib/rouge/themes/thankful_eyes.rb +75 -0
- data/lib/rouge/themes/tulip.rb +70 -0
- data/lib/rouge/token.rb +191 -0
- data/lib/rouge/util.rb +102 -0
- data/lib/rouge/version.rb +8 -0
- data/rouge.gemspec +26 -0
- metadata +476 -0
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module Rouge
|
|
5
|
+
module Lexers
|
|
6
|
+
class CSharp < RegexLexer
|
|
7
|
+
tag 'csharp'
|
|
8
|
+
aliases 'c#', 'cs'
|
|
9
|
+
filenames '*.cs'
|
|
10
|
+
mimetypes 'text/x-csharp'
|
|
11
|
+
|
|
12
|
+
title "C#"
|
|
13
|
+
desc 'a multi-paradigm language targeting .NET'
|
|
14
|
+
|
|
15
|
+
# TODO: support more of unicode
|
|
16
|
+
id = /@?[_a-z]\w*/i
|
|
17
|
+
|
|
18
|
+
#Reserved Identifiers
|
|
19
|
+
#Contextual Keywords
|
|
20
|
+
#LINQ Query Expressions
|
|
21
|
+
keywords = %w(
|
|
22
|
+
abstract as base break case catch checked const continue
|
|
23
|
+
default delegate do else enum event explicit extern false
|
|
24
|
+
finally fixed for foreach goto if implicit in interface
|
|
25
|
+
internal is lock new null operator out override params private
|
|
26
|
+
protected public readonly ref return sealed sizeof stackalloc
|
|
27
|
+
static switch this throw true try typeof unchecked unsafe
|
|
28
|
+
virtual void volatile while
|
|
29
|
+
add alias async await get global partial remove set value where
|
|
30
|
+
yield nameof
|
|
31
|
+
ascending by descending equals from group in into join let on
|
|
32
|
+
orderby select
|
|
33
|
+
)
|
|
34
|
+
|
|
35
|
+
keywords_type = %w(
|
|
36
|
+
bool byte char decimal double dynamic float int long object
|
|
37
|
+
sbyte short string uint ulong ushort var
|
|
38
|
+
)
|
|
39
|
+
|
|
40
|
+
cpp_keywords = %w(
|
|
41
|
+
if endif else elif define undef line error warning region
|
|
42
|
+
endregion pragma
|
|
43
|
+
)
|
|
44
|
+
|
|
45
|
+
state :whitespace do
|
|
46
|
+
rule %r/\s+/m, Text
|
|
47
|
+
rule %r(//.*?$), Comment::Single
|
|
48
|
+
rule %r(/[*].*?[*]/)m, Comment::Multiline
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
state :nest do
|
|
52
|
+
rule %r/{/, Punctuation, :nest
|
|
53
|
+
rule %r/}/, Punctuation, :pop!
|
|
54
|
+
mixin :root
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
state :splice_string do
|
|
58
|
+
rule %r/\\./, Str
|
|
59
|
+
rule %r/{/, Punctuation, :nest
|
|
60
|
+
rule %r/"|\n/, Str, :pop!
|
|
61
|
+
rule %r/./, Str
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
state :splice_literal do
|
|
65
|
+
rule %r/""/, Str
|
|
66
|
+
rule %r/{/, Punctuation, :nest
|
|
67
|
+
rule %r/"/, Str, :pop!
|
|
68
|
+
rule %r/./, Str
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
state :root do
|
|
72
|
+
mixin :whitespace
|
|
73
|
+
|
|
74
|
+
rule %r/[$]\s*"/, Str, :splice_string
|
|
75
|
+
rule %r/[$]@\s*"/, Str, :splice_literal
|
|
76
|
+
|
|
77
|
+
rule %r/(<\[)\s*(#{id}:)?/, Keyword
|
|
78
|
+
rule %r/\]>/, Keyword
|
|
79
|
+
|
|
80
|
+
rule %r/[~!%^&*()+=|\[\]{}:;,.<>\/?-]/, Punctuation
|
|
81
|
+
rule %r/@"(""|[^"])*"/m, Str
|
|
82
|
+
rule %r/"(\\.|.)*?["\n]/, Str
|
|
83
|
+
rule %r/'(\\.|.)'/, Str::Char
|
|
84
|
+
rule %r/0x[0-9a-f]+[lu]?/i, Num
|
|
85
|
+
rule %r(
|
|
86
|
+
[0-9]
|
|
87
|
+
([.][0-9]*)? # decimal
|
|
88
|
+
(e[+-][0-9]+)? # exponent
|
|
89
|
+
[fldu]? # type
|
|
90
|
+
)ix, Num
|
|
91
|
+
rule %r/\b(?:class|struct|interface)\b/, Keyword, :class
|
|
92
|
+
rule %r/\b(?:namespace|using)\b/, Keyword, :namespace
|
|
93
|
+
rule %r/^#[ \t]*(#{cpp_keywords.join('|')})\b.*?\n/,
|
|
94
|
+
Comment::Preproc
|
|
95
|
+
rule %r/\b(#{keywords.join('|')})\b/, Keyword
|
|
96
|
+
rule %r/\b(#{keywords_type.join('|')})\b/, Keyword::Type
|
|
97
|
+
rule %r/#{id}(?=\s*[(])/, Name::Function
|
|
98
|
+
rule id, Name
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
state :class do
|
|
102
|
+
mixin :whitespace
|
|
103
|
+
rule id, Name::Class, :pop!
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
state :namespace do
|
|
107
|
+
mixin :whitespace
|
|
108
|
+
rule %r/(?=[(])/, Text, :pop!
|
|
109
|
+
rule %r/(#{id}|[.])+/, Name::Namespace, :pop!
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
end
|
|
113
|
+
end
|
|
114
|
+
end
|
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module Rouge
|
|
5
|
+
module Lexers
|
|
6
|
+
class CSS < RegexLexer
|
|
7
|
+
title "CSS"
|
|
8
|
+
desc "Cascading Style Sheets, used to style web pages"
|
|
9
|
+
|
|
10
|
+
tag 'css'
|
|
11
|
+
filenames '*.css'
|
|
12
|
+
mimetypes 'text/css'
|
|
13
|
+
|
|
14
|
+
identifier = /[a-zA-Z0-9_-]+/
|
|
15
|
+
number = /-?(?:[0-9]+(\.[0-9]+)?|\.[0-9]+)/
|
|
16
|
+
|
|
17
|
+
def self.attributes
|
|
18
|
+
@attributes ||= Set.new %w(
|
|
19
|
+
align-content align-items align-self alignment-adjust
|
|
20
|
+
alignment-baseline all anchor-point animation
|
|
21
|
+
animation-delay animation-direction animation-duration
|
|
22
|
+
animation-fill-mode animation-iteration-count animation-name
|
|
23
|
+
animation-play-state animation-timing-function appearance
|
|
24
|
+
azimuth backface-visibility background background-attachment
|
|
25
|
+
background-clip background-color background-image
|
|
26
|
+
background-origin background-position background-repeat
|
|
27
|
+
background-size baseline-shift binding bleed bookmark-label
|
|
28
|
+
bookmark-level bookmark-state bookmark-target border
|
|
29
|
+
border-bottom border-bottom-color border-bottom-left-radius
|
|
30
|
+
border-bottom-right-radius border-bottom-style
|
|
31
|
+
border-bottom-width border-collapse border-color
|
|
32
|
+
border-image border-image-outset border-image-repeat
|
|
33
|
+
border-image-slice border-image-source border-image-width
|
|
34
|
+
border-left border-left-color border-left-style
|
|
35
|
+
border-left-width border-radius border-right
|
|
36
|
+
border-right-color border-right-style border-right-width
|
|
37
|
+
border-spacing border-style border-top border-top-color
|
|
38
|
+
border-top-left-radius border-top-right-radius
|
|
39
|
+
border-top-style border-top-width border-width bottom
|
|
40
|
+
box-align box-decoration-break box-direction box-flex
|
|
41
|
+
box-flex-group box-lines box-ordinal-group box-orient
|
|
42
|
+
box-pack box-shadow box-sizing break-after break-before
|
|
43
|
+
break-inside caption-side clear clip clip-path
|
|
44
|
+
clip-rule color color-profile columns column-count
|
|
45
|
+
column-fill column-gap column-rule column-rule-color
|
|
46
|
+
column-rule-style column-rule-width column-span
|
|
47
|
+
column-width content counter-increment counter-reset
|
|
48
|
+
crop cue cue-after cue-before cursor direction display
|
|
49
|
+
dominant-baseline drop-initial-after-adjust
|
|
50
|
+
drop-initial-after-align drop-initial-before-adjust
|
|
51
|
+
drop-initial-before-align drop-initial-size
|
|
52
|
+
drop-initial-value elevation empty-cells filter fit
|
|
53
|
+
fit-position flex flex-basis flex-direction flex-flow
|
|
54
|
+
flex-grow flex-shrink flex-wrap float float-offset
|
|
55
|
+
font font-family font-feature-settings
|
|
56
|
+
font-kerning font-language-override font-size
|
|
57
|
+
font-size-adjust font-stretch font-style font-synthesis
|
|
58
|
+
font-variant font-variant-alternates font-variant-caps
|
|
59
|
+
font-variant-east-asian font-variant-ligatures
|
|
60
|
+
font-variant-numeric font-variant-position font-weight
|
|
61
|
+
grid-cell grid-column grid-column-align grid-column-sizing
|
|
62
|
+
grid-column-span grid-columns grid-flow grid-row
|
|
63
|
+
grid-row-align grid-row-sizing grid-row-span
|
|
64
|
+
grid-rows grid-template hanging-punctuation height
|
|
65
|
+
hyphenate-after hyphenate-before hyphenate-character
|
|
66
|
+
hyphenate-lines hyphenate-resource hyphens icon
|
|
67
|
+
image-orientation image-rendering image-resolution
|
|
68
|
+
ime-mode inline-box-align justify-content
|
|
69
|
+
left letter-spacing line-break line-height
|
|
70
|
+
line-stacking line-stacking-ruby line-stacking-shift
|
|
71
|
+
line-stacking-strategy list-style list-style-image
|
|
72
|
+
list-style-position list-style-type margin
|
|
73
|
+
margin-bottom margin-left margin-right margin-top
|
|
74
|
+
mark marker-offset marks mark-after mark-before
|
|
75
|
+
marquee-direction marquee-loop marquee-play-count
|
|
76
|
+
marquee-speed marquee-style mask max-height max-width
|
|
77
|
+
min-height min-width move-to nav-down
|
|
78
|
+
nav-index nav-left nav-right nav-up object-fit
|
|
79
|
+
object-position opacity order orphans outline
|
|
80
|
+
outline-color outline-offset outline-style
|
|
81
|
+
outline-width overflow overflow-style overflow-wrap
|
|
82
|
+
overflow-x overflow-y padding padding-bottom
|
|
83
|
+
padding-left padding-right padding-top
|
|
84
|
+
page page-break-after page-break-before
|
|
85
|
+
page-break-inside page-policy pause pause-after
|
|
86
|
+
pause-before perspective perspective-origin
|
|
87
|
+
phonemes pitch pitch-range play-during pointer-events
|
|
88
|
+
position presentation-level punctuation-trim quotes
|
|
89
|
+
rendering-intent resize rest rest-after rest-before
|
|
90
|
+
richness right rotation rotation-point ruby-align
|
|
91
|
+
ruby-overhang ruby-position ruby-span size speak
|
|
92
|
+
speak-as speak-header speak-numeral speak-punctuation
|
|
93
|
+
speech-rate src stress string-set
|
|
94
|
+
tab-size table-layout target target-name
|
|
95
|
+
target-new target-position text-align
|
|
96
|
+
text-align-last text-combine-horizontal
|
|
97
|
+
text-decoration text-decoration-color
|
|
98
|
+
text-decoration-line text-decoration-skip
|
|
99
|
+
text-decoration-style text-emphasis
|
|
100
|
+
text-emphasis-color text-emphasis-position
|
|
101
|
+
text-emphasis-style text-height text-indent
|
|
102
|
+
text-justify text-orientation text-outline
|
|
103
|
+
text-overflow text-rendering text-shadow
|
|
104
|
+
text-space-collapse text-transform
|
|
105
|
+
text-underline-position text-wrap top
|
|
106
|
+
transform transform-origin transform-style
|
|
107
|
+
transition transition-delay transition-duration
|
|
108
|
+
transition-property transition-timing-function
|
|
109
|
+
unicode-bidi vertical-align
|
|
110
|
+
visibility voice-balance voice-duration
|
|
111
|
+
voice-family voice-pitch voice-pitch-range
|
|
112
|
+
voice-range voice-rate voice-stress voice-volume
|
|
113
|
+
volume white-space widows width word-break
|
|
114
|
+
word-spacing word-wrap writing-mode z-index
|
|
115
|
+
)
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
def self.builtins
|
|
119
|
+
@builtins ||= Set.new %w(
|
|
120
|
+
above absolute always armenian aural auto avoid left bottom
|
|
121
|
+
baseline behind below bidi-override blink block bold bolder
|
|
122
|
+
both bottom capitalize center center-left center-right circle
|
|
123
|
+
cjk-ideographic close-quote collapse condensed continuous crop
|
|
124
|
+
cross crosshair cursive dashed decimal decimal-leading-zero
|
|
125
|
+
default digits disc dotted double e-resize embed expanded
|
|
126
|
+
extra-condensed extra-expanded fantasy far-left far-right fast
|
|
127
|
+
faster fixed georgian groove hebrew help hidden hide high higher
|
|
128
|
+
hiragana hiragana-iroha icon inherit inline inline-table inset
|
|
129
|
+
inside invert italic justify katakana katakana-iroha landscape
|
|
130
|
+
large larger left left-side leftwards level lighter line-through
|
|
131
|
+
list-item loud low lower lower-alpha lower-greek lower-roman
|
|
132
|
+
lowercase ltr medium message-box middle mix monospace n-resize
|
|
133
|
+
narrower ne-resize no-close-quote no-open-quote no-repeat none
|
|
134
|
+
normal nowrap nw-resize oblique once open-quote outset outside
|
|
135
|
+
overline pointer portrait px relative repeat repeat-x repeat-y
|
|
136
|
+
rgb ridge right right-side rightwards s-resize sans-serif scroll
|
|
137
|
+
se-resize semi-condensed semi-expanded separate serif show
|
|
138
|
+
silent slow slower small-caps small-caption smaller soft solid
|
|
139
|
+
spell-out square static status-bar super sw-resize table-caption
|
|
140
|
+
table-cell table-column table-column-group table-footer-group
|
|
141
|
+
table-header-group table-row table-row-group text text-bottom
|
|
142
|
+
text-top thick thin top transparent ultra-condensed
|
|
143
|
+
ultra-expanded underline upper-alpha upper-latin upper-roman
|
|
144
|
+
uppercase url visible w-resize wait wider x-fast x-high x-large
|
|
145
|
+
x-loud x-low x-small x-soft xx-large xx-small yes
|
|
146
|
+
)
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
def self.constants
|
|
150
|
+
@constants ||= Set.new %w(
|
|
151
|
+
indigo gold firebrick indianred yellow darkolivegreen
|
|
152
|
+
darkseagreen mediumvioletred mediumorchid chartreuse
|
|
153
|
+
mediumslateblue black springgreen crimson lightsalmon brown
|
|
154
|
+
turquoise olivedrab cyan silver skyblue gray darkturquoise
|
|
155
|
+
goldenrod darkgreen darkviolet darkgray lightpink teal
|
|
156
|
+
darkmagenta lightgoldenrodyellow lavender yellowgreen thistle
|
|
157
|
+
violet navy orchid blue ghostwhite honeydew cornflowerblue
|
|
158
|
+
darkblue darkkhaki mediumpurple cornsilk red bisque slategray
|
|
159
|
+
darkcyan khaki wheat deepskyblue darkred steelblue aliceblue
|
|
160
|
+
gainsboro mediumturquoise floralwhite coral purple lightgrey
|
|
161
|
+
lightcyan darksalmon beige azure lightsteelblue oldlace
|
|
162
|
+
greenyellow royalblue lightseagreen mistyrose sienna lightcoral
|
|
163
|
+
orangered navajowhite lime palegreen burlywood seashell
|
|
164
|
+
mediumspringgreen fuchsia papayawhip blanchedalmond peru
|
|
165
|
+
aquamarine white darkslategray ivory dodgerblue lemonchiffon
|
|
166
|
+
chocolate orange forestgreen slateblue olive mintcream
|
|
167
|
+
antiquewhite darkorange cadetblue moccasin limegreen saddlebrown
|
|
168
|
+
darkslateblue lightskyblue deeppink plum aqua darkgoldenrod
|
|
169
|
+
maroon sandybrown magenta tan rosybrown pink lightblue
|
|
170
|
+
palevioletred mediumseagreen dimgray powderblue seagreen snow
|
|
171
|
+
mediumblue midnightblue paleturquoise palegoldenrod whitesmoke
|
|
172
|
+
darkorchid salmon lightslategray lawngreen lightgreen tomato
|
|
173
|
+
hotpink lightyellow lavenderblush linen mediumaquamarine green
|
|
174
|
+
blueviolet peachpuff
|
|
175
|
+
)
|
|
176
|
+
end
|
|
177
|
+
|
|
178
|
+
# source: http://www.w3.org/TR/CSS21/syndata.html#vendor-keyword-history
|
|
179
|
+
def self.vendor_prefixes
|
|
180
|
+
@vendor_prefixes ||= Set.new %w(
|
|
181
|
+
-ah- -atsc- -hp- -khtml- -moz- -ms- -o- -rim- -ro- -tc- -wap-
|
|
182
|
+
-webkit- -xv- mso- prince-
|
|
183
|
+
)
|
|
184
|
+
end
|
|
185
|
+
|
|
186
|
+
state :root do
|
|
187
|
+
mixin :basics
|
|
188
|
+
rule %r/{/, Punctuation, :stanza
|
|
189
|
+
rule %r/:[:]?#{identifier}/, Name::Decorator
|
|
190
|
+
rule %r/\.#{identifier}/, Name::Class
|
|
191
|
+
rule %r/##{identifier}/, Name::Function
|
|
192
|
+
rule %r/@#{identifier}/, Keyword, :at_rule
|
|
193
|
+
rule identifier, Name::Tag
|
|
194
|
+
rule %r([~^*!%&\[\]()<>|+=@:;,./?-]), Operator
|
|
195
|
+
rule %r/"(\\\\|\\"|[^"])*"/, Str::Single
|
|
196
|
+
rule %r/'(\\\\|\\'|[^'])*'/, Str::Double
|
|
197
|
+
end
|
|
198
|
+
|
|
199
|
+
state :value do
|
|
200
|
+
mixin :basics
|
|
201
|
+
rule %r/url\(.*?\)/, Str::Other
|
|
202
|
+
rule %r/#[0-9a-f]{1,6}/i, Num # colors
|
|
203
|
+
rule %r/#{number}(?:%|(?:em|px|pt|pc|in|mm|cm|ex|rem|ch|vw|vh|vmin|vmax|dpi|dpcm|dppx|deg|grad|rad|turn|s|ms|Hz|kHz)\b)?/, Num
|
|
204
|
+
rule %r/[\[\]():\/.,]/, Punctuation
|
|
205
|
+
rule %r/"(\\\\|\\"|[^"])*"/, Str::Single
|
|
206
|
+
rule %r/'(\\\\|\\'|[^'])*'/, Str::Double
|
|
207
|
+
rule(identifier) do |m|
|
|
208
|
+
if self.class.constants.include? m[0]
|
|
209
|
+
token Name::Constant
|
|
210
|
+
elsif self.class.builtins.include? m[0]
|
|
211
|
+
token Name::Builtin
|
|
212
|
+
else
|
|
213
|
+
token Name
|
|
214
|
+
end
|
|
215
|
+
end
|
|
216
|
+
end
|
|
217
|
+
|
|
218
|
+
state :at_rule do
|
|
219
|
+
rule %r/{(?=\s*#{identifier}\s*:)/m, Punctuation, :at_stanza
|
|
220
|
+
rule %r/{/, Punctuation, :at_body
|
|
221
|
+
rule %r/;/, Punctuation, :pop!
|
|
222
|
+
mixin :value
|
|
223
|
+
end
|
|
224
|
+
|
|
225
|
+
state :at_body do
|
|
226
|
+
mixin :at_content
|
|
227
|
+
mixin :root
|
|
228
|
+
end
|
|
229
|
+
|
|
230
|
+
state :at_stanza do
|
|
231
|
+
mixin :at_content
|
|
232
|
+
mixin :stanza
|
|
233
|
+
end
|
|
234
|
+
|
|
235
|
+
state :at_content do
|
|
236
|
+
rule %r/}/ do
|
|
237
|
+
token Punctuation
|
|
238
|
+
pop! 2
|
|
239
|
+
end
|
|
240
|
+
end
|
|
241
|
+
|
|
242
|
+
state :basics do
|
|
243
|
+
rule %r/\s+/m, Text
|
|
244
|
+
rule %r(/\*(?:.*?)\*/)m, Comment
|
|
245
|
+
end
|
|
246
|
+
|
|
247
|
+
state :stanza do
|
|
248
|
+
mixin :basics
|
|
249
|
+
rule %r/}/, Punctuation, :pop!
|
|
250
|
+
rule %r/(#{identifier})(\s*)(:)/m do |m|
|
|
251
|
+
name_tok = if self.class.attributes.include? m[1]
|
|
252
|
+
Name::Label
|
|
253
|
+
elsif self.class.vendor_prefixes.any? { |p| m[1].start_with?(p) }
|
|
254
|
+
Name::Label
|
|
255
|
+
else
|
|
256
|
+
Name::Property
|
|
257
|
+
end
|
|
258
|
+
|
|
259
|
+
groups name_tok, Text, Punctuation
|
|
260
|
+
|
|
261
|
+
push :stanza_value
|
|
262
|
+
end
|
|
263
|
+
end
|
|
264
|
+
|
|
265
|
+
state :stanza_value do
|
|
266
|
+
rule %r/;/, Punctuation, :pop!
|
|
267
|
+
rule(/(?=})/) { pop! }
|
|
268
|
+
rule %r/!\s*important\b/, Comment::Preproc
|
|
269
|
+
rule %r/^@.*?$/, Comment::Preproc
|
|
270
|
+
mixin :value
|
|
271
|
+
end
|
|
272
|
+
end
|
|
273
|
+
end
|
|
274
|
+
end
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module Rouge
|
|
5
|
+
module Lexers
|
|
6
|
+
class CSVS < RegexLexer
|
|
7
|
+
tag 'csvs'
|
|
8
|
+
title "csvs"
|
|
9
|
+
desc 'The CSV Schema Language (digital-preservation.github.io)'
|
|
10
|
+
filenames '*.csvs'
|
|
11
|
+
|
|
12
|
+
state :root do
|
|
13
|
+
rule %r/\s+/m, Text
|
|
14
|
+
|
|
15
|
+
rule %r(//[\S\t ]*), Comment::Single
|
|
16
|
+
rule %r(/\*[^*]*\*/)m, Comment::Multiline
|
|
17
|
+
|
|
18
|
+
rule %r/(version)( )(\d+\.\d+)/ do
|
|
19
|
+
groups Keyword, Text::Whitespace, Num::Float
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
rule %r/T?\d{2}:\d{2}:\d{2}(\.\d{5})?(Z|(?:[-+]\d{2}:\d{2}))?/, Literal::Date
|
|
23
|
+
rule %r/\d{4}-\d{2}-\d{2}/, Literal::Date
|
|
24
|
+
rule %r/\d{2}\/\d{2}\/\d{4}/, Literal::Date
|
|
25
|
+
|
|
26
|
+
rule %r((\d+[.]?\d*|\d*[.]\d+)(e[+-]?[0-9]+)?)i, Num::Float
|
|
27
|
+
rule %r/\d+/, Num::Integer
|
|
28
|
+
|
|
29
|
+
rule %r/@\w+/, Keyword::Pseudo
|
|
30
|
+
|
|
31
|
+
rule %r/[-.\w]+:/, Name::Variable
|
|
32
|
+
rule %r/^"[^"]+"/, Name::Variable
|
|
33
|
+
rule %r/\$([-.\w]+|("[^"]+"))\/?/, Name::Variable
|
|
34
|
+
|
|
35
|
+
rule %r/[A-Z]+/i, Keyword
|
|
36
|
+
|
|
37
|
+
rule %r/"[^"]*"/, Str::Double
|
|
38
|
+
rule %r/'[^\r\n\f']'/, Str::Char
|
|
39
|
+
|
|
40
|
+
rule %r/[,()*]/, Punctuation
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
|
2
|
+
|
|
3
|
+
module Rouge
|
|
4
|
+
module Lexers
|
|
5
|
+
load_lexer 'cpp.rb'
|
|
6
|
+
|
|
7
|
+
class CUDA < Cpp
|
|
8
|
+
title "CUDA"
|
|
9
|
+
desc "Compute Unified Device Architecture, used for programming with NVIDIA GPU"
|
|
10
|
+
|
|
11
|
+
tag 'cuda'
|
|
12
|
+
filenames '*.cu', '*.cuh'
|
|
13
|
+
|
|
14
|
+
def self.keywords
|
|
15
|
+
@keywords ||= super + Set.new(%w(
|
|
16
|
+
__global__ __device__ __host__ __noinline__ __forceinline__
|
|
17
|
+
__constant__ __shared__ __managed__ __restrict__
|
|
18
|
+
))
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def self.keywords_type
|
|
22
|
+
@keywords_type ||= super + Set.new(%w(
|
|
23
|
+
char1 char2 char3 char4 uchar1 uchar2 uchar3 uchar4
|
|
24
|
+
short1 short2 short3 short4 ushort1 ushort2 ushort3 ushort4
|
|
25
|
+
int1 int2 int3 int4 uint1 uint2 uint3 uint4
|
|
26
|
+
long1 long2 long3 long4 ulong1 ulong2 ulong3 ulong4
|
|
27
|
+
longlong1 longlong2 longlong3 longlong4
|
|
28
|
+
ulonglong1 ulonglong2 ulonglong3 ulonglong4
|
|
29
|
+
float1 float2 float3 float4 double1 double2 double3 double4
|
|
30
|
+
dim3
|
|
31
|
+
))
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|