" Vim syntax file " Language: Stratus " " There are four options to control Stratus syntax highlighting : " " For highlighted numbers : let s_highlight_numbers = 1 " " For highlighted builtin functions : let s_highlight_builtins = 1 " " For highlighted standard exceptions : let s_highlight_exceptions = 1 " " For highlighted stratus : let s_highlight_stratus = 1 " remove old syntax syn clear syn keyword sStatement break continue del syn keyword sStatement except exec finally syn keyword sStatement pass print raise syn keyword sStatement return try syn keyword sStatement global assert syn keyword sStatement lambda syn keyword sStatement def class nextgroup=sFunction skipwhite syn match sFunction "[a-zA-Z_][a-zA-Z0-9_]*" contained syn keyword sRepeat for while syn keyword sConditional if elif else syn keyword sOperator and in is not or syn keyword sPreCondit import from syn match sComment "#.*$" contains=sTodo syn keyword sTodo contained TODO FIXME XXX " strings syn region sString matchgroup=Normal start=+'+ end=+'+ skip=+\\\\\|\\'+ contains=sEscape syn region sString matchgroup=Normal start=+"+ end=+"+ skip=+\\\\\|\\"+ contains=sEscape syn region sString matchgroup=Normal start=+"""+ end=+"""+ contains=sEscape syn region sString matchgroup=Normal start=+'''+ end=+'''+ contains=sEscape syn region sRawString matchgroup=Normal start=+[rR]'+ end=+'+ skip=+\\\\\|\\'+ syn region sRawString matchgroup=Normal start=+[rR]"+ end=+"+ skip=+\\\\\|\\"+ syn region sRawString matchgroup=Normal start=+[rR]"""+ end=+"""+ syn region sRawString matchgroup=Normal start=+[rR]'''+ end=+'''+ syn match sEscape +\\[abfnrtv'"\\]+ contained syn match sEscape "\\\o\o\=\o\=" contained syn match sEscape "\\x\x\+" contained syn match sEscape "\\$" if exists("s_highlight_numbers") " numbers (including longs and complex) syn match sNumber "\<0x\x\+[Ll]\=\>" syn match sNumber "\<\d\+[LljJ]\=\>" syn match sNumber "\.\d\+\([eE][+-]\=\d\+\)\=[jJ]\=\>" syn match sNumber "\<\d\+\.\([eE][+-]\=\d\+\)\=[jJ]\=\>" syn match sNumber "\<\d\+\.\d\+\([eE][+-]\=\d\+\)\=[jJ]\=\>" endif if exists("s_highlight_builtins") " builtin functions, not really part of the syntax syn keyword sBuiltin abs apply callable chr cmp coerce syn keyword sBuiltin compile complex delattr dir divmod syn keyword sBuiltin eval execfile filter float getattr syn keyword sBuiltin globals hasattr hash hex id input syn keyword sBuiltin int intern isinstance issubclass " syn keyword sBuiltin len list locals long map max min syn keyword sBuiltin len list locals long max min syn keyword sBuiltin oct open ord pow range raw_input syn keyword sBuiltin reduce reload repr round setattr syn keyword sBuiltin slice str tuple type vars xrange endif if exists("s_highlight_exceptions") " builtin exceptions syn keyword sException None syn keyword sException ArithmeticError AssertionError syn keyword sException AttributeError EOFError EnvironmentError syn keyword sException Exception FloatingPointError IOError syn keyword sException ImportError IndexError KeyError syn keyword sException KeyboardInterrupt LookupError syn keyword sException MemoryError NameError NotImplementedError syn keyword sException OSError OverflowError RuntimeError syn keyword sException StandardError SyntaxError SystemError syn keyword sException SystemExit TypeError ValueError syn keyword sException ZeroDivisionError endif if exists("s_highlight_stratus") " builtin exceptions syn keyword stratusSpecial self syn keyword stratusClass Model syn keyword stratusClass SignalIn SignalOut SignalInOut SignalUnknown TriState CkIn VddIn VssIn Signal syn keyword stratusClass Inst syn keyword stratusClass XY syn keyword stratusMethod Interface Netlist Layout Vbe Pattern View Save Simul HurricanePlug Quit GetModelName Clean syn keyword stratusMethod Alias Extend syn keyword stratusMethod Buffer Mux Shift Reg Eq Ne syn keyword stratusMethod SetAnd SetOr SetNot SetXor SetNot SetMux SetAdd SetMult SetDiv syn keyword stratusMethod Delete syn keyword stratusMap param map syn keyword stratusNumber NOSYM SYM_X SYM_Y SYMXY ROT_P ROT_M SY_RP SY_RM syn keyword stratusNumber VIEWS LOGICAL PHYSICAL syn keyword stratusNumber STRATUS syn keyword stratusNumber UNPLACED PLACED FIXED syn keyword stratusNumber F_LSB_FIRST F_MSB_FIRST syn keyword stratusNumber TypePOWER TypeGROUND TypeCLOCK syn keyword stratusNumber DirectionIN DirectionOUT DirectionINOUT DirectionTRISTATE DirectionUNDEFINED syn keyword stratusFunction Generate syn keyword stratusFunction Place PlaceTop PlaceBottom PlaceRight PlaceLeft SetRefIns DefAb ResizeAb syn keyword stratusFunction PlaceCentric AlimVerticalRail AlimHorizontalRail AlimConnectors PadNorth PadSouth PadEast PadWest AffichePad SearchVddVss IsConflit PowerRing GetNetInstances RoutageNet RouteCk FillCell PlaceGlue GlobalRoute DetailRoute syn keyword stratusFunction GetRefXY PlaceRef PlaceContact PlaceSegment PlacePin CopyUpSegment syn keyword stratusFunction Cat syn keyword stratusFunction Param syn keyword stratusFunction One Zero endif " This is fast but code inside triple quoted strings screws it up. It " is impossible to fix because the only way to know if you are inside a " triple quoted string is to start from the beginning of the file. If " you have a fast machine you can try uncommenting the "sync minlines" " and commenting out the rest. syn sync match sSync grouphere NONE "):$" syn sync maxlines=100 "syn sync minlines=2000 if !exists("did_s_syntax_inits") let did_s_syntax_inits = 1 " The default methods for highlighting. Can be overridden later hi link sStatement Statement hi link sFunction Function hi link sConditional Conditional hi link sRepeat Repeat hi link sString String hi link sRawString String hi link sEscape Special hi link sOperator Operator hi link sPreCondit PreCondit hi link sComment Comment hi link sTodo Todo if exists("s_highlight_numbers") hi link sNumber Number endif if exists("s_highlight_builtins") hi link sBuiltin Function endif if exists("s_highlight_exceptions") hi link sException Exception endif if exists("s_highlight_stratus") hi link stratusSpecial Statement hi link stratusClass Include hi link stratusFunction Special hi link stratusMethod Function hi link stratusMap Identifier hi link stratusNumber Number endif endif let b:current_syntax = "stratus"