if polyglot#init#is_disabled(expand('<sfile>:p'), 'cuplsim', 'syntax/cuplsim.vim')
  finish
endif

" Vim syntax file
" Language:	CUPL simulation
" Maintainer:	John Cook <john.cook@kla-tencor.com>
" Last Change:	2001 Apr 25

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" Read the CUPL syntax to start with
runtime! syntax/cupl.vim
unlet b:current_syntax

" omit definition-specific stuff
syn clear cuplStatement
syn clear cuplFunction
syn clear cuplLogicalOperator
syn clear cuplArithmeticOperator
syn clear cuplAssignmentOperator
syn clear cuplEqualityOperator
syn clear cuplTruthTableOperator
syn clear cuplExtension

" simulation order statement
syn match  cuplsimOrder "order:" nextgroup=cuplsimOrderSpec skipempty
syn region cuplsimOrderSpec start="." end=";"me=e-1 contains=cuplComment,cuplsimOrderFormat,cuplBitVector,cuplSpecialChar,cuplLogicalOperator,cuplCommaOperator contained

" simulation base statement
syn match   cuplsimBase "base:" nextgroup=cuplsimBaseSpec skipempty
syn region  cuplsimBaseSpec start="." end=";"me=e-1 contains=cuplComment,cuplsimBaseType contained
syn keyword cuplsimBaseType octal decimal hex contained

" simulation vectors statement
syn match cuplsimVectors "vectors:"

" simulator format control
syn match cuplsimOrderFormat "%\d\+\>" contained

" simulator control
syn match cuplsimStimulus "[10ckpx]\+"
syn match cuplsimStimulus +'\(\x\|x\)\+'+
syn match cuplsimOutput "[lhznx*]\+"
syn match cuplsimOutput +"\x\+"+

syn sync minlines=1

" Define the default highlighting.
" Only when an item doesn't have highlighting yet

" append to the highlighting links in cupl.vim
" The default highlighting.
hi def link cuplsimOrder		cuplStatement
hi def link cuplsimBase		cuplStatement
hi def link cuplsimBaseType	cuplStatement
hi def link cuplsimVectors		cuplStatement
hi def link cuplsimStimulus	cuplNumber
hi def link cuplsimOutput		cuplNumber
hi def link cuplsimOrderFormat	cuplNumber


let b:current_syntax = "cuplsim"
" vim:ts=8
