mirror of
				https://github.com/vim/vim.git
				synced 2025-10-30 09:47:20 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			111 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			111 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
| " Vim syntax file
 | |
| " Language: JOVIAL J73
 | |
| " Version: 1.2
 | |
| " Maintainer: Paul McGinnis <paulmcg@aol.com>
 | |
| " Last Change: 2011/06/17
 | |
| " Remark: Based on MIL-STD-1589C for JOVIAL J73 language
 | |
| 
 | |
| " Quit when a (custom) syntax file was already loaded
 | |
| if exists("b:current_syntax")
 | |
|   finish
 | |
| endif
 | |
| 
 | |
| syn case ignore
 | |
| 
 | |
| syn keyword jovialTodo TODO FIXME XXX contained
 | |
| 
 | |
| " JOVIAL beads - first digit is number of bits, [0-9A-V] is the bit value
 | |
| " representing 0-31 (for 5 bits on the bead)
 | |
| syn match jovialBitConstant "[1-5]B'[0-9A-V]'"
 | |
| 
 | |
| syn match jovialNumber "\<\d\+\>"
 | |
| 
 | |
| syn match jovialFloat "\d\+E[-+]\=\d\+"
 | |
| syn match jovialFloat "\d\+\.\d*\(E[-+]\=\d\+\)\="
 | |
| syn match jovialFloat "\.\d\+\(E[-+]\=\d\+\)\="
 | |
| 
 | |
| syn region jovialComment start=/"/ end=/"/ contains=jovialTodo
 | |
| syn region jovialComment start=/%/ end=/%/ contains=jovialTodo
 | |
| 
 | |
| " JOVIAL variable names. This rule is to prevent conflicts with strings.
 | |
| " Handle special case where ' character can be part of a JOVIAL variable name.
 | |
| syn match jovialIdentifier "[A-Z\$][A-Z0-9'\$]\+"
 | |
| 
 | |
| syn region jovialString start="\s*'" skip=/''/ end=/'/ oneline
 | |
| 
 | |
| " JOVIAL compiler directives -- see Section 9 in MIL-STD-1589C
 | |
| syn region jovialPreProc start="\s*![A-Z]\+" end=/;/
 | |
| 
 | |
| syn keyword jovialOperator AND OR NOT XOR EQV MOD
 | |
| 
 | |
| " See Section 2.1 in MIL-STD-1589C for data types
 | |
| syn keyword jovialType ITEM B C P V
 | |
| syn match jovialType "\<S\(,R\|,T\|,Z\)\=\>"
 | |
| syn match jovialType "\<U\(,R\|,T\|,Z\)\=\>"
 | |
| syn match jovialType "\<F\(,R\|,T\|,Z\)\=\>"
 | |
| syn match jovialType "\<A\(,R\|,T\|,Z\)\=\>"
 | |
| 
 | |
| syn keyword jovialStorageClass STATIC CONSTANT PARALLEL BLOCK N M D W
 | |
| 
 | |
| syn keyword jovialStructure TABLE STATUS
 | |
| 
 | |
| syn keyword jovialConstant NULL
 | |
| 
 | |
| syn keyword jovialBoolean FALSE TRUE
 | |
| 
 | |
| syn keyword jovialTypedef TYPE
 | |
| 
 | |
| syn keyword jovialStatement ABORT BEGIN BY BYREF BYRES BYVAL CASE COMPOOL
 | |
| syn keyword jovialStatement DEF DEFAULT DEFINE ELSE END EXIT FALLTHRU FOR
 | |
| syn keyword jovialStatement GOTO IF INLINE INSTANCE LABEL LIKE OVERLAY POS
 | |
| syn keyword jovialStatement PROC PROGRAM REC REF RENT REP RETURN START STOP
 | |
| syn keyword jovialStatement TERM THEN WHILE
 | |
| 
 | |
| " JOVIAL extensions, see section 8.2.2 in MIL-STD-1589C
 | |
| syn keyword jovialStatement CONDITION ENCAPSULATION EXPORTS FREE HANDLER IN INTERRUPT NEW
 | |
| syn keyword jovialStatement PROTECTED READONLY REGISTER SIGNAL TO UPDATE WITH WRITEONLY ZONE
 | |
| 
 | |
| " implementation specific constants and functions, see section 1.4 in MIL-STD-1589C
 | |
| syn keyword jovialConstant BITSINBYTE BITSINWORD LOCSINWORD
 | |
| syn keyword jovialConstant BYTESINWORD BITSINPOINTER INTPRECISION
 | |
| syn keyword jovialConstant FLOATPRECISION FIXEDPRECISION FLOATRADIX
 | |
| syn keyword jovialConstant MAXFLOATPRECISION MAXFIXEDPRECISION
 | |
| syn keyword jovialConstant MAXINTSIZE MAXBYTES MAXBITS
 | |
| syn keyword jovialConstant MAXTABLESIZE MAXSTOP MINSTOP MAXSIGDIGITS
 | |
| syn keyword jovialFunction BYTEPOS MAXINT MININT
 | |
| syn keyword jovialFunction IMPLFLOATPRECISION IMPLFIXEDPRECISION IMPLINTSIZE
 | |
| syn keyword jovialFunction MINSIZE MINFRACTION MINSCALE MINRELPRECISION
 | |
| syn keyword jovialFunction MAXFLOAT MINFLOAT FLOATRELPRECISION
 | |
| syn keyword jovialFunction FLOATUNDERFLOW MAXFIXED MINFIXED
 | |
| 
 | |
| " JOVIAL built-in functions
 | |
| syn keyword jovialFunction LOC NEXT BIT BYTE SHIFTL SHIFTR ABS SGN BITSIZE
 | |
| syn keyword jovialFunction BYTESIZE WORDSIZE LBOUND UBOUND NWDSEN FIRST
 | |
| syn keyword jovialFunction LAST NENT
 | |
| 
 | |
| " Define the default highlighting.
 | |
| hi def link jovialBitConstant Number
 | |
| hi def link jovialBoolean Boolean
 | |
| hi def link jovialComment Comment
 | |
| hi def link jovialConstant Constant
 | |
| hi def link jovialFloat Float
 | |
| hi def link jovialFunction Function
 | |
| " No color highlighting for JOVIAL identifiers. See above,
 | |
| " this is to prevent confusion with JOVIAL strings
 | |
| "hi def link jovialIdentifier Identifier
 | |
| hi def link jovialNumber Number
 | |
| hi def link jovialOperator Operator
 | |
| hi def link jovialPreProc PreProc
 | |
| hi def link jovialStatement Statement
 | |
| hi def link jovialStorageClass StorageClass
 | |
| hi def link jovialString String
 | |
| hi def link jovialStructure Structure
 | |
| hi def link jovialTodo Todo
 | |
| hi def link jovialType Type
 | |
| hi def link jovialTypedef Typedef
 | |
| 
 | |
| 
 | |
| let b:current_syntax = "jovial"
 | |
| 
 | |
| " vim: ts=8
 |