334 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			Plaintext
		
	
	
			
		
		
	
	
			334 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			Plaintext
		
	
	
<%
 | 
						|
USING: accessors io kernel multiline prettyprint sequences sorting vocabs ;
 | 
						|
IN: factor.vim.fgen
 | 
						|
 | 
						|
: print-keywords ( vocab -- )
 | 
						|
    words [ name>> ] sort-with [
 | 
						|
        "syn keyword factorKeyword " write
 | 
						|
        [ bl ] [ pprint ] interleave nl
 | 
						|
    ] when* ;
 | 
						|
 | 
						|
%>
 | 
						|
" Vim syntax file
 | 
						|
" Language: Factor
 | 
						|
" Maintainer: Alex Chapman <chapman.alex@gmail.com>
 | 
						|
" Last Change: 2012 Jul 11
 | 
						|
" To run: USING: html.templates html.templates.fhtml ; "resource:misc/factor.vim.fgen" <fhtml> call-template
 | 
						|
 | 
						|
" For version 5.x: Clear all syntax items
 | 
						|
" For version 6.x: Quit when a syntax file was already loaded
 | 
						|
if version < 600
 | 
						|
    syntax clear
 | 
						|
elseif exists("b:current_syntax")
 | 
						|
    finish
 | 
						|
endif
 | 
						|
 | 
						|
" Factor is case sensitive.
 | 
						|
syn case match
 | 
						|
 | 
						|
" Make all of these characters part of a word (useful for skipping over words with w, e, and b)
 | 
						|
if version >= 600
 | 
						|
    setlocal iskeyword=!,@,33-35,%,$,38-64,A-Z,91-96,a-z,123-126,128-255
 | 
						|
else
 | 
						|
    set iskeyword=!,@,33-35,%,$,38-64,A-Z,91-96,a-z,123-126,128-255
 | 
						|
endif
 | 
						|
 | 
						|
syn cluster factorCluster contains=factorComment,factorFrySpecifier,factorKeyword,factorRepeat,factorConditional,factorBoolean,factorBreakpoint,factorDeclaration,factorCallQuotation,factorExecute,factorCallNextMethod,factorString,factorTriString,factorSbuf,@factorNumber,@factorNumErr,factorDelimiter,factorChar,factorBackslash,factorMBackslash,factorLiteral,factorLiteralBlock,@factorWordOps,factorAlien,factorSlot,factorTuple,factorError,factorStruct
 | 
						|
 | 
						|
syn match factorTodo /\(TODO\|FIXME\|XXX\):\=/ contained
 | 
						|
syn match factorComment /\<#\?!\>.*/ contains=factorTodo,@Spell
 | 
						|
syn match factorShebang /\%\^#!.*/ display
 | 
						|
syn match factorShebangErr /\%\^#!\S\+/
 | 
						|
 | 
						|
syn cluster factorDefnContents contains=@factorCluster,factorStackEffect,factorLiteralStackEffect,factorArray0,factorQuotation0
 | 
						|
 | 
						|
syn region factorDefn matchgroup=factorDefnDelims start=/\<\(SYNTAX\|\(MACRO\|MEMO\|TYPED\)\?:\?\):\s\+\S\+\>/ end=/\<;\>/ contains=@factorDefnContents
 | 
						|
syn region factorMethod matchgroup=factorMethodDelims start=/\<M::\?\s\+\S\+\s\+\S\+\>/ end=/\<;\>/ contains=@factorDefnContents
 | 
						|
syn region factorGeneric matchgroup=factorGenericDelims start=/\<\(GENERIC\|MATH\):\s\+\S\+\>/ end=/$/ contains=factorStackEffect
 | 
						|
syn region factorGenericN matchgroup=factorGenericNDelims start=/\<GENERIC#\s\+\S\+\s\+\d\+\>/ end=/$/ contains=factorStackEffect
 | 
						|
 | 
						|
syn region factorPrivateDefn matchgroup=factorPrivateDefnDelims start=/\<\(SYNTAX\|\(MACRO\|MEMO\|TYPED\)\?:\?\):\s\+\S\+\>/ end=/\<;\>/ contains=@factorDefnContents contained
 | 
						|
syn region factorPrivateMethod matchgroup=factorPrivateMethodDelims start=/\<M::\?\s\+\S\+\s\+\S\+\>/ end=/\<;\>/ contains=@factorDefnContents contained
 | 
						|
