rouge 3.9.0 → 3.13.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 +4 -4
 - data/lib/rouge/demos/apex +9 -0
 - data/lib/rouge/demos/clean +6 -0
 - data/lib/rouge/demos/csvs +8 -0
 - data/lib/rouge/demos/jsl +3 -0
 - data/lib/rouge/demos/liquid +0 -1
 - data/lib/rouge/demos/lustre +6 -0
 - data/lib/rouge/demos/lutin +18 -0
 - data/lib/rouge/demos/minizinc +23 -0
 - data/lib/rouge/demos/q +6 -0
 - data/lib/rouge/demos/robot_framework +27 -0
 - data/lib/rouge/demos/sparql +6 -0
 - data/lib/rouge/demos/ttcn3 +6 -0
 - data/lib/rouge/guessers/disambiguation.rb +5 -0
 - data/lib/rouge/lexer.rb +3 -0
 - data/lib/rouge/lexers/apex.rb +126 -0
 - data/lib/rouge/lexers/bpf.rb +20 -6
 - data/lib/rouge/lexers/clean.rb +156 -0
 - data/lib/rouge/lexers/common_lisp.rb +1 -1
 - data/lib/rouge/lexers/coq.rb +12 -9
 - data/lib/rouge/lexers/csvs.rb +44 -0
 - data/lib/rouge/lexers/eex.rb +2 -1
 - data/lib/rouge/lexers/http.rb +1 -1
 - data/lib/rouge/lexers/jsl.rb +55 -0
 - data/lib/rouge/lexers/json.rb +1 -1
 - data/lib/rouge/lexers/kotlin.rb +21 -28
 - data/lib/rouge/lexers/liquid.rb +82 -108
 - data/lib/rouge/lexers/lustre.rb +79 -0
 - data/lib/rouge/lexers/lutin.rb +33 -0
 - data/lib/rouge/lexers/markdown.rb +7 -1
 - data/lib/rouge/lexers/mason.rb +0 -5
 - data/lib/rouge/lexers/minizinc.rb +87 -0
 - data/lib/rouge/lexers/perl.rb +1 -1
 - data/lib/rouge/lexers/q.rb +2 -1
 - data/lib/rouge/lexers/robot_framework.rb +249 -0
 - data/lib/rouge/lexers/shell.rb +5 -3
 - data/lib/rouge/lexers/sparql.rb +129 -0
 - data/lib/rouge/lexers/swift.rb +1 -1
 - data/lib/rouge/lexers/ttcn3.rb +119 -0
 - data/lib/rouge/plugins/redcarpet.rb +7 -1
 - data/lib/rouge/version.rb +1 -1
 - metadata +22 -2
 
    
        data/lib/rouge/lexers/shell.rb
    CHANGED
    
    | 
         @@ -9,10 +9,12 @@ module Rouge 
     | 
|
| 
       9 
9 
     | 
    
         | 
| 
       10 
10 
     | 
    
         
             
                  tag 'shell'
         
     | 
| 
       11 
11 
     | 
    
         
             
                  aliases 'bash', 'zsh', 'ksh', 'sh'
         
     | 
| 
       12 
     | 
    
         
            -
                  filenames '*.sh', '*.bash', '*.zsh', '*.ksh',
         
     | 
| 
       13 
     | 
    
         
            -
                            '. 
     | 
| 
      
 12 
     | 
    
         
            +
                  filenames '*.sh', '*.bash', '*.zsh', '*.ksh', '.bashrc', '.zshrc',
         
     | 
| 
      
 13 
     | 
    
         
            +
                            '.kshrc', '.profile', 'APKBUILD', 'PKGBUILD', '*.ebuild',
         
     | 
| 
      
 14 
     | 
    
         
            +
                            '*.eclass', '*.exheres-0', '*.exlib'
         
     | 
| 
       14 
15 
     | 
    
         | 
| 
       15 
     | 
    
         
            -
                  mimetypes 'application/x-sh', 'application/x-shellscript'
         
     | 
| 
      
 16 
     | 
    
         
            +
                  mimetypes 'application/x-sh', 'application/x-shellscript', 'text/x-sh',
         
     | 
| 
      
 17 
     | 
    
         
            +
                            'text/x-shellscript'
         
     | 
| 
       16 
18 
     | 
    
         | 
| 
       17 
19 
     | 
    
         
             
                  def self.detect?(text)
         
     | 
| 
       18 
20 
     | 
    
         
             
                    return true if text.shebang?(/(ba|z|k)?sh/)
         
     | 
| 
         @@ -0,0 +1,129 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # -*- coding: utf-8 -*- #
         
     | 
| 
      
 2 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            module Rouge
         
     | 
| 
      
 5 
     | 
    
         
            +
              module Lexers
         
     | 
| 
      
 6 
     | 
    
         
            +
                class SPARQL < RegexLexer
         
     | 
| 
      
 7 
     | 
    
         
            +
                  title "SPARQL"
         
     | 
| 
      
 8 
     | 
    
         
            +
                  desc "Semantic Query Language, for RDF data"
         
     | 
| 
      
 9 
     | 
    
         
            +
                  tag 'sparql'
         
     | 
| 
      
 10 
     | 
    
         
            +
                  filenames '*.rq'
         
     | 
| 
      
 11 
     | 
    
         
            +
                  mimetypes 'application/sparql-query'
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
                  def self.builtins
         
     | 
