﻿<?xml version="1.0" encoding="utf-8"?>
<VisualStudioToolFile
	Name="re2c"
	Version="8.00"
	>
	<Rules>
		<CustomBuildRule
			Name="re2c"
			DisplayName="re2c"
			CommandLine="re2c [AllOptions] [AdditionalOptions] [inputs]"
			Outputs="[$OutputFileName]"
			FileExtensions="*.re"
			ExecutionDescription="Compiling regular expressions..."
			>
			<Properties>
				<StringProperty
					Name="OutputFileName"
					DisplayName="Output File Name"
					Description="Specifies the name of the output source file.     (-o[file])"
					Switch="-o&quot;[value]&quot;"
					DefaultValue="$(InputDir)$(InputName).cpp"
				/>
				<EnumProperty
					Name="Version"
					DisplayName="Show Version Info"
					Description="Displays version information at compile-time.     (-v -V)"
					>
					<Values>
						<EnumValue
							Value="0"
							DisplayName="Default"
						/>
						<EnumValue
							Value="1"
							Switch="-v"
							DisplayName="Show Version (-v)"
						/>
						<EnumValue
							Value="2"
							Switch="-V"
							DisplayName="Show Version as Number (-V)"
						/>
					</Values>
				</EnumProperty>
				<BooleanProperty
					Name="NoLineInfo"
					DisplayName="Suppress Line Information"
					Description="Suppress #line information in the output file.     (-l)"
					Switch="-l"
				/>
				<BooleanProperty
					Name="NoGenerationDate"
					DisplayName="Suppress Generation Date"
					Description="Suppress date information in the output file.     (--no-generation-date)"
					Switch="--no-generation-date"
				/>
				<EnumProperty
					Name="CharacterSet"
					DisplayName="Scanner Character Set"
					PropertyPageName="Code Generation"
					Description="Specifies the generated scanner&apos;s character set.     (-e, -w, -u)"
					>
					<Values>
						<EnumValue
							Value="0"
							DisplayName="ASCII"
						/>
						<EnumValue
							Value="1"
							Switch="-e"
							DisplayName="EBCDIC (-e)"
						/>
						<EnumValue
							Value="2"
							Switch="-w"
							DisplayName="UCS-16 (-w)"
						/>
						<EnumValue
							Value="3"
							Switch="-u"
							DisplayName="UTF-32 (-u)"
						/>
					</Values>
				</EnumProperty>
				<EnumProperty
					Name="Optimization"
					DisplayName="Optimization Level"
					PropertyPageName="Code Generation"
					Description="Specifies the optimizations used in the scanner.     (-s, -b, -g)"
					DefaultValue="2"
					>
					<Values>
						<EnumValue
							Value="0"
							DisplayName="None"
						/>
						<EnumValue
							Value="1"
							Switch="-s"
							DisplayName="Use Nested If&apos;s (-s)"
						/>
						<EnumValue
							Value="2"
							Switch="-b"
							DisplayName="Use Bit Vectors (-b)"
						/>
						<EnumValue
							Value="3"
							Switch="-g"
							DisplayName="Use Computed Goto&apos;s (GCC Only) (-g)"
						/>
					</Values>
				</EnumProperty>
				<BooleanProperty
					Name="StorableState"
					DisplayName="Enable Storable State"
					PropertyPageName="Code Generation"
					Description="Generates a scanner with support for storable state.     (-r)"
					Switch="-r"
				/>
				<BooleanProperty
					Name="DebugOutput"
					DisplayName="Enable Debugging Output"
					PropertyPageName="Code Generation"
					Description="Generates a scanner that dumps information about its current position and state. You must define a macro YYDEBUG(int state, char current) that recieves the current state and cursor input.     (-d)"
					Switch="-d"
				/>
				<BooleanProperty
					Name="SinglePass"
					DisplayName="Single Pass Code Generation"
					PropertyPageName="Code Generation"
					Description="Forces single pass generation. This cannot be combined with storable state and disables YYMAXFILL generation prior to last block.     (-1)"
					Switch="-1"
				/>
			</Properties>
		</CustomBuildRule>
	</Rules>
</VisualStudioToolFile>
