[Mono-list] Completion field

James Perry jeperry@uwaterloo.ca
Fri, 3 Aug 2001 21:08:45 +0100


This is a multi-part message in MIME format.

------=_NextPart_000_0000_01C11C60.7BAEB590
Content-Type: text/plain;
	charset="us-ascii"
Content-Transfer-Encoding: 7bit

>> The completion column is supposed to show completion, but it seems the
>> data is incorrect.  I do not know how this can be computed by a human
>> being.  It should be probably computed by a program that matches the
>> API against the published one.
>
>yeah, there should be a way we can automate this kind of thing...
>
>> Should I drop the percentage of completion?
>>
>> Feel free to update the values in mono/status/class.xml (where this
>> data actually lives).
>
>i'll update the things i notice to be wrong.  perhaps when people submit
new
>classes (or change them) they should update the class.xml file, although we
>really should find an automated way to update it, as people are bound to
start
>forgetting...
>

Amongst other things related to Mono, I'm working on a unified system for
administration, analyses and documentation of .NET class libraries.

It's based around an XML file which describes certain characteristics of a
class library, which include the type layout of the file, documentation info
and administrivia stuff. My goal would be to have a few programs which could
be used to administer and do some automated analyses of this stuff. For
example, you could have a simple program which extracts user-readable
documentation from the file (you could even just use an xsl transform for
this, it's all in XML), or a program which, given a class library and an XML
description, can tell you of any discrepencies between the two. You could
even have a program which would generate an XML specification from a
pre-existing class library.

My original thinking was that this would provide a good way of
double-checking a class library, to make sure no silly mistakes had been
made, but I think this would also be a good basis for an automated
completion tracking system.

I'm still working on the format of the XML document (I'm still working on
the documentation and administrivia sections, they're not in yet), but I've
attached the preliminary DTD and a sample XML document which describes a
tiny bit of the System namespace. It's named (appropriately I think) XSharp.
You'll have to edit the XML file to have it pointing to a valid copy of this
DTD.

Okay, enough with the self-plugging. ;)

With an architecture in place which could do the automated analyses,
determining a /percentage/ completion would still be tough. You can generate
a list of what isn't done yet, but how do you translate this into a
percentage figure? Some classes and methods will be much harder to implement
than others. You could probably come up with an estimate, but it'll never be
an accurate representation of how much work is left to be done unless each
class is gone through and assigned some numeric value indicating
'difficulty' is assigned. Still, I suppose that, as long as this was well
publicised, it would be a usefull figure non-the less (if updated nightly,
perhaps).

Anyway, give me feedback on the attached stuff.

(Miguel, FYI this is very much different from the one I sent you before).

 - James Perry

------=_NextPart_000_0000_01C11C60.7BAEB590
Content-Type: application/octet-stream;
	name="XSharp.dtd"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
	filename="XSharp.dtd"

<?xml version=3D"1.0" encoding=3D"UTF-8"?>
<!--
	XSharp.dtd - Version 0.20

	Description of subset of C# Syntax in XML for administration, automated =

	analyses and automated document generation for .NET Framework class =
library.


	Copyright (C) 2001  James Perry
	May be distributed under the terms of the GPL (version 2 or later).
-->

<!--
	Changes:
		0.20	Replaced old definitions which were heavy on attributes with new
				ones which make much greater use of attributes - this makes
				everything look a lot cleaner.

				Added C# syntax to comments to clarify the purpose of each=20
				section.

		0.10	Initial version

	TODO:
		Documentation and Administrivia namespaces
-->

<!ELEMENT xsharp (attributes?, namespaces)>

<!-- Namespaces:
	namespace-declaration : "namespace" qualified-identifier namespace-body =

								";" ;

	qualified-identifier	: identifier
				| qualified-identifier "." identifier ;

	namespace-bodye : "{" namespace-member-declarations-opt "}" ;

	namespace-member-declarations-opt :
				| namespace-member-declarations ;
	namespace-member-declarations : namespace-member-declaration
				| namespace-member-declarations namespace-member-declaration ;

	namespace-member-declaration : namespace-declaration
				| type-decalaration ;

	type-declaration : class-declaratoin
				| struct-declaratoin
				| interface-declaratoin
				| enum-declaration
				| delegate-declaration ;
