nano-clean-pkg 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.
- checksums.yaml +7 -0
- data/nano-clean-pkg.gemspec +11 -0
- data/rouge-5.0.0/Gemfile +48 -0
- data/rouge-5.0.0/LICENSE +187 -0
- data/rouge-5.0.0/bin/rougify +17 -0
- data/rouge-5.0.0/lib/rouge/cli.rb +527 -0
- data/rouge-5.0.0/lib/rouge/demos/abap +32 -0
- data/rouge-5.0.0/lib/rouge/demos/actionscript +4 -0
- data/rouge-5.0.0/lib/rouge/demos/ada +26 -0
- data/rouge-5.0.0/lib/rouge/demos/apache +21 -0
- data/rouge-5.0.0/lib/rouge/demos/apex +9 -0
- data/rouge-5.0.0/lib/rouge/demos/apiblueprint +33 -0
- data/rouge-5.0.0/lib/rouge/demos/applescript +2 -0
- data/rouge-5.0.0/lib/rouge/demos/armasm +12 -0
- data/rouge-5.0.0/lib/rouge/demos/augeas +16 -0
- data/rouge-5.0.0/lib/rouge/demos/awk +4 -0
- data/rouge-5.0.0/lib/rouge/demos/batchfile +3 -0
- data/rouge-5.0.0/lib/rouge/demos/bbcbasic +6 -0
- data/rouge-5.0.0/lib/rouge/demos/bibtex +12 -0
- data/rouge-5.0.0/lib/rouge/demos/bicep +10 -0
- data/rouge-5.0.0/lib/rouge/demos/biml +38 -0
- data/rouge-5.0.0/lib/rouge/demos/bpf +7 -0
- data/rouge-5.0.0/lib/rouge/demos/brainfuck +5 -0
- data/rouge-5.0.0/lib/rouge/demos/brightscript +6 -0
- data/rouge-5.0.0/lib/rouge/demos/bsl +7 -0
- data/rouge-5.0.0/lib/rouge/demos/c +8 -0
- data/rouge-5.0.0/lib/rouge/demos/ceylon +7 -0
- data/rouge-5.0.0/lib/rouge/demos/cfscript +18 -0
- data/rouge-5.0.0/lib/rouge/demos/cisco_ios +19 -0
- data/rouge-5.0.0/lib/rouge/demos/clean +6 -0
- data/rouge-5.0.0/lib/rouge/demos/clojure +5 -0
- data/rouge-5.0.0/lib/rouge/demos/cmake +7 -0
- data/rouge-5.0.0/lib/rouge/demos/cmhg +8 -0
- data/rouge-5.0.0/lib/rouge/demos/cobol +103 -0
- data/rouge-5.0.0/lib/rouge/demos/codeowners +6 -0
- data/rouge-5.0.0/lib/rouge/demos/coffeescript +5 -0
- data/rouge-5.0.0/lib/rouge/demos/common_lisp +1 -0
- data/rouge-5.0.0/lib/rouge/demos/conf +4 -0
- data/rouge-5.0.0/lib/rouge/demos/console +6 -0
- data/rouge-5.0.0/lib/rouge/demos/cpp +8 -0
- data/rouge-5.0.0/lib/rouge/demos/crystal +45 -0
- data/rouge-5.0.0/lib/rouge/demos/csharp +5 -0
- data/rouge-5.0.0/lib/rouge/demos/css +4 -0
- data/rouge-5.0.0/lib/rouge/demos/csvs +8 -0
- data/rouge-5.0.0/lib/rouge/demos/cuda +11 -0
- data/rouge-5.0.0/lib/rouge/demos/cypher +5 -0
- data/rouge-5.0.0/lib/rouge/demos/cython +6 -0
- data/rouge-5.0.0/lib/rouge/demos/d +16 -0
- data/rouge-5.0.0/lib/rouge/demos/dafny +16 -0
- data/rouge-5.0.0/lib/rouge/demos/dart +6 -0
- data/rouge-5.0.0/lib/rouge/demos/datastudio +20 -0
- data/rouge-5.0.0/lib/rouge/demos/diff +7 -0
- data/rouge-5.0.0/lib/rouge/demos/digdag +19 -0
- data/rouge-5.0.0/lib/rouge/demos/docker +9 -0
- data/rouge-5.0.0/lib/rouge/demos/dot +5 -0
- data/rouge-5.0.0/lib/rouge/demos/dylan +8 -0
- data/rouge-5.0.0/lib/rouge/demos/ecl +17 -0
- data/rouge-5.0.0/lib/rouge/demos/eex +1 -0
- data/rouge-5.0.0/lib/rouge/demos/eiffel +30 -0
- data/rouge-5.0.0/lib/rouge/demos/elixir +1 -0
- data/rouge-5.0.0/lib/rouge/demos/elm +4 -0
- data/rouge-5.0.0/lib/rouge/demos/email +11 -0
- data/rouge-5.0.0/lib/rouge/demos/epp +4 -0
- data/rouge-5.0.0/lib/rouge/demos/erb +1 -0
- data/rouge-5.0.0/lib/rouge/demos/erlang +7 -0
- data/rouge-5.0.0/lib/rouge/demos/escape +3 -0
- data/rouge-5.0.0/lib/rouge/demos/factor +5 -0
- data/rouge-5.0.0/lib/rouge/demos/fluent +13 -0
- data/rouge-5.0.0/lib/rouge/demos/fortran +22 -0
- data/rouge-5.0.0/lib/rouge/demos/freefem +16 -0
- data/rouge-5.0.0/lib/rouge/demos/fsharp +12 -0
- data/rouge-5.0.0/lib/rouge/demos/gdscript +18 -0
- data/rouge-5.0.0/lib/rouge/demos/ghc-cmm +23 -0
- data/rouge-5.0.0/lib/rouge/demos/ghc-core +26 -0
- data/rouge-5.0.0/lib/rouge/demos/gherkin +17 -0
- data/rouge-5.0.0/lib/rouge/demos/gjs +23 -0
- data/rouge-5.0.0/lib/rouge/demos/glsl +14 -0
- data/rouge-5.0.0/lib/rouge/demos/go +7 -0
- data/rouge-5.0.0/lib/rouge/demos/gradle +10 -0
- data/rouge-5.0.0/lib/rouge/demos/graphql +17 -0
- data/rouge-5.0.0/lib/rouge/demos/groovy +9 -0
- data/rouge-5.0.0/lib/rouge/demos/gts +36 -0
- data/rouge-5.0.0/lib/rouge/demos/hack +5 -0
- data/rouge-5.0.0/lib/rouge/demos/haml +5 -0
- data/rouge-5.0.0/lib/rouge/demos/handlebars +7 -0
- data/rouge-5.0.0/lib/rouge/demos/haskell +6 -0
- data/rouge-5.0.0/lib/rouge/demos/haxe +4 -0
- data/rouge-5.0.0/lib/rouge/demos/hcl +7 -0
- data/rouge-5.0.0/lib/rouge/demos/hlsl +20 -0
- data/rouge-5.0.0/lib/rouge/demos/hocon +8 -0
- data/rouge-5.0.0/lib/rouge/demos/hql +5 -0
- data/rouge-5.0.0/lib/rouge/demos/html +8 -0
- data/rouge-5.0.0/lib/rouge/demos/http +14 -0
- data/rouge-5.0.0/lib/rouge/demos/hylang +10 -0
- data/rouge-5.0.0/lib/rouge/demos/idlang +8 -0
- data/rouge-5.0.0/lib/rouge/demos/idris +13 -0
- data/rouge-5.0.0/lib/rouge/demos/iecst +21 -0
- data/rouge-5.0.0/lib/rouge/demos/igorpro +9 -0
- data/rouge-5.0.0/lib/rouge/demos/ini +4 -0
- data/rouge-5.0.0/lib/rouge/demos/io +11 -0
- data/rouge-5.0.0/lib/rouge/demos/irb +4 -0
- data/rouge-5.0.0/lib/rouge/demos/irb_output +2 -0
- data/rouge-5.0.0/lib/rouge/demos/isabelle +16 -0
- data/rouge-5.0.0/lib/rouge/demos/isbl +4 -0
- data/rouge-5.0.0/lib/rouge/demos/j +12 -0
- data/rouge-5.0.0/lib/rouge/demos/janet +3 -0
- data/rouge-5.0.0/lib/rouge/demos/java +5 -0
- data/rouge-5.0.0/lib/rouge/demos/javascript +1 -0
- data/rouge-5.0.0/lib/rouge/demos/jinja +9 -0
- data/rouge-5.0.0/lib/rouge/demos/jsl +3 -0
- data/rouge-5.0.0/lib/rouge/demos/json +1 -0
- data/rouge-5.0.0/lib/rouge/demos/json-doc +1 -0
- data/rouge-5.0.0/lib/rouge/demos/json5 +12 -0
- data/rouge-5.0.0/lib/rouge/demos/jsonnet +28 -0
- data/rouge-5.0.0/lib/rouge/demos/jsp +29 -0
- data/rouge-5.0.0/lib/rouge/demos/jsx +17 -0
- data/rouge-5.0.0/lib/rouge/demos/julia +11 -0
- data/rouge-5.0.0/lib/rouge/demos/kick_assembler +14 -0
- data/rouge-5.0.0/lib/rouge/demos/kotlin +3 -0
- data/rouge-5.0.0/lib/rouge/demos/lasso +12 -0
- data/rouge-5.0.0/lib/rouge/demos/lean +8 -0
- data/rouge-5.0.0/lib/rouge/demos/liquid +10 -0
- data/rouge-5.0.0/lib/rouge/demos/literate_coffeescript +3 -0
- data/rouge-5.0.0/lib/rouge/demos/literate_haskell +7 -0
- data/rouge-5.0.0/lib/rouge/demos/livescript +15 -0
- data/rouge-5.0.0/lib/rouge/demos/llvm +20 -0
- data/rouge-5.0.0/lib/rouge/demos/lua +12 -0
- data/rouge-5.0.0/lib/rouge/demos/lustre +6 -0
- data/rouge-5.0.0/lib/rouge/demos/lutin +18 -0
- data/rouge-5.0.0/lib/rouge/demos/m68k +16 -0
- data/rouge-5.0.0/lib/rouge/demos/magik +6 -0
- data/rouge-5.0.0/lib/rouge/demos/make +6 -0
- data/rouge-5.0.0/lib/rouge/demos/markdown +4 -0
- data/rouge-5.0.0/lib/rouge/demos/mason +22 -0
- data/rouge-5.0.0/lib/rouge/demos/mathematica +8 -0
- data/rouge-5.0.0/lib/rouge/demos/matlab +6 -0
- data/rouge-5.0.0/lib/rouge/demos/meson +10 -0
- data/rouge-5.0.0/lib/rouge/demos/minizinc +23 -0
- data/rouge-5.0.0/lib/rouge/demos/mojo +10 -0
- data/rouge-5.0.0/lib/rouge/demos/moonscript +16 -0
- data/rouge-5.0.0/lib/rouge/demos/mosel +10 -0
- data/rouge-5.0.0/lib/rouge/demos/msgtrans +4 -0
- data/rouge-5.0.0/lib/rouge/demos/mxml +22 -0
- data/rouge-5.0.0/lib/rouge/demos/nasm +26 -0
- data/rouge-5.0.0/lib/rouge/demos/nesasm +11 -0
- data/rouge-5.0.0/lib/rouge/demos/nginx +5 -0
- data/rouge-5.0.0/lib/rouge/demos/nial +35 -0
- data/rouge-5.0.0/lib/rouge/demos/nim +27 -0
- data/rouge-5.0.0/lib/rouge/demos/nix +19 -0
- data/rouge-5.0.0/lib/rouge/demos/objective_c +18 -0
- data/rouge-5.0.0/lib/rouge/demos/objective_cpp +17 -0
- data/rouge-5.0.0/lib/rouge/demos/ocaml +12 -0
- data/rouge-5.0.0/lib/rouge/demos/ocl +4 -0
- data/rouge-5.0.0/lib/rouge/demos/openedge +4 -0
- data/rouge-5.0.0/lib/rouge/demos/opentype_feature_file +5 -0
- data/rouge-5.0.0/lib/rouge/demos/p4 +99 -0
- data/rouge-5.0.0/lib/rouge/demos/pascal +14 -0
- data/rouge-5.0.0/lib/rouge/demos/pdf +29 -0
- data/rouge-5.0.0/lib/rouge/demos/perl +5 -0
- data/rouge-5.0.0/lib/rouge/demos/php +3 -0
- data/rouge-5.0.0/lib/rouge/demos/plaintext +1 -0
- data/rouge-5.0.0/lib/rouge/demos/plist +11 -0
- data/rouge-5.0.0/lib/rouge/demos/plsql +2 -0
- data/rouge-5.0.0/lib/rouge/demos/pony +17 -0
- data/rouge-5.0.0/lib/rouge/demos/postscript +9 -0
- data/rouge-5.0.0/lib/rouge/demos/powershell +13 -0
- data/rouge-5.0.0/lib/rouge/demos/praat +26 -0
- data/rouge-5.0.0/lib/rouge/demos/prolog +9 -0
- data/rouge-5.0.0/lib/rouge/demos/prometheus +9 -0
- data/rouge-5.0.0/lib/rouge/demos/properties +7 -0
- data/rouge-5.0.0/lib/rouge/demos/protobuf +5 -0
- data/rouge-5.0.0/lib/rouge/demos/puppet +6 -0
- data/rouge-5.0.0/lib/rouge/demos/python +6 -0
- data/rouge-5.0.0/lib/rouge/demos/q +8 -0
- data/rouge-5.0.0/lib/rouge/demos/qml +9 -0
- data/rouge-5.0.0/lib/rouge/demos/r +8 -0
- data/rouge-5.0.0/lib/rouge/demos/racket +24 -0
- data/rouge-5.0.0/lib/rouge/demos/reasonml +12 -0
- data/rouge-5.0.0/lib/rouge/demos/rego +8 -0
- data/rouge-5.0.0/lib/rouge/demos/rescript +26 -0
- data/rouge-5.0.0/lib/rouge/demos/rml +33 -0
- data/rouge-5.0.0/lib/rouge/demos/robot_framework +27 -0
- data/rouge-5.0.0/lib/rouge/demos/rocq +16 -0
- data/rouge-5.0.0/lib/rouge/demos/ruby +9 -0
- data/rouge-5.0.0/lib/rouge/demos/rust +12 -0
- data/rouge-5.0.0/lib/rouge/demos/sas +13 -0
- data/rouge-5.0.0/lib/rouge/demos/sass +3 -0
- data/rouge-5.0.0/lib/rouge/demos/scala +3 -0
- data/rouge-5.0.0/lib/rouge/demos/scheme +4 -0
- data/rouge-5.0.0/lib/rouge/demos/scss +5 -0
- data/rouge-5.0.0/lib/rouge/demos/sed +4 -0
- data/rouge-5.0.0/lib/rouge/demos/shell +2 -0
- data/rouge-5.0.0/lib/rouge/demos/sieve +10 -0
- data/rouge-5.0.0/lib/rouge/demos/slice +10 -0
- data/rouge-5.0.0/lib/rouge/demos/slim +17 -0
- data/rouge-5.0.0/lib/rouge/demos/smalltalk +6 -0
- data/rouge-5.0.0/lib/rouge/demos/smarty +11 -0
- data/rouge-5.0.0/lib/rouge/demos/sml +4 -0
- data/rouge-5.0.0/lib/rouge/demos/sparql +6 -0
- data/rouge-5.0.0/lib/rouge/demos/sqf +14 -0
- data/rouge-5.0.0/lib/rouge/demos/sql +1 -0
- data/rouge-5.0.0/lib/rouge/demos/ssh +4 -0
- data/rouge-5.0.0/lib/rouge/demos/stan +13 -0
- data/rouge-5.0.0/lib/rouge/demos/stata +14 -0
- data/rouge-5.0.0/lib/rouge/demos/supercollider +11 -0
- data/rouge-5.0.0/lib/rouge/demos/svelte +29 -0
- data/rouge-5.0.0/lib/rouge/demos/swift +5 -0
- data/rouge-5.0.0/lib/rouge/demos/systemd +4 -0
- data/rouge-5.0.0/lib/rouge/demos/syzlang +15 -0
- data/rouge-5.0.0/lib/rouge/demos/syzprog +8 -0
- data/rouge-5.0.0/lib/rouge/demos/tap +5 -0
- data/rouge-5.0.0/lib/rouge/demos/tcl +1 -0
- data/rouge-5.0.0/lib/rouge/demos/terraform +16 -0
- data/rouge-5.0.0/lib/rouge/demos/tex +1 -0
- data/rouge-5.0.0/lib/rouge/demos/thrift +15 -0
- data/rouge-5.0.0/lib/rouge/demos/toml +9 -0
- data/rouge-5.0.0/lib/rouge/demos/tsx +17 -0
- data/rouge-5.0.0/lib/rouge/demos/ttcn3 +6 -0
- data/rouge-5.0.0/lib/rouge/demos/tulip +13 -0
- data/rouge-5.0.0/lib/rouge/demos/turtle +26 -0
- data/rouge-5.0.0/lib/rouge/demos/twig +9 -0
- data/rouge-5.0.0/lib/rouge/demos/typescript +1 -0
- data/rouge-5.0.0/lib/rouge/demos/vala +8 -0
- data/rouge-5.0.0/lib/rouge/demos/vb +4 -0
- data/rouge-5.0.0/lib/rouge/demos/vcl +12 -0
- data/rouge-5.0.0/lib/rouge/demos/velocity +9 -0
- data/rouge-5.0.0/lib/rouge/demos/verilog +27 -0
- data/rouge-5.0.0/lib/rouge/demos/veryl +24 -0
- data/rouge-5.0.0/lib/rouge/demos/vhdl +23 -0
- data/rouge-5.0.0/lib/rouge/demos/viml +14 -0
- data/rouge-5.0.0/lib/rouge/demos/vue +11 -0
- data/rouge-5.0.0/lib/rouge/demos/wollok +11 -0
- data/rouge-5.0.0/lib/rouge/demos/xml +2 -0
- data/rouge-5.0.0/lib/rouge/demos/xojo +14 -0
- data/rouge-5.0.0/lib/rouge/demos/xpath +2 -0
- data/rouge-5.0.0/lib/rouge/demos/xquery +22 -0
- data/rouge-5.0.0/lib/rouge/demos/yaml +4 -0
- data/rouge-5.0.0/lib/rouge/demos/yang +17 -0
- data/rouge-5.0.0/lib/rouge/demos/zig +6 -0
- data/rouge-5.0.0/lib/rouge/eager.rb +3 -0
- data/rouge-5.0.0/lib/rouge/formatter.rb +112 -0
- data/rouge-5.0.0/lib/rouge/formatters/html.rb +64 -0
- data/rouge-5.0.0/lib/rouge/formatters/html_debug.rb +16 -0
- data/rouge-5.0.0/lib/rouge/formatters/html_inline.rb +30 -0
- data/rouge-5.0.0/lib/rouge/formatters/html_legacy.rb +56 -0
- data/rouge-5.0.0/lib/rouge/formatters/html_legacy_table.rb +57 -0
- data/rouge-5.0.0/lib/rouge/formatters/html_line_highlighter.rb +31 -0
- data/rouge-5.0.0/lib/rouge/formatters/html_line_table.rb +56 -0
- data/rouge-5.0.0/lib/rouge/formatters/html_linewise.rb +31 -0
- data/rouge-5.0.0/lib/rouge/formatters/html_pygments.rb +23 -0
- data/rouge-5.0.0/lib/rouge/formatters/html_table.rb +77 -0
- data/rouge-5.0.0/lib/rouge/formatters/null.rb +20 -0
- data/rouge-5.0.0/lib/rouge/formatters/terminal256.rb +198 -0
- data/rouge-5.0.0/lib/rouge/formatters/terminal_truecolor.rb +37 -0
- data/rouge-5.0.0/lib/rouge/formatters/tex.rb +92 -0
- data/rouge-5.0.0/lib/rouge/guesser.rb +57 -0
- data/rouge-5.0.0/lib/rouge/guessers/disambiguation.rb +172 -0
- data/rouge-5.0.0/lib/rouge/guessers/filename.rb +27 -0
- data/rouge-5.0.0/lib/rouge/guessers/glob_mapping.rb +45 -0
- data/rouge-5.0.0/lib/rouge/guessers/mimetype.rb +16 -0
- data/rouge-5.0.0/lib/rouge/guessers/modeline.rb +46 -0
- data/rouge-5.0.0/lib/rouge/guessers/source.rb +31 -0
- data/rouge-5.0.0/lib/rouge/guessers/util.rb +34 -0
- data/rouge-5.0.0/lib/rouge/lexer.rb +556 -0
- data/rouge-5.0.0/lib/rouge/lexers/abap/builtins.rb +187 -0
- data/rouge-5.0.0/lib/rouge/lexers/abap.rb +132 -0
- data/rouge-5.0.0/lib/rouge/lexers/actionscript.rb +196 -0
- data/rouge-5.0.0/lib/rouge/lexers/ada.rb +162 -0
- data/rouge-5.0.0/lib/rouge/lexers/apache/keywords.rb +16 -0
- data/rouge-5.0.0/lib/rouge/lexers/apache.rb +84 -0
- data/rouge-5.0.0/lib/rouge/lexers/apex.rb +128 -0
- data/rouge-5.0.0/lib/rouge/lexers/apiblueprint.rb +49 -0
- data/rouge-5.0.0/lib/rouge/lexers/apple_script.rb +370 -0
- data/rouge-5.0.0/lib/rouge/lexers/armasm.rb +145 -0
- data/rouge-5.0.0/lib/rouge/lexers/augeas.rb +93 -0
- data/rouge-5.0.0/lib/rouge/lexers/awk.rb +162 -0
- data/rouge-5.0.0/lib/rouge/lexers/batchfile.rb +165 -0
- data/rouge-5.0.0/lib/rouge/lexers/bbcbasic.rb +112 -0
- data/rouge-5.0.0/lib/rouge/lexers/bibtex.rb +115 -0
- data/rouge-5.0.0/lib/rouge/lexers/bicep.rb +111 -0
- data/rouge-5.0.0/lib/rouge/lexers/biml.rb +70 -0
- data/rouge-5.0.0/lib/rouge/lexers/bpf.rb +118 -0
- data/rouge-5.0.0/lib/rouge/lexers/brainfuck.rb +54 -0
- data/rouge-5.0.0/lib/rouge/lexers/brightscript.rb +146 -0
- data/rouge-5.0.0/lib/rouge/lexers/bsl.rb +82 -0
- data/rouge-5.0.0/lib/rouge/lexers/c.rb +204 -0
- data/rouge-5.0.0/lib/rouge/lexers/ceylon.rb +96 -0
- data/rouge-5.0.0/lib/rouge/lexers/cfscript.rb +154 -0
- data/rouge-5.0.0/lib/rouge/lexers/cisco_ios.rb +83 -0
- data/rouge-5.0.0/lib/rouge/lexers/clean.rb +156 -0
- data/rouge-5.0.0/lib/rouge/lexers/clojure.rb +113 -0
- data/rouge-5.0.0/lib/rouge/lexers/cmake.rb +218 -0
- data/rouge-5.0.0/lib/rouge/lexers/cmhg.rb +34 -0
- data/rouge-5.0.0/lib/rouge/lexers/cobol.rb +137 -0
- data/rouge-5.0.0/lib/rouge/lexers/codeowners.rb +30 -0
- data/rouge-5.0.0/lib/rouge/lexers/coffeescript.rb +215 -0
- data/rouge-5.0.0/lib/rouge/lexers/common_lisp.rb +346 -0
- data/rouge-5.0.0/lib/rouge/lexers/conf.rb +25 -0
- data/rouge-5.0.0/lib/rouge/lexers/console.rb +196 -0
- data/rouge-5.0.0/lib/rouge/lexers/cpp.rb +102 -0
- data/rouge-5.0.0/lib/rouge/lexers/crystal.rb +435 -0
- data/rouge-5.0.0/lib/rouge/lexers/csharp.rb +118 -0
- data/rouge-5.0.0/lib/rouge/lexers/css.rb +337 -0
- data/rouge-5.0.0/lib/rouge/lexers/csvs.rb +44 -0
- data/rouge-5.0.0/lib/rouge/lexers/cuda.rb +35 -0
- data/rouge-5.0.0/lib/rouge/lexers/cypher.rb +116 -0
- data/rouge-5.0.0/lib/rouge/lexers/cython.rb +127 -0
- data/rouge-5.0.0/lib/rouge/lexers/d.rb +177 -0
- data/rouge-5.0.0/lib/rouge/lexers/dafny.rb +128 -0
- data/rouge-5.0.0/lib/rouge/lexers/dart.rb +108 -0
- data/rouge-5.0.0/lib/rouge/lexers/datastudio.rb +138 -0
- data/rouge-5.0.0/lib/rouge/lexers/diff.rb +47 -0
- data/rouge-5.0.0/lib/rouge/lexers/digdag.rb +69 -0
- data/rouge-5.0.0/lib/rouge/lexers/docker.rb +55 -0
- data/rouge-5.0.0/lib/rouge/lexers/dot.rb +70 -0
- data/rouge-5.0.0/lib/rouge/lexers/dylan.rb +109 -0
- data/rouge-5.0.0/lib/rouge/lexers/ecl.rb +175 -0
- data/rouge-5.0.0/lib/rouge/lexers/eex.rb +52 -0
- data/rouge-5.0.0/lib/rouge/lexers/eiffel.rb +65 -0
- data/rouge-5.0.0/lib/rouge/lexers/elixir.rb +158 -0
- data/rouge-5.0.0/lib/rouge/lexers/elm.rb +90 -0
- data/rouge-5.0.0/lib/rouge/lexers/email.rb +39 -0
- data/rouge-5.0.0/lib/rouge/lexers/epp.rb +51 -0
- data/rouge-5.0.0/lib/rouge/lexers/erb.rb +53 -0
- data/rouge-5.0.0/lib/rouge/lexers/erlang.rb +115 -0
- data/rouge-5.0.0/lib/rouge/lexers/escape.rb +58 -0
- data/rouge-5.0.0/lib/rouge/lexers/factor.rb +303 -0
- data/rouge-5.0.0/lib/rouge/lexers/fluent.rb +74 -0
- data/rouge-5.0.0/lib/rouge/lexers/fortran.rb +178 -0
- data/rouge-5.0.0/lib/rouge/lexers/freefem.rb +240 -0
- data/rouge-5.0.0/lib/rouge/lexers/fsharp.rb +120 -0
- data/rouge-5.0.0/lib/rouge/lexers/gdscript.rb +171 -0
- data/rouge-5.0.0/lib/rouge/lexers/ghc_cmm.rb +340 -0
- data/rouge-5.0.0/lib/rouge/lexers/ghc_core.rb +152 -0
- data/rouge-5.0.0/lib/rouge/lexers/gherkin/keywords.rb +23 -0
- data/rouge-5.0.0/lib/rouge/lexers/gherkin.rb +142 -0
- data/rouge-5.0.0/lib/rouge/lexers/gjs.rb +39 -0
- data/rouge-5.0.0/lib/rouge/lexers/glsl/builtins.rb +17 -0
- data/rouge-5.0.0/lib/rouge/lexers/glsl.rb +69 -0
- data/rouge-5.0.0/lib/rouge/lexers/go.rb +177 -0
- data/rouge-5.0.0/lib/rouge/lexers/gradle.rb +38 -0
- data/rouge-5.0.0/lib/rouge/lexers/graphql.rb +261 -0
- data/rouge-5.0.0/lib/rouge/lexers/groovy.rb +119 -0
- data/rouge-5.0.0/lib/rouge/lexers/gts.rb +39 -0
- data/rouge-5.0.0/lib/rouge/lexers/hack.rb +47 -0
- data/rouge-5.0.0/lib/rouge/lexers/haml.rb +226 -0
- data/rouge-5.0.0/lib/rouge/lexers/handlebars.rb +91 -0
- data/rouge-5.0.0/lib/rouge/lexers/haskell.rb +207 -0
- data/rouge-5.0.0/lib/rouge/lexers/haxe.rb +265 -0
- data/rouge-5.0.0/lib/rouge/lexers/hcl.rb +166 -0
- data/rouge-5.0.0/lib/rouge/lexers/hlsl.rb +166 -0
- data/rouge-5.0.0/lib/rouge/lexers/hocon.rb +86 -0
- data/rouge-5.0.0/lib/rouge/lexers/hql.rb +135 -0
- data/rouge-5.0.0/lib/rouge/lexers/html.rb +141 -0
- data/rouge-5.0.0/lib/rouge/lexers/http.rb +87 -0
- data/rouge-5.0.0/lib/rouge/lexers/hylang.rb +93 -0
- data/rouge-5.0.0/lib/rouge/lexers/idlang.rb +312 -0
- data/rouge-5.0.0/lib/rouge/lexers/idris.rb +210 -0
- data/rouge-5.0.0/lib/rouge/lexers/iecst.rb +92 -0
- data/rouge-5.0.0/lib/rouge/lexers/igorpro/builtins.rb +1530 -0
- data/rouge-5.0.0/lib/rouge/lexers/igorpro.rb +193 -0
- data/rouge-5.0.0/lib/rouge/lexers/ini.rb +56 -0
- data/rouge-5.0.0/lib/rouge/lexers/io.rb +69 -0
- data/rouge-5.0.0/lib/rouge/lexers/irb.rb +73 -0
- data/rouge-5.0.0/lib/rouge/lexers/isabelle.rb +251 -0
- data/rouge-5.0.0/lib/rouge/lexers/isbl.rb +61 -0
- data/rouge-5.0.0/lib/rouge/lexers/j.rb +244 -0
- data/rouge-5.0.0/lib/rouge/lexers/janet.rb +218 -0
- data/rouge-5.0.0/lib/rouge/lexers/java.rb +92 -0
- data/rouge-5.0.0/lib/rouge/lexers/javascript.rb +315 -0
- data/rouge-5.0.0/lib/rouge/lexers/jinja.rb +169 -0
- data/rouge-5.0.0/lib/rouge/lexers/jsl.rb +66 -0
- data/rouge-5.0.0/lib/rouge/lexers/json.rb +72 -0
- data/rouge-5.0.0/lib/rouge/lexers/json5.rb +74 -0
- data/rouge-5.0.0/lib/rouge/lexers/json_doc.rb +26 -0
- data/rouge-5.0.0/lib/rouge/lexers/jsonnet.rb +153 -0
- data/rouge-5.0.0/lib/rouge/lexers/jsp.rb +119 -0
- data/rouge-5.0.0/lib/rouge/lexers/jsx.rb +91 -0
- data/rouge-5.0.0/lib/rouge/lexers/julia.rb +293 -0
- data/rouge-5.0.0/lib/rouge/lexers/kick_assembler.rb +100 -0
- data/rouge-5.0.0/lib/rouge/lexers/kotlin.rb +150 -0
- data/rouge-5.0.0/lib/rouge/lexers/lasso/keywords.rb +20 -0
- data/rouge-5.0.0/lib/rouge/lexers/lasso.rb +212 -0
- data/rouge-5.0.0/lib/rouge/lexers/lean.rb +164 -0
- data/rouge-5.0.0/lib/rouge/lexers/liquid.rb +284 -0
- data/rouge-5.0.0/lib/rouge/lexers/literate_coffeescript.rb +34 -0
- data/rouge-5.0.0/lib/rouge/lexers/literate_haskell.rb +37 -0
- data/rouge-5.0.0/lib/rouge/lexers/livescript.rb +310 -0
- data/rouge-5.0.0/lib/rouge/lexers/llvm/keywords.rb +16 -0
- data/rouge-5.0.0/lib/rouge/lexers/llvm.rb +59 -0
- data/rouge-5.0.0/lib/rouge/lexers/lua/keywords.rb +26 -0
- data/rouge-5.0.0/lib/rouge/lexers/lua.rb +186 -0
- data/rouge-5.0.0/lib/rouge/lexers/lustre.rb +79 -0
- data/rouge-5.0.0/lib/rouge/lexers/lutin.rb +34 -0
- data/rouge-5.0.0/lib/rouge/lexers/m68k.rb +143 -0
- data/rouge-5.0.0/lib/rouge/lexers/magik.rb +127 -0
- data/rouge-5.0.0/lib/rouge/lexers/make.rb +148 -0
- data/rouge-5.0.0/lib/rouge/lexers/markdown.rb +183 -0
- data/rouge-5.0.0/lib/rouge/lexers/mason.rb +110 -0
- data/rouge-5.0.0/lib/rouge/lexers/mathematica/keywords.rb +15 -0
- data/rouge-5.0.0/lib/rouge/lexers/mathematica.rb +95 -0
- data/rouge-5.0.0/lib/rouge/lexers/matlab/keywords.rb +15 -0
- data/rouge-5.0.0/lib/rouge/lexers/matlab.rb +81 -0
- data/rouge-5.0.0/lib/rouge/lexers/meson.rb +158 -0
- data/rouge-5.0.0/lib/rouge/lexers/minizinc.rb +87 -0
- data/rouge-5.0.0/lib/rouge/lexers/mojo.rb +39 -0
- data/rouge-5.0.0/lib/rouge/lexers/moonscript.rb +117 -0
- data/rouge-5.0.0/lib/rouge/lexers/mosel.rb +228 -0
- data/rouge-5.0.0/lib/rouge/lexers/msgtrans.rb +26 -0
- data/rouge-5.0.0/lib/rouge/lexers/mxml.rb +69 -0
- data/rouge-5.0.0/lib/rouge/lexers/nasm.rb +73 -0
- data/rouge-5.0.0/lib/rouge/lexers/nesasm.rb +78 -0
- data/rouge-5.0.0/lib/rouge/lexers/nginx.rb +73 -0
- data/rouge-5.0.0/lib/rouge/lexers/nial.rb +165 -0
- data/rouge-5.0.0/lib/rouge/lexers/nim.rb +154 -0
- data/rouge-5.0.0/lib/rouge/lexers/nix.rb +213 -0
- data/rouge-5.0.0/lib/rouge/lexers/objective_c/common.rb +182 -0
- data/rouge-5.0.0/lib/rouge/lexers/objective_c.rb +21 -0
- data/rouge-5.0.0/lib/rouge/lexers/objective_cpp.rb +32 -0
- data/rouge-5.0.0/lib/rouge/lexers/ocaml/common.rb +53 -0
- data/rouge-5.0.0/lib/rouge/lexers/ocaml.rb +65 -0
- data/rouge-5.0.0/lib/rouge/lexers/ocl.rb +84 -0
- data/rouge-5.0.0/lib/rouge/lexers/openedge.rb +632 -0
- data/rouge-5.0.0/lib/rouge/lexers/opentype_feature_file.rb +97 -0
- data/rouge-5.0.0/lib/rouge/lexers/p4.rb +81 -0
- data/rouge-5.0.0/lib/rouge/lexers/pascal.rb +68 -0
- data/rouge-5.0.0/lib/rouge/lexers/pdf.rb +109 -0
- data/rouge-5.0.0/lib/rouge/lexers/perl.rb +251 -0
- data/rouge-5.0.0/lib/rouge/lexers/php/keywords.rb +150 -0
- data/rouge-5.0.0/lib/rouge/lexers/php.rb +470 -0
- data/rouge-5.0.0/lib/rouge/lexers/plain_text.rb +27 -0
- data/rouge-5.0.0/lib/rouge/lexers/plist.rb +47 -0
- data/rouge-5.0.0/lib/rouge/lexers/plsql.rb +577 -0
- data/rouge-5.0.0/lib/rouge/lexers/pony.rb +94 -0
- data/rouge-5.0.0/lib/rouge/lexers/postscript.rb +93 -0
- data/rouge-5.0.0/lib/rouge/lexers/powershell.rb +248 -0
- data/rouge-5.0.0/lib/rouge/lexers/praat.rb +438 -0
- data/rouge-5.0.0/lib/rouge/lexers/prolog.rb +67 -0
- data/rouge-5.0.0/lib/rouge/lexers/prometheus.rb +122 -0
- data/rouge-5.0.0/lib/rouge/lexers/properties.rb +52 -0
- data/rouge-5.0.0/lib/rouge/lexers/protobuf.rb +71 -0
- data/rouge-5.0.0/lib/rouge/lexers/puppet.rb +129 -0
- data/rouge-5.0.0/lib/rouge/lexers/python.rb +340 -0
- data/rouge-5.0.0/lib/rouge/lexers/q.rb +125 -0
- data/rouge-5.0.0/lib/rouge/lexers/qml.rb +74 -0
- data/rouge-5.0.0/lib/rouge/lexers/r.rb +89 -0
- data/rouge-5.0.0/lib/rouge/lexers/racket.rb +568 -0
- data/rouge-5.0.0/lib/rouge/lexers/reasonml.rb +66 -0
- data/rouge-5.0.0/lib/rouge/lexers/rego.rb +60 -0
- data/rouge-5.0.0/lib/rouge/lexers/rescript.rb +119 -0
- data/rouge-5.0.0/lib/rouge/lexers/rml.rb +142 -0
- data/rouge-5.0.0/lib/rouge/lexers/robot_framework.rb +249 -0
- data/rouge-5.0.0/lib/rouge/lexers/rocq.rb +264 -0
- data/rouge-5.0.0/lib/rouge/lexers/ruby.rb +481 -0
- data/rouge-5.0.0/lib/rouge/lexers/rust.rb +261 -0
- data/rouge-5.0.0/lib/rouge/lexers/sas.rb +562 -0
- data/rouge-5.0.0/lib/rouge/lexers/sass/common.rb +182 -0
- data/rouge-5.0.0/lib/rouge/lexers/sass.rb +75 -0
- data/rouge-5.0.0/lib/rouge/lexers/scala.rb +172 -0
- data/rouge-5.0.0/lib/rouge/lexers/scheme.rb +113 -0
- data/rouge-5.0.0/lib/rouge/lexers/scss.rb +35 -0
- data/rouge-5.0.0/lib/rouge/lexers/sed.rb +173 -0
- data/rouge-5.0.0/lib/rouge/lexers/shell.rb +205 -0
- data/rouge-5.0.0/lib/rouge/lexers/sieve.rb +97 -0
- data/rouge-5.0.0/lib/rouge/lexers/slice.rb +32 -0
- data/rouge-5.0.0/lib/rouge/lexers/slim.rb +229 -0
- data/rouge-5.0.0/lib/rouge/lexers/smalltalk.rb +117 -0
- data/rouge-5.0.0/lib/rouge/lexers/smarty.rb +81 -0
- data/rouge-5.0.0/lib/rouge/lexers/sml.rb +345 -0
- data/rouge-5.0.0/lib/rouge/lexers/sparql.rb +131 -0
- data/rouge-5.0.0/lib/rouge/lexers/sqf/keywords.rb +14 -0
- data/rouge-5.0.0/lib/rouge/lexers/sqf.rb +108 -0
- data/rouge-5.0.0/lib/rouge/lexers/sql.rb +161 -0
- data/rouge-5.0.0/lib/rouge/lexers/ssh.rb +33 -0
- data/rouge-5.0.0/lib/rouge/lexers/stan.rb +445 -0
- data/rouge-5.0.0/lib/rouge/lexers/stata.rb +165 -0
- data/rouge-5.0.0/lib/rouge/lexers/supercollider.rb +115 -0
- data/rouge-5.0.0/lib/rouge/lexers/svelte.rb +91 -0
- data/rouge-5.0.0/lib/rouge/lexers/swift.rb +202 -0
- data/rouge-5.0.0/lib/rouge/lexers/systemd.rb +34 -0
- data/rouge-5.0.0/lib/rouge/lexers/syzlang.rb +316 -0
- data/rouge-5.0.0/lib/rouge/lexers/syzprog.rb +122 -0
- data/rouge-5.0.0/lib/rouge/lexers/tap.rb +88 -0
- data/rouge-5.0.0/lib/rouge/lexers/tcl.rb +198 -0
- data/rouge-5.0.0/lib/rouge/lexers/terraform.rb +121 -0
- data/rouge-5.0.0/lib/rouge/lexers/tex.rb +70 -0
- data/rouge-5.0.0/lib/rouge/lexers/thrift.rb +120 -0
- data/rouge-5.0.0/lib/rouge/lexers/toml.rb +124 -0
- data/rouge-5.0.0/lib/rouge/lexers/tsx.rb +33 -0
- data/rouge-5.0.0/lib/rouge/lexers/ttcn3.rb +117 -0
- data/rouge-5.0.0/lib/rouge/lexers/tulip.rb +107 -0
- data/rouge-5.0.0/lib/rouge/lexers/turtle.rb +61 -0
- data/rouge-5.0.0/lib/rouge/lexers/twig.rb +40 -0
- data/rouge-5.0.0/lib/rouge/lexers/typescript/common.rb +60 -0
- data/rouge-5.0.0/lib/rouge/lexers/typescript.rb +23 -0
- data/rouge-5.0.0/lib/rouge/lexers/vala.rb +78 -0
- data/rouge-5.0.0/lib/rouge/lexers/varnish.rb +168 -0
- data/rouge-5.0.0/lib/rouge/lexers/vb.rb +165 -0
- data/rouge-5.0.0/lib/rouge/lexers/velocity.rb +71 -0
- data/rouge-5.0.0/lib/rouge/lexers/verilog.rb +163 -0
- data/rouge-5.0.0/lib/rouge/lexers/veryl.rb +109 -0
- data/rouge-5.0.0/lib/rouge/lexers/vhdl.rb +98 -0
- data/rouge-5.0.0/lib/rouge/lexers/viml/keywords.rb +19 -0
- data/rouge-5.0.0/lib/rouge/lexers/viml.rb +68 -0
- data/rouge-5.0.0/lib/rouge/lexers/vue.rb +127 -0
- data/rouge-5.0.0/lib/rouge/lexers/wollok.rb +107 -0
- data/rouge-5.0.0/lib/rouge/lexers/xml.rb +56 -0
- data/rouge-5.0.0/lib/rouge/lexers/xojo.rb +61 -0
- data/rouge-5.0.0/lib/rouge/lexers/xpath.rb +332 -0
- data/rouge-5.0.0/lib/rouge/lexers/xquery.rb +146 -0
- data/rouge-5.0.0/lib/rouge/lexers/yaml.rb +388 -0
- data/rouge-5.0.0/lib/rouge/lexers/yang.rb +115 -0
- data/rouge-5.0.0/lib/rouge/lexers/zig.rb +139 -0
- data/rouge-5.0.0/lib/rouge/plugins/redcarpet.rb +38 -0
- data/rouge-5.0.0/lib/rouge/regex_lexer.rb +522 -0
- data/rouge-5.0.0/lib/rouge/template_lexer.rb +21 -0
- data/rouge-5.0.0/lib/rouge/tex_theme_renderer.rb +132 -0
- data/rouge-5.0.0/lib/rouge/text_analyzer.rb +50 -0
- data/rouge-5.0.0/lib/rouge/theme.rb +218 -0
- data/rouge-5.0.0/lib/rouge/themes/base16.rb +137 -0
- data/rouge-5.0.0/lib/rouge/themes/bw.rb +43 -0
- data/rouge-5.0.0/lib/rouge/themes/colorful.rb +70 -0
- data/rouge-5.0.0/lib/rouge/themes/github.rb +149 -0
- data/rouge-5.0.0/lib/rouge/themes/gruvbox.rb +176 -0
- data/rouge-5.0.0/lib/rouge/themes/igor_pro.rb +25 -0
- data/rouge-5.0.0/lib/rouge/themes/magritte.rb +80 -0
- data/rouge-5.0.0/lib/rouge/themes/molokai.rb +84 -0
- data/rouge-5.0.0/lib/rouge/themes/monokai.rb +95 -0
- data/rouge-5.0.0/lib/rouge/themes/monokai_sublime.rb +94 -0
- data/rouge-5.0.0/lib/rouge/themes/pastie.rb +72 -0
- data/rouge-5.0.0/lib/rouge/themes/thankful_eyes.rb +77 -0
- data/rouge-5.0.0/lib/rouge/themes/tulip.rb +72 -0
- data/rouge-5.0.0/lib/rouge/token.rb +192 -0
- data/rouge-5.0.0/lib/rouge/util.rb +102 -0
- data/rouge-5.0.0/lib/rouge/version.rb +8 -0
- data/rouge-5.0.0/lib/rouge.rb +117 -0
- data/rouge-5.0.0/lib/rubocop/cop/rouge/no_building_alternation_pattern_in_regexp.rb +71 -0
- data/rouge-5.0.0/lib/rubocop/cop/rouge/no_huge_collections.rb +37 -0
- data/rouge-5.0.0/rouge.gemspec +29 -0
- metadata +578 -0
|
@@ -0,0 +1,340 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
# C minus minus (Cmm) is a pun on the name C++. It's an intermediate language
|
|
5
|
+
# of the Glasgow Haskell Compiler (GHC) that is very similar to C, but with
|
|
6
|
+
# many features missing and some special constructs.
|
|
7
|
+
#
|
|
8
|
+
# Cmm is a dialect of C--. The goal of this lexer is to use what GHC produces
|
|
9
|
+
# and parses (Cmm); C-- itself is not supported.
|
|
10
|
+
#
|
|
11
|
+
# https://gitlab.haskell.org/ghc/ghc/wikis/commentary/compiler/cmm-syntax
|
|
12
|
+
#
|
|
13
|
+
module Rouge
|
|
14
|
+
module Lexers
|
|
15
|
+
class GHCCmm < RegexLexer
|
|
16
|
+
title "GHC Cmm (C--)"
|
|
17
|
+
desc "GHC Cmm is the intermediate representation of the GHC Haskell compiler"
|
|
18
|
+
tag 'ghc-cmm'
|
|
19
|
+
filenames '*.cmm', '*.dump-cmm', '*.dump-cmm-*'
|
|
20
|
+
aliases 'cmm'
|
|
21
|
+
|
|
22
|
+
ws = %r(\s|//.*?\n|/[*](?:[^*]|(?:[*][^/]))*[*]+/)mx
|
|
23
|
+
|
|
24
|
+
# Make sure that this is not a preprocessor macro, e.g. `#if` or `#define`.
|
|
25
|
+
id = %r((?!\#[a-zA-Z])[\w#\$%']+)
|
|
26
|
+
|
|
27
|
+
complex_id = %r(
|
|
28
|
+
(?:[\w#$%']|\(\)|\(,\)|\[\]|[0-9])*
|
|
29
|
+
(?:[\w#$%']+)
|
|
30
|
+
)mx
|
|
31
|
+
|
|
32
|
+
state :root do
|
|
33
|
+
rule %r/\s+/m, Text
|
|
34
|
+
|
|
35
|
+
# sections markers
|
|
36
|
+
rule %r/^=====.*=====$/, Generic::Heading
|
|
37
|
+
|
|
38
|
+
# timestamps
|
|
39
|
+
rule %r/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d+ UTC$/, Comment::Single
|
|
40
|
+
|
|
41
|
+
mixin :detect_section
|
|
42
|
+
mixin :preprocessor_macros
|
|
43
|
+
|
|
44
|
+
mixin :info_tbls
|
|
45
|
+
mixin :comments
|
|
46
|
+
mixin :literals
|
|
47
|
+
mixin :keywords
|
|
48
|
+
mixin :types
|
|
49
|
+
mixin :infos
|
|
50
|
+
mixin :names
|
|
51
|
+
mixin :operators
|
|
52
|
+
|
|
53
|
+
# escaped newline
|
|
54
|
+
rule %r/\\\n/, Text
|
|
55
|
+
|
|
56
|
+
# rest is Text
|
|
57
|
+
rule %r/./, Text
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
state :detect_section do
|
|
61
|
+
rule %r/(section)(\s+)/ do |m|
|
|
62
|
+
token Keyword, m[1]
|
|
63
|
+
token Text, m[2]
|
|
64
|
+
push :section
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
state :section do
|
|
69
|
+
rule %r/"(data|cstring|text|rodata|relrodata|bss)"/, Name::Builtin
|
|
70
|
+
|
|
71
|
+
rule %r/{/, Punctuation, :pop!
|
|
72
|
+
|
|
73
|
+
mixin :names
|
|
74
|
+
mixin :operators
|
|
75
|
+
mixin :keywords
|
|
76
|
+
|
|
77
|
+
rule %r/\s+/, Text
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
state :preprocessor_macros do
|
|
81
|
+
rule %r/#(include|endif|else|if)/, Comment::Preproc
|
|
82
|
+
|
|
83
|
+
rule %r{
|
|
84
|
+
(\#define)
|
|
85
|
+
(#{ws}*)
|
|
86
|
+
(#{id})
|
|
87
|
+
}mx do |m|
|
|
88
|
+
token Comment::Preproc, m[1]
|
|
89
|
+
recurse m[2]
|
|
90
|
+
token Name::Label, m[3]
|
|
91
|
+
end
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
state :info_tbls do
|
|
95
|
+
rule %r/({ )(info_tbls)(:)/ do |m|
|
|
96
|
+
token Punctuation, m[1]
|
|
97
|
+
token Name::Entity, m[2]
|
|
98
|
+
token Punctuation, m[3]
|
|
99
|
+
|
|
100
|
+
push :info_tbls_body
|
|
101
|
+
end
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
state :info_tbls_body do
|
|
105
|
+
rule %r/}/, Punctuation, :pop!
|
|
106
|
+
rule %r/{/, Punctuation, :info_tbls_body
|
|
107
|
+
|
|
108
|
+
rule %r/(?=label:)/ do
|
|
109
|
+
push :label
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
rule %r{(\()(#{complex_id})(,)}mx do |m|
|
|
113
|
+
token Punctuation, m[1]
|
|
114
|
+
token Name::Label, m[2]
|
|
115
|
+
token Punctuation, m[3]
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
mixin :literals
|
|
119
|
+
mixin :infos
|
|
120
|
+
mixin :keywords
|
|
121
|
+
mixin :operators
|
|
122
|
+
|
|
123
|
+
rule %r/#{id}/, Text
|
|
124
|
+
rule %r/\s+/, Text
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
state :label do
|
|
128
|
+
mixin :infos
|
|
129
|
+
mixin :names
|
|
130
|
+
mixin :keywords
|
|
131
|
+
mixin :operators
|
|
132
|
+
|
|
133
|
+
rule %r/[^\S\n]+/, Text # Tab, space, etc. but not newline!
|
|
134
|
+
rule %r/\n/, Text, :pop!
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
state :comments do
|
|
138
|
+
rule %r/\/{2}.*/, Comment::Single
|
|
139
|
+
rule %r/\(likely.*?\)/, Comment
|
|
140
|
+
rule %r/\/\*.*?\*\//m, Comment::Multiline
|
|
141
|
+
end
|
|
142
|
+
|
|
143
|
+
state :literals do
|
|
144
|
+
rule %r/-?[0-9]+\.[0-9]+/, Literal::Number::Float
|
|
145
|
+
rule %r/-?[0-9]+/, Literal::Number::Integer
|
|
146
|
+
rule %r/"/, Literal::String::Delimiter, :literal_string
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
state :literal_string do
|
|
150
|
+
# quotes
|
|
151
|
+
rule %r/\\./, Literal::String::Escape
|
|
152
|
+
rule %r/%./, Literal::String::Symbol
|
|
153
|
+
rule %r/"/, Literal::String::Delimiter, :pop!
|
|
154
|
+
rule %r/./, Literal::String
|
|
155
|
+
end
|
|
156
|
+
|
|
157
|
+
state :operators do
|
|
158
|
+
rule %r/\.\./, Operator
|
|
159
|
+
rule %r/[+\-*\/<>=!&|~]/, Operator
|
|
160
|
+
rule %r/[\[\].{}:;,()]/, Punctuation
|
|
161
|
+
end
|
|
162
|
+
|
|
163
|
+
state :keywords do
|
|
164
|
+
rule %r/(const)(\s+)/ do |m|
|
|
165
|
+
token Keyword::Constant, m[1]
|
|
166
|
+
token Text, m[2]
|
|
167
|
+
end
|
|
168
|
+
|
|
169
|
+
rule %r/"/, Literal::String::Double
|
|
170
|
+
|
|
171
|
+
rule %r/(switch)([^{]*)({)/ do |m|
|
|
172
|
+
token Keyword, m[1]
|
|
173
|
+
recurse m[2]
|
|
174
|
+
token Punctuation, m[3]
|
|
175
|
+
end
|
|
176
|
+
|
|
177
|
+
rule %r/(arg|result)(#{ws}+)(hints)(:)/ do |m|
|
|
178
|
+
token Name::Property, m[1]
|
|
179
|
+
recurse m[2]
|
|
180
|
+
token Name::Property, m[3]
|
|
181
|
+
token Punctuation, m[4]
|
|
182
|
+
end
|
|
183
|
+
|
|
184
|
+
rule %r/(returns)(#{ws}*)(to)/ do |m|
|
|
185
|
+
token Keyword, m[1]
|
|
186
|
+
recurse m[2]
|
|
187
|
+
token Keyword, m[3]
|
|
188
|
+
end
|
|
189
|
+
|
|
190
|
+
rule %r/(never)(#{ws}*)(returns)/ do |m|
|
|
191
|
+
token Keyword, m[1]
|
|
192
|
+
recurse m[2]
|
|
193
|
+
token Keyword, m[3]
|
|
194
|
+
end
|
|
195
|
+
|
|
196
|
+
rule %r{(return)(#{ws}*)(\()} do |m|
|
|
197
|
+
token Keyword, m[1]
|
|
198
|
+
recurse m[2]
|
|
199
|
+
token Punctuation, m[3]
|
|
200
|
+
end
|
|
201
|
+
|
|
202
|
+
rule %r{(if|else|goto|call|offset|import|jump|ccall|foreign|prim|case|unwind|export|reserve|push)(#{ws})} do |m|
|
|
203
|
+
token Keyword, m[1]
|
|
204
|
+
recurse m[2]
|
|
205
|
+
end
|
|
206
|
+
|
|
207
|
+
rule %r{(default)(#{ws}*)(:)} do |m|
|
|
208
|
+
token Keyword, m[1]
|
|
209
|
+
recurse m[2]
|
|
210
|
+
token Punctuation, m[3]
|
|
211
|
+
end
|
|
212
|
+
end
|
|
213
|
+
|
|
214
|
+
state :types do
|
|
215
|
+
# Memory access: `type[42]`
|
|
216
|
+
# Note: Only a token for type is produced.
|
|
217
|
+
rule %r/(#{id})(?=\[[^\]])/ do |m|
|
|
218
|
+
token Keyword::Type, m[1]
|
|
219
|
+
end
|
|
220
|
+
|
|
221
|
+
# Array type: `type[]`
|
|
222
|
+
rule %r/(#{id}\[\])/ do |m|
|
|
223
|
+
token Keyword::Type, m[1]
|
|
224
|
+
end
|
|
225
|
+
|
|
226
|
+
# Capture macro substitutions before lexing typed declarations
|
|
227
|
+
# I.e. there is no type in `PREPROCESSOR_MACRO_VARIABLE someFun()`
|
|
228
|
+
rule %r{
|
|
229
|
+
(^#{id})
|
|
230
|
+
(#{ws}+)
|
|
231
|
+
(#{id})
|
|
232
|
+
(#{ws}*)
|
|
233
|
+
(\()
|
|
234
|
+
}mx do |m|
|
|
235
|
+
token Name::Label, m[1]
|
|
236
|
+
recurse m[2]
|
|
237
|
+
token Name::Function, m[3]
|
|
238
|
+
recurse m[4]
|
|
239
|
+
token Punctuation, m[5]
|
|
240
|
+
end
|
|
241
|
+
|
|
242
|
+
# Type in variable or parameter declaration:
|
|
243
|
+
# `type /* optional whitespace */ var_name /* optional whitespace */;`
|
|
244
|
+
# `type /* optional whitespace */ var_name /* optional whitespace */, var_name2`
|
|
245
|
+
# `(type /* optional whitespace */ var_name /* optional whitespace */)`
|
|
246
|
+
# Note: Only the token for type is produced here.
|
|
247
|
+
rule %r{
|
|
248
|
+
(#{id})
|
|
249
|
+
(#{ws}+)
|
|
250
|
+
(#{id})
|
|
251
|
+
}mx do |m|
|
|
252
|
+
token Keyword::Type, m[1]
|
|
253
|
+
recurse m[2]
|
|
254
|
+
token Name::Label, m[3]
|
|
255
|
+
end
|
|
256
|
+
end
|
|
257
|
+
|
|
258
|
+
state :infos do
|
|
259
|
+
rule %r/(args|res|upd|label|rep|srt|arity|fun_type|arg_space|updfr_space)(:)/ do |m|
|
|
260
|
+
token Name::Property, m[1]
|
|
261
|
+
token Punctuation, m[2]
|
|
262
|
+
end
|
|
263
|
+
|
|
264
|
+
rule %r/(stack_info)(:)/ do |m|
|
|
265
|
+
token Name::Entity, m[1]
|
|
266
|
+
token Punctuation, m[2]
|
|
267
|
+
end
|
|
268
|
+
end
|
|
269
|
+
|
|
270
|
+
state :names do
|
|
271
|
+
rule %r/(::)(#{ws}*)([A-Z]\w+)/ do |m|
|
|
272
|
+
token Operator, m[1]
|
|
273
|
+
recurse m[2]
|
|
274
|
+
token Keyword::Type, m[3]
|
|
275
|
+
end
|
|
276
|
+
|
|
277
|
+
rule %r/<(#{id})>/, Name::Builtin
|
|
278
|
+
|
|
279
|
+
rule %r/(Sp|SpLim|Hp|HpLim|HpAlloc|BaseReg|CurrentNursery|CurrentTSO|R\d{1,2}|gcptr)(?!#{id})/, Name::Variable::Global
|
|
280
|
+
rule %r/([A-Z]#{id})(\.)/ do |m|
|
|
281
|
+
token Name::Namespace, m[1]
|
|
282
|
+
token Punctuation, m[2]
|
|
283
|
+
push :namespace_name
|
|
284
|
+
end
|
|
285
|
+
|
|
286
|
+
# Inline function calls:
|
|
287
|
+
# ```
|
|
288
|
+
# arg1 `lt` arg2
|
|
289
|
+
# ```
|
|
290
|
+
rule %r/(`)(#{id})(`)/ do |m|
|
|
291
|
+
token Punctuation, m[1]
|
|
292
|
+
token Name::Function, m[2]
|
|
293
|
+
token Punctuation, m[3]
|
|
294
|
+
end
|
|
295
|
+
|
|
296
|
+
# Function: `name /* optional whitespace */ (`
|
|
297
|
+
# Function (arguments via explicit stack handling): `name /* optional whitespace */ {`
|
|
298
|
+
rule %r{(?=
|
|
299
|
+
#{complex_id}
|
|
300
|
+
#{ws}*
|
|
301
|
+
[\{\(]
|
|
302
|
+
)}mx do
|
|
303
|
+
push :function
|
|
304
|
+
end
|
|
305
|
+
|
|
306
|
+
rule %r/CLOSURE/, Keyword::Type
|
|
307
|
+
rule %r/#{complex_id}/, Name::Label
|
|
308
|
+
end
|
|
309
|
+
|
|
310
|
+
state :namespace_name do
|
|
311
|
+
rule %r/([A-Z]#{id})(\.)/ do |m|
|
|
312
|
+
token Name::Namespace, m[1]
|
|
313
|
+
token Punctuation, m[2]
|
|
314
|
+
end
|
|
315
|
+
|
|
316
|
+
rule %r{(#{complex_id})(#{ws}*)([\{\(])}mx do |m|
|
|
317
|
+
token Name::Function, m[1]
|
|
318
|
+
recurse m[2]
|
|
319
|
+
token Punctuation, m[3]
|
|
320
|
+
pop!
|
|
321
|
+
end
|
|
322
|
+
|
|
323
|
+
rule %r/#{complex_id}/, Name::Label, :pop!
|
|
324
|
+
|
|
325
|
+
rule %r/(?=.)/m do
|
|
326
|
+
pop!
|
|
327
|
+
end
|
|
328
|
+
end
|
|
329
|
+
|
|
330
|
+
state :function do
|
|
331
|
+
rule %r/INFO_TABLE_FUN|INFO_TABLE_CONSTR|INFO_TABLE_SELECTOR|INFO_TABLE_RET|INFO_TABLE/, Name::Builtin
|
|
332
|
+
rule %r/%#{id}/, Name::Builtin
|
|
333
|
+
rule %r/#{complex_id}/, Name::Function
|
|
334
|
+
rule %r/\s+/, Text
|
|
335
|
+
rule %r/[({]/, Punctuation, :pop!
|
|
336
|
+
mixin :comments
|
|
337
|
+
end
|
|
338
|
+
end
|
|
339
|
+
end
|
|
340
|
+
end
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
# See http://www.cs.cmu.edu/afs/andrew/course/15/411/ghc/share/doc/ghc/ext-core/core.pdf for a description of the syntax
|
|
5
|
+
# of the language and https://www.aosabook.org/en/ghc.html for a high level overview.
|
|
6
|
+
module Rouge
|
|
7
|
+
module Lexers
|
|
8
|
+
class GHCCore < RegexLexer
|
|
9
|
+
title "GHC Core"
|
|
10
|
+
desc "Intermediate representation of the GHC Haskell compiler."
|
|
11
|
+
tag 'ghc-core'
|
|
12
|
+
|
|
13
|
+
filenames '*.dump-simpl', '*.dump-cse', '*.dump-ds', '*.dump-spec'
|
|
14
|
+
|
|
15
|
+
state :root do
|
|
16
|
+
# sections
|
|
17
|
+
rule %r/^=====.*=====$/, Generic::Heading
|
|
18
|
+
# timestamps
|
|
19
|
+
rule %r/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d+ UTC$/, Comment::Single
|
|
20
|
+
rule %r/^Result size of .+\n.+{[^}]*}/, Comment::Multiline
|
|
21
|
+
rule %r/--.*$/, Comment::Single
|
|
22
|
+
|
|
23
|
+
rule %r/\[/, Comment::Special, :annotation
|
|
24
|
+
|
|
25
|
+
mixin :recursive_binding
|
|
26
|
+
mixin :ghc_rule
|
|
27
|
+
mixin :function
|
|
28
|
+
|
|
29
|
+
# rest is Text
|
|
30
|
+
# TODO: this is really inefficient
|
|
31
|
+
rule %r/\s/m, Text
|
|
32
|
+
rule %r/./, Text
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
state :expression do
|
|
36
|
+
rule %r/[\n]+/, Text
|
|
37
|
+
rule %r/(?=^\S)/ do
|
|
38
|
+
pop!
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
rule %r/\s+/, Text, :expression_line
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
state :expression_line do
|
|
45
|
+
rule %r/ /, Text
|
|
46
|
+
|
|
47
|
+
mixin :common
|
|
48
|
+
|
|
49
|
+
rule %r/\n/, Text, :pop!
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
state :annotation do
|
|
53
|
+
rule %r/\]/, Comment::Special, :pop!
|
|
54
|
+
rule %r/\[/, Comment::Special, :annotation
|
|
55
|
+
rule %r/[^\[\]]+/, Comment::Special
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
state :common do
|
|
59
|
+
# array, e.g. '[]' or '[Char]'
|
|
60
|
+
rule %r/\[[^=]*\]/, Keyword::Type
|
|
61
|
+
|
|
62
|
+
rule %r/\[/, Comment::Special, :annotation
|
|
63
|
+
|
|
64
|
+
mixin :literal
|
|
65
|
+
mixin :constants
|
|
66
|
+
mixin :punctuation
|
|
67
|
+
mixin :operator
|
|
68
|
+
mixin :name
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
state :literal do
|
|
72
|
+
rule %r/\d+\.\d+\#{0,2}/, Literal::Number::Float
|
|
73
|
+
rule %r/\d+\#{0,2}/, Literal::Number::Integer
|
|
74
|
+
rule %r/".*"#/, Literal::String
|
|
75
|
+
rule %r/'.'#/, Literal::String::Char
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
state :constants do
|
|
79
|
+
rule %r/__DEFAULT/, Name::Constant
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
state :name do
|
|
83
|
+
rule %r/^([A-Z]\w*)(\.)/ do |m|
|
|
84
|
+
token Name::Namespace, m[0]
|
|
85
|
+
token Punctuation, m[1]
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
rule %r/[A-Z][^\s.,(){}]*/, Keyword::Type
|
|
89
|
+
|
|
90
|
+
# packages, e.g. 'ghc-prim-0.5.3:'
|
|
91
|
+
rule %r/([a-z].*?\d+\.\d+\.\d+)(:)(?=\S)/ do |m|
|
|
92
|
+
token Name::Namespace, m[1]
|
|
93
|
+
token Punctuation, m[2]
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
rule %r/\S*\(,\)\S*/, Name::Variable # '(,)' is a name, not punctuation
|
|
97
|
+
rule %r/\S[^\s.,(){}]*/, Name::Variable
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
state :punctuation do
|
|
101
|
+
rule %r/[.,(){};]/, Punctuation
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
state :operator do
|
|
105
|
+
rule %r/=>/, Operator
|
|
106
|
+
rule %r/->/, Operator
|
|
107
|
+
rule %r/::/, Operator
|
|
108
|
+
rule %r/=/, Operator
|
|
109
|
+
rule %r/forall/, Keyword
|
|
110
|
+
rule %r/case/, Keyword
|
|
111
|
+
rule %r/of/, Keyword
|
|
112
|
+
rule %r/letrec/, Keyword
|
|
113
|
+
rule %r/let/, Keyword
|
|
114
|
+
rule %r/join/, Keyword
|
|
115
|
+
rule %r/@/, Operator
|
|
116
|
+
rule %r/\\/, Operator
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
state :recursive_binding do
|
|
120
|
+
rule %r/(Rec)(\s*)({)/ do |m|
|
|
121
|
+
token Keyword, m[1]
|
|
122
|
+
token Text, m[2]
|
|
123
|
+
token Punctuation, m[3]
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
rule %r/^(end)(\s*)(Rec)(\s*)(})/ do |m|
|
|
127
|
+
token Keyword, m[1]
|
|
128
|
+
token Text, m[2]
|
|
129
|
+
token Keyword, m[3]
|
|
130
|
+
token Text, m[4]
|
|
131
|
+
token Punctuation, m[5]
|
|
132
|
+
end
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
state :ghc_rule do
|
|
136
|
+
rule %r/^(".*?")/m do |m|
|
|
137
|
+
token Name::Label, m[0]
|
|
138
|
+
|
|
139
|
+
push :expression
|
|
140
|
+
end
|
|
141
|
+
end
|
|
142
|
+
|
|
143
|
+
state :function do
|
|
144
|
+
rule %r/^(\S+)(?=.*?(=|::))/m do |m|
|
|
145
|
+
token Name::Function, m[0]
|
|
146
|
+
|
|
147
|
+
push :expression
|
|
148
|
+
end
|
|
149
|
+
end
|
|
150
|
+
end
|
|
151
|
+
end
|
|
152
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
# DO NOT EDIT
|
|
5
|
+
# This file is automatically generated by `rake builtins:gherkin`.
|
|
6
|
+
# See tasks/builtins/gherkin.rake for more info.
|
|
7
|
+
|
|
8
|
+
module Rouge
|
|
9
|
+
module Lexers
|
|
10
|
+
class Gherkin
|
|
11
|
+
# [jneen] this giant regex is staying, because Gherkin step
|
|
12
|
+
# keywords are so arbitrary that there is not a good simple
|
|
13
|
+
# pattern to match all of them and check post-hoc.
|
|
14
|
+
STEP_REGEX = %r('a\b|'ach\b|'ej\b|\*|7\b|A\b|A\ taktiež\b|A\ také\b|A\ tiež\b|A\ zároveň\b|AN\b|Aber\b|Ac\b|Ach\b|Adott\b|Agus\b|Ak\b|Akkor\b|Alavez\b|Ale\b|Aleshores\b|Ali\b|All\ git\ out\b|Allora\b|Alors\b|Als\b|Ama\b|Amennyiben\b|Amikor\b|Amma\b|Ampak\b|An\b|Ananging\b|Ancaq\b|And\b|Angenommen\b|Anrhegedig\ a\b|Ansin\b|Antonces\b|Apabila\b|Atesa\b|Atunci\b|Atès\b|Avast!|Aye\b|BUT\b|Bagi\b|Banjur\b|Belgilangan\b|Bet\b|Bila\b|Biết\b|Blimey!|Buh\b|But\b|But\ at\ the\ end\ of\ the\ day\ I\ reckon\b|Bæþsealf\b|Bæþsealfa\b|Bæþsealfe\b|Cal\b|Cand\b|Cando\b|Ce\b|Cho\b|Ciricæw\b|Ciricæwa\b|Ciricæwe\b|Come\ hell\ or\ high\ water\b|Cuan\b|Cuando\b|Cuir\ i\ gcás\ go\b|Cuir\ i\ gcás\ gur\b|Cuir\ i\ gcás\ nach\b|Cuir\ i\ gcás\ nár\b|Când\b|DEN\b|DaH\ ghu'\ bejlu'|Dada\b|Dadas\b|Dadena\b|Dadeno\b|Dado\b|Dados\b|Daes\b|Dan\b|Dann\b|Dano\b|Daos\b|Dar\b|Dat\ fiind\b|Data\b|Date\b|Date\ fiind\b|Dati\b|Dati\ fiind\b|Dato\b|Dată\ fiind\b|Dau\b|Daus\b|Daţi\ fiind\b|Dați\ fiind\b|De\b|Den\ youse\ gotta\b|Dengan\b|Diasumsikan\b|Diberi\b|Diketahui\b|Diyelim\ ki\b|Do\b|Donada\b|Donat\b|Donc\b|Donitaĵo\b|Dun\b|Duota\b|Dáu\b|E\b|Ed\b|Eeldades\b|Ef\b|En\b|Entao\b|Entonces\b|Então\b|Entón\b|Entós\b|Epi\b|Et\b|Et\ qu'|Et\ que\b|Etant\ donné\b|Etant\ donné\ qu'|Etant\ donné\ que\b|Etant\ donnée\b|Etant\ données\b|Etant\ donnés\b|Eğer\ ki\b|Fakat\b|Fixin'\ to\b|Gangway!|Gdy\b|Gegeben\ sei\b|Gegeben\ seien\b|Gegeven\b|Gegewe\b|Gitt\b|Given\b|Givet\b|Givun\b|Ha\b|Həm\b|I\b|I\ CAN\ HAZ\b|In\b|Ir\b|It's\ just\ unbelievable\b|Ja\b|Jeśli\b|Jeżeli\b|Jika\b|Kad\b|Kada\b|Kadar\b|Kai\b|Kaj\b|Když\b|Kemudian\b|Ketika\b|Keď\b|Khi\b|Kiedy\b|Ko\b|Koga\b|Komence\b|Kui\b|Kuid\b|Kun\b|Lan\b|Le\b|Le\ sa\ a\b|Let\ go\ and\ haul\b|Logo\b|Lorsqu'|Lorsque\b|Lè\b|Lè\ sa\ a\b|Ma\b|Maar\b|Mais\b|Mais\ qu'|Mais\ que\b|Majd\b|Mając\b|Maka\b|Manawa\b|Mas\b|Men\b|Menawa\b|Mutta\b|Nalika\b|Nalikaning\b|Nanging\b|Nato\b|Nhưng\b|Niin\b|Njuk\b|No\b|Nuair\ a\b|Nuair\ ba\b|Nuair\ nach\b|Nuair\ nár\b|När\b|Når\b|Nə\ vaxt\ ki\b|O\ halda\b|O\ zaman\b|Och\b|Og\b|Oletetaan\b|Ond\b|Onda\b|Oraz\b|Pak\b|Pero\b|Peru\b|Però\b|Podano\b|Pokiaľ\b|Pokud\b|Potem\b|Potom\b|Privzeto\b|Pryd\b|Quan\b|Quand\b|Quando\b|Quick\ out\ of\ the\ chute\b|Sachant\b|Sachant\ qu'|Sachant\ que\b|Se\b|Sed\b|Si\b|Siis\b|Sipoze\b|Sipoze\ Ke\b|Sipoze\ ke\b|Soit\b|Stel\b|Så\b|Tad\b|Tada\b|Tak\b|Takrat\b|Tapi\b|Ter\b|Tetapi\b|Tha\b|Tha\ the\b|Then\b|There’s\ no\ tree\ but\ bears\ some\ fruit\b|Thurh\b|Thì\b|Toda\b|Togash\b|Too\ right\b|Tutaq\ ki\b|Ukoliko\b|Un\b|Und\b|Ve\b|Vendar\b|Verilir\b|Và\b|Və\b|WEN\b|Wanneer\b|Well\ now\ hold\ on,\ I'll\ you\ what\b|Wenn\b|When\b|Wtedy\b|Wun\b|Y\b|Y'know\b|Ya\b|Yeah\ nah\b|Yna\b|Youse\ know\ like\ when\b|Youse\ know\ when\ youse\ got\b|Za\ date\b|Za\ dati\b|Za\ dato\b|Za\ predpokladu\b|Za\ předpokladu\b|Zadan\b|Zadani\b|Zadano\b|Zakładając\b|Zakładając,\ że\b|Zaradi\b|Zatim\b|a\b|an\b|awer\b|dann\b|ghu'\ noblu'|latlh\b|mä\b|qaSDI'|ugeholl\b|vaj\b|wann\b|És\b|Étant\ donné\b|Étant\ donné\ qu'|Étant\ donné\ que\b|Étant\ donnée\b|Étant\ données\b|Étant\ donnés\b|Ða\b|Ða\ ðe\b|Ðurh\b|Þa\b|Þa\ þe\b|Þegar\b|Þurh\b|Þá\b|Če\b|Şi\b|Əgər\b|Și\b|Όταν\b|Αλλά\b|Δεδομένου\b|Και\b|Τότε\b|І\b|Інакш\b|А\b|А\ також\b|Агар\b|Але\b|Али\b|Аммо\b|Анх\b|Бирок\b|Ва\b|Вә\b|Гэхдээ\b|Дадена\b|Дадено\b|Дадзена\b|Дано\b|Допустим\b|Ды\b|Если\b|За\ дате\b|За\ дати\b|За\ дато\b|Затем\b|И\b|Иначе\b|К\ тому\ же\b|Кад\b|Када\b|Калі\b|Кога\b|Когато\b|Когда\b|Коли\b|Лекин\b|Ләкин\b|Мөн\b|Нехай\b|Но\b|Няхай\b|Нәтиҗәдә\b|Онда\b|Припустимо\b|Припустимо,\ що\b|Пусть\b|Та\b|Тады\b|Также\b|Таксама\b|То\b|Тогаш\b|Тогда\b|Тоді\b|Тэгэхэд\b|Тэгээд\b|Унда\b|Харин\b|Хэрэв\b|Якщо\b|Үүний\ дараа\b|Һәм\b|Әгәр\b|Әйтик\b|Әмма\b|Өгөгдсөн\ нь\b|Ապա\b|Բայց\b|Դիցուք\b|Եթե\b|Եվ\b|Երբ\b|אבל\b|אז\b|אזי\b|בהינתן\b|וגם\b|כאשר\b|آنگاه\b|اذاً\b|اما\b|اور\b|اگر\b|با\ فرض\b|بالفرض\b|بفرض\b|تب\b|ثم\b|جب\b|عندما\b|فرض\ کیا\b|لكن\b|لیکن\b|متى\b|هنگامی\b|و\b|پھر\b|अगर\b|अनि\b|अनी\b|आणि\b|और\b|कदा\b|किन्तु\b|चूंकि\b|जब\b|जर\b|जेव्हा\b|तथा\b|तदा\b|तब\b|तर\b|तसेच\b|तेव्हा\b|त्यसपछि\b|दिइएको\b|दिएको\b|दिलेल्या\ प्रमाणे\b|पण\b|पर\b|परंतु\b|परन्तु\b|मग\b|यदि\b|र\b|ਅਤੇ\b|ਜਦੋਂ\b|ਜਿਵੇਂ\ ਕਿ\b|ਜੇਕਰ\b|ਤਦ\b|ਪਰ\b|અને\b|આપેલ\ છે\b|ક્યારે\b|પછી\b|પણ\b|அப்பொழுது\b|ஆனால்\b|எப்போது\b|கொடுக்கப்பட்ட\b|மற்றும்\b|மேலும்\b|అప్పుడు\b|ఈ\ పరిస్థితిలో\b|కాని\b|చెప్పబడినది\b|మరియు\b|ಆದರೆ\b|ನಂತರ\b|ನೀಡಿದ\b|ಮತ್ತು\b|ಸ್ಥಿತಿಯನ್ನು\b|എപ്പോൾ\b|ഒപ്പം\b|നൽകിയത്\b|പക്ഷേ\b|പിന്നെ\b|กำหนดให้\b|ดังนั้น\b|เมื่อ\b|แต่\b|และ\b|ასევე\b|და\b|ვთქვათ\b|თუ\b|თუმცა\b|მაგრამ\b|მაშინ\b|მოცემული\b|მოცემულია\b|როგორც\ კი\b|როდესაც\b|როცა\b|መቼ\b|እና\b|ከዚያ\b|የተሰጠ\b|ግን\b|かつ\b|しかし\b|ただし\b|ならば\b|もし\b|且つ\b|並且\b|但し\b|但是\b|假如\b|假定\b|假設\b|假设\b|前提\b|同时\b|同時\b|并且\b|当\b|然し\b|當\b|而且\b|那么\b|那麼\b|그러면\b|그리고\b|단\b|만약\b|만일\b|먼저\b|조건\b|하지만\b|🎬|😂|😐|😔|🙏)o
|
|
15
|
+
|
|
16
|
+
KEYWORDS = {}.tap do |k|
|
|
17
|
+
k[:element] = Set.new ["Abstract Scenario", "Abstrakt Scenario", "Achtergrond", "Aer", "Agtergrond", "All hat and no cattle", "Antecedentes", "Antecedents", "Atburðarás", "Aturan", "Awww, look mate", "B4", "Background", "Baggrund", "Bakgrund", "Bakgrunn", "Bakgrunnur", "Beispiel", "Beispill", "Busy as a hound in flea season", "Bối cảnh", "Caso", "Casu", "Cefndir", "Cenario", "Cenario de Fundo", "Cenário", "Cenário de Fundo", "Contesto", "Context", "Contexte", "Contexto", "Cás", "Cás Achomair", "Cúlra", "Cцэнар", "Dasar", "Delineacao do Cenario", "Delineação do Cenário", "Dis is what went down", "Dyagram Senaryo", "Dyagram senaryo", "Eixemplo", "Ejemplo", "Eksempel", "Ekzemplo", "Enghraifft", "Esbozo do escenario", "Esbozu del casu", "Escenari", "Escenario", "Esempio", "Esquema de l'escenari", "Esquema del caso", "Esquema del escenario", "Esquema do Cenario", "Esquema do Cenário", "Example", "Exemple", "Exemplo", "Exemplu", "First off", "Fono", "Forgatókönyv", "Forgatókönyv vázlat", "Fundo", "Garis Panduan Senario", "Garis-Besar Skenario", "Geçmiş", "Grundlage", "Hannergrond", "Heave to", "Hintergrund", "Háttér", "Istorik", "Juhtum", "Kazo", "Kazo-skizo", "Keadaan", "Kerangka Keadaan", "Kerangka Senario", "Kerangka Situasi", "Keçmiş", "Khung kịch bản", "Khung tình huống", "Koncept", "Konsep skenario", "Kontekst", "Kontekstas", "Konteksts", "Kontext", "Konturo de la scenaro", "Kontèks", "Kural", "Kịch bản", "Latar Belakang", "Lemme tell y'all a story", "Lýsing Atburðarásar", "Lýsing Dæma", "MISHUN", "MISHUN SRSLY", "Na primer", "Náčrt Scenára", "Náčrt Scenáru", "Náčrt Scénáře", "Nümunə", "Oris scenarija", "Osnova", "Osnova Scenára", "Osnova scénáře", "Osnutek", "Ozadje", "Pavyzdys", "Piemērs", "Plan Senaryo", "Plan du Scénario", "Plan du scénario", "Plan senaryo", "Plang vum Szenario", "Pozadie", "Pozadina", "Pozadí", "Pravidlo", "Pravilo", "Pregled na scenarija", "Primer", "Primjer", "Przykład", "Príklad", "Példa", "Příklad", "Quy tắc", "Raamjuhtum", "Raamstsenaarium", "Reckon it's like", "Reegel", "Reel", "Regel", "Regla", "Regla de negocio", "Regola", "Regra", "Regulo", "Reguła", "Rerefons", "Reël", "Riail", "Rule", "Règle", "Sampla", "Scenarie", "Scenarij", "Scenarijaus šablonas", "Scenariju", "Scenariju-obris", "Scenarijus", "Scenario", "Scenario Amlinellol", "Scenario Outline", "Scenario Template", "Scenario-outline", "Scenariomal", "Scenariomall", "Scenariu", "Scenariusz", "Scenaro", "Scenár", "Scenārijs", "Scenārijs pēc parauga", "Schema dello scenario", "Scénario", "Scénář", "Senario", "Senaryo", "Senaryo Deskripsyon", "Senaryo deskripsyon", "Senaryo taslağı", "Serious as a snake bite", "Shiver me timbers", "Situasi", "Situasie", "Situasie Uiteensetting", "Situācija", "Skenario", "Skenario konsep", "Skica", "Skizo", "Sodrzhina", "Ssenari", "Ssenarinin strukturu", "Structura scenariu", "Structură scenariu", "Struktura scenarija", "Stsenaarium", "Swa", "Swa hwaer swa", "Swa hwær swa", "Szablon scenariusza", "Szabály", "Szenarien", "Szenario", "Szenariogrundriss", "Tapaus", "Tapausaihio", "Taust", "Tausta", "The thing of it is", "Tình huống", "Voorbeeld", "Voraussetzungen", "Vorbedingungen", "Wharrimean is", "Yo-ho-ho", "Zasada", "Założenia", "lut", "lut chovnatlh", "mo'", "Ær", "Örnek", "Παράδειγμα", "Περίγραμμα Σεναρίου", "Περιγραφή Σεναρίου", "Σενάριο", "Υπόβαθρο", "Агуулга", "Кантэкст", "Кереш", "Контекст", "Концепт", "На пример", "Основа", "Передумова", "Позадина", "Правило", "Правілы", "Преглед на сценарија", "Предистория", "Предыстория", "Приклад", "Пример", "Рамка на сценарий", "Скица", "Содржина", "Структура сценария", "Структура сценарија", "Структура сценарію", "Сценар", "Сценарий", "Сценарий структураси", "Сценарийның төзелеше", "Сценарио", "Сценарын төлөвлөгөө", "Сценарій", "Сцэнарый", "Тарих", "Узор сцэнара", "Шаблон сценария", "Шаблон сцэнарыя", "Կոնտեքստ", "Սցենար", "Սցենարի կառուցվացքը", "Օրինակ", "דוגמא", "כלל", "רקע", "תבנית תרחיש", "תרחיש", "الخلفية", "الگوی سناریو", "زمینه", "سناریو", "سيناريو", "سيناريو مخطط", "مثال", "منظر نامے کا خاکہ", "منظرنامہ", "پس منظر", "नियम", "परिदृश्य", "परिदृश्य रूपरेखा", "पार्श्वभूमी", "पृष्ठभूमि", "पृष्ठभूमी", "ਉਦਾਹਰਨ", "ਪਟਕਥਾ", "ਪਟਕਥਾ ਢਾਂਚਾ", "ਪਟਕਥਾ ਰੂਪ ਰੇਖਾ", "ਪਿਛੋਕੜ", "ઉદાહરણ", "નિયમ", "પરિદ્દશ્ય ઢાંચો", "પરિદ્દશ્ય રૂપરેખા", "બેકગ્રાઉન્ડ", "સ્થિતિ", "உதாரணமாக", "காட்சி", "காட்சி சுருக்கம்", "காட்சி வார்ப்புரு", "பின்னணி", "ఉదాహరణ", "కథనం", "నేపథ్యం", "సన్నివేశం", "ಉದಾಹರಣೆ", "ಕಥಾಸಾರಾಂಶ", "ವಿವರಣೆ", "ಹಿನ್ನೆಲೆ", "നിയമം", "പശ്ചാത്തലം", "രംഗം", "സാഹചര്യത്തിന്റെ രൂപരേഖ", "สรุปเหตุการณ์", "เหตุการณ์", "แนวคิด", "โครงสร้างของเหตุการณ์", "კონტექსტი", "მაგ", "მაგალითად", "მაგალითი", "ნიმუში", "სცენარი", "სცენარის ნიმუში", "სცენარის შაბლონი", "შაბლონი", "წესი", "ሁናቴ", "ሁናቴ አብነት", "ሁናቴ ዝርዝር", "ህግ", "መነሻ", "መነሻ ሀሳብ", "ምሳሌ", "ቅድመ ሁኔታ", "シナリオ", "シナリオアウトライン", "シナリオテンプレ", "シナリオテンプレート", "テンプレ", "ルール", "剧本", "剧本大纲", "劇本", "劇本大綱", "场景", "场景大纲", "場景", "場景大綱", "背景", "规则", "규칙", "배경", "시나리오", "시나리오 개요", "💤", "📕", "📖", "🥒"]
|
|
18
|
+
k[:examples] = Set.new ["Atburðarásir", "Beispiele", "Beispiller", "Cenarios", "Cenários", "Conto", "Contoh", "Contone", "Dead men tell no tales", "Dæmi", "Dữ liệu", "EXAMPLZ", "Egzanp", "Eixemplos", "Ejemplos", "Eksempler", "Ekzemploj", "Enghreifftiau", "Esempi", "Examples", "Exempel", "Exemple", "Exemples", "Exemplos", "Juhtumid", "Misal", "Now that's a story longer than a cattle drive in July", "Nümunələr", "Paraugs", "Pavyzdžiai", "Piemēri", "Primeri", "Primjeri", "Przykłady", "Príklady", "Példák", "Příklady", "Samplaí", "Scenaria", "Scenarijai", "Scenariji", "Scenarios", "Se the", "Se ðe", "Se þe", "Tapaukset", "Variantai", "Voorbeelde", "Voorbeelden", "You'll wanna", "ghantoH", "lutmey", "Örnekler", "Παραδείγματα", "Σενάρια", "Значения", "Мисаллар", "Мисоллар", "Приклади", "Примери", "Примеры", "Прыклады", "Сценарија", "Сценарији", "Тухайлбал", "Үрнәкләр", "Օրինակներ", "דוגמאות", "امثلة", "مثالیں", "نمونه ها", "उदाहरण", "उदाहरणहरु", "ਉਦਾਹਰਨਾਂ", "ઉદાહરણો", "எடுத்துக்காட்டுகள்", "காட்சிகள்", "நிலைமைகளில்", "ఉదాహరణలు", "ಉದಾಹರಣೆಗಳು", "ഉദാഹരണങ്ങൾ", "ชุดของตัวอย่าง", "ชุดของเหตุการณ์", "მაგალითები", "ሁናቴዎች", "ምሳሌዎች", "サンプル", "例", "例子", "예", "📓"]
|
|
19
|
+
k[:feature] = Set.new ["Ability", "Abilità", "Ahoy matey!", "All gussied up", "Arwedd", "Aspekt", "Besigheid Behoefte", "Biznis potreba", "Business Need", "Caracteristica", "Característica", "Carauterística", "Egenskab", "Egenskap", "Eiginleiki", "Esigenza di Business", "Feature", "Fitur", "Fonctionnalité", "Fonksyonalite", "Funcionalidade", "Funcionalitat", "Functionalitate", "Functionaliteit", "Funcţionalitate", "Funcționalitate", "Fungsi", "Funkcia", "Funkcija", "Funkcionalitāte", "Funkcionalnost", "Funkcja", "Funksie", "Funktion", "Funktionalität", "Funktionalitéit", "Funzionalità", "Fīča", "Gné", "Hwaet", "Hwæt", "Jellemző", "Karakteristik", "Karakteristika", "Lastnost", "Mak", "Mogucnost", "Mogućnost", "Mozhnost", "Moznosti", "Možnosti", "Necesidad del negocio", "OH HAI", "Omadus", "Ominaisuus", "Osobina", "Potrzeba biznesowa", "Požadavek", "Požiadavka", "Pretty much", "Qap", "Qu'meH 'ut", "Requisito", "Savybė", "This ain’t my first rodeo", "Trajto", "Tính năng", "Vermoë", "Vlastnosť", "Właściwość", "Značilnost", "laH", "perbogh", "poQbogh malja'", "Özellik", "Özəllik", "Δυνατότητα", "Λειτουργία", "Бизнис потреба", "Могућност", "Можност", "Мөмкинлек", "Особина", "Свойство", "Фича", "Функц", "Функционал", "Функционалност", "Функциональность", "Функция", "Функцыянальнасць", "Функціонал", "Фіча", "Үзенчәлеклелек", "Հատկություն", "Ֆունկցիոնալություն", "תכונה", "خاصية", "خصوصیت", "صلاحیت", "وِیژگی", "کاروبار کی ضرورت", "रूप लेख", "विशेषता", "वैशिष्ट्य", "सुविधा", "ਖਾਸੀਅਤ", "ਨਕਸ਼ ਨੁਹਾਰ", "ਮੁਹਾਂਦਰਾ", "ક્ષમતા", "લક્ષણ", "વ્યાપાર જરૂર", "அம்சம்", "திறன்", "வணிக தேவை", "గుణము", "ಹೆಚ್ಚಳ", "സവിശേഷത", "ความต้องการทางธุรกิจ", "ความสามารถ", "โครงหลัก", "თვისება", "მოთხოვნა", "ስራ", "የሚፈለገው ድርጊት", "የተፈለገው ስራ", "フィーチャ", "功能", "機能", "기능", "📚"]
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module Rouge
|
|
5
|
+
module Lexers
|
|
6
|
+
class Gherkin < RegexLexer
|
|
7
|
+
tag 'gherkin'
|
|
8
|
+
aliases 'cucumber', 'behat'
|
|
9
|
+
|
|
10
|
+
title "Gherkin"
|
|
11
|
+
desc 'A business-readable spec DSL (github.com/cucumber/cucumber/wiki/Gherkin)'
|
|
12
|
+
|
|
13
|
+
filenames '*.feature'
|
|
14
|
+
mimetypes 'text/x-gherkin'
|
|
15
|
+
|
|
16
|
+
def self.detect?(text)
|
|
17
|
+
return true if text.shebang? 'cucumber'
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
lazy do
|
|
21
|
+
require_relative 'gherkin/keywords'
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
rest_of_line = /.*?(?=[#\n])/
|
|
25
|
+
|
|
26
|
+
state :basic do
|
|
27
|
+
rule %r(#.*$), Comment
|
|
28
|
+
rule %r/[ \r\t]+/, Text
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
state :annotated_string do
|
|
32
|
+
rule %r((""")(\S*)(.*?)("""))m do |m|
|
|
33
|
+
open, lang, content, close = m.captures
|
|
34
|
+
|
|
35
|
+
token Str, open
|
|
36
|
+
token Str::Escape, lang
|
|
37
|
+
|
|
38
|
+
sublexer = Rouge::Lexer.find(lang.strip)
|
|
39
|
+
|
|
40
|
+
if sublexer
|
|
41
|
+
delegate sublexer, content
|
|
42
|
+
else
|
|
43
|
+
token Str, content
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
token Str, close
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
state :root do
|
|
51
|
+
mixin :basic
|
|
52
|
+
rule %r(\n), Text
|
|
53
|
+
mixin :annotated_string
|
|
54
|
+
rule %r(@[^\s@]+), Name::Tag
|
|
55
|
+
mixin :has_table
|
|
56
|
+
mixin :has_examples
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
state :has_scenarios do
|
|
60
|
+
rule %r((.*?)(:)) do |m|
|
|
61
|
+
reset_stack
|
|
62
|
+
|
|
63
|
+
keyword = m[1]
|
|
64
|
+
keyword_tok = if KEYWORDS[:element].include? keyword
|
|
65
|
+
push :description; Keyword::Namespace
|
|
66
|
+
elsif KEYWORDS[:feature].include? keyword
|
|
67
|
+
push :feature_description; Keyword::Declaration
|
|
68
|
+
elsif KEYWORDS[:examples].include? keyword
|
|
69
|
+
push :example_description; Name::Namespace
|
|
70
|
+
else
|
|
71
|
+
Error
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
groups keyword_tok, Punctuation
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
state :has_examples do
|
|
79
|
+
mixin :has_scenarios
|
|
80
|
+
rule Gherkin::STEP_REGEX do
|
|
81
|
+
token Name::Function
|
|
82
|
+
reset_stack
|
|
83
|
+
push :step
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
state :has_table do
|
|
88
|
+
rule(/(?=[|])/) { push :table_header }
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
state :table_header do
|
|
92
|
+
rule %r/[^|\s]+/, Name::Variable
|
|
93
|
+
rule %r/\n/ do
|
|
94
|
+
token Text
|
|
95
|
+
goto :table
|
|
96
|
+
end
|
|
97
|
+
mixin :table
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
state :table do
|
|
101
|
+
mixin :basic
|
|
102
|
+
rule %r/\n/, Text, :table_bol
|
|
103
|
+
rule %r/[|]/, Punctuation
|
|
104
|
+
rule %r/[^|\s]+/, Name
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
state :table_bol do
|
|
108
|
+
rule(/(?=\s*[^\s|])/) { reset_stack }
|
|
109
|
+
rule(//) { pop! }
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
state :description do
|
|
113
|
+
mixin :basic
|
|
114
|
+
mixin :has_examples
|
|
115
|
+
rule %r/\n/, Text
|
|
116
|
+
rule rest_of_line, Text
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
state :feature_description do
|
|
120
|
+
mixin :basic
|
|
121
|
+
mixin :has_scenarios
|
|
122
|
+
rule %r/\n/, Text
|
|
123
|
+
rule rest_of_line, Text
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
state :example_description do
|
|
127
|
+
mixin :basic
|
|
128
|
+
mixin :has_table
|
|
129
|
+
rule %r/\n/, Text
|
|
130
|
+
rule rest_of_line, Text
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
state :step do
|
|
134
|
+
mixin :basic
|
|
135
|
+
rule %r/<.*?>/, Name::Variable
|
|
136
|
+
rule %r/".*?"/, Str
|
|
137
|
+
rule %r/\S[^\s<]*/, Text
|
|
138
|
+
rule rest_of_line, Text, :pop!
|
|
139
|
+
end
|
|
140
|
+
end
|
|
141
|
+
end
|
|
142
|
+
end
|