<?xml version="1.0" encoding="utf-8" ?>
<Language Name="Avisynth" Startblock="Code">
<FileTypes>
	<FileType Extension=".avs" Name="avisynth script file"/>
</FileTypes>




	<Block Name="Code" Style="Code" EscapeChar="" IsMultiline="true">
		<Scope Start="{" End="}" Style="Scope" Text="{...}" CauseIndent="true"/>
		<Scope Start="#region" End="#endregion" Style="Region" Text="" DefaultExpanded="false" />
		<!-- Keywords that can exist inside this block -->
		<Keywords>
			<PatternGroup Name="Keywords" Style="Keyword" CaseSensitive="false">
				<Patterns>
ZoomBox Yadif
AVISource OpenDMLSource AVIFileSource
DirectShowSource
ImageReader ImageSource
Imagewriter
Import
SegmentedAVISource SegmentedDirectShowSource
WAVSource
ColorYUV
ConvertToRGB ConvertToYUY2 ConvertToYV12 ConvertBackToYUY2 ConvertToRGB32 ConvertToRGB24
FixLuminance
Greyscale
Invert
Levels
Limiter
MergeARGB MergeRGB
Merge MergeChroma MergeLuma
RGBAdjust
ShowAlpha ShowRed ShowGreen ShowBlue
SwapUV UToY VToY YToUV
Tweak
ColorKeyMask
Layer
Mask
Overlay
ResetMask
Subtract
AddBorders
Crop CropBottom
FlipHorizontal FlipVertical
Letterbox
ReduceBy2 HorizontalReduceBy2 VerticalReduceBy2
BilinearResize BicubicResize BlackmanResize GaussResize LanczosResize Lanczos4Resize PointResize Spline16Resize Spline36Resize Spline64Resize
TurnLeft TurnRight Turn180
Blur Sharpen
GeneralConvolution
SpatialSoften TemporalSoften
FixBrokenChromaUpsampling
AlignedSplice UnalignedSplice
AssumeFPS AssumeScaledFPS ChangeFPS ConvertFPS
DeleteFrame
Dissolve
DuplicateFrame
FadeIn0 FadeOut0 FadeIn FadeOut FadeIn2 FadeOut2 FadeIO0 FadeIO FadeIO2
FreezeFrame
Interleave
Loop
Reverse
SelectEven SelectOdd
SelectEvery
SelectRangeEvery
Trim
AssumeFrameBased AssumeFieldBased
AssumeTFF AssumeBFF
Bob
ComplementParity
DoubleWeave
PeculiarBlend
Pulldown
SeparateFields
SwapFields
Weave
Amplify AmplifydB
AssumeSampleRate
AudioDub AudioDubEx
ConvertToMono
ConvertAudioTo8bit ConvertAudioTo16bit ConvertAudioTo24bit ConvertAudioTo32bit ConvertAudioToFloat
DelayAudio
EnsureVBRMP3Sync
GetChannel
KillAudio
KillVideo
MergeChannels
MixAudio
Normalize
ResampleAudio
SSRC
SuperEQ
TimeStretch
Animate ApplyRange
ConditionalFilter FrameEvaluate ScriptClip
ConditionalReader
TCPDeliver
WriteFile WriteFileIf WriteFileStart WriteFileEnd
BlankClip Blackness
ColorBars
Compare
Histogram
Info
MessageClip
ShowFiveVersions
ShowFrameNumber ShowSMPTE ShowTime
StackHorizontal StackVertical
Subtitle
Tone
Version
LoadPlugin LoadCPlugin LoadVirtualDubPlugin
BassAudioSource
FFIndex FFAudioSource FFVideoSource FFmpegSource FFmpegSource2
Min Max MulDiv Floor Ceil Round Sin Cos Pi Exp Log Pow Sqrt Abs Sign Rand Spline
LCase UCase StrLen RevStr LeftStr RightStr MidStr FindStr Chr Time
IsBool IsClip IsFloat IsInt IsString Exist Defined
Value HexValue
Apply Eval Import Select Default Assert NOP
SetMemoryMax SetWorkingDir SetPlanarLegacyAlignment 
OPT_AllowFloatAudio OPT_UseWaveExtensible
VersionNumber VersionString
FrameCount FrameRate FrameRateNumerator FrameRateDenominator
AudioRate AudioLength AudioLengthF AudioChannels AudioBits
IsAudioFloat IsAudioInt 
IsPlanar IsFieldBased IsFrameBased IsInterleaved
GetParity
HasAudio HasVideo
IsRGB IsRGB24 IsRGB32 IsYUV IsYUY2 IsYV12
AutoRGB32 AutoYV12
int clip string float bool val
try catch
if else for while
return
				</Patterns>
			</PatternGroup>
			<PatternGroup Name="Numbers" Style="Number">
				<Pattern Text="(0x[0-9,a-f,A-F]+)" IsComplex="true" />
				<Pattern Text="([0-9]+)" IsComplex="true" />
			</PatternGroup>
				
			<PatternGroup Name="Keywords2" Style="Keyword2" CaseSensitive="true">
				<Patterns>