-->
	<!ELEMENT namespace (namespace*, class*, struct*, interface*, enum*,=20
							delegate*)>
	<!ATTLIST namespace
			name		CDATA	#REQUIRED
	>

<!-- Attribute:
	attributes : attribute-sections ;
	attribute-sections : attribute-section ;
				| attribute-sections attribute-section ;
	attribute-section : "[" attribute-target-specifier-opt attribute-list =
"]"
				| "[" attribute-target-specifier-opt attribute-list "," "]";

	attribute-target-specifier-opt :
				| attribute-target-specifier;
	attribute-target-specifier : attribute-target ":" ;
	attribute-target : "assembly"
				| "field"
				| "event"
				| "method"
				| "module"
				| "param"
				| "property"
				| "return"
				| "type"
				;

	attribute-list : attribute
				| attribute-list "," attribute ;
	attribute : attribute-name attribute-arguments-opt ;

	attribute-name : reserved-attribute-name
				| type-name ;

	attribute-arguments-opt	:
				| attribute-arguments ;
	attribute-arguments	: "(" positional-argument-list ")"
				| "(" positional-argument-list "," named-argument-list ")"
				| "(" named-argument-list ")" ;

	positional-argument-list : positional-argument
				| positional-argument-list "," positional-argument ;
	positional-argument	: attribute-argument-expression ;

	named-argument-list	: named-argument
				| named-argument-list "," named-argument ;
	named-argument : identifier "=3D" attribute-argument-expression ;
	attribute-argument-expression : expression ;
