rouge 3.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/Gemfile +40 -0
- data/LICENSE +186 -0
- data/bin/rougify +18 -0
- data/lib/rouge.rb +93 -0
- data/lib/rouge/cli.rb +498 -0
- data/lib/rouge/demos/abap +6 -0
- data/lib/rouge/demos/actionscript +4 -0
- data/lib/rouge/demos/ada +26 -0
- data/lib/rouge/demos/apache +21 -0
- data/lib/rouge/demos/apex +9 -0
- data/lib/rouge/demos/apiblueprint +33 -0
- data/lib/rouge/demos/applescript +2 -0
- data/lib/rouge/demos/armasm +12 -0
- data/lib/rouge/demos/awk +4 -0
- data/lib/rouge/demos/batchfile +3 -0
- data/lib/rouge/demos/bbcbasic +6 -0
- data/lib/rouge/demos/biml +38 -0
- data/lib/rouge/demos/bpf +7 -0
- data/lib/rouge/demos/brainfuck +5 -0
- data/lib/rouge/demos/bsl +7 -0
- data/lib/rouge/demos/c +8 -0
- data/lib/rouge/demos/ceylon +7 -0
- data/lib/rouge/demos/cfscript +18 -0
- data/lib/rouge/demos/clean +6 -0
- data/lib/rouge/demos/clojure +5 -0
- data/lib/rouge/demos/cmake +7 -0
- data/lib/rouge/demos/cmhg +8 -0
- data/lib/rouge/demos/coffeescript +5 -0
- data/lib/rouge/demos/common_lisp +1 -0
- data/lib/rouge/demos/conf +4 -0
- data/lib/rouge/demos/console +6 -0
- data/lib/rouge/demos/coq +13 -0
- data/lib/rouge/demos/cpp +8 -0
- data/lib/rouge/demos/crystal +45 -0
- data/lib/rouge/demos/csharp +5 -0
- data/lib/rouge/demos/css +4 -0
- data/lib/rouge/demos/csvs +8 -0
- data/lib/rouge/demos/cuda +11 -0
- data/lib/rouge/demos/cython +6 -0
- data/lib/rouge/demos/d +16 -0
- data/lib/rouge/demos/dart +6 -0
- data/lib/rouge/demos/diff +7 -0
- data/lib/rouge/demos/digdag +19 -0
- data/lib/rouge/demos/docker +9 -0
- data/lib/rouge/demos/dot +5 -0
- data/lib/rouge/demos/ecl +18 -0
- data/lib/rouge/demos/eex +1 -0
- data/lib/rouge/demos/eiffel +30 -0
- data/lib/rouge/demos/elixir +1 -0
- data/lib/rouge/demos/elm +4 -0
- data/lib/rouge/demos/epp +4 -0
- data/lib/rouge/demos/erb +1 -0
- data/lib/rouge/demos/erlang +7 -0
- data/lib/rouge/demos/escape +3 -0
- data/lib/rouge/demos/factor +5 -0
- data/lib/rouge/demos/fortran +22 -0
- data/lib/rouge/demos/freefem +16 -0
- data/lib/rouge/demos/fsharp +12 -0
- data/lib/rouge/demos/gdscript +18 -0
- data/lib/rouge/demos/ghc-core +26 -0
- data/lib/rouge/demos/gherkin +17 -0
- data/lib/rouge/demos/glsl +14 -0
- data/lib/rouge/demos/go +7 -0
- data/lib/rouge/demos/gradle +10 -0
- data/lib/rouge/demos/graphql +17 -0
- data/lib/rouge/demos/groovy +9 -0
- data/lib/rouge/demos/hack +5 -0
- data/lib/rouge/demos/haml +5 -0
- data/lib/rouge/demos/handlebars +7 -0
- data/lib/rouge/demos/haskell +6 -0
- data/lib/rouge/demos/haxe +5 -0
- data/lib/rouge/demos/hcl +7 -0
- data/lib/rouge/demos/hocon +8 -0
- data/lib/rouge/demos/hql +5 -0
- data/lib/rouge/demos/html +8 -0
- data/lib/rouge/demos/http +14 -0
- data/lib/rouge/demos/hylang +10 -0
- data/lib/rouge/demos/idlang +8 -0
- data/lib/rouge/demos/igorpro +9 -0
- data/lib/rouge/demos/ini +4 -0
- data/lib/rouge/demos/io +11 -0
- data/lib/rouge/demos/irb +4 -0
- data/lib/rouge/demos/irb_output +2 -0
- data/lib/rouge/demos/java +5 -0
- data/lib/rouge/demos/javascript +1 -0
- data/lib/rouge/demos/jinja +9 -0
- data/lib/rouge/demos/jsl +3 -0
- data/lib/rouge/demos/json +1 -0
- data/lib/rouge/demos/json-doc +1 -0
- data/lib/rouge/demos/jsonnet +28 -0
- data/lib/rouge/demos/jsp +29 -0
- data/lib/rouge/demos/jsx +17 -0
- data/lib/rouge/demos/julia +11 -0
- data/lib/rouge/demos/kotlin +3 -0
- data/lib/rouge/demos/lasso +12 -0
- data/lib/rouge/demos/liquid +10 -0
- data/lib/rouge/demos/literate_coffeescript +3 -0
- data/lib/rouge/demos/literate_haskell +7 -0
- data/lib/rouge/demos/llvm +20 -0
- data/lib/rouge/demos/lua +12 -0
- data/lib/rouge/demos/lustre +6 -0
- data/lib/rouge/demos/lutin +18 -0
- data/lib/rouge/demos/m68k +16 -0
- data/lib/rouge/demos/magik +6 -0
- data/lib/rouge/demos/make +6 -0
- data/lib/rouge/demos/markdown +4 -0
- data/lib/rouge/demos/mason +22 -0
- data/lib/rouge/demos/mathematica +8 -0
- data/lib/rouge/demos/matlab +6 -0
- data/lib/rouge/demos/minizinc +23 -0
- data/lib/rouge/demos/moonscript +16 -0
- data/lib/rouge/demos/mosel +10 -0
- data/lib/rouge/demos/msgtrans +4 -0
- data/lib/rouge/demos/mxml +22 -0
- data/lib/rouge/demos/nasm +26 -0
- data/lib/rouge/demos/nesasm +11 -0
- data/lib/rouge/demos/nginx +5 -0
- data/lib/rouge/demos/nim +27 -0
- data/lib/rouge/demos/nix +19 -0
- data/lib/rouge/demos/objective_c +18 -0
- data/lib/rouge/demos/objective_cpp +17 -0
- data/lib/rouge/demos/ocaml +12 -0
- data/lib/rouge/demos/openedge +4 -0
- data/lib/rouge/demos/opentype_feature_file +6 -0
- data/lib/rouge/demos/pascal +14 -0
- data/lib/rouge/demos/perl +5 -0
- data/lib/rouge/demos/php +3 -0
- data/lib/rouge/demos/plaintext +1 -0
- data/lib/rouge/demos/plist +11 -0
- data/lib/rouge/demos/pony +17 -0
- data/lib/rouge/demos/powershell +13 -0
- data/lib/rouge/demos/praat +26 -0
- data/lib/rouge/demos/prolog +9 -0
- data/lib/rouge/demos/prometheus +9 -0
- data/lib/rouge/demos/properties +7 -0
- data/lib/rouge/demos/protobuf +5 -0
- data/lib/rouge/demos/puppet +6 -0
- data/lib/rouge/demos/python +6 -0
- data/lib/rouge/demos/q +8 -0
- data/lib/rouge/demos/qml +9 -0
- data/lib/rouge/demos/r +8 -0
- data/lib/rouge/demos/racket +24 -0
- data/lib/rouge/demos/reasonml +12 -0
- data/lib/rouge/demos/robot_framework +27 -0
- data/lib/rouge/demos/ruby +9 -0
- data/lib/rouge/demos/rust +12 -0
- data/lib/rouge/demos/sas +13 -0
- data/lib/rouge/demos/sass +3 -0
- data/lib/rouge/demos/scala +3 -0
- data/lib/rouge/demos/scheme +4 -0
- data/lib/rouge/demos/scss +5 -0
- data/lib/rouge/demos/sed +4 -0
- data/lib/rouge/demos/shell +2 -0
- data/lib/rouge/demos/sieve +10 -0
- data/lib/rouge/demos/slice +10 -0
- data/lib/rouge/demos/slim +17 -0
- data/lib/rouge/demos/smalltalk +6 -0
- data/lib/rouge/demos/smarty +12 -0
- data/lib/rouge/demos/sml +4 -0
- data/lib/rouge/demos/sparql +6 -0
- data/lib/rouge/demos/sqf +14 -0
- data/lib/rouge/demos/sql +1 -0
- data/lib/rouge/demos/supercollider +11 -0
- data/lib/rouge/demos/swift +5 -0
- data/lib/rouge/demos/tap +5 -0
- data/lib/rouge/demos/tcl +1 -0
- data/lib/rouge/demos/terraform +16 -0
- data/lib/rouge/demos/tex +1 -0
- data/lib/rouge/demos/toml +9 -0
- data/lib/rouge/demos/tsx +17 -0
- data/lib/rouge/demos/ttcn3 +6 -0
- data/lib/rouge/demos/tulip +13 -0
- data/lib/rouge/demos/turtle +26 -0
- data/lib/rouge/demos/twig +9 -0
- data/lib/rouge/demos/typescript +1 -0
- data/lib/rouge/demos/vala +8 -0
- data/lib/rouge/demos/vb +4 -0
- data/lib/rouge/demos/vcl +12 -0
- data/lib/rouge/demos/verilog +27 -0
- data/lib/rouge/demos/vhdl +23 -0
- data/lib/rouge/demos/viml +14 -0
- data/lib/rouge/demos/vue +11 -0
- data/lib/rouge/demos/wollok +11 -0
- data/lib/rouge/demos/xml +2 -0
- data/lib/rouge/demos/xojo +14 -0
- data/lib/rouge/demos/xpath +2 -0
- data/lib/rouge/demos/xquery +22 -0
- data/lib/rouge/demos/yaml +4 -0
- data/lib/rouge/formatter.rb +112 -0
- data/lib/rouge/formatters/html.rb +56 -0
- data/lib/rouge/formatters/html_inline.rb +31 -0
- data/lib/rouge/formatters/html_legacy.rb +45 -0
- data/lib/rouge/formatters/html_line_table.rb +53 -0
- data/lib/rouge/formatters/html_linewise.rb +23 -0
- data/lib/rouge/formatters/html_pygments.rb +18 -0
- data/lib/rouge/formatters/html_table.rb +51 -0
- data/lib/rouge/formatters/null.rb +20 -0
- data/lib/rouge/formatters/terminal256.rb +198 -0
- data/lib/rouge/formatters/terminal_truecolor.rb +37 -0
- data/lib/rouge/formatters/tex.rb +92 -0
- data/lib/rouge/guesser.rb +57 -0
- data/lib/rouge/guessers/disambiguation.rb +136 -0
- data/lib/rouge/guessers/filename.rb +27 -0
- data/lib/rouge/guessers/glob_mapping.rb +45 -0
- data/lib/rouge/guessers/mimetype.rb +16 -0
- data/lib/rouge/guessers/modeline.rb +46 -0
- data/lib/rouge/guessers/source.rb +31 -0
- data/lib/rouge/guessers/util.rb +34 -0
- data/lib/rouge/lexer.rb +516 -0
- data/lib/rouge/lexers/abap.rb +240 -0
- data/lib/rouge/lexers/actionscript.rb +196 -0
- data/lib/rouge/lexers/ada.rb +162 -0
- data/lib/rouge/lexers/apache.rb +73 -0
- data/lib/rouge/lexers/apache/keywords.yml +764 -0
- data/lib/rouge/lexers/apex.rb +126 -0
- data/lib/rouge/lexers/apiblueprint.rb +49 -0
- data/lib/rouge/lexers/apple_script.rb +370 -0
- data/lib/rouge/lexers/armasm.rb +145 -0
- data/lib/rouge/lexers/awk.rb +162 -0
- data/lib/rouge/lexers/batchfile.rb +164 -0
- data/lib/rouge/lexers/bbcbasic.rb +112 -0
- data/lib/rouge/lexers/biml.rb +43 -0
- data/lib/rouge/lexers/bpf.rb +118 -0
- data/lib/rouge/lexers/brainfuck.rb +53 -0
- data/lib/rouge/lexers/bsl.rb +82 -0
- data/lib/rouge/lexers/c.rb +190 -0
- data/lib/rouge/lexers/ceylon.rb +96 -0
- data/lib/rouge/lexers/cfscript.rb +154 -0
- data/lib/rouge/lexers/clean.rb +156 -0
- data/lib/rouge/lexers/clojure.rb +113 -0
- data/lib/rouge/lexers/cmake.rb +207 -0
- data/lib/rouge/lexers/cmhg.rb +34 -0
- data/lib/rouge/lexers/coffeescript.rb +215 -0
- data/lib/rouge/lexers/common_lisp.rb +346 -0
- data/lib/rouge/lexers/conf.rb +25 -0
- data/lib/rouge/lexers/console.rb +174 -0
- data/lib/rouge/lexers/coq.rb +191 -0
- data/lib/rouge/lexers/cpp.rb +82 -0
- data/lib/rouge/lexers/crystal.rb +430 -0
- data/lib/rouge/lexers/csharp.rb +114 -0
- data/lib/rouge/lexers/css.rb +274 -0
- data/lib/rouge/lexers/csvs.rb +44 -0
- data/lib/rouge/lexers/cuda.rb +35 -0
- data/lib/rouge/lexers/cython.rb +151 -0
- data/lib/rouge/lexers/d.rb +177 -0
- data/lib/rouge/lexers/dart.rb +105 -0
- data/lib/rouge/lexers/diff.rb +37 -0
- data/lib/rouge/lexers/digdag.rb +70 -0
- data/lib/rouge/lexers/docker.rb +51 -0
- data/lib/rouge/lexers/dot.rb +69 -0
- data/lib/rouge/lexers/ecl.rb +175 -0
- data/lib/rouge/lexers/eex.rb +52 -0
- data/lib/rouge/lexers/eiffel.rb +66 -0
- data/lib/rouge/lexers/elixir.rb +149 -0
- data/lib/rouge/lexers/elm.rb +90 -0
- data/lib/rouge/lexers/epp.rb +51 -0
- data/lib/rouge/lexers/erb.rb +53 -0
- data/lib/rouge/lexers/erlang.rb +115 -0
- data/lib/rouge/lexers/escape.rb +58 -0
- data/lib/rouge/lexers/factor.rb +303 -0
- data/lib/rouge/lexers/fortran.rb +178 -0
- data/lib/rouge/lexers/freefem.rb +240 -0
- data/lib/rouge/lexers/fsharp.rb +119 -0
- data/lib/rouge/lexers/gdscript.rb +171 -0
- data/lib/rouge/lexers/ghc_core.rb +151 -0
- data/lib/rouge/lexers/gherkin.rb +140 -0
- data/lib/rouge/lexers/gherkin/keywords.rb +16 -0
- data/lib/rouge/lexers/glsl.rb +132 -0
- data/lib/rouge/lexers/go.rb +175 -0
- data/lib/rouge/lexers/gradle.rb +38 -0
- data/lib/rouge/lexers/graphql.rb +261 -0
- data/lib/rouge/lexers/groovy.rb +111 -0
- data/lib/rouge/lexers/hack.rb +49 -0
- data/lib/rouge/lexers/haml.rb +226 -0
- data/lib/rouge/lexers/handlebars.rb +91 -0
- data/lib/rouge/lexers/haskell.rb +199 -0
- data/lib/rouge/lexers/haxe.rb +246 -0
- data/lib/rouge/lexers/hcl.rb +163 -0
- data/lib/rouge/lexers/hocon.rb +86 -0
- data/lib/rouge/lexers/hql.rb +139 -0
- data/lib/rouge/lexers/html.rb +141 -0
- data/lib/rouge/lexers/http.rb +81 -0
- data/lib/rouge/lexers/hylang.rb +94 -0
- data/lib/rouge/lexers/idlang.rb +312 -0
- data/lib/rouge/lexers/igorpro.rb +664 -0
- data/lib/rouge/lexers/ini.rb +54 -0
- data/lib/rouge/lexers/io.rb +69 -0
- data/lib/rouge/lexers/irb.rb +67 -0
- data/lib/rouge/lexers/java.rb +91 -0
- data/lib/rouge/lexers/javascript.rb +279 -0
- data/lib/rouge/lexers/jinja.rb +154 -0
- data/lib/rouge/lexers/jsl.rb +55 -0
- data/lib/rouge/lexers/json.rb +69 -0
- data/lib/rouge/lexers/json_doc.rb +25 -0
- data/lib/rouge/lexers/jsonnet.rb +152 -0
- data/lib/rouge/lexers/jsp.rb +120 -0
- data/lib/rouge/lexers/jsx.rb +104 -0
- data/lib/rouge/lexers/julia.rb +290 -0
- data/lib/rouge/lexers/kotlin.rb +127 -0
- data/lib/rouge/lexers/lasso.rb +215 -0
- data/lib/rouge/lexers/lasso/keywords.yml +446 -0
- data/lib/rouge/lexers/liquid.rb +285 -0
- data/lib/rouge/lexers/literate_coffeescript.rb +34 -0
- data/lib/rouge/lexers/literate_haskell.rb +37 -0
- data/lib/rouge/lexers/llvm.rb +97 -0
- data/lib/rouge/lexers/lua.rb +164 -0
- data/lib/rouge/lexers/lua/builtins.rb +24 -0
- data/lib/rouge/lexers/lustre.rb +79 -0
- data/lib/rouge/lexers/lutin.rb +33 -0
- data/lib/rouge/lexers/m68k.rb +143 -0
- data/lib/rouge/lexers/magik.rb +127 -0
- data/lib/rouge/lexers/make.rb +135 -0
- data/lib/rouge/lexers/markdown.rb +182 -0
- data/lib/rouge/lexers/mason.rb +110 -0
- data/lib/rouge/lexers/mathematica.rb +96 -0
- data/lib/rouge/lexers/mathematica/builtins.rb +13 -0
- data/lib/rouge/lexers/matlab.rb +81 -0
- data/lib/rouge/lexers/matlab/builtins.yml +3515 -0
- data/lib/rouge/lexers/minizinc.rb +87 -0
- data/lib/rouge/lexers/moonscript.rb +115 -0
- data/lib/rouge/lexers/mosel.rb +232 -0
- data/lib/rouge/lexers/msgtrans.rb +26 -0
- data/lib/rouge/lexers/mxml.rb +69 -0
- data/lib/rouge/lexers/nasm.rb +72 -0
- data/lib/rouge/lexers/nesasm.rb +78 -0
- data/lib/rouge/lexers/nginx.rb +72 -0
- data/lib/rouge/lexers/nim.rb +154 -0
- data/lib/rouge/lexers/nix.rb +211 -0
- data/lib/rouge/lexers/objective_c.rb +21 -0
- data/lib/rouge/lexers/objective_c/common.rb +184 -0
- data/lib/rouge/lexers/objective_cpp.rb +31 -0
- data/lib/rouge/lexers/ocaml.rb +65 -0
- data/lib/rouge/lexers/ocaml/common.rb +53 -0
- data/lib/rouge/lexers/openedge.rb +429 -0
- data/lib/rouge/lexers/opentype_feature_file.rb +113 -0
- data/lib/rouge/lexers/pascal.rb +67 -0
- data/lib/rouge/lexers/perl.rb +231 -0
- data/lib/rouge/lexers/php.rb +216 -0
- data/lib/rouge/lexers/php/builtins.rb +203 -0
- data/lib/rouge/lexers/plain_text.rb +27 -0
- data/lib/rouge/lexers/plist.rb +47 -0
- data/lib/rouge/lexers/pony.rb +94 -0
- data/lib/rouge/lexers/powershell.rb +230 -0
- data/lib/rouge/lexers/praat.rb +351 -0
- data/lib/rouge/lexers/prolog.rb +67 -0
- data/lib/rouge/lexers/prometheus.rb +123 -0
- data/lib/rouge/lexers/properties.rb +52 -0
- data/lib/rouge/lexers/protobuf.rb +71 -0
- data/lib/rouge/lexers/puppet.rb +129 -0
- data/lib/rouge/lexers/python.rb +248 -0
- data/lib/rouge/lexers/q.rb +126 -0
- data/lib/rouge/lexers/qml.rb +74 -0
- data/lib/rouge/lexers/r.rb +89 -0
- data/lib/rouge/lexers/racket.rb +545 -0
- data/lib/rouge/lexers/reasonml.rb +65 -0
- data/lib/rouge/lexers/robot_framework.rb +249 -0
- data/lib/rouge/lexers/ruby.rb +444 -0
- data/lib/rouge/lexers/rust.rb +193 -0
- data/lib/rouge/lexers/sas.rb +563 -0
- data/lib/rouge/lexers/sass.rb +75 -0
- data/lib/rouge/lexers/sass/common.rb +181 -0
- data/lib/rouge/lexers/scala.rb +169 -0
- data/lib/rouge/lexers/scheme.rb +113 -0
- data/lib/rouge/lexers/scss.rb +35 -0
- data/lib/rouge/lexers/sed.rb +173 -0
- data/lib/rouge/lexers/shell.rb +201 -0
- data/lib/rouge/lexers/sieve.rb +97 -0
- data/lib/rouge/lexers/slice.rb +32 -0
- data/lib/rouge/lexers/slim.rb +229 -0
- data/lib/rouge/lexers/smalltalk.rb +117 -0
- data/lib/rouge/lexers/smarty.rb +81 -0
- data/lib/rouge/lexers/sml.rb +345 -0
- data/lib/rouge/lexers/sparql.rb +129 -0
- data/lib/rouge/lexers/sqf.rb +109 -0
- data/lib/rouge/lexers/sqf/commands.rb +15 -0
- data/lib/rouge/lexers/sql.rb +161 -0
- data/lib/rouge/lexers/supercollider.rb +116 -0
- data/lib/rouge/lexers/swift.rb +186 -0
- data/lib/rouge/lexers/tap.rb +89 -0
- data/lib/rouge/lexers/tcl.rb +193 -0
- data/lib/rouge/lexers/terraform.rb +113 -0
- data/lib/rouge/lexers/tex.rb +70 -0
- data/lib/rouge/lexers/toml.rb +106 -0
- data/lib/rouge/lexers/tsx.rb +20 -0
- data/lib/rouge/lexers/ttcn3.rb +119 -0
- data/lib/rouge/lexers/tulip.rb +108 -0
- data/lib/rouge/lexers/turtle.rb +61 -0
- data/lib/rouge/lexers/twig.rb +40 -0
- data/lib/rouge/lexers/typescript.rb +30 -0
- data/lib/rouge/lexers/typescript/common.rb +34 -0
- data/lib/rouge/lexers/vala.rb +78 -0
- data/lib/rouge/lexers/varnish.rb +168 -0
- data/lib/rouge/lexers/vb.rb +165 -0
- data/lib/rouge/lexers/verilog.rb +163 -0
- data/lib/rouge/lexers/vhdl.rb +98 -0
- data/lib/rouge/lexers/viml.rb +102 -0
- data/lib/rouge/lexers/viml/keywords.rb +14 -0
- data/lib/rouge/lexers/vue.rb +124 -0
- data/lib/rouge/lexers/wollok.rb +104 -0
- data/lib/rouge/lexers/xml.rb +54 -0
- data/lib/rouge/lexers/xojo.rb +61 -0
- data/lib/rouge/lexers/xpath.rb +332 -0
- data/lib/rouge/lexers/xquery.rb +145 -0
- data/lib/rouge/lexers/yaml.rb +376 -0
- data/lib/rouge/plugins/redcarpet.rb +37 -0
- data/lib/rouge/regex_lexer.rb +443 -0
- data/lib/rouge/template_lexer.rb +21 -0
- data/lib/rouge/tex_theme_renderer.rb +132 -0
- data/lib/rouge/text_analyzer.rb +50 -0
- data/lib/rouge/theme.rb +218 -0
- data/lib/rouge/themes/base16.rb +131 -0
- data/lib/rouge/themes/bw.rb +41 -0
- data/lib/rouge/themes/colorful.rb +68 -0
- data/lib/rouge/themes/github.rb +72 -0
- data/lib/rouge/themes/gruvbox.rb +168 -0
- data/lib/rouge/themes/igor_pro.rb +21 -0
- data/lib/rouge/themes/magritte.rb +78 -0
- data/lib/rouge/themes/molokai.rb +83 -0
- data/lib/rouge/themes/monokai.rb +93 -0
- data/lib/rouge/themes/monokai_sublime.rb +93 -0
- data/lib/rouge/themes/pastie.rb +70 -0
- data/lib/rouge/themes/thankful_eyes.rb +75 -0
- data/lib/rouge/themes/tulip.rb +70 -0
- data/lib/rouge/token.rb +191 -0
- data/lib/rouge/util.rb +102 -0
- data/lib/rouge/version.rb +8 -0
- data/rouge.gemspec +26 -0
- metadata +476 -0
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module Rouge
|
|
5
|
+
module Lexers
|
|
6
|
+
load_lexer 'javascript.rb'
|
|
7
|
+
load_lexer 'typescript/common.rb'
|
|
8
|
+
|
|
9
|
+
class Typescript < Javascript
|
|
10
|
+
include TypescriptCommon
|
|
11
|
+
|
|
12
|
+
title "TypeScript"
|
|
13
|
+
desc "TypeScript, a superset of JavaScript"
|
|
14
|
+
|
|
15
|
+
tag 'typescript'
|
|
16
|
+
aliases 'ts'
|
|
17
|
+
|
|
18
|
+
filenames '*.ts', '*.d.ts'
|
|
19
|
+
|
|
20
|
+
mimetypes 'text/typescript'
|
|
21
|
+
|
|
22
|
+
prepend :statement do
|
|
23
|
+
rule %r/(#{Javascript.id_regex})(\??)(\s*)(:)/ do
|
|
24
|
+
groups Name::Label, Punctuation, Text, Punctuation
|
|
25
|
+
push :expr_start
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module Rouge
|
|
5
|
+
module Lexers
|
|
6
|
+
module TypescriptCommon
|
|
7
|
+
def self.keywords
|
|
8
|
+
@keywords ||= super + Set.new(%w(
|
|
9
|
+
is namespace static private protected public
|
|
10
|
+
implements readonly
|
|
11
|
+
))
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def self.declarations
|
|
15
|
+
@declarations ||= super + Set.new(%w(
|
|
16
|
+
type abstract
|
|
17
|
+
))
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def self.reserved
|
|
21
|
+
@reserved ||= super + Set.new(%w(
|
|
22
|
+
string any void number namespace module
|
|
23
|
+
declare default interface keyof
|
|
24
|
+
))
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def self.builtins
|
|
28
|
+
@builtins ||= super + %w(
|
|
29
|
+
Pick Partial Readonly Record
|
|
30
|
+
)
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module Rouge
|
|
5
|
+
module Lexers
|
|
6
|
+
class Vala < RegexLexer
|
|
7
|
+
tag 'vala'
|
|
8
|
+
filenames '*.vala'
|
|
9
|
+
mimetypes 'text/x-vala'
|
|
10
|
+
|
|
11
|
+
title "Vala"
|
|
12
|
+
desc 'A programming language similar to csharp.'
|
|
13
|
+
|
|
14
|
+
id = /@?[_a-z]\w*/i
|
|
15
|
+
|
|
16
|
+
keywords = %w(
|
|
17
|
+
abstract as async base break case catch const construct continue
|
|
18
|
+
default delegate delete do dynamic else ensures enum errordomain
|
|
19
|
+
extern false finally for foreach get global if in inline interface
|
|
20
|
+
internal is lock new null out override owned private protected
|
|
21
|
+
public ref requires return set signal sizeof static switch this
|
|
22
|
+
throw throws true try typeof unowned var value virtual void weak
|
|
23
|
+
while yield
|
|
24
|
+
)
|
|
25
|
+
|
|
26
|
+
keywords_type = %w(
|
|
27
|
+
bool char double float int int8 int16 int32 int64 long short size_t
|
|
28
|
+
ssize_t string unichar uint uint8 uint16 uint32 uint64 ulong ushort
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
state :whitespace do
|
|
32
|
+
rule %r/\s+/m, Text
|
|
33
|
+
rule %r(//.*?$), Comment::Single
|
|
34
|
+
rule %r(/[*].*?[*]/)m, Comment::Multiline
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
state :root do
|
|
38
|
+
mixin :whitespace
|
|
39
|
+
|
|
40
|
+
rule %r/^\s*\[.*?\]/, Name::Attribute
|
|
41
|
+
|
|
42
|
+
rule %r/(<\[)\s*(#{id}:)?/, Keyword
|
|
43
|
+
rule %r/\]>/, Keyword
|
|
44
|
+
|
|
45
|
+
rule %r/[~!%^&*()+=|\[\]{}:;,.<>\/?-]/, Punctuation
|
|
46
|
+
rule %r/@"(\\.|.)*?"/, Str
|
|
47
|
+
rule %r/"(\\.|.)*?["\n]/, Str
|
|
48
|
+
rule %r/'(\\.|.)'/, Str::Char
|
|
49
|
+
rule %r/0x[0-9a-f]+[lu]?/i, Num
|
|
50
|
+
rule %r(
|
|
51
|
+
[0-9]
|
|
52
|
+
([.][0-9]*)? # decimal
|
|
53
|
+
(e[+-][0-9]+)? # exponent
|
|
54
|
+
[fldu]? # type
|
|
55
|
+
)ix, Num
|
|
56
|
+
rule %r/\b(#{keywords.join('|')})\b/, Keyword
|
|
57
|
+
rule %r/\b(#{keywords_type.join('|')})\b/, Keyword::Type
|
|
58
|
+
rule %r/class|struct/, Keyword, :class
|
|
59
|
+
rule %r/namespace|using/, Keyword, :namespace
|
|
60
|
+
rule %r/#{id}(?=\s*[(])/, Name::Function
|
|
61
|
+
rule id, Name
|
|
62
|
+
|
|
63
|
+
rule %r/#.*/, Comment::Preproc
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
state :class do
|
|
67
|
+
mixin :whitespace
|
|
68
|
+
rule id, Name::Class, :pop!
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
state :namespace do
|
|
72
|
+
mixin :whitespace
|
|
73
|
+
rule %r/(?=[(])/, Text, :pop!
|
|
74
|
+
rule %r/(#{id}|[.])+/, Name::Namespace, :pop!
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
end
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module Rouge
|
|
5
|
+
module Lexers
|
|
6
|
+
class Varnish < RegexLexer
|
|
7
|
+
title 'VCL: Varnish Configuration Language'
|
|
8
|
+
desc 'The configuration language for Varnish HTTP Cache (varnish-cache.org)'
|
|
9
|
+
|
|
10
|
+
tag 'vcl'
|
|
11
|
+
aliases 'varnishconf', 'varnish'
|
|
12
|
+
filenames '*.vcl'
|
|
13
|
+
mimetypes 'text/x-varnish', 'text/x-vcl'
|
|
14
|
+
|
|
15
|
+
SPACE = '[ \f\n\r\t\v]+'
|
|
16
|
+
|
|
17
|
+
# backend acl
|
|
18
|
+
def self.keywords
|
|
19
|
+
@keywords ||= Set.new %w[
|
|
20
|
+
vcl set unset include import if else elseif elif elsif director probe
|
|
21
|
+
backend acl
|
|
22
|
+
|
|
23
|
+
declare local
|
|
24
|
+
BOOL FLOAT INTEGER IP RTIME STRING TIME
|
|
25
|
+
]
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def self.functions
|
|
29
|
+
@functions ||= Set.new %w[
|
|
30
|
+
ban call hash_data new regsub regsuball return rollback
|
|
31
|
+
std.cache_req_body std.collect std.duration std.fileread std.healthy
|
|
32
|
+
std.integer std.ip std.log std.port std.querysort std.random std.real
|
|
33
|
+
std.real2time std.rollback std.set_ip_tos std.strstr std.syslog
|
|
34
|
+
std.time std.time2integer std.time2real std.timestamp std.tolower
|
|
35
|
+
std.toupper synth synthetic
|
|
36
|
+
]
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def self.variables
|
|
40
|
+
@variables ||= Set.new %w[
|
|
41
|
+
bereq bereq.backend bereq.between_bytes_timeout bereq.connect_timeout
|
|
42
|
+
bereq.first_byte_timeout bereq.method bereq.proto bereq.retries
|
|
43
|
+
bereq.uncacheable bereq.url bereq.xid beresp beresp.age
|
|
44
|
+
beresp.backend beresp.backend.ip beresp.backend.name beresp.do_esi
|
|
45
|
+
beresp.do_gunzip beresp.do_gzip beresp.do_stream beresp.grace
|
|
46
|
+
beresp.keep beresp.proto beresp.reason beresp.status
|
|
47
|
+
beresp.storage_hint beresp.ttl beresp.uncacheable beresp.was_304
|
|
48
|
+
client.identity client.ip local.ip now obj.age obj.grace obj.hits
|
|
49
|
+
obj.keep obj.proto obj.reason obj.status obj.ttl obj.uncacheable
|
|
50
|
+
remote.ip req req.backend_hint req.can_gzip req.esi req.esi_level
|
|
51
|
+
req.hash_always_miss req.hash_ignore_busy req.method req.proto
|
|
52
|
+
req.restarts req.ttl req.url req.xid resp resp.proto resp.reason
|
|
53
|
+
resp.status server.hostname server.identity server.ip
|
|
54
|
+
]
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
# This is never used
|
|
58
|
+
# def self.routines
|
|
59
|
+
# @routines ||= Set.new %w[
|
|
60
|
+
# backend_error backend_fetch backend_response purge deliver fini hash
|
|
61
|
+
# hit init miss pass pipe recv synth
|
|
62
|
+
# ]
|
|
63
|
+
# end
|
|
64
|
+
|
|
65
|
+
state :root do
|
|
66
|
+
# long strings ({" ... "})
|
|
67
|
+
rule %r/\{".*?"}/m, Str::Single
|
|
68
|
+
|
|
69
|
+
# heredoc style long strings ({xyz"..."xyz})
|
|
70
|
+
rule %r/\{(\w+)".*?"(\1)\}/m, Str::Single
|
|
71
|
+
|
|
72
|
+
# comments
|
|
73
|
+
rule %r'/\*.*?\*/'m, Comment::Multiline
|
|
74
|
+
rule %r'(?://|#).*', Comment::Single
|
|
75
|
+
|
|
76
|
+
rule %r/true|false/, Keyword::Constant
|
|
77
|
+
|
|
78
|
+
# "wildcard variables"
|
|
79
|
+
var_prefix = Regexp.union(%w(beresp bereq resp req obj))
|
|
80
|
+
rule %r/(?:#{var_prefix})\.http\.[\w.-]+/ do
|
|
81
|
+
token Name::Variable
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
# local variables (var.*)
|
|
85
|
+
rule %r/(?:var)\.[\w.-]+/ do
|
|
86
|
+
token Name::Variable
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
rule %r/(sub)(#{SPACE})([\w-]+)/ do
|
|
90
|
+
groups Keyword, Text, Name::Function
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
# inline C (C{ ... }C)
|
|
94
|
+
rule %r/C\{/ do
|
|
95
|
+
token Comment::Preproc
|
|
96
|
+
push :inline_c
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
rule %r/\.?[a-z_][\w.-]*/i do |m|
|
|
100
|
+
next token Keyword if self.class.keywords.include? m[0]
|
|
101
|
+
next token Name::Function if self.class.functions.include? m[0]
|
|
102
|
+
next token Name::Variable if self.class.variables.include? m[0]
|
|
103
|
+
token Text
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
## for number literals
|
|
107
|
+
|
|
108
|
+
decimal = %r/[0-9]+/
|
|
109
|
+
hex = %r/[0-9a-f]+/i
|
|
110
|
+
|
|
111
|
+
numeric = %r{
|
|
112
|
+
(?:
|
|
113
|
+
0x#{hex}
|
|
114
|
+
(?:\.#{hex})?
|
|
115
|
+
(?:p[+-]?#{hex})?
|
|
116
|
+
)
|
|
117
|
+
|
|
|
118
|
+
(?:
|
|
119
|
+
#{decimal}
|
|
120
|
+
(?:\.#{decimal})?
|
|
121
|
+
(?:e[+-]?#{decimal})?
|
|
122
|
+
)
|
|
123
|
+
}xi
|
|
124
|
+
|
|
125
|
+
# duration literals
|
|
126
|
+
duration_suffix = Regexp.union(%w(ms s m h d w y))
|
|
127
|
+
rule %r/#{numeric}#{duration_suffix}/, Num::Other
|
|
128
|
+
|
|
129
|
+
# numeric literals (integer / float)
|
|
130
|
+
rule numeric do |m|
|
|
131
|
+
case m[0]
|
|
132
|
+
when /^#{decimal}$/
|
|
133
|
+
token Num::Integer
|
|
134
|
+
when /^0x#{hex}$/
|
|
135
|
+
token Num::Integer
|
|
136
|
+
else
|
|
137
|
+
token Num::Float
|
|
138
|
+
end
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
# standard strings
|
|
142
|
+
rule %r/"/, Str::Double, :string
|
|
143
|
+
|
|
144
|
+
rule %r'[&|+-]{2}|[<=>!*/+-]=|<<|>>|!~|[-+*/%><=!&|~]', Operator
|
|
145
|
+
|
|
146
|
+
rule %r/[{}();.,]/, Punctuation
|
|
147
|
+
|
|
148
|
+
rule %r/\r\n?|\n/, Text
|
|
149
|
+
rule %r/./, Text
|
|
150
|
+
end
|
|
151
|
+
|
|
152
|
+
state :string do
|
|
153
|
+
rule %r/"/, Str::Double, :pop!
|
|
154
|
+
rule %r/\\[\\"nt]/, Str::Escape
|
|
155
|
+
|
|
156
|
+
rule %r/\r\n?|\n/, Str::Double
|
|
157
|
+
rule %r/./, Str::Double
|
|
158
|
+
end
|
|
159
|
+
|
|
160
|
+
state :inline_c do
|
|
161
|
+
rule %r/}C/, Comment::Preproc, :pop!
|
|
162
|
+
rule %r/.*?(?=}C)/m do
|
|
163
|
+
delegate C
|
|
164
|
+
end
|
|
165
|
+
end
|
|
166
|
+
end
|
|
167
|
+
end
|
|
168
|
+
end
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module Rouge
|
|
5
|
+
module Lexers
|
|
6
|
+
class VisualBasic < RegexLexer
|
|
7
|
+
title "Visual Basic"
|
|
8
|
+
desc "Visual Basic"
|
|
9
|
+
tag 'vb'
|
|
10
|
+
aliases 'visualbasic'
|
|
11
|
+
filenames '*.vbs', '*.vb'
|
|
12
|
+
mimetypes 'text/x-visualbasic', 'application/x-visualbasic'
|
|
13
|
+
|
|
14
|
+
def self.keywords
|
|
15
|
+
@keywords ||= Set.new %w(
|
|
16
|
+
AddHandler Alias ByRef ByVal CBool CByte CChar CDate CDbl CDec
|
|
17
|
+
CInt CLng CObj CSByte CShort CSng CStr CType CUInt CULng CUShort
|
|
18
|
+
Call Case Catch Class Const Continue Declare Default Delegate
|
|
19
|
+
Dim DirectCast Do Each Else ElseIf End EndIf Enum Erase Error
|
|
20
|
+
Event Exit False Finally For Friend Function Get Global GoSub
|
|
21
|
+
GoTo Handles If Implements Imports Inherits Interface Let
|
|
22
|
+
Lib Loop Me Module MustInherit MustOverride MyBase MyClass
|
|
23
|
+
Namespace Narrowing New Next Not NotInheritable NotOverridable
|
|
24
|
+
Nothing Of On Operator Option Optional Overloads Overridable
|
|
25
|
+
Overrides ParamArray Partial Private Property Protected Public
|
|
26
|
+
RaiseEvent ReDim ReadOnly RemoveHandler Resume Return Select Set
|
|
27
|
+
Shadows Shared Single Static Step Stop Structure Sub SyncLock
|
|
28
|
+
Then Throw To True Try TryCast Using Wend When While Widening
|
|
29
|
+
With WithEvents WriteOnly
|
|
30
|
+
)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def self.keywords_type
|
|
34
|
+
@keywords_type ||= Set.new %w(
|
|
35
|
+
Boolean Byte Char Date Decimal Double Integer Long Object
|
|
36
|
+
SByte Short Single String Variant UInteger ULong UShort
|
|
37
|
+
)
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def self.operator_words
|
|
41
|
+
@operator_words ||= Set.new %w(
|
|
42
|
+
AddressOf And AndAlso As GetType In Is IsNot Like Mod Or OrElse
|
|
43
|
+
TypeOf Xor
|
|
44
|
+
)
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def self.builtins
|
|
48
|
+
@builtins ||= Set.new %w(
|
|
49
|
+
Console ConsoleColor
|
|
50
|
+
)
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
id = /[a-z_]\w*/i
|
|
54
|
+
upper_id = /[A-Z]\w*/
|
|
55
|
+
|
|
56
|
+
state :whitespace do
|
|
57
|
+
rule %r/\s+/, Text
|
|
58
|
+
rule %r/\n/, Text, :bol
|
|
59
|
+
rule %r/rem\b.*?$/i, Comment::Single
|
|
60
|
+
rule %r(%\{.*?%\})m, Comment::Multiline
|
|
61
|
+
rule %r/'.*$/, Comment::Single
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
state :bol do
|
|
65
|
+
rule %r/\s+/, Text
|
|
66
|
+
rule %r/<.*?>/, Name::Attribute
|
|
67
|
+
rule(//) { :pop! }
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
state :root do
|
|
71
|
+
mixin :whitespace
|
|
72
|
+
rule %r(
|
|
73
|
+
[#]If\b .*? \bThen
|
|
74
|
+
| [#]ElseIf\b .*? \bThen
|
|
75
|
+
| [#]End \s+ If
|
|
76
|
+
| [#]Const
|
|
77
|
+
| [#]ExternalSource .*? \n
|
|
78
|
+
| [#]End \s+ ExternalSource
|
|
79
|
+
| [#]Region .*? \n
|
|
80
|
+
| [#]End \s+ Region
|
|
81
|
+
| [#]ExternalChecksum
|
|
82
|
+
)x, Comment::Preproc
|
|
83
|
+
rule %r/[.]/, Punctuation, :dotted
|
|
84
|
+
rule %r/[(){}!#,:]/, Punctuation
|
|
85
|
+
rule %r/Option\s+(Strict|Explicit|Compare)\s+(On|Off|Binary|Text)/,
|
|
86
|
+
Keyword::Declaration
|
|
87
|
+
rule %r/End\b/, Keyword, :end
|
|
88
|
+
rule %r/(Dim|Const)\b/, Keyword, :dim
|
|
89
|
+
rule %r/(Function|Sub|Property)\b/, Keyword, :funcname
|
|
90
|
+
rule %r/(Class|Structure|Enum)\b/, Keyword, :classname
|
|
91
|
+
rule %r/(Module|Namespace|Imports)\b/, Keyword, :namespace
|
|
92
|
+
|
|
93
|
+
rule upper_id do |m|
|
|
94
|
+
match = m[0]
|
|
95
|
+
if self.class.keywords.include? match
|
|
96
|
+
token Keyword
|
|
97
|
+
elsif self.class.keywords_type.include? match
|
|
98
|
+
token Keyword::Type
|
|
99
|
+
elsif self.class.operator_words.include? match
|
|
100
|
+
token Operator::Word
|
|
101
|
+
elsif self.class.builtins.include? match
|
|
102
|
+
token Name::Builtin
|
|
103
|
+
else
|
|
104
|
+
token Name
|
|
105
|
+
end
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
rule(
|
|
109
|
+
%r(&=|[*]=|/=|\\=|\^=|\+=|-=|<<=|>>=|<<|>>|:=|<=|>=|<>|[-&*/\\^+=<>.]),
|
|
110
|
+
Operator
|
|
111
|
+
)
|
|
112
|
+
|
|
113
|
+
rule %r/"/, Str, :string
|
|
114
|
+
rule %r/#{id}[%&@!#\$]?/, Name
|
|
115
|
+
rule %r/#.*?#/, Literal::Date
|
|
116
|
+
|
|
117
|
+
rule %r/(\d+\.\d*|\d*\.\d+)(f[+-]?\d+)?/i, Num::Float
|
|
118
|
+
rule %r/\d+([SILDFR]|US|UI|UL)?/, Num::Integer
|
|
119
|
+
rule %r/&H[0-9a-f]+([SILDFR]|US|UI|UL)?/, Num::Integer
|
|
120
|
+
rule %r/&O[0-7]+([SILDFR]|US|UI|UL)?/, Num::Integer
|
|
121
|
+
|
|
122
|
+
rule %r/_\n/, Keyword
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
state :dotted do
|
|
126
|
+
mixin :whitespace
|
|
127
|
+
rule id, Name, :pop!
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
state :string do
|
|
131
|
+
rule %r/""/, Str::Escape
|
|
132
|
+
rule %r/"C?/, Str, :pop!
|
|
133
|
+
rule %r/[^"]+/, Str
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
state :dim do
|
|
137
|
+
mixin :whitespace
|
|
138
|
+
rule id, Name::Variable, :pop!
|
|
139
|
+
rule(//) { pop! }
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
state :funcname do
|
|
143
|
+
mixin :whitespace
|
|
144
|
+
rule id, Name::Function, :pop!
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
state :classname do
|
|
148
|
+
mixin :whitespace
|
|
149
|
+
rule id, Name::Class, :pop!
|
|
150
|
+
end
|
|
151
|
+
|
|
152
|
+
state :namespace do
|
|
153
|
+
mixin :whitespace
|
|
154
|
+
rule %r/#{id}([.]#{id})*/, Name::Namespace, :pop!
|
|
155
|
+
end
|
|
156
|
+
|
|
157
|
+
state :end do
|
|
158
|
+
mixin :whitespace
|
|
159
|
+
rule %r/(Function|Sub|Property|Class|Structure|Enum|Module|Namespace)\b/,
|
|
160
|
+
Keyword, :pop!
|
|
161
|
+
rule(//) { pop! }
|
|
162
|
+
end
|
|
163
|
+
end
|
|
164
|
+
end
|
|
165
|
+
end
|