<?xml version="1.0"?>
<!-- syntaxdefinition for Perl by fish -->
<SyntaxDefinition name="Perl" extensions=".pl">

	<Environment>
	</Environment>

	<Properties>
		<Property name="LineComment" value="#"/>
	</Properties>

	<Digits name="Digits" bold="false" italic="false" color="DarkBlue" />

	<RuleSets>
		<RuleSet ignorecase="false" >
			<Delimiters>&amp;&lt;&gt;~!@%^*()-+=|\#/{}[]:;"' ,	?</Delimiters>

			<Span name="LineComment" rule="CommentMarkerSet" stopateol="true" bold="false" italic="false" color="Gray" >
				<Begin >#</Begin>
			</Span>

			<Span name="String" stopateol="true" bold="false" italic="false" color="Fuchsia" >
				<Begin >"</Begin>
				<End >"</End>
			</Span>

			<MarkPrevious bold="true" italic="false" color="MidnightBlue" >(</MarkPrevious>

			<KeyWords name="Punctuation" bold="false" italic="false" color="DarkGreen" >
				<Key word="?"/>
				<Key word=","/>
				<Key word=":"/>
				<Key word=";"/>
				<Key word="("/>
				<Key word=")"/>
				<Key word="["/>
				<Key word="]"/>
				<Key word="{"/>
				<Key word="}"/>
				<Key word="+"/>
				<Key word="-"/>
				<Key word="/"/>
				<Key word="%"/>
				<Key word="*"/>
				<Key word="&lt;"/>
				<Key word="&gt;"/>
				<Key word="^"/>
				<Key word="="/>
				<Key word="~"/>
				<Key word="!"/>
				<Key word="|"/>
				<Key word="&amp;"/>
			</KeyWords>

			<KeyWords name = "Instructions" bold="false" italic="false" color="Blue">
				<Key word="-A"/><Key word="-B"/><Key word="-C"/><Key word="-M"/><Key word="-O"/><Key word="-R"/><Key word="-S"/><Key word="-T"/><Key word="-W"/><Key word="-X"/><Key word="-b"/><Key word="-c"/><Key word="-d"/><Key word="-e"/><Key word="-f"/><Key word="-g"/><Key word="-k"/><Key word="-l"/><Key word="-o"/><Key word="-p"/><Key word="-r"/><Key word="-s"/><Key word="-t"/><Key word="-u"/><Key word="-w"/><Key word="-x"/><Key word="-z"/>
				<Key word="__DATA__"/><Key word="__END__"/><Key word="__FILE__"/><Key word="__LINE__"/>
				<Key word="continue"/>
				<Key word="do"/>
				<Key word="else"/><Key word="elsif"/>
				<Key word="for"/><Key word="foreach"/>
				<Key word="goto"/>
				<Key word="if"/>
				<Key word="last"/><Key word="local"/>
				<Key word="my"/>
				<Key word="next"/><Key word="no"/>
				<Key word="our"/>
				<Key word="package"/>
				<Key word="redo"/><Key word="return"/><Key word="require"/>
				<Key word="sub"/>
				<Key word="until"/><Key word="unless"/><Key word="use"/>
				<Key word="while"/>
			</KeyWords>

			<KeyWords name = "Keywords" bold="false" italic="false" color="Red">
				<Key word="accept"/><Key word="alarm"/><Key word="atan2"/>
				<Key word="bind"/><Key word="binmode"/><Key word="bless"/>
				<Key word="caller"/><Key word="chdir"/><Key word="chmod"/><Key word="chomp"/><Key word="chop"/><Key word="chown"/><Key word="chr"/><Key word="chroot"/><Key word="close"/><Key word="closedir"/><Key word="connect"/><Key word="cos"/><Key word="crypt"/>
				<Key word="dbmclose"/><Key word="dbmopen"/><Key word="defined"/><Key word="delete"/><Key word="die"/><Key word="dump"/>
				<Key word="each"/><Key word="endgrent"/><Key word="endhostent"/><Key word="endnetent"/><Key word="endprotoent"/><Key word="endpwent"/><Key word="endservent"/><Key word="eof"/><Key word="eval"/><Key word="exec"/><Key word="exit"/><Key word="exp"/><Key word="exists"/>
				<Key word="fcntl"/><Key word="fileno"/><Key word="flock"/><Key word="fork"/><Key word="formline"/><Key word="format"/>
				<Key word="getc"/><Key word="getgrent"/><Key word="getgrgid"/><Key word="getgrname"/><Key word="gethostbyaddr"/><Key word="gethostbyname"/><Key word="gethostent"/><Key word="getlogin"/><Key word="getnetbyaddr"/><Key word="getnetbyname"/><Key word="getnetent"/><Key word="getpeername"/><Key word="getpgrp"/><Key word="getppid"/><Key word="getpriority"/><Key word="getprotobyname"/><Key word="getprotobynumber"/><Key word="getprotoent"/><Key word="getpwent"/><Key word="getpwnam"/><Key word="getpwuid"/><Key word="getservbyname"/><Key word="getservbyport"/><Key word="getservent"/><Key word="getsockname"/><Key word="getsockopt"/><Key word="glob"/><Key word="gmtime"/><Key word="grep"/>
				<Key word="hex"/>
				<Key word="index"/><Key word="int"/><Key word="ioctl"/>
				<Key word="join"/>
				<Key word="keys"/><Key word="kill"/>
				<Key word="lc"/><Key word="lcfirst"/><Key word="length"/><Key word="link"/><Key word="listen"/><Key word="localtime"/><Key word="log"/><Key word="lstat"/>
				<Key word="map"/><Key word="mkdir"/><Key word="msgctl"/><Key word="msgget"/><Key word="msgrcv"/><Key word="msgsnd"/>
				<Key word="new"/>
				<Key word="oct"/><Key word="open"/><Key word="opendir"/><Key word="ord"/>
				<Key word="pack"/><Key word="pipe"/><Key word="pop"/><Key word="pos"/><Key word="print"/><Key word="printf"/><Key word="push"/>
				<Key word="quotemeta"/>
				<Key word="rand"/><Key word="read"/><Key word="readdir"/><Key word="readline"/><Key word="readlink"/><Key word="recv"/><Key word="ref"/><Key word="rename"/><Key word="reset"/><Key word="reverse"/><Key word="rewinddir"/><Key word="rindex"/><Key word="rmdir"/>
				<Key word="scalar"/><Key word="seek"/><Key word="seekdir"/><Key word="select"/><Key word="semctl"/><Key word="semgett"/><Key word="semop"/><Key word="send"/><Key word="setgrent"/><Key word="sethostent"/><Key word="setnetent"/><Key word="setpgrp"/><Key word="setpriority"/><Key word="setprotoent"/><Key word="setpwent"/><Key word="setservent"/><Key word="setsockopt"/><Key word="shift"/><Key word="shmctl"/><Key word="shmget"/><Key word="shmread"/><Key word="shmwrite"/><Key word="shutdown"/><Key word="sin"/><Key word="sleep"/><Key word="socket"/><Key word="socketpair"/><Key word="sort"/><Key word="splice"/><Key word="split"/><Key word="sprintf"/><Key word="sqrt"/><Key word="srand"/><Key word="stat"/><Key word="study"/><Key word="substr"/><Key word="symlink"/><Key word="syscall"/><Key word="sysopen"/><Key word="sysread"/><Key word="system"/><Key word="syswrite"/>
				<Key word="tell"/><Key word="telldir"/><Key word="tie"/><Key word="tied"/><Key word="time"/><Key word="times"/><Key word="truncate"/>
				<Key word="uc"/><Key word="ucfirst"/><Key word="umask"/><Key word="undef"/><Key word="unlink"/><Key word="unpack"/><Key word="unshift"/><Key word="utime"/><Key word="untie"/>
				<Key word="values"/><Key word="vec"/>
				<Key word="wait"/><Key word="waitpid"/><Key word="wantarray"/><Key word="warn"/><Key word="write"/>
		</KeyWords>

			<KeyWords name="Assembler directives" bold="true" italic="false" color="Green" >
				<Key word=".byte"/>
				<Key word=".text"/>
				<Key word=".word"/>
				<Key word=".asc"/>
				<Key word=".scrl"/>
				<Key word=".scru"/>
				<Key word=".include"/>
				<Key word=".incbin"/>
				<Key word=".label"/>
				<Key word=".goto"/>
				<Key word=".if"/>
				<Key word=".end"/>
				<Key word=".enrty"/>
				<Key word=".opt"/>
				<Key word=".set"/>
				<Key word=".title"/>
				<Key word="x"/>
				<Key word="y"/>
				<Key word="c"/>
			</KeyWords>

		<KeyWords name = "Sequirty actions" bold="false" italic="false" color="Red">
				<Key word = "request" />
				<Key word = "demand" />
				<Key word = "assert" />
				<Key word = "deny" />
				<Key word = "permitonly" />
				<Key word = "linkcheck" />
				<Key word = "inheritcheck" />
				<Key word = "reqmin" />
				<Key word = "reqopt" />
				<Key word = "reqrefuse" />
				<Key word = "prejitgrant" />
				<Key word = "prejitdeny" />
				<Key word = "noncasdemand" />
				<Key word = "noncaslinkdemand" />
				<Key word = "noncasinheritance" />
		</KeyWords>

		<KeyWords name = "Extern debug data specifier" bold="false" italic="false" color="Green">
				<Key word = ".line" />
				<Key word = ".language" />
				<Key word = "#line" />
		</KeyWords>

		<KeyWords name = "Misc keywords" bold="true" italic="false" color="Green">
				<!-- custom value specifier -->
				<Key word = ".custom" />
				<!-- IL method attribute  -->
				<Key word = "init" />
				<!-- Class layout directives -->
				<Key word = ".size" />
				<Key word = ".pack" />
				<!-- Manifest-related keywords -->
				<Key word = ".file" />
				<Key word = "nometadata" />
				<Key word = ".hash" />
				<Key word = ".assembly" />
				<Key word = "implicitcom" />
				<Key word = "noappdomain" />
				<Key word = "noprocess" />
				<Key word = "nomachine" />
				<Key word = ".publickey" />
				<Key word = ".publickeytoken" />
				<Key word = "algorithm" />
				<Key word = ".ver" />
				<Key word = ".locale" />
				<Key word = "extern" />
				<Key word = ".export" />
				<Key word = ".manifestres" />
				<Key word = ".mresource" />
				<Key word = ".localized" />
				<Key word = ".module" />

				<!-- Field marshaling keywords -->
				<Key word = "marshal" />
				<Key word = "custom" />
				<Key word = "sysstring" />
				<Key word = "fixed" />
				<Key word = "variant" />
				<Key word = "currency" />
				<Key word = "syschar" />
				<Key word = "decimal" />
				<Key word = "date" />
				<Key word = "bstr" />
				<Key word = "tbstr" />
				<Key word = "lpstr" />
				<Key word = "lpwstr" />
				<Key word = "lptstr" />
				<Key word = "objectref" />
				<Key word = "iunknown" />
				<Key word = "idispatch" />
				<Key word = "struct" />
				<Key word = "safearray" />
				<Key word = "byvalstr" />
				<Key word = "lpvoid" />
				<Key word = "any" />
				<Key word = "array" />
				<Key word = "lpstruct" />

				<!-- VTable fixup keywords  -->
				<Key word = ".vtfixup" />
				<Key word = "fromunmanaged" />
				<Key word = "callmostderived" />
				<Key word = ".vtentry" />

				<!-- Parameter attributes  -->
				<Key word = "in" />
				<Key word = "out" />
				<Key word = "opt" />
				<Key word = "lcid" />
				<Key word = "retval" />
				<Key word = ".param" />

				<!-- Method implementations  -->
				<Key word = ".override" />
				<Key word = "with" />

				<!-- VariantType keywords  -->
				<Key word = "null" />
				<Key word = "error" />
				<Key word = "hresult" />
				<Key word = "carray" />
				<Key word = "userdefined" />
				<Key word = "record" />
				<Key word = "filetime" />
				<Key word = "blob" />
				<Key word = "stream" />
				<Key word = "storage" />
				<Key word = "streamed_object" />
				<Key word = "stored_object" />
				<Key word = "blob_object" />
				<Key word = "cf" />
				<Key word = "clsid" />
				<Key word = "vector" />

				<!-- Null reference keyword for InitOpt  -->
				<Key word = "nullref" />

				<!-- Header flags keywords  -->
				<Key word = ".subsystem" />
				<Key word = ".corflags" />
				<Key word = "alignment" />
				<Key word = ".imagebase" />
			</KeyWords>

		</RuleSet>

		<RuleSet name = "CommentMarkerSet" ignorecase = "true">
		  	<Delimiters>&lt;&gt;~!@%^*()-+=|\#/{}[]:;"' ,	.?</Delimiters>
			<KeyWords name = "ErrorWords" bold="true" italic="false" color="Red">
				<Key word = "TODO" />
				<Key word = "FIXME" />
	 	 	</KeyWords>
			<KeyWords name = "WarningWords" bold="true" italic="false" color="#EEE0E000">
				<Key word = "HACK" />
				<Key word = "UNDONE" />
	 	 	</KeyWords>
		</RuleSet>

	</RuleSets>

</SyntaxDefinition>

