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,97 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module Rouge
|
|
5
|
+
module Lexers
|
|
6
|
+
class OpenTypeFeatureFile < RegexLexer
|
|
7
|
+
title "OpenType Feature File"
|
|
8
|
+
desc "Feature specifications for an OpenType font (adobe-type-tools.github.io/afdko)"
|
|
9
|
+
tag 'opentype_feature_file'
|
|
10
|
+
aliases 'fea', 'opentype', 'opentypefeature'
|
|
11
|
+
filenames '*.fea'
|
|
12
|
+
|
|
13
|
+
def self.keywords
|
|
14
|
+
@keywords ||= %w(
|
|
15
|
+
Ascender Attach AxisValue CapHeight CaretOffset CodePageRange
|
|
16
|
+
DesignAxis Descender ElidedFallbackName ElidedFallbackNameID
|
|
17
|
+
ElidableAxisValueName FeatUILabelNameID FeatUITooltipTextNameID
|
|
18
|
+
FontRevision FSType GlyphClassDef HorizAxis.BaseScriptList
|
|
19
|
+
HorizAxis.BaseTagList HorizAxis.MinMax IgnoreBaseGlyphs
|
|
20
|
+
IgnoreLigatures IgnoreMarks LigatureCaretByDev LigatureCaretByIndex
|
|
21
|
+
LigatureCaretByPos LineGap MarkAttachClass MarkAttachmentType NULL
|
|
22
|
+
OlderSiblingFontAttribute Panose ParamUILabelNameID RightToLeft
|
|
23
|
+
SampleTextNameID TypoAscender TypoDescender TypoLineGap UnicodeRange
|
|
24
|
+
UseMarkFilteringSet Vendor VertAdvanceY VertAxis.BaseScriptList
|
|
25
|
+
VertAxis.BaseTagList VertAxis.MinMax VertOriginY VertTypoAscender
|
|
26
|
+
VertTypoDescender VertTypoLineGap WeightClass WidthClass XHeight
|
|
27
|
+
|
|
28
|
+
anchorDef anchor anonymous anon by contour cursive device enumerate
|
|
29
|
+
enum exclude_dflt featureNames feature flag from ignore include_dflt
|
|
30
|
+
include languagesystem language location lookupflag lookup markClass
|
|
31
|
+
mark nameid name parameters position pos required reversesub rsub
|
|
32
|
+
script sizemenuname substitute subtable sub table useExtension
|
|
33
|
+
valueRecordDef winAscent winDescent
|
|
34
|
+
)
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
identifier = %r/[a-z_][a-z0-9\/_.-]*/i
|
|
39
|
+
|
|
40
|
+
state :root do
|
|
41
|
+
rule %r/\s+/m, Text::Whitespace
|
|
42
|
+
rule %r/#.*$/, Comment
|
|
43
|
+
|
|
44
|
+
# feature <tag>
|
|
45
|
+
rule %r/(anonymous|anon|feature|lookup|table)((?:\s)+)/ do
|
|
46
|
+
groups Keyword, Text
|
|
47
|
+
push :featurename
|
|
48
|
+
end
|
|
49
|
+
# } <tag> ;
|
|
50
|
+
rule %r/(\})((?:\s))/ do
|
|
51
|
+
groups Punctuation, Text
|
|
52
|
+
push :featurename
|
|
53
|
+
end
|
|
54
|
+
# solve include( ../path)
|
|
55
|
+
rule %r/include\b/i, Keyword, :includepath
|
|
56
|
+
|
|
57
|
+
rule %r/[\-\[\]\/(){},.:;=%*<>']/, Punctuation
|
|
58
|
+
|
|
59
|
+
rule %r/`.*?/, Str::Backtick
|
|
60
|
+
rule %r/\"/, Str, :strings
|
|
61
|
+
rule %r/\\[^.*\s]+/i, Str::Escape
|
|
62
|
+
|
|
63
|
+
# classes, start with @<nameOfClass>
|
|
64
|
+
rule %r/@#{identifier}/, Name::Class
|
|
65
|
+
|
|
66
|
+
# using negative lookbehind so we don't match property names
|
|
67
|
+
rule %r/(?<!\.)#{identifier}/ do |m|
|
|
68
|
+
if self.class.keywords.include? m[0]
|
|
69
|
+
token Keyword
|
|
70
|
+
else
|
|
71
|
+
token Name
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
rule identifier, Name
|
|
76
|
+
rule %r/(?:0x|\\)[0-9A-Fa-f]+/, Num::Hex
|
|
77
|
+
rule %r/-?\d+/, Num::Integer
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
state :featurename do
|
|
81
|
+
rule identifier, Name::Function, :pop!
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
state :includepath do
|
|
85
|
+
rule %r/\s+/, Text::Whitespace
|
|
86
|
+
rule %r/\)/, Punctuation, :pop!
|
|
87
|
+
rule %r/\(/, Punctuation
|
|
88
|
+
rule %r/[^\s()]+/, Str
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
state :strings do
|
|
92
|
+
rule %r/"/, Str, :pop!
|
|
93
|
+
rule %r/[^"%\n]+/, Str
|
|
94
|
+
end
|
|
95
|
+
end
|
|
96
|
+
end
|
|
97
|
+
end
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module Rouge
|
|
5
|
+
module Lexers
|
|
6
|
+
class P4 < RegexLexer
|
|
7
|
+
tag 'p4'
|
|
8
|
+
title 'P4'
|
|
9
|
+
desc 'The P4 programming language'
|
|
10
|
+
filenames '*.p4'
|
|
11
|
+
mimetypes 'text/x-p4'
|
|
12
|
+
|
|
13
|
+
def self.keywords
|
|
14
|
+
@keywords ||= %w(
|
|
15
|
+
abstract action actions apply const default default_action else enum
|
|
16
|
+
entries extern exit if in inout key list out package packet_in
|
|
17
|
+
packet_out return size select switch this transition tuple type
|
|
18
|
+
typedef
|
|
19
|
+
)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def self.operators
|
|
23
|
+
@operators ||= %w(
|
|
24
|
+
\|\+\| \|-\| \? \& \&\&\& < > << >> \* \| ~ \^ - \+ /
|
|
25
|
+
\# \. = != <= >= \+\+
|
|
26
|
+
)
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def self.decls
|
|
30
|
+
@decls ||= %w(
|
|
31
|
+
control header header_union parser state struct table
|
|
32
|
+
value_set
|
|
33
|
+
)
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def self.builtins
|
|
37
|
+
@builtins ||= %w(
|
|
38
|
+
bit bool error extract int isValid setValid setInvalid match_kind
|
|
39
|
+
string varbit verify void
|
|
40
|
+
)
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
state :whitespace do
|
|
44
|
+
rule %r/\s+/m, Text
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
state :comment do
|
|
48
|
+
rule %r((//).*$\n?), Comment::Single
|
|
49
|
+
rule %r/\/\*(?:(?!\*\/).)*\*\//m, Comment::Multiline
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
state :number do
|
|
53
|
+
rule %r/([0-9]+[sw])?0[oO][0-7_]+/, Num
|
|
54
|
+
rule %r/([0-9]+[sw])?0[xX][0-9a-fA-F_]+/, Num
|
|
55
|
+
rule %r/([0-9]+[sw])?0[bB][01_]+/, Num
|
|
56
|
+
rule %r/([0-9]+[sw])?0[dD][0-9_]+/, Num
|
|
57
|
+
rule %r/([0-9]+[sw])?[0-9_]+/, Num
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
id = /[\p{XID_Start}_]\p{XID_Continue}*/
|
|
61
|
+
string_element = /\\"|[^"]/x
|
|
62
|
+
|
|
63
|
+
state :root do
|
|
64
|
+
mixin :whitespace
|
|
65
|
+
mixin :comment
|
|
66
|
+
|
|
67
|
+
rule %r/#\s*#{id}/, Comment::Preproc
|
|
68
|
+
rule %r/\b(?:#{P4.keywords.join('|')})\b/, Keyword
|
|
69
|
+
rule %r/\b(?:#{P4.decls.join('|')})\b/, Keyword::Declaration
|
|
70
|
+
rule %r/\b(?:#{P4.builtins.join('|')})\b/, Name::Builtin
|
|
71
|
+
rule %r/\b#{id}_[th]\b/x, Name::Class
|
|
72
|
+
rule %r/(?:#{P4.operators.join('|')})/x, Operator
|
|
73
|
+
rule %r/[(){}\[\]<>,:;\.]/, Punctuation
|
|
74
|
+
mixin :number
|
|
75
|
+
rule %r/@#{id}/x, Name::Label
|
|
76
|
+
rule %r/#{id}/x, Text
|
|
77
|
+
rule %r/"(?: #{string_element} )*"/x, Str::String
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
end
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module Rouge
|
|
5
|
+
module Lexers
|
|
6
|
+
class Pascal < RegexLexer
|
|
7
|
+
tag 'pascal'
|
|
8
|
+
title "Pascal"
|
|
9
|
+
desc 'a procedural programming language commonly used as a teaching language.'
|
|
10
|
+
filenames '*.pas', '*.lpr', '*.pp'
|
|
11
|
+
|
|
12
|
+
mimetypes 'text/x-pascal'
|
|
13
|
+
|
|
14
|
+
id = /@?[_a-z]\w*/i
|
|
15
|
+
|
|
16
|
+
keywords = %w(
|
|
17
|
+
absolute abstract all and and_then array as asm assembler attribute
|
|
18
|
+
begin bindable case class const constructor delay destructor div do
|
|
19
|
+
downto else end except exit export exports external far file finalization
|
|
20
|
+
finally for forward function goto if implementation import in inc index
|
|
21
|
+
inherited initialization inline interface interrupt is label library
|
|
22
|
+
message mod module near nil not object of on only operator or or_else
|
|
23
|
+
otherwise out overload override packed pascal pow private procedure program
|
|
24
|
+
property protected public published qualified raise read record register
|
|
25
|
+
repeat resident resourcestring restricted safecall segment set shl shr
|
|
26
|
+
stdcall stored string then threadvar to try type unit until uses value var
|
|
27
|
+
view virtual while with write writeln xor
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
keywords_type = %w(
|
|
31
|
+
ansichar ansistring bool boolean byte bytebool cardinal char comp currency
|
|
32
|
+
double dword extended int64 integer iunknown longbool longint longword pansichar
|
|
33
|
+
pansistring pbool pboolean pbyte pbytearray pcardinal pchar pcomp pcurrency
|
|
34
|
+
pdate pdatetime pdouble pdword pextended phandle pint64 pinteger plongint plongword
|
|
35
|
+
pointer ppointer pshortint pshortstring psingle psmallint pstring pvariant pwidechar
|
|
36
|
+
pwidestring pword pwordarray pwordbool real real48 shortint shortstring single
|
|
37
|
+
smallint string tclass tdate tdatetime textfile thandle tobject ttime variant
|
|
38
|
+
widechar widestring word wordbool
|
|
39
|
+
)
|
|
40
|
+
|
|
41
|
+
state :whitespace do
|
|
42
|
+
# Spaces
|
|
43
|
+
rule %r/\s+/m, Text
|
|
44
|
+
# // Comments
|
|
45
|
+
rule %r((//).*$\n?), Comment::Single
|
|
46
|
+
# -- Comments
|
|
47
|
+
rule %r((--).*$\n?), Comment::Single
|
|
48
|
+
# (* Comments *)
|
|
49
|
+
rule %r(\(\*.*?\*\))m, Comment::Multiline
|
|
50
|
+
# { Comments }
|
|
51
|
+
rule %r(\{.*?\})m, Comment::Multiline
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
state :root do
|
|
55
|
+
mixin :whitespace
|
|
56
|
+
|
|
57
|
+
rule %r{((0(x|X)[0-9a-fA-F]*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))((e|E)(\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?}, Num
|
|
58
|
+
rule %r/\$[0-9A-Fa-f]+/, Num::Hex
|
|
59
|
+
rule %r{[~!@#\$%\^&\*\(\)\+`\-={}\[\]:;<>\?,\.\/\|\\]}, Punctuation
|
|
60
|
+
rule %r{'([^']|'')*'}, Str
|
|
61
|
+
rule %r/(true|false|nil)\b/i, Name::Builtin
|
|
62
|
+
rule %r/\b(#{keywords.join('|')})\b/i, Keyword
|
|
63
|
+
rule %r/\b(#{keywords_type.join('|')})\b/i, Keyword::Type
|
|
64
|
+
rule id, Name
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
end
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
# vim: set ts=2 sw=2 et:
|
|
4
|
+
|
|
5
|
+
# PDF = Portable Document Format page description language
|
|
6
|
+
# As defined by ISO 32000-2:2020 including resolved errata from https://pdf-issues.pdfa.org/
|
|
7
|
+
#
|
|
8
|
+
# The PDF syntax is also known as "COS" and can be used with FDF (Forms Data Field) files as
|
|
9
|
+
# per ISO 32000-2:2020 clause 12.7.8.
|
|
10
|
+
#
|
|
11
|
+
# This is a token-based parser ONLY! It is intended to syntax highlight full or partial fragments
|
|
12
|
+
# of nicely written hand-written PDF syntax in documentation such as ISO specifications. It is NOT
|
|
13
|
+
# intended to cope with real-world PDFs that will contain arbitrary binary data (that form invalid
|
|
14
|
+
# UTF-8 sequences and generate "ArgumentError: invalid byte sequence in UTF-8" Ruby errors) and
|
|
15
|
+
# other types of malformations or syntax errors.
|
|
16
|
+
#
|
|
17
|
+
# Author: Peter Wyatt, CTO, PDF Association. 2024
|
|
18
|
+
#
|
|
19
|
+
module Rouge
|
|
20
|
+
module Lexers
|
|
21
|
+
class Pdf < RegexLexer
|
|
22
|
+
title "PDF"
|
|
23
|
+
desc "PDF - Portable Document Format (ISO 32000)"
|
|
24
|
+
tag 'pdf'
|
|
25
|
+
aliases "fdf", 'cos'
|
|
26
|
+
filenames '*.pdf', '*.fdf'
|
|
27
|
+
mimetypes 'application/pdf', 'application/fdf' # IANA registered media types
|
|
28
|
+
|
|
29
|
+
# PDF and FDF files must start with "%PDF-x.y" or "%FDF-x.y"
|
|
30
|
+
# where x is the single digit major version and y is the single digit minor version.
|
|
31
|
+
# For simplicity as a syntax highlighter, assumes occurs at start of a line.
|
|
32
|
+
def self.detect?(text)
|
|
33
|
+
return true if /\A%(P|F)DF-\d\.\d/.match?(text)
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# PDF Delimiters (ISO 32000-2:2020, Table 1 and Table 2).
|
|
37
|
+
# Ruby whitespace "\s" is /[ \t\r\n\f\v]/ which does not include NUL (ISO 32000-2:2020, Table 1).
|
|
38
|
+
# PDF also support 2 character EOL sequences.
|
|
39
|
+
|
|
40
|
+
state :root do
|
|
41
|
+
# Start-of-file header comment is special (comment is up to EOL)
|
|
42
|
+
rule %r/^%(P|F)DF-\d\.\d.*$/, Comment::Preproc
|
|
43
|
+
|
|
44
|
+
# End-of-file marker comment is special (comment is up to EOL)
|
|
45
|
+
rule %r/^%%EOF.*$/, Comment::Preproc
|
|
46
|
+
|
|
47
|
+
# PDF only has single-line comments: from "%" to EOL
|
|
48
|
+
rule %r/%.*$/, Comment::Single
|
|
49
|
+
|
|
50
|
+
# PDF Boolean and null object keywords
|
|
51
|
+
rule %r/(false|true|null)/, Keyword::Constant
|
|
52
|
+
|
|
53
|
+
# PDF Dictionary and array object start and end tokens
|
|
54
|
+
rule %r/(<<|>>|\[|\])/, Punctuation
|
|
55
|
+
|
|
56
|
+
# PDF Hex string - can contain whitespace and span multiple lines.
|
|
57
|
+
# This rule must be after "<<"/">>"
|
|
58
|
+
rule %r/<[0-9A-Fa-f\s]*>/m, Str::Other
|
|
59
|
+
|
|
60
|
+
# PDF literal strings are complex (multi-line, escapes, etc.). Use separate state machine.
|
|
61
|
+
rule %r/\(/, Str, :stringliteral
|
|
62
|
+
|
|
63
|
+
# PDF Name objects - can be empty (i.e., nothing after "/").
|
|
64
|
+
# No special processing required for 2-digit hex codes that start with "#".
|
|
65
|
+
rule %r/\/[^\(\)<>\[\]\/%\s]*/, Name::Other
|
|
66
|
+
|
|
67
|
+
# PDF objects and stream (no checking of object ID)
|
|
68
|
+
# Note that object number and generation numbers do not have sign.
|
|
69
|
+
rule %r/\d+\s\d+\sobj/, Keyword::Declaration
|
|
70
|
+
rule %r/endstream|endobj|stream/, Keyword::Declaration
|
|
71
|
+
|
|
72
|
+
# PDF conventional file layout keywords
|
|
73
|
+
rule %r/startxref|trailer|xref/, Keyword::Declaration
|
|
74
|
+
|
|
75
|
+
# PDF cross reference section entries (20 bytes including EOL).
|
|
76
|
+
# Explicit single SPACE separators.
|
|
77
|
+
rule %r/^\d{10} \d{5} (n|f)\s*$/, Keyword::Namespace
|
|
78
|
+
|
|
79
|
+
# PDF Indirect reference (lax, allows zero as the object number).
|
|
80
|
+
# Requires terminating delimiter lookahead to disambiguate from "RG" operator
|
|
81
|
+
rule %r/\d+\s\d+\sR(?=[\(\)<>\[\]\/%\s])/, Name::Decorator
|
|
82
|
+
|
|
83
|
+
# PDF Real object
|
|
84
|
+
rule %r/(\-|\+)?([0-9]+\.?|[0-9]*\.[0-9]+|[0-9]+\.[0-9]*)/, Num::Float
|
|
85
|
+
|
|
86
|
+
# PDF Integer object
|
|
87
|
+
rule %r/(\-|\+)?[0-9]+/, Num::Integer
|
|
88
|
+
|
|
89
|
+
# A run of non-delimiters is most likely a PDF content stream
|
|
90
|
+
# operator (ISO 32000-2:2020, Annex A).
|
|
91
|
+
rule %r/[^\(\)<>\[\]\/%\s]+/, Operator::Word
|
|
92
|
+
|
|
93
|
+
# Whitespace (except inside strings and comments) is ignored = /[ \t\r\n\f\v]/.
|
|
94
|
+
# Ruby doesn't include NUL as whitespace (vs ISO 32000-2:2020 Table 1)
|
|
95
|
+
rule %r/\s+/, Text::Whitespace
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
# PDF literal string. See ISO 32000-2:2020 clause 7.3.4.2 and Table 3
|
|
99
|
+
state :stringliteral do
|
|
100
|
+
rule %r/\(/, Str, :stringliteral # recursive for internal bracketed strings
|
|
101
|
+
rule %r/\\\(/, Str::Escape, :stringliteral # recursive for internal escaped bracketed strings
|
|
102
|
+
rule %r/\)/, Str, :pop!
|
|
103
|
+
rule %r/\\\)/, Str::Escape, :pop!
|
|
104
|
+
rule %r/\\([0-7]{3}|n|r|t|b|f|\\)/, Str::Escape
|
|
105
|
+
rule %r/[^\(\)\\]+/, Str
|
|
106
|
+
end
|
|
107
|
+
end
|
|
108
|
+
end
|
|
109
|
+
end
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module Rouge
|
|
5
|
+
module Lexers
|
|
6
|
+
class Perl < RegexLexer
|
|
7
|
+
title "Perl"
|
|
8
|
+
desc "The Perl scripting language (perl.org)"
|
|
9
|
+
|
|
10
|
+
tag 'perl'
|
|
11
|
+
aliases 'pl'
|
|
12
|
+
|
|
13
|
+
filenames '*.pl', '*.pm', '*.t'
|
|
14
|
+
mimetypes 'text/x-perl', 'application/x-perl'
|
|
15
|
+
|
|
16
|
+
def self.detect?(text)
|
|
17
|
+
return true if text.shebang? 'perl'
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
keywords = %w(
|
|
21
|
+
case continue do else elsif for foreach if last my next our
|
|
22
|
+
redo reset then unless until while use print new BEGIN CHECK
|
|
23
|
+
INIT END return
|
|
24
|
+
)
|
|
25
|
+
|
|
26
|
+
builtins = %w(
|
|
27
|
+
abs accept alarm atan2 bind binmode bless caller chdir chmod
|
|
28
|
+
chomp chop chown chr chroot close closedir connect continue cos
|
|
29
|
+
crypt dbmclose dbmopen defined delete die dump each endgrent
|
|
30
|
+
endhostent endnetent endprotoent endpwent endservent eof eval
|
|
31
|
+
exec exists exit exp fcntl fileno flock fork format formline getc
|
|
32
|
+
getgrent getgrgid getgrnam gethostbyaddr gethostbyname gethostent
|
|
33
|
+
getlogin getnetbyaddr getnetbyname getnetent getpeername
|
|
34
|
+
getpgrp getppid getpriority getprotobyname getprotobynumber
|
|
35
|
+
getprotoent getpwent getpwnam getpwuid getservbyname getservbyport
|
|
36
|
+
getservent getsockname getsockopt glob gmtime goto grep hex
|
|
37
|
+
import index int ioctl join keys kill last lc lcfirst length
|
|
38
|
+
link listen local localtime log lstat map mkdir msgctl msgget
|
|
39
|
+
msgrcv msgsnd my next no oct open opendir ord our pack package
|
|
40
|
+
pipe pop pos printf prototype push quotemeta rand read readdir
|
|
41
|
+
readline readlink readpipe recv redo ref rename require reverse
|
|
42
|
+
rewinddir rindex rmdir scalar seek seekdir select semctl semget
|
|
43
|
+
semop send setgrent sethostent setnetent setpgrp setpriority
|
|
44
|
+
setprotoent setpwent setservent setsockopt shift shmctl shmget
|
|
45
|
+
shmread shmwrite shutdown sin sleep socket socketpair sort splice
|
|
46
|
+
split sprintf sqrt srand stat study substr symlink syscall sysopen
|
|
47
|
+
sysread sysseek system syswrite tell telldir tie tied time times
|
|
48
|
+
tr truncate uc ucfirst umask undef unlink unpack unshift untie
|
|
49
|
+
utime values vec wait waitpid wantarray warn write
|
|
50
|
+
)
|
|
51
|
+
|
|
52
|
+
re_tok = Str::Regex
|
|
53
|
+
|
|
54
|
+
state :balanced_regex do
|
|
55
|
+
rule %r(/(\\[\\/]|[^/])*/[egimosx]*)m, re_tok, :pop!
|
|
56
|
+
rule %r(!(\\[\\!]|[^!])*![egimosx]*)m, re_tok, :pop!
|
|
57
|
+
rule %r(\\(\\\\|[^\\])*\\[egimosx]*)m, re_tok, :pop!
|
|
58
|
+
rule %r({(\\[\\}]|[^}])*}[egimosx]*), re_tok, :pop!
|
|
59
|
+
rule %r(<(\\[\\>]|[^>])*>[egimosx]*), re_tok, :pop!
|
|
60
|
+
rule %r(\[(\\[\\\]]|[^\]])*\][egimosx]*), re_tok, :pop!
|
|
61
|
+
rule %r[\((\\[\\\)]|[^\)])*\)[egimosx]*], re_tok, :pop!
|
|
62
|
+
rule %r(@(\\[\\@]|[^@])*@[egimosx]*), re_tok, :pop!
|
|
63
|
+
rule %r(%(\\[\\%]|[^%])*%[egimosx]*), re_tok, :pop!
|
|
64
|
+
rule %r(\$(\\[\\\$]|[^\$])*\$[egimosx]*), re_tok, :pop!
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
state :root do
|
|
68
|
+
rule %r/#.*/, Comment::Single
|
|
69
|
+
rule %r/^=[a-zA-Z0-9]+\s+.*?\n=cut/m, Comment::Multiline
|
|
70
|
+
rule %r/(?:#{keywords.join('|')})\b/, Keyword
|
|
71
|
+
|
|
72
|
+
rule %r/(format)(\s+)([a-zA-Z0-9_]+)(\s*)(=)(\s*\n)/ do
|
|
73
|
+
groups Keyword, Text, Name, Text, Punctuation, Text
|
|
74
|
+
|
|
75
|
+
push :format
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
rule %r/(?:eq|lt|gt|le|ge|ne|not|and|or|cmp)\b/, Operator::Word
|
|
79
|
+
|
|
80
|
+
# substitution/transliteration: balanced delimiters
|
|
81
|
+
rule %r((?:s|tr|y){(\\\\|\\}|[^}])*}\s*), re_tok, :balanced_regex
|
|
82
|
+
rule %r((?:s|tr|y)<(\\\\|\\>|[^>])*>\s*), re_tok, :balanced_regex
|
|
83
|
+
rule %r((?:s|tr|y)\[(\\\\|\\\]|[^\]])*\]\s*), re_tok, :balanced_regex
|
|
84
|
+
rule %r[(?:s|tr|y)\((\\\\|\\\)|[^\)])*\)\s*], re_tok, :balanced_regex
|
|
85
|
+
|
|
86
|
+
# substitution/transliteration: arbitrary non-whitespace delimiters
|
|
87
|
+
rule %r((?:s|tr|y)\s*([^\w\s])((\\\\|\\\1)|[^\1])*?\1((\\\\|\\\1)|[^\1])*?\1[msixpodualngcr]*)m, re_tok
|
|
88
|
+
rule %r((?:s|tr|y)\s+(\w)((\\\\|\\\1)|[^\1])*?\1((\\\\|\\\1)|[^\1])*?\1[msixpodualngcr]*)m, re_tok
|
|
89
|
+
|
|
90
|
+
# matches: common case, m-optional
|
|
91
|
+
rule %r(m?/(\\\\|\\/|[^/\n])*/[msixpodualngc]*), re_tok
|
|
92
|
+
rule %r(m(?=[/!\\{<\[\(@%\$])), re_tok, :balanced_regex
|
|
93
|
+
|
|
94
|
+
# arbitrary non-whitespace delimiters
|
|
95
|
+
rule %r(m\s*([^\w\s])((\\\\|\\\1)|[^\1])*?\1[msixpodualngc]*)m, re_tok
|
|
96
|
+
rule %r(m\s+(\w)((\\\\|\\\1)|[^\1])*?\1[msixpodualngc]*)m, re_tok
|
|
97
|
+
|
|
98
|
+
rule %r(((?<==~)|(?<=\())\s*/(\\\\|\\/|[^/])*/[msixpodualngc]*),
|
|
99
|
+
re_tok, :balanced_regex
|
|
100
|
+
|
|
101
|
+
rule %r/\s+/, Text
|
|
102
|
+
|
|
103
|
+
rule(/(?=[a-z_]\w*(\s*#.*\n)*\s*=>)/i) { push :fat_comma }
|
|
104
|
+
|
|
105
|
+
rule %r/(?:#{builtins.join('|')})\b/, Name::Builtin
|
|
106
|
+
rule %r/((__(DIE|WARN)__)|(DATA|STD(IN|OUT|ERR)))\b/,
|
|
107
|
+
Name::Builtin::Pseudo
|
|
108
|
+
|
|
109
|
+
rule %r/<<([\'"]?)([a-zA-Z_][a-zA-Z0-9_]*)\1;?\n.*?\n\2\n/m, Str
|
|
110
|
+
|
|
111
|
+
rule %r/(__(END|DATA)__)\b/, Comment::Preproc, :end_part
|
|
112
|
+
rule %r/\$\^[ADEFHILMOPSTWX]/, Name::Variable::Global
|
|
113
|
+
rule %r/\$[\\"'\[\]&`+*.,;=%~?@$!<>(^\|\/_-](?!\w)/, Name::Variable::Global
|
|
114
|
+
rule %r/[$@%&*][$@%&*#_]*(?=[a-z{\[;])/i, Name::Variable, :varname
|
|
115
|
+
|
|
116
|
+
rule %r/[-+\/*%=<>&^\|!\\~]=?/, Operator
|
|
117
|
+
|
|
118
|
+
rule %r/0_?[0-7]+(_[0-7]+)*/, Num::Oct
|
|
119
|
+
rule %r/0x[0-9A-Fa-f]+(_[0-9A-Fa-f]+)*/, Num::Hex
|
|
120
|
+
rule %r/0b[01]+(_[01]+)*/, Num::Bin
|
|
121
|
+
rule %r/(\d*(_\d*)*\.\d+(_\d*)*|\d+(_\d*)*\.\d+(_\d*)*)(e[+-]?\d+)?/i,
|
|
122
|
+
Num::Float
|
|
123
|
+
rule %r/\d+(_\d*)*e[+-]?\d+(_\d*)*/i, Num::Float
|
|
124
|
+
rule %r/\d+(_\d+)*/, Num::Integer
|
|
125
|
+
|
|
126
|
+
rule %r/'/, Punctuation, :sq
|
|
127
|
+
rule %r/"/, Punctuation, :dq
|
|
128
|
+
rule %r/`/, Punctuation, :bq
|
|
129
|
+
rule %r/<([^\s>]+)>/, re_tok
|
|
130
|
+
rule %r/(q|qq|qw|qr|qx)\{/, Str::Other, :cb_string
|
|
131
|
+
rule %r/(q|qq|qw|qr|qx)\(/, Str::Other, :rb_string
|
|
132
|
+
rule %r/(q|qq|qw|qr|qx)\[/, Str::Other, :sb_string
|
|
133
|
+
rule %r/(q|qq|qw|qr|qx)</, Str::Other, :lt_string
|
|
134
|
+
rule %r/(q|qq|qw|qr|qx)(\W)(.|\n)*?\2/, Str::Other
|
|
135
|
+
|
|
136
|
+
rule %r/package\s+/, Keyword, :modulename
|
|
137
|
+
rule %r/sub\s+/, Keyword, :funcname
|
|
138
|
+
rule %r/\[\]|\*\*|::|<<|>>|>=|<=|<=>|={3}|!=|=~|!~|&&?|\|\||\.{1,3}/,
|
|
139
|
+
Operator
|
|
140
|
+
rule %r/[()\[\]:;,<>\/?{}]/, Punctuation
|
|
141
|
+
rule(/(?=\w)/) { push :name }
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
state :format do
|
|
145
|
+
rule %r/\.\n/, Str::Interpol, :pop!
|
|
146
|
+
rule %r/.*?\n/, Str::Interpol
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
state :fat_comma do
|
|
150
|
+
rule %r/#.*/, Comment::Single
|
|
151
|
+
rule %r/\w+/, Str
|
|
152
|
+
rule %r/\s+/, Text
|
|
153
|
+
rule %r/=>/, Operator, :pop!
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
state :name_common do
|
|
157
|
+
rule %r/\w+::/, Name::Namespace
|
|
158
|
+
rule %r/[\w:]+/, Name::Variable, :pop!
|
|
159
|
+
end
|
|
160
|
+
|
|
161
|
+
state :varname do
|
|
162
|
+
rule %r/\s+/, Text
|
|
163
|
+
rule %r/[{\[]/, Punctuation, :pop! # hash syntax
|
|
164
|
+
rule %r/[),]/, Punctuation, :pop! # arg specifier
|
|
165
|
+
rule %r/[;]/, Punctuation, :pop! # postfix
|
|
166
|
+
mixin :name_common
|
|
167
|
+
end
|
|
168
|
+
|
|
169
|
+
state :name do
|
|
170
|
+
mixin :name_common
|
|
171
|
+
rule %r/[A-Z_]+(?=[^a-zA-Z0-9_])/, Name::Constant, :pop!
|
|
172
|
+
rule(/(?=\W)/) { pop! }
|
|
173
|
+
end
|
|
174
|
+
|
|
175
|
+
state :modulename do
|
|
176
|
+
rule %r/[a-z_]\w*/i, Name::Namespace, :pop!
|
|
177
|
+
end
|
|
178
|
+
|
|
179
|
+
state :funcname do
|
|
180
|
+
rule %r/[a-zA-Z_]\w*[!?]?/, Name::Function
|
|
181
|
+
rule %r/\s+/, Text
|
|
182
|
+
|
|
183
|
+
# argument declaration
|
|
184
|
+
rule %r/(\([$@%]*\))(\s*)/ do
|
|
185
|
+
groups Punctuation, Text
|
|
186
|
+
end
|
|
187
|
+
|
|
188
|
+
rule %r/.*?{/, Punctuation, :pop!
|
|
189
|
+
rule %r/;/, Punctuation, :pop!
|
|
190
|
+
end
|
|
191
|
+
|
|
192
|
+
state :sq do
|
|
193
|
+
rule %r/\\[\\']/, Str::Escape
|
|
194
|
+
rule %r/[^\\']+/, Str::Single
|
|
195
|
+
rule %r/'/, Punctuation, :pop!
|
|
196
|
+
rule %r/\\/, Str::Single
|
|
197
|
+
end
|
|
198
|
+
|
|
199
|
+
state :dq do
|
|
200
|
+
mixin :string_intp
|
|
201
|
+
rule %r/\\[\\tnrabefluLUE"$@]/, Str::Escape
|
|
202
|
+
rule %r/\\0\d{2}/, Str::Escape
|
|
203
|
+
rule %r/\\o\{\d+\}/, Str::Escape
|
|
204
|
+
rule %r/\\x\h{2}/, Str::Escape
|
|
205
|
+
rule %r/\\x\{\h+\}/, Str::Escape
|
|
206
|
+
rule %r/\\c./, Str::Escape
|
|
207
|
+
rule %r/\\N\{[^\}]+\}/, Str::Escape
|
|
208
|
+
rule %r/[^\\"]+?/, Str::Double
|
|
209
|
+
rule %r/"/, Punctuation, :pop!
|
|
210
|
+
rule %r/\\/, Str::Escape
|
|
211
|
+
end
|
|
212
|
+
|
|
213
|
+
state :bq do
|
|
214
|
+
mixin :string_intp
|
|
215
|
+
rule %r/\\[\\tnr`]/, Str::Escape
|
|
216
|
+
rule %r/[^\\`]+?/, Str::Backtick
|
|
217
|
+
rule %r/`/, Punctuation, :pop!
|
|
218
|
+
end
|
|
219
|
+
|
|
220
|
+
[[:cb, '\{', '\}'],
|
|
221
|
+
[:rb, '\(', '\)'],
|
|
222
|
+
[:sb, '\[', '\]'],
|
|
223
|
+
[:lt, '<', '>']].each do |name, open, close|
|
|
224
|
+
tok = Str::Other
|
|
225
|
+
state :"#{name}_string" do
|
|
226
|
+
rule %r/\\[#{open}#{close}\\]/, tok
|
|
227
|
+
rule %r/\\/, tok
|
|
228
|
+
rule(/#{open}/) { token tok; push }
|
|
229
|
+
rule %r/#{close}/, tok, :pop!
|
|
230
|
+
rule %r/[^#{open}#{close}\\]+/, tok
|
|
231
|
+
end
|
|
232
|
+
end
|
|
233
|
+
|
|
234
|
+
state :in_interp do
|
|
235
|
+
rule %r/}/, Str::Interpol, :pop!
|
|
236
|
+
rule %r/\s+/, Text
|
|
237
|
+
rule %r/[a-z_]\w*/i, Str::Interpol
|
|
238
|
+
end
|
|
239
|
+
|
|
240
|
+
state :string_intp do
|
|
241
|
+
rule %r/[$@][{]/, Str::Interpol, :in_interp
|
|
242
|
+
rule %r/[$@][a-z_]\w*/i, Str::Interpol
|
|
243
|
+
end
|
|
244
|
+
|
|
245
|
+
state :end_part do
|
|
246
|
+
# eat the rest of the stream
|
|
247
|
+
rule %r/.+/m, Comment::Preproc, :pop!
|
|
248
|
+
end
|
|
249
|
+
end
|
|
250
|
+
end
|
|
251
|
+
end
|