1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
# Does the config parsing for us
import
parsecfg, strtabs, strutils
type
TTokenClass* = enum
gtBackground,
gtNone,
gtWhitespace,
gtDecNumber,
gtBinNumber,
gtHexNumber,
gtOctNumber,
gtFloatNumber,
gtIdentifier,
gtKeyword,
gtStringLit,
gtLongStringLit,
gtCharLit,
gtEscapeSequence,
gtOperator,
gtPunctation,
gtComment,
gtLongComment,
gtRegularExpression,
gtTagStart,
gtTagEnd,
gtKey,
gtValue,
gtRawData,
gtAssembler,
gtPreprocessor,
gtDirective,
gtCommand,
gtRule,
gtHyperlink,
gtLabel,
gtReference,
gtOther,
gtCursor
TColor* = colKeywords, colIdentifiers, colComments
TConfiguration* = object of TObject ## the configuration object
colors*: array [TTokenClass] of TColor ## the colors to use
filelist*: seq[string] ## the filelist
const
colWhite = 0x00ffffff # rgb
colBlack = 0x00000000
colYellow =
proc readConfig(filename: string): TConfiguration =
# fill with reasonable defaults:
result.filelist = []
result.colors[gtBackground] = colWhite
gtNone:
gtWhitespace,
gtDecNumber,
gtBinNumber,
gtHexNumber,
gtOctNumber,
gtFloatNumber,
gtIdentifier,
gtKeyword,
gtStringLit,
gtLongStringLit,
gtCharLit,
gtEscapeSequence,
gtOperator,
gtPunctation,
gtComment,
gtLongComment,
gtRegularExpression,
gtTagStart,
gtTagEnd,
gtKey,
gtValue,
gtRawData,
gtAssembler,
gtPreprocessor,
gtDirective,
gtCommand,
gtRule,
gtHyperlink,
gtLabel,
gtReference,
gtOther
gtCursor
var
p: TCfgParser
if open(p, filename):
|