annotate runtime/syntax/jovial.vim @ 49:000769ce6c9d default tip

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