rouge 3.18.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 +107 -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/cypher +5 -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/datastudio +21 -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-cmm +23 -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/isbl +4 -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/rego +8 -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/solidity +13 -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/demos/yang +17 -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 +517 -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 +69 -0
- data/lib/rouge/lexers/apache/keywords.rb +15 -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 +208 -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 +190 -0
- data/lib/rouge/lexers/coq.rb +191 -0
- data/lib/rouge/lexers/cpp.rb +89 -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/cypher.rb +108 -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/datastudio.rb +138 -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 +120 -0
- data/lib/rouge/lexers/gdscript.rb +171 -0
- data/lib/rouge/lexers/ghc_cmm.rb +340 -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/isbl.rb +97 -0
- data/lib/rouge/lexers/isbl/builtins.rb +17 -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 +72 -0
- data/lib/rouge/lexers/json_doc.rb +26 -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 +131 -0
- data/lib/rouge/lexers/lasso.rb +210 -0
- data/lib/rouge/lexers/lasso/keywords.rb +14 -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 +80 -0
- data/lib/rouge/lexers/matlab/builtins.rb +11 -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 +231 -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 +257 -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 +568 -0
- data/lib/rouge/lexers/reasonml.rb +65 -0
- data/lib/rouge/lexers/rego.rb +45 -0
- data/lib/rouge/lexers/robot_framework.rb +249 -0
- data/lib/rouge/lexers/ruby.rb +454 -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/solidity.rb +185 -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 +128 -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 +34 -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 +127 -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/lexers/yang.rb +147 -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 +491 -0
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
# vim: set ts=2 sw=2 et:
|
|
5
|
+
|
|
6
|
+
# TODO: Implement format list support.
|
|
7
|
+
|
|
8
|
+
module Rouge
|
|
9
|
+
module Lexers
|
|
10
|
+
class Fortran < RegexLexer
|
|
11
|
+
title "Fortran"
|
|
12
|
+
desc "Fortran 2008 (free-form)"
|
|
13
|
+
|
|
14
|
+
tag 'fortran'
|
|
15
|
+
filenames '*.f', '*.f90', '*.f95', '*.f03', '*.f08',
|
|
16
|
+
'*.F', '*.F90', '*.F95', '*.F03', '*.F08'
|
|
17
|
+
mimetypes 'text/x-fortran'
|
|
18
|
+
|
|
19
|
+
name = /[A-Z][_A-Z0-9]*/i
|
|
20
|
+
kind_param = /(\d+|#{name})/
|
|
21
|
+
exponent = /[ED][+-]?\d+/i
|
|
22
|
+
|
|
23
|
+
def self.keywords
|
|
24
|
+
# Special rules for two-word keywords are defined further down.
|
|
25
|
+
# Note: Fortran allows to omit whitespace between certain keywords.
|
|
26
|
+
@keywords ||= Set.new %w(
|
|
27
|
+
abstract allocatable allocate assign assignment associate asynchronous
|
|
28
|
+
backspace bind block blockdata call case class close codimension
|
|
29
|
+
common concurrent contains contiguous continue critical cycle data
|
|
30
|
+
deallocate deferred dimension do elemental else elseif elsewhere end
|
|
31
|
+
endassociate endblock endblockdata enddo endenum endfile endforall
|
|
32
|
+
endfunction endif endinterface endmodule endprogram endselect
|
|
33
|
+
endsubmodule endsubroutine endtype endwhere endwhile entry enum
|
|
34
|
+
enumerator equivalence exit extends external final flush forall format
|
|
35
|
+
function generic goto if implicit import in include inout inquire
|
|
36
|
+
intent interface intrinsic is lock module namelist non_overridable
|
|
37
|
+
none nopass nullify only open operator optional out parameter pass
|
|
38
|
+
pause pointer print private procedure program protected public pure
|
|
39
|
+
read recursive result return rewind save select selectcase sequence
|
|
40
|
+
stop submodule subroutine target then type unlock use value volatile
|
|
41
|
+
wait where while write
|
|
42
|
+
)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def self.types
|
|
46
|
+
# A special rule for the two-word version "double precision" is
|
|
47
|
+
# defined further down.
|
|
48
|
+
@types ||= Set.new %w(
|
|
49
|
+
character complex doubleprecision integer logical real
|
|
50
|
+
)
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def self.intrinsics
|
|
54
|
+
@intrinsics ||= Set.new %w(
|
|
55
|
+
abs achar acos acosh adjustl adjustr aimag aint all allocated anint
|
|
56
|
+
any asin asinh associated atan atan2 atanh atomic_define atomic_ref
|
|
57
|
+
bessel_j0 bessel_j1 bessel_jn bessel_y0 bessel_y1 bessel_yn bge bgt
|
|
58
|
+
bit_size ble blt btest c_associated c_f_pointer c_f_procpointer
|
|
59
|
+
c_funloc c_loc c_sizeof ceiling char cmplx command_argument_count
|
|
60
|
+
compiler_options compiler_version conjg cos cosh count cpu_time cshift
|
|
61
|
+
date_and_time dble digits dim dot_product dprod dshiftl dshiftr
|
|
62
|
+
eoshift epsilon erf erfc_scaled erfc execute_command_line exp exponent
|
|
63
|
+
extends_type_of findloc floor fraction gamma get_command_argument
|
|
64
|
+
get_command get_environment_variable huge hypot iachar iall iand iany
|
|
65
|
+
ibclr ibits ibset ichar ieee_class ieee_copy_sign ieee_get_flag
|
|
66
|
+
ieee_get_halting_mode ieee_get_rounding_mode ieee_get_status
|
|
67
|
+
ieee_get_underflow_mode ieee_is_finite ieee_is_nan ieee_is_normal
|
|
68
|
+
ieee_logb ieee_next_after ieee_rem ieee_rint ieee_scalb
|
|
69
|
+
ieee_selected_real_kind ieee_set_flag ieee_set_halting_mode
|
|
70
|
+
ieee_set_rounding_mode ieee_set_status ieee_set_underflow_mode
|
|
71
|
+
ieee_support_datatype ieee_support_denormal ieee_support_divide
|
|
72
|
+
ieee_support_flag ieee_support_halting ieee_support_inf
|
|
73
|
+
ieee_support_io ieee_support_nan ieee_support_rounding
|
|
74
|
+
ieee_support_sqrt ieee_support_standard ieee_support_underflow_control
|
|
75
|
+
ieee_unordered ieee_value ieor image_index index int ior iparity
|
|
76
|
+
is_contiguous is_iostat_end is_iostat_eor ishft ishftc kind lbound
|
|
77
|
+
lcobound leadz len_trim len lge lgt lle llt log_gamma log log10
|
|
78
|
+
logical maskl maskr matmul max maxexponent maxloc maxval merge_bits
|
|
79
|
+
merge min minexponent minloc minval mod modulo move_alloc mvbits
|
|
80
|
+
nearest new_line nint norm2 not null num_images pack parity popcnt
|
|
81
|
+
poppar present product radix random_number random_seed range real
|
|
82
|
+
repeat reshape rrspacing same_type_as scale scan selected_char_kind
|
|
83
|
+
selected_int_kind selected_real_kind set_exponent shape shifta shiftl
|
|
84
|
+
shiftr sign sin sinh size spacing spread sqrt storage_size sum
|
|
85
|
+
system_clock tan tanh this_image tiny trailz transfer transpose trim
|
|
86
|
+
ubound ucobound unpack verify
|
|
87
|
+
)
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
state :root do
|
|
91
|
+
rule %r/[\s]+/, Text::Whitespace
|
|
92
|
+
rule %r/!.*$/, Comment::Single
|
|
93
|
+
rule %r/^#.*$/, Comment::Preproc
|
|
94
|
+
|
|
95
|
+
rule %r/::|[()\/;,:&\[\]]/, Punctuation
|
|
96
|
+
|
|
97
|
+
# TODO: This does not take into account line continuation.
|
|
98
|
+
rule %r/^(\s*)([0-9]+)\b/m do |m|
|
|
99
|
+
token Text::Whitespace, m[1]
|
|
100
|
+
token Name::Label, m[2]
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
# Format statements are quite a strange beast.
|
|
104
|
+
# Better process them in their own state.
|
|
105
|
+
rule %r/\b(FORMAT)(\s*)(\()/mi do |m|
|
|
106
|
+
token Keyword, m[1]
|
|
107
|
+
token Text::Whitespace, m[2]
|
|
108
|
+
token Punctuation, m[3]
|
|
109
|
+
push :format_spec
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
rule %r(
|
|
113
|
+
[+-]? # sign
|
|
114
|
+
(
|
|
115
|
+
(\d+[.]\d*|[.]\d+)(#{exponent})?
|
|
116
|
+
| \d+#{exponent} # exponent is mandatory
|
|
117
|
+
)
|
|
118
|
+
(_#{kind_param})? # kind parameter
|
|
119
|
+
)xi, Num::Float
|
|
120
|
+
|
|
121
|
+
rule %r/[+-]?\d+(_#{kind_param})?/i, Num::Integer
|
|
122
|
+
rule %r/B'[01]+'|B"[01]+"/i, Num::Bin
|
|
123
|
+
rule %r/O'[0-7]+'|O"[0-7]+"/i, Num::Oct
|
|
124
|
+
rule %r/Z'[0-9A-F]+'|Z"[0-9A-F]+"/i, Num::Hex
|
|
125
|
+
rule %r/(#{kind_param}_)?'/, Str::Single, :string_single
|
|
126
|
+
rule %r/(#{kind_param}_)?"/, Str::Double, :string_double
|
|
127
|
+
rule %r/[.](TRUE|FALSE)[.](_#{kind_param})?/i, Keyword::Constant
|
|
128
|
+
|
|
129
|
+
rule %r{\*\*|//|==|/=|<=|>=|=>|[-+*/<>=%]}, Operator
|
|
130
|
+
rule %r/\.(?:EQ|NE|LT|LE|GT|GE|NOT|AND|OR|EQV|NEQV|[A-Z]+)\./i, Operator::Word
|
|
131
|
+
|
|
132
|
+
# Special rules for two-word keywords and types.
|
|
133
|
+
# Note: "doubleprecision" is covered by the normal keyword rule.
|
|
134
|
+
rule %r/double\s+precision\b/i, Keyword::Type
|
|
135
|
+
rule %r/go\s+to\b/i, Keyword
|
|
136
|
+
rule %r/sync\s+(all|images|memory)\b/i, Keyword
|
|
137
|
+
rule %r/error\s+stop\b/i, Keyword
|
|
138
|
+
|
|
139
|
+
rule %r/#{name}/m do |m|
|
|
140
|
+
match = m[0].downcase
|
|
141
|
+
if self.class.keywords.include? match
|
|
142
|
+
token Keyword
|
|
143
|
+
elsif self.class.types.include? match
|
|
144
|
+
token Keyword::Type
|
|
145
|
+
elsif self.class.intrinsics.include? match
|
|
146
|
+
token Name::Builtin
|
|
147
|
+
else
|
|
148
|
+
token Name
|
|
149
|
+
end
|
|
150
|
+
end
|
|
151
|
+
|
|
152
|
+
end
|
|
153
|
+
|
|
154
|
+
state :string_single do
|
|
155
|
+
rule %r/[^']+/, Str::Single
|
|
156
|
+
rule %r/''/, Str::Escape
|
|
157
|
+
rule %r/'/, Str::Single, :pop!
|
|
158
|
+
end
|
|
159
|
+
|
|
160
|
+
state :string_double do
|
|
161
|
+
rule %r/[^"]+/, Str::Double
|
|
162
|
+
rule %r/""/, Str::Escape
|
|
163
|
+
rule %r/"/, Str::Double, :pop!
|
|
164
|
+
end
|
|
165
|
+
|
|
166
|
+
state :format_spec do
|
|
167
|
+
rule %r/'/, Str::Single, :string_single
|
|
168
|
+
rule %r/"/, Str::Double, :string_double
|
|
169
|
+
rule %r/\(/, Punctuation, :format_spec
|
|
170
|
+
rule %r/\)/, Punctuation, :pop!
|
|
171
|
+
rule %r/,/, Punctuation
|
|
172
|
+
rule %r/[\s]+/, Text::Whitespace
|
|
173
|
+
# Edit descriptors could be seen as a kind of "format literal".
|
|
174
|
+
rule %r/[^\s'"(),]+/, Literal
|
|
175
|
+
end
|
|
176
|
+
end
|
|
177
|
+
end
|
|
178
|
+
end
|
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module Rouge
|
|
5
|
+
module Lexers
|
|
6
|
+
load_lexer 'cpp.rb'
|
|
7
|
+
|
|
8
|
+
class FreeFEM < Cpp
|
|
9
|
+
title "FreeFEM"
|
|
10
|
+
desc "The FreeFEM programming language (freefem.org)"
|
|
11
|
+
|
|
12
|
+
tag 'freefem'
|
|
13
|
+
aliases 'ff'
|
|
14
|
+
filenames '*.edp', '*.idp'
|
|
15
|
+
mimetypes 'text/x-ffhdr', 'text/x-ffsrc'
|
|
16
|
+
|
|
17
|
+
# Override C/C++ ones (for example, `do` does not exists)
|
|
18
|
+
def self.keywords
|
|
19
|
+
@keywords ||= Set.new(%w(
|
|
20
|
+
break catch continue else for if return try while
|
|
21
|
+
))
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
# Override C/C++ ones (for example, `double` does not exists)
|
|
25
|
+
def self.keywords_type
|
|
26
|
+
@keywords_type ||= Set.new(%w(
|
|
27
|
+
bool border complex dmatrix fespace func gslspline ifstream int macro
|
|
28
|
+
matrix mesh mesh3 mpiComm mpiGroup mpiRequest NewMacro EndMacro
|
|
29
|
+
ofstream Pmmap problem Psemaphore real solve string varf
|
|
30
|
+
))
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
# Override C/C++ ones (totally different)
|
|
34
|
+
def self.reserved
|
|
35
|
+
@reserved ||= Set.new(%w(
|
|
36
|
+
BDM1 BDM1Ortho Edge03d Edge13d Edge23d FEQF HCT P0 P03d P0Edge P1
|
|
37
|
+
P13d P1b P1b3d P1bl P1bl3d P1dc P1Edge P1nc P2 P23d P2b P2BR P2dc
|
|
38
|
+
P2Edge P2h P2Morley P2pnc P3 P3dc P3Edge P4 P4dc P4Edge P5Edge RT0
|
|
39
|
+
RT03d RT0Ortho RT1 RT1Ortho RT2 RT2Ortho
|
|
40
|
+
|
|
41
|
+
qf1pE qf1pElump qf1pT qf1pTlump qfV1 qfV1lump qf2pE qf2pT qf2pT4P1
|
|
42
|
+
qfV2 qf3pE qf4pE qf5pE qf5pT qfV5 qf7pT qf9pT qfnbpE
|
|
43
|
+
|
|
44
|
+
ARGV append area be binary BoundaryEdge bordermeasure CG Cholesky cin
|
|
45
|
+
cout Crout default diag edgeOrientation endl FILE fixed GMRES good
|
|
46
|
+
hTriangle im imax imin InternalEdge l1 l2 label lenEdge length LINE
|
|
47
|
+
linfty LU m max measure min mpiAnySource mpiBAND mpiBXOR mpiCommWorld
|
|
48
|
+
mpiLAND mpiLOR mpiLXOR mpiMAX mpiMIN mpiPROD mpirank mpisize mpiSUM
|
|
49
|
+
mpiUndefined n N nbe ndof ndofK noshowbase noshowpos notaregion nt
|
|
50
|
+
nTonEdge nuEdge nuTriangle nv P pi precision quantile re region
|
|
51
|
+
scientific searchMethod setw showbase showpos sparsesolver sum tellp
|
|
52
|
+
true UMFPACK unused whoinElement verbosity version volume x y z
|
|
53
|
+
))
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def self.builtins
|
|
57
|
+
@builtins ||= Set.new(%w(
|
|
58
|
+
abs acos acosh adaptmesh adj AffineCG AffineGMRES arg asin asinh
|
|
59
|
+
assert atan atan2 atanh atof atoi BFGS broadcast buildlayers
|
|
60
|
+
buildmesh ceil chi complexEigenValue copysign change checkmovemesh
|
|
61
|
+
clock cmaes conj convect cos cosh cube d dd dfft diffnp diffpos
|
|
62
|
+
dimKrylov dist dumptable dx dxx dxy dxz dy dyx dyy dyz dz dzx dzy dzz
|
|
63
|
+
EigenValue emptymesh erf erfc exec exit exp fdim ffind find floor
|
|
64
|
+
flush fmax fmin fmod freeyams getARGV getline gmshload gmshload3
|
|
65
|
+
gslcdfugaussianP gslcdfugaussianQ gslcdfugaussianPinv
|
|
66
|
+
gslcdfugaussianQinv gslcdfgaussianP gslcdfgaussianQ
|
|
67
|
+
gslcdfgaussianPinv gslcdfgaussianQinv gslcdfgammaP gslcdfgammaQ
|
|
68
|
+
gslcdfgammaPinv gslcdfgammaQinv gslcdfcauchyP gslcdfcauchyQ
|
|
69
|
+
gslcdfcauchyPinv gslcdfcauchyQinv gslcdflaplaceP gslcdflaplaceQ
|
|
70
|
+
gslcdflaplacePinv gslcdflaplaceQinv gslcdfrayleighP gslcdfrayleighQ
|
|
71
|
+
gslcdfrayleighPinv gslcdfrayleighQinv gslcdfchisqP gslcdfchisqQ
|
|
72
|
+
gslcdfchisqPinv gslcdfchisqQinv gslcdfexponentialP gslcdfexponentialQ
|
|
73
|
+
gslcdfexponentialPinv gslcdfexponentialQinv gslcdfexppowP
|
|
74
|
+
gslcdfexppowQ gslcdftdistP gslcdftdistQ gslcdftdistPinv
|
|
75
|
+
gslcdftdistQinv gslcdffdistP gslcdffdistQ gslcdffdistPinv
|
|
76
|
+
gslcdffdistQinv gslcdfbetaP gslcdfbetaQ gslcdfbetaPinv gslcdfbetaQinv
|
|
77
|
+
gslcdfflatP gslcdfflatQ gslcdfflatPinv gslcdfflatQinv
|
|
78
|
+
gslcdflognormalP gslcdflognormalQ gslcdflognormalPinv
|
|
79
|
+
gslcdflognormalQinv gslcdfgumbel1P gslcdfgumbel1Q gslcdfgumbel1Pinv
|
|
80
|
+
gslcdfgumbel1Qinv gslcdfgumbel2P gslcdfgumbel2Q gslcdfgumbel2Pinv
|
|
81
|
+
gslcdfgumbel2Qinv gslcdfweibullP gslcdfweibullQ gslcdfweibullPinv
|
|
82
|
+
gslcdfweibullQinv gslcdfparetoP gslcdfparetoQ gslcdfparetoPinv
|
|
83
|
+
gslcdfparetoQinv gslcdflogisticP gslcdflogisticQ gslcdflogisticPinv
|
|
84
|
+
gslcdflogisticQinv gslcdfbinomialP gslcdfbinomialQ gslcdfpoissonP
|
|
85
|
+
gslcdfpoissonQ gslcdfgeometricP gslcdfgeometricQ
|
|
86
|
+
gslcdfnegativebinomialP gslcdfnegativebinomialQ gslcdfpascalP
|
|
87
|
+
gslcdfpascalQ gslinterpakima gslinterpakimaperiodic
|
|
88
|
+
gslinterpcsplineperiodic gslinterpcspline gslinterpsteffen
|
|
89
|
+
gslinterplinear gslinterppolynomial gslranbernoullipdf gslranbeta
|
|
90
|
+
gslranbetapdf gslranbinomialpdf gslranexponential
|
|
91
|
+
gslranexponentialpdf gslranexppow gslranexppowpdf gslrancauchy
|
|
92
|
+
gslrancauchypdf gslranchisq gslranchisqpdf gslranerlang
|
|
93
|
+
gslranerlangpdf gslranfdist gslranfdistpdf gslranflat gslranflatpdf
|
|
94
|
+
gslrangamma gslrangammaint gslrangammapdf gslrangammamt
|
|
95
|
+
gslrangammaknuth gslrangaussian gslrangaussianratiomethod
|
|
96
|
+
gslrangaussianziggurat gslrangaussianpdf gslranugaussian
|
|
97
|
+
gslranugaussianratiomethod gslranugaussianpdf gslrangaussiantail
|
|
98
|
+
gslrangaussiantailpdf gslranugaussiantail gslranugaussiantailpdf
|
|
99
|
+
gslranlandau gslranlandaupdf gslrangeometricpdf gslrangumbel1
|
|
100
|
+
gslrangumbel1pdf gslrangumbel2 gslrangumbel2pdf gslranlogistic
|
|
101
|
+
gslranlogisticpdf gslranlognormal gslranlognormalpdf
|
|
102
|
+
gslranlogarithmicpdf gslrannegativebinomialpdf gslranpascalpdf
|
|
103
|
+
gslranpareto gslranparetopdf gslranpoissonpdf gslranrayleigh
|
|
104
|
+
gslranrayleighpdf gslranrayleightail gslranrayleightailpdf
|
|
105
|
+
gslrantdist gslrantdistpdf gslranlaplace gslranlaplacepdf gslranlevy
|
|
106
|
+
gslranweibull gslranweibullpdf gslsfairyAi gslsfairyBi
|
|
107
|
+
gslsfairyAiscaled gslsfairyBiscaled gslsfairyAideriv gslsfairyBideriv
|
|
108
|
+
gslsfairyAiderivscaled gslsfairyBiderivscaled gslsfairyzeroAi
|
|
109
|
+
gslsfairyzeroBi gslsfairyzeroAideriv gslsfairyzeroBideriv
|
|
110
|
+
gslsfbesselJ0 gslsfbesselJ1 gslsfbesselJn gslsfbesselY0 gslsfbesselY1
|
|
111
|
+
gslsfbesselYn gslsfbesselI0 gslsfbesselI1 gslsfbesselIn
|
|
112
|
+
gslsfbesselI0scaled gslsfbesselI1scaled gslsfbesselInscaled
|
|
113
|
+
gslsfbesselK0 gslsfbesselK1 gslsfbesselKn gslsfbesselK0scaled
|
|
114
|
+
gslsfbesselK1scaled gslsfbesselKnscaled gslsfbesselj0 gslsfbesselj1
|
|
115
|
+
gslsfbesselj2 gslsfbesseljl gslsfbessely0 gslsfbessely1 gslsfbessely2
|
|
116
|
+
gslsfbesselyl gslsfbesseli0scaled gslsfbesseli1scaled
|
|
117
|
+
gslsfbesseli2scaled gslsfbesselilscaled gslsfbesselk0scaled
|
|
118
|
+
gslsfbesselk1scaled gslsfbesselk2scaled gslsfbesselklscaled
|
|
119
|
+
gslsfbesselJnu gslsfbesselYnu gslsfbesselInuscaled gslsfbesselInu
|
|
120
|
+
gslsfbesselKnuscaled gslsfbesselKnu gslsfbessellnKnu
|
|
121
|
+
gslsfbesselzeroJ0 gslsfbesselzeroJ1 gslsfbesselzeroJnu gslsfclausen
|
|
122
|
+
gslsfhydrogenicR1 gslsfdawson gslsfdebye1 gslsfdebye2 gslsfdebye3
|
|
123
|
+
gslsfdebye4 gslsfdebye5 gslsfdebye6 gslsfdilog gslsfmultiply
|
|
124
|
+
gslsfellintKcomp gslsfellintEcomp gslsfellintPcomp gslsfellintDcomp
|
|
125
|
+
gslsfellintF gslsfellintE gslsfellintRC gslsferfc gslsflogerfc
|
|
126
|
+
gslsferf gslsferfZ gslsferfQ gslsfhazard gslsfexp gslsfexpmult
|
|
127
|
+
gslsfexpm1 gslsfexprel gslsfexprel2 gslsfexpreln gslsfexpintE1
|
|
128
|
+
gslsfexpintE2 gslsfexpintEn gslsfexpintE1scaled gslsfexpintE2scaled
|
|
129
|
+
gslsfexpintEnscaled gslsfexpintEi gslsfexpintEiscaled gslsfShi
|
|
130
|
+
gslsfChi gslsfexpint3 gslsfSi gslsfCi gslsfatanint gslsffermidiracm1
|
|
131
|
+
gslsffermidirac0 gslsffermidirac1 gslsffermidirac2 gslsffermidiracint
|
|
132
|
+
gslsffermidiracmhalf gslsffermidirachalf gslsffermidirac3half
|
|
133
|
+
gslsffermidiracinc0 gslsflngamma gslsfgamma gslsfgammastar
|
|
134
|
+
gslsfgammainv gslsftaylorcoeff gslsffact gslsfdoublefact gslsflnfact
|
|
135
|
+
gslsflndoublefact gslsflnchoose gslsfchoose gslsflnpoch gslsfpoch
|
|
136
|
+
gslsfpochrel gslsfgammaincQ gslsfgammaincP gslsfgammainc gslsflnbeta
|
|
137
|
+
gslsfbeta gslsfbetainc gslsfgegenpoly1 gslsfgegenpoly2
|
|
138
|
+
gslsfgegenpoly3 gslsfgegenpolyn gslsfhyperg0F1 gslsfhyperg1F1int
|
|
139
|
+
gslsfhyperg1F1 gslsfhypergUint gslsfhypergU gslsfhyperg2F0
|
|
140
|
+
gslsflaguerre1 gslsflaguerre2 gslsflaguerre3 gslsflaguerren
|
|
141
|
+
gslsflambertW0 gslsflambertWm1 gslsflegendrePl gslsflegendreP1
|
|
142
|
+
gslsflegendreP2 gslsflegendreP3 gslsflegendreQ0 gslsflegendreQ1
|
|
143
|
+
gslsflegendreQl gslsflegendrePlm gslsflegendresphPlm
|
|
144
|
+
gslsflegendrearraysize gslsfconicalPhalf gslsfconicalPmhalf
|
|
145
|
+
gslsfconicalP0 gslsfconicalP1 gslsfconicalPsphreg gslsfconicalPcylreg
|
|
146
|
+
gslsflegendreH3d0 gslsflegendreH3d1 gslsflegendreH3d gslsflog
|
|
147
|
+
gslsflogabs gslsflog1plusx gslsflog1plusxmx gslsfpowint gslsfpsiint
|
|
148
|
+
gslsfpsi gslsfpsi1piy gslsfpsi1int gslsfpsi1 gslsfpsin
|
|
149
|
+
gslsfsynchrotron1 gslsfsynchrotron2 gslsftransport2 gslsftransport3
|
|
150
|
+
gslsftransport4 gslsftransport5 gslsfsin gslsfcos gslsfhypot
|
|
151
|
+
gslsfsinc gslsflnsinh gslsflncosh gslsfanglerestrictsymm
|
|
152
|
+
gslsfanglerestrictpos gslsfzetaint gslsfzeta gslsfzetam1
|
|
153
|
+
gslsfzetam1int gslsfhzeta gslsfetaint gslsfeta imag int1d int2d int3d
|
|
154
|
+
intalledges intallfaces interpolate invdiff invdiffnp invdiffpos
|
|
155
|
+
Isend isInf isNaN isoline Irecv j0 j1 jn jump lgamma LinearCG
|
|
156
|
+
LinearGMRES log log10 lrint lround max mean medit min mmg3d movemesh
|
|
157
|
+
movemesh23 mpiAlltoall mpiAlltoallv mpiAllgather mpiAllgatherv
|
|
158
|
+
mpiAllReduce mpiBarrier mpiGather mpiGatherv mpiRank mpiReduce
|
|
159
|
+
mpiScatter mpiScatterv mpiSize mpiWait mpiWaitAny mpiWtick mpiWtime
|
|
160
|
+
mshmet NLCG on plot polar Post pow processor processorblock
|
|
161
|
+
projection randinit randint31 randint32 random randreal1 randreal2
|
|
162
|
+
randreal3 randres53 Read readmesh readmesh3 Recv rfind rint round
|
|
163
|
+
savemesh savesol savevtk seekg Sent set sign signbit sin sinh sort
|
|
164
|
+
splitComm splitmesh sqrt square srandom srandomdev Stringification
|
|
165
|
+
swap system tan tanh tellg tetg tetgconvexhull tetgreconstruction
|
|
166
|
+
tetgtransfo tgamma triangulate trunc Wait Write y0 y1 yn
|
|
167
|
+
))
|
|
168
|
+
end
|
|
169
|
+
|
|
170
|
+
def self.attributes
|
|
171
|
+
@builtinsParameters ||= Set.new(%w(
|
|
172
|
+
A A1 abserror absolute aniso aspectratio B B1 bb beginend bin
|
|
173
|
+
boundary bw close cmm coef composante cutoff datafilename dataname
|
|
174
|
+
dim distmax displacement doptions dparams eps err errg facemerge
|
|
175
|
+
facetcl factorize file fill fixedborder flabel flags floatmesh
|
|
176
|
+
floatsol fregion gradation grey hmax hmin holelist hsv init inquire
|
|
177
|
+
inside IsMetric iso ivalue keepbackvertices label labeldown labelmid
|
|
178
|
+
labelup levelset loptions lparams maxit maxsubdiv meditff mem memory
|
|
179
|
+
metric mode nbarrow nbiso nbiter nbjacoby nboffacetcl nbofholes
|
|
180
|
+
nbofregions nbregul nbsmooth nbvx ncv nev nomeshgeneration
|
|
181
|
+
normalization omega op optimize option options order orientation
|
|
182
|
+
periodic power precon prev ps ptmerge qfe qforder qft qfV ratio
|
|
183
|
+
rawvector reffacelow reffacemid reffaceup refnum reftet reftri region
|
|
184
|
+
regionlist renumv rescaling ridgeangle save sigma sizeofvolume
|
|
185
|
+
smoothing solver sparams split splitin2 splitpbedge stop strategy
|
|
186
|
+
swap switch sym t tgv thetamax tol tolpivot tolpivotsym transfo U2Vc
|
|
187
|
+
value varrow vector veps viso wait width withsurfacemesh WindowIndex
|
|
188
|
+
which zbound
|
|
189
|
+
))
|
|
190
|
+
end
|
|
191
|
+
|
|
192
|
+
id = /[a-z_]\w*/i
|
|
193
|
+
|
|
194
|
+
state :expr_bol do
|
|
195
|
+
mixin :inline_whitespace
|
|
196
|
+
|
|
197
|
+
rule %r/include/, Comment::Preproc, :macro
|
|
198
|
+
rule %r/load/, Comment::Preproc, :macro
|
|
199
|
+
rule %r/ENDIFMACRO/, Comment::Preproc, :macro
|
|
200
|
+
rule %r/IFMACRO/, Comment::Preproc, :macro
|
|
201
|
+
|
|
202
|
+
rule(//) { pop! }
|
|
203
|
+
end
|
|
204
|
+
|
|
205
|
+
state :statements do
|
|
206
|
+
mixin :whitespace
|
|
207
|
+
rule %r/(u8|u|U|L)?"/, Str, :string
|
|
208
|
+
rule %r((u8|u|U|L)?'(\\.|\\[0-7]{1,3}|\\x[a-f0-9]{1,2}|[^\\'\n])')i, Str::Char
|
|
209
|
+
rule %r((\d+[.]\d*|[.]?\d+)e[+-]?\d+[lu]*)i, Num::Float
|
|
210
|
+
rule %r(\d+e[+-]?\d+[lu]*)i, Num::Float
|
|
211
|
+
rule %r/0x[0-9a-f]+[lu]*/i, Num::Hex
|
|
212
|
+
rule %r/0[0-7]+[lu]*/i, Num::Oct
|
|
213
|
+
rule %r/\d+[lu]*/i, Num::Integer
|
|
214
|
+
rule %r(\*/), Error
|
|
215
|
+
rule %r([~!%^&*+=\|?:<>/-]), Operator
|
|
216
|
+
rule %r/'/, Operator
|
|
217
|
+
rule %r/[()\[\],.;]/, Punctuation
|
|
218
|
+
rule %r/\bcase\b/, Keyword, :case
|
|
219
|
+
rule %r/(?:true|false|NaN)\b/, Name::Builtin
|
|
220
|
+
rule id do |m|
|
|
221
|
+
name = m[0]
|
|
222
|
+
|
|
223
|
+
if self.class.keywords.include? name
|
|
224
|
+
token Keyword
|
|
225
|
+
elsif self.class.keywords_type.include? name
|
|
226
|
+
token Keyword::Type
|
|
227
|
+
elsif self.class.reserved.include? name
|
|
228
|
+
token Keyword::Reserved
|
|
229
|
+
elsif self.class.builtins.include? name
|
|
230
|
+
token Name::Builtin
|
|
231
|
+
elsif self.class.attributes.include? name
|
|
232
|
+
token Name::Attribute
|
|
233
|
+
else
|
|
234
|
+
token Name
|
|
235
|
+
end
|
|
236
|
+
end
|
|
237
|
+
end
|
|
238
|
+
end
|
|
239
|
+
end
|
|
240
|
+
end
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module Rouge
|
|
5
|
+
module Lexers
|
|
6
|
+
class FSharp < RegexLexer
|
|
7
|
+
title "FSharp"
|
|
8
|
+
desc 'F# (fsharp.net)'
|
|
9
|
+
tag 'fsharp'
|
|
10
|
+
filenames '*.fs', '*.fsi', '*.fsx'
|
|
11
|
+
mimetypes 'application/fsharp-script', 'text/x-fsharp', 'text/x-fsi'
|
|
12
|
+
|
|
13
|
+
def self.keywords
|
|
14
|
+
@keywords ||= Set.new %w(
|
|
15
|
+
abstract and as assert base begin class default delegate do
|
|
16
|
+
done downcast downto elif else end exception extern false
|
|
17
|
+
finally for fun function global if in inherit inline interface
|
|
18
|
+
internal lazy let let! match member module mutable namespace
|
|
19
|
+
new not null of open or override private public rec return
|
|
20
|
+
return! select static struct then to true try type upcast
|
|
21
|
+
use use! val void when while with yield yield! sig atomic
|
|
22
|
+
break checked component const constraint constructor
|
|
23
|
+
continue eager event external fixed functor include method
|
|
24
|
+
mixin object parallel process protected pure sealed tailcall
|
|
25
|
+
trait virtual volatile
|
|
26
|
+
)
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def self.keyopts
|
|
30
|
+
@keyopts ||= Set.new %w(
|
|
31
|
+
!= # & && ( ) * \+ , - -. -> . .. : :: := :> ; ;; < <- =
|
|
32
|
+
> >] >} ? ?? [ [< [> [| ] _ ` { {< | |] } ~ |> <| <>
|
|
33
|
+
)
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def self.word_operators
|
|
37
|
+
@word_operators ||= Set.new %w(and asr land lor lsl lxor mod or)
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def self.primitives
|
|
41
|
+
@primitives ||= Set.new %w(unit int float bool string char list array)
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
operator = %r([\[\];,{}_()!$%&*+./:<=>?@^|~#-]+)
|
|
45
|
+
id = /([a-z][\w']*)|(``[^`\n\r\t]+``)/i
|
|
46
|
+
upper_id = /[A-Z][\w']*/
|
|
47
|
+
|
|
48
|
+
state :root do
|
|
49
|
+
rule %r/\s+/m, Text
|
|
50
|
+
rule %r/false|true|[(][)]|\[\]/, Name::Builtin::Pseudo
|
|
51
|
+
rule %r/#{upper_id}(?=\s*[.])/, Name::Namespace, :dotted
|
|
52
|
+
rule upper_id, Name::Class
|
|
53
|
+
rule %r/[(][*](?![)])/, Comment, :comment
|
|
54
|
+
rule %r(//.*?$), Comment::Single
|
|
55
|
+
rule id do |m|
|
|
56
|
+
match = m[0]
|
|
57
|
+
if self.class.keywords.include? match
|
|
58
|
+
token Keyword
|
|
59
|
+
elsif self.class.word_operators.include? match
|
|
60
|
+
token Operator::Word
|
|
61
|
+
elsif self.class.primitives.include? match
|
|
62
|
+
token Keyword::Type
|
|
63
|
+
else
|
|
64
|
+
token Name
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
rule operator do |m|
|
|
69
|
+
match = m[0]
|
|
70
|
+
if self.class.keyopts.include? match
|
|
71
|
+
token Punctuation
|
|
72
|
+
else
|
|
73
|
+
token Operator
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
rule %r/-?\d[\d_]*(.[\d_]*)?(e[+-]?\d[\d_]*)/i, Num::Float
|
|
78
|
+
rule %r/0x\h[\h_]*/i, Num::Hex
|
|
79
|
+
rule %r/0o[0-7][0-7_]*/i, Num::Oct
|
|
80
|
+
rule %r/0b[01][01_]*/i, Num::Bin
|
|
81
|
+
rule %r/\d[\d_]*/, Num::Integer
|
|
82
|
+
|
|
83
|
+
rule %r/'(?:(\\[\\"'ntbr ])|(\\[0-9]{3})|(\\x\h{2}))'/, Str::Char
|
|
84
|
+
rule %r/'[.]'/, Str::Char
|
|
85
|
+
rule %r/'/, Keyword
|
|
86
|
+
rule %r/"/, Str::Double, :string
|
|
87
|
+
rule %r/[~?]#{id}/, Name::Variable
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
state :comment do
|
|
91
|
+
rule %r/[^(*)]+/, Comment
|
|
92
|
+
rule(/[(][*]/) { token Comment; push }
|
|
93
|
+
rule %r/[*][)]/, Comment, :pop!
|
|
94
|
+
rule %r/[(*)]/, Comment
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
state :string do
|
|
98
|
+
rule %r/[^\\"]+/, Str::Double
|
|
99
|
+
mixin :escape_sequence
|
|
100
|
+
rule %r/\\\n/, Str::Double
|
|
101
|
+
rule %r/"/, Str::Double, :pop!
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
state :escape_sequence do
|
|
105
|
+
rule %r/\\[\\"'ntbr]/, Str::Escape
|
|
106
|
+
rule %r/\\\d{3}/, Str::Escape
|
|
107
|
+
rule %r/\\x\h{2}/, Str::Escape
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
state :dotted do
|
|
111
|
+
rule %r/\s+/m, Text
|
|
112
|
+
rule %r/[.]/, Punctuation
|
|
113
|
+
rule %r/#{upper_id}(?=\s*[.])/, Name::Namespace
|
|
114
|
+
rule upper_id, Name::Class, :pop!
|
|
115
|
+
rule id, Name, :pop!
|
|
116
|
+
rule %r/\[/, Punctuation, :pop!
|
|
117
|
+
end
|
|
118
|
+
end
|
|
119
|
+
end
|
|
120
|
+
end
|