summaryrefslogtreecommitdiffstats
path: root/runtime/syntax/framescript.vim
blob: 8b16d048a0544ea5a70c7d00f3039464fabc31b6 (plain)
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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
" Vim syntax file
" Language:             FrameScript v4.0
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2007-02-22

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn match   framescriptOperator
      \ '[+*/%=-]\|[><]=\=\|#[&|]'

syn keyword framescriptTodo
      \ contained
      \ TODO FIXME XXX NOTE

syn cluster framescriptCommentGroup
      \ contains=
      \   framescriptTodo,
      \   @Spell

syn match   framescriptComment
      \ display
      \ contains=@framescriptCommentGroup
      \ '//.*$'

syn region  framescriptComment
      \ contains=@framescriptCommentGroup
      \ matchgroup=framescriptCommentStart
      \ start='/\*'
      \ end='\*/'

syn case ignore

syn match   framescriptInclude
      \ display
      \ contains=framescriptIncluded
      \ "^\s*<#Include\>\s*'"

syn region  framescriptIncluded
      \ contained
      \ display
      \ start=+'+
      \ skip=+\\\\\|\\'+
      \ end=+'+

syn match   framescriptNumbers
      \ display
      \ transparent
      \ contains=
      \   framescriptInteger,
      \   framescriptReal,
      \   framescriptMetric,
      \   framescriptCharacter
      \ '\<\d\|\.\d'

syn keyword framescriptBoolean
      \ True False

syn match   framescriptInteger
      \ contained
      \ display
      \ '\d\+\>'

syn match   framescriptInteger
      \ contained
      \ display
      \ '\x\+H\>'

syn match   framescriptInteger
      \ contained
      \ display
      \ '[01]\+B\>'

syn match   framescriptReal
      \ contained
      \ display
      \ '\d\+\.\d*\|\.\d\+\>'

syn match   framescriptMetric
      \ contained
      \ display
      \ '\%(\d\+\%(\.\d*\)\=\|\.\d\+\)\%(pts\|in\|"\|cm\|mm\|pica\)\>'

syn match   framescriptCharacter
      \ contained
      \ display
      \ '\d\+S\>'

syn region  framescriptString
      \ contains=framescriptStringSpecialChar,@Spell
      \ start=+'+
      \ skip=+\\\\\|\\'+
      \ end=+'+

syn match   framescriptStringSpecialChar
      \ contained
      \ display
      \ "\\[\\']"

syn keyword framescriptConstant
      \ BackSlash
      \ CharCR
      \ CharLF
      \ CharTAB
      \ ClientDir
      \ ClientName
      \ FslVersionMajor
      \ FslVersionMinor
      \ InstallName
      \ InstalledScriptList
      \ MainScript
      \ NULL
      \ ObjEndOffset
      \ ProductRevision
      \ Quote
      \ ThisScript

syn keyword framescriptOperator
      \ not
      \ and
      \ or

syn keyword framescriptSessionVariables
      \ ErrorCode
      \ ErrorMsg
      \ DeclareVarMode
      \ PlatformEncodingMode

syn keyword framescriptStructure
      \ Event
      \ EndEvent

syn keyword framescriptStatement
      \ Sub
      \ EndSub
      \ Run
      \ Function
      \ EndFunction
      \ Set
      \ Add
      \ Apply
      \ CallClient
      \ Close
      \ Copy
      \ Cut
      \ DialogBox
      \ Delete
      \ Demote
      \ Display
      \ DocCompare
      \ Export
      \ Find
      \ LeaveLoop
      \ LeaveScript
      \ LeaveSub
      \ LoopNext
      \ Merge
      \ MsgBox
      \ Paste
      \ PopClipboard
      \ PushClipboard
      \ Read
      \ Replace
      \ Return
      \ Sort
      \ Split

syn keyword framescriptStatement
      \ nextgroup=framescriptApplySubStatement skipwhite skipempty
      \ Apply

syn keyword framescriptApplySubStatement
      \ contained
      \ Pagelayout
      \ TextProperties

syn keyword framescriptStatement
      \ nextgroup=framescriptClearSubStatement skipwhite skipempty
      \ Clear

syn keyword framescriptClearSubStatement
      \ contained
      \ ChangeBars
      \ Text

