comparison runtime/syntax/jovial.vim @ 2908:fd09a9c8468e

Updated runtime files.
author Bram Moolenaar <bram@vim.org>
date Sun, 19 Jun 2011 05:09:16 +0200
parents
children
comparison
equal deleted inserted replaced
2907:ea75da0af64d 2908:fd09a9c8468e
1 " Vim syntax file
2 " Language: JOVIAL J73
3 " Version: 1.2
4 " Maintainer: Paul McGinnis <paulmcg@aol.com>
5 " Last Change: 2011/06/17
6 " Remark: Based on MIL-STD-1589C for JOVIAL J73 language
7
8 " Quit when a (custom) syntax file was already loaded
9 if exists("b:current_syntax")
10 finish
11 endif
12
13 syn case ignore
14
15 syn keyword jovialTodo TODO FIXME XXX contained
16
17 " JOVIAL beads - first digit is number of bits, [0-9A-V] is the bit value
18 " representing 0-31 (for 5 bits on the bead)
19 syn match jovialBitConstant "[1-5]B'[0-9A-V]'"
20
21 syn match jovialNumber "\<\d\+\>"
22
23 syn match jovialFloat "\d\+E[-+]\=\d\+"
24 syn match jovialFloat "\d\+\.\d*\(E[-+]\=\d\+\)\="
25 syn match jovialFloat "\.\d\+\(E[-+]\=\d\+\)\="
26
27 syn region jovialComment start=/"/ end=/"/ contains=jovialTodo
28 syn region jovialComment start=/%/ end=/%/ contains=jovialTodo
29
30 " JOVIAL variable names. This rule is to prevent conflicts with strings.
31 " Handle special case where ' character can be part of a JOVIAL variable name.
32 syn match jovialIdentifier "[A-Z\$][A-Z0-9'\$]\+"
33
34 syn region jovialString start="\s*'" skip=/''/ end=/'/ oneline
35
36 " JOVIAL compiler directives -- see Section 9 in MIL-STD-1589C
37 syn region jovialPreProc start="\s*![A-Z]\+" end=/;/
38
39 syn keyword jovialOperator AND OR NOT XOR EQV MOD
40
41 " See Section 2.1 in MIL-STD-1589C for data types
42 syn keyword jovialType ITEM B C P V
43 syn match jovialType "\<S\(,R\|,T\|,Z\)\=\>"
44 syn match jovialType "\<U\(,R\|,T\|,Z\)\=\>"
45 syn match jovialType "\<F\(,R\|,T\|,Z\)\=\>"
46 syn match jovialType "\<A\(,R\|,T\|,Z\)\=\>"
47
48 syn keyword jovialStorageClass STATIC CONSTANT PARALLEL BLOCK N M D W
49
50 syn keyword jovialStructure TABLE STATUS
51
52 syn keyword jovialConstant NULL
53
54 syn keyword jovialBoolean FALSE TRUE
55
56 syn keyword jovialTypedef TYPE
57
58 syn keyword jovialStatement ABORT BEGIN BY BYREF BYRES BYVAL CASE COMPOOL
59 syn keyword jovialStatement DEF DEFAULT DEFINE ELSE END EXIT FALLTHRU FOR
60 syn keyword jovialStatement GOTO IF INLINE INSTANCE LABEL LIKE OVERLAY POS
61 syn keyword jovialStatement PROC PROGRAM REC REF RENT REP RETURN START STOP
62 syn keyword jovialStatement TERM THEN WHILE
63
64 " JOVIAL extensions, see section 8.2.2 in MIL-STD-1589C
65 syn keyword jovialStatement CONDITION ENCAPSULATION EXPORTS FREE HANDLER IN INTERRUPT NEW
66 syn keyword jovialStatement PROTECTED READONLY REGISTER SIGNAL TO UPDATE WITH WRITEONLY ZONE
67
68 " implementation specific constants and functions, see section 1.4 in MIL-STD-1589C
69 syn keyword jovialConstant BITSINBYTE BITSINWORD LOCSINWORD
70 syn keyword jovialConstant BYTESINWORD BITSINPOINTER INTPRECISION
71 syn keyword jovialConstant FLOATPRECISION FIXEDPRECISION FLOATRADIX
72 syn keyword jovialConstant MAXFLOATPRECISION MAXFIXEDPRECISION
73 syn keyword jovialConstant MAXINTSIZE MAXBYTES MAXBITS
74 syn keyword jovialConstant MAXTABLESIZE MAXSTOP MINSTOP MAXSIGDIGITS
75 syn keyword jovialFunction BYTEPOS MAXINT MININT
76 syn keyword jovialFunction IMPLFLOATPRECISION IMPLFIXEDPRECISION IMPLINTSIZE
77 syn keyword jovialFunction MINSIZE MINFRACTION MINSCALE MINRELPRECISION
78 syn keyword jovialFunction MAXFLOAT MINFLOAT FLOATRELPRECISION
79 syn keyword jovialFunction FLOATUNDERFLOW MAXFIXED MINFIXED
80
81 " JOVIAL built-in functions
82 syn keyword jovialFunction LOC NEXT BIT BYTE SHIFTL SHIFTR ABS SGN BITSIZE
83 syn keyword jovialFunction BYTESIZE WORDSIZE LBOUND UBOUND NWDSEN FIRST
84 syn keyword jovialFunction LAST NENT
85
86 " Define the default highlighting.
87 hi def link jovialBitConstant Number
88 hi def link jovialBoolean Boolean
89 hi def link jovialComment Comment
90 hi def link jovialConstant Constant
91 hi def link jovialFloat Float
92 hi def link jovialFunction Function
93 " No color highlighting for JOVIAL identifiers. See above,
94 " this is to prevent confusion with JOVIAL strings
95 "hi def link jovialIdentifier Identifier
96 hi def link jovialNumber Number
97 hi def link jovialOperator Operator
98 hi def link jovialPreProc PreProc
99 hi def link jovialStatement Statement
100 hi def link jovialStorageClass StorageClass
101 hi def link jovialString String
102 hi def link jovialStructure Structure
103 hi def link jovialTodo Todo
104 hi def link jovialType Type
105 hi def link jovialTypedef Typedef
106
107
108 let b:current_syntax = "jovial"
109
110 " vim: ts=8