rouge_ecl 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/Gemfile +26 -0
- data/LICENSE +186 -0
- data/bin/rougify +17 -0
- data/lib/rouge.rb +82 -0
- data/lib/rouge/cli.rb +429 -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/ecl +1 -0
- data/lib/rouge/demos/eiffel +30 -0
- data/lib/rouge/demos/elixir +1 -0
- data/lib/rouge/demos/elm +4 -0
- data/lib/rouge/demos/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/gherkin +17 -0
- data/lib/rouge/demos/glsl +14 -0
- data/lib/rouge/demos/go +7 -0
- data/lib/rouge/demos/gradle +10 -0
- data/lib/rouge/demos/graphql +17 -0
- data/lib/rouge/demos/groovy +9 -0
- data/lib/rouge/demos/hack +5 -0
- data/lib/rouge/demos/haml +5 -0
- data/lib/rouge/demos/handlebars +7 -0
- data/lib/rouge/demos/haskell +6 -0
- data/lib/rouge/demos/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/nix +19 -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 +180 -0
- data/lib/rouge/guesser.rb +55 -0
- data/lib/rouge/guessers/disambiguation.rb +101 -0
- data/lib/rouge/guessers/filename.rb +25 -0
- data/lib/rouge/guessers/glob_mapping.rb +43 -0
- data/lib/rouge/guessers/mimetype.rb +14 -0
- data/lib/rouge/guessers/modeline.rb +44 -0
- data/lib/rouge/guessers/source.rb +29 -0
- data/lib/rouge/guessers/util.rb +32 -0
- data/lib/rouge/lexer.rb +461 -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 +47 -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 +212 -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 +187 -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 +68 -0
- data/lib/rouge/lexers/docker.rb +50 -0
- data/lib/rouge/lexers/dot.rb +68 -0
- data/lib/rouge/lexers/ecl.rb +138 -0
- data/lib/rouge/lexers/eiffel.rb +65 -0
- data/lib/rouge/lexers/elixir.rb +133 -0
- data/lib/rouge/lexers/elm.rb +89 -0
- data/lib/rouge/lexers/erb.rb +52 -0
- data/lib/rouge/lexers/erlang.rb +114 -0
- data/lib/rouge/lexers/factor.rb +302 -0
- data/lib/rouge/lexers/fortran.rb +176 -0
- data/lib/rouge/lexers/fsharp.rb +118 -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 +174 -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/hack.rb +48 -0
- data/lib/rouge/lexers/haml.rb +229 -0
- data/lib/rouge/lexers/handlebars.rb +79 -0
- data/lib/rouge/lexers/haskell.rb +182 -0
- data/lib/rouge/lexers/html.rb +139 -0
- data/lib/rouge/lexers/http.rb +80 -0
- data/lib/rouge/lexers/hylang.rb +93 -0
- data/lib/rouge/lexers/idlang.rb +310 -0
- data/lib/rouge/lexers/igorpro.rb +408 -0
- data/lib/rouge/lexers/ini.rb +53 -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 +281 -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 +79 -0
- data/lib/rouge/lexers/lasso.rb +214 -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 +80 -0
- data/lib/rouge/lexers/lua.rb +125 -0
- data/lib/rouge/lexers/lua/builtins.rb +22 -0
- data/lib/rouge/lexers/make.rb +112 -0
- data/lib/rouge/lexers/markdown.rb +154 -0
- data/lib/rouge/lexers/matlab.rb +71 -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 +198 -0
- data/lib/rouge/lexers/nginx.rb +71 -0
- data/lib/rouge/lexers/nim.rb +152 -0
- data/lib/rouge/lexers/nix.rb +205 -0
- data/lib/rouge/lexers/objective_c.rb +194 -0
- data/lib/rouge/lexers/ocaml.rb +100 -0
- data/lib/rouge/lexers/pascal.rb +66 -0
- data/lib/rouge/lexers/perl.rb +196 -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 +45 -0
- data/lib/rouge/lexers/pony.rb +93 -0
- data/lib/rouge/lexers/powershell.rb +678 -0
- data/lib/rouge/lexers/praat.rb +350 -0
- data/lib/rouge/lexers/prolog.rb +59 -0
- data/lib/rouge/lexers/prometheus.rb +121 -0
- data/lib/rouge/lexers/properties.rb +51 -0
- data/lib/rouge/lexers/protobuf.rb +70 -0
- data/lib/rouge/lexers/puppet.rb +128 -0
- data/lib/rouge/lexers/python.rb +232 -0
- data/lib/rouge/lexers/q.rb +123 -0
- data/lib/rouge/lexers/qml.rb +73 -0
- data/lib/rouge/lexers/r.rb +89 -0
- data/lib/rouge/lexers/racket.rb +543 -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 +189 -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 +80 -0
- data/lib/rouge/lexers/sml.rb +344 -0
- data/lib/rouge/lexers/sql.rb +140 -0
- data/lib/rouge/lexers/swift.rb +181 -0
- data/lib/rouge/lexers/tap.rb +87 -0
- data/lib/rouge/lexers/tcl.rb +192 -0
- data/lib/rouge/lexers/tex.rb +69 -0
- data/lib/rouge/lexers/toml.rb +67 -0
- data/lib/rouge/lexers/tsx.rb +19 -0
- data/lib/rouge/lexers/tulip.rb +106 -0
- data/lib/rouge/lexers/turtle.rb +63 -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 +122 -0
- data/lib/rouge/lexers/wollok.rb +103 -0
- data/lib/rouge/lexers/xml.rb +57 -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 +49 -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/rouge.gemspec +23 -0
- metadata +365 -0
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
module Rouge
|
|
2
|
+
module Lexers
|
|
3
|
+
load_lexer 'xml.rb'
|
|
4
|
+
|
|
5
|
+
class BIML < XML
|
|
6
|
+
title "BIML"
|
|
7
|
+
desc "BIML, Business Intelligence Markup Language"
|
|
8
|
+
tag 'biml'
|
|
9
|
+
filenames '*.biml'
|
|
10
|
+
|
|
11
|
+
def self.detect?(text)
|
|
12
|
+
return true if text =~ /<\s*Biml\b/
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
prepend :root do
|
|
16
|
+
rule %r(<#\@\s*)m, Name::Tag, :directive_tag
|
|
17
|
+
|
|
18
|
+
rule %r(<#[=]?\s*)m, Name::Tag, :directive_as_csharp
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
prepend :attr do
|
|
22
|
+
#TODO: how to deal with embedded <# tags inside a attribute string
|
|
23
|
+
#rule %r("<#[=]?\s*)m, Name::Tag, :directive_as_csharp
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
state :directive_as_csharp do
|
|
27
|
+
rule /\s*#>\s*/m, Name::Tag, :pop!
|
|
28
|
+
rule %r(.*?(?=\s*#>\s*))m do
|
|
29
|
+
delegate CSharp
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
state :directive_tag do
|
|
34
|
+
rule /\s+/m, Text
|
|
35
|
+
rule /[\w.:-]+\s*=/m, Name::Attribute, :attr
|
|
36
|
+
rule /[\w]+\s*/m, Name::Attribute
|
|
37
|
+
rule %r(/?\s*#>), Name::Tag, :pop!
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
|
2
|
+
|
|
3
|
+
module Rouge
|
|
4
|
+
module Lexers
|
|
5
|
+
class Bsl < RegexLexer
|
|
6
|
+
title "1C (BSL)"
|
|
7
|
+
desc "The 1C:Enterprise programming language"
|
|
8
|
+
tag 'bsl'
|
|
9
|
+
filenames '*.bsl', '*.os'
|
|
10
|
+
|
|
11
|
+
KEYWORDS = /(?<=[^\wа-яё]|^)(?:
|
|
12
|
+
КонецПроцедуры | EndProcedure | КонецФункции | EndFunction
|
|
13
|
+
| Прервать | Break | Продолжить | Continue
|
|
14
|
+
| Возврат | Return | Если | If
|
|
15
|
+
| Иначе | Else | ИначеЕсли | ElsIf
|
|
16
|
+
| Тогда | Then | КонецЕсли | EndIf
|
|
17
|
+
| Попытка | Try | Исключение | Except
|
|
18
|
+
| КонецПопытки | EndTry | Raise | ВызватьИсключение
|
|
19
|
+
| Пока | While | Для | For
|
|
20
|
+
| Каждого | Each | Из | In
|
|
21
|
+
| По | To | Цикл | Do
|
|
22
|
+
| КонецЦикла | EndDo | НЕ | NOT
|
|
23
|
+
| И | AND | ИЛИ | OR
|
|
24
|
+
| Новый | New | Процедура | Procedure
|
|
25
|
+
| Функция | Function | Перем | Var
|
|
26
|
+
| Экспорт | Export | Знач | Val
|
|
27
|
+
)(?=[^\wа-яё]|$)/ix
|
|
28
|
+
|
|
29
|
+
BUILTINS = /(?<=[^\wа-яё]|^)(?:
|
|
30
|
+
СтрДлина|StrLen|СокрЛ|TrimL|СокрП|TrimR|СокрЛП|TrimAll|Лев|Left|Прав|Right|Сред|Mid|СтрНайти|StrFind|ВРег|Upper|НРег|Lower|ТРег|Title|Символ|Char|КодСимвола|CharCode|ПустаяСтрока|IsBlankString|СтрЗаменить|StrReplace|СтрЧислоСтрок|StrLineCount|СтрПолучитьСтроку|StrGetLine|СтрЧислоВхождений|StrOccurrenceCount|СтрСравнить|StrCompare|СтрНачинаетсяС|StrStartWith|СтрЗаканчиваетсяНа|StrEndsWith|СтрРазделить|StrSplit|СтрСоединить|StrConcat
|
|
31
|
+
| Цел|Int|Окр|Round|ACos|ACos|ASin|ASin|ATan|ATan|Cos|Cos|Exp|Exp|Log|Log|Log10|Log10|Pow|Pow|Sin|Sin|Sqrt|Sqrt|Tan|Tan
|
|
32
|
+
| Год|Year|Месяц|Month|День|Day|Час|Hour|Минута|Minute|Секунда|Second|НачалоГода|BegOfYear|НачалоДня|BegOfDay|НачалоКвартала|BegOfQuarter|НачалоМесяца|BegOfMonth|НачалоМинуты|BegOfMinute|НачалоНедели|BegOfWeek|НачалоЧаса|BegOfHour|КонецГода|EndOfYear|КонецДня|EndOfDay|КонецКвартала|EndOfQuarter|КонецМесяца|EndOfMonth|КонецМинуты|EndOfMinute|КонецНедели|EndOfWeek|КонецЧаса|EndOfHour|НеделяГода|WeekOfYear|ДеньГода|DayOfYear|ДеньНедели|WeekDay|ТекущаяДата|CurrentDate|ДобавитьМесяц|AddMonth
|
|
33
|
+
| Тип|Type|ТипЗнч|TypeOf
|
|
34
|
+
| Булево|Boolean|Число|Number|Строка|String|Дата|Date
|
|
35
|
+
| ПоказатьВопрос|ShowQueryBox|Вопрос|DoQueryBox|ПоказатьПредупреждение|ShowMessageBox|Предупреждение|DoMessageBox|Сообщить|Message|ОчиститьСообщения|ClearMessages|ОповеститьОбИзменении|NotifyChanged|Состояние|Status|Сигнал|Beep|ПоказатьЗначение|ShowValue|ОткрытьЗначение|OpenValue|Оповестить|Notify|ОбработкаПрерыванияПользователя|UserInterruptProcessing|ОткрытьСодержаниеСправки|OpenHelpContent|ОткрытьИндексСправки|OpenHelpIndex|ОткрытьСправку|OpenHelp|ПоказатьИнформациюОбОшибке|ShowErrorInfo|КраткоеПредставлениеОшибки|BriefErrorDescription|ПодробноеПредставлениеОшибки|DetailErrorDescription|ПолучитьФорму|GetForm|ЗакрытьСправку|CloseHelp|ПоказатьОповещениеПользователя|ShowUserNotification|ОткрытьФорму|OpenForm|ОткрытьФормуМодально|OpenFormModal|АктивноеОкно|ActiveWindow|ВыполнитьОбработкуОповещения|ExecuteNotifyProcessing
|
|
36
|
+
| ПоказатьВводЗначения|ShowInputValue|ВвестиЗначение|InputValue|ПоказатьВводЧисла|ShowInputNumber|ВвестиЧисло|InputNumber|ПоказатьВводСтроки|ShowInputString|ВвестиСтроку|InputString|ПоказатьВводДаты|ShowInputDate|ВвестиДату|InputDate
|
|
37
|
+
| Формат|Format|ЧислоПрописью|NumberInWords|НСтр|NStr|ПредставлениеПериода|PeriodPresentation|СтрШаблон|StrTemplate
|
|
38
|
+
| ПолучитьОбщийМакет|GetCommonTemplate|ПолучитьОбщуюФорму|GetCommonForm|ПредопределенноеЗначение|PredefinedValue|ПолучитьПолноеИмяПредопределенногоЗначения|GetPredefinedValueFullName
|
|
39
|
+
| ПолучитьЗаголовокСистемы|GetCaption|ПолучитьСкоростьКлиентскогоСоединения|GetClientConnectionSpeed|ПодключитьОбработчикОжидания|AttachIdleHandler|УстановитьЗаголовокСистемы|SetCaption|ОтключитьОбработчикОжидания|DetachIdleHandler|ИмяКомпьютера|ComputerName|ЗавершитьРаботуСистемы|Exit|ИмяПользователя|UserName|ПрекратитьРаботуСистемы|Terminate|ПолноеИмяПользователя|UserFullName|ЗаблокироватьРаботуПользователя|LockApplication|КаталогПрограммы|BinDir|КаталогВременныхФайлов|TempFilesDir|ПравоДоступа|AccessRight|РольДоступна|IsInRole|ТекущийЯзык|CurrentLanguage|ТекущийКодЛокализации|CurrentLocaleCode|СтрокаСоединенияИнформационнойБазы|InfoBaseConnectionString|ПодключитьОбработчикОповещения|AttachNotificationHandler|ОтключитьОбработчикОповещения|DetachNotificationHandler|ПолучитьСообщенияПользователю|GetUserMessages|ПараметрыДоступа|AccessParameters|ПредставлениеПриложения|ApplicationPresentation|ТекущийЯзыкСистемы|CurrentSystemLanguage|ЗапуститьСистему|RunSystem|ТекущийРежимЗапуска|CurrentRunMode|УстановитьЧасовойПоясСеанса|SetSessionTimeZone|ЧасовойПоясСеанса|SessionTimeZone|ТекущаяДатаСеанса|CurrentSessionDate|УстановитьКраткийЗаголовокПриложения|SetShortApplicationCaption|ПолучитьКраткийЗаголовокПриложения|GetShortApplicationCaption|ПредставлениеПрава|RightPresentation|ВыполнитьПроверкуПравДоступа|VerifyAccessRights|РабочийКаталогДанныхПользователя|UserDataWorkDir|КаталогДокументов|DocumentsDir|ПолучитьИнформациюЭкрановКлиента|GetClientDisplaysInformation|ТекущийВариантОсновногоШрифтаКлиентскогоПриложения|ClientApplicationBaseFontCurrentVariant|ТекущийВариантИнтерфейсаКлиентскогоПриложения|ClientApplicationInterfaceCurrentVariant|УстановитьЗаголовокКлиентскогоПриложения|SetClientApplicationCaption|ПолучитьЗаголовокКлиентскогоПриложения|GetClientApplicationCaption|НачатьПолучениеКаталогаВременныхФайлов|BeginGettingTempFilesDir|НачатьПолучениеКаталогаДокументов|BeginGettingDocumentsDir|НачатьПолучениеРабочегоКаталогаДанныхПользователя|BeginGettingUserDataWorkDir|ПодключитьОбработчикЗапросаНастроекКлиентаЛицензирования|AttachLicensingClientParametersRequestHandler|ОтключитьОбработчикЗапросаНастроекКлиентаЛицензирования|DetachLicensingClientParametersRequestHandler
|
|
40
|
+
| ЗначениеВСтрокуВнутр|ValueToStringInternal|ЗначениеИзСтрокиВнутр|ValueFromStringInternal|ЗначениеВФайл|ValueToFile|ЗначениеИзФайла|ValueFromFile
|
|
41
|
+
| КомандаСистемы|System|ЗапуститьПриложение|RunApp|ПолучитьCOMОбъект|GetCOMObject|ПользователиОС|OSUsers|НачатьЗапускПриложения|BeginRunningApplication
|
|
42
|
+
| ПодключитьВнешнююКомпоненту|AttachAddIn|НачатьУстановкуВнешнейКомпоненты|BeginInstallAddIn|УстановитьВнешнююКомпоненту|InstallAddIn|НачатьПодключениеВнешнейКомпоненты|BeginAttachingAddIn
|
|
43
|
+
| КопироватьФайл|FileCopy|ПереместитьФайл|MoveFile|УдалитьФайлы|DeleteFiles|НайтиФайлы|FindFiles|СоздатьКаталог|CreateDirectory|ПолучитьИмяВременногоФайла|GetTempFileName|РазделитьФайл|SplitFile|ОбъединитьФайлы|MergeFiles|ПолучитьФайл|GetFile|НачатьПомещениеФайла|BeginPutFile|ПоместитьФайл|PutFile|ЭтоАдресВременногоХранилища|IsTempStorageURL|УдалитьИзВременногоХранилища|DeleteFromTempStorage|ПолучитьИзВременногоХранилища|GetFromTempStorage|ПоместитьВоВременноеХранилище|PutToTempStorage|ПодключитьРасширениеРаботыСФайлами|AttachFileSystemExtension|НачатьУстановкуРасширенияРаботыСФайлами|BeginInstallFileSystemExtension|УстановитьРасширениеРаботыСФайлами|InstallFileSystemExtension|ПолучитьФайлы|GetFiles|ПоместитьФайлы|PutFiles|ЗапроситьРазрешениеПользователя|RequestUserPermission|ПолучитьМаскуВсеФайлы|GetAllFilesMask|ПолучитьМаскуВсеФайлыКлиента|GetClientAllFilesMask|ПолучитьМаскуВсеФайлыСервера|GetServerAllFilesMask|ПолучитьРазделительПути|GetPathSeparator|ПолучитьРазделительПутиКлиента|GetClientPathSeparator|ПолучитьРазделительПутиСервера|GetServerPathSeparator|НачатьПодключениеРасширенияРаботыСФайлами|BeginAttachingFileSystemExtension|НачатьЗапросРазрешенияПользователя|BeginRequestingUserPermission|НачатьПоискФайлов|BeginFindingFiles|НачатьСозданиеКаталога|BeginCreatingDirectory|НачатьКопированиеФайла|BeginCopyingFile|НачатьПеремещениеФайла|BeginMovingFile|НачатьУдалениеФайлов|BeginDeletingFiles|НачатьПолучениеФайлов|BeginGettingFiles|НачатьПомещениеФайлов|BeginPuttingFiles
|
|
44
|
+
| НачатьТранзакцию|BeginTransaction|ЗафиксироватьТранзакцию|CommitTransaction|ОтменитьТранзакцию|RollbackTransaction|УстановитьМонопольныйРежим|SetExclusiveMode|МонопольныйРежим|ExclusiveMode|ПолучитьОперативнуюОтметкуВремени|GetRealTimeTimestamp|ПолучитьСоединенияИнформационнойБазы|GetInfoBaseConnections|НомерСоединенияИнформационнойБазы|InfoBaseConnectionNumber|КонфигурацияИзменена|ConfigurationChanged|КонфигурацияБазыДанныхИзмененаДинамически|DataBaseConfigurationChangedDynamically|УстановитьВремяОжиданияБлокировкиДанных|SetLockWaitTime|ОбновитьНумерациюОбъектов|RefreshObjectsNumbering|ПолучитьВремяОжиданияБлокировкиДанных|GetLockWaitTime|КодЛокализацииИнформационнойБазы|InfoBaseLocaleCode|УстановитьМинимальнуюДлинуПаролейПользователей|SetUserPasswordMinLength|ПолучитьМинимальнуюДлинуПаролейПользователей|GetUserPasswordMinLength|ИнициализироватьПредопределенныеДанные|InitializePredefinedData|УдалитьДанныеИнформационнойБазы|EraseInfoBaseData|УстановитьПроверкуСложностиПаролейПользователей|SetUserPasswordStrengthCheck|ПолучитьПроверкуСложностиПаролейПользователей|GetUserPasswordStrengthCheck|ПолучитьСтруктуруХраненияБазыДанных|GetDBStorageStructureInfo|УстановитьПривилегированныйРежим|SetPrivilegedMode|ПривилегированныйРежим|PrivilegedMode|ТранзакцияАктивна|TransactionActive|НеобходимостьЗавершенияСоединения|ConnectionStopRequest|НомерСеансаИнформационнойБазы|InfoBaseSessionNumber|ПолучитьСеансыИнформационнойБазы|GetInfoBaseSessions|ЗаблокироватьДанныеДляРедактирования|LockDataForEdit|УстановитьСоединениеСВнешнимИсточникомДанных|ConnectExternalDataSource|РазблокироватьДанныеДляРедактирования|UnlockDataForEdit|РазорватьСоединениеСВнешнимИсточникомДанных|DisconnectExternalDataSource|ПолучитьБлокировкуСеансов|GetSessionsLock|УстановитьБлокировкуСеансов|SetSessionsLock|ОбновитьПовторноИспользуемыеЗначения|RefreshReusableValues|УстановитьБезопасныйРежим|SetSafeMode|БезопасныйРежим|SafeMode|ПолучитьДанныеВыбора|GetChoiceData|УстановитьЧасовойПоясИнформационнойБазы|SetInfoBaseTimeZone|ПолучитьЧасовойПоясИнформационнойБазы|GetInfoBaseTimeZone|ПолучитьОбновлениеКонфигурацииБазыДанных|GetDataBaseConfigurationUpdate|УстановитьБезопасныйРежимРазделенияДанных|SetDataSeparationSafeMode|БезопасныйРежимРазделенияДанных|DataSeparationSafeMode|УстановитьВремяЗасыпанияПассивногоСеанса|SetPassiveSessionHibernateTime|ПолучитьВремяЗасыпанияПассивногоСеанса|GetPassiveSessionHibernateTime|УстановитьВремяЗавершенияСпящегоСеанса|SetHibernateSessionTerminateTime|ПолучитьВремяЗавершенияСпящегоСеанса|GetHibernateSessionTerminateTime|ПолучитьТекущийСеансИнформационнойБазы|GetCurrentInfoBaseSession|ПолучитьИдентификаторКонфигурации|GetConfigurationID|УстановитьНастройкиКлиентаЛицензирования|SetLicensingClientParameters|ПолучитьИмяКлиентаЛицензирования|GetLicensingClientName|ПолучитьДополнительныйПараметрКлиентаЛицензирования|GetLicensingClientAdditionalParameter
|
|
45
|
+
| НайтиПомеченныеНаУдаление|FindMarkedForDeletion|НайтиПоСсылкам|FindByRef|УдалитьОбъекты|DeleteObjects|УстановитьОбновлениеПредопределенныхДанныхИнформационнойБазы|SetInfoBasePredefinedDataUpdate|ПолучитьОбновлениеПредопределенныхДанныхИнформационнойБазы|GetInfoBasePredefinedData
|
|
46
|
+
| XMLСтрока|XMLString|XMLЗначение|XMLValue|XMLТип|XMLType|XMLТипЗнч|XMLTypeOf|ИзXMLТипа|FromXMLType|ВозможностьЧтенияXML|CanReadXML|ПолучитьXMLТип|GetXMLType|ПрочитатьXML|ReadXML|ЗаписатьXML|WriteXML|НайтиНедопустимыеСимволыXML|FindDisallowedXMLCharacters|ИмпортМоделиXDTO|ImportXDTOModel|СоздатьФабрикуXDTO|CreateXDTOFactory
|
|
47
|
+
| ЗаписатьJSON|WriteJSON|ПрочитатьJSON|ReadJSON|ПрочитатьДатуJSON|ReadJSONDate|ЗаписатьДатуJSON|WriteJSONDate
|
|
48
|
+
| ЗаписьЖурналаРегистрации|WriteLogEvent|ПолучитьИспользованиеЖурналаРегистрации|GetEventLogUsing|УстановитьИспользованиеЖурналаРегистрации|SetEventLogUsing|ПредставлениеСобытияЖурналаРегистрации|EventLogEventPresentation|ВыгрузитьЖурналРегистрации|UnloadEventLog|ПолучитьЗначенияОтбораЖурналаРегистрации|GetEventLogFilterValues|УстановитьИспользованиеСобытияЖурналаРегистрации|SetEventLogEventUse|ПолучитьИспользованиеСобытияЖурналаРегистрации|GetEventLogEventUse|СкопироватьЖурналРегистрации|CopyEventLog|ОчиститьЖурналРегистрации|ClearEventLog
|
|
49
|
+
| ЗначениеВДанныеФормы|ValueToFormData|ДанныеФормыВЗначение|FormDataToValue|КопироватьДанныеФормы|CopyFormData|УстановитьСоответствиеОбъектаИФормы|SetObjectAndFormConformity|ПолучитьСоответствиеОбъектаИФормы|GetObjectAndFormConformity
|
|
50
|
+
| ПолучитьФункциональнуюОпцию|GetFunctionalOption|ПолучитьФункциональнуюОпциюИнтерфейса|GetInterfaceFunctionalOption|УстановитьПараметрыФункциональныхОпцийИнтерфейса|SetInterfaceFunctionalOptionParameters|ПолучитьПараметрыФункциональныхОпцийИнтерфейса|GetInterfaceFunctionalOptionParameters|ОбновитьИнтерфейс|RefreshInterface
|
|
51
|
+
| УстановитьРасширениеРаботыСКриптографией|InstallCryptoExtension|НачатьУстановкуРасширенияРаботыСКриптографией|BeginInstallCryptoExtension|ПодключитьРасширениеРаботыСКриптографией|AttachCryptoExtension|НачатьПодключениеРасширенияРаботыСКриптографией|BeginAttachingCryptoExtension
|
|
52
|
+
| УстановитьСоставСтандартногоИнтерфейсаOData|SetStandardODataInterfaceContent|ПолучитьСоставСтандартногоИнтерфейсаOData|GetStandardODataInterfaceContent
|
|
53
|
+
| Мин|Min|Макс|Max|ОписаниеОшибки|ErrorDescription|Вычислить|Eval|ИнформацияОбОшибке|ErrorInfo|Base64Значение|Base64Value|Base64Строка|Base64String|ЗаполнитьЗначенияСвойств|FillPropertyValues|ЗначениеЗаполнено|ValueIsFilled|ПолучитьПредставленияНавигационныхСсылок|GetURLsPresentations|НайтиОкноПоНавигационнойСсылке|FindWindowByURL|ПолучитьОкна|GetWindows|ПерейтиПоНавигационнойСсылке|GotoURL|ПолучитьНавигационнуюСсылку|GetURL|ПолучитьДопустимыеКодыЛокализации|GetAvailableLocaleCodes|ПолучитьНавигационнуюСсылкуИнформационнойБазы|GetInfoBaseURL|ПредставлениеКодаЛокализации|LocaleCodePresentation|ПолучитьДопустимыеЧасовыеПояса|GetAvailableTimeZones|ПредставлениеЧасовогоПояса|TimeZonePresentation|ТекущаяУниверсальнаяДата|CurrentUniversalDate|ТекущаяУниверсальнаяДатаВМиллисекундах|CurrentUniversalDateInMilliseconds|МестноеВремя|ToLocalTime|УниверсальноеВремя|ToUniversalTime|ЧасовойПояс|TimeZone|СмещениеЛетнегоВремени|DaylightTimeOffset|СмещениеСтандартногоВремени|StandardTimeOffset|КодироватьСтроку|EncodeString|РаскодироватьСтроку|DecodeString|Найти|Find
|
|
54
|
+
| ПередНачаломРаботыСистемы|BeforeStart|ПриНачалеРаботыСистемы|OnStart|ПередЗавершениемРаботыСистемы|BeforeExit|ПриЗавершенииРаботыСистемы|OnExit|ОбработкаВнешнегоСобытия|ExternEventProcessing|УстановкаПараметровСеанса|SessionParametersSetting|ПриИзмененииПараметровЭкрана|OnChangeDisplaySettings
|
|
55
|
+
| WSСсылки|WSReferences|БиблиотекаКартинок|PictureLib|БиблиотекаМакетовОформленияКомпоновкиДанных|DataCompositionAppearanceTemplateLib|БиблиотекаСтилей|StyleLib|БизнесПроцессы|BusinessProcesses|ВнешниеИсточникиДанных|ExternalDataSources|ВнешниеОбработки|ExternalDataProcessors|ВнешниеОтчеты|ExternalReports|Документы|Documents|ДоставляемыеУведомления|DeliverableNotifications|ЖурналыДокументов|DocumentJournals|Задачи|Tasks|ИспользованиеРабочейДаты|WorkingDateUse|ИсторияРаботыПользователя|UserWorkHistory|Константы|Constants|КритерииОтбора|FilterCriteria|Метаданные|Metadata|Обработки|DataProcessors|ОтправкаДоставляемыхУведомлений|DeliverableNotificationSend|Отчеты|Reports|ПараметрыСеанса|SessionParameters|Перечисления|Enums|ПланыВидовРасчета|ChartsOfCalculationTypes|ПланыВидовХарактеристик|ChartsOfCharacteristicTypes|ПланыОбмена|ExchangePlans|ПланыСчетов|ChartsOfAccounts|ПолнотекстовыйПоиск|FullTextSearch|ПользователиИнформационнойБазы|InfoBaseUsers|Последовательности|Sequences|РасширенияКонфигурации|ConfigurationExtensions|РегистрыБухгалтерии|AccountingRegisters|РегистрыНакопления|AccumulationRegisters|РегистрыРасчета|CalculationRegisters|РегистрыСведений|InformationRegisters|РегламентныеЗадания|ScheduledJobs|СериализаторXDTO|XDTOSerializer|Справочники|Catalogs|СредстваГеопозиционирования|LocationTools|СредстваКриптографии|CryptoToolsManager|СредстваМультимедиа|MultimediaTools|СредстваПочты|MailTools|СредстваТелефонии|TelephonyTools|ФабрикаXDTO|XDTOFactory|ФоновыеЗадания|BackgroundJobs|ХранилищаНастроек
|
|
56
|
+
| ГлавныйИнтерфейс|MainInterface|ГлавныйСтиль|MainStyle|ПараметрЗапуска|LaunchParameter|РабочаяДата|WorkingDate|SettingsStorages|ХранилищеВариантовОтчетов|ReportsVariantsStorage|ХранилищеНастроекДанныхФорм|FormDataSettingsStorage|ХранилищеОбщихНастроек|CommonSettingsStorage|ХранилищеПользовательскихНастроекДинамическихСписков|DynamicListsUserSettingsStorage|ХранилищеПользовательскихНастроекОтчетов|ReportsUserSettingsStorage|ХранилищеСистемныхНастроек|SystemSettingsStorage
|
|
57
|
+
| Если|If|ИначеЕсли|ElsIf|Иначе|Else|КонецЕсли|EndIf|Тогда|Then
|
|
58
|
+
| Неопределено|Undefined|Истина|True|Ложь|False|NULL
|
|
59
|
+
)\s*(?=\()/ix
|
|
60
|
+
|
|
61
|
+
state :root do
|
|
62
|
+
rule /\n/, Text
|
|
63
|
+
rule /[^\S\n]+/, Text
|
|
64
|
+
rule /\/\/.*$/, Comment::Single
|
|
65
|
+
rule /[\[\]:(),;]/, Punctuation
|
|
66
|
+
rule /(?<=[^\wа-яё]|^)\&.*$/, Keyword::Declaration
|
|
67
|
+
rule /[-+\/=<>*%=<>.?&]/, Operator
|
|
68
|
+
rule /(?<=[^\wа-яё]|^)\#.*$/, Keyword::Declaration
|
|
69
|
+
rule KEYWORDS, Keyword
|
|
70
|
+
rule BUILTINS, Name::Builtin
|
|
71
|
+
rule /[\wа-яё_][\wа-яё0-9_]*/i, Name::Variable
|
|
72
|
+
|
|
73
|
+
#literals
|
|
74
|
+
rule /\b((\h{8}-(\h{4}-){3}\h{12})|\d+\.?\d*)\b/, Literal::Number
|
|
75
|
+
rule /\'.*\'/, Literal::Date
|
|
76
|
+
rule /".*?("|$)/, Literal::String::Single
|
|
77
|
+
rule /(?<=[^\wа-яё]|^)\|((?!\"\").)*?(\"|$)/, Literal::String
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
end
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
|
2
|
+
|
|
3
|
+
module Rouge
|
|
4
|
+
module Lexers
|
|
5
|
+
class C < RegexLexer
|
|
6
|
+
tag 'c'
|
|
7
|
+
filenames '*.c', '*.h', '*.idc'
|
|
8
|
+
mimetypes 'text/x-chdr', 'text/x-csrc'
|
|
9
|
+
|
|
10
|
+
title "C"
|
|
11
|
+
desc "The C programming language"
|
|
12
|
+
|
|
13
|
+
# optional comment or whitespace
|
|
14
|
+
ws = %r((?:\s|//.*?\n|/[*].*?[*]/)+)
|
|
15
|
+
id = /[a-zA-Z_][a-zA-Z0-9_]*/
|
|
16
|
+
|
|
17
|
+
def self.keywords
|
|
18
|
+
@keywords ||= Set.new %w(
|
|
19
|
+
auto break case const continue default do else enum extern
|
|
20
|
+
for goto if register restricted return sizeof static struct
|
|
21
|
+
switch typedef union volatile virtual while
|
|
22
|
+
|
|
23
|
+
_Alignas _Alignof _Atomic _Generic _Imaginary
|
|
24
|
+
_Noreturn _Static_assert _Thread_local
|
|
25
|
+
)
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def self.keywords_type
|
|
29
|
+
@keywords_type ||= Set.new %w(
|
|
30
|
+
int long float short double char unsigned signed void
|
|
31
|
+
|
|
32
|
+
jmp_buf FILE DIR div_t ldiv_t mbstate_t sig_atomic_t fpos_t
|
|
33
|
+
clock_t time_t va_list size_t ssize_t off_t wchar_t ptrdiff_t
|
|
34
|
+
wctrans_t wint_t wctype_t
|
|
35
|
+
|
|
36
|
+
_Bool _Complex int8_t int16_t int32_t int64_t
|
|
37
|
+
uint8_t uint16_t uint32_t uint64_t int_least8_t
|
|
38
|
+
int_least16_t int_least32_t int_least64_t
|
|
39
|
+
uint_least8_t uint_least16_t uint_least32_t
|
|
40
|
+
uint_least64_t int_fast8_t int_fast16_t int_fast32_t
|
|
41
|
+
int_fast64_t uint_fast8_t uint_fast16_t uint_fast32_t
|
|
42
|
+
uint_fast64_t intptr_t uintptr_t intmax_t
|
|
43
|
+
uintmax_t
|
|
44
|
+
|
|
45
|
+
char16_t char32_t
|
|
46
|
+
)
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def self.reserved
|
|
50
|
+
@reserved ||= Set.new %w(
|
|
51
|
+
__asm __int8 __based __except __int16 __stdcall __cdecl
|
|
52
|
+
__fastcall __int32 __declspec __finally __int61 __try __leave
|
|
53
|
+
inline _inline __inline naked _naked __naked restrict _restrict
|
|
54
|
+
__restrict thread _thread __thread typename _typename __typename
|
|
55
|
+
)
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
def self.builtins
|
|
59
|
+
@builtins ||= []
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
start { push :bol }
|
|
63
|
+
|
|
64
|
+
state :expr_bol do
|
|
65
|
+
mixin :inline_whitespace
|
|
66
|
+
|
|
67
|
+
rule /#if\s0/, Comment, :if_0
|
|
68
|
+
rule /#/, Comment::Preproc, :macro
|
|
69
|
+
|
|
70
|
+
rule(//) { pop! }
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
# :expr_bol is the same as :bol but without labels, since
|
|
74
|
+
# labels can only appear at the beginning of a statement.
|
|
75
|
+
state :bol do
|
|
76
|
+
rule /#{id}:(?!:)/, Name::Label
|
|
77
|
+
mixin :expr_bol
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
state :inline_whitespace do
|
|
81
|
+
rule /[ \t\r]+/, Text
|
|
82
|
+
rule /\\\n/, Text # line continuation
|
|
83
|
+
rule %r(/(\\\n)?[*].*?[*](\\\n)?/)m, Comment::Multiline
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
state :whitespace do
|
|
87
|
+
rule /\n+/m, Text, :bol
|
|
88
|
+
rule %r(//(\\.|.)*?$), Comment::Single, :bol
|
|
89
|
+
mixin :inline_whitespace
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
state :expr_whitespace do
|
|
93
|
+
rule /\n+/m, Text, :expr_bol
|
|
94
|
+
mixin :whitespace
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
state :statements do
|
|
98
|
+
mixin :whitespace
|
|
99
|
+
rule /(u8|u|U|L)?"/, Str, :string
|
|
100
|
+
rule %r((u8|u|U|L)?'(\\.|\\[0-7]{1,3}|\\x[a-f0-9]{1,2}|[^\\'\n])')i, Str::Char
|
|
101
|
+
rule %r((\d+[.]\d*|[.]?\d+)e[+-]?\d+[lu]*)i, Num::Float
|
|
102
|
+
rule %r(\d+e[+-]?\d+[lu]*)i, Num::Float
|
|
103
|
+
rule /0x[0-9a-f]+[lu]*/i, Num::Hex
|
|
104
|
+
rule /0[0-7]+[lu]*/i, Num::Oct
|
|
105
|
+
rule /\d+[lu]*/i, Num::Integer
|
|
106
|
+
rule %r(\*/), Error
|
|
107
|
+
rule %r([~!%^&*+=\|?:<>/-]), Operator
|
|
108
|
+
rule /[()\[\],.]/, Punctuation
|
|
109
|
+
rule /\bcase\b/, Keyword, :case
|
|
110
|
+
rule /(?:true|false|NULL)\b/, Name::Builtin
|
|
111
|
+
rule id do |m|
|
|
112
|
+
name = m[0]
|
|
113
|
+
|
|
114
|
+
if self.class.keywords.include? name
|
|
115
|
+
token Keyword
|
|
116
|
+
elsif self.class.keywords_type.include? name
|
|
117
|
+
token Keyword::Type
|
|
118
|
+
elsif self.class.reserved.include? name
|
|
119
|
+
token Keyword::Reserved
|
|
120
|
+
elsif self.class.builtins.include? name
|
|
121
|
+
token Name::Builtin
|
|
122
|
+
else
|
|
123
|
+
token Name
|
|
124
|
+
end
|
|
125
|
+
end
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
state :case do
|
|
129
|
+
rule /:/, Punctuation, :pop!
|
|
130
|
+
mixin :statements
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
state :root do
|
|
134
|
+
mixin :expr_whitespace
|
|
135
|
+
|
|
136
|
+
# functions
|
|
137
|
+
rule %r(
|
|
138
|
+
([\w*\s]+?[\s*]) # return arguments
|
|
139
|
+
(#{id}) # function name
|
|
140
|
+
(\s*\([^;]*?\)) # signature
|
|
141
|
+
(#{ws})({) # open brace
|
|
142
|
+
)mx do |m|
|
|
143
|
+
# TODO: do this better.
|
|
144
|
+
recurse m[1]
|
|
145
|
+
token Name::Function, m[2]
|
|
146
|
+
recurse m[3]
|
|
147
|
+
recurse m[4]
|
|
148
|
+
token Punctuation, m[5]
|
|
149
|
+
push :function
|
|
150
|
+
end
|
|
151
|
+
|
|
152
|
+
# function declarations
|
|
153
|
+
rule %r(
|
|
154
|
+
([\w*\s]+?[\s*]) # return arguments
|
|
155
|
+
(#{id}) # function name
|
|
156
|
+
(\s*\([^;]*?\)) # signature
|
|
157
|
+
(#{ws})(;) # semicolon
|
|
158
|
+
)mx do |m|
|
|
159
|
+
# TODO: do this better.
|
|
160
|
+
recurse m[1]
|
|
161
|
+
token Name::Function, m[2]
|
|
162
|
+
recurse m[3]
|
|
163
|
+
recurse m[4]
|
|
164
|
+
token Punctuation, m[5]
|
|
165
|
+
push :statement
|
|
166
|
+
end
|
|
167
|
+
|
|
168
|
+
rule(//) { push :statement }
|
|
169
|
+
end
|
|
170
|
+
|
|
171
|
+
state :statement do
|
|
172
|
+
rule /;/, Punctuation, :pop!
|
|
173
|
+
mixin :expr_whitespace
|
|
174
|
+
mixin :statements
|
|
175
|
+
rule /[{}]/, Punctuation
|
|
176
|
+
end
|
|
177
|
+
|
|
178
|
+
state :function do
|
|
179
|
+
mixin :whitespace
|
|
180
|
+
mixin :statements
|
|
181
|
+
rule /;/, Punctuation
|
|
182
|
+
rule /{/, Punctuation, :function
|
|
183
|
+
rule /}/, Punctuation, :pop!
|
|
184
|
+
end
|
|
185
|
+
|
|
186
|
+
state :string do
|
|
187
|
+
rule /"/, Str, :pop!
|
|
188
|
+
rule /\\([\\abfnrtv"']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})/, Str::Escape
|
|
189
|
+
rule /[^\\"\n]+/, Str
|
|
190
|
+
rule /\\\n/, Str
|
|
191
|
+
rule /\\/, Str # stray backslash
|
|
192
|
+
end
|
|
193
|
+
|
|
194
|
+
state :macro do
|
|
195
|
+
# NB: pop! goes back to :bol
|
|
196
|
+
rule /\n/, Comment::Preproc, :pop!
|
|
197
|
+
rule %r([^/\n\\]+), Comment::Preproc
|
|
198
|
+
rule /\\./m, Comment::Preproc
|
|
199
|
+
mixin :inline_whitespace
|
|
200
|
+
rule %r(/), Comment::Preproc
|
|
201
|
+
end
|
|
202
|
+
|
|
203
|
+
state :if_0 do
|
|
204
|
+
# NB: no \b here, to cover #ifdef and #ifndef
|
|
205
|
+
rule /^\s*#if/, Comment, :if_0
|
|
206
|
+
rule /^\s*#\s*el(?:se|if)/, Comment, :pop!
|
|
207
|
+
rule /^\s*#\s*endif\b.*?(?<!\\)\n/m, Comment, :pop!
|
|
208
|
+
rule /.*?\n/, Comment
|
|
209
|
+
end
|
|
210
|
+
end
|
|
211
|
+
end
|
|
212
|
+
end
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
|
2
|
+
|
|
3
|
+
module Rouge
|
|
4
|
+
module Lexers
|
|
5
|
+
class Ceylon < RegexLexer
|
|
6
|
+
tag 'ceylon'
|
|
7
|
+
filenames '*.ceylon'
|
|
8
|
+
mimetypes 'text/x-ceylon'
|
|
9
|
+
|
|
10
|
+
title "Ceylon"
|
|
11
|
+
desc 'Say more, more clearly.'
|
|
12
|
+
|
|
13
|
+
keywords = %w(
|
|
14
|
+
break case catch continue else finally for in
|
|
15
|
+
if return switch this throw try while is exists dynamic
|
|
16
|
+
nonempty then outer assert let
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
keywords_declaration = %w(
|
|
20
|
+
abstracts extends satisfies super given of out assign
|
|
21
|
+
)
|
|
22
|
+
|
|
23
|
+
keywords_type = %w(
|
|
24
|
+
function value void new
|
|
25
|
+
)
|
|
26
|
+
|
|
27
|
+
keywords_namespace = %w(
|
|
28
|
+
assembly module package
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
keywords_constant = %w(
|
|
32
|
+
true false null
|
|
33
|
+
)
|
|
34
|
+
|
|
35
|
+
annotations = %w(
|
|
36
|
+
shared abstract formal default actual variable deprecated small
|
|
37
|
+
late literal doc by see throws optional license tagged final native
|
|
38
|
+
annotation sealed
|
|
39
|
+
)
|
|
40
|
+
|
|
41
|
+
state :whitespace do
|
|
42
|
+
rule %r([^\S\n]+), Text
|
|
43
|
+
rule %r(//.*?\n), Comment::Single
|
|
44
|
+
rule %r(/\*), Comment::Multiline
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
state :root do
|
|
48
|
+
mixin :whitespace
|
|
49
|
+
|
|
50
|
+
rule %r((shared|abstract|formal|default|actual|variable|deprecated|small|
|
|
51
|
+
late|literal|doc|by|see|throws|optional|license|tagged|final|native|
|
|
52
|
+
annotation|sealed)\b), Name::Decorator
|
|
53
|
+
|
|
54
|
+
rule %r((break|case|catch|continue|else|finally|for|in|
|
|
55
|
+
if|return|switch|this|throw|try|while|is|exists|dynamic|
|
|
56
|
+
nonempty|then|outer|assert|let)\b), Keyword
|
|
57
|
+
|
|
58
|
+
rule %r((abstracts|extends|satisfies|super|given|of|out|assign)\b), Keyword::Declaration
|
|
59
|
+
|
|
60
|
+
rule %r((function|value|void|new)\b), Keyword::Type
|
|
61
|
+
|
|
62
|
+
rule %r((assembly|module|package)(\s+)) do
|
|
63
|
+
groups Keyword::Namespace, Text
|
|
64
|
+
push :import
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
rule %r((true|false|null)\b), Keyword::Constant
|
|
68
|
+
|
|
69
|
+
rule %r((class|interface|object|alias)(\s+)) do
|
|
70
|
+
groups Keyword::Declaration, Text
|
|
71
|
+
push :class
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
rule %r((import)(\s+)) do
|
|
75
|
+
groups Keyword::Namespace, Text
|
|
76
|
+
push :import
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
rule %r("(\\\\|\\"|[^"])*"), Literal::String
|
|
80
|
+
rule %r('\\.'|'[^\\]'|'\\\{#[0-9a-fA-F]{4}\}'), Literal::String::Char
|
|
81
|
+
rule %r(".*``.*``.*"', String::Interpol
|
|
82
|
+
rule %r(\.)([a-z_]\w*)) do
|
|
83
|
+
groups Operator, Name::Attribute
|
|
84
|
+
end
|
|
85
|
+
rule %r([a-zA-Z_]\w*:), Name::Label
|
|
86
|
+
rule %r((\\I[a-z]|[A-Z])\w*), Name::Decorator
|
|
87
|
+
rule %r([a-zA-Z_]\w*), Name
|
|
88
|
+
rule %r([~^*!%&\[\](){}<>|+=:;,./?-`]), Operator
|
|
89
|
+
rule %r(\d{1,3}(_\d{3})+\.\d{1,3}(_\d{3})+[kMGTPmunpf]?), Literal::Number::Float
|
|
90
|
+
rule %r(\d{1,3}(_\d{3})+\.[0-9]+([eE][+-]?[0-9]+)?[kMGTPmunpf]?),
|
|
91
|
+
Literal::Number::Float
|
|
92
|
+
rule %r([0-9][0-9]*\.\d{1,3}(_\d{3})+[kMGTPmunpf]?), Literal::Number::Float
|
|
93
|
+
rule %r([0-9][0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[kMGTPmunpf]?),
|
|
94
|
+
Literal::Number::Float
|
|
95
|
+
rule %r(#([0-9a-fA-F]{4})(_[0-9a-fA-F]{4})+), Literal::Number::Hex
|
|
96
|
+
rule %r(#[0-9a-fA-F]+), Literal::Number::Hex
|
|
97
|
+
rule %r(\$([01]{4})(_[01]{4})+), Literal::Number::Bin
|
|
98
|
+
rule %r(\$[01]+), Literal::Number::Bin
|
|
99
|
+
rule %r(\d{1,3}(_\d{3})+[kMGTP]?), Literal::Number::Integer
|
|
100
|
+
rule %r([0-9]+[kMGTP]?), Literal::Number::Integer
|
|
101
|
+
rule %r(\n), Text
|
|
102
|
+
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
state :class do
|
|
106
|
+
mixin :whitespace
|
|
107
|
+
rule %r([A-Za-z_]\w*), Name::Class, :pop!
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
state :import do
|
|
111
|
+
rule %r([a-z][\w.]*), Name::Namespace, :pop!
|
|
112
|
+
rule %r("(\\\\|\\"|[^"])*"), Literal::String, :pop!
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
state :comment do
|
|
116
|
+
rule %r([^*/]), Comment.Multiline
|
|
117
|
+
rule %r(/\*), Comment::Multiline, :push!
|
|
118
|
+
rule %r(\*/), Comment::Multiline, :pop!
|
|
119
|
+
rule %r([*/]), Comment::Multiline
|
|
120
|
+
end
|
|
121
|
+
end
|
|
122
|
+
end
|
|
123
|
+
end
|