-->
	<!ELEMENT attributes (attribute*)>=09
	<!ELEMENT attribute (parameter, named_parameter)>
	<!ATTLIST attribute
			name		CDATA	#REQUIRED
	>

		<!ELEMENT parameter (#PCDATA)>
		<!ATTLIST parameter
				type		CDATA	#IMPLIED
		>

		<!ELEMENT named_parameter (#PCDATA)>
		<!ATTLIST named_parameter
				name		CDATA	#REQUIRED
				type		CDATA	#IMPLIED
		>

<!-- Class:
	class-declaration : attributes-opt class-modifiers-opt "class" =
identifier=20
							class-base-opt class-body ";" ;

	class-modifiers-opt	:
				| class-modifiers ;
	class-modifiers : class-modifier
				| class-modifiers class-modifier ;
	class-modifier : "new" | "public" | "protected" | "internal" |=20
							"private" | "abstract" | "sealed" ;

	class-base-opt :
				| class-base ;
	class-base : ":" class-type
				| ":" interface-type-list
				| ":" class-type "," interface-type-list ;
	interface-type-list	: interface-type
				| interface-type-list "," interface-type ;

	class-body : "{" class-member-declarations-opt "}" ;

	class-member-declarations-opt :
				| class-member-declarations ;
	class-member-declarations : class-member-declaration
				| class-member-declarations class-member-declaration ;
	class-member-declaration : constant-declaration
				| field-declaration
				| method-declaration
				| property-declaratoin
				| event-declaration
				| indexer-declaration
				| operator-declaration
				| destructor-declaration
				| static-constructor-declaration
				| type-declaration ;
-->
	<!ELEMENT class (attributes?, constant*, field*, method*, property*, =
event*,
 						indexer*, operator*, constructor*, destructor*,=20
						static_constructor*, class*, struct*, interface*, enum*,
						delegate*)>
			=09
	<!ATTLIST class
			name		CDATA	#REQUIRED
			modifiers	CDATA	#IMPLIED
			base		CDATA	"System.Object"
			interfaces	CDATA	#IMPLIED
	>

<!-- Struct:
	struct-declaration : attributes-opt struct-modifiers-opt "struct" =
identifier
							struct-interfaces-opt struct-body ";" ;

	struct-modifiers-opt :
						 | struct-modifiers
	struct-modifiers : struct-modifier
					 | struct-modifiers struct-modifier ;
	struct-modifier	: "new" | "public" | "protected" | "internal" | =
"private" ;

	struct-interfaces : ":" interface-type-list ;

	struct-body	: "{" struct-member-declarations-opt "}" ;

	struct-member-declarations-opt :
				| struct-member-declarations ;
	struct-member-declarations : struct-member-declaration
				| struct-member-declarations struct-member-declaration ;
	struct-member-declaration: constant-declaration
				| field-declaration
				| method-declaration
				| property-declaration
				| event-declaration
				| indexer-declaration
				| operator-declaration
				| constructor-declaration
				| static-constructor-declaration
				| type-declaration ;
-->
	<!ELEMENT struct (attributes?, constant*, field*, method*, property*,=20
						event*, indexer*, operator*, constructor*,=20
						static_constructor*, class*, struct*, interface*, enum*,
						delegate*)>
			=09
	<!ATTLIST struct
			name		CDATA	#REQUIRED
			modifiers	CDATA	#IMPLIED
			interfaces	CDATA	#IMPLIED
	>

<!-- Interface:
	interface-declaration : attributes-opt interface-modifiers-opt =
"interface"
							identifier interface-base-opt interface-body ";" ;

	interface-modifiers-opt	:
				| interface-modifiers ;
	interface-modifiers	: interface-modifier
				| interface-modifiers "," interface-modifier ;

	interface-base : ":" interface-type-list ;

	interface-body : "{" interface-member-declarations-opt "}" ;
	interface-member-declarations-opt :
				| interface-member-declarations ;
	interface-member-declarations : interface-member-declaration
				| interface-member-declarations interface-member-declaration ;
	interface-member-declaration : interface-method-declaration
				| interface-property-declaration
				| interface-event-declaration
				| interface-indexer-declaration ;

	interface-method-declaration : attributes-opt new-opt return-type =
identifier
					"(" formal-parameter-list-opt ")" ";" ;
	new-opt :
			| "new" ;
	formal-parameter-list-opt :
				| formal-parameter-list ;

	interface-propety-declaration : attributes-opt new-opt type identifier =
"{"=20
									interface-accessors "}" ;
	interface-accessors	: attributes-opt "get" ";"
				| attributes-opt "set" ";"
				| attributes-opt "get" ";" attributes-opt "set" ";"
				| attributes-opt "set" ";" attributes-opt "get" ";" ;

	interface-event-declaration : attributes-opt new-opt "event" type=20
									identifier ";" ;

	interface-indexer-declaration : attributes-opt new-opt type "this" "["=20
									formal-parameter-list "]" "{"=20
									interface-accessors "}" ;
				=09
-->
	<!ELEMENT interface (attributes?, method*, property*, event*, =
indexer*)>
	<!ATTLIST interface
			name		CDATA	#REQUIRED
			modifiers	CDATA	#IMPLIED
			interface	CDATA	#IMPLIED
	>

<!-- Enum:
	enum-declaration : attributes-opt enum-modifiers-opt "enum" identifier=20
						enum-base-opt enum-body ";" ;

	enum-modifiers-opt :
				| enum-modifiers ;
	enum-modifiers : enum-modifier ;
				| enum-modifiers enum-modifier ;
	enum-modifier : "new" | "public" | "protected" | "protected" | =
"internal" |
					"private" ;

	enum-base-opt :
				| enum-base ;
	enum-base : ":" integral-type ;

	enum-body : "{" enum-member-declarations-opt "}"
				| "{" enum-member-declarations "," "}" ;

	enum-member-declarations-opt :
				| enum-member-declarations ;
	enum-member-declarations: enum-member-declarattion
				| enum-member-declaration "," enum-member-declaration ;
	enum-member-declaration	: attributes-opt identifier
				| attributes-opt identifier "=3D" constant-expression ;
-->
	<!ELEMENT enum (attributes?, value*)>
	<!ATTLIST enum
			name		CDATA	#REQUIRED
			type		CDATA	#IMPLIED
			modifiers	CDATA	#IMPLIED
	>

		<!ELEMENT value EMPTY>
		<!ATTLIST value
				name		CDATA	#REQUIRED
				value		CDATA	#IMPLIED
		>

<!-- Delegate:
	delegate-declaration : attributes-opt delegate-modifiers-opt "delegate" =

							result-type identifier "(" formal-parameter-list ")"
							";" ;
				=09

	delegate-modifiers-opt :
				| delegate-modifiers ;
	delegate-modifiers : delegate-modifier
				| delegate-modifiers "," delegate-modifier ;
	delegate-modifier : "new" | "public" | "protected" | "internal" | =
"private";
-->
	<!ELEMENT delegate (attributes?, parameter*, parameter_array?)>
	<!ATTLIST delegate
			name		CDATA	#REQUIRED
			type		CDATA	#REQUIRED
			modifiers	CDATA	#IMPLIED
	>

<!-- Constant:
	constant-declaration : attributes-opt constant-modifiers-opt const type =

							constant-declarators ";" ;

	constant-modifiers-opt :
				| constant-modifiers ;
	constant-modifiers : constant-modifier
				| constant-modifier "," constant-modifier ;
	constant-modifier : "new" | "public" | "protected" | "internal" | =
"private";

	constant-declarators : constant-declarator
				| constant-declarators "," constant-declarator ;
	constant-declarator	: identifier "=3D" constant-expression ;
-->
	<!ELEMENT constant (attributes?)>
	<!ATTLIST constant
			name		CDATA	#REQUIRED
			type		CDATA	#REQUIRED
			value		CDATA	#REQUIRED
			modifiers	CDATA	#IMPLIED

	>

<!-- Field:
	field-declaration : attributes-opt field-modifiers-opt type=20
						variable-declarators ";" ;

	field-modifiers-opt :
				| field-modifiers ;
	field-modifiers : field-modifier
				| field-modifiers field-modifier ;
	field-modifier : "new" | "public" | "protected" | "internal" | =
"private" |=20
				"static" | "readonly" ;

	variable-declarators : variable-declarator
				| variable-declarators "," variable-declarator ;
	variable-declarator	: identifier
				| identifier "=3D" variable-initializer ;
	variable-initializer : expression
				| array-initializer ;
-->
	<!ELEMENT field (attributes?)>
	<!ATTLIST field
			name		CDATA	#REQUIRED
			type		CDATA	#REQUIRED
			value		CDATA	#IMPLIED
			modifiers	CDATA	#IMPLIED
	>

<!-- Method:
	method-declaration : method-header method-body ;
	method-header : attributes-opt method-modifiers-opt return-type =
member-name
					"(" formal-parameter-list-opt ")" ;
	method-body : block ;

	method-modifiers-opt :
				| method-modifiers ;
	method-modifiers : method-modifier
				| method-modifiers method-modifier ;
	method-modifier : "new" | "public" | "protected" | "internal" | =
"private" |=20
						"static" | "virtual" | "sealed" | "override" |=20
						"abstract" | "extern" ;
			=09

	return-type	: type
				| "void" ;

	member-name	: identifier
				| interface-type "." identifier ;

	formal-parameter-list : fixed-parameters
				| fixed-parameters "," parameter-array
				| parameter-array ;

	fixed-parameters : fixed-parameter
				| fixed-parameters "," fixed-parameter ;
	fixed-parameter : attributes-opt parameter-modifier-opt type identifier =
;
	parameter-modifier : "ref" | "out" ;
=09
	parameter-array : attributes-opt "params" array-type identifier ;
-->
	<!ELEMENT method (attribute*, parameter*, parameter_array?)>
	<!ATTLIST method
			name		CDATA	#REQUIRED
			type		CDATA	#REQUIRED
			modifiers	CDATA	#IMPLIED
	>
=09
		<!ELEMENT parameter (attribute*)>
		<!ATTLIST parameter
				type		CDATA	#REQUIRED
				name		CDATA	#IMPLIED
				modifiers	CDATA	#IMPLIED
		>
=09
		<!ELEMENT parameter_array (attribute*)>
		<!ATTLIST parameter_array
				type		CDATA	#REQUIRED
				name		CDATA	#IMPLIED
				modifiers	CDATA	#IMPLIED
		>


<!-- Property:
	property-declaration : attributes-opt property-modifiers-opt type=20
							member-name "{" accessor-declarations "}" ;

	property-modifiers-opt :
				| property-modifiers;
	property-modifiers : property-modifier
				| property-modifiers property-modifier ;
	property-modifier : "new" | "public" | "protected" | "internal" |=20
						"private" | "static" | "virtual" | "sealed" |=20
						"override" | "abstract" ;

	member-name : identifier
				| interface-type "." identifier ;

	accessor-declarations : get-accessor-declaration=20
							set-accessor-declaration-opt
						  | set-accessor-declaration=20
							get-accessor-declaration-opt ;
	get-accessor-declaration-opt:
						  | get-accessor-declaration
	get-accessor-declaration : attributes-opt "get" accessor-body ;

	set-accessor-declaration-opt:
						  | set-accessor-declaration
	set-accessor-declaration : attributes-opt "set" accessor-body ;

	accessor-body : block ";" ;
 -->

	<!ELEMENT property (attributes?, get?, set?)>
	<!ATTLIST property
			name		CDATA	#REQUIRED
			type		CDATA	#REQUIRED
			modifiers	CDATA	#IMPLIED
	>

		<!ELEMENT get (attributes?)>
		<!ELEMENT set (attributes?)>

<!-- Event:
	event-declaration : attributes-opt event-modifiers-opt "event" type=20
						variable-declarators ";"
					| attributes-opt event-modifiers-opt "event" type=20
						member-name "{" event-accessor-declarations "}" ;

	event-modifiers-opt	:
					| event-modifiers ;
	event-modifiers	: event-modifier
					| event-modifiers event-modifier ;
	event-modifier : "new" | "public" | "protected" | "internal" | =
"private" |=20
					"static" | "virtual" | "sealed" | "override" | "abstract" ;
=09
	event-accessor-declarations: add-accessor-declaration=20
								remove-accessor-declaration
								| remove-accessor-declaration=20
								add-accessor-declaration ;
	add-accessor-declaration: attributes-opt "add" block ;
	remove-accessor-declaration: attributes-opt "remove" block ;
-->
	<!ELEMENT event (get?, set?)>
	<!ATTLIST property
			name		CDATA	#REQUIRED
			type		CDATA	#REQUIRED
			modifiers	CDATA	#IMPLIED
	>

<!-- Indexer:
	indexer-declaration	: attributes-opt indexer-modifiers-opt=20
							indexer-declarator "{" accessor-declarations "}" ;
				=09

	indexer-modifiers-opt :
				| indexer-modifiers ;
	indexer-modifier : "new" | "public" | "protected" | "internal" | =
"private"
				| "virtual" | "sealed" | "override" | "abstract" ;

	indexer-declarator	: type this "[" formal-parameter-list "]" ;
				| type interface-type "." "this" "[" formal-parameter-list "]" ;
-->
	<!ELEMENT indexer (attributes?, get?, set?)>
	<!ATTLIST indexer
			type		CDATA	#REQUIRED
			interface	CDATA	#IMPLIED
			modifiers	CDATA	#IMPLIED
	>

<!-- Operator:
	operator-declaration : attributes-opt operator-modifiers=20
							operator-declarator block ;

	operator-modifiers : "public" "static"
				| "static" "public" ;

	operator-declarator	: unary-operator-declarator
				| binary-operator-declarator
				| conversion-operator-declarator ;

	unary-operator-declarator: type "operator" overloadable-unary-operator =
"("=20
								type identifier ")" ;
	overloadable-unary-operator: "+" | "-" | "!" | "~" | "++" | "-""-" |=20
									"true" | "false" ;

	binary-operator-declarator: type "operator" =
overloadable-binary-operator
					"(" type identifier "," type identifier ")" ;
	overloadable-binary-operator: "+" | "-" | "*" | "/" | "%" | "&" | "^" | =

									"<<" | ">>" | "=3D=3D" | "!=3D" | ">" | "<" |=20
									">=3D" | "<=3D" ;
=09
	conversion-operator-declarator: "implicit" "operator" type "(" type=20
									identifier ")"
								| "explicit" "operator" type "(" type=20
									identifier ")" ;
-->
	<!ELEMENT operator (attributes?, parameter*)>
	<!ATTLIST operator
			name		CDATA	#REQUIRED
			type		CDATA	#REQUIRED
			modifiers	CDATA	#IMPLIED
			conversion	(implied | explicit) #IMPLIED
	>

<!-- Constructor:
	constructor-declaration	: attributes-opt constructor-modifiers-opt=20
								constructor-declarator block ;

	constructor-modifiers-opt:
				| constructor-modifiers ;
	constructor-modifiers	: constructor-modifier
				| constructor-modifiers constructor-modifier ;
	constructor-declarator	: identifier "(" formal-parameter-list-opt ")"=20
								constructor-initializer-opt
=09
	constructor-initializer-opt:
				| constructor-initializer ;
	constructor-initializer	: ":" "base" "(" argument-list-opt ")"
				| ":" "this" "(" argument-list-opt ")" ;=09
-->
	<!ELEMENT constructor (attributes?, (this_initializer | =
base_initializer),=20
							parameter*, parameter_array?)>
	<!ATTLIST constructor
			modifiers	CDATA	#IMPLIED
	>
		<!ELEMENT this_initializer (argument*)>
		<!ELEMENT base_initializer (argument*)>

<!-- Static-Constructor:
	static-constructor-declaration: attributes-opt "static" identifier "(" =
")"=20
									block ;
-->
	<!ELEMENT static_constructor (attributes?)>

<!-- Destructor:
	destructor-declaration	: attributes-opt "~" identifier "(" ")" block;
-->
	<!ELEMENT destructor (attributes?)>

<!-- EOF -->

------=_NextPart_000_0000_01C11C60.7BAEB590
Content-Type: text/xml;
	name="Sample.XML"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
	filename="Sample.XML"

=EF=BB=BF<?xml version=3D"1.0" encoding=3D"UTF-8" standalone=3D"no"?>
<!DOCTYPE xsharp SYSTEM "file://c:/proj/mono/xsharp/XSharp.dtd">
<xsharp>
<namespaces>
	<namespace name=3D"System">
		<enum name=3D"AttributeTargets" modifiers=3D"public">
			<value name=3D"All"/>
			<value name=3D"Assembly"/>
			<value name=3D"Class"/>
			<value name=3D"ClassMembers"/>
			<value name=3D"Constructor"/>
			<value name=3D"Delegate"/>
			<value name=3D"Enum"/>
			<value name=3D"Event"/>
			<value name=3D"Field"/>
			<value name=3D"Interface"/>
			<value name=3D"Method"/>
			<value name=3D"Module"/>
			<value name=3D"Parameter"/>
			<value name=3D"Property"/>
			<value name=3D"ReturnValue"/>
			<value name=3D"Struct"/>
		</enum>
		<class name=3D"Object" base=3D"">
			<method name=3D"Equals" type=3D"System.Boolean" =
modifiers=3D"public,virtual">
				<parameter type=3D"System.Object"/>
			</method>
			<method name=3D"Finalize" type=3D"void" =
modifiers=3D"protected,virtual"/>
			<method name=3D"GetHashCode" type=3D"System.Int32" =
modifiers=3D"public,virtual"/>
			<method name=3D"GetType" type=3D"System.Type" modifiers=3D"public"/>
			<method name=3D"MemberwiseClone" type=3D"System.Object" =
modifiers=3D"protected"/>
			<method name=3D"ToString" type=3D"System.String" =
modifiers=3D"public,virtual"/>
		</class>
		<struct name=3D"Guid" interfaces=3D"IFormattable,IComparable" =
modifiers=3D"public">
			<constructor modifiers=3D"public">
				<parameter type=3D"System.Byte[]" name=3D"b"/>
			</constructor>
			<constructor modifiers=3D"public">
				<parameter type=3D"System.String" name=3D"g"/>
			</constructor>
			<constructor modifiers=3D"public">
				<parameter type=3D"System.Int32" name=3D"a"/>
				<parameter type=3D"System.Int16" name=3D"b"/>
				<parameter type=3D"System.Int16" name=3D"c"/>
				<parameter type=3D"System.Byte[]" name=3D"d"/>
			</constructor>
			<constructor modifiers=3D"public">
				<parameter type=3D"System.Int32" name=3D"a"/>
				<parameter type=3D"System.Int16" name=3D"b"/>
				<parameter type=3D"System.Int16" name=3D"c"/>
				<parameter type=3D"System.Byte" name=3D"d"/>
				<parameter type=3D"System.Byte" name=3D"e"/>
				<parameter type=3D"System.Byte" name=3D"f"/>
				<parameter type=3D"System.Byte" name=3D"g"/>
				<parameter type=3D"System.Byte" name=3D"h"/>
				<parameter type=3D"System.Byte" name=3D"i"/>
				<parameter type=3D"System.Byte" name=3D"j"/>
				<parameter type=3D"System.Byte" name=3D"k"/>
			</constructor>
			<constructor modifiers=3D"public">
				<parameter type=3D"System.UInt32" name=3D"a"/>
				<parameter type=3D"System.UInt16" name=3D"b"/>
				<parameter type=3D"System.UInt16" name=3D"c"/>
				<parameter type=3D"System.Byte" name=3D"d"/>
				<parameter type=3D"System.Byte" name=3D"e"/>
				<parameter type=3D"System.Byte" name=3D"f"/>
				<parameter type=3D"System.Byte" name=3D"g"/>
				<parameter type=3D"System.Byte" name=3D"h"/>
				<parameter type=3D"System.Byte" name=3D"i"/>
				<parameter type=3D"System.Byte" name=3D"j"/>
				<parameter type=3D"System.Byte" name=3D"k"/>
			</constructor>

			<field name=3D"Empty" type=3D"System.Guid" =
modifiers=3D"public,static,readonly"/>		=09

			<method name=3D"CompareTo" type=3D"System.Int32" =
modifiers=3D"public">
				<parameter type=3D"System.Object" name=3D"value"/>
			</method>
			<method name=3D"Equals" type=3D"System.Boolean" =
modifiers=3D"public,override">
				<parameter type=3D"System.Object" name=3D"o"/>
			</method>
			<method name=3D"GetHashCode" type=3D"System.Int32" =
modifiers=3D"public,override"/>
			<method name=3D"NewGuid" type=3D"System.Guid" =
modifiers=3D"public,static"/>
			<method name=3D"ToByteArray" type=3D"System.Byte[]" =
modifiers=3D"public"/>
			<method name=3D"ToString" type=3D"System.String" =
modifiers=3D"public,override"/>
			<method name=3D"ToString" type=3D"System.String" =
modifiers=3D"public">
				<parameter type=3D"System.String" name=3D"format"/>
			</method>
			<method name=3D"ToString" type=3D"System.String" =
modifiers=3D"public">
				<parameter type=3D"System.String" name=3D"format"/>
				<parameter type=3D"System.IFormatProvider" name=3D"provider"/>
			</method>
			<operator name=3D"Equality" type=3D"System.Boolean" =
modifiers=3D"public,static">
				<parameter type=3D"System.Guid" name=3D"a"/>
				<parameter type=3D"System.Guid" name=3D"b"/>
			</operator>
			<operator name=3D"Inequality" type=3D"System.Boolean" =
modifiers=3D"public,static">
				<parameter type=3D"System.Guid" name=3D"a"/>
				<parameter type=3D"System.Guid" name=3D"b"/>
			</operator>
		</struct>
		<delegate name=3D"AssemblyLoadEventHandler" type=3D"void" =
modifiers=3D"public">
			<parameter type=3D"System.Object" name=3D"sender"/>
			<parameter type=3D"System.AssemblyLoadEventArgs" name=3D"args"/>
		</delegate>
		<interface name=3D"IAppDomainSetup" modifiers=3D"public">
			<property name=3D"ApplicationBase" type=3D"System.String">
				<get/>
				<set/>
			</property>
			<property name=3D"ApplicationName" type=3D"System.String">
				<get/>
				<set/>
			</property>
			<property name=3D"CachePath" type=3D"System.String">
				<get/>
				<set/>
			</property>
			<property name=3D"ConfigurationFile" type=3D"System.String">
				<get/>
				<set/>
			</property>
			<property name=3D"DynamicBase" type=3D"System.String">
				<get/>
				<set/>
			</property>
			<property name=3D"LicenseFile" type=3D"System.String">
				<get/>
				<set/>
			</property>
			<property name=3D"PrivateBinPath" type=3D"System.String">
				<get/>
				<set/>
			</property>
			<property name=3D"PrivateBinPathProbe" type=3D"System.String">
				<get/>
				<set/>
			</property>
			<property name=3D"ShadowCopyDirectories" type=3D"System.String">
				<get/>
				<set/>
			</property>
			<property name=3D"ShadowCopyFiles" type=3D"System.String">
				<get/>
				<set/>
			</property>
		</interface>
	</namespace>
</namespaces>
</xsharp>

------=_NextPart_000_0000_01C11C60.7BAEB590--