syn keyword framescriptStatement
      \ nextgroup=framescriptCloseSubStatement skipwhite skipempty
      \ Close

syn keyword framescriptCloseSubStatement
      \ contained
      \ Book
      \ Document
      \ TextFile

syn keyword framescriptStatement
      \ nextgroup=framescriptExecSubStatement skipwhite skipempty
      \ Exec

syn keyword framescriptExecSubStatement
      \ contained
      \ Compile
      \ Script
      \ Wait

syn keyword framescriptStatement
      \ nextgroup=framescriptExecuteSubStatement skipwhite skipempty
      \ Execute

syn keyword framescriptExecuteSubStatement
      \ contained
      \ FrameCommand
      \ Hypertext
      \ StartUndoCheckPoint
      \ EndUndoCheckPoint
      \ ClearUndoHistory

syn keyword framescriptStatement
      \ nextgroup=framescriptGenerateSubStatement skipwhite skipempty
      \ Generate

syn keyword framescriptGenerateSubStatement
      \ contained
      \ Bookfile

syn keyword framescriptStatement
      \ nextgroup=framescriptGetSubStatement skipwhite skipempty
      \ Get

syn keyword framescriptGetSubStatement
      \ contained
      \ Member
      \ Object
      \ String
      \ TextList
      \ TextProperties

syn keyword framescriptStatement
      \ nextgroup=framescriptImportSubStatement skipwhite skipempty
      \ Import

syn keyword framescriptImportSubStatement
      \ contained
      \ File
      \ Formats
      \ ElementDefs

syn keyword framescriptStatement
      \ nextgroup=framescriptInstallSubStatement skipwhite skipempty
      \ Install
      \ Uninstall

syn keyword framescriptInstallSubStatement
      \ contained
      \ ChangeBars
      \ Text

syn keyword framescriptStatement
      \ nextgroup=framescriptNewSubStatement skipwhite skipempty
      \ New

syn keyword framescriptNewSubStatement
      \ contained
      \ AFrame
      \ Footnote
      \ Marker
      \ TiApiClient
      \ Variable
      \ XRef
      \ FormatChangeList
      \ FormatRule
      \ FmtRuleClause
      \ Arc
      \ Ellipse
      \ Flow
      \ Group
      \ Inset
      \ Line
      \ Math
      \ Polygon
      \ Polyline
      \ Rectangle
      \ RoundRect
      \ TextFrame
      \ Textline
      \ UnanchoredFrame
      \ Command
      \ Menu
      \ MenuItemSeparator
      \ Book
      \ CharacterFormat
      \ Color
      \ ConditionFormat
      \ ElementDef
      \ FormatChangeList
      \ MarkerType
      \ MasterPage
      \ ParagraphFormat
      \ PgfFmt
      \ ReferencePAge
      \ RulingFormat
      \ TableFormat
      \ VariableFormat
      \ XRefFormat
      \ BodyPage
      \ BookComponent
      \ Paragraph
      \ Element
      \ Attribute
      \ AttributeDef
      \ AttributeList
      \ AttributeDefList
      \ ElementLoc
      \ ElementRange
      \ Table
      \ TableRows
      \ TableCols
      \ Text
      \ Integer
      \ Real
      \ Metric
      \ String
      \ Object
      \ TextLoc
      \ TextRange
      \ IntList
      \ UIntList
      \ MetricList
      \ StringList
      \ PointList
      \ TabList
      \ PropertyList
      \ LibVar
      \ ScriptVar
      \ SubVar
      \ TextFile

syn keyword framescriptStatement
      \ nextgroup=framescriptOpenSubStatement skipwhite skipempty
      \ Open

syn keyword framescriptOpenSubStatement
      \ contained
      \ Document
      \ Book
      \ TextFile

syn keyword framescriptStatement
      \ nextgroup=framescriptPrintSubStatement skipwhite skipempty
      \ Print

syn keyword framescriptPrintSubStatement
      \ contained
      \ Document
      \ Book

syn keyword framescriptStatement
      \ nextgroup=framescriptQuitSubStatement skipwhite skipempty
      \ Quit

syn keyword framescriptQuitSubStatement
      \ contained
      \ Session