| 
      
 14 
     | 
    
         
            +
                    @builtins = Set.new %w[
         
     | 
| 
      
 15 
     | 
    
         
            +
                      ABS AVG BNODE BOUND CEIL COALESCE CONCAT CONTAINS COUNT DATATYPE DAY
         
     | 
| 
      
 16 
     | 
    
         
            +
                      ENCODE_FOR_URI FLOOR GROUP_CONCAT HOURS IF IRI isBLANK isIRI
         
     | 
| 
      
 17 
     | 
    
         
            +
                      isLITERAL isNUMERIC isURI LANG LANGMATCHES LCASE MAX MD5 MIN MINUTES
         
     | 
| 
      
 18 
     | 
    
         
            +
                      MONTH NOW RAND REGEX REPLACE ROUND SAMETERM SAMPLE SECONDS SEPARATOR
         
     | 
| 
      
 19 
     | 
    
         
            +
                      SHA1 SHA256 SHA384 SHA512 STR STRAFTER STRBEFORE STRDT STRENDS
         
     | 
| 
      
 20 
     | 
    
         
            +
                      STRLANG STRLEN STRSTARTS STRUUID SUBSTR SUM TIMEZONE TZ UCASE URI
         
     | 
| 
      
 21 
     | 
    
         
            +
                      UUID YEAR
         
     | 
| 
      
 22 
     | 
    
         
            +
                    ]
         
     | 
| 
      
 23 
     | 
    
         
            +
                  end
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
                  def self.keywords
         
     | 
| 
      
 26 
     | 
    
         
            +
                    @keywords = Set.new %w[
         
     | 
| 
      
 27 
     | 
    
         
            +
                      ADD ALL AS ASC ASK BASE BIND BINDINGS BY CLEAR CONSTRUCT COPY CREATE
         
     | 
| 
      
 28 
     | 
    
         
            +
                      DATA DEFAULT DELETE DESC DESCRIBE DISTINCT DROP EXISTS FILTER FROM
         
     | 
| 
      
 29 
     | 
    
         
            +
                      GRAPH GROUP BY HAVING IN INSERT LIMIT LOAD MINUS MOVE NAMED NOT
         
     | 
| 
      
 30 
     | 
    
         
            +
                      OFFSET OPTIONAL ORDER PREFIX SELECT REDUCED SERVICE SILENT TO UNDEF
         
     | 
| 
      
 31 
     | 
    
         
            +
                      UNION USING VALUES WHERE WITH
         
     | 
| 
      
 32 
     | 
    
         
            +
                    ]
         
     | 
| 
      
 33 
     | 
    
         
            +
                  end
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
                  state :root do
         
     | 
| 
      
 36 
     | 
    
         
            +
                    rule %r(\s+)m, Text::Whitespace
         
     | 