syn region factorPGeneric matchgroup=factorPGenericDelims start=/\<\(GENERIC\|MATH\):\s\+\S\+\>/ end=/$/ contains=factorStackEffect contained
 | 
						|
syn region factorPGenericN matchgroup=factorPGenericNDelims start=/\<GENERIC#\s\+\S\+\s\+\d\+\>/ end=/$/ contains=factorStackEffect contained
 | 
						|
 | 
						|
syn region None matchgroup=factorPrivate start=/\<<PRIVATE\>/ end=/\<PRIVATE>\>/ contains=@factorDefnContents,factorPrivateDefn,factorPrivateMethod,factorPGeneric,factorPGenericN
 | 
						|
 | 
						|
 | 
						|
syn keyword factorBoolean f t
 | 
						|
syn keyword factorBreakpoint B
 | 
						|
syn keyword factorFrySpecifier @ _ contained
 | 
						|
syn keyword factorDeclaration delimiter deprecated final flushable foldable inline recursive
 | 
						|
syn match factorCallQuotation /\<call(\s\+\(\S*\s\+\)*--\(\s\+\S*\)*\s\+)\>/ contained contains=factorStackEffect
 | 
						|
syn match factorExecute /\<execute(\s\+\(\S*\s\+\)*--\(\s\+\S*\)*\s\+)\>/ contained contains=factorStackEffect
 | 
						|
syn keyword factorCallNextMethod call-next-method
 | 
						|
 | 
						|
<%
 | 
						|
 | 
						|
! uncomment this if you want all words from all vocabularies highlighted. Note
 | 
						|
! that this changes factor.vim from around 8k to around 100k (and is a bit
 | 
						|
! broken)
 | 
						|
 | 
						|
! vocabs [ print-keywords ] each
 | 
						|
 | 
						|
    {
 | 
						|
        "kernel" "assocs" "combinators" "math" "sequences"
 | 
						|
        "namespaces" "arrays" "io" "strings" "vectors"
 | 
						|
        "continuations"
 | 
						|
    } [ print-keywords ] each
 | 
						|
%>
 | 
						|
 | 
						|
syn cluster factorReal          contains=factorInt,factorFloat,factorPosRatio,factorNegRatio,factorBinary,factorHex,factorOctal
 | 
						|
syn cluster factorNumber        contains=@factorReal,factorComplex
 | 
						|
syn cluster factorNumErr        contains=factorBinErr,factorHexErr,factorOctErr
 | 
						|
syn match   factorInt           /\<[+-]\=[0-9]\([0-9,]*[0-9]\)\?\([eE]\([+-]\)\?[0-9]\+\)\?\>/
 | 
						|
syn match   factorFloat         /\<[+-]\=\([0-9,]*[0-9]\)\?\(\.\(\([0-9,]*[0-9]\+\)\?\([eE]\([+-]\)\?[0-9]\+\)\?\)\?\)\?\>/
 | 
						|
syn match   factorPosRatio      /\<+\=[0-9]\([0-9,]*[0-9]\)\?\(+[0-9]\([0-9,]*[0-9]\+\)\?\)\?\/-\=[0-9]\([0-9,]*[0-9]\+\)\?\.\?\>/
 | 
						|
syn match   factorNegRatio      /\<\-[0-9]\([0-9,]*[0-9]\)\?\(\-[0-9]\([0-9,]*[0-9]\+\)\?\)\?\/-\=[0-9]\([0-9,]*[0-9]\+\)\?\.\?\>/
 | 
						|
syn region  factorComplex       start=/\<C{\>/ end=/\<}\>/ contains=@factorReal
 | 
						|
syn match   factorBinErr        /\<[+-]\=0b[01,]*[^01 ]\S*\>/
 | 
						|
syn match   factorBinary        /\<[+-]\=0b[01,]\+\>/
 | 
						|
syn match   factorHexErr        /\<[+-]\=0x\(,\S*\|\S*,\|[-0-9a-fA-Fp,]*[^-0-9a-fA-Fp, ]\S*\)\>/
 | 
						|
