2009-05-19 19:54:56 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								<%
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								USING: kernel io prettyprint vocabs sequences multiline ;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								IN: factor.vim.fgen
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								: print-keywords ( vocab -- )
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    words [
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        "syn keyword factorKeyword " write
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        [ bl ] [ pprint ] interleave nl
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    ] when* ;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								%>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								" Vim syntax file
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								" Language: factor
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								" Maintainer: Alex Chapman <chapman.alex@gmail.com>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								" Last Change: 2009 May 19
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								" To run: USE: html.templates.fhtml "resource:misc/factor.vim.fgen" <fhtml> call-template
							 
						 
					
						
							
								
									
										
										
										
											2007-09-20 18:09:08 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								" For version 5.x: Clear all syntax items
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								" For version 6.x: Quit when a syntax file was already loaded
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								if version < 600
							 
						 
					
						
							
								
									
										
										
										
											2009-05-19 19:54:56 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    syntax clear
							 
						 
					
						
							
								
									
										
										
										
											2007-09-20 18:09:08 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								elseif exists("b:current_syntax")
							 
						 
					
						
							
								
									
										
										
										
											2009-05-19 19:54:56 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    finish
							 
						 
					
						
							
								
									
										
										
										
											2007-09-20 18:09:08 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								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
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-03-13 00:20:05 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								syn cluster factorCluster contains=factorComment,factorKeyword,factorRepeat,factorConditional,factorBoolean,factorCompileDirective,factorString,factorSbuf,@factorNumber,@factorNumErr,factorDelimiter,factorChar,factorCharErr,factorBackslash,@factorWordOps,factorAlien,factorTuple
							 
						 
					
						
							
								
									
										
										
										
											2007-09-20 18:09:08 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								syn match factorTodo /\(TODO\|FIXME\|XXX\):\=/ contained
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								syn match factorComment /\<#! .*/ contains=factorTodo
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								syn match factorComment /\<! .*/ contains=factorTodo
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-03-13 00:20:05 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								syn cluster factorDefnContents contains=@factorCluster,factorStackEffect,factorArray0,factorQuotation0
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								syn region factorDefn matchgroup=factorDefnDelims start=/\<\(MACRO\|MEMO\|:\)\?:\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:\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=/\<\(MACRO\|MEMO\|:\)\?:\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:\s\+\S\+\>/ end=/$/ contains=factorStackEffect contained
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								syn region factorPGenericN matchgroup=factorPGenericNDelims start=/\<GENERIC#\s\+\S\+\s\+\d\+\>/ end=/$/ contains=factorStackEffect
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								syn region None matchgroup=factorPrivate start=/\<<PRIVATE\>/ end=/\<PRIVATE>\>/ contains=@factorDefnContents,factorPrivateDefn,factorPrivateMethod,factorPGeneric,factorPGenericN
							 
						 
					
						
							
								
									
										
										
										
											2007-09-20 18:09:08 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								syn keyword factorBoolean boolean f general-t t
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								syn keyword factorCompileDirective inline foldable parsing
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								<%
							 
						 
					
						
							
								
									
										
										
										
											2009-05-19 19:54:56 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2007-09-20 18:09:08 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								! 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)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-05-19 19:54:56 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								! vocabs [ print-keywords ] each
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        "kernel" "assocs" "combinators" "math" "sequences"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        "namespaces" "arrays" "io" "strings" "vectors"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        "continuations"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    } [ print-keywords ] each
							 
						 
					
						
							
								
									
										
										
										
											2008-03-13 00:20:05 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								%>
							 
						 
					
						
							
								
									
										
										
										
											2007-09-20 18:09:08 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-05-19 19:54:56 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								syn cluster factorReal          contains=factorInt,factorFloat,factorRatio,factorBinary,factorHex,factorOctal
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								syn cluster factorNumber        contains=@factorReal,factorComplex
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								syn cluster factorNumErr        contains=factorBinErr,factorHexErr,factorOctErr
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								syn match   factorInt           /\<-\=\d\+\>/
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								syn match   factorFloat         /\<-\=\d*\.\d\+\>/
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								syn match   factorRatio         /\<-\=\d*\.*\d\+\/-\=\d*\.*\d\+\>/
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								syn region  factorComplex       start=/\<C{\>/ end=/\<}\>/ contains=@factorReal
							 
						 
					
						
							
								
									
										
										
										
											2007-09-20 18:09:08 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								syn match   factorBinErr        /\<BIN:\s\+[01]*[^\s01]\S*\>/
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								syn match   factorBinary        /\<BIN:\s\+[01]\+\>/
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								syn match   factorHexErr        /\<HEX:\s\+\x*[^\x\s]\S*\>/
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								syn match   factorHex           /\<HEX:\s\+\x\+\>/
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								syn match   factorOctErr        /\<OCT:\s\+\o*[^\o\s]\S*\>/
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								syn match   factorOctal         /\<OCT:\s\+\o\+\>/
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-05-19 19:54:56 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								syn match   factorIn            /\<IN:\s\+\S\+\>/
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								syn match   factorUse           /\<USE:\s\+\S\+\>/
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								syn match   factorUnuse         /\<UNUSE:\s\+\S\+\>/
							 
						 
					
						
							
								
									
										
										
										
											2007-09-20 18:09:08 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-05-19 19:54:56 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								syn match   factorCharErr       /\<CHAR:\s\+\S\+/
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								syn match   factorChar          /\<CHAR:\s\+\\\=\S\>/
							 
						 
					
						
							
								
									
										
										
										
											2007-09-20 18:09:08 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-05-19 19:54:56 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								syn match   factorBackslash     /\<\\\>\s\+\S\+\>/
							 
						 
					
						
							
								
									
										
										
										
											2007-09-20 18:09:08 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-05-19 19:54:56 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								syn region  factorUsing         start=/\<USING:\>/       end=/;/
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								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  factorTuple         start=/\<TUPLE:\>/ end=/\<;\>/
							 
						 
					
						
							
								
									
										
										
										
											2007-09-20 18:09:08 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-05-19 19:54:56 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								syn match   factorConstant      /\<CONSTANT:\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\+\>/
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								syn match   factorMain          /\<MAIN:\s\+\S\+\>/
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								syn match   factorConstructor   /\<C:\s\+\S\+\s\+\S\+\>/
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								syn match   factorAlien         /\<ALIEN:\s\+\d\+\>/
							 
						 
					
						
							
								
									
										
										
										
											2007-09-20 18:09:08 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-05-19 19:54:56 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								syn cluster factorWordOps       contains=factorSymbol,factorPostpone,factorDefer,factorForget,factorMixin,factorInstance,factorHook,factorMain,factorConstructor
							 
						 
					
						
							
								
									
										
										
										
											2007-09-20 18:09:08 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								"TODO:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								"misc:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								" HELP:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								" ARTICLE:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								"literals:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								" PRIMITIVE:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								"C interface:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								" FIELD:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								" BEGIN-STRUCT:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								" C-ENUM:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								" FUNCTION:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								" END-STRUCT
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								" DLL"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								" TYPEDEF:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								" LIBRARY:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								" C-UNION:
							 
						 
					
						
							
								
									
										
										
										
											2009-05-19 19:54:56 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								"QUALIFIED:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								"QUALIFIED-WITH:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								"FROM:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								"ALIAS:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								"! POSTPONE: "
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								"#\ "
							 
						 
					
						
							
								
									
										
										
										
											2007-09-20 18:09:08 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								syn region factorString start=/"/ skip=/\\"/ end=/"/ oneline
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								syn region factorSbuf start=/SBUF" / skip=/\\"/ end=/"/ oneline
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-03-13 00:20:05 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								syn region factorMultiString matchgroup=factorMultiStringDelims start=/\<STRING:\s\+\S\+\>/ end=/^;$/ contains=factorMultiStringContents
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								syn match factorMultiStringContents /.*/ contained
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								"syn match factorStackEffectErr /\<)\>/
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								"syn region factorStackEffectErr start=/\<(\>/ end=/\<)\>/
							 
						 
					
						
							
								
									
										
										
										
											2007-09-20 18:09:08 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								syn region factorStackEffect start=/\<(\>/ end=/\<)\>/ contained
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								"adapted from lisp.vim
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								if exists("g:factor_norainbow") 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    syn region factorQuotation matchgroup=factorDelimiter start=/\<\[\>/ matchgroup=factorDelimiter end=/\<\]\>/ contains=ALL
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								else
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    syn region factorQuotation0           matchgroup=hlLevel0 start=/\<\[\>/ end=/\<\]\>/ contains=@factorCluster,factorQuotation1,factorArray1
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    syn region factorQuotation1 contained matchgroup=hlLevel1 start=/\<\[\>/ end=/\<\]\>/ contains=@factorCluster,factorQuotation2,factorArray2
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    syn region factorQuotation2 contained matchgroup=hlLevel2 start=/\<\[\>/ end=/\<\]\>/ contains=@factorCluster,factorQuotation3,factorArray3
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    syn region factorQuotation3 contained matchgroup=hlLevel3 start=/\<\[\>/ end=/\<\]\>/ contains=@factorCluster,factorQuotation4,factorArray4
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    syn region factorQuotation4 contained matchgroup=hlLevel4 start=/\<\[\>/ end=/\<\]\>/ contains=@factorCluster,factorQuotation5,factorArray5
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    syn region factorQuotation5 contained matchgroup=hlLevel5 start=/\<\[\>/ end=/\<\]\>/ contains=@factorCluster,factorQuotation6,factorArray6
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    syn region factorQuotation6 contained matchgroup=hlLevel6 start=/\<\[\>/ end=/\<\]\>/ contains=@factorCluster,factorQuotation7,factorArray7
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    syn region factorQuotation7 contained matchgroup=hlLevel7 start=/\<\[\>/ end=/\<\]\>/ contains=@factorCluster,factorQuotation8,factorArray8
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    syn region factorQuotation8 contained matchgroup=hlLevel8 start=/\<\[\>/ end=/\<\]\>/ contains=@factorCluster,factorQuotation9,factorArray9
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    syn region factorQuotation9 contained matchgroup=hlLevel9 start=/\<\[\>/ end=/\<\]\>/ contains=@factorCluster,factorQuotation0,factorArray0
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								endif
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								if exists("g:factor_norainbow") 
							 
						 
					
						
							
								
									
										
										
										
											2008-03-13 00:20:05 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    syn region factorArray    matchgroup=factorDelimiter start=/\<\(V\|H\|T\|W\|F\|B\)\?{\>/  matchgroup=factorDelimiter end=/\<}\>/ contains=ALL
							 
						 
					
						
							
								
									
										
										
										
											2007-09-20 18:09:08 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								else
							 
						 
					
						
							
								
									
										
										
										
											2008-03-13 00:20:05 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    syn region factorArray0           matchgroup=hlLevel0 start=/\<\(V\|H\|T\|W\|F\|B\)\?{\>/ end=/\<}\>/ contains=@factorCluster,factorArray1,factorQuotation1
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    syn region factorArray1 contained matchgroup=hlLevel1 start=/\<\(V\|H\|T\|W\|F\|B\)\?{\>/ end=/\<}\>/ contains=@factorCluster,factorArray2,factorQuotation2
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    syn region factorArray2 contained matchgroup=hlLevel2 start=/\<\(V\|H\|T\|W\|F\|B\)\?{\>/ end=/\<}\>/ contains=@factorCluster,factorArray3,factorQuotation3
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    syn region factorArray3 contained matchgroup=hlLevel3 start=/\<\(V\|H\|T\|W\|F\|B\)\?{\>/ end=/\<}\>/ contains=@factorCluster,factorArray4,factorQuotation4
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    syn region factorArray4 contained matchgroup=hlLevel4 start=/\<\(V\|H\|T\|W\|F\|B\)\?{\>/ end=/\<}\>/ contains=@factorCluster,factorArray5,factorQuotation5
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    syn region factorArray5 contained matchgroup=hlLevel5 start=/\<\(V\|H\|T\|W\|F\|B\)\?{\>/ end=/\<}\>/ contains=@factorCluster,factorArray6,factorQuotation6
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    syn region factorArray6 contained matchgroup=hlLevel6 start=/\<\(V\|H\|T\|W\|F\|B\)\?{\>/ end=/\<}\>/ contains=@factorCluster,factorArray7,factorQuotation7
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    syn region factorArray7 contained matchgroup=hlLevel7 start=/\<\(V\|H\|T\|W\|F\|B\)\?{\>/ end=/\<}\>/ contains=@factorCluster,factorArray8,factorQuotation8
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    syn region factorArray8 contained matchgroup=hlLevel8 start=/\<\(V\|H\|T\|W\|F\|B\)\?{\>/ end=/\<}\>/ contains=@factorCluster,factorArray9,factorQuotation9
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    syn region factorArray9 contained matchgroup=hlLevel9 start=/\<\(V\|H\|T\|W\|F\|B\)\?{\>/ end=/\<}\>/ contains=@factorCluster,factorArray0,factorQuotation0
							 
						 
					
						
							
								
									
										
										
										
											2007-09-20 18:09:08 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								endif
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								syn match factorBracketErr /\<\]\>/
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								syn match factorBracketErr /\<}\>/
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								syn sync lines=100
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								if version >= 508 || !exists("did_factor_syn_inits")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    if version <= 508
							 
						 
					
						
							
								
									
										
										
										
											2009-05-19 19:54:56 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        let did_factor_syn_inits = 1
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        command -nargs=+ HiLink hi link <args>
							 
						 
					
						
							
								
									
										
										
										
											2007-09-20 18:09:08 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    else
							 
						 
					
						
							
								
									
										
										
										
											2009-05-19 19:54:56 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        command -nargs=+ HiLink hi def link <args>
							 
						 
					
						
							
								
									
										
										
										
											2007-09-20 18:09:08 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    endif
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-05-19 19:54:56 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    HiLink factorComment                Comment
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    HiLink factorStackEffect            Typedef
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    HiLink factorTodo                   Todo
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    HiLink factorInclude                Include
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    HiLink factorRepeat                 Repeat
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    HiLink factorConditional            Conditional
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    HiLink factorKeyword                Keyword
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    HiLink factorOperator               Operator
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    HiLink factorBoolean                Boolean
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    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
							 
						 
					
						
							
								
									
										
										
										
											2008-03-13 00:20:05 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    HiLink factorPGenericNDelims        Special
							 
						 
					
						
							
								
									
										
										
										
											2009-05-19 19:54:56 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    HiLink factorString                 String
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    HiLink factorSbuf                   String
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    HiLink factorMultiStringContents    String
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    HiLink factorMultiStringDelims      Typedef
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    HiLink factorBracketErr             Error
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    HiLink factorComplex                Number
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    HiLink factorRatio                  Number
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    HiLink factorBinary                 Number
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    HiLink factorBinErr                 Error
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    HiLink factorHex                    Number
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    HiLink factorHexErr                 Error
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    HiLink factorOctal                  Number
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    HiLink factorOctErr                 Error
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    HiLink factorFloat                  Float
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    HiLink factorInt                    Number
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    HiLink factorUsing                  Include
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    HiLink factorUse                    Include
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    HiLink factorUnuse                  Include
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    HiLink factorIn                     Define
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    HiLink factorChar                   Character
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    HiLink factorCharErr                Error
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    HiLink factorDelimiter              Delimiter
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    HiLink factorBackslash              Special
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    HiLink factorCompileDirective       Typedef
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    HiLink factorSymbol                 Define
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    HiLink factorConstant               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 factorTuple                  Typedef
							 
						 
					
						
							
								
									
										
										
										
											2007-09-20 18:09:08 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    if &bg == "dark"
							 
						 
					
						
							
								
									
										
										
										
											2009-05-19 19:54:56 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        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
							 
						 
					
						
							
								
									
										
										
										
											2007-09-20 18:09:08 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    else
							 
						 
					
						
							
								
									
										
										
										
											2009-05-19 19:54:56 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        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
							 
						 
					
						
							
								
									
										
										
										
											2007-09-20 18:09:08 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    endif
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    delcommand HiLink
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								endif
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								let b:current_syntax = "factor"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								set sw=4
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								set ts=4
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								set expandtab
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								set autoindent " annoying?
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								" vim: syntax=vim