rougegal 2.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/Gemfile +26 -0
- data/LICENSE +186 -0
- data/bin/rougify +17 -0
- data/lib/rouge/cli.rb +394 -0
- data/lib/rouge/demos/abap +6 -0
- data/lib/rouge/demos/actionscript +4 -0
- data/lib/rouge/demos/apache +21 -0
- data/lib/rouge/demos/apiblueprint +33 -0
- data/lib/rouge/demos/applescript +2 -0
- data/lib/rouge/demos/awk +4 -0
- data/lib/rouge/demos/biml +38 -0
- data/lib/rouge/demos/bsl +7 -0
- data/lib/rouge/demos/c +8 -0
- data/lib/rouge/demos/ceylon +7 -0
- data/lib/rouge/demos/cfscript +18 -0
- data/lib/rouge/demos/clojure +5 -0
- data/lib/rouge/demos/cmake +7 -0
- data/lib/rouge/demos/coffeescript +5 -0
- data/lib/rouge/demos/common_lisp +1 -0
- data/lib/rouge/demos/conf +4 -0
- data/lib/rouge/demos/console +6 -0
- data/lib/rouge/demos/coq +13 -0
- data/lib/rouge/demos/cpp +8 -0
- data/lib/rouge/demos/csharp +5 -0
- data/lib/rouge/demos/css +4 -0
- data/lib/rouge/demos/d +16 -0
- data/lib/rouge/demos/dart +6 -0
- data/lib/rouge/demos/diff +7 -0
- data/lib/rouge/demos/digdag +19 -0
- data/lib/rouge/demos/docker +9 -0
- data/lib/rouge/demos/dot +5 -0
- data/lib/rouge/demos/eiffel +30 -0
- data/lib/rouge/demos/elixir +1 -0
- data/lib/rouge/demos/erb +1 -0
- data/lib/rouge/demos/erlang +7 -0
- data/lib/rouge/demos/factor +5 -0
- data/lib/rouge/demos/fortran +22 -0
- data/lib/rouge/demos/fsharp +12 -0
- data/lib/rouge/demos/gal +22 -0
- data/lib/rouge/demos/gherkin +17 -0
- data/lib/rouge/demos/glsl +14 -0
- data/lib/rouge/demos/go +7 -0
- data/lib/rouge/demos/gradle +10 -0
- data/lib/rouge/demos/graphql +17 -0
- data/lib/rouge/demos/groovy +9 -0
- data/lib/rouge/demos/haml +5 -0
- data/lib/rouge/demos/handlebars +7 -0
- data/lib/rouge/demos/haskell +6 -0
- data/lib/rouge/demos/html +8 -0
- data/lib/rouge/demos/http +14 -0
- data/lib/rouge/demos/hylang +10 -0
- data/lib/rouge/demos/idlang +8 -0
- data/lib/rouge/demos/igorpro +9 -0
- data/lib/rouge/demos/ini +4 -0
- data/lib/rouge/demos/io +11 -0
- data/lib/rouge/demos/irb +4 -0
- data/lib/rouge/demos/irb_output +2 -0
- data/lib/rouge/demos/java +5 -0
- data/lib/rouge/demos/javascript +1 -0
- data/lib/rouge/demos/jinja +9 -0
- data/lib/rouge/demos/json +1 -0
- data/lib/rouge/demos/json-doc +1 -0
- data/lib/rouge/demos/jsonnet +28 -0
- data/lib/rouge/demos/jsx +17 -0
- data/lib/rouge/demos/julia +11 -0
- data/lib/rouge/demos/kotlin +3 -0
- data/lib/rouge/demos/lasso +12 -0
- data/lib/rouge/demos/liquid +11 -0
- data/lib/rouge/demos/literate_coffeescript +3 -0
- data/lib/rouge/demos/literate_haskell +7 -0
- data/lib/rouge/demos/llvm +20 -0
- data/lib/rouge/demos/lua +12 -0
- data/lib/rouge/demos/make +6 -0
- data/lib/rouge/demos/markdown +4 -0
- data/lib/rouge/demos/matlab +6 -0
- data/lib/rouge/demos/moonscript +16 -0
- data/lib/rouge/demos/mosel +10 -0
- data/lib/rouge/demos/mxml +22 -0
- data/lib/rouge/demos/nasm +26 -0
- data/lib/rouge/demos/nginx +5 -0
- data/lib/rouge/demos/nim +27 -0
- data/lib/rouge/demos/objective_c +18 -0
- data/lib/rouge/demos/ocaml +12 -0
- data/lib/rouge/demos/pascal +14 -0
- data/lib/rouge/demos/perl +5 -0
- data/lib/rouge/demos/php +3 -0
- data/lib/rouge/demos/plaintext +1 -0
- data/lib/rouge/demos/plist +142 -0
- data/lib/rouge/demos/pony +17 -0
- data/lib/rouge/demos/powershell +49 -0
- data/lib/rouge/demos/praat +26 -0
- data/lib/rouge/demos/prolog +9 -0
- data/lib/rouge/demos/prometheus +9 -0
- data/lib/rouge/demos/properties +7 -0
- data/lib/rouge/demos/protobuf +5 -0
- data/lib/rouge/demos/puppet +6 -0
- data/lib/rouge/demos/python +6 -0
- data/lib/rouge/demos/q +2 -0
- data/lib/rouge/demos/qml +9 -0
- data/lib/rouge/demos/r +8 -0
- data/lib/rouge/demos/racket +24 -0
- data/lib/rouge/demos/ruby +9 -0
- data/lib/rouge/demos/rust +12 -0
- data/lib/rouge/demos/sass +3 -0
- data/lib/rouge/demos/scala +3 -0
- data/lib/rouge/demos/scheme +4 -0
- data/lib/rouge/demos/scss +5 -0
- data/lib/rouge/demos/sed +4 -0
- data/lib/rouge/demos/shell +2 -0
- data/lib/rouge/demos/sieve +10 -0
- data/lib/rouge/demos/slim +17 -0
- data/lib/rouge/demos/smalltalk +6 -0
- data/lib/rouge/demos/smarty +12 -0
- data/lib/rouge/demos/sml +4 -0
- data/lib/rouge/demos/sql +1 -0
- data/lib/rouge/demos/swift +5 -0
- data/lib/rouge/demos/tap +5 -0
- data/lib/rouge/demos/tcl +1 -0
- data/lib/rouge/demos/tex +1 -0
- data/lib/rouge/demos/toml +9 -0
- data/lib/rouge/demos/tsx +17 -0
- data/lib/rouge/demos/tulip +13 -0
- data/lib/rouge/demos/turtle +26 -0
- data/lib/rouge/demos/twig +9 -0
- data/lib/rouge/demos/typescript +1 -0
- data/lib/rouge/demos/vala +8 -0
- data/lib/rouge/demos/vb +4 -0
- data/lib/rouge/demos/verilog +27 -0
- data/lib/rouge/demos/vhdl +23 -0
- data/lib/rouge/demos/viml +14 -0
- data/lib/rouge/demos/vue +11 -0
- data/lib/rouge/demos/wollok +11 -0
- data/lib/rouge/demos/xml +2 -0
- data/lib/rouge/demos/yaml +4 -0
- data/lib/rouge/formatter.rb +75 -0
- data/lib/rouge/formatters/html.rb +37 -0
- data/lib/rouge/formatters/html_inline.rb +30 -0
- data/lib/rouge/formatters/html_legacy.rb +44 -0
- data/lib/rouge/formatters/html_linewise.rb +27 -0
- data/lib/rouge/formatters/html_pygments.rb +16 -0
- data/lib/rouge/formatters/html_table.rb +61 -0
- data/lib/rouge/formatters/null.rb +19 -0
- data/lib/rouge/formatters/terminal256.rb +172 -0
- data/lib/rouge/guesser.rb +55 -0
- data/lib/rouge/guessers/filename.rb +25 -0
- data/lib/rouge/guessers/glob_mapping.rb +46 -0
- data/lib/rouge/guessers/mimetype.rb +14 -0
- data/lib/rouge/guessers/modeline.rb +42 -0
- data/lib/rouge/guessers/source.rb +39 -0
- data/lib/rouge/lexer.rb +452 -0
- data/lib/rouge/lexers/abap.rb +238 -0
- data/lib/rouge/lexers/actionscript.rb +195 -0
- data/lib/rouge/lexers/apache.rb +71 -0
- data/lib/rouge/lexers/apache/keywords.yml +764 -0
- data/lib/rouge/lexers/apiblueprint.rb +51 -0
- data/lib/rouge/lexers/apple_script.rb +367 -0
- data/lib/rouge/lexers/awk.rb +161 -0
- data/lib/rouge/lexers/biml.rb +41 -0
- data/lib/rouge/lexers/bsl.rb +81 -0
- data/lib/rouge/lexers/c.rb +217 -0
- data/lib/rouge/lexers/ceylon.rb +123 -0
- data/lib/rouge/lexers/cfscript.rb +153 -0
- data/lib/rouge/lexers/clojure.rb +112 -0
- data/lib/rouge/lexers/cmake.rb +206 -0
- data/lib/rouge/lexers/coffeescript.rb +174 -0
- data/lib/rouge/lexers/common_lisp.rb +345 -0
- data/lib/rouge/lexers/conf.rb +24 -0
- data/lib/rouge/lexers/console.rb +136 -0
- data/lib/rouge/lexers/coq.rb +191 -0
- data/lib/rouge/lexers/cpp.rb +78 -0
- data/lib/rouge/lexers/csharp.rb +114 -0
- data/lib/rouge/lexers/css.rb +273 -0
- data/lib/rouge/lexers/d.rb +176 -0
- data/lib/rouge/lexers/dart.rb +104 -0
- data/lib/rouge/lexers/diff.rb +31 -0
- data/lib/rouge/lexers/digdag.rb +72 -0
- data/lib/rouge/lexers/docker.rb +50 -0
- data/lib/rouge/lexers/dot.rb +68 -0
- data/lib/rouge/lexers/eiffel.rb +65 -0
- data/lib/rouge/lexers/elixir.rb +133 -0
- data/lib/rouge/lexers/erb.rb +56 -0
- data/lib/rouge/lexers/erlang.rb +118 -0
- data/lib/rouge/lexers/factor.rb +302 -0
- data/lib/rouge/lexers/fortran.rb +170 -0
- data/lib/rouge/lexers/fsharp.rb +118 -0
- data/lib/rouge/lexers/gal.rb +50 -0
- data/lib/rouge/lexers/gherkin.rb +137 -0
- data/lib/rouge/lexers/gherkin/keywords.rb +14 -0
- data/lib/rouge/lexers/glsl.rb +135 -0
- data/lib/rouge/lexers/go.rb +178 -0
- data/lib/rouge/lexers/gradle.rb +37 -0
- data/lib/rouge/lexers/graphql.rb +243 -0
- data/lib/rouge/lexers/groovy.rb +112 -0
- data/lib/rouge/lexers/haml.rb +233 -0
- data/lib/rouge/lexers/handlebars.rb +79 -0
- data/lib/rouge/lexers/haskell.rb +183 -0
- data/lib/rouge/lexers/html.rb +138 -0
- data/lib/rouge/lexers/http.rb +80 -0
- data/lib/rouge/lexers/hylang.rb +93 -0
- data/lib/rouge/lexers/idlang.rb +316 -0
- data/lib/rouge/lexers/igorpro.rb +407 -0
- data/lib/rouge/lexers/ini.rb +57 -0
- data/lib/rouge/lexers/io.rb +68 -0
- data/lib/rouge/lexers/irb.rb +66 -0
- data/lib/rouge/lexers/java.rb +87 -0
- data/lib/rouge/lexers/javascript.rb +269 -0
- data/lib/rouge/lexers/jinja.rb +137 -0
- data/lib/rouge/lexers/json.rb +29 -0
- data/lib/rouge/lexers/json_doc.rb +23 -0
- data/lib/rouge/lexers/jsonnet.rb +151 -0
- data/lib/rouge/lexers/jsx.rb +102 -0
- data/lib/rouge/lexers/julia.rb +172 -0
- data/lib/rouge/lexers/kotlin.rb +84 -0
- data/lib/rouge/lexers/lasso.rb +217 -0
- data/lib/rouge/lexers/lasso/keywords.yml +446 -0
- data/lib/rouge/lexers/liquid.rb +287 -0
- data/lib/rouge/lexers/literate_coffeescript.rb +33 -0
- data/lib/rouge/lexers/literate_haskell.rb +36 -0
- data/lib/rouge/lexers/llvm.rb +84 -0
- data/lib/rouge/lexers/lua.rb +125 -0
- data/lib/rouge/lexers/lua/builtins.rb +22 -0
- data/lib/rouge/lexers/make.rb +116 -0
- data/lib/rouge/lexers/markdown.rb +154 -0
- data/lib/rouge/lexers/matlab.rb +75 -0
- data/lib/rouge/lexers/matlab/builtins.rb +11 -0
- data/lib/rouge/lexers/moonscript.rb +114 -0
- data/lib/rouge/lexers/mosel.rb +231 -0
- data/lib/rouge/lexers/mxml.rb +68 -0
- data/lib/rouge/lexers/nasm.rb +203 -0
- data/lib/rouge/lexers/nginx.rb +71 -0
- data/lib/rouge/lexers/nim.rb +152 -0
- data/lib/rouge/lexers/objective_c.rb +208 -0
- data/lib/rouge/lexers/ocaml.rb +100 -0
- data/lib/rouge/lexers/pascal.rb +66 -0
- data/lib/rouge/lexers/perl.rb +197 -0
- data/lib/rouge/lexers/php.rb +193 -0
- data/lib/rouge/lexers/php/builtins.rb +194 -0
- data/lib/rouge/lexers/plain_text.rb +26 -0
- data/lib/rouge/lexers/plist.rb +49 -0
- data/lib/rouge/lexers/pony.rb +93 -0
- data/lib/rouge/lexers/powershell.rb +132 -0
- data/lib/rouge/lexers/praat.rb +350 -0
- data/lib/rouge/lexers/prolog.rb +64 -0
- data/lib/rouge/lexers/prometheus.rb +121 -0
- data/lib/rouge/lexers/properties.rb +55 -0
- data/lib/rouge/lexers/protobuf.rb +70 -0
- data/lib/rouge/lexers/puppet.rb +128 -0
- data/lib/rouge/lexers/python.rb +231 -0
- data/lib/rouge/lexers/q.rb +124 -0
- data/lib/rouge/lexers/qml.rb +73 -0
- data/lib/rouge/lexers/r.rb +89 -0
- data/lib/rouge/lexers/racket.rb +542 -0
- data/lib/rouge/lexers/ruby.rb +437 -0
- data/lib/rouge/lexers/rust.rb +192 -0
- data/lib/rouge/lexers/sass.rb +74 -0
- data/lib/rouge/lexers/sass/common.rb +180 -0
- data/lib/rouge/lexers/scala.rb +142 -0
- data/lib/rouge/lexers/scheme.rb +112 -0
- data/lib/rouge/lexers/scss.rb +34 -0
- data/lib/rouge/lexers/sed.rb +172 -0
- data/lib/rouge/lexers/shell.rb +180 -0
- data/lib/rouge/lexers/sieve.rb +96 -0
- data/lib/rouge/lexers/slim.rb +228 -0
- data/lib/rouge/lexers/smalltalk.rb +116 -0
- data/lib/rouge/lexers/smarty.rb +91 -0
- data/lib/rouge/lexers/sml.rb +348 -0
- data/lib/rouge/lexers/sql.rb +140 -0
- data/lib/rouge/lexers/swift.rb +161 -0
- data/lib/rouge/lexers/tap.rb +91 -0
- data/lib/rouge/lexers/tcl.rb +192 -0
- data/lib/rouge/lexers/tex.rb +69 -0
- data/lib/rouge/lexers/toml.rb +71 -0
- data/lib/rouge/lexers/tsx.rb +19 -0
- data/lib/rouge/lexers/tulip.rb +107 -0
- data/lib/rouge/lexers/turtle.rb +72 -0
- data/lib/rouge/lexers/twig.rb +39 -0
- data/lib/rouge/lexers/typescript.rb +22 -0
- data/lib/rouge/lexers/typescript/common.rb +33 -0
- data/lib/rouge/lexers/vala.rb +77 -0
- data/lib/rouge/lexers/vb.rb +164 -0
- data/lib/rouge/lexers/verilog.rb +164 -0
- data/lib/rouge/lexers/vhdl.rb +97 -0
- data/lib/rouge/lexers/viml.rb +101 -0
- data/lib/rouge/lexers/viml/keywords.rb +12 -0
- data/lib/rouge/lexers/vue.rb +124 -0
- data/lib/rouge/lexers/wollok.rb +107 -0
- data/lib/rouge/lexers/xml.rb +59 -0
- data/lib/rouge/lexers/yaml.rb +373 -0
- data/lib/rouge/plugins/redcarpet.rb +30 -0
- data/lib/rouge/regex_lexer.rb +441 -0
- data/lib/rouge/template_lexer.rb +20 -0
- data/lib/rouge/text_analyzer.rb +48 -0
- data/lib/rouge/theme.rb +213 -0
- data/lib/rouge/themes/base16.rb +130 -0
- data/lib/rouge/themes/colorful.rb +67 -0
- data/lib/rouge/themes/github.rb +71 -0
- data/lib/rouge/themes/gruvbox.rb +167 -0
- data/lib/rouge/themes/igor_pro.rb +20 -0
- data/lib/rouge/themes/molokai.rb +82 -0
- data/lib/rouge/themes/monokai.rb +92 -0
- data/lib/rouge/themes/monokai_sublime.rb +90 -0
- data/lib/rouge/themes/pastie.rb +69 -0
- data/lib/rouge/themes/thankful_eyes.rb +74 -0
- data/lib/rouge/themes/tulip.rb +69 -0
- data/lib/rouge/token.rb +182 -0
- data/lib/rouge/util.rb +101 -0
- data/lib/rouge/version.rb +7 -0
- data/lib/rougegal.rb +80 -0
- data/rougegal.gemspec +18 -0
- metadata +356 -0
@@ -0,0 +1,178 @@
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
2
|
+
|
3
|
+
module Rouge
|
4
|
+
module Lexers
|
5
|
+
class Go < RegexLexer
|
6
|
+
title "Go"
|
7
|
+
desc 'The Go programming language (http://golang.org)'
|
8
|
+
tag 'go'
|
9
|
+
aliases 'go', 'golang'
|
10
|
+
filenames '*.go'
|
11
|
+
|
12
|
+
mimetypes 'text/x-go', 'application/x-go'
|
13
|
+
|
14
|
+
def self.analyze_text(text)
|
15
|
+
return 0
|
16
|
+
end
|
17
|
+
|
18
|
+
# Characters
|
19
|
+
|
20
|
+
WHITE_SPACE = /[\s\t\r\n]+/
|
21
|
+
|
22
|
+
NEWLINE = /\n/
|
23
|
+
UNICODE_CHAR = /[^\n]/
|
24
|
+
UNICODE_LETTER = /[[:alpha:]]/
|
25
|
+
UNICODE_DIGIT = /[[:digit:]]/
|
26
|
+
|
27
|
+
# Letters and digits
|
28
|
+
|
29
|
+
LETTER = /#{UNICODE_LETTER}|_/
|
30
|
+
DECIMAL_DIGIT = /[0-9]/
|
31
|
+
OCTAL_DIGIT = /[0-7]/
|
32
|
+
HEX_DIGIT = /[0-9A-Fa-f]/
|
33
|
+
|
34
|
+
# Comments
|
35
|
+
|
36
|
+
LINE_COMMENT = /\/\/(?:(?!#{NEWLINE}).)*/
|
37
|
+
GENERAL_COMMENT = /\/\*(?:(?!\*\/).)*\*\//m
|
38
|
+
COMMENT = /#{LINE_COMMENT}|#{GENERAL_COMMENT}/
|
39
|
+
|
40
|
+
# Keywords
|
41
|
+
|
42
|
+
KEYWORD = /\b(?:
|
43
|
+
break | default | func
|
44
|
+
| interface | select | case
|
45
|
+
| defer | go | map
|
46
|
+
| struct | chan | else
|
47
|
+
| goto | package | switch
|
48
|
+
| const | fallthrough | if
|
49
|
+
| range | type | continue
|
50
|
+
| for | import | return
|
51
|
+
| var
|
52
|
+
)\b/x
|
53
|
+
|
54
|
+
# Identifiers
|
55
|
+
|
56
|
+
IDENTIFIER = / (?!#{KEYWORD})
|
57
|
+
#{LETTER}(?:#{LETTER}|#{UNICODE_DIGIT})* /x
|
58
|
+
|
59
|
+
# Operators and delimiters
|
60
|
+
|
61
|
+
OPERATOR = / \+= | \+\+ | \+ | &\^= | &\^
|
62
|
+
| &= | && | & | == | =
|
63
|
+
| \!= | \! | -= | -- | -
|
64
|
+
| \|= | \|\| | \| | <= | <-
|
65
|
+
| <<= | << | < | \*= | \*
|
66
|
+
| \^= | \^ | >>= | >> | >=
|
67
|
+
| > | \/ | \/= | := | %
|
68
|
+
| %= | \.\.\. | \. | :
|
69
|
+
/x
|
70
|
+
|
71
|
+
SEPARATOR = / \( | \) | \[ | \] | \{
|
72
|
+
| \} | , | ;
|
73
|
+
/x
|
74
|
+
|
75
|
+
# Integer literals
|
76
|
+
|
77
|
+
DECIMAL_LIT = /[0-9]#{DECIMAL_DIGIT}*/
|
78
|
+
OCTAL_LIT = /0#{OCTAL_DIGIT}*/
|
79
|
+
HEX_LIT = /0[xX]#{HEX_DIGIT}+/
|
80
|
+
INT_LIT = /#{HEX_LIT}|#{DECIMAL_LIT}|#{OCTAL_LIT}/
|
81
|
+
|
82
|
+
# Floating-point literals
|
83
|
+
|
84
|
+
DECIMALS = /#{DECIMAL_DIGIT}+/
|
85
|
+
EXPONENT = /[eE][+\-]?#{DECIMALS}/
|
86
|
+
FLOAT_LIT = / #{DECIMALS} \. #{DECIMALS}? #{EXPONENT}?
|
87
|
+
| #{DECIMALS} #{EXPONENT}
|
88
|
+
| \. #{DECIMALS} #{EXPONENT}?
|
89
|
+
/x
|
90
|
+
|
91
|
+
# Imaginary literals
|
92
|
+
|
93
|
+
IMAGINARY_LIT = /(?:#{DECIMALS}|#{FLOAT_LIT})i/
|
94
|
+
|
95
|
+
# Rune literals
|
96
|
+
|
97
|
+
ESCAPED_CHAR = /\\[abfnrtv\\'"]/
|
98
|
+
LITTLE_U_VALUE = /\\u#{HEX_DIGIT}{4}/
|
99
|
+
BIG_U_VALUE = /\\U#{HEX_DIGIT}{8}/
|
100
|
+
UNICODE_VALUE = / #{UNICODE_CHAR} | #{LITTLE_U_VALUE}
|
101
|
+
| #{BIG_U_VALUE} | #{ESCAPED_CHAR}
|
102
|
+
/x
|
103
|
+
OCTAL_BYTE_VALUE = /\\#{OCTAL_DIGIT}{3}/
|
104
|
+
HEX_BYTE_VALUE = /\\x#{HEX_DIGIT}{2}/
|
105
|
+
BYTE_VALUE = /#{OCTAL_BYTE_VALUE}|#{HEX_BYTE_VALUE}/
|
106
|
+
CHAR_LIT = /'(?:#{UNICODE_VALUE}|#{BYTE_VALUE})'/
|
107
|
+
ESCAPE_SEQUENCE = / #{ESCAPED_CHAR}
|
108
|
+
| #{LITTLE_U_VALUE}
|
109
|
+
| #{BIG_U_VALUE}
|
110
|
+
| #{HEX_BYTE_VALUE}
|
111
|
+
/x
|
112
|
+
|
113
|
+
# String literals
|
114
|
+
|
115
|
+
RAW_STRING_LIT = /`(?:#{UNICODE_CHAR}|#{NEWLINE})*`/
|
116
|
+
INTERPRETED_STRING_LIT = / "(?: (?!")
|
117
|
+
(?: #{UNICODE_VALUE} | #{BYTE_VALUE} )
|
118
|
+
)*" /x
|
119
|
+
STRING_LIT = /#{RAW_STRING_LIT}|#{INTERPRETED_STRING_LIT}/
|
120
|
+
|
121
|
+
# Predeclared identifiers
|
122
|
+
|
123
|
+
PREDECLARED_TYPES = /\b(?:
|
124
|
+
bool | byte | complex64
|
125
|
+
| complex128 | error | float32
|
126
|
+
| float64 | int8 | int16
|
127
|
+
| int32 | int64 | int
|
128
|
+
| rune | string | uint8
|
129
|
+
| uint16 | uint32 | uint64
|
130
|
+
| uintptr | uint
|
131
|
+
)\b/x
|
132
|
+
|
133
|
+
PREDECLARED_CONSTANTS = /\b(?:true|false|iota|nil)\b/
|
134
|
+
|
135
|
+
PREDECLARED_FUNCTIONS = /\b(?:
|
136
|
+
append | cap | close | complex
|
137
|
+
| copy | delete | imag | len
|
138
|
+
| make | new | panic | print
|
139
|
+
| println | real | recover
|
140
|
+
)\b/x
|
141
|
+
|
142
|
+
state :simple_tokens do
|
143
|
+
rule(COMMENT, Comment)
|
144
|
+
rule(KEYWORD, Keyword)
|
145
|
+
rule(PREDECLARED_TYPES, Keyword::Type)
|
146
|
+
rule(PREDECLARED_FUNCTIONS, Name::Builtin)
|
147
|
+
rule(PREDECLARED_CONSTANTS, Name::Constant)
|
148
|
+
rule(IMAGINARY_LIT, Num)
|
149
|
+
rule(FLOAT_LIT, Num)
|
150
|
+
rule(INT_LIT, Num)
|
151
|
+
rule(CHAR_LIT, Str::Char)
|
152
|
+
rule(OPERATOR, Operator)
|
153
|
+
rule(SEPARATOR, Punctuation)
|
154
|
+
rule(IDENTIFIER, Name)
|
155
|
+
rule(WHITE_SPACE, Other)
|
156
|
+
end
|
157
|
+
|
158
|
+
state :root do
|
159
|
+
mixin :simple_tokens
|
160
|
+
|
161
|
+
rule(/`/, Str, :raw_string)
|
162
|
+
rule(/"/, Str, :interpreted_string)
|
163
|
+
end
|
164
|
+
|
165
|
+
state :interpreted_string do
|
166
|
+
rule(ESCAPE_SEQUENCE, Str::Escape)
|
167
|
+
rule(/\\./, Error)
|
168
|
+
rule(/"/, Str, :pop!)
|
169
|
+
rule(/[^"\\]+/, Str)
|
170
|
+
end
|
171
|
+
|
172
|
+
state :raw_string do
|
173
|
+
rule(/`/, Str, :pop!)
|
174
|
+
rule(/[^`]+/m, Str)
|
175
|
+
end
|
176
|
+
end
|
177
|
+
end
|
178
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
2
|
+
|
3
|
+
module Rouge
|
4
|
+
module Lexers
|
5
|
+
load_lexer 'groovy.rb'
|
6
|
+
|
7
|
+
class Gradle < Groovy
|
8
|
+
title "Gradle"
|
9
|
+
desc "A powerful build system for the JVM"
|
10
|
+
|
11
|
+
tag 'gradle'
|
12
|
+
filenames '*.gradle'
|
13
|
+
mimetypes 'text/x-gradle'
|
14
|
+
|
15
|
+
def self.keywords
|
16
|
+
@keywords ||= super + Set.new(%w(
|
17
|
+
allprojects artifacts buildscript configuration dependencies
|
18
|
+
repositories sourceSets subprojects publishing
|
19
|
+
))
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.types
|
23
|
+
@types ||= super + Set.new(%w(
|
24
|
+
Project Task Gradle Settings Script JavaToolChain SourceSet
|
25
|
+
SourceSetOutput IncrementalTaskInputs Configuration
|
26
|
+
ResolutionStrategy ArtifactResolutionQuery ComponentSelection
|
27
|
+
ComponentSelectionRules ConventionProperty ExtensionAware
|
28
|
+
ExtraPropertiesExtension PublishingExtension IvyPublication
|
29
|
+
IvyArtifact IvyArtifactSet IvyModuleDescriptorSpec
|
30
|
+
MavenPublication MavenArtifact MavenArtifactSet MavenPom
|
31
|
+
PluginDependenciesSpec PluginDependencySpec ResourceHandler
|
32
|
+
TextResourceFactory
|
33
|
+
))
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,243 @@
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
2
|
+
|
3
|
+
module Rouge
|
4
|
+
module Lexers
|
5
|
+
class GraphQL < RegexLexer
|
6
|
+
desc 'GraphQL'
|
7
|
+
tag 'graphql'
|
8
|
+
filenames '*.graphql', '*.gql'
|
9
|
+
mimetypes 'application/graphql'
|
10
|
+
|
11
|
+
name = /[_A-Za-z][_0-9A-Za-z]*/
|
12
|
+
|
13
|
+
state :root do
|
14
|
+
rule /\b(?:query|mutation|subscription)\b/, Keyword, :query_definition
|
15
|
+
rule /\{/ do
|
16
|
+
token Punctuation
|
17
|
+
push :query_definition
|
18
|
+
push :selection_set
|
19
|
+
end
|
20
|
+
|
21
|
+
rule /\bfragment\b/, Keyword, :fragment_definition
|
22
|
+
|
23
|
+
rule /\b(?:type|interface|enum)\b/, Keyword, :type_definition
|
24
|
+
rule /\b(?:input|schema)\b/, Keyword, :type_definition
|
25
|
+
|
26
|
+
rule /\bunion\b/, Keyword, :union_definition
|
27
|
+
|
28
|
+
mixin :basic
|
29
|
+
end
|
30
|
+
|
31
|
+
state :basic do
|
32
|
+
rule /\s+/m, Text::Whitespace
|
33
|
+
rule /#.*$/, Comment
|
34
|
+
|
35
|
+
rule /[!,]/, Punctuation
|
36
|
+
end
|
37
|
+
|
38
|
+
state :has_directives do
|
39
|
+
rule /(@#{name})(\s*)(\()/ do
|
40
|
+
groups Keyword, Text::Whitespace, Punctuation
|
41
|
+
push :arguments
|
42
|
+
end
|
43
|
+
rule /@#{name}\b/, Keyword
|
44
|
+
end
|
45
|
+
|
46
|
+
state :fragment_definition do
|
47
|
+
rule /\bon\b/, Keyword
|
48
|
+
|
49
|
+
mixin :query_definition
|
50
|
+
end
|
51
|
+
|
52
|
+
state :query_definition do
|
53
|
+
mixin :has_directives
|
54
|
+
|
55
|
+
rule /\b#{name}\b/, Name
|
56
|
+
rule /\(/, Punctuation, :variable_definitions
|
57
|
+
rule /\{/, Punctuation, :selection_set
|
58
|
+
|
59
|
+
mixin :basic
|
60
|
+
end
|
61
|
+
|
62
|
+
state :type_definition do
|
63
|
+
rule /\bimplements\b/, Keyword
|
64
|
+
rule /\b#{name}\b/, Name
|
65
|
+
rule /\(/, Punctuation, :variable_definitions
|
66
|
+
rule /\{/, Punctuation, :type_definition_set
|
67
|
+
|
68
|
+
mixin :basic
|
69
|
+
end
|
70
|
+
|
71
|
+
state :union_definition do
|
72
|
+
rule /\b#{name}\b/, Name
|
73
|
+
rule /\=/, Punctuation, :union_definition_variant
|
74
|
+
|
75
|
+
mixin :basic
|
76
|
+
end
|
77
|
+
|
78
|
+
state :union_definition_variant do
|
79
|
+
rule /\b#{name}\b/ do
|
80
|
+
token Name
|
81
|
+
pop!
|
82
|
+
push :union_definition_pipe
|
83
|
+
end
|
84
|
+
|
85
|
+
mixin :basic
|
86
|
+
end
|
87
|
+
|
88
|
+
state :union_definition_pipe do
|
89
|
+
rule /\|/ do
|
90
|
+
token Punctuation
|
91
|
+
pop!
|
92
|
+
push :union_definition_variant
|
93
|
+
end
|
94
|
+
|
95
|
+
rule /(?!\||\s+|#[^\n]*)/ do
|
96
|
+
pop! 2
|
97
|
+
end
|
98
|
+
|
99
|
+
mixin :basic
|
100
|
+
end
|
101
|
+
|
102
|
+
state :type_definition_set do
|
103
|
+
rule /\}/ do
|
104
|
+
token Punctuation
|
105
|
+
pop! 2
|
106
|
+
end
|
107
|
+
|
108
|
+
rule /\b(#{name})(\s*)(\()/ do
|
109
|
+
groups Name, Text::Whitespace, Punctuation
|
110
|
+
push :variable_definitions
|
111
|
+
end
|
112
|
+
rule /\b#{name}\b/, Name
|
113
|
+
|
114
|
+
rule /:/, Punctuation, :type_names
|
115
|
+
|
116
|
+
mixin :basic
|
117
|
+
end
|
118
|
+
|
119
|
+
state :arguments do
|
120
|
+
rule /\)/ do
|
121
|
+
token Punctuation
|
122
|
+
pop!
|
123
|
+
end
|
124
|
+
|
125
|
+
rule /\b#{name}\b/, Name
|
126
|
+
rule /:/, Punctuation, :value
|
127
|
+
|
128
|
+
mixin :basic
|
129
|
+
end
|
130
|
+
|
131
|
+
state :variable_definitions do
|
132
|
+
rule /\)/ do
|
133
|
+
token Punctuation
|
134
|
+
pop!
|
135
|
+
end
|
136
|
+
|
137
|
+
rule /\$#{name}\b/, Name::Variable
|
138
|
+
rule /\b#{name}\b/, Name
|
139
|
+
rule /:/, Punctuation, :type_names
|
140
|
+
rule /\=/, Punctuation, :value
|
141
|
+
|
142
|
+
mixin :basic
|
143
|
+
end
|
144
|
+
|
145
|
+
state :type_names do
|
146
|
+
rule /\b(?:Int|Float|String|Boolean|ID)\b/, Name::Builtin, :pop!
|
147
|
+
rule /\b#{name}\b/, Name, :pop!
|
148
|
+
|
149
|
+
rule /\[/, Punctuation, :type_name_list
|
150
|
+
|
151
|
+
mixin :basic
|
152
|
+
end
|
153
|
+
|
154
|
+
state :type_name_list do
|
155
|
+
rule /\b(?:Int|Float|String|Boolean|ID)\b/, Name::Builtin
|
156
|
+
rule /\b#{name}\b/, Name
|
157
|
+
|
158
|
+
rule /\]/ do
|
159
|
+
token Punctuation
|
160
|
+
pop! 2
|
161
|
+
end
|
162
|
+
|
163
|
+
mixin :basic
|
164
|
+
end
|
165
|
+
|
166
|
+
state :selection_set do
|
167
|
+
mixin :has_directives
|
168
|
+
|
169
|
+
rule /\}/ do
|
170
|
+
token Punctuation
|
171
|
+
pop!
|
172
|
+
pop! if state?(:query_definition) || state?(:fragment_definition)
|
173
|
+
end
|
174
|
+
|
175
|
+
rule /\b(#{name})(\s*)(\()/ do
|
176
|
+
groups Name, Text::Whitespace, Punctuation
|
177
|
+
push :arguments
|
178
|
+
end
|
179
|
+
|
180
|
+
rule /\b(#{name})(\s*)(:)/ do
|
181
|
+
groups Name, Text::Whitespace, Punctuation
|
182
|
+
end
|
183
|
+
|
184
|
+
rule /\b#{name}\b/, Name
|
185
|
+
|
186
|
+
rule /(\.\.\.)(\s+)(on)\b/ do
|
187
|
+
groups Punctuation, Text::Whitespace, Keyword
|
188
|
+
end
|
189
|
+
rule /\.\.\./, Punctuation
|
190
|
+
|
191
|
+
rule /\{/, Punctuation, :selection_set
|
192
|
+
|
193
|
+
mixin :basic
|
194
|
+
end
|
195
|
+
|
196
|
+
state :list do
|
197
|
+
rule /\]/ do
|
198
|
+
token Punctuation
|
199
|
+
pop!
|
200
|
+
pop! if state?(:value)
|
201
|
+
end
|
202
|
+
|
203
|
+
mixin :value
|
204
|
+
end
|
205
|
+
|
206
|
+
state :object do
|
207
|
+
rule /\}/ do
|
208
|
+
token Punctuation
|
209
|
+
pop!
|
210
|
+
pop! if state?(:value)
|
211
|
+
end
|
212
|
+
|
213
|
+
rule /\b(#{name})(\s*)(:)/ do
|
214
|
+
groups Name, Text::Whitespace, Punctuation
|
215
|
+
push :value
|
216
|
+
end
|
217
|
+
|
218
|
+
mixin :basic
|
219
|
+
end
|
220
|
+
|
221
|
+
state :value do
|
222
|
+
pop_unless_list = ->(t) {
|
223
|
+
->(m) {
|
224
|
+
token t
|
225
|
+
pop! unless state?(:list)
|
226
|
+
}
|
227
|
+
}
|
228
|
+
|
229
|
+
rule /\$#{name}\b/, &pop_unless_list[Name::Variable]
|
230
|
+
rule /\b(?:true|false|null)\b/, &pop_unless_list[Keyword::Constant]
|
231
|
+
rule /[+-]?[0-9]+\.[0-9]+(?:[eE][+-]?[0-9]+)?/, &pop_unless_list[Num::Float]
|
232
|
+
rule /[+-]?[1-9][0-9]*(?:[eE][+-]?[0-9]+)?/, &pop_unless_list[Num::Integer]
|
233
|
+
rule /"(\\[\\"]|[^"])*"/, &pop_unless_list[Str::Double]
|
234
|
+
rule /\b#{name}\b/, &pop_unless_list[Name]
|
235
|
+
|
236
|
+
rule /\{/, Punctuation, :object
|
237
|
+
rule /\[/, Punctuation, :list
|
238
|
+
|
239
|
+
mixin :basic
|
240
|
+
end
|
241
|
+
end
|
242
|
+
end
|
243
|
+
end
|