syn match   factorHex           /\<[+-]\=0x[0-9a-fA-F]\([0-9a-fA-F,]*[0-9a-fA-F]\)\?\(\.[0-9a-fA-F]\([0-9a-fA-F,]*[0-9a-fA-F]\)\?\)\?\(p-\=[0-9]\([0-9,]*[0-9]\)\?\)\?\>/
 | 
						|
syn match   factorOctErr        /\<[+-]\=0o\(,\S*\|\S*,\|[0-7,]*[^0-7, ]\S*\)\>/
 | 
						|
syn match   factorOctal         /\<[+-]\=0o[0-7,]\+\>/
 | 
						|
syn match   factorNan           /\<NAN:\s\+[0-9a-fA-F]\([0-9a-fA-F,]*[0-9a-fA-F]\)\?\>/
 | 
						|
 | 
						|
syn match   factorIn            /\<IN:\s\+\S\+\>/
 | 
						|
syn match   factorUse           /\<USE:\s\+\S\+\>/
 | 
						|
syn match   factorUnuse         /\<UNUSE:\s\+\S\+\>/
 | 
						|
 | 
						|
syn match   factorChar          /\<CHAR:\s\+\S\+\>/
 | 
						|
 | 
						|
syn match   factorBackslash     /\<\\\>\s\+\S\+\>/
 | 
						|
syn match   factorMBackslash    /\<M\\\>\s\+\S\+\s\+\S\+\>/
 | 
						|
syn match   factorLiteral       /\<\$\>\s\+\S\+\>/
 | 
						|
syn region  factorLiteralBlock  start=/\<\$\[\>/ end=/\<\]\>/
 | 
						|
 | 
						|
syn region  factorUsing         start=/\<USING:\>/       end=/;/
 | 
						|
syn match   factorQualified     /\<QUALIFIED:\s\+\S\+\>/
 | 
						|
syn match   factorQualifiedWith /\<QUALIFIED-WITH:\s\+\S\+\s\+\S\+\>/
 | 
						|
syn region  factorExclude       start=/\<EXCLUDE:\>/     end=/;/
 | 
						|
syn region  factorFrom          start=/\<FROM:\>/        end=/;/
 | 
						|
syn match   factorRename        /\<RENAME:\s\+\S\+\s\+\S\+\s=>\s\+\S\+\>/
 | 
						|
syn region  factorSingletons    start=/\<SINGLETONS:\>/  end=/;/
 | 
						|
syn match   factorSymbol        /\<SYMBOL:\s\+\S\+\>/
 | 
						|
syn region  factorSymbols       start=/\<SYMBOLS:\>/     end=/;/
 | 
						|
syn region  factorConstructor2  start=/\<CONSTRUCTOR:\?/ end=/;/
 | 
						|
syn region  factorIntersection  start=/\<INTERSECTION:\>/ end=/\<;\>/
 | 
						|
syn region  factorTuple         start=/\<\(TUPLE\|BUILTIN\):\>/ end=/\<;\>/
 | 
						|
syn region  factorError         start=/\<ERROR:\>/ end=/\<;\>/
 | 
						|
syn region  factorUnion         start=/\<UNION:\>/ end=/\<;\>/
 | 
						|
syn region  factorStruct        start=/\<\(UNION-STRUCT:\|STRUCT:\)\>/ end=/\<;\>/
 | 
						|
 | 
						|
syn match   factorConstant      /\<CONSTANT:\s\+\S\+\>/
 | 
						|
syn match   factorAlias         /\<ALIAS:\s\+\S\+\s\+\S\+\>/
 | 
						|
syn match   factorSingleton     /\<SINGLETON:\s\+\S\+\>/
 | 
						|
syn match   factorPostpone      /\<POSTPONE:\s\+\S\+\>/
 | 
						|
syn match   factorDefer         /\<DEFER:\s\+\S\+\>/
 | 
						|
syn match   factorForget        /\<FORGET:\s\+\S\+\>/
 | 
						|
syn match   factorMixin         /\<MIXIN:\s\+\S\+\>/
 | 
						|
syn match   factorInstance      /\<INSTANCE:\s\+\S\+\s\+\S\+\>/
 | 
						|
syn match   factorHook          /\<HOOK:\s\+\S\+\s\+\S\+\>/ nextgroup=factorStackEffect skipwhite skipempty
 | 
						|
syn match   factorMain          /\<MAIN:\s\+\S\+\>/
 | 
						|
