rouge 3.4.1 → 3.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/rouge.rb +4 -0
- data/lib/rouge/cli.rb +38 -13
- data/lib/rouge/demos/bpf +7 -0
- data/lib/rouge/demos/brainfuck +5 -0
- data/lib/rouge/demos/magik +6 -0
- data/lib/rouge/demos/openedge +4 -0
- data/lib/rouge/demos/powershell +12 -48
- data/lib/rouge/demos/xojo +2 -1
- data/lib/rouge/demos/xpath +2 -0
- data/lib/rouge/demos/xquery +22 -0
- data/lib/rouge/formatter.rb +2 -2
- data/lib/rouge/formatters/html.rb +18 -2
- data/lib/rouge/formatters/html_line_table.rb +51 -0
- data/lib/rouge/formatters/tex.rb +90 -0
- data/lib/rouge/guessers/glob_mapping.rb +1 -1
- data/lib/rouge/guessers/modeline.rb +1 -1
- data/lib/rouge/lexer.rb +22 -10
- data/lib/rouge/lexers/abap.rb +11 -11
- data/lib/rouge/lexers/actionscript.rb +34 -34
- data/lib/rouge/lexers/apache.rb +8 -8
- data/lib/rouge/lexers/apple_script.rb +15 -14
- data/lib/rouge/lexers/awk.rb +25 -25
- data/lib/rouge/lexers/biml.rb +4 -4
- data/lib/rouge/lexers/bpf.rb +104 -0
- data/lib/rouge/lexers/brainfuck.rb +53 -0
- data/lib/rouge/lexers/bsl.rb +12 -12
- data/lib/rouge/lexers/c.rb +30 -30
- data/lib/rouge/lexers/ceylon.rb +6 -34
- data/lib/rouge/lexers/cfscript.rb +26 -26
- data/lib/rouge/lexers/clojure.rb +14 -14
- data/lib/rouge/lexers/cmake.rb +14 -14
- data/lib/rouge/lexers/coffeescript.rb +30 -30
- data/lib/rouge/lexers/common_lisp.rb +36 -36
- data/lib/rouge/lexers/conf.rb +6 -6
- data/lib/rouge/lexers/coq.rb +18 -18
- data/lib/rouge/lexers/cpp.rb +8 -8
- data/lib/rouge/lexers/crystal.rb +70 -70
- data/lib/rouge/lexers/csharp.rb +28 -28
- data/lib/rouge/lexers/css.rb +23 -23
- data/lib/rouge/lexers/d.rb +59 -59
- data/lib/rouge/lexers/dart.rb +33 -33
- data/lib/rouge/lexers/digdag.rb +1 -1
- data/lib/rouge/lexers/docker.rb +10 -10
- data/lib/rouge/lexers/dot.rb +16 -16
- data/lib/rouge/lexers/eiffel.rb +20 -20
- data/lib/rouge/lexers/elixir.rb +34 -30
- data/lib/rouge/lexers/elm.rb +29 -29
- data/lib/rouge/lexers/erb.rb +4 -4
- data/lib/rouge/lexers/factor.rb +40 -40
- data/lib/rouge/lexers/fortran.rb +32 -32
- data/lib/rouge/lexers/fsharp.rb +30 -30
- data/lib/rouge/lexers/gherkin.rb +13 -13
- data/lib/rouge/lexers/glsl.rb +1 -5
- data/lib/rouge/lexers/go.rb +1 -1
- data/lib/rouge/lexers/graphql.rb +62 -62
- data/lib/rouge/lexers/groovy.rb +23 -25
- data/lib/rouge/lexers/hack.rb +1 -1
- data/lib/rouge/lexers/haml.rb +25 -29
- data/lib/rouge/lexers/handlebars.rb +18 -18
- data/lib/rouge/lexers/haskell.rb +66 -65
- data/lib/rouge/lexers/hcl.rb +25 -25
- data/lib/rouge/lexers/html.rb +31 -31
- data/lib/rouge/lexers/http.rb +4 -4
- data/lib/rouge/lexers/hylang.rb +14 -14
- data/lib/rouge/lexers/idlang.rb +32 -32
- data/lib/rouge/lexers/igorpro.rb +30 -30
- data/lib/rouge/lexers/ini.rb +12 -12
- data/lib/rouge/lexers/io.rb +7 -7
- data/lib/rouge/lexers/irb.rb +5 -5
- data/lib/rouge/lexers/java.rb +24 -24
- data/lib/rouge/lexers/javascript.rb +51 -51
- data/lib/rouge/lexers/jinja.rb +22 -22
- data/lib/rouge/lexers/json.rb +12 -11
- data/lib/rouge/lexers/json_doc.rb +2 -2
- data/lib/rouge/lexers/jsonnet.rb +18 -18
- data/lib/rouge/lexers/jsp.rb +30 -30
- data/lib/rouge/lexers/jsx.rb +16 -16
- data/lib/rouge/lexers/julia.rb +44 -44
- data/lib/rouge/lexers/kotlin.rb +3 -3
- data/lib/rouge/lexers/lasso.rb +50 -50
- data/lib/rouge/lexers/liquid.rb +76 -53
- data/lib/rouge/lexers/literate_coffeescript.rb +2 -2
- data/lib/rouge/lexers/literate_haskell.rb +5 -5
- data/lib/rouge/lexers/llvm.rb +23 -16
- data/lib/rouge/lexers/lua.rb +3 -3
- data/lib/rouge/lexers/m68k.rb +18 -19
- data/lib/rouge/lexers/magik.rb +127 -0
- data/lib/rouge/lexers/make.rb +26 -31
- data/lib/rouge/lexers/markdown.rb +37 -37
- data/lib/rouge/lexers/mathematica.rb +11 -11
- data/lib/rouge/lexers/matlab.rb +20 -20
- data/lib/rouge/lexers/moonscript.rb +3 -3
- data/lib/rouge/lexers/mosel.rb +63 -63
- data/lib/rouge/lexers/mxml.rb +18 -18
- data/lib/rouge/lexers/nasm.rb +24 -25
- data/lib/rouge/lexers/nginx.rb +14 -14
- data/lib/rouge/lexers/nim.rb +3 -2
- data/lib/rouge/lexers/nix.rb +43 -43
- data/lib/rouge/lexers/objective_c.rb +38 -38
- data/lib/rouge/lexers/ocaml.rb +29 -29
- data/lib/rouge/lexers/openedge.rb +429 -0
- data/lib/rouge/lexers/pascal.rb +4 -4
- data/lib/rouge/lexers/perl.rb +77 -79
- data/lib/rouge/lexers/php.rb +38 -38
- data/lib/rouge/lexers/plist.rb +14 -14
- data/lib/rouge/lexers/pony.rb +19 -19
- data/lib/rouge/lexers/powershell.rb +183 -637
- data/lib/rouge/lexers/praat.rb +75 -75
- data/lib/rouge/lexers/prolog.rb +26 -20
- data/lib/rouge/lexers/prometheus.rb +30 -30
- data/lib/rouge/lexers/properties.rb +12 -12
- data/lib/rouge/lexers/protobuf.rb +22 -22
- data/lib/rouge/lexers/puppet.rb +31 -31
- data/lib/rouge/lexers/python.rb +52 -52
- data/lib/rouge/lexers/q.rb +12 -12
- data/lib/rouge/lexers/qml.rb +12 -12
- data/lib/rouge/lexers/r.rb +12 -12
- data/lib/rouge/lexers/racket.rb +22 -22
- data/lib/rouge/lexers/ruby.rb +72 -70
- data/lib/rouge/lexers/rust.rb +30 -30
- data/lib/rouge/lexers/sass.rb +8 -8
- data/lib/rouge/lexers/sass/common.rb +40 -40
- data/lib/rouge/lexers/scala.rb +43 -43
- data/lib/rouge/lexers/scheme.rb +18 -18
- data/lib/rouge/lexers/scss.rb +3 -3
- data/lib/rouge/lexers/sed.rb +29 -29
- data/lib/rouge/lexers/shell.rb +61 -52
- data/lib/rouge/lexers/sieve.rb +8 -8
- data/lib/rouge/lexers/slim.rb +24 -24
- data/lib/rouge/lexers/smalltalk.rb +33 -33
- data/lib/rouge/lexers/smarty.rb +12 -12
- data/lib/rouge/lexers/sml.rb +67 -67
- data/lib/rouge/lexers/sqf.rb +1 -1
- data/lib/rouge/lexers/sql.rb +21 -21
- data/lib/rouge/lexers/supercollider.rb +19 -19
- data/lib/rouge/lexers/swift.rb +46 -43
- data/lib/rouge/lexers/tap.rb +20 -20
- data/lib/rouge/lexers/tcl.rb +27 -27
- data/lib/rouge/lexers/terraform.rb +13 -13
- data/lib/rouge/lexers/tex.rb +19 -19
- data/lib/rouge/lexers/toml.rb +19 -19
- data/lib/rouge/lexers/tulip.rb +36 -36
- data/lib/rouge/lexers/turtle.rb +35 -38
- data/lib/rouge/lexers/vala.rb +18 -18
- data/lib/rouge/lexers/vb.rb +27 -27
- data/lib/rouge/lexers/verilog.rb +25 -27
- data/lib/rouge/lexers/vhdl.rb +11 -11
- data/lib/rouge/lexers/viml.rb +14 -14
- data/lib/rouge/lexers/vue.rb +9 -9
- data/lib/rouge/lexers/wollok.rb +26 -26
- data/lib/rouge/lexers/xml.rb +17 -21
- data/lib/rouge/lexers/xojo.rb +17 -17
- data/lib/rouge/lexers/xpath.rb +332 -0
- data/lib/rouge/lexers/xquery.rb +145 -0
- data/lib/rouge/lexers/yaml.rb +63 -61
- data/lib/rouge/plugins/redcarpet.rb +1 -1
- data/lib/rouge/regex_lexer.rb +14 -13
- data/lib/rouge/tex_theme_renderer.rb +128 -0
- data/lib/rouge/theme.rb +4 -0
- data/lib/rouge/themes/magritte.rb +78 -0
- data/lib/rouge/themes/monokai_sublime.rb +2 -1
- data/lib/rouge/themes/pastie.rb +1 -1
- data/lib/rouge/util.rb +2 -2
- data/lib/rouge/version.rb +1 -1
- metadata +19 -3
@@ -24,15 +24,15 @@ module Rouge
|
|
24
24
|
# YAML frontmatter
|
25
25
|
rule(/\A(---\s*\n.*?\n?)^(---\s*$\n?)/m) { delegate YAML }
|
26
26
|
|
27
|
-
rule /\\./, Str::Escape
|
27
|
+
rule %r/\\./, Str::Escape
|
28
28
|
|
29
|
-
rule /^[\S ]+\n(?:---*)\n/, Generic::Heading
|
30
|
-
rule /^[\S ]+\n(?:===*)\n/, Generic::Subheading
|
29
|
+
rule %r/^[\S ]+\n(?:---*)\n/, Generic::Heading
|
30
|
+
rule %r/^[\S ]+\n(?:===*)\n/, Generic::Subheading
|
31
31
|
|
32
|
-
rule /^#(?=[^#]).*?$/, Generic::Heading
|
33
|
-
rule /^##*.*?$/, Generic::Subheading
|
32
|
+
rule %r/^#(?=[^#]).*?$/, Generic::Heading
|
33
|
+
rule %r/^##*.*?$/, Generic::Subheading
|
34
34
|
|
35
|
-
rule /^([ \t]*)(```|~~~)([^\n]*\n)((.*?)(\2))?/m do |m|
|
35
|
+
rule %r/^([ \t]*)(```|~~~)([^\n]*\n)((.*?)(\2))?/m do |m|
|
36
36
|
name = m[3].strip
|
37
37
|
sublexer = Lexer.find_fancy(name.empty? ? "guess" : name, m[5], @options)
|
38
38
|
sublexer ||= PlainText.new(@options.merge(:token => Str::Backtick))
|
@@ -49,36 +49,36 @@ module Rouge
|
|
49
49
|
token Punctuation, m[6]
|
50
50
|
else
|
51
51
|
push do
|
52
|
-
rule /^([ \t]*)(#{m[2]})/ do |mb|
|
52
|
+
rule %r/^([ \t]*)(#{m[2]})/ do |mb|
|
53
53
|
pop!
|
54
54
|
token Text, mb[1]
|
55
55
|
token Punctuation, mb[2]
|
56
56
|
end
|
57
|
-
rule /^.*\n/ do |mb|
|
57
|
+
rule %r/^.*\n/ do |mb|
|
58
58
|
delegate sublexer, mb[1]
|
59
59
|
end
|
60
60
|
end
|
61
61
|
end
|
62
62
|
end
|
63
63
|
|
64
|
-
rule /\n\n(( |\t).*?\n|\n)+/, Str::Backtick
|
64
|
+
rule %r/\n\n(( |\t).*?\n|\n)+/, Str::Backtick
|
65
65
|
|
66
|
-
rule /(`+)(?:#{edot}|\n)+?\1/, Str::Backtick
|
66
|
+
rule %r/(`+)(?:#{edot}|\n)+?\1/, Str::Backtick
|
67
67
|
|
68
68
|
# various uses of * are in order of precedence
|
69
69
|
|
70
70
|
# line breaks
|
71
|
-
rule /^(\s*[*]){3,}\s*$/, Punctuation
|
72
|
-
rule /^(\s*[-]){3,}\s*$/, Punctuation
|
71
|
+
rule %r/^(\s*[*]){3,}\s*$/, Punctuation
|
72
|
+
rule %r/^(\s*[-]){3,}\s*$/, Punctuation
|
73
73
|
|
74
74
|
# bulleted lists
|
75
|
-
rule /^\s*[*+-](?=\s)/, Punctuation
|
75
|
+
rule %r/^\s*[*+-](?=\s)/, Punctuation
|
76
76
|
|
77
77
|
# numbered lists
|
78
|
-
rule /^\s*\d+\./, Punctuation
|
78
|
+
rule %r/^\s*\d+\./, Punctuation
|
79
79
|
|
80
80
|
# blockquotes
|
81
|
-
rule /^\s*>.*?$/, Generic::Traceback
|
81
|
+
rule %r/^\s*>.*?$/, Generic::Traceback
|
82
82
|
|
83
83
|
# link references
|
84
84
|
# [foo]: bar "baz"
|
@@ -94,77 +94,77 @@ module Rouge
|
|
94
94
|
end
|
95
95
|
|
96
96
|
# links and images
|
97
|
-
rule /(!?\[)(#{edot}*?)(\])/ do
|
97
|
+
rule %r/(!?\[)(#{edot}*?)(\])/ do
|
98
98
|
groups Punctuation, Name::Variable, Punctuation
|
99
99
|
push :link
|
100
100
|
end
|
101
101
|
|
102
|
-
rule /[*][*]#{edot}*?[*][*]/, Generic::Strong
|
103
|
-
rule /__#{edot}*?__/, Generic::Strong
|
102
|
+
rule %r/[*][*]#{edot}*?[*][*]/, Generic::Strong
|
103
|
+
rule %r/__#{edot}*?__/, Generic::Strong
|
104
104
|
|
105
|
-
rule /[*]#{edot}*?[*]/, Generic::Emph
|
106
|
-
rule /_#{edot}*?_/, Generic::Emph
|
105
|
+
rule %r/[*]#{edot}*?[*]/, Generic::Emph
|
106
|
+
rule %r/_#{edot}*?_/, Generic::Emph
|
107
107
|
|
108
108
|
# Automatic links
|
109
|
-
rule /<.*?@.+[.].+>/, Name::Variable
|
109
|
+
rule %r/<.*?@.+[.].+>/, Name::Variable
|
110
110
|
rule %r[<(https?|mailto|ftp)://#{edot}*?>], Name::Variable
|
111
111
|
|
112
112
|
|
113
|
-
rule /[^\\`\[*\n&<]+/, Text
|
113
|
+
rule %r/[^\\`\[*\n&<]+/, Text
|
114
114
|
|
115
115
|
# inline html
|
116
116
|
rule(/&\S*;/) { delegate html }
|
117
117
|
rule(/<#{edot}*?>/) { delegate html }
|
118
|
-
rule /[&<]/, Text
|
118
|
+
rule %r/[&<]/, Text
|
119
119
|
|
120
|
-
rule /\n/, Text
|
120
|
+
rule %r/\n/, Text
|
121
121
|
end
|
122
122
|
|
123
123
|
state :link do
|
124
|
-
rule /(\[)(#{edot}*?)(\])/ do
|
124
|
+
rule %r/(\[)(#{edot}*?)(\])/ do
|
125
125
|
groups Punctuation, Str::Symbol, Punctuation
|
126
126
|
pop!
|
127
127
|
end
|
128
128
|
|
129
|
-
rule /[(]/ do
|
129
|
+
rule %r/[(]/ do
|
130
130
|
token Punctuation
|
131
131
|
push :inline_title
|
132
132
|
push :inline_url
|
133
133
|
end
|
134
134
|
|
135
|
-
rule /[ \t]+/, Text
|
135
|
+
rule %r/[ \t]+/, Text
|
136
136
|
|
137
137
|
rule(//) { pop! }
|
138
138
|
end
|
139
139
|
|
140
140
|
state :url do
|
141
|
-
rule /[ \t]+/, Text
|
141
|
+
rule %r/[ \t]+/, Text
|
142
142
|
|
143
143
|
# the url
|
144
|
-
rule /(<)(#{edot}*?)(>)/ do
|
144
|
+
rule %r/(<)(#{edot}*?)(>)/ do
|
145
145
|
groups Name::Tag, Str::Other, Name::Tag
|
146
146
|
pop!
|
147
147
|
end
|
148
148
|
|
149
|
-
rule /\S+/, Str::Other, :pop!
|
149
|
+
rule %r/\S+/, Str::Other, :pop!
|
150
150
|
end
|
151
151
|
|
152
152
|
state :title do
|
153
|
-
rule /"#{edot}*?"/, Name::Namespace
|
154
|
-
rule /'#{edot}*?'/, Name::Namespace
|
155
|
-
rule /[(]#{edot}*?[)]/, Name::Namespace
|
156
|
-
rule /\s*(?=["'()])/, Text
|
153
|
+
rule %r/"#{edot}*?"/, Name::Namespace
|
154
|
+
rule %r/'#{edot}*?'/, Name::Namespace
|
155
|
+
rule %r/[(]#{edot}*?[)]/, Name::Namespace
|
156
|
+
rule %r/\s*(?=["'()])/, Text
|
157
157
|
rule(//) { pop! }
|
158
158
|
end
|
159
159
|
|
160
160
|
state :inline_title do
|
161
|
-
rule /[)]/, Punctuation, :pop!
|
161
|
+
rule %r/[)]/, Punctuation, :pop!
|
162
162
|
mixin :title
|
163
163
|
end
|
164
164
|
|
165
165
|
state :inline_url do
|
166
|
-
rule /[^<\s)]+/, Str::Other, :pop!
|
167
|
-
rule /\s+/m, Text
|
166
|
+
rule %r/[^<\s)]+/, Str::Other, :pop!
|
167
|
+
rule %r/\s+/m, Text
|
168
168
|
mixin :url
|
169
169
|
end
|
170
170
|
end
|
@@ -56,18 +56,18 @@ module Rouge
|
|
56
56
|
|
57
57
|
# The list of built-in symbols comes from a wolfram server and is created automatically by rake
|
58
58
|
def self.builtins
|
59
|
-
load
|
59
|
+
load File.join(__dir__, 'mathematica/builtins.rb')
|
60
60
|
self.builtins
|
61
61
|
end
|
62
62
|
|
63
63
|
state :root do
|
64
|
-
rule /\s+/, Text::Whitespace
|
65
|
-
rule /\(\*/, Comment, :comment
|
66
|
-
rule /#{base}\^\^#{number_base}#{precision}?(\*\^[+-]?\d+)?/, Num # a number with a base
|
67
|
-
rule /(?:#{number}#{precision}?(?:\*\^[+-]?\d+)?)/, Num # all other numbers
|
64
|
+
rule %r/\s+/, Text::Whitespace
|
65
|
+
rule %r/\(\*/, Comment, :comment
|
66
|
+
rule %r/#{base}\^\^#{number_base}#{precision}?(\*\^[+-]?\d+)?/, Num # a number with a base
|
67
|
+
rule %r/(?:#{number}#{precision}?(?:\*\^[+-]?\d+)?)/, Num # all other numbers
|
68
68
|
rule message, Name::Tag
|
69
69
|
rule in_out, Generic::Prompt
|
70
|
-
rule /#{context_symbol}/m do |m|
|
70
|
+
rule %r/#{context_symbol}/m do |m|
|
71
71
|
match = m[0]
|
72
72
|
if self.class.keywords.include? match
|
73
73
|
token Name::Builtin::Pseudo
|
@@ -85,11 +85,11 @@ module Rouge
|
|
85
85
|
|
86
86
|
# Allow for nested comments and special treatment of ::Section:: or :Author: markup
|
87
87
|
state :comment do
|
88
|
-
rule /\(\*/, Comment, :comment
|
89
|
-
rule /\*\)/, Comment, :pop!
|
90
|
-
rule /::#{identifier}::/, Comment::Preproc
|
91
|
-
rule /[ ]:(#{identifier}|[^\S])+:[ ]/, Comment::Preproc
|
92
|
-
rule /./, Comment
|
88
|
+
rule %r/\(\*/, Comment, :comment
|
89
|
+
rule %r/\*\)/, Comment, :pop!
|
90
|
+
rule %r/::#{identifier}::/, Comment::Preproc
|
91
|
+
rule %r/[ ]:(#{identifier}|[^\S])+:[ ]/, Comment::Preproc
|
92
|
+
rule %r/./, Comment
|
93
93
|
end
|
94
94
|
end
|
95
95
|
end
|
data/lib/rouge/lexers/matlab.rb
CHANGED
@@ -19,25 +19,25 @@ module Rouge
|
|
19
19
|
end
|
20
20
|
|
21
21
|
def self.builtins
|
22
|
-
load
|
22
|
+
load File.join(__dir__, 'matlab/builtins.rb')
|
23
23
|
self.builtins
|
24
24
|
end
|
25
25
|
|
26
26
|
state :root do
|
27
|
-
rule /\s+/m, Text # Whitespace
|
27
|
+
rule %r/\s+/m, Text # Whitespace
|
28
28
|
rule %r([{]%.*?%[}])m, Comment::Multiline
|
29
|
-
rule /%.*$/, Comment::Single
|
30
|
-
rule /([.][.][.])(.*?)$/ do
|
29
|
+
rule %r/%.*$/, Comment::Single
|
30
|
+
rule %r/([.][.][.])(.*?)$/ do
|
31
31
|
groups(Keyword, Comment)
|
32
32
|
end
|
33
33
|
|
34
|
-
rule /^(!)(.*?)(?=%|$)/ do |m|
|
34
|
+
rule %r/^(!)(.*?)(?=%|$)/ do |m|
|
35
35
|
token Keyword, m[1]
|
36
36
|
delegate Shell, m[2]
|
37
37
|
end
|
38
38
|
|
39
39
|
|
40
|
-
rule /[a-zA-Z][_a-zA-Z0-9]*/m do |m|
|
40
|
+
rule %r/[a-zA-Z][_a-zA-Z0-9]*/m do |m|
|
41
41
|
match = m[0]
|
42
42
|
if self.class.keywords.include? match
|
43
43
|
token Keyword
|
@@ -50,29 +50,29 @@ module Rouge
|
|
50
50
|
|
51
51
|
rule %r{[(){};:,\/\\\]\[]}, Punctuation
|
52
52
|
|
53
|
-
rule /~=|==|<<|>>|[-~+\/*%=<>&^|.@]/, Operator
|
53
|
+
rule %r/~=|==|<<|>>|[-~+\/*%=<>&^|.@]/, Operator
|
54
54
|
|
55
55
|
|
56
|
-
rule /(\d+\.\d*|\d*\.\d+)(e[+-]?[0-9]+)?/i, Num::Float
|
57
|
-
rule /\d+e[+-]?[0-9]+/i, Num::Float
|
58
|
-
rule /\d+L/, Num::Integer::Long
|
59
|
-
rule /\d+/, Num::Integer
|
56
|
+
rule %r/(\d+\.\d*|\d*\.\d+)(e[+-]?[0-9]+)?/i, Num::Float
|
57
|
+
rule %r/\d+e[+-]?[0-9]+/i, Num::Float
|
58
|
+
rule %r/\d+L/, Num::Integer::Long
|
59
|
+
rule %r/\d+/, Num::Integer
|
60
60
|
|
61
|
-
rule /'(?=(.*'))/, Str::Single, :chararray
|
62
|
-
rule /"(?=(.*"))/, Str::Double, :string
|
63
|
-
rule /'/, Operator
|
61
|
+
rule %r/'(?=(.*'))/, Str::Single, :chararray
|
62
|
+
rule %r/"(?=(.*"))/, Str::Double, :string
|
63
|
+
rule %r/'/, Operator
|
64
64
|
end
|
65
65
|
|
66
66
|
state :chararray do
|
67
|
-
rule /[^']+/, Str::Single
|
68
|
-
rule /''/, Str::Escape
|
69
|
-
rule /'/, Str::Single, :pop!
|
67
|
+
rule %r/[^']+/, Str::Single
|
68
|
+
rule %r/''/, Str::Escape
|
69
|
+
rule %r/'/, Str::Single, :pop!
|
70
70
|
end
|
71
71
|
|
72
72
|
state :string do
|
73
|
-
rule /[^"]+/, Str::Double
|
74
|
-
rule /""/, Str::Escape
|
75
|
-
rule /"/, Str::Double, :pop!
|
73
|
+
rule %r/[^"]+/, Str::Double
|
74
|
+
rule %r/""/, Str::Escape
|
75
|
+
rule %r/"/, Str::Double, :pop!
|
76
76
|
end
|
77
77
|
end
|
78
78
|
end
|
@@ -40,18 +40,18 @@ module Rouge
|
|
40
40
|
|
41
41
|
state :root do
|
42
42
|
rule %r(#!(.*?)$), Comment::Preproc # shebang
|
43
|
-
rule //, Text, :main
|
43
|
+
rule %r//, Text, :main
|
44
44
|
end
|
45
45
|
|
46
46
|
state :base do
|
47
|
-
ident = '(
|
47
|
+
ident = '(?:\w\w*)'
|
48
48
|
|
49
49
|
rule %r((?i)(\d*\.\d+|\d+\.\d*)(e[+-]?\d+)?'), Num::Float
|
50
50
|
rule %r((?i)\d+e[+-]?\d+), Num::Float
|
51
51
|
rule %r((?i)0x[0-9a-f]*), Num::Hex
|
52
52
|
rule %r(\d+), Num::Integer
|
53
53
|
rule %r(@#{ident}*), Name::Variable::Instance
|
54
|
-
rule %r([A-Z]
|
54
|
+
rule %r([A-Z]\w*), Name::Class
|
55
55
|
rule %r("?[^"]+":), Literal::String::Symbol
|
56
56
|
rule %r(#{ident}:), Literal::String::Symbol
|
57
57
|
rule %r(:#{ident}), Literal::String::Symbol
|
data/lib/rouge/lexers/mosel.rb
CHANGED
@@ -7,7 +7,7 @@ module Rouge
|
|
7
7
|
tag 'mosel'
|
8
8
|
filenames '*.mos'
|
9
9
|
title "Mosel"
|
10
|
-
desc "An optimization language used by Fico's Xpress."
|
10
|
+
desc "An optimization language used by Fico's Xpress."
|
11
11
|
# http://www.fico.com/en/products/fico-xpress-optimization-suite
|
12
12
|
filenames '*.mos'
|
13
13
|
|
@@ -24,46 +24,46 @@ module Rouge
|
|
24
24
|
############################################################################################################################
|
25
25
|
|
26
26
|
core_keywords = %w(
|
27
|
-
and array as
|
28
|
-
boolean break
|
29
|
-
case count counter
|
30
|
-
declarations div do dynamic
|
31
|
-
elif else end evaluation exit
|
32
|
-
false forall forward from function
|
33
|
-
if imports in include initialisations initializations integer inter is_binary is_continuous is_free is_integer is_partint is_semcont is_semint is_sos1 is_sos2
|
34
|
-
linctr list
|
27
|
+
and array as
|
28
|
+
boolean break
|
29
|
+
case count counter
|
30
|
+
declarations div do dynamic
|
31
|
+
elif else end evaluation exit
|
32
|
+
false forall forward from function
|
33
|
+
if imports in include initialisations initializations integer inter is_binary is_continuous is_free is_integer is_partint is_semcont is_semint is_sos1 is_sos2
|
34
|
+
linctr list
|
35
35
|
max min mod model mpvar
|
36
36
|
next not of options or
|
37
|
-
package parameters procedure
|
38
|
-
public prod range real record repeat requirements
|
37
|
+
package parameters procedure
|
38
|
+
public prod range real record repeat requirements
|
39
39
|
set string sum
|
40
40
|
then to true
|
41
41
|
union until uses
|
42
42
|
version
|
43
43
|
while with
|
44
44
|
)
|
45
|
-
|
45
|
+
|
46
46
|
core_functions = %w(
|
47
47
|
abs arctan assert
|
48
48
|
bitflip bitneg bitset bitshift bittest bitval
|
49
49
|
ceil cos create currentdate currenttime cuthead cuttail
|
50
50
|
delcell exists exit exp exportprob
|
51
|
-
fclose fflush finalize findfirst findlast floor fopen fselect fskipline
|
51
|
+
fclose fflush finalize findfirst findlast floor fopen fselect fskipline
|
52
52
|
getact getcoeff getcoeffs getdual getfid getfirst gethead getfname getlast getobjval getparam getrcost getreadcnt getreverse getsize getslack getsol gettail gettype getvars
|
53
|
-
iseof ishidden isodd ln log
|
54
|
-
makesos1 makesos2 maxlist minlist
|
55
|
-
publish
|
53
|
+
iseof ishidden isodd ln log
|
54
|
+
makesos1 makesos2 maxlist minlist
|
55
|
+
publish
|
56
56
|
random read readln reset reverse round
|
57
|
-
setcoeff sethidden setioerr setname setparam setrandseed settype sin splithead splittail sqrt strfmt substr
|
58
|
-
timestamp
|
59
|
-
unpublish
|
57
|
+
setcoeff sethidden setioerr setname setparam setrandseed settype sin splithead splittail sqrt strfmt substr
|
58
|
+
timestamp
|
59
|
+
unpublish
|
60
60
|
write writeln
|
61
61
|
)
|
62
|
-
|
62
|
+
|
63
63
|
############################################################################################################################
|
64
64
|
# mmxprs module elements
|
65
65
|
############################################################################################################################
|
66
|
-
|
66
|
+
|
67
67
|
mmxprs_functions = %w(
|
68
68
|
addmipsol
|
69
69
|
basisstability
|
@@ -79,26 +79,26 @@ module Rouge
|
|
79
79
|
readbasis readdirs readsol refinemipsol rejectintsol repairinfeas resetbasis resetiis resetsol
|
80
80
|
savebasis savemipsol savesol savestate selectsol setbstat setcallback setcbcutoff setgndata setlb setmipdir setmodcut setsol setub setucbdata stopoptimize
|
81
81
|
unloadprob
|
82
|
-
writebasis writedirs writeprob writesol
|
82
|
+
writebasis writedirs writeprob writesol
|
83
83
|
xor
|
84
84
|
)
|
85
|
-
|
85
|
+
|
86
86
|
mmxpres_constants = %w(XPRS_OPT XPRS_UNF XPRS_INF XPRS_UNB XPRS_OTH)
|
87
|
-
|
87
|
+
|
88
88
|
mmxprs_parameters = %w(XPRS_colorder XPRS_enumduplpol XPRS_enummaxsol XPRS_enumsols XPRS_fullversion XPRS_loadnames XPRS_problem XPRS_probname XPRS_verbose)
|
89
|
-
|
90
|
-
|
89
|
+
|
90
|
+
|
91
91
|
############################################################################################################################
|
92
92
|
# mmsystem module elements
|
93
93
|
############################################################################################################################
|
94
|
-
|
94
|
+
|
95
95
|
mmsystem_functions = %w(
|
96
96
|
addmonths
|
97
97
|
copytext cuttext
|
98
|
-
deltext
|
98
|
+
deltext
|
99
99
|
endswith expandpath
|
100
100
|
fcopy fdelete findfiles findtext fmove
|
101
|
-
getasnumber getchar getcwd getdate getday getdaynum getdays getdirsep
|
101
|
+
getasnumber getchar getcwd getdate getday getdaynum getdays getdirsep
|
102
102
|
getendparse setendparse
|
103
103
|
getenv getfsize getfstat getftime gethour getminute getmonth getmsec getpathsep
|
104
104
|
getqtype setqtype
|
@@ -108,29 +108,29 @@ module Rouge
|
|
108
108
|
getstart setstart
|
109
109
|
getsucc setsucc
|
110
110
|
getsysinfo getsysstat gettime
|
111
|
-
gettmpdir
|
111
|
+
gettmpdir
|
112
112
|
gettrim settrim
|
113
113
|
getweekday getyear
|
114
114
|
inserttext isvalid
|
115
115
|
makedir makepath newtar
|
116
116
|
newzip nextfield
|
117
|
-
openpipe
|
117
|
+
openpipe
|
118
118
|
parseextn parseint parsereal parsetext pastetext pathmatch pathsplit
|
119
119
|
qsort quote
|
120
|
-
readtextline regmatch regreplace removedir removefiles
|
120
|
+
readtextline regmatch regreplace removedir removefiles
|
121
121
|
setchar setdate setday setenv sethour
|
122
122
|
setminute setmonth setmsec setsecond settime setyear sleep startswith system
|
123
123
|
tarlist textfmt tolower toupper trim
|
124
124
|
untar unzip
|
125
125
|
ziplist
|
126
126
|
)
|
127
|
-
|
127
|
+
|
128
128
|
mmsystem_parameters = %w(datefmt datetimefmt monthnames sys_endparse sys_fillchar sys_pid sys_qtype sys_regcache sys_sepchar)
|
129
129
|
|
130
130
|
############################################################################################################################
|
131
131
|
# mmjobs module elements
|
132
132
|
############################################################################################################################
|
133
|
-
|
133
|
+
|
134
134
|
mmjobs_instance_mgmt_functions = %w(
|
135
135
|
clearaliases connect
|
136
136
|
disconnect
|
@@ -138,7 +138,7 @@ module Rouge
|
|
138
138
|
getaliases getbanner gethostalias
|
139
139
|
sethostalias
|
140
140
|
)
|
141
|
-
|
141
|
+
|
142
142
|
mmjobs_model_mgmt_functions = %w(
|
143
143
|
compile
|
144
144
|
detach
|
@@ -148,7 +148,7 @@ module Rouge
|
|
148
148
|
setcontrol setdefstream setmodpar setworkdir stop
|
149
149
|
unload
|
150
150
|
)
|
151
|
-
|
151
|
+
|
152
152
|
mmjobs_synchornization_functions = %w(
|
153
153
|
dropnextevent
|
154
154
|
getclass getfromgid getfromid getfromuid getnextevent getvalue
|
@@ -158,15 +158,15 @@ module Rouge
|
|
158
158
|
send setgid setuid
|
159
159
|
wait waitfor
|
160
160
|
)
|
161
|
-
|
161
|
+
|
162
162
|
mmjobs_functions = mmjobs_instance_mgmt_functions + mmjobs_model_mgmt_functions + mmjobs_synchornization_functions
|
163
|
-
|
163
|
+
|
164
164
|
mmjobs_parameters = %w(conntmpl defaultnode fsrvdelay fsrvnbiter fsrvport jobid keepalive nodenumber parentnumber)
|
165
165
|
|
166
166
|
|
167
167
|
state :whitespace do
|
168
168
|
# Spaces
|
169
|
-
rule /\s+/m, Text
|
169
|
+
rule %r/\s+/m, Text
|
170
170
|
# ! Comments
|
171
171
|
rule %r((!).*$\n?), Comment::Single
|
172
172
|
# (! Comments !)
|
@@ -182,14 +182,14 @@ module Rouge
|
|
182
182
|
# The escape sequences are not interpreted if they are contained in strings that are enclosed in single quotes.
|
183
183
|
|
184
184
|
state :single_quotes do
|
185
|
-
rule /'/, Str::Single, :pop!
|
186
|
-
rule /[^']+/, Str::Single
|
185
|
+
rule %r/'/, Str::Single, :pop!
|
186
|
+
rule %r/[^']+/, Str::Single
|
187
187
|
end
|
188
188
|
|
189
189
|
state :double_quotes do
|
190
|
-
rule /"/, Str::Double, :pop!
|
191
|
-
rule /(\\"|\\[0-7]{1,3}\D|\\[abfnrtv]|\\\\)/, Str::Escape
|
192
|
-
rule /[^"]/, Str::Double
|
190
|
+
rule %r/"/, Str::Double, :pop!
|
191
|
+
rule %r/(\\"|\\[0-7]{1,3}\D|\\[abfnrtv]|\\\\)/, Str::Escape
|
192
|
+
rule %r/[^"]/, Str::Double
|
193
193
|
end
|
194
194
|
|
195
195
|
state :base do
|
@@ -200,25 +200,25 @@ module Rouge
|
|
200
200
|
rule %r{((0(x|X)[0-9a-fA-F]*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))((e|E)(\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?}, Num
|
201
201
|
rule %r{[~!@#\$%\^&\*\(\)\+`\-={}\[\]:;<>\?,\.\/\|\\]}, Punctuation
|
202
202
|
# rule %r{'([^']|'')*'}, Str
|
203
|
-
# rule /"(\\\\|\\"|[^"])*"/, Str
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
rule /(true|false)\b/i, Name::Builtin
|
208
|
-
rule /\b(#{core_keywords.join('|')})\b/i, Keyword
|
209
|
-
rule /\b(#{core_functions.join('|')})\b/, Name::Builtin
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
rule /\b(#{mmxprs_functions.join('|')})\b/, Name::Function
|
214
|
-
rule /\b(#{mmxpres_constants.join('|')})\b/, Name::Constant
|
215
|
-
rule /\b(#{mmxprs_parameters.join('|')})\b/i, Name::Property
|
216
|
-
|
217
|
-
rule /\b(#{mmsystem_functions.join('|')})\b/i, Name::Function
|
218
|
-
rule /\b(#{mmsystem_parameters.join('|')})\b/, Name::Property
|
219
|
-
|
220
|
-
rule /\b(#{mmjobs_functions.join('|')})\b/i, Name::Function
|
221
|
-
rule /\b(#{mmjobs_parameters.join('|')})\b/, Name::Property
|
203
|
+
# rule %r/"(\\\\|\\"|[^"])*"/, Str
|
204
|
+
|
205
|
+
|
206
|
+
|
207
|
+
rule %r/(true|false)\b/i, Name::Builtin
|
208
|
+
rule %r/\b(#{core_keywords.join('|')})\b/i, Keyword
|
209
|
+
rule %r/\b(#{core_functions.join('|')})\b/, Name::Builtin
|
210
|
+
|
211
|
+
|
212
|
+
|
213
|
+
rule %r/\b(#{mmxprs_functions.join('|')})\b/, Name::Function
|
214
|
+
rule %r/\b(#{mmxpres_constants.join('|')})\b/, Name::Constant
|
215
|
+
rule %r/\b(#{mmxprs_parameters.join('|')})\b/i, Name::Property
|
216
|
+
|
217
|
+
rule %r/\b(#{mmsystem_functions.join('|')})\b/i, Name::Function
|
218
|
+
rule %r/\b(#{mmsystem_parameters.join('|')})\b/, Name::Property
|
219
|
+
|
220
|
+
rule %r/\b(#{mmjobs_functions.join('|')})\b/i, Name::Function
|
221
|
+
rule %r/\b(#{mmjobs_parameters.join('|')})\b/, Name::Property
|
222
222
|
|
223
223
|
rule id, Name
|
224
224
|
end
|