nano-max-hub 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-max-hub.gemspec +12 -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 +579 -0
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module Rouge
|
|
5
|
+
module Lexers
|
|
6
|
+
class J < RegexLexer
|
|
7
|
+
title 'J'
|
|
8
|
+
desc "The J programming language (jsoftware.com)"
|
|
9
|
+
tag 'j'
|
|
10
|
+
filenames '*.ijs', '*.ijt'
|
|
11
|
+
|
|
12
|
+
# For J-specific terms we use, see:
|
|
13
|
+
# https://code.jsoftware.com/wiki/Vocabulary/AET
|
|
14
|
+
# https://code.jsoftware.com/wiki/Vocabulary/Glossary
|
|
15
|
+
|
|
16
|
+
# https://code.jsoftware.com/wiki/Vocabulary/PartsOfSpeech
|
|
17
|
+
def self.token_map
|
|
18
|
+
@token_map ||= {
|
|
19
|
+
noun: Keyword::Constant,
|
|
20
|
+
verb: Name::Function,
|
|
21
|
+
modifier: Operator,
|
|
22
|
+
name: Name,
|
|
23
|
+
param: Name::Builtin::Pseudo,
|
|
24
|
+
other: Punctuation,
|
|
25
|
+
nil => Error,
|
|
26
|
+
}
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# https://code.jsoftware.com/wiki/NuVoc
|
|
30
|
+
def self.inflection_list
|
|
31
|
+
@inflection_list ||= ['', '.', ':', '..', '.:', ':.', '::']
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def self.primitive_table
|
|
35
|
+
@primitive_table ||= Hash.new([:name].freeze).tap do |h|
|
|
36
|
+
{
|
|
37
|
+
'()' => [:other],
|
|
38
|
+
'=' => [:verb, :other, :other],
|
|
39
|
+
'<>+-*%$|,#' => [:verb, :verb, :verb],
|
|
40
|
+
'^' => [:verb, :verb, :modifier],
|
|
41
|
+
'~"' => [:modifier, :verb, :verb],
|
|
42
|
+
'.:@' => [:modifier, :modifier, :modifier],
|
|
43
|
+
';' => [:verb, :modifier, :verb],
|
|
44
|
+
'!' => [:verb, :modifier, :modifier],
|
|
45
|
+
'/\\' => [:modifier, :modifier, :verb],
|
|
46
|
+
'[' => [:verb, nil, :verb],
|
|
47
|
+
']' => [:verb],
|
|
48
|
+
'{' => [:verb, :verb, :verb, nil, nil, nil, :verb],
|
|
49
|
+
'}' => [:modifier, :verb, :verb, nil, nil, nil, :modifier],
|
|
50
|
+
'`' => [:modifier, nil, :modifier],
|
|
51
|
+
'&' => [:modifier, :modifier, :modifier, nil, :modifier],
|
|
52
|
+
'?' => [:verb, :verb],
|
|
53
|
+
'a' => [:name, :noun, :noun],
|
|
54
|
+
'ACeEIjorv' => [:name, :verb],
|
|
55
|
+
'bdfHMT' => [:name, :modifier],
|
|
56
|
+
'Dt' => [:name, :modifier, :modifier],
|
|
57
|
+
'F' => [:name, :modifier, :modifier, :modifier, :modifier,
|
|
58
|
+
:modifier, :modifier],
|
|
59
|
+
'iu' => [:name, :verb, :verb],
|
|
60
|
+
'L' => [:name, :verb, :modifier],
|
|
61
|
+
'mny' => [:param],
|
|
62
|
+
'p' => [:name, :verb, :verb, :verb],
|
|
63
|
+
'qsZ' => [:name, nil, :verb],
|
|
64
|
+
'S' => [:name, nil, :modifier],
|
|
65
|
+
'u' => [:param, :verb, :verb],
|
|
66
|
+
'v' => [:param, :verb],
|
|
67
|
+
'x' => [:param, nil, :verb],
|
|
68
|
+
}.each {|k, v| k.each_char {|c| h[c] = v } }
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
def self.primitive(char, inflection)
|
|
73
|
+
i = inflection_list.index(inflection) or return Error
|
|
74
|
+
token_map[primitive_table[char][i]]
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
def self.control_words
|
|
78
|
+
@control_words ||= Set.new %w(
|
|
79
|
+
assert break case catch catchd catcht continue do else elseif end
|
|
80
|
+
fcase for if return select throw try while whilst
|
|
81
|
+
)
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
def self.control_words_id
|
|
85
|
+
@control_words_id ||= Set.new %w(for goto label)
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
state :expr do
|
|
89
|
+
rule %r/\s+/, Text
|
|
90
|
+
|
|
91
|
+
rule %r'([!-&(-/:-@\[-^`{-~]|[A-Za-z]\b)([.:]*)' do |m|
|
|
92
|
+
token J.primitive(m[1], m[2])
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
rule %r/(?:\d|_\d?):([.:]*)/ do |m|
|
|
96
|
+
token m[1].empty? ? J.token_map[:verb] : Error
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
rule %r/[\d_][\w.]*([.:]*)/ do |m|
|
|
100
|
+
token m[1].empty? ? Num : Error
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
rule %r/'/, Str::Single, :str
|
|
104
|
+
|
|
105
|
+
rule %r/NB\.(?![.:]).*/, Comment::Single
|
|
106
|
+
|
|
107
|
+
rule %r/([A-Za-z]\w*)([.:]*)/ do |m|
|
|
108
|
+
if m[2] == '.'
|
|
109
|
+
word, sep, id = m[1].partition '_'
|
|
110
|
+
list = if sep.empty?
|
|
111
|
+
J.control_words
|
|
112
|
+
elsif not id.empty?
|
|
113
|
+
J.control_words_id
|
|
114
|
+
end
|
|
115
|
+
if list and list.include? word
|
|
116
|
+
token Keyword, word + sep
|
|
117
|
+
token((word == 'for' ? Name : Name::Label), id)
|
|
118
|
+
token Keyword, m[2]
|
|
119
|
+
else
|
|
120
|
+
token Error
|
|
121
|
+
end
|
|
122
|
+
else
|
|
123
|
+
token m[2].empty? ? Name : Error
|
|
124
|
+
end
|
|
125
|
+
end
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
state :str do
|
|
129
|
+
rule %r/''/, Str::Escape
|
|
130
|
+
rule %r/[^'\n]+/, Str::Single
|
|
131
|
+
rule %r/'|$/, Str::Single, :pop!
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
start do
|
|
135
|
+
@note_next = false
|
|
136
|
+
end
|
|
137
|
+
|
|
138
|
+
state :root do
|
|
139
|
+
rule %r/\n/ do
|
|
140
|
+
token Text
|
|
141
|
+
if @note_next
|
|
142
|
+
push :note
|
|
143
|
+
@note_next = false
|
|
144
|
+
end
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
# https://code.jsoftware.com/wiki/Vocabulary/com
|
|
148
|
+
# https://code.jsoftware.com/wiki/Vocabulary/NounExplicitDefinition
|
|
149
|
+
rule %r/
|
|
150
|
+
([0-4]|13|adverb|conjunction|dyad|monad|noun|verb)([\ \t]+)
|
|
151
|
+
(def(?:ine)?\b|:)(?![.:])([\ \t]*)
|
|
152
|
+
/x do |m|
|
|
153
|
+
groups Keyword::Pseudo, Text, Keyword::Pseudo, Text
|
|
154
|
+
@def_body = (m[1] == '0' || m[1] == 'noun') ? :noun : :code
|
|
155
|
+
if m[3] == 'define'
|
|
156
|
+
# stack: [:root]
|
|
157
|
+
# or [:root, ..., :def_next]
|
|
158
|
+
pop! if stack.size > 1
|
|
159
|
+
push @def_body
|
|
160
|
+
push :def_next # [:root, ..., @def_body, :def_next]
|
|
161
|
+
else
|
|
162
|
+
push :expl_def
|
|
163
|
+
end
|
|
164
|
+
end
|
|
165
|
+
|
|
166
|
+
rule %r/^([ \t]*)(Note\b(?![.:]))([ \t\r]*)(?!=[.:]|$)/ do
|
|
167
|
+
groups Text, Name, Text
|
|
168
|
+
@note_next = true
|
|
169
|
+
end
|
|
170
|
+
|
|
171
|
+
rule %r/[mnuvxy]\b(?![.:])/, Name
|
|
172
|
+
mixin :expr
|
|
173
|
+
end
|
|
174
|
+
|
|
175
|
+
state :def_next do
|
|
176
|
+
rule %r/\n/, Text, :pop!
|
|
177
|
+
mixin :root
|
|
178
|
+
end
|
|
179
|
+
|
|
180
|
+
state :expl_def do
|
|
181
|
+
rule %r/0\b(?![.:])/ do
|
|
182
|
+
token Keyword::Pseudo
|
|
183
|
+
# stack: [:root, :expl_def]
|
|
184
|
+
# or [:root, ..., :def_next, :expl_def]
|
|
185
|
+
pop! if stack.size > 2
|
|
186
|
+
goto @def_body
|
|
187
|
+
push :def_next # [:root, ..., @def_body, :def_next]
|
|
188
|
+
end
|
|
189
|
+
rule %r/'/ do
|
|
190
|
+
if @def_body == :noun
|
|
191
|
+
token Str::Single
|
|
192
|
+
goto :str
|
|
193
|
+
else
|
|
194
|
+
token Punctuation
|
|
195
|
+
goto :q_expr
|
|
196
|
+
end
|
|
197
|
+
end
|
|
198
|
+
rule(//) { pop! }
|
|
199
|
+
end
|
|
200
|
+
|
|
201
|
+
# `q_expr` lexes the content of a string literal which is a part of an
|
|
202
|
+
# explicit definition.
|
|
203
|
+
# e.g. dyad def 'x + y'
|
|
204
|
+
state :q_expr do
|
|
205
|
+
rule %r/''/, Str::Single, :q_str
|
|
206
|
+
rule %r/'|$/, Punctuation, :pop!
|
|
207
|
+
rule %r/NB\.(?![.:])([^'\n]|'')*/, Comment::Single
|
|
208
|
+
mixin :expr
|
|
209
|
+
end
|
|
210
|
+
|
|
211
|
+
state :q_str do
|
|
212
|
+
rule %r/''''/, Str::Escape
|
|
213
|
+
rule %r/[^'\n]+/, Str::Single
|
|
214
|
+
rule %r/''/, Str::Single, :pop!
|
|
215
|
+
rule(/'|$/) { token Punctuation; pop! 2 }
|
|
216
|
+
end
|
|
217
|
+
|
|
218
|
+
state :note do
|
|
219
|
+
mixin :delimiter
|
|
220
|
+
rule %r/.+\n?/, Comment::Multiline
|
|
221
|
+
end
|
|
222
|
+
|
|
223
|
+
state :noun do
|
|
224
|
+
mixin :delimiter
|
|
225
|
+
rule %r/.+\n?/, Str::Heredoc
|
|
226
|
+
end
|
|
227
|
+
|
|
228
|
+
state :code do
|
|
229
|
+
mixin :delimiter
|
|
230
|
+
rule %r/^([ \t]*)(:)([ \t\r]*)$/ do
|
|
231
|
+
groups Text, Punctuation, Text
|
|
232
|
+
end
|
|
233
|
+
mixin :expr
|
|
234
|
+
end
|
|
235
|
+
|
|
236
|
+
state :delimiter do
|
|
237
|
+
rule %r/^([ \t]*)(\))([ \t\r]*$\n?)/ do
|
|
238
|
+
groups Text, Punctuation, Text
|
|
239
|
+
pop!
|
|
240
|
+
end
|
|
241
|
+
end
|
|
242
|
+
end
|
|
243
|
+
end
|
|
244
|
+
end
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module Rouge
|
|
5
|
+
module Lexers
|
|
6
|
+
class Janet < RegexLexer
|
|
7
|
+
title "Janet"
|
|
8
|
+
desc "The Janet programming language (janet-lang.org)"
|
|
9
|
+
|
|
10
|
+
tag 'janet'
|
|
11
|
+
aliases 'jdn'
|
|
12
|
+
|
|
13
|
+
filenames '*.janet', '*.jdn'
|
|
14
|
+
|
|
15
|
+
mimetypes 'text/x-janet', 'application/x-janet'
|
|
16
|
+
|
|
17
|
+
def self.specials
|
|
18
|
+
@specials ||= Set.new %w(
|
|
19
|
+
break def do fn if quote quasiquote splice set unquote var while
|
|
20
|
+
)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def self.bundled
|
|
24
|
+
@bundled ||= Set.new %w(
|
|
25
|
+
% %= * *= + ++ += - -- -= -> ->> -?> -?>> / /= < <= = > >=
|
|
26
|
+
abstract? accumulate accumulate2 all all-bindings
|
|
27
|
+
all-dynamics and apply array array/concat array/ensure
|
|
28
|
+
array/fill array/insert array/new array/new-filled
|
|
29
|
+
array/peek array/pop array/push array/remove array/slice
|
|
30
|
+
array? as-> as?-> asm assert bad-compile bad-parse band
|
|
31
|
+
blshift bnot boolean? bor brshift brushift buffer buffer/bit
|
|
32
|
+
buffer/bit-clear buffer/bit-set buffer/bit-toggle
|
|
33
|
+
buffer/blit buffer/clear buffer/fill buffer/format
|
|
34
|
+
buffer/new buffer/new-filled buffer/popn buffer/push-byte
|
|
35
|
+
buffer/push-string buffer/push-word buffer/slice buffer?
|
|
36
|
+
bxor bytes? case cfunction? chr cli-main comment comp
|
|
37
|
+
compare compare= compare< compare<= compare> compare>=
|
|
38
|
+
compile complement comptime cond coro count debug
|
|
39
|
+
debug/arg-stack debug/break debug/fbreak debug/lineage
|
|
40
|
+
debug/stack debug/stacktrace debug/step debug/unbreak
|
|
41
|
+
debug/unfbreak debugger-env dec deep-not= deep= default
|
|
42
|
+
default-peg-grammar def- defer defmacro defmacro- defn defn-
|
|
43
|
+
defglobal describe dictionary? disasm distinct doc doc*
|
|
44
|
+
doc-format dofile drop drop-until drop-while dyn each eachk
|
|
45
|
+
eachp eachy edefer eflush empty? env-lookup eprin eprinf
|
|
46
|
+
eprint eprintf error errorf eval eval-string even? every?
|
|
47
|
+
extreme false? fiber/can-resume? fiber/current fiber/getenv
|
|
48
|
+
fiber/maxstack fiber/new fiber/root fiber/setenv
|
|
49
|
+
fiber/setmaxstack fiber/status fiber? file/close file/flush
|
|
50
|
+
file/open file/popen file/read file/seek file/temp
|
|
51
|
+
file/write filter find find-index first flatten flatten-into
|
|
52
|
+
flush for forv freeze frequencies function? gccollect
|
|
53
|
+
gcinterval gcsetinterval generate gensym get get-in getline
|
|
54
|
+
hash idempotent? identity import import* if-let if-not
|
|
55
|
+
if-with in inc indexed? int/s64 int/u64 int? interleave
|
|
56
|
+
interpose invert janet/build janet/config-bits janet/version
|
|
57
|
+
juxt juxt* keep keys keyword keyword? kvs label last length
|
|
58
|
+
let load-image load-image-dict loop macex macex1 make-env
|
|
59
|
+
make-image make-image-dict map mapcat marshal math/-inf
|
|
60
|
+
math/abs math/acos math/acosh math/asin math/asinh math/atan
|
|
61
|
+
math/atan2 math/atanh math/cbrt math/ceil math/cos math/cosh
|
|
62
|
+
math/e math/erf math/erfc math/exp math/exp2 math/expm1
|
|
63
|
+
math/floor math/gamma math/hypot math/inf math/log
|
|
64
|
+
math/log10 math/log1p math/log2 math/next math/pi math/pow
|
|
65
|
+
math/random math/rng math/rng-buffer math/rng-int
|
|
66
|
+
math/rng-uniform math/round math/seedrandom math/sin
|
|
67
|
+
math/sinh math/sqrt math/tan math/tanh math/trunc match max
|
|
68
|
+
mean merge merge-into min mod module/add-paths module/cache
|
|
69
|
+
module/expand-path module/find module/loaders module/loading
|
|
70
|
+
module/paths nan? nat? native neg? net/chunk net/close
|
|
71
|
+
net/connect net/read net/server net/write next nil? not not=
|
|
72
|
+
number? odd? one? or os/arch os/cd os/chmod os/clock
|
|
73
|
+
os/cryptorand os/cwd os/date os/dir os/environ os/execute
|
|
74
|
+
os/exit os/getenv os/link os/lstat os/mkdir os/mktime
|
|
75
|
+
os/perm-int os/perm-string os/readlink os/realpath os/rename
|
|
76
|
+
os/rm os/rmdir os/setenv os/shell os/sleep os/stat
|
|
77
|
+
os/symlink os/time os/touch os/umask os/which pairs parse
|
|
78
|
+
parser/byte parser/clone parser/consume parser/eof
|
|
79
|
+
parser/error parser/flush parser/has-more parser/insert
|
|
80
|
+
parser/new parser/produce parser/state parser/status
|
|
81
|
+
parser/where partial partition peg/compile peg/match pos?
|
|
82
|
+
postwalk pp prewalk prin prinf print printf product prompt
|
|
83
|
+
propagate protect put put-in quit range reduce reduce2
|
|
84
|
+
repeat repl require resume return reverse reversed root-env
|
|
85
|
+
run-context scan-number seq setdyn shortfn signal slice
|
|
86
|
+
slurp some sort sort-by sorted sorted-by spit stderr stdin
|
|
87
|
+
stdout string string/ascii-lower string/ascii-upper
|
|
88
|
+
string/bytes string/check-set string/find string/find-all
|
|
89
|
+
string/format string/from-bytes string/has-prefix?
|
|
90
|
+
string/has-suffix? string/join string/repeat string/replace
|
|
91
|
+
string/replace-all string/reverse string/slice string/split
|
|
92
|
+
string/trim string/triml string/trimr string? struct struct?
|
|
93
|
+
sum symbol symbol? table table/clone table/getproto
|
|
94
|
+
table/new table/rawget table/setproto table/to-struct table?
|
|
95
|
+
take take-until take-while tarray/buffer tarray/copy-bytes
|
|
96
|
+
tarray/length tarray/new tarray/properties tarray/slice
|
|
97
|
+
tarray/swap-bytes thread/close thread/current thread/new
|
|
98
|
+
thread/receive thread/send trace tracev true? truthy? try
|
|
99
|
+
tuple tuple/brackets tuple/setmap tuple/slice
|
|
100
|
+
tuple/sourcemap tuple/type tuple? type unless unmarshal
|
|
101
|
+
untrace update update-in use values var- varfn varglobal
|
|
102
|
+
walk walk-ind walk-dict when when-let when-with with
|
|
103
|
+
with-dyns with-syms with-vars yield zero? zipcoll
|
|
104
|
+
)
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
def name_token(name)
|
|
108
|
+
if self.class.specials.include? name
|
|
109
|
+
Keyword
|
|
110
|
+
elsif self.class.bundled.include? name
|
|
111
|
+
Keyword::Reserved
|
|
112
|
+
else
|
|
113
|
+
Name::Function
|
|
114
|
+
end
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
punctuation = %r/[_!$%^&*+=~<>.?\/-]/o
|
|
118
|
+
symbol = %r/([[:alpha:]]|#{punctuation})([[:word:]]|#{punctuation}|:)*/o
|
|
119
|
+
|
|
120
|
+
state :root do
|
|
121
|
+
rule %r/#.*?$/, Comment::Single
|
|
122
|
+
rule %r/\s+/m, Text::Whitespace
|
|
123
|
+
|
|
124
|
+
rule %r/(true|false|nil)\b/, Name::Constant
|
|
125
|
+
rule %r/(['~])(#{symbol})/ do
|
|
126
|
+
groups Operator, Str::Symbol
|
|
127
|
+
end
|
|
128
|
+
rule %r/:([[:word:]]|#{punctuation}|:)*/, Keyword::Constant
|
|
129
|
+
|
|
130
|
+
# radix-specified numbers
|
|
131
|
+
rule %r/[+-]?\d{1,2}r[\w.]+(&[+-]?\w+)?/, Num::Float
|
|
132
|
+
|
|
133
|
+
# hex numbers
|
|
134
|
+
rule %r/[+-]?0x\h[\h_]*(\.\h[\h_]*)?/, Num::Hex
|
|
135
|
+
rule %r/[+-]?0x\.\h[\h_]*/, Num::Hex
|
|
136
|
+
|
|
137
|
+
# decimal numbers (Janet treats all decimals as floats)
|
|
138
|
+
rule %r/[+-]?\d[\d_]*(\.\d[\d_]*)?([e][+-]?\d+)?/i, Num::Float
|
|
139
|
+
rule %r/[+-]?\.\d[\d_]*([e][+-]?\d+)?/i, Num::Float
|
|
140
|
+
|
|
141
|
+
rule %r/@?"/, Str::Double, :string
|
|
142
|
+
rule %r/@?(`+).*?\1/m, Str::Heredoc
|
|
143
|
+
|
|
144
|
+
rule %r/\(/, Punctuation, :function
|
|
145
|
+
|
|
146
|
+
rule %r/(')(@?[(\[{])/ do
|
|
147
|
+
groups Operator, Punctuation
|
|
148
|
+
push :quote
|
|
149
|
+
end
|
|
150
|
+
|
|
151
|
+
rule %r/(~)(@?[(\[{])/ do
|
|
152
|
+
groups Operator, Punctuation
|
|
153
|
+
push :quasiquote
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
rule %r/[\#~,';\|]/, Operator
|
|
157
|
+
|
|
158
|
+
rule %r/@?[(){}\[\]]/, Punctuation
|
|
159
|
+
|
|
160
|
+
rule symbol, Name
|
|
161
|
+
end
|
|
162
|
+
|
|
163
|
+
state :string do
|
|
164
|
+
rule %r/"/, Str::Double, :pop!
|
|
165
|
+
rule %r/\\(u\h{4}|U\h{6})/, Str::Escape
|
|
166
|
+
rule %r/\\./, Str::Escape
|
|
167
|
+
rule %r/[^"\\]+/, Str::Double
|
|
168
|
+
end
|
|
169
|
+
|
|
170
|
+
state :function do
|
|
171
|
+
rule %r/[\)]/, Punctuation, :pop!
|
|
172
|
+
|
|
173
|
+
rule symbol do |m|
|
|
174
|
+
case m[0]
|
|
175
|
+
when "quote"
|
|
176
|
+
token Keyword
|
|
177
|
+
goto :quote
|
|
178
|
+
when "quasiquote"
|
|
179
|
+
token Keyword
|
|
180
|
+
goto :quasiquote
|
|
181
|
+
else
|
|
182
|
+
token name_token(m[0])
|
|
183
|
+
goto :root
|
|
184
|
+
end
|
|
185
|
+
end
|
|
186
|
+
|
|
187
|
+
mixin :root
|
|
188
|
+
end
|
|
189
|
+
|
|
190
|
+
state :quote do
|
|
191
|
+
rule %r/[(\[{]/, Punctuation, :push
|
|
192
|
+
rule %r/[)\]}]/, Punctuation, :pop!
|
|
193
|
+
rule symbol, Str::Escape
|
|
194
|
+
mixin :root
|
|
195
|
+
end
|
|
196
|
+
|
|
197
|
+
state :quasiquote do
|
|
198
|
+
rule %r/(,)(\()/ do
|
|
199
|
+
groups Operator, Punctuation
|
|
200
|
+
push :function
|
|
201
|
+
end
|
|
202
|
+
rule %r/(\()(\s*)(unquote)(\s+)(\()/ do
|
|
203
|
+
groups Punctuation, Text, Keyword, Text, Punctuation
|
|
204
|
+
push :function
|
|
205
|
+
end
|
|
206
|
+
|
|
207
|
+
rule %r/(,)(#{symbol})/ do
|
|
208
|
+
groups Operator, Name
|
|
209
|
+
end
|
|
210
|
+
rule %r/(\()(\s*)(unquote)(\s+)(#{symbol})/ do
|
|
211
|
+
groups Punctuation, Text, Keyword, Text, Name
|
|
212
|
+
end
|
|
213
|
+
|
|
214
|
+
mixin :quote
|
|
215
|
+
end
|
|
216
|
+
end
|
|
217
|
+
end
|
|
218
|
+
end
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module Rouge
|
|
5
|
+
module Lexers
|
|
6
|
+
class Java < RegexLexer
|
|
7
|
+
title "Java"
|
|
8
|
+
desc "The Java programming language (java.com)"
|
|
9
|
+
|
|
10
|
+
tag 'java'
|
|
11
|
+
filenames '*.java'
|
|
12
|
+
mimetypes 'text/x-java'
|
|
13
|
+
|
|
14
|
+
keywords = %w(
|
|
15
|
+
assert break case catch continue default do else finally for
|
|
16
|
+
if goto instanceof new return switch this throw try while
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
declarations = %w(
|
|
20
|
+
abstract const enum extends final implements native private protected
|
|
21
|
+
public static strictfp super synchronized throws transient volatile
|
|
22
|
+
)
|
|
23
|
+
|
|
24
|
+
types = %w(boolean byte char double float int long short var void)
|
|
25
|
+
|
|
26
|
+
id = /[[:alpha:]_][[:word:]]*/
|
|
27
|
+
const_name = /[[:upper:]][[:upper:][:digit:]_]*\b/
|
|
28
|
+
class_name = /[[:upper:]][[:alnum:]]*\b/
|
|
29
|
+
|
|
30
|
+
state :root do
|
|
31
|
+
rule %r/[^\S\n]+/, Text
|
|
32
|
+
rule %r(//.*?$), Comment::Single
|
|
33
|
+
rule %r(/\*.*?\*/)m, Comment::Multiline
|
|
34
|
+
# keywords: go before method names to avoid lexing "throw new XYZ"
|
|
35
|
+
# as a method signature
|
|
36
|
+
rule %r/(?:#{keywords.join('|')})\b/, Keyword
|
|
37
|
+
|
|
38
|
+
rule %r(
|
|
39
|
+
(\s*(?:[a-zA-Z_][a-zA-Z0-9_.\[\]<>]*\s+)+?) # return arguments
|
|
40
|
+
([a-zA-Z_][a-zA-Z0-9_]*) # method name
|
|
41
|
+
(\s*)(\() # signature start
|
|
42
|
+
)mx do |m|
|
|
43
|
+
# TODO: do this better, this shouldn't need a delegation
|
|
44
|
+
delegate Java, m[1]
|
|
45
|
+
token Name::Function, m[2]
|
|
46
|
+
token Text, m[3]
|
|
47
|
+
token Operator, m[4]
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
rule %r/@#{id}/, Name::Decorator
|
|
51
|
+
rule %r/(?:#{declarations.join('|')})\b/, Keyword::Declaration
|
|
52
|
+
rule %r/(?:#{types.join('|')})\b/, Keyword::Type
|
|
53
|
+
rule %r/(?:true|false|null)\b/, Keyword::Constant
|
|
54
|
+
rule %r/(?:class|interface|record)\b/, Keyword::Declaration, :class
|
|
55
|
+
rule %r/(?:import|package)\b/, Keyword::Namespace, :import
|
|
56
|
+
rule %r/"""\s*\n.*?(?<!\\)"""/m, Str::Heredoc
|
|
57
|
+
rule %r/"(\\\\|\\"|[^"])*"/, Str
|
|
58
|
+
rule %r/'(?:\\.|[^\\]|\\u[0-9a-f]{4})'/, Str::Char
|
|
59
|
+
rule %r/(\.)(#{id})/ do
|
|
60
|
+
groups Operator, Name::Attribute
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
rule %r/#{id}:/, Name::Label
|
|
64
|
+
rule const_name, Name::Constant
|
|
65
|
+
rule class_name, Name::Class
|
|
66
|
+
rule %r/\$?#{id}/, Name
|
|
67
|
+
rule %r/[~^*!%&\[\](){}<>\|+=:;,.\/?-]/, Operator
|
|
68
|
+
|
|
69
|
+
digit = /[0-9]_+[0-9]|[0-9]/
|
|
70
|
+
bin_digit = /[01]_+[01]|[01]/
|
|
71
|
+
oct_digit = /[0-7]_+[0-7]|[0-7]/
|
|
72
|
+
hex_digit = /[0-9a-f]_+[0-9a-f]|[0-9a-f]/i
|
|
73
|
+
rule %r/#{digit}+\.#{digit}+([eE]#{digit}+)?[fd]?/, Num::Float
|
|
74
|
+
rule %r/0b#{bin_digit}+/i, Num::Bin
|
|
75
|
+
rule %r/0x#{hex_digit}+/i, Num::Hex
|
|
76
|
+
rule %r/0#{oct_digit}+/, Num::Oct
|
|
77
|
+
rule %r/#{digit}+L?/, Num::Integer
|
|
78
|
+
rule %r/\n/, Text
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
state :class do
|
|
82
|
+
rule %r/\s+/m, Text
|
|
83
|
+
rule id, Name::Class, :pop!
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
state :import do
|
|
87
|
+
rule %r/\s+/m, Text
|
|
88
|
+
rule %r/[a-z0-9_.]+\*?/i, Name::Namespace, :pop!
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
end
|