syn match   factorConstructor   /\<C:\s\+\S\+\s\+\S\+\>/
 | 
						|
syn match   factorAlien         /\<ALIEN:\s\+[0-9a-fA-F]\([0-9a-fA-F,]*[0-9a-fA-F]\)\?\>/
 | 
						|
syn match   factorSlot          /\<SLOT:\s\+\S\+\>/
 | 
						|
 | 
						|
syn cluster factorWordOps       contains=factorConstant,factorAlias,factorSingleton,factorSingletons,factorSymbol,factorSymbols,factorPostpone,factorDefer,factorForget,factorMixin,factorInstance,factorHook,factorMain,factorConstructor
 | 
						|
 | 
						|
"TODO:
 | 
						|
"misc:
 | 
						|
" HELP:
 | 
						|
" ARTICLE:
 | 
						|
"literals:
 | 
						|
" PRIMITIVE:
 | 
						|
 | 
						|
"C interface:
 | 
						|
" C-ENUM:
 | 
						|
" FUNCTION:
 | 
						|
" TYPEDEF:
 | 
						|
" LIBRARY:
 | 
						|
"#\ "
 | 
						|
 | 
						|
syn match factorEscape /\\\([\\astnrbvf0e\"]\|u\x\{6}\|u{\S\+}\|x\x\{2}\)/ contained display
 | 
						|
syn region factorString start=/\<"/ skip=/\\"/ end=/"/ contains=factorEscape
 | 
						|
syn region factorTriString start=/\<"""/ skip=/\\"/ end=/"""/ contains=factorEscape
 | 
						|
syn region factorSbuf start=/\<[-a-zA-Z0-9]\+"\>/ skip=/\\"/ end=/"/
 | 
						|
 | 
						|
syn region factorMultiString matchgroup=factorMultiStringDelims start=/\<STRING:\s\+\S\+\>/ end=/^;$/ contains=factorMultiStringContents
 | 
						|
syn match factorMultiStringContents /.*/ contained
 | 
						|
 | 
						|
"syn match factorStackEffectErr /\<)\>/
 | 
						|
"syn region factorStackEffectErr start=/\<(\>/ end=/\<)\>/
 | 
						|
"syn region factorStackEffect start=/\<(\>/ end=/\<)\>/ contained
 | 
						|
syn match factorStackEffect /(\s\+\(\S*\s\+\)*--\(\s\+\S*\)*\s\+)\>/ contained contains=factorStackDelims,factorStackItems,factorStackVariables,factorCallExecuteDelim
 | 
						|
syn match factorLiteralStackEffect /((\s\+\(\S*\s\+\)*--\(\s\+\S*\)*\s\+))\>/ contained contains=factorStackDelims,factorStackItems,factorStackVariables,factorCallExecuteDelim
 | 
						|
syn match factorStackVariables contained "\<\.\.\S\+\>"
 | 
						|
syn match factorStackItems contained "\<\(\.\.\)\@!\S\+\>"
 | 
						|
syn keyword factorStackDelims contained ( ) (( )) --
 | 
						|
syn match factorCallExecuteDelim contained /(\s/
 | 
						|
 | 
						|
"adapted from lisp.vim
 | 
						|
if exists("g:factor_norainbow")
 | 
						|
    syn region factorQuotation matchgroup=factorDelimiter start=/\<\(\(\('\|\$\|\)\[\)\|\[\(let\||\)\)\>/ matchgroup=factorDelimiter end=/\<\]\>/ contains=ALL
 | 
						|
else
 | 
						|
    syn region factorQuotation0           matchgroup=hlLevel0 start=/\<\(\(\('\|\$\|\)\[\)\|\[\(let\||\)\)\>/  end=/\<\]\>/ contains=@factorCluster,factorQuotation1,factorArray1
 | 
						|
    syn region factorQuotation1 contained matchgroup=hlLevel1 start=/\<\(\(\('\|\$\|\)\[\)\|\[\(let\||\)\)\>/  end=/\<\]\>/ contains=@factorCluster,factorQuotation2,factorArray2
 | 
						|
    syn region factorQuotation2 contained matchgroup=hlLevel2 start=/\<\(\(\('\|\$\|\)\[\)\|\[\(let\||\)\)\>/  end=/\<\]\>/ contains=@factorCluster,factorQuotation3,factorArray3
 | 
						|
    syn region factorQuotation3 contained matchgroup=hlLevel3 start=/\<\(\(\('\|\$\|\)\[\)\|\[\(let\||\)\)\>/  end=/\<\]\>/ contains=@factorCluster,factorQuotation4,factorArray4
 | 
						|
    syn region factorQuotation4 contained matchgroup=hlLevel4 start=/\<\(\(\('\|\$\|\)\[\)\|\[\(let\||\)\)\>/  end=/\<\]\>/ contains=@factorCluster,factorQuotation5,factorArray5
 | 
						|
    syn region factorQuotation5 contained matchgroup=hlLevel5 start=/\<\(\(\('\|\$\|\)\[\)\|\[\(let\||\)\)\>/  end=/\<\]\>/ contains=@factorCluster,factorQuotation6,factorArray6
 | 
						|
    syn region factorQuotation6 contained matchgroup=hlLevel6 start=/\<\(\(\('\|\$\|\)\[\)\|\[\(let\||\)\)\>/  end=/\<\]\>/ contains=@factorCluster,factorQuotation7,factorArray7
 | 
						|
    syn region factorQuotation7 contained matchgroup=hlLevel7 start=/\<\(\(\('\|\$\|\)\[\)\|\[\(let\||\)\)\>/  end=/\<\]\>/ contains=@factorCluster,factorQuotation8,factorArray8
 | 
						|
    syn region factorQuotation8 contained matchgroup=hlLevel8 start=/\<\(\(\('\|\$\|\)\[\)\|\[\(let\||\)\)\>/  end=/\<\]\>/ contains=@factorCluster,factorQuotation9,factorArray9
 | 
						|
    syn region factorQuotation9 contained matchgroup=hlLevel9 start=/\<\(\(\('\|\$\|\)\[\)\|\[\(let\||\)\)\>/  end=/\<\]\>/ contains=@factorCluster,factorQuotation0,factorArray0
 | 
						|
endif
 | 
						|
 | 
						|
if exists("g:factor_norainbow")
 | 
						|
    syn region factorArray    matchgroup=factorDelimiter start=/\<\(\$\|[-a-zA-Z0-9]\+\)\?{\>/  matchgroup=factorDelimiter end=/\<}\>/ contains=ALL
 | 
						|
else
 | 
						|
    syn region factorArray0           matchgroup=hlLevel0 start=/\<\(\$\|[-a-zA-Z0-9]\+\)\?{\>/ end=/\<}\>/ contains=@factorCluster,factorArray1,factorQuotation1
 | 
						|
    syn region factorArray1 contained matchgroup=hlLevel1 start=/\<\(\$\|[-a-zA-Z0-9]\+\)\?{\>/ end=/\<}\>/ contains=@factorCluster,factorArray2,factorQuotation2
 | 
						|
    syn region factorArray2 contained matchgroup=hlLevel2 start=/\<\(\$\|[-a-zA-Z0-9]\+\)\?{\>/ end=/\<}\>/ contains=@factorCluster,factorArray3,factorQuotation3
 | 
						|
    syn region factorArray3 contained matchgroup=hlLevel3 start=/\<\(\$\|[-a-zA-Z0-9]\+\)\?{\>/ end=/\<}\>/ contains=@factorCluster,factorArray4,factorQuotation4
 | 
						|
    syn region factorArray4 contained matchgroup=hlLevel4 start=/\<\(\$\|[-a-zA-Z0-9]\+\)\?{\>/ end=/\<}\>/ contains=@factorCluster,factorArray5,factorQuotation5
 | 
						|
    syn region factorArray5 contained matchgroup=hlLevel5 start=/\<\(\$\|[-a-zA-Z0-9]\+\)\?{\>/ end=/\<}\>/ contains=@factorCluster,factorArray6,factorQuotation6
 | 
						|
    syn region factorArray6 contained matchgroup=hlLevel6 start=/\<\(\$\|[-a-zA-Z0-9]\+\)\?{\>/ end=/\<}\>/ contains=@factorCluster,factorArray7,factorQuotation7
 | 
						|
    syn region factorArray7 contained matchgroup=hlLevel7 start=/\<\(\$\|[-a-zA-Z0-9]\+\)\?{\>/ end=/\<}\>/ contains=@factorCluster,factorArray8,factorQuotation8
 | 
						|
    syn region factorArray8 contained matchgroup=hlLevel8 start=/\<\(\$\|[-a-zA-Z0-9]\+\)\?{\>/ end=/\<}\>/ contains=@factorCluster,factorArray9,factorQuotation9
 | 
						|
    syn region factorArray9 contained matchgroup=hlLevel9 start=/\<\(\$\|[-a-zA-Z0-9]\+\)\?{\>/ end=/\<}\>/ contains=@factorCluster,factorArray0,factorQuotation0
 | 
						|
endif
 | 
						|
 | 
						|
syn match factorBracketErr /\<\]\>/
 | 
						|
syn match factorBracketErr /\<}\>/
 | 
						|
 | 
						|
syn sync lines=100
 | 
						|
 | 
						|
if version >= 508 || !exists("did_factor_syn_inits")
 | 
						|
    if version <= 508
 | 
						|
        let did_factor_syn_inits = 1
 | 
						|
        command -nargs=+ HiLink hi link <args>
 | 
						|
    else
 | 
						|
        command -nargs=+ HiLink hi def link <args>
 | 
						|
    endif
 | 
						|
 | 
						|
    HiLink factorComment                Comment
 | 
						|
    HiLink factorShebang                PreProc
 | 
						|
    HiLink factorShebangErr             Error
 | 
						|
    HiLink factorStackEffect            Typedef
 | 
						|
    HiLink factorStackDelims            Delimiter
 | 
						|
    HiLink factorCallExecuteDelim       Delimiter
 | 
						|
    HiLink factorStackVariables         Special
 | 
						|
    HiLink factorStackItems             Identifier
 | 
						|
    HiLink factorLiteralStackEffect     Typedef
 | 
						|
    HiLink factorTodo                   Todo
 | 
						|
    HiLink factorInclude                Include
 | 
						|
    HiLink factorRepeat                 Repeat
 | 
						|
    HiLink factorConditional            Conditional
 | 
						|
    HiLink factorKeyword                Keyword
 | 
						|
    HiLink factorCallQuotation          Keyword
 | 
						|
    HiLink factorExecute                Keyword
 | 
						|
    HiLink factorCallNextMethod         Keyword
 | 
						|
    HiLink factorOperator               Operator
 | 
						|
    HiLink factorFrySpecifier           Operator
 | 
						|
    HiLink factorBoolean                Boolean
 | 
						|
    HiLink factorBreakpoint             Debug
 | 
						|
    HiLink factorDefnDelims             Typedef
 | 
						|
    HiLink factorMethodDelims           Typedef
 | 
						|
    HiLink factorGenericDelims          Typedef
 | 
						|
    HiLink factorGenericNDelims         Typedef
 | 
						|
    HiLink factorConstructor            Typedef
 | 
						|
    HiLink factorConstructor2           Typedef
 | 
						|
    HiLink factorPrivate                Special
 | 
						|
    HiLink factorPrivateDefnDelims      Special
 | 
						|
    HiLink factorPrivateMethodDelims    Special
 | 
						|
    HiLink factorPGenericDelims         Special
 | 
						|
    HiLink factorPGenericNDelims        Special
 | 
						|
    HiLink factorEscape                 SpecialChar
 | 
						|
    HiLink factorString                 String
 | 
						|
    HiLink factorTriString              String
 | 
						|
    HiLink factorSbuf                   String
 | 
						|
    HiLink factorMultiStringContents    String
 | 
						|
    HiLink factorMultiStringDelims      Typedef
 | 
						|
    HiLink factorBracketErr             Error
 | 
						|
    HiLink factorComplex                Number
 | 
						|
    HiLink factorPosRatio               Number
 | 
						|
    HiLink factorNegRatio               Number
 | 
						|
    HiLink factorBinary                 Number
 | 
						|
    HiLink factorBinErr                 Error
 | 
						|
    HiLink factorHex                    Number
 | 
						|
    HiLink factorHexErr                 Error
 | 
						|
    HiLink factorNan                    Number
 | 
						|
    HiLink factorOctal                  Number
 | 
						|
    HiLink factorOctErr                 Error
 | 
						|
    HiLink factorFloat                  Float
 | 
						|
    HiLink factorInt                    Number
 | 
						|
    HiLink factorUsing                  Include
 | 
						|
    HiLink factorQualified              Include
 | 
						|
    HiLink factorQualifiedWith          Include
 | 
						|
    HiLink factorExclude                Include
 | 
						|
    HiLink factorFrom                   Include
 | 
						|
    HiLink factorRename                 Include
 | 
						|
    HiLink factorUse                    Include
 | 
						|
    HiLink factorUnuse                  Include
 | 
						|
    HiLink factorIn                     Define
 | 
						|
    HiLink factorChar                   Character
 | 
						|
    HiLink factorDelimiter              Delimiter
 | 
						|
    HiLink factorBackslash              Special
 | 
						|
    HiLink factorMBackslash             Special
 | 
						|
    HiLink factorLiteral                Special
 | 
						|
    HiLink factorLiteralBlock           Special
 | 
						|
    HiLink factorDeclaration            Typedef
 | 
						|
    HiLink factorSymbol                 Define
 | 
						|
    HiLink factorSymbols                Define
 | 
						|
    HiLink factorConstant               Define
 | 
						|
    HiLink factorAlias                  Define
 | 
						|
    HiLink factorSingleton              Define
 | 
						|
    HiLink factorSingletons             Define
 | 
						|
    HiLink factorMixin                  Typedef
 | 
						|
    HiLink factorInstance               Typedef
 | 
						|
    HiLink factorHook                   Typedef
 | 
						|
    HiLink factorMain                   Define
 | 
						|
    HiLink factorPostpone               Define
 | 
						|
    HiLink factorDefer                  Define
 | 
						|
    HiLink factorForget                 Define
 | 
						|
    HiLink factorAlien                  Define
 | 
						|
    HiLink factorSlot                   Define
 | 
						|
    HiLink factorIntersection           Typedef
 | 
						|
    HiLink factorTuple                  Typedef
 | 
						|
    HiLink factorError                  Typedef
 | 
						|
    HiLink factorUnion                  Typedef
 | 
						|
    HiLink factorStruct                 Typedef
 | 
						|
 | 
						|
    if &bg == "dark"
 | 
						|
        hi   hlLevel0 ctermfg=red         guifg=red1
 | 
						|
        hi   hlLevel1 ctermfg=yellow      guifg=orange1
 | 
						|
        hi   hlLevel2 ctermfg=green       guifg=yellow1
 | 
						|
        hi   hlLevel3 ctermfg=cyan        guifg=greenyellow
 | 
						|
        hi   hlLevel4 ctermfg=magenta     guifg=green1
 | 
						|
        hi   hlLevel5 ctermfg=red         guifg=springgreen1
 | 
						|
        hi   hlLevel6 ctermfg=yellow      guifg=cyan1
 | 
						|
        hi   hlLevel7 ctermfg=green       guifg=slateblue1
 | 
						|
        hi   hlLevel8 ctermfg=cyan        guifg=magenta1
 | 
						|
        hi   hlLevel9 ctermfg=magenta     guifg=purple1
 | 
						|
    else
 | 
						|
        hi   hlLevel0 ctermfg=red         guifg=red3
 | 
						|
        hi   hlLevel1 ctermfg=darkyellow  guifg=orangered3
 | 
						|
        hi   hlLevel2 ctermfg=darkgreen   guifg=orange2
 | 
						|
        hi   hlLevel3 ctermfg=blue        guifg=yellow3
 | 
						|
        hi   hlLevel4 ctermfg=darkmagenta guifg=olivedrab4
 | 
						|
        hi   hlLevel5 ctermfg=red         guifg=green4
 | 
						|
        hi   hlLevel6 ctermfg=darkyellow  guifg=paleturquoise3
 | 
						|
        hi   hlLevel7 ctermfg=darkgreen   guifg=deepskyblue4
 | 
						|
        hi   hlLevel8 ctermfg=blue        guifg=darkslateblue
 | 
						|
        hi   hlLevel9 ctermfg=darkmagenta guifg=darkviolet
 | 
						|
    endif
 | 
						|
 | 
						|
    delcommand HiLink
 | 
						|
endif
 | 
						|
 | 
						|
let b:current_syntax = "factor"
 | 
						|
 | 
						|
" vim:set ft=vim sw=4:
 |