rouge 3.2.0 → 3.18.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 +5 -5
- data/Gemfile +17 -3
- data/bin/rougify +1 -0
- data/lib/rouge.rb +67 -43
- data/lib/rouge/cli.rb +84 -17
- data/lib/rouge/demos/ada +26 -0
- data/lib/rouge/demos/apex +9 -0
- data/lib/rouge/demos/armasm +12 -0
- data/lib/rouge/demos/batchfile +3 -0
- data/lib/rouge/demos/bbcbasic +6 -0
- data/lib/rouge/demos/bpf +7 -0
- data/lib/rouge/demos/brainfuck +5 -0
- data/lib/rouge/demos/clean +6 -0
- data/lib/rouge/demos/cmhg +8 -0
- data/lib/rouge/demos/csvs +8 -0
- data/lib/rouge/demos/cuda +11 -0
- data/lib/rouge/demos/cypher +5 -0
- data/lib/rouge/demos/cython +6 -0
- data/lib/rouge/demos/datastudio +21 -0
- data/lib/rouge/demos/ecl +18 -0
- data/lib/rouge/demos/eex +1 -0
- data/lib/rouge/demos/epp +4 -0
- data/lib/rouge/demos/escape +3 -0
- data/lib/rouge/demos/freefem +16 -0
- data/lib/rouge/demos/gdscript +18 -0
- data/lib/rouge/demos/ghc-cmm +23 -0
- data/lib/rouge/demos/ghc-core +26 -0
- data/lib/rouge/demos/haxe +5 -0
- data/lib/rouge/demos/hocon +8 -0
- data/lib/rouge/demos/hql +5 -0
- data/lib/rouge/demos/isbl +4 -0
- data/lib/rouge/demos/jsl +3 -0
- data/lib/rouge/demos/jsp +29 -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/m68k +16 -0
- data/lib/rouge/demos/magik +6 -0
- data/lib/rouge/demos/mason +22 -0
- data/lib/rouge/demos/mathematica +8 -0
- data/lib/rouge/demos/minizinc +23 -0
- data/lib/rouge/demos/msgtrans +4 -0
- data/lib/rouge/demos/nasm +6 -6
- data/lib/rouge/demos/nesasm +11 -0
- data/lib/rouge/demos/objective_cpp +17 -0
- data/lib/rouge/demos/openedge +4 -0
- data/lib/rouge/demos/opentype_feature_file +6 -0
- data/lib/rouge/demos/plist +1 -132
- data/lib/rouge/demos/powershell +12 -48
- data/lib/rouge/demos/q +6 -0
- data/lib/rouge/demos/reasonml +12 -0
- data/lib/rouge/demos/rego +8 -0
- data/lib/rouge/demos/robot_framework +27 -0
- data/lib/rouge/demos/sas +13 -0
- data/lib/rouge/demos/slice +10 -0
- data/lib/rouge/demos/solidity +13 -0
- data/lib/rouge/demos/sparql +6 -0
- data/lib/rouge/demos/sqf +14 -0
- data/lib/rouge/demos/supercollider +11 -0
- data/lib/rouge/demos/terraform +0 -15
- data/lib/rouge/demos/ttcn3 +6 -0
- data/lib/rouge/demos/vcl +12 -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/yang +17 -0
- data/lib/rouge/formatter.rb +39 -2
- data/lib/rouge/formatters/html.rb +21 -2
- data/lib/rouge/formatters/html_inline.rb +1 -0
- data/lib/rouge/formatters/html_legacy.rb +1 -0
- data/lib/rouge/formatters/html_line_table.rb +53 -0
- data/lib/rouge/formatters/html_linewise.rb +7 -11
- data/lib/rouge/formatters/html_pygments.rb +2 -0
- data/lib/rouge/formatters/html_table.rb +21 -31
- data/lib/rouge/formatters/null.rb +1 -0
- data/lib/rouge/formatters/terminal256.rb +23 -5
- data/lib/rouge/formatters/terminal_truecolor.rb +37 -0
- data/lib/rouge/formatters/tex.rb +92 -0
- data/lib/rouge/guesser.rb +2 -0
- data/lib/rouge/guessers/disambiguation.rb +35 -0
- data/lib/rouge/guessers/filename.rb +2 -0
- data/lib/rouge/guessers/glob_mapping.rb +3 -1
- data/lib/rouge/guessers/mimetype.rb +2 -0
- data/lib/rouge/guessers/modeline.rb +3 -1
- data/lib/rouge/guessers/source.rb +3 -1
- data/lib/rouge/guessers/util.rb +2 -0
- data/lib/rouge/lexer.rb +71 -15
- data/lib/rouge/lexers/abap.rb +13 -11
- data/lib/rouge/lexers/actionscript.rb +35 -34
- data/lib/rouge/lexers/ada.rb +162 -0
- data/lib/rouge/lexers/apache.rb +13 -15
- data/lib/rouge/lexers/apache/keywords.rb +15 -0
- data/lib/rouge/lexers/apex.rb +126 -0
- data/lib/rouge/lexers/apiblueprint.rb +2 -0
- data/lib/rouge/lexers/apple_script.rb +17 -14
- data/lib/rouge/lexers/armasm.rb +145 -0
- data/lib/rouge/lexers/awk.rb +26 -25
- data/lib/rouge/lexers/batchfile.rb +164 -0
- data/lib/rouge/lexers/bbcbasic.rb +112 -0
- data/lib/rouge/lexers/biml.rb +6 -4
- data/lib/rouge/lexers/bpf.rb +118 -0
- data/lib/rouge/lexers/brainfuck.rb +53 -0
- data/lib/rouge/lexers/bsl.rb +13 -12
- data/lib/rouge/lexers/c.rb +35 -57
- data/lib/rouge/lexers/ceylon.rb +7 -34
- data/lib/rouge/lexers/cfscript.rb +27 -26
- data/lib/rouge/lexers/clean.rb +156 -0
- data/lib/rouge/lexers/clojure.rb +15 -14
- data/lib/rouge/lexers/cmake.rb +16 -14
- data/lib/rouge/lexers/cmhg.rb +34 -0
- data/lib/rouge/lexers/coffeescript.rb +90 -49
- data/lib/rouge/lexers/common_lisp.rb +39 -38
- data/lib/rouge/lexers/conf.rb +7 -6
- data/lib/rouge/lexers/console.rb +92 -38
- data/lib/rouge/lexers/coq.rb +27 -23
- data/lib/rouge/lexers/cpp.rb +24 -13
- data/lib/rouge/lexers/crystal.rb +71 -70
- data/lib/rouge/lexers/csharp.rb +29 -29
- data/lib/rouge/lexers/css.rb +24 -23
- data/lib/rouge/lexers/csvs.rb +44 -0
- data/lib/rouge/lexers/cuda.rb +35 -0
- data/lib/rouge/lexers/cypher.rb +108 -0
- data/lib/rouge/lexers/cython.rb +151 -0
- data/lib/rouge/lexers/d.rb +64 -63
- data/lib/rouge/lexers/dart.rb +34 -33
- data/lib/rouge/lexers/datastudio.rb +138 -0
- data/lib/rouge/lexers/diff.rb +10 -4
- data/lib/rouge/lexers/digdag.rb +3 -1
- data/lib/rouge/lexers/docker.rb +12 -11
- data/lib/rouge/lexers/dot.rb +19 -18
- data/lib/rouge/lexers/ecl.rb +175 -0
- data/lib/rouge/lexers/eex.rb +52 -0
- data/lib/rouge/lexers/eiffel.rb +21 -20
- data/lib/rouge/lexers/elixir.rb +52 -36
- data/lib/rouge/lexers/elm.rb +30 -29
- data/lib/rouge/lexers/epp.rb +51 -0
- data/lib/rouge/lexers/erb.rb +5 -4
- data/lib/rouge/lexers/erlang.rb +1 -0
- data/lib/rouge/lexers/escape.rb +58 -0
- data/lib/rouge/lexers/factor.rb +41 -40
- data/lib/rouge/lexers/fortran.rb +34 -32
- data/lib/rouge/lexers/freefem.rb +240 -0
- data/lib/rouge/lexers/fsharp.rb +33 -31
- data/lib/rouge/lexers/gdscript.rb +171 -0
- data/lib/rouge/lexers/ghc_cmm.rb +340 -0
- data/lib/rouge/lexers/ghc_core.rb +151 -0
- data/lib/rouge/lexers/gherkin.rb +17 -14
- data/lib/rouge/lexers/gherkin/keywords.rb +2 -0
- data/lib/rouge/lexers/glsl.rb +2 -5
- data/lib/rouge/lexers/go.rb +3 -2
- data/lib/rouge/lexers/gradle.rb +1 -0
- data/lib/rouge/lexers/graphql.rb +78 -60
- data/lib/rouge/lexers/groovy.rb +24 -25
- data/lib/rouge/lexers/hack.rb +2 -1
- data/lib/rouge/lexers/haml.rb +26 -29
- data/lib/rouge/lexers/handlebars.rb +32 -20
- data/lib/rouge/lexers/haskell.rb +67 -65
- data/lib/rouge/lexers/haxe.rb +246 -0
- data/lib/rouge/lexers/hcl.rb +26 -25
- data/lib/rouge/lexers/hocon.rb +86 -0
- data/lib/rouge/lexers/hql.rb +139 -0
- data/lib/rouge/lexers/html.rb +33 -31
- data/lib/rouge/lexers/http.rb +10 -9
- data/lib/rouge/lexers/hylang.rb +15 -14
- data/lib/rouge/lexers/idlang.rb +34 -32
- data/lib/rouge/lexers/igorpro.rb +32 -31
- data/lib/rouge/lexers/ini.rb +13 -12
- data/lib/rouge/lexers/io.rb +10 -9
- data/lib/rouge/lexers/irb.rb +6 -5
- data/lib/rouge/lexers/isbl.rb +97 -0
- data/lib/rouge/lexers/isbl/builtins.rb +17 -0
- data/lib/rouge/lexers/java.rb +29 -25
- data/lib/rouge/lexers/javascript.rb +58 -61
- data/lib/rouge/lexers/jinja.rb +39 -22
- data/lib/rouge/lexers/jsl.rb +55 -0
- data/lib/rouge/lexers/json.rb +54 -11
- data/lib/rouge/lexers/json_doc.rb +8 -5
- data/lib/rouge/lexers/jsonnet.rb +19 -18
- data/lib/rouge/lexers/jsp.rb +120 -0
- data/lib/rouge/lexers/jsx.rb +18 -16
- data/lib/rouge/lexers/julia.rb +182 -58
- data/lib/rouge/lexers/kotlin.rb +78 -26
- data/lib/rouge/lexers/lasso.rb +54 -58
- data/lib/rouge/lexers/lasso/keywords.rb +14 -0
- data/lib/rouge/lexers/liquid.rb +116 -118
- data/lib/rouge/lexers/literate_coffeescript.rb +3 -2
- data/lib/rouge/lexers/literate_haskell.rb +6 -5
- data/lib/rouge/lexers/llvm.rb +66 -49
- data/lib/rouge/lexers/lua.rb +43 -4
- data/lib/rouge/lexers/lua/builtins.rb +2 -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 +57 -34
- data/lib/rouge/lexers/markdown.rb +67 -39
- 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 +26 -17
- data/lib/rouge/lexers/matlab/builtins.rb +4 -4
- data/lib/rouge/lexers/minizinc.rb +87 -0
- data/lib/rouge/lexers/moonscript.rb +4 -3
- data/lib/rouge/lexers/mosel.rb +64 -63
- data/lib/rouge/lexers/msgtrans.rb +26 -0
- data/lib/rouge/lexers/mxml.rb +19 -18
- data/lib/rouge/lexers/nasm.rb +43 -169
- data/lib/rouge/lexers/nesasm.rb +78 -0
- data/lib/rouge/lexers/nginx.rb +15 -14
- data/lib/rouge/lexers/nim.rb +4 -2
- data/lib/rouge/lexers/nix.rb +44 -43
- data/lib/rouge/lexers/objective_c.rb +5 -178
- 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 +29 -64
- 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 +6 -5
- data/lib/rouge/lexers/perl.rb +102 -67
- data/lib/rouge/lexers/php.rb +91 -53
- data/lib/rouge/lexers/php/builtins.rb +183 -174
- data/lib/rouge/lexers/plain_text.rb +2 -1
- data/lib/rouge/lexers/plist.rb +16 -14
- data/lib/rouge/lexers/pony.rb +21 -20
- data/lib/rouge/lexers/powershell.rb +190 -638
- data/lib/rouge/lexers/praat.rb +76 -75
- data/lib/rouge/lexers/prolog.rb +27 -19
- data/lib/rouge/lexers/prometheus.rb +32 -30
- data/lib/rouge/lexers/properties.rb +13 -12
- data/lib/rouge/lexers/protobuf.rb +23 -22
- data/lib/rouge/lexers/puppet.rb +33 -32
- data/lib/rouge/lexers/python.rb +124 -99
- data/lib/rouge/lexers/q.rb +17 -14
- data/lib/rouge/lexers/qml.rb +13 -12
- data/lib/rouge/lexers/r.rb +13 -13
- data/lib/rouge/lexers/racket.rb +47 -22
- data/lib/rouge/lexers/reasonml.rb +65 -0
- data/lib/rouge/lexers/rego.rb +45 -0
- data/lib/rouge/lexers/robot_framework.rb +249 -0
- data/lib/rouge/lexers/ruby.rb +88 -71
- data/lib/rouge/lexers/rust.rb +45 -44
- data/lib/rouge/lexers/sas.rb +563 -0
- data/lib/rouge/lexers/sass.rb +9 -8
- data/lib/rouge/lexers/sass/common.rb +41 -40
- data/lib/rouge/lexers/scala.rb +67 -40
- data/lib/rouge/lexers/scheme.rb +19 -18
- data/lib/rouge/lexers/scss.rb +4 -3
- data/lib/rouge/lexers/sed.rb +31 -30
- data/lib/rouge/lexers/shell.rb +67 -55
- data/lib/rouge/lexers/sieve.rb +10 -9
- data/lib/rouge/lexers/slice.rb +32 -0
- data/lib/rouge/lexers/slim.rb +27 -26
- data/lib/rouge/lexers/smalltalk.rb +34 -33
- data/lib/rouge/lexers/smarty.rb +20 -19
- data/lib/rouge/lexers/sml.rb +68 -67
- data/lib/rouge/lexers/solidity.rb +185 -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 +47 -26
- data/lib/rouge/lexers/supercollider.rb +116 -0
- data/lib/rouge/lexers/swift.rb +49 -44
- data/lib/rouge/lexers/tap.rb +22 -20
- data/lib/rouge/lexers/tcl.rb +28 -27
- data/lib/rouge/lexers/terraform.rb +37 -13
- data/lib/rouge/lexers/tex.rb +20 -19
- data/lib/rouge/lexers/toml.rb +59 -20
- data/lib/rouge/lexers/tsx.rb +1 -0
- data/lib/rouge/lexers/ttcn3.rb +119 -0
- data/lib/rouge/lexers/tulip.rb +38 -36
- data/lib/rouge/lexers/turtle.rb +36 -38
- data/lib/rouge/lexers/twig.rb +1 -0
- data/lib/rouge/lexers/typescript.rb +12 -0
- data/lib/rouge/lexers/typescript/common.rb +1 -0
- data/lib/rouge/lexers/vala.rb +19 -18
- data/lib/rouge/lexers/varnish.rb +168 -0
- data/lib/rouge/lexers/vb.rb +28 -27
- data/lib/rouge/lexers/verilog.rb +27 -28
- data/lib/rouge/lexers/vhdl.rb +12 -11
- data/lib/rouge/lexers/viml.rb +15 -14
- data/lib/rouge/lexers/viml/keywords.rb +2 -0
- data/lib/rouge/lexers/vue.rb +15 -10
- data/lib/rouge/lexers/wollok.rb +27 -26
- data/lib/rouge/lexers/xml.rb +18 -21
- 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 +64 -61
- data/lib/rouge/lexers/yang.rb +147 -0
- data/lib/rouge/plugins/redcarpet.rb +9 -2
- data/lib/rouge/regex_lexer.rb +27 -25
- data/lib/rouge/template_lexer.rb +1 -0
- data/lib/rouge/tex_theme_renderer.rb +132 -0
- data/lib/rouge/text_analyzer.rb +1 -0
- data/lib/rouge/theme.rb +5 -0
- data/lib/rouge/themes/base16.rb +1 -0
- data/lib/rouge/themes/bw.rb +41 -0
- data/lib/rouge/themes/colorful.rb +1 -0
- data/lib/rouge/themes/github.rb +1 -0
- data/lib/rouge/themes/gruvbox.rb +1 -0
- data/lib/rouge/themes/igor_pro.rb +1 -0
- data/lib/rouge/themes/magritte.rb +78 -0
- data/lib/rouge/themes/molokai.rb +1 -0
- data/lib/rouge/themes/monokai.rb +1 -0
- data/lib/rouge/themes/monokai_sublime.rb +4 -1
- data/lib/rouge/themes/pastie.rb +2 -1
- data/lib/rouge/themes/thankful_eyes.rb +2 -1
- data/lib/rouge/themes/tulip.rb +2 -1
- data/lib/rouge/token.rb +31 -22
- data/lib/rouge/util.rb +3 -2
- data/lib/rouge/version.rb +2 -1
- data/rouge.gemspec +6 -3
- metadata +130 -8
- data/lib/rouge/lexers/apache/keywords.yml +0 -764
- data/lib/rouge/lexers/lasso/keywords.yml +0 -446
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
# -*- coding: utf-8 -*- #
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
2
4
|
module Rouge
|
|
3
5
|
module Lexers
|
|
4
6
|
class AppleScript < RegexLexer
|
|
@@ -317,28 +319,28 @@ module Rouge
|
|
|
317
319
|
identifiers = %r(\b([a-zA-Z]\w*)\b)
|
|
318
320
|
|
|
319
321
|
state :root do
|
|
320
|
-
rule /\s+/, Text::Whitespace
|
|
321
|
-
rule /¬\n/, Literal::String::Escape
|
|
322
|
-
rule /'s\s+/, Text
|
|
323
|
-
rule /(--|#).*?$/, Comment::Single
|
|
324
|
-
rule /\(\*/, Comment::Multiline
|
|
325
|
-
rule /[\(\){}!,.:]/, Punctuation
|
|
326
|
-
rule /(«)([^»]+)(»)/ do |match|
|
|
322
|
+
rule %r/\s+/, Text::Whitespace
|
|
323
|
+
rule %r/¬\n/, Literal::String::Escape
|
|
324
|
+
rule %r/'s\s+/, Text
|
|
325
|
+
rule %r/(--|#).*?$/, Comment::Single
|
|
326
|
+
rule %r/\(\*/, Comment::Multiline
|
|
327
|
+
rule %r/[\(\){}!,.:]/, Punctuation
|
|
328
|
+
rule %r/(«)([^»]+)(»)/ do |match|
|
|
327
329
|
token Text, match[1]
|
|
328
330
|
token Name::Builtin, match[2]
|
|
329
331
|
token Text, match[3]
|
|
330
332
|
end
|
|
331
|
-
rule /\b((?:considering|ignoring)\s*)(application responses|case|diacriticals|hyphens|numeric strings|punctuation|white space)/ do |match|
|
|
333
|
+
rule %r/\b((?:considering|ignoring)\s*)(application responses|case|diacriticals|hyphens|numeric strings|punctuation|white space)/ do |match|
|
|
332
334
|
token Keyword, match[1]
|
|
333
335
|
token Name::Builtin, match[2]
|
|
334
336
|
end
|
|
335
|
-
rule /(-|\*|\+|&|≠|>=?|<=?|=|≥|≤|\/|÷|\^)/, Operator
|
|
337
|
+
rule %r/(-|\*|\+|&|≠|>=?|<=?|=|≥|≤|\/|÷|\^)/, Operator
|
|
336
338
|
rule operators, Operator::Word
|
|
337
|
-
rule /^(\s*(?:on|end)\s+)'r'(%s)/ do |match|
|
|
339
|
+
rule %r/^(\s*(?:on|end)\s+)'r'(%s)/ do |match|
|
|
338
340
|
token Keyword, match[1]
|
|
339
341
|
token Name::Function, match[2]
|
|
340
342
|
end
|
|
341
|
-
rule /^(\s*)(in|on|script|to)(\s+)/ do |match|
|
|
343
|
+
rule %r/^(\s*)(in|on|script|to)(\s+)/ do |match|
|
|
342
344
|
token Text, match[1]
|
|
343
345
|
token Keyword, match[2]
|
|
344
346
|
token Text, match[3]
|
|
@@ -347,6 +349,7 @@ module Rouge
|
|
|
347
349
|
token Keyword, match[1]
|
|
348
350
|
token Name::Class, match[2]
|
|
349
351
|
end
|
|
352
|
+
rule literals, Name::Builtin
|
|
350
353
|
rule commands, Name::Builtin
|
|
351
354
|
rule controls, Keyword
|
|
352
355
|
rule declarations, Keyword
|
|
@@ -357,10 +360,10 @@ module Rouge
|
|
|
357
360
|
rule studio_classes, Name::Builtin
|
|
358
361
|
rule studio_commands, Name::Builtin
|
|
359
362
|
rule references, Name::Builtin
|
|
360
|
-
rule /"(\\\\|\\"|[^"])*"/, Literal::String::Double
|
|
363
|
+
rule %r/"(\\\\|\\"|[^"])*"/, Literal::String::Double
|
|
361
364
|
rule identifiers, Name::Variable
|
|
362
|
-
rule /[-+]?(\d+\.\d*|\d*\.\d+)(E[-+][0-9]+)?/, Literal::Number::Float
|
|
363
|
-
rule /[-+]?\d+/, Literal::Number::Integer
|
|
365
|
+
rule %r/[-+]?(\d+\.\d*|\d*\.\d+)(E[-+][0-9]+)?/, Literal::Number::Float
|
|
366
|
+
rule %r/[-+]?\d+/, Literal::Number::Integer
|
|
364
367
|
end
|
|
365
368
|
end
|
|
366
369
|
end
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module Rouge
|
|
5
|
+
module Lexers
|
|
6
|
+
class ArmAsm < RegexLexer
|
|
7
|
+
title "ArmAsm"
|
|
8
|
+
desc "Arm assembly syntax"
|
|
9
|
+
tag 'armasm'
|
|
10
|
+
filenames '*.s'
|
|
11
|
+
|
|
12
|
+
def self.preproc_keyword
|
|
13
|
+
@preproc_keyword ||= %w(
|
|
14
|
+
define elif else endif error if ifdef ifndef include line pragma undef warning
|
|
15
|
+
)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def self.file_directive
|
|
19
|
+
@file_directive ||= %w(
|
|
20
|
+
BIN GET INCBIN INCLUDE LNK
|
|
21
|
+
)
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def self.general_directive
|
|
25
|
+
@general_directive ||= %w(
|
|
26
|
+
ALIAS ALIGN AOF AOUT AREA ARM ASSERT ATTR CN CODE16 CODE32 COMMON CP
|
|
27
|
+
DATA DCB DCD DCDO DCDU DCFD DCFDU DCFH DCFHU DCFS DCFSU DCI DCI.N DCI.W
|
|
28
|
+
DCQ DCQU DCW DCWU DN ELIF ELSE END ENDFUNC ENDIF ENDP ENTRY EQU EXPORT
|
|
29
|
+
EXPORTAS EXTERN FIELD FILL FN FRAME FUNCTION GBLA GBLL GBLS GLOBAL IF
|
|
30
|
+
IMPORT INFO KEEP LCLA LCLL LCLS LEADR LEAF LTORG MACRO MAP MEND MEXIT
|
|
31
|
+
NOFP OPT ORG PRESERVE8 PROC QN RELOC REQUIRE REQUIRE8 RLIST RN ROUT
|
|
32
|
+
SETA SETL SETS SN SPACE STRONG SUBT THUMB THUMBX TTL WEND WHILE
|
|
33
|
+
\[ \] [|!#*=%&^]
|
|
34
|
+
)
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def self.shift_or_condition
|
|
38
|
+
@shift_or_condition ||= %w(
|
|
39
|
+
ASR LSL LSR ROR RRX AL CC CS EQ GE GT HI HS LE LO LS LT MI NE PL VC VS
|
|
40
|
+
asr lsl lsr ror rrx al cc cs eq ge gt hi hs le lo ls lt mi ne pl vc vs
|
|
41
|
+
)
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def self.builtin
|
|
45
|
+
@builtin ||= %w(
|
|
46
|
+
ARCHITECTURE AREANAME ARMASM_VERSION CODESIZE COMMANDLINE CONFIG CPU
|
|
47
|
+
ENDIAN FALSE FPIC FPU INPUTFILE INTER LINENUM LINENUMUP LINENUMUPPER
|
|
48
|
+
OBJASM_VERSION OPT PC PCSTOREOFFSET REENTRANT ROPI RWPI TRUE VAR
|
|
49
|
+
)
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def self.operator
|
|
53
|
+
@operator ||= %w(
|
|
54
|
+
AND BASE CC CC_ENCODING CHR DEF EOR FATTR FEXEC FLOAD FSIZE INDEX LAND
|
|
55
|
+
LEFT LEN LEOR LNOT LOR LOWERCASE MOD NOT OR RCONST REVERSE_CC RIGHT ROL
|
|
56
|
+
ROR SHL SHR STR TARGET_ARCH_[0-9A-Z_]+ TARGET_FEATURE_[0-9A-Z_]+
|
|
57
|
+
TARGET_FPU_[A-Z_] TARGET_PROFILE_[ARM] UAL UPPERCASE
|
|
58
|
+
)
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
state :root do
|
|
62
|
+
rule %r/\n/, Text
|
|
63
|
+
rule %r/^([ \t]*)(#[ \t]*(?:(?:#{ArmAsm.preproc_keyword.join('|')})(?:[ \t].*)?)?)(\n)/ do
|
|
64
|
+
groups Text, Comment::Preproc, Text
|
|
65
|
+
end
|
|
66
|
+
rule %r/[ \t]+/, Text, :command
|
|
67
|
+
rule %r/;.*/, Comment
|
|
68
|
+
rule %r/\$[a-z_]\w*\.?/i, Name::Namespace # variable substitution or macro argument
|
|
69
|
+
rule %r/\w+|\|[^|\n]+\|/, Name::Label
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
state :command do
|
|
73
|
+
rule %r/\n/, Text, :pop!
|
|
74
|
+
rule %r/[ \t]+/ do |m|
|
|
75
|
+
token Text
|
|
76
|
+
goto :args
|
|
77
|
+
end
|
|
78
|
+
rule %r/;.*/, Comment, :pop!
|
|
79
|
+
rule %r/(?:#{ArmAsm.file_directive.join('|')})\b/ do |m|
|
|
80
|
+
token Keyword
|
|
81
|
+
goto :filespec
|
|
82
|
+
end
|
|
83
|
+
rule %r/(?:#{ArmAsm.general_directive.join('|')})(?=[; \t\n])/, Keyword
|
|
84
|
+
rule %r/(?:[A-Z][\dA-Z]*|[a-z][\da-z]*)(?:\.[NWnw])?(?:\.[DFIPSUdfipsu]?(?:8|16|32|64)?){,3}\b/, Name::Builtin # rather than attempt to list all opcodes, rely on all-uppercase or all-lowercase rule
|
|
85
|
+
rule %r/[a-z_]\w*|\|[^|\n]+\|/i, Name::Function # probably a macro name
|
|
86
|
+
rule %r/\$[a-z]\w*\.?/i, Name::Namespace
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
state :args do
|
|
90
|
+
rule %r/\n/, Text, :pop!
|
|
91
|
+
rule %r/[ \t]+/, Text
|
|
92
|
+
rule %r/;.*/, Comment, :pop!
|
|
93
|
+
rule %r/(?:#{ArmAsm.shift_or_condition.join('|')})\b/, Name::Builtin
|
|
94
|
+
rule %r/[a-z_]\w*|\|[^|\n]+\|/i, Name::Variable # various types of symbol
|
|
95
|
+
rule %r/%[bf]?[at]?\d+(?:[a-z_]\w*)?/i, Name::Label
|
|
96
|
+
rule %r/(?:&|0x)\h+(?!p)/i, Literal::Number::Hex
|
|
97
|
+
rule %r/(?:&|0x)[.\h]+(?:p[-+]?\d+)?/i, Literal::Number::Float
|
|
98
|
+
rule %r/0f_\h{8}|0d_\h{16}/i, Literal::Number::Float
|
|
99
|
+
rule %r/(?:2_[01]+|3_[0-2]+|4_[0-3]+|5_[0-4]+|6_[0-5]+|7_[0-6]+|8_[0-7]+|9_[0-8]+|\d+)(?!e)/i, Literal::Number::Integer
|
|
100
|
+
rule %r/(?:2_[.01]+|3_[.0-2]+|4_[.0-3]+|5_[.0-4]+|6_[.0-5]+|7_[.0-6]+|8_[.0-7]+|9_[.0-8]+|[.\d]+)(?:e[-+]?\d+)?/i, Literal::Number::Float
|
|
101
|
+
rule %r/[@:](?=[ \t]*(?:8|16|32|64|128|256)[^\d])/, Operator
|
|
102
|
+
rule %r/[.@]|\{(?:#{ArmAsm.builtin.join('|')})\}/, Name::Constant
|
|
103
|
+
rule %r/[-!#%&()*+,\/<=>?^{|}]|\[|\]|!=|&&|\/=|<<|<=|<>|==|><|>=|>>|\|\||:(?:#{ArmAsm.operator.join('|')}):/, Operator
|
|
104
|
+
rule %r/\$[a-z]\w*\.?/i, Name::Namespace
|
|
105
|
+
rule %r/'/ do |m|
|
|
106
|
+
token Literal::String::Char
|
|
107
|
+
goto :singlequoted
|
|
108
|
+
end
|
|
109
|
+
rule %r/"/ do |m|
|
|
110
|
+
token Literal::String::Double
|
|
111
|
+
goto :doublequoted
|
|
112
|
+
end
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
state :singlequoted do
|
|
116
|
+
rule %r/\n/, Text, :pop!
|
|
117
|
+
rule %r/\$\$/, Literal::String::Char
|
|
118
|
+
rule %r/\$[a-z]\w*\.?/i, Name::Namespace
|
|
119
|
+
rule %r/'/ do |m|
|
|
120
|
+
token Literal::String::Char
|
|
121
|
+
goto :args
|
|
122
|
+
end
|
|
123
|
+
rule %r/[^$'\n]+/, Literal::String::Char
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
state :doublequoted do
|
|
127
|
+
rule %r/\n/, Text, :pop!
|
|
128
|
+
rule %r/\$\$/, Literal::String::Double
|
|
129
|
+
rule %r/\$[a-z]\w*\.?/i, Name::Namespace
|
|
130
|
+
rule %r/"/ do |m|
|
|
131
|
+
token Literal::String::Double
|
|
132
|
+
goto :args
|
|
133
|
+
end
|
|
134
|
+
rule %r/[^$"\n]+/, Literal::String::Double
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
state :filespec do
|
|
138
|
+
rule %r/\n/, Text, :pop!
|
|
139
|
+
rule %r/\$\$/, Literal::String::Other
|
|
140
|
+
rule %r/\$[a-z]\w*\.?/i, Name::Namespace
|
|
141
|
+
rule %r/[^$\n]+/, Literal::String::Other
|
|
142
|
+
end
|
|
143
|
+
end
|
|
144
|
+
end
|
|
145
|
+
end
|
data/lib/rouge/lexers/awk.rb
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
# -*- coding: utf-8 -*- #
|
|
2
|
+
# frozen_string_literal: true
|
|
2
3
|
|
|
3
4
|
module Rouge
|
|
4
5
|
module Lexers
|
|
@@ -46,7 +47,7 @@ module Rouge
|
|
|
46
47
|
end
|
|
47
48
|
|
|
48
49
|
state :comments_and_whitespace do
|
|
49
|
-
rule /\s+/, Text
|
|
50
|
+
rule %r/\s+/, Text
|
|
50
51
|
rule %r(#.*?$), Comment::Single
|
|
51
52
|
end
|
|
52
53
|
|
|
@@ -56,7 +57,7 @@ module Rouge
|
|
|
56
57
|
token Str::Regex
|
|
57
58
|
goto :regex
|
|
58
59
|
end
|
|
59
|
-
rule //, Text, :pop!
|
|
60
|
+
rule %r//, Text, :pop!
|
|
60
61
|
end
|
|
61
62
|
|
|
62
63
|
state :regex do
|
|
@@ -67,14 +68,14 @@ module Rouge
|
|
|
67
68
|
|
|
68
69
|
rule %r([^/]\n), Error, :pop!
|
|
69
70
|
|
|
70
|
-
rule /\n/, Error, :pop!
|
|
71
|
-
rule /\[\^/, Str::Escape, :regex_group
|
|
72
|
-
rule /\[/, Str::Escape, :regex_group
|
|
73
|
-
rule /\\./, Str::Escape
|
|
71
|
+
rule %r/\n/, Error, :pop!
|
|
72
|
+
rule %r/\[\^/, Str::Escape, :regex_group
|
|
73
|
+
rule %r/\[/, Str::Escape, :regex_group
|
|
74
|
+
rule %r/\\./, Str::Escape
|
|
74
75
|
rule %r{[(][?][:=<!]}, Str::Escape
|
|
75
|
-
rule /[{][\d,]+[}]/, Str::Escape
|
|
76
|
-
rule /[()?]/, Str::Escape
|
|
77
|
-
rule /./, Str::Regex
|
|
76
|
+
rule %r/[{][\d,]+[}]/, Str::Escape
|
|
77
|
+
rule %r/[()?]/, Str::Escape
|
|
78
|
+
rule %r/./, Str::Regex
|
|
78
79
|
end
|
|
79
80
|
|
|
80
81
|
state :regex_end do
|
|
@@ -84,20 +85,20 @@ module Rouge
|
|
|
84
85
|
state :regex_group do
|
|
85
86
|
# specially highlight / in a group to indicate that it doesn't
|
|
86
87
|
# close the regex
|
|
87
|
-
rule
|
|
88
|
+
rule %r(/), Str::Escape
|
|
88
89
|
|
|
89
90
|
rule %r([^/]\n) do
|
|
90
91
|
token Error
|
|
91
92
|
pop! 2
|
|
92
93
|
end
|
|
93
94
|
|
|
94
|
-
rule /\]/, Str::Escape, :pop!
|
|
95
|
-
rule /\\./, Str::Escape
|
|
96
|
-
rule /./, Str::Regex
|
|
95
|
+
rule %r/\]/, Str::Escape, :pop!
|
|
96
|
+
rule %r/\\./, Str::Escape
|
|
97
|
+
rule %r/./, Str::Regex
|
|
97
98
|
end
|
|
98
99
|
|
|
99
100
|
state :bad_regex do
|
|
100
|
-
rule /[^\n]+/, Error, :pop!
|
|
101
|
+
rule %r/[^\n]+/, Error, :pop!
|
|
101
102
|
end
|
|
102
103
|
|
|
103
104
|
state :root do
|
|
@@ -105,17 +106,17 @@ module Rouge
|
|
|
105
106
|
rule %r((?<=\n)(?=\s|/)), Text, :expr_start
|
|
106
107
|
rule %r([-<>+*/%\^!=]=?|in\b|\+\+|--|\|), Operator, :expr_start
|
|
107
108
|
rule %r(&&|\|\||~!?), Operator, :expr_start
|
|
108
|
-
rule /[(\[,]/, Punctuation, :expr_start
|
|
109
|
-
rule /;/, Punctuation, :statement
|
|
110
|
-
rule /[)\].]/, Punctuation
|
|
109
|
+
rule %r/[(\[,]/, Punctuation, :expr_start
|
|
110
|
+
rule %r/;/, Punctuation, :statement
|
|
111
|
+
rule %r/[)\].]/, Punctuation
|
|
111
112
|
|
|
112
|
-
rule /[?]/ do
|
|
113
|
+
rule %r/[?]/ do
|
|
113
114
|
token Punctuation
|
|
114
115
|
push :ternary
|
|
115
116
|
push :expr_start
|
|
116
117
|
end
|
|
117
118
|
|
|
118
|
-
rule /[{}]/, Punctuation, :statement
|
|
119
|
+
rule %r/[{}]/, Punctuation, :statement
|
|
119
120
|
|
|
120
121
|
rule id do |m|
|
|
121
122
|
if self.class.keywords.include? m[0]
|
|
@@ -137,19 +138,19 @@ module Rouge
|
|
|
137
138
|
end
|
|
138
139
|
end
|
|
139
140
|
|
|
140
|
-
rule /[0-9]+\.[0-9]+/, Num::Float
|
|
141
|
-
rule /[0-9]+/, Num::Integer
|
|
142
|
-
rule /"(\\[\\"]|[^"])*"/, Str::Double
|
|
143
|
-
rule /:/, Punctuation
|
|
141
|
+
rule %r/[0-9]+\.[0-9]+/, Num::Float
|
|
142
|
+
rule %r/[0-9]+/, Num::Integer
|
|
143
|
+
rule %r/"(\\[\\"]|[^"])*"/, Str::Double
|
|
144
|
+
rule %r/:/, Punctuation
|
|
144
145
|
end
|
|
145
146
|
|
|
146
147
|
state :statement do
|
|
147
|
-
rule /[{}]/, Punctuation
|
|
148
|
+
rule %r/[{}]/, Punctuation
|
|
148
149
|
mixin :expr_start
|
|
149
150
|
end
|
|
150
151
|
|
|
151
152
|
state :ternary do
|
|
152
|
-
rule /:/ do
|
|
153
|
+
rule %r/:/ do
|
|
153
154
|
token Punctuation
|
|
154
155
|
goto :expr_start
|
|
155
156
|
end
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module Rouge
|
|
5
|
+
module Lexers
|
|
6
|
+
class Batchfile < RegexLexer
|
|
7
|
+
title "Batchfile"
|
|
8
|
+
desc "Windows Batch File"
|
|
9
|
+
|
|
10
|
+
tag 'batchfile'
|
|
11
|
+
aliases 'bat', 'batch', 'dosbatch', 'winbatch'
|
|
12
|
+
filenames '*.bat', '*.cmd'
|
|
13
|
+
|
|
14
|
+
mimetypes 'application/bat', 'application/x-bat', 'application/x-msdos-program'
|
|
15
|
+
|
|
16
|
+
def self.keywords
|
|
17
|
+
@keywords ||= %w(
|
|
18
|
+
if else for in do goto call exit
|
|
19
|
+
)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def self.operator_words
|
|
23
|
+
@operator_words ||= %w(
|
|
24
|
+
exist defined errorlevel cmdextversion not equ neq lss leq gtr geq
|
|
25
|
+
)
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def self.devices
|
|
29
|
+
@devices ||= %w(
|
|
30
|
+
con prn aux nul com1 com2 com3 com4 com5 com6 com7 com8 com9 lpt1 lpt2
|
|
31
|
+
lpt3 lpt4 lpt5 lpt6 lpt7 lpt8 lpt9
|
|
32
|
+
)
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def self.builtin_commands
|
|
36
|
+
@builtin_commands ||= %w(
|
|
37
|
+
assoc attrib break bcdedit cacls cd chcp chdir chkdsk chkntfs choice
|
|
38
|
+
cls cmd color comp compact convert copy date del dir diskpart doskey
|
|
39
|
+
dpath driverquery echo endlocal erase fc find findstr format fsutil
|
|
40
|
+
ftype gpresult graftabl help icacls label md mkdir mklink mode more
|
|
41
|
+
move openfiles path pause popd print prompt pushd rd recover ren
|
|
42
|
+
rename replace rmdir robocopy setlocal sc schtasks shift shutdown sort
|
|
43
|
+
start subst systeminfo takeown tasklist taskkill time timeout title
|
|
44
|
+
tree type ver verify vol xcopy waitfor wmic
|
|
45
|
+
)
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def self.other_commands
|
|
49
|
+
@other_commands ||= %w(
|
|
50
|
+
addusers admodcmd ansicon arp at bcdboot bitsadmin browstat certreq
|
|
51
|
+
certutil change cidiag cipher cleanmgr clip cmdkey compress convertcp
|
|
52
|
+
coreinfo csccmd csvde cscript curl debug defrag delprof deltree devcon
|
|
53
|
+
diamond dirquota diruse diskshadow diskuse dism dnscmd dsacls dsadd
|
|
54
|
+
dsget dsquery dsmod dsmove dsrm dsmgmt dsregcmd edlin eventcreate
|
|
55
|
+
expand extract fdisk fltmc forfiles freedisk ftp getmac gpupdate
|
|
56
|
+
hostname ifmember inuse ipconfig kill lgpo lodctr logman logoff
|
|
57
|
+
logtime makecab mapisend mbsacli mem mountvol moveuser msg mshta
|
|
58
|
+
msiexec msinfo32 mstsc nbtstat net net1 netdom netsh netstat nlsinfo
|
|
59
|
+
nltest now nslookup ntbackup ntdsutil ntoskrnl ntrights nvspbind
|
|
60
|
+
pathping perms ping portqry powercfg pngout pnputil printbrm prncnfg
|
|
61
|
+
prnmngr procdump psexec psfile psgetsid psinfo pskill pslist
|
|
62
|
+
psloggedon psloglist pspasswd psping psservice psshutdown pssuspend
|
|
63
|
+
qbasic qgrep qprocess query quser qwinsta rasdial reg reg1 regdump
|
|
64
|
+
regedt32 regsvr32 regini reset restore rundll32 rmtshare route rpcping
|
|
65
|
+
run runas scandisk setspn setx sfc share shellrunas shortcut sigcheck
|
|
66
|
+
sleep slmgr strings subinacl sysmon telnet tftp tlist touch tracerpt
|
|
67
|
+
tracert tscon tsdiscon tskill tttracer typeperf tzutil undelete
|
|
68
|
+
unformat verifier vmconnect vssadmin w32tm wbadmin wecutil wevtutil
|
|
69
|
+
wget where whoami windiff winrm winrs wpeutil wpr wusa wuauclt wscript
|
|
70
|
+
)
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
def self.attributes
|
|
74
|
+
@attributes ||= %w(
|
|
75
|
+
on off disable enableextensions enabledelayedexpansion
|
|
76
|
+
)
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
state :basic do
|
|
80
|
+
# Comments
|
|
81
|
+
rule %r/\brem\b.*$/i, Comment
|
|
82
|
+
# Empty Labels
|
|
83
|
+
rule %r/^::.*$/, Comment
|
|
84
|
+
|
|
85
|
+
# Labels
|
|
86
|
+
rule %r/:[a-z]+/i, Name::Label
|
|
87
|
+
|
|
88
|
+
rule %r/([a-z]\w*)(\.exe|com|bat|cmd|msi)?/i do |m|
|
|
89
|
+
if self.class.devices.include? m[1]
|
|
90
|
+
groups Keyword::Reserved, Error
|
|
91
|
+
elsif self.class.keywords.include? m[1]
|
|
92
|
+
groups Keyword, Error
|
|
93
|
+
elsif self.class.operator_words.include? m[1]
|
|
94
|
+
groups Operator::Word, Error
|
|
95
|
+
elsif self.class.builtin_commands.include? m[1]
|
|
96
|
+
token Name::Builtin
|
|
97
|
+
elsif self.class.other_commands.include? m[1]
|
|
98
|
+
token Name::Builtin
|
|
99
|
+
elsif self.class.attributes.include? m[1]
|
|
100
|
+
groups Name::Attribute, Error
|
|
101
|
+
elsif "set".casecmp m[1]
|
|
102
|
+
groups Keyword::Declaration, Error
|
|
103
|
+
else
|
|
104
|
+
token Text
|
|
105
|
+
end
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
rule %r/([\/\-+][a-z]+)\s*/i, Name::Attribute
|
|
109
|
+
|
|
110
|
+
mixin :expansions
|
|
111
|
+
|
|
112
|
+
rule %r/[<>&|(){}\[\]\-+=;,~?*]/, Operator
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
state :escape do
|
|
116
|
+
rule %r/\^./m, Str::Escape
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
state :expansions do
|
|
120
|
+
# Normal and Delayed expansion
|
|
121
|
+
rule %r/[%!]+([a-z_$@#]+)[%!]+/i, Name::Variable
|
|
122
|
+
# For Variables
|
|
123
|
+
rule %r/(\%+~?[a-z]+\d?)/i, Name::Variable::Magic
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
state :double_quotes do
|
|
127
|
+
mixin :escape
|
|
128
|
+
rule %r/["]/, Str::Double, :pop!
|
|
129
|
+
mixin :expansions
|
|
130
|
+
rule %r/[^\^"%!]+/, Str::Double
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
state :single_quotes do
|
|
134
|
+
mixin :escape
|
|
135
|
+
rule %r/[']/, Str::Single, :pop!
|
|
136
|
+
mixin :expansions
|
|
137
|
+
rule %r/[^\^'%!]+/, Str::Single
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
state :backtick do
|
|
141
|
+
mixin :escape
|
|
142
|
+
rule %r/[`]/, Str::Backtick, :pop!
|
|
143
|
+
mixin :expansions
|
|
144
|
+
rule %r/[^\^`%!]+/, Str::Backtick
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
state :data do
|
|
148
|
+
rule %r/\s+/, Text
|
|
149
|
+
rule %r/0x[0-9a-f]+/i, Literal::Number::Hex
|
|
150
|
+
rule %r/[0-9]/, Literal::Number
|
|
151
|
+
rule %r/["]/, Str::Double, :double_quotes
|
|
152
|
+
rule %r/[']/, Str::Single, :single_quotes
|
|
153
|
+
rule %r/[`]/, Str::Backtick, :backtick
|
|
154
|
+
rule %r/[^\s&|()\[\]{}\^=;!%+\-,"'`~?*]+/, Text
|
|
155
|
+
mixin :escape
|
|
156
|
+
end
|
|
157
|
+
|
|
158
|
+
state :root do
|
|
159
|
+
mixin :basic
|
|
160
|
+
mixin :data
|
|
161
|
+
end
|
|
162
|
+
end
|
|
163
|
+
end
|
|
164
|
+
end
|