1 package o
2
3 import (
4 . "github.com/alecthomas/chroma"
5 "github.com/alecthomas/chroma/lexers/internal"
6 )
7
8
9 var OnesEnterprise = internal.Register(MustNewLazyLexer(
10 &Config{
11 Name: "OnesEnterprise",
12 Aliases: []string{"ones", "onesenterprise", "1S", "1S:Enterprise"},
13 Filenames: []string{"*.EPF", "*.epf", "*.ERF", "*.erf"},
14 MimeTypes: []string{"application/octet-stream"},
15 CaseInsensitive: true,
16 },
17 onesRules,
18 ))
19
20 func onesRules() Rules {
21 return Rules{
22 "root": {
23 {`\n`, Text, nil},
24 {`\s+`, Text, nil},
25 {`\\\n`, Text, nil},
26 {`[^\S\n]+`, Text, nil},
27 {`//(.*?)\n`, Comment, nil},
28 {`(#область|#region|#конецобласти|#endregion|#если|#if|#иначе|#else|#конецесли|#endif).*`, CommentPreproc, nil},
29 {`(&наклиенте|&atclient|&насервере|&atserver|&насерверебезконтекста|&atservernocontext|&наклиентенасерверебезконтекста|&atclientatservernocontext).*`, CommentPreproc, nil},
30 {`(>=|<=|<>|\+|-|=|>|<|\*|/|%)`, Operator, nil},
31 {`(;|,|\)|\(|\.)`, Punctuation, nil},
32 {Words(``, `\b`, `истина`, `true`, `ложь`, `false`, `и`, `and`, `или`, `or`, `не`, `not`), Operator, nil},
33 {Words(``, `\b`, `если`, `if`, `тогда`, `then`, `иначе`, `else`, `иначеесли`, `elsif`, `конецесли`, `endif`), Operator, nil},
34 {Words(``, `\b`, `для`, `for`, `каждого`, `each`, `из`, `in`, `цикл`, `do`, `пока`, `while`, `конеццикла`, `enddo`, `по`, `to`), Operator, nil},
35 {Words(``, `\b`, `прервать`, `break`, `продолжить`, `continue`, `возврат`, `return`, `перейти`, `goto`), Operator, nil},
36 {Words(``, `\b`, `процедура`, `procedure`, `конецпроцедуры`, `endprocedure`, `функция`, `function`, `конецфункции`, `endfunction`), Keyword, nil},
37 {Words(``, `\b`, `новый`, `new`, `знач`, `val`, `экспорт`, `export`, `перем`, `var`), Keyword, nil},
38 {Words(``, `\b`, `попытка`, `try`, `исключение`, `except`, `вызватьисключение`, `raise`, `конецпопытки`, `endtry`), Keyword, nil},
39 {Words(``, `\b`, `выполнить`, `execute`, `вычислить`, `eval`), Keyword, nil},
40 {`"`, LiteralString, Push("string")},
41 {`[_а-яА-Я0-9][а-яА-Я0-9]*`, Name, nil},
42 {`[_\w][\w]*`, Name, nil},
43 },
44 "string": {
45 {`""`, LiteralString, nil},
46 {`"C?`, LiteralString, Pop(1)},
47 {`[^"]+`, LiteralString, nil},
48 },
49 }
50 }
51
View as plain text