auto
				</Patterns>
			</PatternGroup>

			<PatternGroup Name="Keywords3" Style="Keyword3" CaseSensitive="true">
				<Pattern Text="(#define)" 	IsComplex="true"/>
				<Pattern Text="(#error)" 	IsComplex="true"/>
				<Pattern Text="(#include)" 	IsComplex="true"/>
				<Pattern Text="(#elif)" 	IsComplex="true"/>
				<Pattern Text="(#if)" 		IsComplex="true"/>
				<Pattern Text="(#line)" 	IsComplex="true"/>
				<Pattern Text="(#else)" 	IsComplex="true"/>
				<Pattern Text="(#ifdef)" 	IsComplex="true"/>
				<Pattern Text="(#pragma)" 	IsComplex="true"/>
				<Pattern Text="(#endif)" 	IsComplex="true"/>
				<Pattern Text="(#ifndef)" 	IsComplex="true"/>
				<Pattern Text="(#undef)" 	IsComplex="true"/>   
			</PatternGroup>



			
		</Keywords>
		<!-- Operators that can exist inside this block -->
		<Operators>
			<PatternGroup name="Operators" Style="Operator">
				<Pattern Text="." />
				<Pattern Text="!" />
				<Pattern Text=":" />
				<Pattern Text="^" />
				<Pattern Text="*" />
				<Pattern Text="/" />
				<Pattern Text="+" />
				<Pattern Text="-" />
				<Pattern Text="=" />
				<Pattern Text="|" />
				<Pattern Text="~" />
				<Pattern Text="?" />
				<Pattern Text="&amp;" />
				<Pattern Text="&#37;" />
				<Pattern Text="&gt;" />
				<Pattern Text="&lt;" />
			</PatternGroup>
		</Operators>
		<!-- Blocks that can exist inside this block -->
		<ChildBlocks>
			<Child Name="Multiline Comment" />
			<Child Name="Singleline Comment" />
			<Child Name="String" />
			<Child Name="Char" />
			<Child Name="Literal String" />
			<Child Name="Literal Char" />
			<Child Name="Code" />
		</ChildBlocks>
	</Block>
	
	<Block Name="Multiline Comment" Style="Comment" EscapeChar="" IsMultiline="true">
		<Scope Start="/*" End="*/" Style="Comment" Text="/*...*/"/>
		<Operators>
			<PatternGroup name="URL" Style="URL">
				<Pattern Text="http://([\w-]+\.)+[\w-]+(/[\w- ./?%&amp;=]*)?" IsComplex="true" />
			</PatternGroup>
		</Operators>
	</Block>
	<Block Name="Singleline Comment" Style="Comment" EscapeChar="" IsMultiline="false">
		<Scope Start="#" End="" Style="Comment" />
	</Block>
	<Block Name="String" Style="String" EscapeChar="\" IsMultiline="false">
		<Scope Start="&quot;" End="&quot;" Style="String" />
		<Operators>
			<PatternGroup name="URL" Style="URL">
				<Pattern Text="http://([\w-]+\.)+[\w-]+(/[\w- ./?%&amp;=]*)?" IsComplex="true" />
			</PatternGroup>
		</Operators>
	</Block>

	<Block Name="Char" Style="String" EscapeChar="" IsMultiline="false">
		<Scope Start="'" End="'" Style="String" />
	</Block>

	<Block Name="Literal String" Style="String" EscapeChar="" IsMultiline="true" >
		<Scope Start="@&quot;" End="&quot;" Style="String" Text="@'...'" />
	</Block>

	<Block Name="Literal Char" Style="String" EscapeChar="" IsMultiline="false">
		<Scope Start="@'" End="'" Style="String" />
	</Block>
	<Style Name="Code" ForeColor="" BackColor="" Bold="false" Italic="false" Underline="false" />
	<Style Name="Scope" ForeColor="" BackColor="" Bold="false" Italic="false" Underline="false" />
	<Style Name="Region" ForeColor="blue" BackColor="" Bold="true" Italic="false" Underline="false" />
	<Style Name="Comment" ForeColor="Green" BackColor="" Bold="false" Italic="false" Underline="false" />
	<Style Name="String" ForeColor="Teal" BackColor="" Bold="false" Italic="false" Underline="false" />
	<Style Name="Number" ForeColor="Orange" BackColor="" Bold="true" Italic="false" Underline="false" />
	<Style Name="Operator" ForeColor="Red" BackColor="" Bold="false" Italic="false" Underline="false" />
	<Style Name="Keyword" ForeColor="Blue" BackColor="" Bold="true" Italic="false" Underline="false" />
	<Style Name="Keyword2" ForeColor="Red" BackColor="" Bold="true" Italic="false" Underline="false" />
	<Style Name="Keyword3" ForeColor="blue" BackColor="" Bold="false" Italic="false" Underline="false" />
	<Style Name="Datatype" ForeColor="DarkBlue" BackColor="" Bold="true" Italic="false" Underline="false" />
	<Style Name="URL" ForeColor="Blue" BackColor="" Bold="false" Italic="false" Underline="true" />
	
</Language>