| 
      
 37 
     | 
    
         
            +
                    rule %r(#.*), Comment::Single
         
     | 
| 
      
 38 
     | 
    
         
            +
                    
         
     | 
| 
      
 39 
     | 
    
         
            +
                    rule %r("""), Str::Double, :string_double_literal
         
     | 
| 
      
 40 
     | 
    
         
            +
                    rule %r("), Str::Double, :string_double
         
     | 
| 
      
 41 
     | 
    
         
            +
                    rule %r('''), Str::Single, :string_single_literal
         
     | 
| 
      
 42 
     | 
    
         
            +
                    rule %r('), Str::Single, :string_single
         
     | 
| 
      
 43 
     | 
    
         
            +
                   
         
     | 
| 
      
 44 
     | 
    
         
            +
                    rule %r([$?]\w+), Name::Variable
         
     | 
| 
      
 45 
     | 
    
         
            +
                    rule %r((\w*:)(\w+)?) do |m|
         
     | 
| 
      
 46 
     | 
    
         
            +
                      token Name::Namespace, m[1]
         
     | 
| 
      
 47 
     | 
    
         
            +
                      token Str::Symbol, m[2]
         
     | 
| 
      
 48 
     | 
    
         
            +
                    end
         
     | 
| 
      
 49 
     | 
    
         
            +
                    rule %r(<[^>]*>), Name::Namespace
         
     | 
| 
      
 50 
     | 
    
         
            +
                    rule %r(true|false)i, Keyword::Constant
         
     | 
| 
      
 51 
     | 
    
         
            +
                    
         
     | 
| 
      
 52 
     | 
    
         
            +
                    rule %r([A-Z]\w+\b)i do |m|
         
     | 
| 
      
 53 
     | 
    
         
            +
                      if self.class.builtins.include? m[0].upcase
         
     | 
| 
      
 54 
     | 
    
         
            +
                        token Name::Builtin
         
     | 
| 
      
 55 
     | 
    
         
            +
                      elsif self.class.keywords.include? m[0].upcase
         
     | 
| 
      
 56 
     | 
    
         
            +
                        token Keyword
         
     | 
| 
      
 57 
     | 
    
         
            +
                      else
         
     | 
| 
      
 58 
     | 
    
         
            +
                        token Error
         
     | 
| 
      
 59 
     | 
    
         
            +
                      end
         
     | 
| 
      
 60 
     | 
    
         
            +
                    end
         
     | 
| 
      
 61 
     | 
    
         
            +
             
     | 
| 
      
 62 
     | 
    
         
            +
                    rule %r([+\-]?(?:\d+\.\d*|\.\d+)(?:[e][+\-]?[0-9]+)?)i, Num::Float
         
     | 
| 
      
 63 
     | 
    
         
            +
                    rule %r([+\-]?\d+), Num::Integer
         
     | 
| 
      
 64 
     | 
    
         
            +
                    rule %r([\]\[(){}.,;=]), Punctuation
         
     | 
| 
      
 65 
     | 
    
         
            +
                    rule %r([/?*+=!<>]|&&|\|\||\^\^), Operator
         
     | 
| 
      
 66 
     | 
    
         
            +
                  end
         
     | 
| 
      
 67 
     | 
    
         
            +
             
     | 
| 
      
 68 
     | 
    
         
            +
                  state :string_double_common do
         
     | 
| 
      
 69 
     | 
    
         
            +
                    mixin :string_escapes
         
     | 
| 
      
 70 
     | 
    
         
            +
                    rule %r(\\), Str::Double
         
     | 
| 
      
 71 
     | 
    
         
            +
                    rule %r([^"\\]+), Str::Double
         
     | 
| 
      
 72 
     | 
    
         
            +
                  end
         
     | 
| 
      
 73 
     | 
    
         
            +
             
     | 
| 
      
 74 
     | 
    
         
            +
                  state :string_double do
         
     | 
| 
      
 75 
     | 
    
         
            +
                    rule %r(") do
         
     | 
| 
      
 76 
     | 
    
         
            +
                      token Str::Double
         
     | 
| 
      
 77 
     | 
    
         
            +
                      goto :string_end
         
     | 
| 
      
 78 
     | 
    
         
            +
                    end
         
     | 
| 
      
 79 
     | 
    
         
            +
                    mixin :string_double_common
         
     | 
| 
      
 80 
     | 
    
         
            +
                  end
         
     | 
| 
      
 81 
     | 
    
         
            +
             
     | 
| 
      
 82 
     | 
    
         
            +
                  state :string_double_literal do
         
     | 
| 
      
 83 
     | 
    
         
            +
                    rule %r(""") do
         
     | 
| 
      
 84 
     | 
    
         
            +
                      token Str::Double
         
     | 
| 
      
 85 
     | 
    
         
            +
                      goto :string_end
         
     | 
| 
      
 86 
     | 
    
         
            +
                    end
         
     | 
| 
      
 87 
     | 
    
         
            +
                    rule %r("), Str::Double
         
     | 
| 
      
 88 
     | 
    
         
            +
                    mixin :string_double_common
         
     | 
| 
      
 89 
     | 
    
         
            +
                  end
         
     | 
| 
      
 90 
     | 
    
         
            +
             
     | 
| 
      
 91 
     | 
    
         
            +
                  state :string_single_common do
         
     | 
| 
      
 92 
     | 
    
         
            +
                    mixin :string_escapes
         
     | 
| 
      
 93 
     | 
    
         
            +
                    rule %r(\\), Str::Single
         
     | 
| 
      
 94 
     | 
    
         
            +
                    rule %r([^'\\]+), Str::Single
         
     | 
| 
      
 95 
     | 
    
         
            +
                  end
         
     | 
| 
      
 96 
     | 
    
         
            +
             
     | 
| 
      
 97 
     | 
    
         
            +
                  state :string_single do
         
     | 
| 
      
 98 
     | 
    
         
            +
                    rule %r(') do
         
     | 
| 
      
 99 
     | 
    
         
            +
                      token Str::Single
         
     | 
| 
      
 100 
     | 
    
         
            +
                      goto :string_end
         
     | 
| 
      
 101 
     | 
    
         
            +
                    end
         
     | 
| 
      
 102 
     | 
    
         
            +
                    mixin :string_single_common
         
     | 
| 
      
 103 
     | 
    
         
            +
                  end
         
     | 
| 
      
 104 
     | 
    
         
            +
                  
         
     | 
| 
      
 105 
     | 
    
         
            +
                  state :string_single_literal do
         
     | 
| 
      
 106 
     | 
    
         
            +
                    rule %r(''') do
         
     | 
| 
      
 107 
     | 
    
         
            +
                      token Str::Single
         
     | 
| 
      
 108 
     | 
    
         
            +
                      goto :string_end
         
     | 
| 
      
 109 
     | 
    
         
            +
                    end
         
     | 
| 
      
 110 
     | 
    
         
            +
                    rule %r('), Str::Single
         
     | 
| 
      
 111 
     | 
    
         
            +
                    mixin :string_single_common
         
     | 
| 
      
 112 
     | 
    
         
            +
                  end
         
     | 
| 
      
 113 
     | 
    
         
            +
             
     | 
| 
      
 114 
     | 
    
         
            +
                  state :string_escapes do
         
     | 
| 
      
 115 
     | 
    
         
            +
                    rule %r(\\[tbnrf"'\\]), Str::Escape
         
     | 
| 
      
 116 
     | 
    
         
            +
                    rule %r(\\u\h{4}), Str::Escape
         
     | 
| 
      
 117 
     | 
    
         
            +
                    rule %r(\\U\h{8}), Str::Escape
         
     | 
| 
      
 118 
     | 
    
         
            +
                  end
         
     | 
| 
      
 119 
     | 
    
         
            +
             
     | 
| 
      
 120 
     | 
    
         
            +
                  state :string_end do
         
     | 
| 
      
 121 
     | 
    
         
            +
                    rule %r((@)([a-zA-Z]+(?:-[a-zA-Z0-9]+)*)) do
         
     | 
| 
      
 122 
     | 
    
         
            +
                      groups Operator, Name::Property
         
     | 
| 
      
 123 
     | 
    
         
            +
                    end
         
     | 
| 
      
 124 
     | 
    
         
            +
                    rule %r(\^\^), Operator
         
     | 
| 
      
 125 
     | 
    
         
            +
                    rule(//) { pop! }
         
     | 
| 
      
 126 
     | 
    
         
            +
                  end
         
     | 
| 
      
 127 
     | 
    
         
            +
                end
         
     | 
| 
      
 128 
     | 
    
         
            +
              end
         
     | 
| 
      
 129 
     | 
    
         
            +
            end
         
     | 
    
        data/lib/rouge/lexers/swift.rb
    CHANGED
    
    | 
         @@ -80,7 +80,7 @@ module Rouge 
     | 
|
| 
       80 
80 
     | 
    
         
             
                    rule %r/0b[01]+(?:_[01]+)*/, Num::Bin
         
     | 
| 
       81 
81 
     | 
    
         
             
                    rule %r{[\d]+(?:_\d+)*}, Num::Integer
         
     | 
| 
       82 
82 
     | 
    
         | 
| 
       83 
     | 
    
         
            -
                    rule %r/@#{id} 
     | 
| 
      
 83 
     | 
    
         
            +
                    rule %r/@#{id}/, Keyword::Declaration
         
     | 
| 
       84 
84 
     | 
    
         | 
| 
       85 
85 
     | 
    
         
             
                    rule %r/(private|internal)(\([ ]*)(\w+)([ ]*\))/ do |m|
         
     | 
| 
       86 
86 
     | 
    
         
             
                      if m[3] == 'set'
         
     | 
| 
         @@ -0,0 +1,119 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # -*- coding: utf-8 -*- #
         
     | 
| 
      
 2 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            module Rouge
         
     | 
| 
      
 5 
     | 
    
         
            +
              module Lexers
         
     | 
| 
      
 6 
     | 
    
         
            +
                class TTCN3 < RegexLexer
         
     | 
| 
      
 7 
     | 
    
         
            +
                  title "TTCN3"
         
     | 
| 
      
 8 
     | 
    
         
            +
                  desc "The TTCN3 programming language (ttcn-3.org)"
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
                  tag 'ttcn3'
         
     | 
| 
      
 11 
     | 
    
         
            +
                  filenames '*.ttcn', '*.ttcn3'
         
     | 
| 
      
 12 
     | 
    
         
            +
                  mimetypes 'text/x-ttcn3', 'text/x-ttcn'
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
                  def self.keywords
         
     | 
| 
      
 15 
     | 
    
         
            +
                    @keywords ||= %w(
         
     | 
| 
      
 16 
     | 
    
         
            +
                      module import group type port component signature external
         
     | 
| 
      
 17 
     | 
    
         
            +
                      execute const template function altstep testcase var timer if
         
     | 
| 
      
 18 
     | 
    
         
            +
                      else select case for while do label goto start stop return
         
     | 
| 
      
 19 
     | 
    
         
            +
                      break int2char int2unichar int2bit int2enum int2hex int2oct
         
     | 
| 
      
 20 
     | 
    
         
            +
                      int2str int2float float2int char2int char2oct unichar2int
         
     | 
| 
      
 21 
     | 
    
         
            +
                      unichar2oct bit2int bit2hex bit2oct bit2str hex2int hex2bit
         
     | 
| 
      
 22 
     | 
    
         
            +
                      hex2oct hex2str oct2int oct2bit oct2hex oct2str oct2char
         
     | 
| 
      
 23 
     | 
    
         
            +
                      oct2unichar str2int str2hex str2oct str2float enum2int
         
     | 
| 
      
 24 
     | 
    
         
            +
                      any2unistr lengthof sizeof ispresent ischosen isvalue isbound
         
     | 
| 
      
 25 
     | 
    
         
            +
                      istemplatekind regexp substr replace encvalue decvalue
         
     | 
| 
      
 26 
     | 
    
         
            +
                      encvalue_unichar decvalue_unichar encvalue_o decvalue_o
         
     | 
| 
      
 27 
     | 
    
         
            +
                      get_stringencoding remove_bom rnd hostid send receive
         
     | 
| 
      
 28 
     | 
    
         
            +
                      setverdict
         
     | 
| 
      
 29 
     | 
    
         
            +
                    )
         
     | 
| 
      
 30 
     | 
    
         
            +
                  end
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
                  def self.reserved
         
     | 
| 
      
 33 
     | 
    
         
            +
                    @reserved ||= %w(
         
     | 
| 
      
 34 
     | 
    
         
            +
                      all alt apply assert at configuration conjunct const control
         
     | 
| 
      
 35 
     | 
    
         
            +
                      delta deterministic disjunct duration fail finished fuzzy from
         
     | 
| 
      
 36 
     | 
    
         
            +
                      history implies inconc inv lazy mod mode notinv now omit
         
     | 
| 
      
 37 
     | 
    
         
            +
                      onentry onexit par pass prev realtime seq setstate static
         
     | 
| 
      
 38 
     | 
    
         
            +
                      stepsize stream timestamp until values wait
         
     | 
| 
      
 39 
     | 
    
         
            +
                    )
         
     | 
| 
      
 40 
     | 
    
         
            +
                  end
         
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
      
 42 
     | 
    
         
            +
                  def self.types
         
     | 
| 
      
 43 
     | 
    
         
            +
                    @types ||= %w(
         
     | 
| 
      
 44 
     | 
    
         
            +
                      anytype address boolean bitstring charstring hexstring octetstring
         
     | 
| 
      
 45 
     | 
    
         
            +
                      component enumerated float integer port record set of union universal
         
     | 
| 
      
 46 
     | 
    
         
            +
                    )
         
     | 
| 
      
 47 
     | 
    
         
            +
                  end
         
     | 
| 
      
 48 
     | 
    
         
            +
             
     | 
| 
      
 49 
     | 
    
         
            +
                  # optional comment or whitespace
         
     | 
| 
      
 50 
     | 
    
         
            +
                  ws = %r((?:\s|//.*?\n|/[*].*?[*]/)+)
         
     | 
| 
      
 51 
     | 
    
         
            +
                  id = /[a-zA-Z_]\w*/
         
     | 
| 
      
 52 
     | 
    
         
            +
                  digit = /\d_+\d|\d/
         
     | 
| 
      
 53 
     | 
    
         
            +
                  bin_digit = /[01]_+[01]|[01]/
         
     | 
| 
      
 54 
     | 
    
         
            +
                  oct_digit = /[0-7]_+[0-7]|[0-7]/
         
     | 
| 
      
 55 
     | 
    
         
            +
                  hex_digit = /\h_+\h|\h/
         
     | 
| 
      
 56 
     | 
    
         
            +
             
     | 
| 
      
 57 
     | 
    
         
            +
                  state :statements do
         
     | 
| 
      
 58 
     | 
    
         
            +
                    rule %r/\n+/m, Text
         
     | 
| 
      
 59 
     | 
    
         
            +
                    rule %r/[ \t\r]+/, Text
         
     | 
| 
      
 60 
     | 
    
         
            +
                    rule %r/\\\n/, Text # line continuation
         
     | 
| 
      
 61 
     | 
    
         
            +
             
     | 
| 
      
 62 
     | 
    
         
            +
                    rule %r(//(\\.|.)*?$), Comment::Single
         
     | 
| 
      
 63 
     | 
    
         
            +
                    rule %r(/(\\\n)?[*].*?[*](\\\n)?/)m, Comment::Multiline
         
     | 
| 
      
 64 
     | 
    
         
            +
             
     | 
| 
      
 65 
     | 
    
         
            +
                    rule %r/"/, Str, :string
         
     | 
| 
      
 66 
     | 
    
         
            +
                    rule %r/'(?:\\.|[^\\]|\\u[0-9a-f]{4})'/, Str::Char
         
     | 
| 
      
 67 
     | 
    
         
            +
                    
         
     | 
| 
      
 68 
     | 
    
         
            +
                    rule %r/#{digit}+\.#{digit}+([eE]#{digit}+)?[fd]?/i, Num::Float
         
     | 
| 
      
 69 
     | 
    
         
            +
                    rule %r/'#{bin_digit}+'B/i, Num::Bin
         
     | 
| 
      
 70 
     | 
    
         
            +
                    rule %r/'#{hex_digit}+'H/i, Num::Hex
         
     | 
| 
      
 71 
     | 
    
         
            +
                    rule %r/'#{oct_digit}+'O/i, Num::Oct
         
     | 
| 
      
 72 
     | 
    
         
            +
                    rule %r/#{digit}+/i, Num::Integer
         
     | 
| 
      
 73 
     | 
    
         
            +
             
     | 
| 
      
 74 
     | 
    
         
            +
                    rule %r([~!%^&*+:=\|?<>/-]), Operator
         
     | 
| 
      
 75 
     | 
    
         
            +
                    rule %r/[()\[\]{},.;:]/, Punctuation
         
     | 
| 
      
 76 
     | 
    
         
            +
             
     | 
| 
      
 77 
     | 
    
         
            +
                    rule %r/(?:true|false|null)\b/, Name::Builtin
         
     | 
| 
      
 78 
     | 
    
         
            +
             
     | 
| 
      
 79 
     | 
    
         
            +
                    rule id do |m|
         
     | 
| 
      
 80 
     | 
    
         
            +
                      name = m[0]
         
     | 
| 
      
 81 
     | 
    
         
            +
                      if self.class.keywords.include? name
         
     | 
| 
      
 82 
     | 
    
         
            +
                        token Keyword
         
     | 
| 
      
 83 
     | 
    
         
            +
                      elsif self.class.types.include? name
         
     | 
| 
      
 84 
     | 
    
         
            +
                        token Keyword::Type
         
     | 
| 
      
 85 
     | 
    
         
            +
                      elsif self.class.reserved.include? name
         
     | 
| 
      
 86 
     | 
    
         
            +
                        token Keyword::Reserved
         
     | 
| 
      
 87 
     | 
    
         
            +
                      else
         
     | 
| 
      
 88 
     | 
    
         
            +
                        token Name
         
     | 
| 
      
 89 
     | 
    
         
            +
                      end
         
     | 
| 
      
 90 
     | 
    
         
            +
                    end
         
     | 
| 
      
 91 
     | 
    
         
            +
                  end
         
     | 
| 
      
 92 
     | 
    
         
            +
             
     | 
| 
      
 93 
     | 
    
         
            +
                  state :root do
         
     | 
| 
      
 94 
     | 
    
         
            +
                    rule %r/module\b/, Keyword::Declaration, :module
         
     | 
| 
      
 95 
     | 
    
         
            +
                    rule %r/import\b/, Keyword::Namespace, :import
         
     | 
| 
      
 96 
     | 
    
         
            +
             
     | 
| 
      
 97 
     | 
    
         
            +
                    mixin :statements
         
     | 
| 
      
 98 
     | 
    
         
            +
                  end
         
     | 
| 
      
 99 
     | 
    
         
            +
             
     | 
| 
      
 100 
     | 
    
         
            +
                  state :string do
         
     | 
| 
      
 101 
     | 
    
         
            +
                    rule %r/"/, Str, :pop!
         
     | 
| 
      
 102 
     | 
    
         
            +
                    rule %r/\\([\\abfnrtv"']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})/, Str::Escape
         
     | 
| 
      
 103 
     | 
    
         
            +
                    rule %r/[^\\"\n]+/, Str
         
     | 
| 
      
 104 
     | 
    
         
            +
                    rule %r/\\\n/, Str
         
     | 
| 
      
 105 
     | 
    
         
            +
                    rule %r/\\/, Str # stray backslash
         
     | 
| 
      
 106 
     | 
    
         
            +
                  end
         
     | 
| 
      
 107 
     | 
    
         
            +
             
     | 
| 
      
 108 
     | 
    
         
            +
                  state :module do
         
     | 
| 
      
 109 
     | 
    
         
            +
                    rule %r/\s+/m, Text
         
     | 
| 
      
 110 
     | 
    
         
            +
                    rule id, Name::Class, :pop!
         
     | 
| 
      
 111 
     | 
    
         
            +
                  end
         
     | 
| 
      
 112 
     | 
    
         
            +
             
     | 
| 
      
 113 
     | 
    
         
            +
                  state :import do
         
     | 
| 
      
 114 
     | 
    
         
            +
                    rule %r/\s+/m, Text
         
     | 
| 
      
 115 
     | 
    
         
            +
                    rule %r/[\w.]+\*?/, Name::Namespace, :pop!
         
     | 
| 
      
 116 
     | 
    
         
            +
                  end
         
     | 
| 
      
 117 
     | 
    
         
            +
                end
         
     | 
| 
      
 118 
     | 
    
         
            +
              end
         
     | 
| 
      
 119 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -9,7 +9,13 @@ module Rouge 
     | 
|
| 
       9 
9 
     | 
    
         
             
              module Plugins
         
     | 
| 
       10 
10 
     | 
    
         
             
                module Redcarpet
         
     | 
| 
       11 
11 
     | 
    
         
             
                  def block_code(code, language)
         
     | 
| 
       12 
     | 
    
         
            -
                    lexer = 
     | 
| 
      
 12 
     | 
    
         
            +
                    lexer =
         
     | 
| 
      
 13 
     | 
    
         
            +
                      begin
         
     | 
| 
      
 14 
     | 
    
         
            +
                        Lexer.find_fancy(language, code)
         
     | 
| 
      
 15 
     | 
    
         
            +
                      rescue Guesser::Ambiguous => e
         
     | 
| 
      
 16 
     | 
    
         
            +
                        e.alternatives.first
         
     | 
| 
      
 17 
     | 
    
         
            +
                      end
         
     | 
| 
      
 18 
     | 
    
         
            +
                    lexer ||= Lexers::PlainText
         
     | 
| 
       13 
19 
     | 
    
         | 
| 
       14 
20 
     | 
    
         
             
                    # XXX HACK: Redcarpet strips hard tabs out of code blocks,
         
     | 
| 
       15 
21 
     | 
    
         
             
                    # so we assume you're not using leading spaces that aren't tabs,
         
     | 
    
        data/lib/rouge/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: rouge
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 3. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 3.13.0
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Jeanine Adkisson
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2019- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2019-11-12 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies: []
         
     | 
| 
       13 
13 
     | 
    
         
             
            description: Rouge aims to a be a simple, easy-to-extend drop-in replacement for pygments.
         
     | 
| 
       14 
14 
     | 
    
         
             
            email:
         
     | 
| 
         @@ -27,6 +27,7 @@ files: 
     | 
|
| 
       27 
27 
     | 
    
         
             
            - lib/rouge/demos/actionscript
         
     | 
| 
       28 
28 
     | 
    
         
             
            - lib/rouge/demos/ada
         
     | 
| 
       29 
29 
     | 
    
         
             
            - lib/rouge/demos/apache
         
     | 
| 
      
 30 
     | 
    
         
            +
            - lib/rouge/demos/apex
         
     | 
| 
       30 
31 
     | 
    
         
             
            - lib/rouge/demos/apiblueprint
         
     | 
| 
       31 
32 
     | 
    
         
             
            - lib/rouge/demos/applescript
         
     | 
| 
       32 
33 
     | 
    
         
             
            - lib/rouge/demos/armasm
         
     | 
| 
         @@ -40,6 +41,7 @@ files: 
     | 
|
| 
       40 
41 
     | 
    
         
             
            - lib/rouge/demos/c
         
     | 
| 
       41 
42 
     | 
    
         
             
            - lib/rouge/demos/ceylon
         
     | 
| 
       42 
43 
     | 
    
         
             
            - lib/rouge/demos/cfscript
         
     | 
| 
      
 44 
     | 
    
         
            +
            - lib/rouge/demos/clean
         
     | 
| 
       43 
45 
     | 
    
         
             
            - lib/rouge/demos/clojure
         
     | 
| 
       44 
46 
     | 
    
         
             
            - lib/rouge/demos/cmake
         
     | 
| 
       45 
47 
     | 
    
         
             
            - lib/rouge/demos/cmhg
         
     | 
| 
         @@ -52,6 +54,7 @@ files: 
     | 
|
| 
       52 
54 
     | 
    
         
             
            - lib/rouge/demos/crystal
         
     | 
| 
       53 
55 
     | 
    
         
             
            - lib/rouge/demos/csharp
         
     | 
| 
       54 
56 
     | 
    
         
             
            - lib/rouge/demos/css
         
     | 
| 
      
 57 
     | 
    
         
            +
            - lib/rouge/demos/csvs
         
     | 
| 
       55 
58 
     | 
    
         
             
            - lib/rouge/demos/cuda
         
     | 
| 
       56 
59 
     | 
    
         
             
            - lib/rouge/demos/cython
         
     | 
| 
       57 
60 
     | 
    
         
             
            - lib/rouge/demos/d
         
     | 
| 
         @@ -98,6 +101,7 @@ files: 
     | 
|
| 
       98 
101 
     | 
    
         
             
            - lib/rouge/demos/java
         
     | 
| 
       99 
102 
     | 
    
         
             
            - lib/rouge/demos/javascript
         
     | 
| 
       100 
103 
     | 
    
         
             
            - lib/rouge/demos/jinja
         
     | 
| 
      
 104 
     | 
    
         
            +
            - lib/rouge/demos/jsl
         
     | 
| 
       101 
105 
     | 
    
         
             
            - lib/rouge/demos/json
         
     | 
| 
       102 
106 
     | 
    
         
             
            - lib/rouge/demos/json-doc
         
     | 
| 
       103 
107 
     | 
    
         
             
            - lib/rouge/demos/jsonnet
         
     | 
| 
         @@ -111,6 +115,8 @@ files: 
     | 
|
| 
       111 
115 
     | 
    
         
             
            - lib/rouge/demos/literate_haskell
         
     | 
| 
       112 
116 
     | 
    
         
             
            - lib/rouge/demos/llvm
         
     | 
| 
       113 
117 
     | 
    
         
             
            - lib/rouge/demos/lua
         
     | 
| 
      
 118 
     | 
    
         
            +
            - lib/rouge/demos/lustre
         
     | 
| 
      
 119 
     | 
    
         
            +
            - lib/rouge/demos/lutin
         
     | 
| 
       114 
120 
     | 
    
         
             
            - lib/rouge/demos/m68k
         
     | 
| 
       115 
121 
     | 
    
         
             
            - lib/rouge/demos/magik
         
     | 
| 
       116 
122 
     | 
    
         
             
            - lib/rouge/demos/make
         
     | 
| 
         @@ -118,6 +124,7 @@ files: 
     | 
|
| 
       118 
124 
     | 
    
         
             
            - lib/rouge/demos/mason
         
     | 
| 
       119 
125 
     | 
    
         
             
            - lib/rouge/demos/mathematica
         
     | 
| 
       120 
126 
     | 
    
         
             
            - lib/rouge/demos/matlab
         
     | 
| 
      
 127 
     | 
    
         
            +
            - lib/rouge/demos/minizinc
         
     | 
| 
       121 
128 
     | 
    
         
             
            - lib/rouge/demos/moonscript
         
     | 
| 
       122 
129 
     | 
    
         
             
            - lib/rouge/demos/mosel
         
     | 
| 
       123 
130 
     | 
    
         
             
            - lib/rouge/demos/msgtrans
         
     | 
| 
         @@ -149,6 +156,7 @@ files: 
     | 
|
| 
       149 
156 
     | 
    
         
             
            - lib/rouge/demos/r
         
     | 
| 
       150 
157 
     | 
    
         
             
            - lib/rouge/demos/racket
         
     | 
| 
       151 
158 
     | 
    
         
             
            - lib/rouge/demos/reasonml
         
     | 
| 
      
 159 
     | 
    
         
            +
            - lib/rouge/demos/robot_framework
         
     | 
| 
       152 
160 
     | 
    
         
             
            - lib/rouge/demos/ruby
         
     | 
| 
       153 
161 
     | 
    
         
             
            - lib/rouge/demos/rust
         
     | 
| 
       154 
162 
     | 
    
         
             
            - lib/rouge/demos/sas
         
     | 
| 
         @@ -163,6 +171,7 @@ files: 
     | 
|
| 
       163 
171 
     | 
    
         
             
            - lib/rouge/demos/smalltalk
         
     | 
| 
       164 
172 
     | 
    
         
             
            - lib/rouge/demos/smarty
         
     | 
| 
       165 
173 
     | 
    
         
             
            - lib/rouge/demos/sml
         
     | 
| 
      
 174 
     | 
    
         
            +
            - lib/rouge/demos/sparql
         
     | 
| 
       166 
175 
     | 
    
         
             
            - lib/rouge/demos/sqf
         
     | 
| 
       167 
176 
     | 
    
         
             
            - lib/rouge/demos/sql
         
     | 
| 
       168 
177 
     | 
    
         
             
            - lib/rouge/demos/supercollider
         
     | 
| 
         @@ -173,6 +182,7 @@ files: 
     | 
|
| 
       173 
182 
     | 
    
         
             
            - lib/rouge/demos/tex
         
     | 
| 
       174 
183 
     | 
    
         
             
            - lib/rouge/demos/toml
         
     | 
| 
       175 
184 
     | 
    
         
             
            - lib/rouge/demos/tsx
         
     | 
| 
      
 185 
     | 
    
         
            +
            - lib/rouge/demos/ttcn3
         
     | 
| 
       176 
186 
     | 
    
         
             
            - lib/rouge/demos/tulip
         
     | 
| 
       177 
187 
     | 
    
         
             
            - lib/rouge/demos/turtle
         
     | 
| 
       178 
188 
     | 
    
         
             
            - lib/rouge/demos/twig
         
     | 
| 
         @@ -214,6 +224,7 @@ files: 
     | 
|
| 
       214 
224 
     | 
    
         
             
            - lib/rouge/lexers/ada.rb
         
     | 
| 
       215 
225 
     | 
    
         
             
            - lib/rouge/lexers/apache.rb
         
     | 
| 
       216 
226 
     | 
    
         
             
            - lib/rouge/lexers/apache/keywords.yml
         
     | 
| 
      
 227 
     | 
    
         
            +
            - lib/rouge/lexers/apex.rb
         
     | 
| 
       217 
228 
     | 
    
         
             
            - lib/rouge/lexers/apiblueprint.rb
         
     | 
| 
       218 
229 
     | 
    
         
             
            - lib/rouge/lexers/apple_script.rb
         
     | 
| 
       219 
230 
     | 
    
         
             
            - lib/rouge/lexers/armasm.rb
         
     | 
| 
         @@ -227,6 +238,7 @@ files: 
     | 
|
| 
       227 
238 
     | 
    
         
             
            - lib/rouge/lexers/c.rb
         
     | 
| 
       228 
239 
     | 
    
         
             
            - lib/rouge/lexers/ceylon.rb
         
     | 
| 
       229 
240 
     | 
    
         
             
            - lib/rouge/lexers/cfscript.rb
         
     | 
| 
      
 241 
     | 
    
         
            +
            - lib/rouge/lexers/clean.rb
         
     | 
| 
       230 
242 
     | 
    
         
             
            - lib/rouge/lexers/clojure.rb
         
     | 
| 
       231 
243 
     | 
    
         
             
            - lib/rouge/lexers/cmake.rb
         
     | 
| 
       232 
244 
     | 
    
         
             
            - lib/rouge/lexers/cmhg.rb
         
     | 
| 
         @@ -239,6 +251,7 @@ files: 
     | 
|
| 
       239 
251 
     | 
    
         
             
            - lib/rouge/lexers/crystal.rb
         
     | 
| 
       240 
252 
     | 
    
         
             
            - lib/rouge/lexers/csharp.rb
         
     | 
| 
       241 
253 
     | 
    
         
             
            - lib/rouge/lexers/css.rb
         
     | 
| 
      
 254 
     | 
    
         
            +
            - lib/rouge/lexers/csvs.rb
         
     | 
| 
       242 
255 
     | 
    
         
             
            - lib/rouge/lexers/cuda.rb
         
     | 
| 
       243 
256 
     | 
    
         
             
            - lib/rouge/lexers/cython.rb
         
     | 
| 
       244 
257 
     | 
    
         
             
            - lib/rouge/lexers/d.rb
         
     | 
| 
         @@ -285,6 +298,7 @@ files: 
     | 
|
| 
       285 
298 
     | 
    
         
             
            - lib/rouge/lexers/java.rb
         
     | 
| 
       286 
299 
     | 
    
         
             
            - lib/rouge/lexers/javascript.rb
         
     | 
| 
       287 
300 
     | 
    
         
             
            - lib/rouge/lexers/jinja.rb
         
     | 
| 
      
 301 
     | 
    
         
            +
            - lib/rouge/lexers/jsl.rb
         
     | 
| 
       288 
302 
     | 
    
         
             
            - lib/rouge/lexers/json.rb
         
     | 
| 
       289 
303 
     | 
    
         
             
            - lib/rouge/lexers/json_doc.rb
         
     | 
| 
       290 
304 
     | 
    
         
             
            - lib/rouge/lexers/jsonnet.rb
         
     | 
| 
         @@ -300,6 +314,8 @@ files: 
     | 
|
| 
       300 
314 
     | 
    
         
             
            - lib/rouge/lexers/llvm.rb
         
     | 
| 
       301 
315 
     | 
    
         
             
            - lib/rouge/lexers/lua.rb
         
     | 
| 
       302 
316 
     | 
    
         
             
            - lib/rouge/lexers/lua/builtins.rb
         
     | 
| 
      
 317 
     | 
    
         
            +
            - lib/rouge/lexers/lustre.rb
         
     | 
| 
      
 318 
     | 
    
         
            +
            - lib/rouge/lexers/lutin.rb
         
     | 
| 
       303 
319 
     | 
    
         
             
            - lib/rouge/lexers/m68k.rb
         
     | 
| 
       304 
320 
     | 
    
         
             
            - lib/rouge/lexers/magik.rb
         
     | 
| 
       305 
321 
     | 
    
         
             
            - lib/rouge/lexers/make.rb
         
     | 
| 
         @@ -309,6 +325,7 @@ files: 
     | 
|
| 
       309 
325 
     | 
    
         
             
            - lib/rouge/lexers/mathematica/builtins.rb
         
     | 
| 
       310 
326 
     | 
    
         
             
            - lib/rouge/lexers/matlab.rb
         
     | 
| 
       311 
327 
     | 
    
         
             
            - lib/rouge/lexers/matlab/builtins.yml
         
     | 
| 
      
 328 
     | 
    
         
            +
            - lib/rouge/lexers/minizinc.rb
         
     | 
| 
       312 
329 
     | 
    
         
             
            - lib/rouge/lexers/moonscript.rb
         
     | 
| 
       313 
330 
     | 
    
         
             
            - lib/rouge/lexers/mosel.rb
         
     | 
| 
       314 
331 
     | 
    
         
             
            - lib/rouge/lexers/msgtrans.rb
         
     | 
| 
         @@ -342,6 +359,7 @@ files: 
     | 
|
| 
       342 
359 
     | 
    
         
             
            - lib/rouge/lexers/r.rb
         
     | 
| 
       343 
360 
     | 
    
         
             
            - lib/rouge/lexers/racket.rb
         
     | 
| 
       344 
361 
     | 
    
         
             
            - lib/rouge/lexers/reasonml.rb
         
     | 
| 
      
 362 
     | 
    
         
            +
            - lib/rouge/lexers/robot_framework.rb
         
     | 
| 
       345 
363 
     | 
    
         
             
            - lib/rouge/lexers/ruby.rb
         
     | 
| 
       346 
364 
     | 
    
         
             
            - lib/rouge/lexers/rust.rb
         
     | 
| 
       347 
365 
     | 
    
         
             
            - lib/rouge/lexers/sas.rb
         
     | 
| 
         @@ -357,6 +375,7 @@ files: 
     | 
|
| 
       357 
375 
     | 
    
         
             
            - lib/rouge/lexers/smalltalk.rb
         
     | 
| 
       358 
376 
     | 
    
         
             
            - lib/rouge/lexers/smarty.rb
         
     | 
| 
       359 
377 
     | 
    
         
             
            - lib/rouge/lexers/sml.rb
         
     | 
| 
      
 378 
     | 
    
         
            +
            - lib/rouge/lexers/sparql.rb
         
     | 
| 
       360 
379 
     | 
    
         
             
            - lib/rouge/lexers/sqf.rb
         
     | 
| 
       361 
380 
     | 
    
         
             
            - lib/rouge/lexers/sqf/commands.rb
         
     | 
| 
       362 
381 
     | 
    
         
             
            - lib/rouge/lexers/sql.rb
         
     | 
| 
         @@ -368,6 +387,7 @@ files: 
     | 
|
| 
       368 
387 
     | 
    
         
             
            - lib/rouge/lexers/tex.rb
         
     | 
| 
       369 
388 
     | 
    
         
             
            - lib/rouge/lexers/toml.rb
         
     | 
| 
       370 
389 
     | 
    
         
             
            - lib/rouge/lexers/tsx.rb
         
     | 
| 
      
 390 
     | 
    
         
            +
            - lib/rouge/lexers/ttcn3.rb
         
     | 
| 
       371 
391 
     | 
    
         
             
            - lib/rouge/lexers/tulip.rb
         
     | 
| 
       372 
392 
     | 
    
         
             
            - lib/rouge/lexers/turtle.rb
         
     | 
| 
       373 
393 
     | 
    
         
             
            - lib/rouge/lexers/twig.rb
         
     |