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,445 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module Rouge
|
|
5
|
+
module Lexers
|
|
6
|
+
class Stan < RegexLexer
|
|
7
|
+
title "Stan"
|
|
8
|
+
desc 'Stan Modeling Language (mc-stan.org)'
|
|
9
|
+
tag 'stan'
|
|
10
|
+
filenames '*.stan', '*.stanfunctions'
|
|
11
|
+
|
|
12
|
+
# optional comment or whitespace
|
|
13
|
+
WS = %r((?:\s|//.*?\n|/[*].*?[*]/)+)
|
|
14
|
+
ID = /[a-zA-Z_][a-zA-Z0-9_]*/
|
|
15
|
+
RT = /(?:(?:[a-z_]\s*(?:\[[0-9, ]\])?)\s+)*/
|
|
16
|
+
OP = Regexp.new([
|
|
17
|
+
# Assigment operators
|
|
18
|
+
"=",
|
|
19
|
+
|
|
20
|
+
# Comparison operators
|
|
21
|
+
"<", "<=", ">", ">=", "==", "!=",
|
|
22
|
+
|
|
23
|
+
# Boolean operators
|
|
24
|
+
"!", "&&", "\\|\\|",
|
|
25
|
+
|
|
26
|
+
# Real-valued arithmetic operators
|
|
27
|
+
"\\+", "-", "\\*", "/", "\\^",
|
|
28
|
+
|
|
29
|
+
# Transposition operator
|
|
30
|
+
"'",
|
|
31
|
+
|
|
32
|
+
# Elementwise functions
|
|
33
|
+
"\\.\\+", "\\.-", "\\.\\*", "\\./", "\\.\\^",
|
|
34
|
+
|
|
35
|
+
# Matrix division operators
|
|
36
|
+
"\\\\",
|
|
37
|
+
|
|
38
|
+
# Compound assigment operators
|
|
39
|
+
"\\+=", "-=", "\\*=", "/=", "\\.\\*=", "\\./=",
|
|
40
|
+
|
|
41
|
+
# Sampling
|
|
42
|
+
"~",
|
|
43
|
+
|
|
44
|
+
# Conditional operator
|
|
45
|
+
"\\?", ":"
|
|
46
|
+
].join("|"))
|
|
47
|
+
|
|
48
|
+
def self.keywords
|
|
49
|
+
@keywords ||= Set.new %w(
|
|
50
|
+
if else while for break continue print reject return
|
|
51
|
+
)
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def self.types
|
|
55
|
+
@types ||= Set.new %w(
|
|
56
|
+
int real vector ordered positive_ordered simplex unit_vector
|
|
57
|
+
row_vector matrix cholesky_factor_corr cholesky_factor_cov corr_matrix
|
|
58
|
+
cov_matrix data void complex array
|
|
59
|
+
)
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
def self.reserved
|
|
63
|
+
@reserved ||= Set.new [
|
|
64
|
+
# Reserved words from Stan language
|
|
65
|
+
"for", "in", "while", "repeat", "until", "if", "then", "else", "true",
|
|
66
|
+
"false", "target", "functions", "model", "data", "parameters",
|
|
67
|
+
"quantities", "transformed", "generated",
|
|
68
|
+
|
|
69
|
+
# Reserved names from Stan implementation
|
|
70
|
+
"var", "fvar", "STAN_MAJOR", "STAN_MINOR", "STAN_PATCH",
|
|
71
|
+
"STAN_MATH_MAJOR", "STAN_MATH_MINOR", "STAN_MATH_PATCH",
|
|
72
|
+
|
|
73
|
+
# Reserved names from C++
|
|
74
|
+
"alignas", "alignof", "and", "and_eq", "asm", "auto", "bitand",
|
|
75
|
+
"bitor", "bool", "break", "case", "catch", "char", "char16_t",
|
|
76
|
+
"char32_t", "class", "compl", "const", "constexpr", "const_cast",
|
|
77
|
+
"continue", "decltype", "default", "delete", "do", "double",
|
|
78
|
+
"dynamic_cast", "enum", "explicit", "export", "extern", "float", "friend", "goto", "inline", "int",
|
|
79
|
+
"long", "mutable", "namespace", "new", "noexcept", "not", "not_eq",
|
|
80
|
+
"nullptr", "operator", "or", "or_eq", "private", "protected",
|
|
81
|
+
"public", "register", "reinterpret_cast", "return", "short", "signed",
|
|
82
|
+
"sizeof", "static", "static_assert", "static_cast", "struct",
|
|
83
|
+
"switch", "template", "this", "thread_local", "throw", "try",
|
|
84
|
+
"typedef", "typeid", "typename", "union", "unsigned", "using",
|
|
85
|
+
"virtual", "void", "volatile", "wchar_t", "xor", "xor_eq"
|
|
86
|
+
]
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
def self.builtin_functions
|
|
90
|
+
@builtin_functions ||= Set.new [
|
|
91
|
+
# Integer-Valued Basic Functions
|
|
92
|
+
|
|
93
|
+
## Absolute functions
|
|
94
|
+
"abs", "int_step",
|
|
95
|
+
|
|
96
|
+
## Bound functions
|
|
97
|
+
"min", "max",
|
|
98
|
+
|
|
99
|
+
## Size functions
|
|
100
|
+
"size",
|
|
101
|
+
|
|
102
|
+
# Real-Valued Basic Functions
|
|
103
|
+
|
|
104
|
+
## Log probability function
|
|
105
|
+
"target", "get_lp",
|
|
106
|
+
|
|
107
|
+
## Logical functions
|
|
108
|
+
"step", "is_inf", "is_nan",
|
|
109
|
+
|
|
110
|
+
## Step-like functions
|
|
111
|
+
"fabs", "fdim", "fmin", "fmax", "fmod", "floor", "ceil", "round",
|
|
112
|
+
"trunc",
|
|
113
|
+
|
|
114
|
+
## Power and logarithm functions
|
|
115
|
+
"sqrt", "cbrt", "square", "exp", "exp2", "log", "log2", "log10",
|
|
116
|
+
"pow", "inv", "inv_sqrt", "inv_square",
|
|
117
|
+
|
|
118
|
+
## Trigonometric functions
|
|
119
|
+
"hypot", "cos", "sin", "tan", "acos", "asin", "atan", "atan2",
|
|
120
|
+
|
|
121
|
+
## Hyperbolic trigonometric functions
|
|
122
|
+
"cosh", "sinh", "tanh", "acosh", "asinh", "atanh",
|
|
123
|
+
|
|
124
|
+
## Link functions
|
|
125
|
+
"logit", "inv_logit", "inv_cloglog",
|
|
126
|
+
|
|
127
|
+
## Probability-related functions
|
|
128
|
+
"erf", "erfc", "Phi", "inv_Phi", "Phi_approx", "binary_log_loss",
|
|
129
|
+
"owens_t",
|
|
130
|
+
|
|
131
|
+
## Combinatorial functions
|
|
132
|
+
"beta", "inc_beta", "lbeta", "tgamma", "lgamma", "digamma",
|
|
133
|
+
"trigamma", "lmgamma", "gamma_p", "gamma_q",
|
|
134
|
+
"binomial_coefficient_log", "choose", "bessel_first_kind",
|
|
135
|
+
"bessel_second_kind", "modified_bessel_first_kind",
|
|
136
|
+
"log_modified_bessel_first_kind", "modified_bessel_second_kind",
|
|
137
|
+
"falling_factorial", "lchoose", "log_falling_factorial",
|
|
138
|
+
"rising_factorial", "log_rising_factorial",
|
|
139
|
+
|
|
140
|
+
## Composed functions
|
|
141
|
+
"expm1", "fma", "multiply_log", "ldexp", "lmultiply", "log1p",
|
|
142
|
+
"log1m", "log1p_exp", "log1m_exp", "log_diff_exp", "log_mix",
|
|
143
|
+
"log_sum_exp", "log_inv_logit", "log_inv_logit_diff",
|
|
144
|
+
"log1m_inv_logit",
|
|
145
|
+
|
|
146
|
+
## Special functions
|
|
147
|
+
"lambert_w0", "lambert_wm1",
|
|
148
|
+
|
|
149
|
+
# Complex-Valued Basic Functions
|
|
150
|
+
|
|
151
|
+
## Complex constructors and accessors
|
|
152
|
+
"to_complex", "get_real", "get_imag",
|
|
153
|
+
|
|
154
|
+
## Complex special functions
|
|
155
|
+
"arg", "norm", "conj", "proj", "polar",
|
|
156
|
+
|
|
157
|
+
# Array Operations
|
|
158
|
+
|
|
159
|
+
## Reductions
|
|
160
|
+
"sum", "prod", "mean", "variance", "sd", "distance",
|
|
161
|
+
"squared_distance", "quantile",
|
|
162
|
+
|
|
163
|
+
## Array size and dimension function
|
|
164
|
+
"dims", "num_elements",
|
|
165
|
+
|
|
166
|
+
## Array broadcasting
|
|
167
|
+
"rep_array",
|
|
168
|
+
|
|
169
|
+
## Array concatenation
|
|
170
|
+
"append_array",
|
|
171
|
+
|
|
172
|
+
## Sorting functions
|
|
173
|
+
"sort_asc", "sort_desc", "sort_indices_asc", "sort_indices_desc",
|
|
174
|
+
"rank",
|
|
175
|
+
|
|
176
|
+
## Reversing functions
|
|
177
|
+
"reverse", "rows", "cols",
|
|
178
|
+
|
|
179
|
+
## Dot products and specialized products
|
|
180
|
+
"dot_product", "columns_dot_product", "rows_dot_product", "dot_self",
|
|
181
|
+
"columns_dot_self", "rows_dot_self", "tcrossprod", "crossprod",
|
|
182
|
+
"quad_form", "quad_form_diag", "quad_form_sym", "trace_quad_form",
|
|
183
|
+
"trace_gen_quad_form", "multiply_lower_tri_self_transpose",
|
|
184
|
+
"diag_pre_multiply", "diag_post_multiply",
|
|
185
|
+
|
|
186
|
+
## Broadcast functions
|
|
187
|
+
"rep_vector", "rep_row_vector", "rep_matrix",
|
|
188
|
+
"symmetrize_from_lower_tri",
|
|
189
|
+
|
|
190
|
+
## Diagonal matrix functions
|
|
191
|
+
"add_diag", "diagonal", "diag_matrix", "identity_matrix",
|
|
192
|
+
|
|
193
|
+
## Container construction functions
|
|
194
|
+
"linspaced_array", "linspaced_int_array", "linspaced_vector",
|
|
195
|
+
"linspaced_row_vector", "one_hot_int_array", "one_hot_array",
|
|
196
|
+
"one_hot_vector", "one_hot_row_vector", "ones_int_array",
|
|
197
|
+
"ones_array", "ones_vector", "ones_row_vector", "zeros_int_array",
|
|
198
|
+
"zeros_array", "zeros_vector", "zeros_row_vector", "uniform_simplex",
|
|
199
|
+
|
|
200
|
+
## Slicing and blocking functions
|
|
201
|
+
"col", "row", "block", "sub_col", "sub_row", "head", "tail",
|
|
202
|
+
"segment",
|
|
203
|
+
|
|
204
|
+
## Matrix concatenation
|
|
205
|
+
"append_col", "append_row",
|
|
206
|
+
|
|
207
|
+
## Special matrix functions
|
|
208
|
+
"softmax", "log_softmax", "cumulative_sum",
|
|
209
|
+
|
|
210
|
+
## Covariance functions
|
|
211
|
+
"cov_exp_quad",
|
|
212
|
+
|
|
213
|
+
## Linear algebra functions and solvers
|
|
214
|
+
"mdivide_left_tri_low", "mdivide_right_tri_low", "mdivide_left_spd",
|
|
215
|
+
"mdivide_right_spd", "matrix_exp", "matrix_exp_multiply",
|
|
216
|
+
"scale_matrix_exp_multiply", "matrix_power", "trace", "determinant",
|
|
217
|
+
"log_determinant", "inverse", "inverse_spd", "chol2inv",
|
|
218
|
+
"generalized_inverse", "eigenvalues_sym", "eigenvectors_sym",
|
|
219
|
+
"qr_thin_Q", "qr_thin_R", "qr_Q", "qr_R", "cholseky_decompose",
|
|
220
|
+
"singular_values", "svd_U", "svd_V",
|
|
221
|
+
|
|
222
|
+
# Sparse Matrix Operations
|
|
223
|
+
|
|
224
|
+
## Conversion functions
|
|
225
|
+
"csr_extract_w", "csr_extract_v", "csr_extract_u",
|
|
226
|
+
"csr_to_dense_matrix",
|
|
227
|
+
|
|
228
|
+
## Sparse matrix arithmetic
|
|
229
|
+
"csr_matrix_times_vector",
|
|
230
|
+
|
|
231
|
+
# Mixed Operations
|
|
232
|
+
"to_matrix", "to_vector", "to_row_vector", "to_array_2d",
|
|
233
|
+
"to_array_1d",
|
|
234
|
+
|
|
235
|
+
# Higher-Order Functions
|
|
236
|
+
|
|
237
|
+
## Algebraic equation solver
|
|
238
|
+
"algebra_solver", "algebra_solver_newton",
|
|
239
|
+
|
|
240
|
+
## Ordinary differential equation
|
|
241
|
+
"ode_rk45", "ode_rk45_tol", "ode_ckrk", "ode_ckrk_tol", "ode_adams",
|
|
242
|
+
"ode_adams_tol", "ode_bdf", "ode_bdf_tol", "ode_adjoint_tol_ctl",
|
|
243
|
+
|
|
244
|
+
## 1D integrator
|
|
245
|
+
"integrate_1d",
|
|
246
|
+
|
|
247
|
+
## Reduce-sum function
|
|
248
|
+
"reduce_sum", "reduce_sum_static",
|
|
249
|
+
|
|
250
|
+
## Map-rect function
|
|
251
|
+
"map_rect",
|
|
252
|
+
|
|
253
|
+
# Deprecated Functions
|
|
254
|
+
"integrate_ode_rk45", "integrate_ode", "integrate_ode_adams",
|
|
255
|
+
"integrate_ode_bdf",
|
|
256
|
+
|
|
257
|
+
# Hidden Markov Models
|
|
258
|
+
"hmm_marginal", "hmm_latent_rng", "hmm_hidden_state_prob"
|
|
259
|
+
]
|
|
260
|
+
end
|
|
261
|
+
|
|
262
|
+
def self.distributions
|
|
263
|
+
@distributions ||= Set.new(
|
|
264
|
+
[
|
|
265
|
+
# Discrete Distributions
|
|
266
|
+
|
|
267
|
+
## Binary Distributions
|
|
268
|
+
"bernoulli", "bernoulli_logit", "bernoulli_logit_glm",
|
|
269
|
+
|
|
270
|
+
## Bounded Discrete Distributions
|
|
271
|
+
"binomial", "binomial_logit", "beta_binomial", "hypergeometric",
|
|
272
|
+
"categorical", "categorical_logit_glm", "discrete_range",
|
|
273
|
+
"ordered_logistic", "ordered_logistic_glm", "ordered_probit",
|
|
274
|
+
|
|
275
|
+
## Unbounded Discrete Distributions
|
|
276
|
+
"neg_binomial", "neg_binomial_2", "neg_binomial_2_log",
|
|
277
|
+
"neg_binomial_2_log_glm", "poisson", "poisson_log",
|
|
278
|
+
"poisson_log_glm",
|
|
279
|
+
|
|
280
|
+
## Multivariate Discrete Distributions
|
|
281
|
+
"multinomial", "multinomial_logit",
|
|
282
|
+
|
|
283
|
+
# Continuous Distributions
|
|
284
|
+
|
|
285
|
+
## Unbounded Continuous Distributions
|
|
286
|
+
"normal", "std_normal", "normal_id_glm", "exp_mod_normal",
|
|
287
|
+
"skew_normal", "student_t", "cauchy", "double_exponential",
|
|
288
|
+
"logistic", "gumbel", "skew_double_exponential",
|
|
289
|
+
|
|
290
|
+
## Positive Continuous Distributions
|
|
291
|
+
"lognormal", "chi_square", "inv_chi_square",
|
|
292
|
+
"scaled_inv_chi_square", "exponential", "gamma", "inv_gamma",
|
|
293
|
+
"weibull", "frechet", "rayleigh",
|
|
294
|
+
|
|
295
|
+
## Positive Lower-Bounded Distributions
|
|
296
|
+
"pareto", "pareto_type_2", "wiener",
|
|
297
|
+
|
|
298
|
+
## Continuous Distributions on [0, 1]
|
|
299
|
+
"beta", "beta_proportion",
|
|
300
|
+
|
|
301
|
+
## Circular Distributions
|
|
302
|
+
"von_mises",
|
|
303
|
+
|
|
304
|
+
## Bounded Continuous Distributions
|
|
305
|
+
"uniform",
|
|
306
|
+
|
|
307
|
+
## Distributions over Unbounded Vectors
|
|
308
|
+
"multi_normal", "multi_normal_prec", "multi_normal_cholesky",
|
|
309
|
+
"multi_gp", "multi_gp_cholesky", "multi_student_t",
|
|
310
|
+
"gaussian_dlm_obs",
|
|
311
|
+
|
|
312
|
+
## Simplex Distributions
|
|
313
|
+
"dirichlet",
|
|
314
|
+
|
|
315
|
+
## Correlation Matrix Distributions
|
|
316
|
+
"lkj_corr", "lkj_corr_cholesky",
|
|
317
|
+
|
|
318
|
+
## Covariance Matrix Distributions
|
|
319
|
+
"wishart", "inv_wishart"
|
|
320
|
+
].product([
|
|
321
|
+
"", "_lpmf", "_lupmf", "_lpdf", "_lcdf", "_lccdf", "_rng", "_log",
|
|
322
|
+
"_cdf_log", "_ccdf_log"
|
|
323
|
+
]).map {|s| "#{s[0]}#{s[1]}"}
|
|
324
|
+
)
|
|
325
|
+
end
|
|
326
|
+
|
|
327
|
+
def self.constants
|
|
328
|
+
@constants ||= Set.new [
|
|
329
|
+
# Mathematical constants
|
|
330
|
+
"pi", "e", "sqrt2", "log2", "log10",
|
|
331
|
+
|
|
332
|
+
# Special values
|
|
333
|
+
"not_a_number", "positive_infinity", "negative_infinity",
|
|
334
|
+
"machine_precision"
|
|
335
|
+
]
|
|
336
|
+
end
|
|
337
|
+
|
|
338
|
+
state :root do
|
|
339
|
+
mixin :whitespace
|
|
340
|
+
rule %r/#include/, Comment::Preproc, :include
|
|
341
|
+
rule %r/#.*$/, Generic::Deleted
|
|
342
|
+
rule %r(
|
|
343
|
+
functions
|
|
344
|
+
|(?:transformed\s+)?data
|
|
345
|
+
|(?:transformed\s+)?parameters
|
|
346
|
+
|model
|
|
347
|
+
|generated\s+quantities
|
|
348
|
+
)x, Name::Namespace
|
|
349
|
+
rule %r(\{), Punctuation, :bracket_scope
|
|
350
|
+
mixin :scope
|
|
351
|
+
end
|
|
352
|
+
|
|
353
|
+
state :include do
|
|
354
|
+
rule %r((\s+)(\S+)(\s*)) do |m|
|
|
355
|
+
token Text, m[1]
|
|
356
|
+
token Comment::PreprocFile, m[2]
|
|
357
|
+
token Text, m[3]
|
|
358
|
+
pop!
|
|
359
|
+
end
|
|
360
|
+
end
|
|
361
|
+
|
|
362
|
+
state :whitespace do
|
|
363
|
+
rule %r(\n+)m, Text
|
|
364
|
+
rule %r(//(\\.|.)*?$), Comment::Single
|
|
365
|
+
mixin :inline_whitespace
|
|
366
|
+
end
|
|
367
|
+
|
|
368
|
+
state :inline_whitespace do
|
|
369
|
+
rule %r([ \t\r]+), Text
|
|
370
|
+
rule %r(/(\\\n)?[*].*?[*](\\\n)?/)m, Comment::Multiline
|
|
371
|
+
end
|
|
372
|
+
|
|
373
|
+
state :statements do
|
|
374
|
+
mixin :whitespace
|
|
375
|
+
rule %r/#include/, Comment::Preproc, :include
|
|
376
|
+
rule %r/#.*$/, Generic::Deleted
|
|
377
|
+
rule %r("), Str, :string
|
|
378
|
+
rule %r(
|
|
379
|
+
(
|
|
380
|
+
((\d+[.]\d*|[.]?\d+)e[+-]?\d+|\d*[.]\d+|\d+)
|
|
381
|
+
(#{WS})[+-](#{WS})
|
|
382
|
+
((\d+[.]\d*|[.]?\d+)e[+-]?\d+|\d*[.]\d+|\d+)i
|
|
383
|
+
)
|
|
384
|
+
|((\d+[.]\d*|[.]?\d+)e[+-]?\d+|\d*[.]\d+|\d+)i
|
|
385
|
+
|((\d+[.]\d*|[.]?\d+)e[+-]?\d+|\d*[.]\d+)
|
|
386
|
+
)mx, Num::Float
|
|
387
|
+
rule %r/\d+/, Num::Integer
|
|
388
|
+
rule %r(\*/), Error
|
|
389
|
+
rule OP, Operator
|
|
390
|
+
rule %r([\[\],.;]), Punctuation
|
|
391
|
+
rule %r([|](?![|])), Punctuation
|
|
392
|
+
rule %r(T\b), Keyword::Reserved
|
|
393
|
+
rule %r((lower|upper)\b), Name::Attribute
|
|
394
|
+
rule ID do |m|
|
|
395
|
+
name = m[0]
|
|
396
|
+
|
|
397
|
+
if self.class.keywords.include? name
|
|
398
|
+
token Keyword
|
|
399
|
+
elsif self.class.types.include? name
|
|
400
|
+
token Keyword::Type
|
|
401
|
+
elsif self.class.reserved.include? name
|
|
402
|
+
token Keyword::Reserved
|
|
403
|
+
else
|
|
404
|
+
token Name::Variable
|
|
405
|
+
end
|
|
406
|
+
end
|
|
407
|
+
end
|
|
408
|
+
|
|
409
|
+
state :scope do
|
|
410
|
+
mixin :whitespace
|
|
411
|
+
rule %r(
|
|
412
|
+
(#{RT}) # Return type
|
|
413
|
+
(#{ID}) # Function name
|
|
414
|
+
(?=\([^;]*?\)) # Signature or arguments
|
|
415
|
+
)mx do |m|
|
|
416
|
+
recurse m[1]
|
|
417
|
+
|
|
418
|
+
name = m[2]
|
|
419
|
+
if self.class.builtin_functions.include? name
|
|
420
|
+
token Name::Builtin, name
|
|
421
|
+
elsif self.class.distributions.include? name
|
|
422
|
+
token Name::Builtin, name
|
|
423
|
+
elsif self.class.constants.include? name
|
|
424
|
+
token Keyword::Constant
|
|
425
|
+
else
|
|
426
|
+
token Name::Function, name
|
|
427
|
+
end
|
|
428
|
+
end
|
|
429
|
+
rule %r(\{), Punctuation, :bracket_scope
|
|
430
|
+
rule %r(\(), Punctuation, :parens_scope
|
|
431
|
+
mixin :statements
|
|
432
|
+
end
|
|
433
|
+
|
|
434
|
+
state :bracket_scope do
|
|
435
|
+
mixin :scope
|
|
436
|
+
rule %r(\}), Punctuation, :pop!
|
|
437
|
+
end
|
|
438
|
+
|
|
439
|
+
state :parens_scope do
|
|
440
|
+
mixin :scope
|
|
441
|
+
rule %r(\)), Punctuation, :pop!
|
|
442
|
+
end
|
|
443
|
+
end
|
|
444
|
+
end
|
|
445
|
+
end
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module Rouge
|
|
5
|
+
module Lexers
|
|
6
|
+
class Stata < RegexLexer
|
|
7
|
+
title "Stata"
|
|
8
|
+
desc "The Stata programming language (www.stata.com)"
|
|
9
|
+
tag 'stata'
|
|
10
|
+
filenames '*.do', '*.ado'
|
|
11
|
+
mimetypes 'application/x-stata', 'text/x-stata'
|
|
12
|
+
|
|
13
|
+
###
|
|
14
|
+
# Stata reference manual is available online at: https://www.stata.com/features/documentation/
|
|
15
|
+
###
|
|
16
|
+
|
|
17
|
+
# Partial list of common programming and estimation commands, as of Stata 16
|
|
18
|
+
# Note: not all abbreviations are included
|
|
19
|
+
KEYWORDS = %w(
|
|
20
|
+
do run include clear assert set mata log
|
|
21
|
+
by bys bysort cap capt capture char class classutil which cdir confirm new existence creturn
|
|
22
|
+
_datasignature discard di dis disp displ displa display ereturn error _estimates exit file open read write seek close query findfile fvexpand
|
|
23
|
+
gettoken java home heapmax java_heapmax icd9 icd9p icd10 icd10cm icd10pcs initialize javacall levelsof
|
|
24
|
+
tempvar tempname tempfile macro shift uniq dups retokenize clean sizeof posof
|
|
25
|
+
makecns matcproc marksample mark markout markin svymarkout matlist
|
|
26
|
+
accum define dissimilarity eigenvalues get rowjoinbyname rownames score svd symeigen dir list ren rename
|
|
27
|
+
more pause plugin call postfile _predict preserve restore program define drop end python qui quietly noi noisily _return return _rmcoll rmsg _robust
|
|
28
|
+
serset locale_functions locale_ui signestimationsample checkestimationsample sleep syntax sysdir adopath adosize
|
|
29
|
+
tabdisp timer tokenize trace unab unabcmd varabbrev version viewsource
|
|
30
|
+
window fopen fsave manage menu push stopbox
|
|
31
|
+
net from cd link search install sj stb ado update uninstall pwd ssc ls
|
|
32
|
+
using insheet outsheet mkmat svmat sum summ summarize
|
|
33
|
+
graph gr_edit twoway histogram kdensity spikeplot
|
|
34
|
+
mi miss missing var varname order compress append
|
|
35
|
+
gen gene gener genera generat generate egen replace duplicates
|
|
36
|
+
estimates nlcom lincom test testnl predict suest
|
|
37
|
+
_regress reg regr regre regres regress probit logit ivregress logistic svy gmm ivprobit ivtobit
|
|
38
|
+
bsample assert codebook collapse compare contract copy count cross datasignature d ds desc describe destring tostring
|
|
39
|
+
drawnorm edit encode decode erase expand export filefilter fillin format frame frget frlink gsort
|
|
40
|
+
import dbase delimited excel fred haver sas sasxport5 sasxport8 spss infile infix input insobs inspect ipolate isid
|
|
41
|
+
joinby label language labelbook lookfor memory mem merge mkdir mvencode notes obs odbc order outfile
|
|
42
|
+
pctile xtile _pctile putmata range recast recode rename group reshape rm rmdir sample save saveold separate shell snapshot sort split splitsample stack statsby sysuse
|
|
43
|
+
type unicode use varmanage vl webuse xpose zipfile
|
|
44
|
+
number keep tab table tabulate stset stcox tsset xtset
|
|
45
|
+
)
|
|
46
|
+
|
|
47
|
+
# Complete list of functions by name, as of Stata 16
|
|
48
|
+
PRIMITIVE_FUNCTIONS = %w(
|
|
49
|
+
abbrev abs acos acosh age age_frac asin asinh atan atan2 atanh autocode
|
|
50
|
+
betaden binomial binomialp binomialtail binormal birthday bofd byteorder
|
|
51
|
+
c _caller cauchy cauchyden cauchytail Cdhms ceil char chi2 chi2den chi2tail Chms
|
|
52
|
+
chop cholesky clip Clock clock clockdiff cloglog Cmdyhms Cofc cofC Cofd cofd coleqnumb
|
|
53
|
+
collatorlocale collatorversion colnfreeparms colnumb colsof comb cond corr cos cosh
|
|
54
|
+
daily date datediff datediff_frac day det dgammapda dgammapdada dgammapdadx dgammapdxdx dhms
|
|
55
|
+
diag diag0cnt digamma dofb dofC dofc dofh dofm dofq dofw dofy dow doy dunnettprob e el epsdouble
|
|
56
|
+
epsfloat exp expm1 exponential exponentialden exponentialtail
|
|
57
|
+
F Fden fileexists fileread filereaderror filewrite float floor fmtwidth frval _frval Ftail
|
|
58
|
+
fammaden gammap gammaptail get hadamard halfyear halfyearly has_eprop hh hhC hms hofd hours
|
|
59
|
+
hypergeometric hypergeometricp
|
|
60
|
+
I ibeta ibetatail igaussian igaussianden igaussiantail indexnot inlist inrange int inv invbinomial invbinomialtail
|
|
61
|
+
invcauchy invcauchytail invchi2 invchi2tail invcloglog invdunnettprob invexponential invexponentialtail invF
|
|
62
|
+
invFtail invgammap invgammaptail invibeta invibetatail invigaussian invigaussiantail invlaplace invlaplacetail
|
|
63
|
+
invlogistic invlogistictail invlogit invnbinomial invnbinomialtail invnchi2 invnchi2tail invnF invnFtail invnibeta invnormal invnt invnttail
|
|
64
|
+
invpoisson invpoissontail invsym invt invttail invtukeyprob invweibull invweibullph invweibullphtail invweibulltail irecode islepyear issymmetric
|
|
65
|
+
J laplace laplaceden laplacetail ln ln1m ln1p lncauchyden lnfactorial lngamma lnigammaden lnigaussianden lniwishartden lnlaplaceden lnmvnormalden
|
|
66
|
+
lnnormal lnnormalden lnnormalden lnnormalden lnwishartden log log10 log1m log1p logistic logisticden logistictail logit
|
|
67
|
+
matmissing matrix matuniform max maxbyte maxdouble maxfloat maxint maxlong mdy mdyhms mi min minbyte mindouble minfloat minint minlong minutes
|
|
68
|
+
missing mm mmC mod mofd month monthly mreldif msofhours msofminutes msofseconds
|
|
69
|
+
nbetaden nbinomial nbinomialp nbinomialtail nchi2 nchi2den nchi2tail nextbirthday nextleapyear nF nFden nFtail nibeta
|
|
70
|
+
normal normalden npnchi2 npnF npnt nt ntden nttail nullmat
|
|
71
|
+
plural poisson poissonp poissontail previousbirthday previousleapyear qofd quarter quarterly r rbeta rbinomial rcauchy rchi2 recode
|
|
72
|
+
real regexm regexr regexs reldif replay return rexponential rgamma rhypergeometric rigaussian rlaplace rlogistic rnormal
|
|
73
|
+
round roweqnumb rownfreeparms rownumb rowsof rpoisson rt runiform runiformint rweibull rweibullph
|
|
74
|
+
s scalar seconds sign sin sinh smallestdouble soundex soundex_nara sqrt ss ssC strcat strdup string stritrim strlen strlower
|
|
75
|
+
strltrim strmatch strofreal strpos strproper strreverse strrpos strrtrim strtoname strtrim strupper subinstr subinword substr sum sweep
|
|
76
|
+
t tan tanh tC tc td tden th tin tm tobytes tq trace trigamma trunc ttail tukeyprob tw twithin
|
|
77
|
+
uchar udstrlen udsubstr uisdigit uisletter uniform ustrcompare ustrcompareex ustrfix ustrfrom ustrinvalidcnt ustrleft ustrlen ustrlower
|
|
78
|
+
ustrltrim ustrnormalize ustrpos ustrregexm ustrregexra ustrregexrf ustrregexs ustrreverse ustrright ustrrpos ustrrtrim ustrsortkey
|
|
79
|
+
ustrsortkeyex ustrtitle ustrto ustrtohex ustrtoname ustrtrim ustrunescape ustrupper ustrword ustrwordcount usubinstr usubstr
|
|
80
|
+
vec vecdiag week weekly weibull weibullden weibullph weibullphden weibullphtail weibulltail wofd word wordbreaklocale wordcount
|
|
81
|
+
year yearly yh ym yofd yq yw
|
|
82
|
+
)
|
|
83
|
+
|
|
84
|
+
# Note: types `str1-str2045` handled separately below
|
|
85
|
+
def self.type_keywords
|
|
86
|
+
@type_keywords ||= Set.new %w(byte int long float double str strL numeric string integer scalar matrix local global numlist varlist newlist)
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
# Stata commands used with braces. Includes all valid abbreviations for 'forvalues'.
|
|
90
|
+
def self.reserved_keywords
|
|
91
|
+
@reserved_keywords ||= Set.new %w(if else foreach forv forva forval forvalu forvalue forvalues to while in of continue break nobreak)
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
###
|
|
95
|
+
# Lexer state and rules
|
|
96
|
+
###
|
|
97
|
+
state :root do
|
|
98
|
+
|
|
99
|
+
# Pre-processor commands: #
|
|
100
|
+
rule %r/^\s*#.*$/, Comment::Preproc
|
|
101
|
+
|
|
102
|
+
# Hashbang comments: *!
|
|
103
|
+
rule %r/^\*!.*$/, Comment::Hashbang
|
|
104
|
+
|
|
105
|
+
# Single-line comment: *
|
|
106
|
+
rule %r/^\s*\*.*$/, Comment::Single
|
|
107
|
+
|
|
108
|
+
# Keywords: recognize only when they are the first word
|
|
109
|
+
rule %r/^\s*(#{KEYWORDS.join('|')})\b/, Keyword
|
|
110
|
+
|
|
111
|
+
# Whitespace. Classify `\n` as `Text` to avoid interference with `Comment` and `Keyword` above
|
|
112
|
+
rule(/[ \t]+/, Text::Whitespace)
|
|
113
|
+
rule(/[\n\r]+/, Text)
|
|
114
|
+
|
|
115
|
+
# In-line comment: //
|
|
116
|
+
rule %r/\/\/.*?$/, Comment::Single
|
|
117
|
+
|
|
118
|
+
# Multi-line comment: /* and */
|
|
119
|
+
rule %r(/(\\\n)?[*].*?[*](\\\n)?/)m, Comment::Multiline
|
|
120
|
+
|
|
121
|
+
# Strings indicated by compound double-quotes (`""') and double-quotes ("")
|
|
122
|
+
rule %r/`"(\\.|.)*?"'/, Str::Double
|
|
123
|
+
rule %r/"(\\.|.)*?"/, Str::Double
|
|
124
|
+
|
|
125
|
+
# Format locals (`') and globals ($) as strings
|
|
126
|
+
rule %r/`(\\.|.)*?'/, Str::Double
|
|
127
|
+
rule %r/(?<!\w)\$\w+/, Str::Double
|
|
128
|
+
|
|
129
|
+
# Display formats
|
|
130
|
+
rule %r/\%\S+/, Name::Property
|
|
131
|
+
|
|
132
|
+
# Additional string types: str1-str2045
|
|
133
|
+
rule %r/\bstr(204[0-5]|20[0-3][0-9]|[01][0-9][0-9][0-9]|[0-9][0-9][0-9]|[0-9][0-9]|[1-9])\b/, Keyword::Type
|
|
134
|
+
|
|
135
|
+
# Only recognize primitive functions when they are actually used as a function call, i.e. followed by an opening parenthesis
|
|
136
|
+
# `Name::Builtin` would be more logical, but is not usually highlighted, so use `Name::Function` instead
|
|
137
|
+
rule %r/\b(#{PRIMITIVE_FUNCTIONS.join('|')})(?=\()/, Name::Function
|
|
138
|
+
|
|
139
|
+
# Matrix operator `..` (declare here instead of with other operators, in order to avoid conflict with numbers below)
|
|
140
|
+
rule %r/\.\.(?=.*\])/, Operator
|
|
141
|
+
|
|
142
|
+
# Numbers
|
|
143
|
+
rule %r/[+-]?(\d+([.]\d+)?|[.]\d+)([eE][+-]?\d+)?/, Num
|
|
144
|
+
|
|
145
|
+
# Factor variable and time series operators
|
|
146
|
+
rule %r/\b[ICOicoLFDSlfds]\w*\./, Operator
|
|
147
|
+
rule %r/\b[ICOicoLFDSlfds]\w*(?=\(.*\)\.)/, Operator
|
|
148
|
+
|
|
149
|
+
rule %r/\w+/ do |m|
|
|
150
|
+
if self.class.reserved_keywords.include? m[0]
|
|
151
|
+
token Keyword::Reserved
|
|
152
|
+
elsif self.class.type_keywords.include? m[0]
|
|
153
|
+
token Keyword::Type
|
|
154
|
+
else
|
|
155
|
+
token Name
|
|
156
|
+
end
|
|
157
|
+
end
|
|
158
|
+
|
|
159
|
+
rule %r/[\[\]{}();,]/, Punctuation
|
|
160
|
+
|
|
161
|
+
rule %r([-<>?*+'^/\\!#.=~:&|]), Operator
|
|
162
|
+
end
|
|
163
|
+
end
|
|
164
|
+
end
|
|
165
|
+
end
|