syn keyword framescriptStatement
      \ nextgroup=framescriptRemoveSubStatement skipwhite skipempty
      \ Remove

syn keyword framescriptRemoveSubStatement
      \ contained
      \ Attribute
      \ CommandObject

syn keyword framescriptStatement
      \ nextgroup=framescriptSaveSubStatement skipwhite skipempty
      \ Save

syn keyword framescriptSaveSubStatement
      \ contained
      \ Document
      \ Book

syn keyword framescriptStatement
      \ nextgroup=framescriptSelectSubStatement skipwhite skipempty
      \ Select

syn keyword framescriptSelectSubStatement
      \ contained
      \ TableCells

syn keyword framescriptStatement
      \ nextgroup=framescriptStraddleSubStatement skipwhite skipempty
      \ Straddle

syn keyword framescriptStraddleSubStatement
      \ contained
      \ TableCells

syn keyword framescriptStatement
      \ nextgroup=framescriptUpdateSubStatement skipwhite skipempty
      \ Update

syn keyword framescriptUpdateSubStatement
      \ contained
      \ ReDisplay
      \ Formatting
      \ Hyphenating
      \ ResetEquationsSettings
      \ ResetRefFrames
      \ RestartPgfNums
      \ TextInset
      \ Variables
      \ XRefs
      \ Book

syn keyword framescriptStatement
      \ nextgroup=framescriptWriteSubStatement skipwhite skipempty
      \ Write

syn keyword framescriptUpdateSubStatement
      \ contained
      \ Console
      \ Display

syn keyword framescriptRepeat
      \ Loop
      \ EndLoop

syn keyword framescriptConditional
      \ If
      \ ElseIf
      \ Else
      \ EndIf

syn keyword framescriptType
      \ Local
      \ GlobalVar

let b:framescript_minlines = exists("framescript_minlines")
                         \ ? framescript_minlines : 15
exec "syn sync ccomment framescriptComment minlines=" . b:framescript_minlines

hi def link framescriptTodo                 Todo
hi def link framescriptComment              Comment
hi def link framescriptCommentStart         framescriptComment
hi def link framescriptInclude              Include
hi def link framescriptIncluded             String
hi def link framescriptBoolean              Boolean
hi def link framescriptNumber               Number
hi def link framescriptInteger              framescriptNumber
hi def link framescriptReal                 framescriptNumber
hi def link framescriptMetric               framescriptNumber
hi def link framescriptCharacter            framescriptNumber
hi def link framescriptString               String
hi def link framescriptStringSpecialChar    SpecialChar
hi def link framescriptConstant             Constant
hi def link framescriptOperator             None
hi def link framescriptSessionVariables     PreProc
hi def link framescriptStructure            Structure
hi def link framescriptStatement            Statement
hi def link framescriptSubStatement         Type
hi def link framescriptApplySubStatement    framescriptSubStatement
hi def link framescriptClearSubStatement    framescriptSubStatement
hi def link framescriptCloseSubStatement    framescriptSubStatement
hi def link framescriptExecSubStatement     framescriptSubStatement
hi def link framescriptExecuteSubStatement  framescriptSubStatement
hi def link framescriptGenerateSubStatement framescriptSubStatement
hi def link framescriptGetSubStatement      framescriptSubStatement
hi def link framescriptImportSubStatement   framescriptSubStatement
hi def link framescriptInstallSubStatement  framescriptSubStatement
hi def link framescriptNewSubStatement      framescriptSubStatement
hi def link framescriptOpenSubStatement     framescriptSubStatement
hi def link framescriptPrintSubStatement    framescriptSubStatement
hi def link framescriptQuitSubStatement     framescriptSubStatement
hi def link framescriptRemoveSubStatement   framescriptSubStatement
hi def link framescriptSaveSubStatement     framescriptSubStatement
hi def link framescriptSelectSubStatement   framescriptSubStatement
hi def link framescriptStraddleSubStatement framescriptSubStatement
hi def link framescriptUpdateSubStatement   framescriptSubStatement
hi def link framescriptRepeat               Repeat
hi def link framescriptConditional          Conditional
hi def link framescriptType                 Type

let b:current_syntax = "framescript"

let &cpo = s:cpo_save
unlet s:cpo_save